import type { CSSProperties } from 'vue';
import type { ListConstructorProps, Alignment } from '../types';
import type { VirtualizedListProps } from '../props';
declare const createList: ({ name, getOffset, getItemSize, getItemOffset, getEstimatedTotalSize, getStartIndexForOffset, getStopIndexForStartIndex, initCache, clearCache, validateProps, }: ListConstructorProps<VirtualizedListProps>) => import("vue").DefineComponent<{
    className: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    containerElement: {
        type: (ObjectConstructor | StringConstructor)[];
        default: string;
    };
    containerProps: {
        type: import("vue").PropType<import("hongluan-ui/es/utils").Indexable<any>>;
        default: () => {};
    };
    data: {
        type: import("vue").PropType<any[]>;
        default: () => any[];
    };
    direction: {
        type: import("vue").PropType<import("../types").Direction>;
        default: string;
        validator: (val: import("../types").Direction) => boolean;
    };
    height: {
        readonly type: import("vue").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: import("vue").PropType<import("hongluan-ui/es/utils").Indexable<any>>;
        default: () => {};
    };
    style: {
        type: import("vue").PropType<import("hongluan-ui/es/utils").StyleValue>;
    };
    useIsScrolling: {
        type: BooleanConstructor;
        default: boolean;
    };
    width: {
        readonly type: import("vue").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;
    };
    cache: {
        type: import("vue").PropType<number>;
        default: number;
    };
    estimatedItemSize: {
        type: import("vue").PropType<number>;
    };
    layout: {
        type: import("vue").PropType<import("../types").LayoutDirection>;
        default: string;
    };
    initScrollOffset: {
        type: NumberConstructor;
        default: number;
    };
    total: {
        readonly type: import("vue").PropType<number>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    itemSize: {
        type: import("vue").PropType<number | import("../types").ItemSize>;
        required: boolean;
    };
}, {
    clientSize: import("vue").ComputedRef<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>;
    estimatedTotalSize: import("vue").ComputedRef<number>;
    windowStyle: import("vue").ComputedRef<unknown[]>;
    windowRef: import("vue").Ref<HTMLElement>;
    innerRef: import("vue").Ref<HTMLElement>;
    innerStyle: import("vue").ComputedRef<{
        height: string;
        pointerEvents: string;
        width: string;
    }>;
    itemsToRender: import("vue").ComputedRef<number[]>;
    scrollbarRef: import("vue").Ref<any>;
    states: import("vue").Ref<{
        isScrolling: boolean;
        scrollDir: string;
        scrollOffset: number;
        updateRequested: boolean;
        isScrollbarDragging: boolean;
        scrollbarAlwaysOn: boolean;
    }>;
    getItemStyle: (idx: number) => CSSProperties;
    onScroll: (e: Event) => void;
    onScrollbarScroll: (distanceToGo: number, totalSteps: number) => void;
    onWheel: (e: WheelEvent) => void;
    scrollTo: (offset: number) => void;
    scrollToItem: (idx: number, alignment?: Alignment) => void;
    resetScrollTop: () => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "itemRendered")[], "scroll" | "itemRendered", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    className: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    containerElement: {
        type: (ObjectConstructor | StringConstructor)[];
        default: string;
    };
    containerProps: {
        type: import("vue").PropType<import("hongluan-ui/es/utils").Indexable<any>>;
        default: () => {};
    };
    data: {
        type: import("vue").PropType<any[]>;
        default: () => any[];
    };
    direction: {
        type: import("vue").PropType<import("../types").Direction>;
        default: string;
        validator: (val: import("../types").Direction) => boolean;
    };
    height: {
        readonly type: import("vue").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: import("vue").PropType<import("hongluan-ui/es/utils").Indexable<any>>;
        default: () => {};
    };
    style: {
        type: import("vue").PropType<import("hongluan-ui/es/utils").StyleValue>;
    };
    useIsScrolling: {
        type: BooleanConstructor;
        default: boolean;
    };
    width: {
        readonly type: import("vue").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;
    };
    cache: {
        type: import("vue").PropType<number>;
        default: number;
    };
    estimatedItemSize: {
        type: import("vue").PropType<number>;
    };
    layout: {
        type: import("vue").PropType<import("../types").LayoutDirection>;
        default: string;
    };
    initScrollOffset: {
        type: NumberConstructor;
        default: number;
    };
    total: {
        readonly type: import("vue").PropType<number>;
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    itemSize: {
        type: import("vue").PropType<number | import("../types").ItemSize>;
        required: boolean;
    };
}>> & {
    onScroll?: (...args: any[]) => any;
    onItemRendered?: (...args: any[]) => any;
}, {
    data: any[];
    className: string | Record<string, any> | unknown[];
    layout: import("../types").LayoutDirection;
    direction: import("../types").Direction;
    scrollbarAlwaysOn: boolean;
    cache: number;
    useIsScrolling: boolean;
    perfMode: boolean;
    containerElement: string | Record<string, any>;
    containerProps: {};
    innerElement: string | Record<string, any>;
    innerElementProps: {};
    initScrollOffset: number;
}>;
export default createList;
