/**
 * Debounces a function call such that only one is performed if multiple
 * requests are made since initial one for the waiting time.
 *
 * If `timeout` is 'frame', then the timeout is assumed to be up until next
 * rendered frame via
 * [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame).
 *
 * @category Utilities
 */
export declare class Debouncer {
    private scheduled;
    private _timeout;
    private callback;
    constructor(timeout?: number | 'frame');
    get timeout(): number | 'frame';
    setTimeout(timeout: number | 'frame'): void;
    call(callback: () => void): void;
    private schedule;
    private run;
    runSynchronously(): void;
    dispose(): void;
    private cancelScheduledTimeout;
}
export declare class BufferingQueue<Key extends string> {
    private onFetch;
    private readonly debouncer;
    private readonly queuedItems;
    constructor(onFetch: (keys: Key[]) => void, waitingTime?: number);
    has(key: Key): boolean;
    push(key: Key): void;
    clear(): void;
    private run;
}
/**
 * Runs specified callback on each rendered frame for the `duration` interval
 * using [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame).
 *
 * @category Utilities
 */
export declare function animateInterval(duration: number, onProgress: (progress: number) => void, signal?: AbortSignal): Promise<void>;
export declare function easeInOutBezier(t: number): number;
//# sourceMappingURL=scheduler.d.ts.map