import { ComputedRef, MaybeRefOrGetter } from 'vue'; import { KeyValue, ScrollDirection, VScrollData } from '../types'; import { DynamicScrollerMeasureQueue } from './dynamicScrollerMeasureQueue'; export interface DynamicScrollerUpdatePayload { force: boolean; } export interface DynamicScrollerMeasurementContext { vscrollData: VScrollData; resizeObserver: ResizeObserver | undefined; measureQueue: DynamicScrollerMeasureQueue; direction: ComputedRef; undefinedMap: Record; undefinedSizeCount: { value: number; }; onVscrollUpdate: (callback: (payload: DynamicScrollerUpdatePayload) => void) => () => void; } export interface DynamicScrollerItemControllerOptions { item: TItem; watchData: boolean; active: boolean; index?: number; sizeDependencies?: Record | unknown[] | null; emitResize: boolean; } export interface DynamicScrollerItemControllerCallbacks { onResize?: (id: KeyValue) => void; } export interface DynamicScrollerItemController { id: ComputedRef; size: ComputedRef; finalActive: ComputedRef; updateSize: () => void; mount: () => void; unmount: () => void; } export declare function createDynamicScrollerItemController(options: MaybeRefOrGetter>, el: MaybeRefOrGetter, context: DynamicScrollerMeasurementContext, callbacks?: MaybeRefOrGetter): DynamicScrollerItemController;