import type { IDisposable } from '../functions/disposer.js'; import { type IEvent } from './event.js'; export interface ITimeout extends IDisposable { /** Fired when the timeout has elapsed. Passes actual elapsed milliseconds. */ readonly event: IEvent; /** Whether the timeout is running */ readonly isRunning: boolean; /** Starts the timeout */ start(delay: number, callback?: () => void): Promise; /** Stops the timeout, event will not be triggered. */ stop(): void; } /** * Simple one-off `setTimeout` wrapper/abstraction. * Handle timeout via event, callback or Promise. */ export declare class Timeout implements ITimeout { private _cancelCb; private readonly _event; get event(): IEvent; get isRunning(): boolean; start(delay: number, callback?: () => void): Promise; stop(): void; dispose(): void; }