import type { PropType, ExtractPropTypes, StyleValue } from 'vue';
import type { Arrayable, JSXElement } from '../../_utils/types';
import type { Virtualizer } from './core';
import type { IRecord } from '../../table/src/table/types';
export declare const _props: {
    height: {
        type: NumberConstructor;
    };
    maxHeight: {
        type: NumberConstructor;
    };
    itemHeight: {
        type: NumberConstructor;
    };
    dataSource: {
        type: PropType<IRecord<any>[]>;
        default: () => never[];
    };
    renderItem: {
        type: PropType<(item: IRecord, index: number) => JSXElement>;
    };
    class: {
        type: PropType<string | Arrayable<Record<string, boolean>>>;
    };
    style: {
        type: PropType<StyleValue>;
    };
};
export declare const _emits: {
    scroll: (instance: Virtualizer<Element, Element>, sync: boolean) => boolean;
};
export type VirtualListProps = ExtractPropTypes<typeof _props>;
export type VirtualListPropsEmits = typeof _emits;
export type VirtualListInstance = {
    SCROLL_TO_INDEX: (index: number) => void;
    SCROLL_TO_OFFSET: (offset: number) => void;
};
