import { TableRowData, VirtualScrollItem, LoadMoreConfig } from '../types'; import { MaybeRefOrGetter, Ref, ComputedRef } from 'vue'; import { DebouncedFunc } from 'lodash-es'; export interface UseVirtualScrollOptions { /** 容器高度 */ containerHeight: number; /** 数据列表 */ dataSource: TableRowData[]; /** 预估行高 */ estimatedRowHeight: number; /** 缓冲区大小 */ bench?: number; /** 是否正在加载 */ loading?: boolean; /** 是否还有更多数据 */ hasMore?: boolean; /** LoadMore组件的预估高度 */ loadMoreHeight?: number; /** 加载更多回调 */ onLoadMore?: () => void; loadMoreConfig?: LoadMoreConfig; } export declare const useVirtualScroll: (options: MaybeRefOrGetter) => { containerRef: Ref; setContainerRef: (el: HTMLElement | undefined) => void; scrollTop: Ref; totalHeight: ComputedRef; visibleItems: ComputedRef; offsetY: ComputedRef; remainingHeight: ComputedRef; visibleRange: ComputedRef<{ start: number; end: number; showLoadMore: boolean | undefined; }>; shouldShowLoadMore: ComputedRef; handleScroll: (event: Event) => void; updateItemHeight: (index: number, height: number) => void; scrollToItem: (index: number) => void; setScrollTop: (top: number) => void; clearCache: (resetScroll?: boolean) => void; checkAndTriggerLoadMore: DebouncedFunc<(target: HTMLElement) => void>; };