import { Ref } from 'vue'; export interface InfiniteScrollOptions { bottomThreshold?: number; topThreshold?: number; throttleDelay?: number; disabled?: Ref; onLoadMore?: () => Promise | void; onLoadPrevious?: () => Promise | void; debug?: boolean; } export interface ScrollInfo { scrollTop: number; scrollHeight: number; clientHeight: number; distanceToBottom: number; distanceToTop: number; isNearBottom: boolean; isNearTop: boolean; scrollDirection: 'up' | 'down' | 'none'; } export interface InfiniteScrollState { isLoadingMore: Ref; isLoadingPrevious: Ref; hasMoreData: Ref; hasPreviousData: Ref; } export interface UseInfiniteScrollReturn extends InfiniteScrollState { scrollInfo: Ref; handleScroll: (event: Event) => void; reset: () => void; triggerLoadMore: () => void; triggerLoadPrevious: () => void; setDataState: (options: { hasMore?: boolean; hasPrevious?: boolean; }) => void; } export declare function useInfiniteScroll(options?: InfiniteScrollOptions): UseInfiniteScrollReturn;