/** * Deadline-based debounce timer. * * Instead of clearing and re-creating a setTimeout on every call * (expensive at high frequency, e.g. 60fps mousemove), this pushes out * a `debounceUntil` deadline. The single running timer callback checks * whether the deadline has been reached: * - If not, it re-schedules itself for the remaining time. * - If so, it executes the callback. * * This means at most one `setTimeout` is live at any time, and * high-frequency `schedule()` calls only update a numeric field. */ export declare class DebounceTimer { private timer?; private callback?; private debounceUntil; private defaultMs; constructor(defaultMs?: number); /** * Schedule (or postpone) the callback. * If a timer is already running, only the deadline is pushed out. */ schedule(callback: () => void, ms?: number): void; /** Cancel any pending execution. */ clear(): void; /** Whether a timer is currently scheduled. */ get pending(): boolean; private onFired; } //# sourceMappingURL=debounce-timer.d.ts.map