import { type CSSProperties } from 'vue';
import type { Align } from '../../types';
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    tag: {
        type: import("vue").PropType<keyof HTMLElementTagNameMap>;
        default: string;
    };
    dir: {
        type: import("vue").PropType<"rtl" | "ltr" | "auto">;
    };
    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>;
    };
    columnCount: {
        type: import("vue").PropType<number>;
        required: true;
    };
    columnWidth: {
        type: import("vue").PropType<string | number | ((index: number, cellProps: Record<string, unknown>) => number)>;
        required: true;
    };
    rowCount: {
        type: import("vue").PropType<number>;
        required: true;
    };
    overscanCount: {
        type: import("vue").PropType<number>;
        default: number;
    };
    cellProps: {
        type: import("vue").PropType<{
            [x: string]: unknown;
        }>;
    };
    defaultHeight: {
        type: import("vue").PropType<number>;
        default: number;
    };
    defaultWidth: {
        type: import("vue").PropType<number>;
        default: number;
    };
    onCellsRendered: {
        type: import("vue").PropType<(visibleCells: {
            columnStartIndex: number;
            columnStopIndex: number;
            rowStartIndex: number;
            rowStopIndex: number;
        }, allCells: {
            columnStartIndex: number;
            columnStopIndex: number;
            rowStartIndex: number;
            rowStopIndex: number;
        }) => void>;
    };
    rowHeight: {
        type: import("vue").PropType<string | number | ((index: number, cellProps: Record<string, unknown>) => number)>;
        required: true;
    };
}>, {
    element: HTMLDivElement | null;
    scrollToCell({ behavior, columnAlign, columnIndex, rowAlign, rowIndex, }: {
        behavior?: ScrollBehavior | undefined;
        columnAlign?: Align | undefined;
        columnIndex: number;
        rowAlign?: Align | undefined;
        rowIndex: number;
    }): void;
    scrollToColumn({ align, behavior, index, }: {
        align?: Align | undefined;
        behavior?: ScrollBehavior | undefined;
        index: number;
    }): void;
    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;
    };
    dir: {
        type: import("vue").PropType<"rtl" | "ltr" | "auto">;
    };
    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>;
    };
    columnCount: {
        type: import("vue").PropType<number>;
        required: true;
    };
    columnWidth: {
        type: import("vue").PropType<string | number | ((index: number, cellProps: Record<string, unknown>) => number)>;
        required: true;
    };
    rowCount: {
        type: import("vue").PropType<number>;
        required: true;
    };
    overscanCount: {
        type: import("vue").PropType<number>;
        default: number;
    };
    cellProps: {
        type: import("vue").PropType<{
            [x: string]: unknown;
        }>;
    };
    defaultHeight: {
        type: import("vue").PropType<number>;
        default: number;
    };
    defaultWidth: {
        type: import("vue").PropType<number>;
        default: number;
    };
    onCellsRendered: {
        type: import("vue").PropType<(visibleCells: {
            columnStartIndex: number;
            columnStopIndex: number;
            rowStartIndex: number;
            rowStopIndex: number;
        }, allCells: {
            columnStartIndex: number;
            columnStopIndex: number;
            rowStartIndex: number;
            rowStopIndex: number;
        }) => void>;
    };
    rowHeight: {
        type: import("vue").PropType<string | number | ((index: number, cellProps: Record<string, unknown>) => number)>;
        required: true;
    };
}>> & Readonly<{}>, {
    tag: keyof HTMLElementTagNameMap;
    overscanCount: number;
    defaultHeight: number;
    defaultWidth: number;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
    cell?(_: {
        columnIndex: number;
        rowIndex: number;
        style: CSSProperties;
        ariaAttributes: {
            'aria-colindex': number;
            role: 'gridcell';
        };
        props: {
            [x: string]: unknown;
        } & Record<string, unknown>;
    }): any;
    default?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
