import { KeyValue } from '../types';
export interface DynamicScrollerMeasureTask {
    read: () => unknown;
    write: (value: unknown) => void;
    done: () => void;
}
export interface DynamicScrollerMeasureQueue {
    schedule: (id: KeyValue, task: DynamicScrollerMeasureTask) => void;
    cancel: (id: KeyValue) => void;
}
export interface DynamicScrollerMeasureQueueOptions {
    queueFlush?: (flush: () => void) => void;
    overflowQueueFlush?: (flush: () => void) => void;
    maxTasksPerFlush?: number;
}
/**
 * Batch DOM reads so dynamic measurements do not interleave read/write work per row.
 */
export declare function createDynamicScrollerMeasureQueue(options?: DynamicScrollerMeasureQueueOptions): DynamicScrollerMeasureQueue;
