import { Ref } from 'vue';
import { MaybeRef } from '@vueuse/core';
import { ItemContext, ScrollerArray } from './types';
declare type DyanmicSizeScrollerArgs<T> = {
    items: MaybeRef<ScrollerArray<T>>;
    assumedSize: MaybeRef<number>;
    scrollPosition: Ref<number>;
    containerSize: Ref<number>;
    padding: MaybeRef<number>;
    onItemsChanged?: (arg: {
        start: number;
        end: number;
    }) => void;
    onTotalSizeChanged?: (delta: number) => void;
};
export declare function useDynamicSizeScroller<T>(args: DyanmicSizeScrollerArgs<T>): {
    offsets: Ref<{
        [x: number]: number;
        length: number;
    }>;
    getOffset: (index: number) => number | undefined;
    measure: (index: number, size: number) => void;
    visibleItems: import("vue").ComputedRef<ItemContext<T>[]>;
    totalSize: import("vue").ComputedRef<number>;
};
export {};
