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; /** * Pause queue draining while the scroller is in a latency-sensitive phase such as active scrolling. */ pause: () => void; /** * Resume draining and immediately schedule a flush when pending work exists. */ resume: () => 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;