import { type ComputedRef, type CSSProperties, type Ref } from 'vue';
import type { Align } from '../types';
import type { Direction, SizeFunction } from './types';
export declare function useVirtualizer<Props extends object>({ containerElement, containerStyle, defaultContainerSize, direction, isRtl, itemCount: itemCountInput, itemProps: itemPropsInput, itemSize: itemSizeProp, onResize, overscanCount, }: {
    containerElement: Ref<HTMLElement | null>;
    containerStyle?: CSSProperties;
    defaultContainerSize?: number;
    direction: Direction;
    isRtl?: boolean;
    itemCount: number | Ref<number> | ComputedRef<number>;
    itemProps: Props | ComputedRef<Props>;
    itemSize: number | string | SizeFunction<Props> | Ref<number | string | SizeFunction<Props>> | ComputedRef<number | string | SizeFunction<Props>>;
    onResize: ((size: {
        height: number;
        width: number;
    }, prevSize: {
        height: number;
        width: number;
    }) => void) | undefined;
    overscanCount: number;
}): {
    getCellBounds: (index: number) => import("./types").Bounds;
    getEstimatedSize: ComputedRef<number>;
    scrollToIndex: ({ align, containerScrollOffset, index, }: {
        align?: Align | undefined;
        containerScrollOffset: number;
        index: number;
    }) => number | undefined;
    startIndexOverscan: ComputedRef<number>;
    startIndexVisible: ComputedRef<number>;
    stopIndexOverscan: ComputedRef<number>;
    stopIndexVisible: ComputedRef<number>;
};
