export {}; import * as promises from "node:timers/promises"; // Note: The timer function definitions allow a single void-accepting argument // to be optional in arguments lists. This allows usage such as // `new Promise(resolve => setTimeout(resolve, ms))` (#54258) // eslint-disable-next-line @typescript-eslint/no-invalid-void-type type MakeVoidParameterOptional = [void] extends TArgs ? Partial : TArgs; declare global { function setImmediate( callback: (...args: TArgs) => void, ...args: MakeVoidParameterOptional ): NodeJS.Immediate; namespace setImmediate { import __promisify__ = promises.setImmediate; export { __promisify__ }; } function setInterval( callback: (...args: TArgs) => void, delay?: number, ...args: MakeVoidParameterOptional ): NodeJS.Timeout; function setTimeout( callback: (...args: TArgs) => void, delay?: number, ...args: MakeVoidParameterOptional ): NodeJS.Timeout; namespace setTimeout { import __promisify__ = promises.setTimeout; export { __promisify__ }; } function clearImmediate(immediate: NodeJS.Immediate | undefined): void; function clearInterval(timeout: NodeJS.Timeout | string | number | undefined): void; function clearTimeout(timeout: NodeJS.Timeout | string | number | undefined): void; function queueMicrotask(callback: () => void): void; }