import type { PropType, Ref } from 'vue'; import type { SelectItemKey } from '../util/index.js'; type VirtualProps = { itemHeight: number | string | null | undefined; itemKey: SelectItemKey; height: number | string | undefined; }; export declare const makeVirtualProps: (defaults?: Defaults | undefined) => { itemHeight: unknown extends Defaults["itemHeight"] ? { type: (NumberConstructor | StringConstructor)[]; default: null; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: null; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["itemHeight"] ? string | number : Defaults["itemHeight"] | NonNullable; }; itemKey: unknown extends Defaults["itemKey"] ? { type: PropType; default: null; } : Omit<{ type: PropType; default: null; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["itemKey"] ? SelectItemKey : Defaults["itemKey"] | NonNullable; }; height: unknown extends Defaults["height"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable; }; }; export declare function useVirtual(props: VirtualProps, items: Ref): { calculateVisibleItems: () => void; containerRef: Ref; markerRef: Ref; computedItems: import("vue").ComputedRef<{ raw: T; index: number; key: any; }[]>; paddingTop: import("vue").ShallowRef; paddingBottom: import("vue").ShallowRef; scrollToIndex: (index: number) => void; handleScroll: () => void; handleScrollend: () => void; handleItemResize: (index: number, height: number) => void; };