export interface MountTicket { /** Withdraws a queued mount; a mount that already ran is unaffected. */ cancel(): void; } export interface MountSchedulerOptions { /** Mounts admitted per frame before the rest queue. */ budgetPerFrame?: number; /** Frame source; injected so the queue can be driven in tests. */ requestFrame?: (callback: () => void) => void; } /** Urgency of a mount; smaller runs first. */ export declare const MOUNT_PRIORITY: Readonly<{ /** The frame the designer is on, or is about to be: mounts as soon as it fits. */ active: 0; /** In or near the viewport. */ visible: 1; /** Everything else. */ background: 2; }>; export declare const DEFAULT_MOUNTS_PER_FRAME = 3; /** One editor's frame-mount budget: the queue of pending mounts and how many run per animation frame. */ export declare function createMountScheduler(): { configureMountScheduler: (options: MountSchedulerOptions) => void; resetMountScheduler: () => void; pendingMountCount: () => number; scheduleMount: (run: () => void, priority?: number) => MountTicket; }; export type MountScheduler = ReturnType;