import { type CSSProperties } from 'vue';
import type { Align } from '../../types';
import type { DynamicRowHeight } from './types';
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    tag: {
        type: import("vue").PropType<keyof HTMLElementTagNameMap>;
        default: string;
    };
    class: {
        type: import("vue").PropType<string>;
    };
    style: {
        type: import("vue").PropType<CSSProperties>;
    };
    onResize: {
        type: import("vue").PropType<(size: {
            height: number;
            width: number;
        }, prevSize: {
            height: number;
            width: number;
        }) => void>;
    };
    rowCount: {
        type: import("vue").PropType<number>;
        required: true;
    };
    onRowsRendered: {
        type: import("vue").PropType<(visibleRows: {
            startIndex: number;
            stopIndex: number;
        }, allRows: {
            startIndex: number;
            stopIndex: number;
        }) => void>;
    };
    overscanCount: {
        type: import("vue").PropType<number>;
        default: number;
    };
    defaultHeight: {
        type: import("vue").PropType<number>;
        default: number;
    };
    rowHeight: {
        type: import("vue").PropType<string | number | DynamicRowHeight | ((index: number, cellProps: Record<string, unknown>) => number)>;
        required: true;
    };
    rowProps: {
        type: import("vue").PropType<{
            [x: string]: unknown;
        }>;
    };
}>, {
    element: HTMLDivElement | null;
    scrollToRow({ align, behavior, index, }: {
        align?: Align | undefined;
        behavior?: ScrollBehavior | undefined;
        index: number;
    }): void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    tag: {
        type: import("vue").PropType<keyof HTMLElementTagNameMap>;
        default: string;
    };
    class: {
        type: import("vue").PropType<string>;
    };
    style: {
        type: import("vue").PropType<CSSProperties>;
    };
    onResize: {
        type: import("vue").PropType<(size: {
            height: number;
            width: number;
        }, prevSize: {
            height: number;
            width: number;
        }) => void>;
    };
    rowCount: {
        type: import("vue").PropType<number>;
        required: true;
    };
    onRowsRendered: {
        type: import("vue").PropType<(visibleRows: {
            startIndex: number;
            stopIndex: number;
        }, allRows: {
            startIndex: number;
            stopIndex: number;
        }) => void>;
    };
    overscanCount: {
        type: import("vue").PropType<number>;
        default: number;
    };
    defaultHeight: {
        type: import("vue").PropType<number>;
        default: number;
    };
    rowHeight: {
        type: import("vue").PropType<string | number | DynamicRowHeight | ((index: number, cellProps: Record<string, unknown>) => number)>;
        required: true;
    };
    rowProps: {
        type: import("vue").PropType<{
            [x: string]: unknown;
        }>;
    };
}>> & Readonly<{}>, {
    tag: keyof HTMLElementTagNameMap;
    overscanCount: number;
    defaultHeight: number;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
    row?(_: {
        index: number;
        style: CSSProperties;
        ariaAttributes: {
            'aria-posinset': number;
            'aria-setsize': number;
            role: 'listitem';
        };
        props: {
            [x: string]: unknown;
        } & Record<string, unknown>;
    }): any;
    default?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
