import type { PropType, Component, CSSProperties } from 'vue';
import type { Key } from '../_util/type';
export declare type ScrollAlign = 'top' | 'bottom' | 'auto';
export declare type ScrollConfig = {
    index: number;
    align?: ScrollAlign;
    offset?: number;
} | {
    key: Key;
    align?: ScrollAlign;
    offset?: number;
};
export declare type ScrollTo = (arg: number | ScrollConfig) => void;
export interface ListState {
    scrollTop: number;
    scrollMoving: boolean;
}
declare const List: import("vue").DefineComponent<{
    prefixCls: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    data: import("vue-types").VueTypeValidableDef<unknown[]> & {
        default: () => unknown[];
    };
    height: import("vue-types").VueTypeValidableDef<number> & {
        default: number;
    };
    itemHeight: import("vue-types").VueTypeValidableDef<number> & {
        default: number;
    };
    /** If not match virtual scroll condition, Set List still use height of container. */
    fullHeight: import("vue-types").VueTypeValidableDef<boolean>;
    itemKey: {
        type: PropType<Key | ((item: Record<string, any>) => Key)>;
        required: true;
    };
    component: {
        type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
    };
    /** Set `false` will always use real scroll instead of virtual one */
    virtual: import("vue-types").VueTypeValidableDef<boolean>;
    children: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    onScroll: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    onMousedown: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    onMouseenter: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
}, {
    state: ListState;
    mergedData: import("vue").ComputedRef<any[]>;
    componentStyle: import("vue").ComputedRef<CSSProperties>;
    onFallbackScroll: (e: any) => void;
    onScrollBar: (newScrollTop: number) => void;
    componentRef: import("vue").Ref<any>;
    useVirtual: import("vue").ComputedRef<boolean>;
    calRes: import("vue").Ref<{
        scrollHeight?: number;
        start?: number;
        end?: number;
        offset?: number;
    }>;
    collectHeight: () => void;
    setInstance: (item: Record<string, any>, instance: any) => void;
    sharedConfig: {
        getKey: (item: Record<string, any>) => any;
    };
    scrollBarRef: import("vue").Ref<any>;
    fillerInnerRef: import("vue").Ref<any>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    prefixCls?: unknown;
    data?: unknown;
    height?: unknown;
    itemHeight?: unknown;
    fullHeight?: unknown;
    itemKey?: unknown;
    component?: unknown;
    virtual?: unknown;
    children?: unknown;
    onScroll?: unknown;
    onMousedown?: unknown;
    onMouseenter?: unknown;
} & {
    height: number;
    prefixCls: string;
    data: unknown[];
    itemKey: Key | ((item: Record<string, any>) => Key);
    itemHeight: number;
} & {
    virtual?: boolean;
    onMousedown?: (...args: any[]) => any;
    onMouseenter?: (...args: any[]) => any;
    onScroll?: (...args: any[]) => any;
    children?: (...args: any[]) => any;
    component?: unknown;
    fullHeight?: boolean;
}>, {
    height: number;
    prefixCls: string;
    data: unknown[];
    onMousedown: (...args: any[]) => any;
    onMouseenter: (...args: any[]) => any;
    onScroll: (...args: any[]) => any;
    children: (...args: any[]) => any;
    itemHeight: number;
}>;
export default List;
