/** * Cascade Scheduler * * - Coalesces derivations into a single microtask. * - Tasks run once at their maximum rank via a ranked dirty queue. * - Doesn't retain snapshots or dependency graphs. * - Deferred listeners run after all derivations have settled. */ type Rank = number; type Task = () => void; export declare function isCascadeActive(): boolean; /** * Rank of the currently running derive batch, or null if not in a batch. */ export declare function getCurrentDeriveRank(): Rank | null; /** * Arms the cascade and schedules a single microtask flush. */ export declare function activateCascade(): void; /** * Synchronously drains the active cascade. */ export declare function flushCascade(): void; /** * Synchronously settles derivations without delivering deferred listeners. */ export declare function settleCascadeDerivations(): void; /** * Enlist a deferred listener flush task. */ export declare function joinCascade(task: Task): void; /** * Enqueue (or upgrade) a derive task with the given rank. * If the task is already present, its rank is upgraded and it is run later. */ export declare function enqueueDerive(task: Task, rank: Rank): void; export {}; //# sourceMappingURL=cascadeScheduler.d.ts.map