/**
 * props declaration for default, item and slot component
 */
import type { PropType, VNode } from 'vue';
import type { ExtractPublicPropTypes } from '../_util/interface';
export type DataSource = any;
export declare const virtualProps: {
    readonly shadow: {
        type: PropType<import("../scrollbar/const").ShadowType>;
        default: boolean;
    };
    readonly height: {
        type: PropType<string | number>;
    };
    readonly maxHeight: {
        type: PropType<string | number>;
    };
    readonly native: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly always: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly minSize: {
        type: NumberConstructor;
        default: number;
    };
    readonly horizontalRatioStyle: {
        type: PropType<import("vue").StyleValue>;
    };
    readonly verticalRatioStyle: {
        type: PropType<import("vue").StyleValue>;
    };
    readonly shadowStyle: {
        type: PropType<import("vue").StyleValue>;
    };
    readonly dataKey: {
        readonly type: PropType<string | ((dataSource: DataSource) => string | number)>;
        readonly required: true;
    };
    readonly dataSources: {
        readonly type: PropType<any[]>;
        readonly required: true;
        readonly default: () => DataSource[];
    };
    readonly keeps: {
        readonly type: NumberConstructor;
        readonly default: 30;
    };
    readonly extraProps: {
        readonly type: ObjectConstructor;
    };
    readonly estimateSize: {
        readonly type: NumberConstructor;
        readonly default: 50;
    };
    readonly observeResize: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly direction: {
        readonly type: PropType<"vertical" | "horizontal">;
        readonly default: "vertical";
    };
    readonly start: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    readonly offset: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    readonly topThreshold: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    readonly bottomThreshold: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    readonly pageMode: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly wrapTag: {
        readonly type: StringConstructor;
        readonly default: "div";
    };
    readonly wrapClass: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly wrapStyle: {
        readonly type: ObjectConstructor;
    };
    readonly renderItemList: {
        readonly type: PropType<(itemVNodes: VNode[]) => VNode[]>;
    };
};
export type VirtualProps = ExtractPublicPropTypes<typeof virtualProps>;
export declare const itemProps: {
    readonly index: {
        readonly type: NumberConstructor;
    };
    readonly horizontal: {
        readonly type: BooleanConstructor;
    };
    readonly source: {
        readonly type: PropType<any>;
    };
    readonly uniqueKey: {
        readonly type: PropType<string | number>;
    };
    readonly observeResize: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
};
