import { ComputedRef, CSSProperties, MaybeRefOrGetter, Ref } from 'vue'; import { CacheSnapshot, DefaultKeyField, ItemKey, ItemSizeValue, KeyFieldValue, ScrollDirection, ScrollState, ScrollToOptions, Sizes, ValidKeyField, ValidSizeField, View } from '../types'; import { ScrollerCallbacks, ScrollerOptionCallbacks, ScrollerOptionElements } from './scrollerOptions'; export interface UseRecycleScrollerOptions extends ScrollerOptionElements, ScrollerOptionCallbacks { items: MaybeRefOrGetter; keyField: KeyFieldValue; direction?: ScrollDirection; itemSize: ItemSizeValue; gridItems?: number; itemSecondarySize?: number; minItemSize: number | string | null; sizeField?: ValidSizeField; typeField: string; buffer: number; pageMode: boolean; shift?: boolean; cache?: CacheSnapshot; prerender: number; emitUpdate: boolean; disableTransform?: boolean; flowMode?: boolean; /** * Park recycled hidden views at custom main-axis position. */ hiddenPosition?: number; updateInterval: number; } export interface UseRecycleScrollerReturn> { pool: Ref>>; visiblePool: ComputedRef>>; totalSize: Ref; startSpacerSize: Ref; endSpacerSize: Ref; ready: Ref; sizes: ComputedRef; simpleArray: ComputedRef; scrollToItem: (index: number, options?: ScrollToOptions) => void; scrollToPosition: (position: number, options?: ScrollToOptions) => void; getScroll: () => ScrollState; findItemIndex: (offset: number) => number; getItemOffset: (index: number) => number; getItemSize: (index: number) => number; getViewStyle: (view: View) => CSSProperties; cacheSnapshot: ComputedRef; restoreCache: (snapshot: CacheSnapshot | null | undefined) => boolean; updateVisibleItems: (itemsChanged: boolean, checkPositionDiff?: boolean) => { continuous: boolean; }; handleResize: () => void; handleVisibilityChange: (isVisible: boolean, entry: IntersectionObserverEntry) => void; sortViews: () => void; } type ResolvedRecycleScrollerItems> = TOptions['items'] extends MaybeRefOrGetter ? TItems : never; type InferredRecycleScrollerItem> = ResolvedRecycleScrollerItems[number]; type InferredRecycleScrollerKeyField> = Extract>>; export declare function useRecycleScroller = DefaultKeyField, TSizeField extends string = 'size'>(options: MaybeRefOrGetter & { keyField: ValidKeyField; }>, el?: MaybeRefOrGetter, before?: MaybeRefOrGetter, after?: MaybeRefOrGetter, callbacks?: ScrollerCallbacks): UseRecycleScrollerReturn>; export declare function useRecycleScroller>(options: MaybeRefOrGetter, el?: MaybeRefOrGetter, before?: MaybeRefOrGetter, after?: MaybeRefOrGetter, callbacks?: ScrollerCallbacks): UseRecycleScrollerReturn, ItemKey, InferredRecycleScrollerKeyField>>; export {};