import type { ExtractPublicPropTypes, PropType, VNodeChild } from 'vue';
import type { ScrollbarProps } from '../scrollbar/const';
type ItemData = Record<string, any>;
export declare const virtualScrollerProps: {
    readonly scrollbarProps: PropType<ScrollbarProps>;
    readonly dataSources: {
        readonly type: PropType<ItemData[]>;
        readonly default: () => ItemData[];
    };
    readonly keeps: {
        readonly type: NumberConstructor;
        readonly default: 30;
    };
    readonly direction: {
        readonly type: PropType<"vertical" | "horizontal">;
        readonly default: "vertical";
    };
    readonly wrapTag: {
        readonly type: PropType<keyof import("vue").IntrinsicElementAttributes>;
        readonly default: "div";
    };
    readonly wrapClass: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly wrapStyle: {
        readonly type: ObjectConstructor;
    };
    readonly itemSize: {
        readonly type: NumberConstructor;
        readonly required: true;
    };
    readonly itemProps: PropType<({ item, index }: {
        item: ItemData;
        index: number;
    }) => any>;
    readonly itemTag: {
        readonly type: PropType<keyof import("vue").IntrinsicElementAttributes>;
        readonly default: "div";
    };
    readonly renderItemList: {
        readonly type: PropType<(itemVNodes: VNodeChild) => VNodeChild>;
    };
    readonly topThreshold: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    readonly bottomThreshold: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
};
export type VirtualScrollerProps = ExtractPublicPropTypes<typeof virtualScrollerProps>;
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    readonly scrollbarProps: PropType<ScrollbarProps>;
    readonly dataSources: {
        readonly type: PropType<ItemData[]>;
        readonly default: () => ItemData[];
    };
    readonly keeps: {
        readonly type: NumberConstructor;
        readonly default: 30;
    };
    readonly direction: {
        readonly type: PropType<"vertical" | "horizontal">;
        readonly default: "vertical";
    };
    readonly wrapTag: {
        readonly type: PropType<keyof import("vue").IntrinsicElementAttributes>;
        readonly default: "div";
    };
    readonly wrapClass: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly wrapStyle: {
        readonly type: ObjectConstructor;
    };
    readonly itemSize: {
        readonly type: NumberConstructor;
        readonly required: true;
    };
    readonly itemProps: PropType<({ item, index }: {
        item: ItemData;
        index: number;
    }) => any>;
    readonly itemTag: {
        readonly type: PropType<keyof import("vue").IntrinsicElementAttributes>;
        readonly default: "div";
    };
    readonly renderItemList: {
        readonly type: PropType<(itemVNodes: VNodeChild) => VNodeChild>;
    };
    readonly topThreshold: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    readonly bottomThreshold: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "toTop" | "toBottom")[], "scroll" | "toTop" | "toBottom", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    readonly scrollbarProps: PropType<ScrollbarProps>;
    readonly dataSources: {
        readonly type: PropType<ItemData[]>;
        readonly default: () => ItemData[];
    };
    readonly keeps: {
        readonly type: NumberConstructor;
        readonly default: 30;
    };
    readonly direction: {
        readonly type: PropType<"vertical" | "horizontal">;
        readonly default: "vertical";
    };
    readonly wrapTag: {
        readonly type: PropType<keyof import("vue").IntrinsicElementAttributes>;
        readonly default: "div";
    };
    readonly wrapClass: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly wrapStyle: {
        readonly type: ObjectConstructor;
    };
    readonly itemSize: {
        readonly type: NumberConstructor;
        readonly required: true;
    };
    readonly itemProps: PropType<({ item, index }: {
        item: ItemData;
        index: number;
    }) => any>;
    readonly itemTag: {
        readonly type: PropType<keyof import("vue").IntrinsicElementAttributes>;
        readonly default: "div";
    };
    readonly renderItemList: {
        readonly type: PropType<(itemVNodes: VNodeChild) => VNodeChild>;
    };
    readonly topThreshold: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    readonly bottomThreshold: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
}>> & Readonly<{
    onScroll?: (...args: any[]) => any;
    onToTop?: (...args: any[]) => any;
    onToBottom?: (...args: any[]) => any;
}>, {
    readonly dataSources: ItemData[];
    readonly keeps: number;
    readonly direction: "vertical" | "horizontal";
    readonly topThreshold: number;
    readonly bottomThreshold: number;
    readonly wrapTag: keyof import("vue").IntrinsicElementAttributes;
    readonly wrapClass: string;
    readonly itemTag: keyof import("vue").IntrinsicElementAttributes;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
