import { ComputedRef, CSSProperties, Ref, StyleValue, UnwrapRef } from 'vue';
import type { ViewerPdfPage, VirtualRange, ElementRect } from '@/utils/types';
import { ScrollMode, ViewMode } from '@/utils/enumerators';
interface UseVirtualListItem<T> {
    data: T;
    index: number;
}
export interface UseVirtualListReturn {
    list: Ref<UseVirtualListItem<ViewerPdfPage>[]>;
    scrollTo: (index: number, rect?: ElementRect) => void;
    pageGroups: ComputedRef<Array<UseVirtualListItem<ViewerPdfPage>[]> | undefined>;
    containerProps: {
        ref: Ref<HTMLElement | null>;
        onScroll: () => void;
        style: StyleValue;
    };
    wrapperProps: ComputedRef<{
        style: CSSProperties;
    }>;
    range: Ref<VirtualRange>;
    pagesPerRow: Ref<number>;
}
interface UseVirtualPagesProps {
    pages: Ref<ViewerPdfPage[]>;
    viewerRef: Ref<HTMLElement | undefined>;
    scrollMode: Ref<ScrollMode>;
    viewMode: Ref<ViewMode>;
    isRtl: boolean;
    smoothScroll: Ref<boolean>;
}
declare function useVirtualPages(props: UnwrapRef<UseVirtualPagesProps>): UseVirtualListReturn;
export default useVirtualPages;
