/** * Inspired from Rahim Alwer's work (https://github.com/maverick-js/scheduler) **/ export type ScheduledTask = () => void; export type StopFlushUpdates = () => void; export type OnFlushCallback = () => void; export declare class Scheduler { private readonly callbacks; private readonly queue; private readonly microtask; private readonly queueTask; private flushing; constructor(); enqueue(task: ScheduledTask): void; flush(): void; flushSync(): void; onFlush(callback: OnFlushCallback): StopFlushUpdates; tick(): Promise; }