declare module 'timers' { import { Abortable } from 'events'; interface TimerOptions extends Abortable { /** * Set to `false` to indicate that the scheduled `Timeout` * should not require the Node.js event loop to remain active. * @default true */ ref?: boolean; } function setTimeout(callback: (...args: any[]) => void, ms?: number, ...args: any[]): NodeJS.Timeout; namespace setTimeout { function __promisify__(ms: number): Promise; function __promisify__(ms: number, value: T, options?: TimerOptions): Promise; } function clearTimeout(timeoutId: NodeJS.Timeout): void; function setInterval(callback: (...args: any[]) => void, ms?: number, ...args: any[]): NodeJS.Timeout; function clearInterval(intervalId: NodeJS.Timeout): void; function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; namespace setImmediate { function __promisify__(): Promise; function __promisify__(value: T, options?: TimerOptions): Promise; } function clearImmediate(immediateId: NodeJS.Immediate): void; }