/** * The `timers/promises` API provides an alternative set of timer functions * that return `Promise` objects. The API is accessible via`require('node:timers/promises')`. * * ```js * import { * setTimeout, * setImmediate, * setInterval, * } from 'timers/promises'; * ``` * @since v15.0.0 */ declare module "timers/promises" { import { TimerOptions } from "node:timers"; /** * ```js * import { * setTimeout, * } from 'timers/promises'; * * const res = await setTimeout(100, 'result'); * * console.log(res); // Prints 'result' * ``` * @since v15.0.0 * @param [delay=1] The number of milliseconds to wait before fulfilling the promise. * @param value A value with which the promise is fulfilled. */ function setTimeout(delay?: number, value?: T, options?: TimerOptions): Promise; /** * ```js * import { * setImmediate, * } from 'timers/promises'; * * const res = await setImmediate('result'); * * console.log(res); // Prints 'result' * ``` * @since v15.0.0 * @param value A value with which the promise is fulfilled. */ function setImmediate(value?: T, options?: TimerOptions): Promise; /** * Returns an async iterator that generates values in an interval of `delay` ms. * If `ref` is `true`, you need to call `next()` of async iterator explicitly * or implicitly to keep the event loop alive. * * ```js * import { * setInterval, * } from 'timers/promises'; * * const interval = 100; * for await (const startTime of setInterval(interval, Date.now())) { * const now = Date.now(); * console.log(now); * if ((now - startTime) > 1000) * break; * } * console.log(Date.now()); * ``` * @since v15.9.0 */ function setInterval(delay?: number, value?: T, options?: TimerOptions): AsyncIterable; interface Scheduler { /** * ```js * import { scheduler } from 'node:timers/promises'; * * await scheduler.wait(1000); // Wait one second before continuing * ``` * An experimental API defined by the Scheduling APIs draft specification being developed as a standard Web Platform API. * Calling timersPromises.scheduler.wait(delay, options) is roughly equivalent to calling timersPromises.setTimeout(delay, undefined, options) except that the ref option is not supported. * @since v16.14.0 * @experimental * @param [delay=1] The number of milliseconds to wait before fulfilling the promise. */ wait: (delay?: number, options?: TimerOptions) => Promise; /** * An experimental API defined by the Scheduling APIs draft specification being developed as a standard Web Platform API. * Calling timersPromises.scheduler.yield() is equivalent to calling timersPromises.setImmediate() with no arguments. * @since v16.14.0 * @experimental */ yield: () => Promise; } const scheduler: Scheduler; } declare module "node:timers/promises" { export * from "timers/promises"; }