import type { ExtractPropTypes, PropType } from 'vue';
import type { Indexable, StyleValue } from 'hongluan-ui/es/utils';
import type { Direction, LayoutDirection, ItemSize, GridItemKeyGetter } from './types';
export declare const virtualizedProps: {
    className: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    containerElement: {
        type: (ObjectConstructor | StringConstructor)[];
        default: string;
    };
    containerProps: {
        type: PropType<Indexable<any>>;
        default: () => {};
    };
    data: {
        type: PropType<any[]>;
        default: () => any[];
    };
    /**
     * @description controls the horizontal direction.
     */
    direction: {
        type: PropType<Direction>;
        default: string;
        validator: (val: Direction) => boolean;
    };
    height: {
        readonly type: PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    innerElement: {
        type: (ObjectConstructor | StringConstructor)[];
        default: string;
    };
    innerElementProps: {
        type: PropType<Indexable<any>>;
        default: () => {};
    };
    style: {
        type: PropType<StyleValue>;
    };
    useIsScrolling: {
        type: BooleanConstructor;
        default: boolean;
    };
    width: {
        readonly type: PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>;
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    perfMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    scrollbarAlwaysOn: {
        type: BooleanConstructor;
        default: boolean;
    };
};
export declare const virtualizedListProps: {
    className: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    containerElement: {
        type: (ObjectConstructor | StringConstructor)[];
        default: string;
    };
    containerProps: {
        type: PropType<Indexable<any>>;
        default: () => {};
    };
    data: {
        type: PropType<any[]>;
        default: () => any[];
    };
    /**
     * @description controls the horizontal direction.
     */
    direction: {
        type: PropType<Direction>;
        default: string;
        validator: (val: Direction) => boolean;
    };
    height: {
        readonly type: PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    innerElement: {
        type: (ObjectConstructor | StringConstructor)[];
        default: string;
    };
    innerElementProps: {
        type: PropType<Indexable<any>>;
        default: () => {};
    };
    style: {
        type: PropType<StyleValue>;
    };
    useIsScrolling: {
        type: BooleanConstructor;
        default: boolean;
    };
    width: {
        readonly type: PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>;
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    perfMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    scrollbarAlwaysOn: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @description describes how many items should be pre rendered to the head
     * and the tail of the window
     */
    cache: {
        type: PropType<number>;
        default: number;
    };
    estimatedItemSize: {
        type: PropType<number>;
    };
    /**
     * @description controls the list's orientation
     */
    layout: {
        type: PropType<LayoutDirection>;
        default: string;
    };
    initScrollOffset: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * @description describes the total number of the list.
     */
    total: {
        readonly type: PropType<number>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    itemSize: {
        type: PropType<number | ItemSize>;
        required: boolean;
    };
};
export declare const virtualizedGridProps: {
    className: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    containerElement: {
        type: (ObjectConstructor | StringConstructor)[];
        default: string;
    };
    containerProps: {
        type: PropType<Indexable<any>>;
        default: () => {};
    };
    data: {
        type: PropType<any[]>;
        default: () => any[];
    };
    /**
     * @description controls the horizontal direction.
     */
    direction: {
        type: PropType<Direction>;
        default: string;
        validator: (val: Direction) => boolean;
    };
    height: {
        readonly type: PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    innerElement: {
        type: (ObjectConstructor | StringConstructor)[];
        default: string;
    };
    innerElementProps: {
        type: PropType<Indexable<any>>;
        default: () => {};
    };
    style: {
        type: PropType<StyleValue>;
    };
    useIsScrolling: {
        type: BooleanConstructor;
        default: boolean;
    };
    width: {
        readonly type: PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>;
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    perfMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    scrollbarAlwaysOn: {
        type: BooleanConstructor;
        default: boolean;
    };
    columnCache: {
        type: PropType<number>;
        default: number;
    };
    columnWidth: {
        type: PropType<number | ItemSize>;
        required: boolean;
    };
    estimatedColumnWidth: {
        type: PropType<number>;
    };
    estimatedRowHeight: {
        type: PropType<number>;
    };
    initScrollLeft: {
        type: NumberConstructor;
        default: number;
    };
    initScrollTop: {
        type: NumberConstructor;
        default: number;
    };
    itemKey: {
        type: PropType<GridItemKeyGetter>;
        default: ({ columnIndex, rowIndex, }: {
            columnIndex: number;
            rowIndex: number;
        }) => string;
    };
    rowCache: {
        type: PropType<number>;
        default: number;
    };
    rowHeight: {
        type: PropType<number | ItemSize>;
        required: boolean;
    };
    totalColumn: {
        readonly type: PropType<number>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    totalRow: {
        readonly type: PropType<number>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    hScrollbarSize: {
        readonly type: NumberConstructor;
        readonly default: 6;
    };
    vScrollbarSize: {
        readonly type: NumberConstructor;
        readonly default: 6;
    };
    scrollbarStartGap: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    scrollbarEndGap: {
        readonly type: NumberConstructor;
        readonly default: 2;
    };
    role: StringConstructor;
};
export declare const virtualizedScrollbarProps: {
    alwaysOn: BooleanConstructor;
    class: StringConstructor;
    layout: {
        type: PropType<LayoutDirection>;
        default: string;
    };
    total: {
        readonly type: PropType<number>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    ratio: {
        type: NumberConstructor;
        required: boolean;
    };
    clientSize: {
        type: NumberConstructor;
        required: boolean;
    };
    scrollFrom: {
        type: NumberConstructor;
        required: boolean;
    };
    scrollbarSize: {
        readonly type: NumberConstructor;
        readonly default: 6;
    };
    startGap: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    endGap: {
        readonly type: NumberConstructor;
        readonly default: 2;
    };
    visible: BooleanConstructor;
};
export declare type VirtualizedProps = ExtractPropTypes<typeof virtualizedProps>;
export declare type VirtualizedListProps = ExtractPropTypes<typeof virtualizedListProps>;
export declare type VirtualizedGridProps = ExtractPropTypes<typeof virtualizedGridProps>;
export declare type VirtualizedScrollbarProps = ExtractPropTypes<typeof virtualizedScrollbarProps>;
