import type { CSSProperties, ComponentInternalInstance, ExtractPropTypes } from 'vue'; export declare type Instance = ComponentInternalInstance; export declare type StyleValue = string | CSSProperties | Array; export declare type ScrollEvent = WheelEvent | MouseEvent; export declare type Alignment = 'auto' | 'smart' | 'center' | 'start' | 'end'; export declare type ItemSize = (idx: number) => number | number; export declare type Direction = 'ltr' | 'rtl'; export declare type LayoutDirection = 'horizontal' | 'vertical'; export declare type RTLOffsetType = 'negative' | 'positive-descending' | 'positive-ascending'; export declare type ItemProps = { data: T; style: CSSProperties; scrolling?: boolean; index: number; }; export declare type ListItem = { offset: number; size: number; }; export declare type ListCache = { items: Record; estimatedItemSize: number; lastVisitedIndex: number; clearCacheAfterIndex: (idx: number, forceUpdate?: boolean) => void; }; export declare type GridCache = { column: Record; row: Record; estimatedColumnWidth: number; estimatedRowHeight: number; lastVisitedColumnIndex: number; lastVisitedRowIndex: number; }; export declare type ScrollDir = 'forwards' | 'backwards'; export declare type ListItemSizer> = (props: ExtractPropTypes, index: number, cache: ReturnType

) => number; export declare type GetEstimatedTotalSize> = (props: ExtractPropTypes, cache: ReturnType

) => number; export declare type GetOffset> = (props: ExtractPropTypes, idx: number, alignment: Alignment, offset: number, cache: ReturnType

) => number; export declare type GetStartIndexForOffset> = (props: ExtractPropTypes, offset: number, cache: ReturnType

) => number; export declare type GetStopIndexForStartIndex> = (props: ExtractPropTypes, startIndex: number, scrollOffset: number, cache: ReturnType

) => number; export declare type PropValidator = (props: ExtractPropTypes) => void; export declare type InitCacheFunc = (props: ExtractPropTypes, cache: Instance) => P; export declare type InitListCacheFunc = InitCacheFunc; export declare type InitGridCacheFunc = InitCacheFunc; export declare type ListConstructorProps = InitListCacheFunc> = { name?: string; getItemOffset: ListItemSizer; getEstimatedTotalSize: GetEstimatedTotalSize; getItemSize: ListItemSizer; getOffset: GetOffset; getStartIndexForOffset: GetStartIndexForOffset; getStopIndexForStartIndex: GetStopIndexForStartIndex; initCache: P; clearCache: boolean; validateProps: PropValidator; }; export declare type ExposesStates = { isScrolling: boolean; updateRequested: boolean; }; export declare type SharedExposes = { windowRef: HTMLElement; innerRef: HTMLElement; getItemStyleCache: (_: any, __: any, ___: any) => CSSProperties; }; export declare type ListExposes = { scrollTo: (offset: number) => void; scrollToItem: (idx: number, alignment?: Alignment) => void; states: { scrollDir: Direction; scrollOffset: number; } & ExposesStates; } & SharedExposes; export declare type GridExposes = { states: { scrollLeft: number; scrollTop: number; xAxisScrollDir: Direction; yAxisScrollDir: Direction; } & ExposesStates; scrollTo: (props: { scrollLeft: number; scrollTop: number; }) => void; scrollToItem: (columnIndex?: number, rowIndex?: number, alignment?: Alignment) => void; } & SharedExposes; export declare type GetGridOffset> = (props: ExtractPropTypes, index: number, alignment: Alignment, offset: number, cache: ReturnType

, scrollbarWidth: number) => number; export declare type GetPosition> = (props: ExtractPropTypes, index: number, cache: ReturnType

) => [number, number]; export declare type GridConstructorProps = InitGridCacheFunc> = { name?: string; getColumnOffset: GetGridOffset; getColumnPosition: GetPosition; getColumnStartIndexForOffset: GetStartIndexForOffset; getColumnStopIndexForStartIndex: GetStopIndexForStartIndex; getEstimatedTotalHeight: GetEstimatedTotalSize; getEstimatedTotalWidth: GetEstimatedTotalSize; getRowOffset: GetGridOffset; getRowPosition: GetPosition; getRowStartIndexForOffset: GetStartIndexForOffset; getRowStopIndexForStartIndex: GetStopIndexForStartIndex; initCache: P; clearCache: boolean; validateProps: PropValidator; };