import type { App } from 'vue';
import type { ArcoOptions } from '../_utils/types';
import _Table from './table';
import _Thead from './table-thead';
import _Tbody from './table-tbody';
import _Tr from './table-tr';
import _Th from './table-th';
import _Td from './table-td';
import _Column from './table-column';
declare const Table: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        columns: {
            type: import("vue").PropType<import("./interface").TableColumnData[]>;
            default: () => never[];
        };
        data: {
            type: import("vue").PropType<import("./interface").TableData[]>;
            default: () => never[];
        };
        bordered: {
            type: import("vue").PropType<boolean | import("./interface").TableBorder>;
            default: boolean;
        };
        hoverable: {
            type: BooleanConstructor;
            default: boolean;
        };
        stripe: {
            type: BooleanConstructor;
            default: boolean;
        };
        size: {
            type: import("vue").PropType<"mini" | "small" | "medium" | "large">;
            default: () => "mini" | "small" | "medium" | "large";
        };
        tableLayoutFixed: {
            type: BooleanConstructor;
            default: boolean;
        };
        loading: {
            type: (BooleanConstructor | ObjectConstructor)[];
            default: boolean;
        };
        rowSelection: {
            type: import("vue").PropType<import("./interface").TableRowSelection>;
        };
        expandable: {
            type: import("vue").PropType<import("./interface").TableExpandable>;
        };
        scroll: {
            type: import("vue").PropType<{
                x?: string | number | undefined;
                y?: string | number | undefined;
                minWidth?: string | number | undefined;
                maxHeight?: string | number | undefined;
            }>;
        };
        pagination: {
            type: import("vue").PropType<boolean | import("..").PaginationProps>;
            default: boolean;
        };
        pagePosition: {
            type: import("vue").PropType<"br" | "tr" | "top" | "bottom" | "tl" | "bl">;
            default: string;
        };
        indentSize: {
            type: NumberConstructor;
            default: number;
        };
        rowKey: {
            type: StringConstructor;
            default: string;
        };
        showHeader: {
            type: BooleanConstructor;
            default: boolean;
        };
        virtualListProps: {
            type: import("vue").PropType<import("../_components/virtual-list-v2/interface").VirtualListProps>;
        };
        spanMethod: {
            type: import("vue").PropType<(data: {
                record: import("./interface").TableData;
                column: import("./interface").TableColumnData | import("./interface").TableOperationColumn;
                rowIndex: number;
                columnIndex: number;
            }) => void | {
                rowspan?: number | undefined;
                colspan?: number | undefined;
            }>;
        };
        spanAll: {
            type: BooleanConstructor;
            default: boolean;
        };
        components: {
            type: import("vue").PropType<import("./interface").TableComponents>;
        };
        loadMore: {
            type: import("vue").PropType<(record: import("./interface").TableData, done: (children?: import("./interface").TableData[] | undefined) => void) => void>;
        };
        filterIconAlignLeft: {
            type: BooleanConstructor;
            default: boolean;
        };
        hideExpandButtonOnEmpty: {
            type: BooleanConstructor;
            default: boolean;
        };
        rowClass: {
            type: import("vue").PropType<string | any[] | Record<string, any> | ((record: import("./interface").TableData, rowIndex: number) => any)>;
        };
        draggable: {
            type: import("vue").PropType<import("./interface").TableDraggable>;
        };
        rowNumber: {
            type: (BooleanConstructor | ObjectConstructor)[];
        };
        columnResizable: {
            type: BooleanConstructor;
        };
        summary: {
            type: import("vue").PropType<boolean | ((params: {
                columns: import("./interface").TableColumnData[];
                data: import("./interface").TableData[];
            }) => import("./interface").TableData[])>;
        };
        summaryText: {
            type: StringConstructor;
            default: string;
        };
        summarySpanMethod: {
            type: import("vue").PropType<(data: {
                record: import("./interface").TableData;
                column: import("./interface").TableColumnData | import("./interface").TableOperationColumn;
                rowIndex: number;
                columnIndex: number;
            }) => void | {
                rowspan?: number | undefined;
                colspan?: number | undefined;
            }>;
        };
        selectedKeys: {
            type: import("vue").PropType<(string | number)[]>;
        };
        defaultSelectedKeys: {
            type: import("vue").PropType<(string | number)[]>;
        };
        expandedKeys: {
            type: import("vue").PropType<(string | number)[]>;
        };
        defaultExpandedKeys: {
            type: import("vue").PropType<(string | number)[]>;
        };
        defaultExpandAllRows: {
            type: BooleanConstructor;
            default: boolean;
        };
        stickyHeader: {
            type: (BooleanConstructor | NumberConstructor)[];
            default: boolean;
        };
        scrollbar: {
            type: import("vue").PropType<boolean | import("..").ScrollbarProps>;
            default: boolean;
        };
        showEmptyTree: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{
        onChange?: ((data: import("./interface").TableData[], extra: import("./interface").TableChangeExtra, currentData: import("./interface").TableData[]) => any) | undefined;
        onSelect?: ((rowKeys: (string | number)[], rowKey: string | number, record: import("./interface").TableData) => any) | undefined;
        onPageChange?: ((page: number) => any) | undefined;
        onPageSizeChange?: ((pageSize: number) => any) | undefined;
        "onUpdate:selectedKeys"?: ((rowKeys: (string | number)[]) => any) | undefined;
        "onUpdate:expandedKeys"?: ((rowKeys: (string | number)[]) => any) | undefined;
        onExpand?: ((rowKey: string | number, record: import("./interface").TableData) => any) | undefined;
        onExpandedChange?: ((rowKeys: (string | number)[]) => any) | undefined;
        onSelectAll?: ((checked: boolean) => any) | undefined;
        onSelectionChange?: ((rowKeys: (string | number)[]) => any) | undefined;
        onSorterChange?: ((dataIndex: string, direction: string) => any) | undefined;
        onFilterChange?: ((dataIndex: string, filteredValues: string[]) => any) | undefined;
        onCellMouseEnter?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onCellMouseLeave?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onCellClick?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onRowClick?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
        onHeaderClick?: ((column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onColumnResize?: ((dataIndex: string, width: number) => any) | undefined;
        onRowDblclick?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
        onCellDblclick?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onRowContextmenu?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
        onCellContextmenu?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
    }>, {
        render: () => import("vue/jsx-runtime").JSX.Element;
        selfExpand: (rowKey: import("../_utils/types").BaseType | import("../_utils/types").BaseType[], expanded?: boolean) => void;
        selfExpandAll: (expanded?: boolean) => void;
        selfSelect: (rowKey: import("../_utils/types").BaseType | import("../_utils/types").BaseType[], checked?: boolean) => void;
        selfSelectAll: (checked?: boolean) => void;
        selfResetFilters: (dataIndex?: string | string[] | undefined) => void;
        selfClearFilters: (dataIndex?: string | string[] | undefined) => void;
        selfResetSorters: () => void;
        selfClearSorters: () => void;
    }, {}, {}, {
        selectAll(checked?: boolean | undefined): void;
        select(rowKey: string | number | (string | number)[], checked?: boolean | undefined): void;
        expandAll(checked?: boolean | undefined): void;
        expand(rowKey: string | number | (string | number)[], checked?: boolean | undefined): void;
        resetFilters(dataIndex?: string | string[] | undefined): void;
        clearFilters(dataIndex?: string | string[] | undefined): void;
        resetSorters(): void;
        clearSorters(): void;
    }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        'update:selectedKeys': (rowKeys: (string | number)[]) => true;
        'update:expandedKeys': (rowKeys: (string | number)[]) => true;
        expand: (rowKey: string | number, record: import("./interface").TableData) => true;
        expandedChange: (rowKeys: (string | number)[]) => true;
        select: (rowKeys: (string | number)[], rowKey: string | number, record: import("./interface").TableData) => true;
        selectAll: (checked: boolean) => true;
        selectionChange: (rowKeys: (string | number)[]) => true;
        sorterChange: (dataIndex: string, direction: string) => true;
        filterChange: (dataIndex: string, filteredValues: string[]) => true;
        pageChange: (page: number) => true;
        pageSizeChange: (pageSize: number) => true;
        change: (data: import("./interface").TableData[], extra: import("./interface").TableChangeExtra, currentData: import("./interface").TableData[]) => true;
        cellMouseEnter: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
        cellMouseLeave: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
        cellClick: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
        rowClick: (record: import("./interface").TableData, ev: Event) => true;
        headerClick: (column: import("./interface").TableColumnData, ev: Event) => true;
        columnResize: (dataIndex: string, width: number) => true;
        rowDblclick: (record: import("./interface").TableData, ev: Event) => true;
        cellDblclick: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
        rowContextmenu: (record: import("./interface").TableData, ev: Event) => true;
        cellContextmenu: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
    }, import("vue").PublicProps, {
        size: "mini" | "small" | "medium" | "large";
        data: import("./interface").TableData[];
        loading: boolean | Record<string, any>;
        bordered: boolean | import("./interface").TableBorder;
        scrollbar: boolean | import("..").ScrollbarProps;
        columns: import("./interface").TableColumnData[];
        hoverable: boolean;
        stripe: boolean;
        tableLayoutFixed: boolean;
        pagination: boolean | import("..").PaginationProps;
        pagePosition: "br" | "tr" | "top" | "bottom" | "tl" | "bl";
        indentSize: number;
        rowKey: string;
        showHeader: boolean;
        spanAll: boolean;
        filterIconAlignLeft: boolean;
        hideExpandButtonOnEmpty: boolean;
        columnResizable: boolean;
        summaryText: string;
        defaultExpandAllRows: boolean;
        stickyHeader: number | boolean;
        showEmptyTree: boolean;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        columns: {
            type: import("vue").PropType<import("./interface").TableColumnData[]>;
            default: () => never[];
        };
        data: {
            type: import("vue").PropType<import("./interface").TableData[]>;
            default: () => never[];
        };
        bordered: {
            type: import("vue").PropType<boolean | import("./interface").TableBorder>;
            default: boolean;
        };
        hoverable: {
            type: BooleanConstructor;
            default: boolean;
        };
        stripe: {
            type: BooleanConstructor;
            default: boolean;
        };
        size: {
            type: import("vue").PropType<"mini" | "small" | "medium" | "large">;
            default: () => "mini" | "small" | "medium" | "large";
        };
        tableLayoutFixed: {
            type: BooleanConstructor;
            default: boolean;
        };
        loading: {
            type: (BooleanConstructor | ObjectConstructor)[];
            default: boolean;
        };
        rowSelection: {
            type: import("vue").PropType<import("./interface").TableRowSelection>;
        };
        expandable: {
            type: import("vue").PropType<import("./interface").TableExpandable>;
        };
        scroll: {
            type: import("vue").PropType<{
                x?: string | number | undefined;
                y?: string | number | undefined;
                minWidth?: string | number | undefined;
                maxHeight?: string | number | undefined;
            }>;
        };
        pagination: {
            type: import("vue").PropType<boolean | import("..").PaginationProps>;
            default: boolean;
        };
        pagePosition: {
            type: import("vue").PropType<"br" | "tr" | "top" | "bottom" | "tl" | "bl">;
            default: string;
        };
        indentSize: {
            type: NumberConstructor;
            default: number;
        };
        rowKey: {
            type: StringConstructor;
            default: string;
        };
        showHeader: {
            type: BooleanConstructor;
            default: boolean;
        };
        virtualListProps: {
            type: import("vue").PropType<import("../_components/virtual-list-v2/interface").VirtualListProps>;
        };
        spanMethod: {
            type: import("vue").PropType<(data: {
                record: import("./interface").TableData;
                column: import("./interface").TableColumnData | import("./interface").TableOperationColumn;
                rowIndex: number;
                columnIndex: number;
            }) => void | {
                rowspan?: number | undefined;
                colspan?: number | undefined;
            }>;
        };
        spanAll: {
            type: BooleanConstructor;
            default: boolean;
        };
        components: {
            type: import("vue").PropType<import("./interface").TableComponents>;
        };
        loadMore: {
            type: import("vue").PropType<(record: import("./interface").TableData, done: (children?: import("./interface").TableData[] | undefined) => void) => void>;
        };
        filterIconAlignLeft: {
            type: BooleanConstructor;
            default: boolean;
        };
        hideExpandButtonOnEmpty: {
            type: BooleanConstructor;
            default: boolean;
        };
        rowClass: {
            type: import("vue").PropType<string | any[] | Record<string, any> | ((record: import("./interface").TableData, rowIndex: number) => any)>;
        };
        draggable: {
            type: import("vue").PropType<import("./interface").TableDraggable>;
        };
        rowNumber: {
            type: (BooleanConstructor | ObjectConstructor)[];
        };
        columnResizable: {
            type: BooleanConstructor;
        };
        summary: {
            type: import("vue").PropType<boolean | ((params: {
                columns: import("./interface").TableColumnData[];
                data: import("./interface").TableData[];
            }) => import("./interface").TableData[])>;
        };
        summaryText: {
            type: StringConstructor;
            default: string;
        };
        summarySpanMethod: {
            type: import("vue").PropType<(data: {
                record: import("./interface").TableData;
                column: import("./interface").TableColumnData | import("./interface").TableOperationColumn;
                rowIndex: number;
                columnIndex: number;
            }) => void | {
                rowspan?: number | undefined;
                colspan?: number | undefined;
            }>;
        };
        selectedKeys: {
            type: import("vue").PropType<(string | number)[]>;
        };
        defaultSelectedKeys: {
            type: import("vue").PropType<(string | number)[]>;
        };
        expandedKeys: {
            type: import("vue").PropType<(string | number)[]>;
        };
        defaultExpandedKeys: {
            type: import("vue").PropType<(string | number)[]>;
        };
        defaultExpandAllRows: {
            type: BooleanConstructor;
            default: boolean;
        };
        stickyHeader: {
            type: (BooleanConstructor | NumberConstructor)[];
            default: boolean;
        };
        scrollbar: {
            type: import("vue").PropType<boolean | import("..").ScrollbarProps>;
            default: boolean;
        };
        showEmptyTree: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{
        onChange?: ((data: import("./interface").TableData[], extra: import("./interface").TableChangeExtra, currentData: import("./interface").TableData[]) => any) | undefined;
        onSelect?: ((rowKeys: (string | number)[], rowKey: string | number, record: import("./interface").TableData) => any) | undefined;
        onPageChange?: ((page: number) => any) | undefined;
        onPageSizeChange?: ((pageSize: number) => any) | undefined;
        "onUpdate:selectedKeys"?: ((rowKeys: (string | number)[]) => any) | undefined;
        "onUpdate:expandedKeys"?: ((rowKeys: (string | number)[]) => any) | undefined;
        onExpand?: ((rowKey: string | number, record: import("./interface").TableData) => any) | undefined;
        onExpandedChange?: ((rowKeys: (string | number)[]) => any) | undefined;
        onSelectAll?: ((checked: boolean) => any) | undefined;
        onSelectionChange?: ((rowKeys: (string | number)[]) => any) | undefined;
        onSorterChange?: ((dataIndex: string, direction: string) => any) | undefined;
        onFilterChange?: ((dataIndex: string, filteredValues: string[]) => any) | undefined;
        onCellMouseEnter?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onCellMouseLeave?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onCellClick?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onRowClick?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
        onHeaderClick?: ((column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onColumnResize?: ((dataIndex: string, width: number) => any) | undefined;
        onRowDblclick?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
        onCellDblclick?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
        onRowContextmenu?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
        onCellContextmenu?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
    }>, {
        render: () => import("vue/jsx-runtime").JSX.Element;
        selfExpand: (rowKey: import("../_utils/types").BaseType | import("../_utils/types").BaseType[], expanded?: boolean) => void;
        selfExpandAll: (expanded?: boolean) => void;
        selfSelect: (rowKey: import("../_utils/types").BaseType | import("../_utils/types").BaseType[], checked?: boolean) => void;
        selfSelectAll: (checked?: boolean) => void;
        selfResetFilters: (dataIndex?: string | string[] | undefined) => void;
        selfClearFilters: (dataIndex?: string | string[] | undefined) => void;
        selfResetSorters: () => void;
        selfClearSorters: () => void;
    }, {}, {}, {
        selectAll(checked?: boolean | undefined): void;
        select(rowKey: string | number | (string | number)[], checked?: boolean | undefined): void;
        expandAll(checked?: boolean | undefined): void;
        expand(rowKey: string | number | (string | number)[], checked?: boolean | undefined): void;
        resetFilters(dataIndex?: string | string[] | undefined): void;
        clearFilters(dataIndex?: string | string[] | undefined): void;
        resetSorters(): void;
        clearSorters(): void;
    }, {
        size: "mini" | "small" | "medium" | "large";
        data: import("./interface").TableData[];
        loading: boolean | Record<string, any>;
        bordered: boolean | import("./interface").TableBorder;
        scrollbar: boolean | import("..").ScrollbarProps;
        columns: import("./interface").TableColumnData[];
        hoverable: boolean;
        stripe: boolean;
        tableLayoutFixed: boolean;
        pagination: boolean | import("..").PaginationProps;
        pagePosition: "br" | "tr" | "top" | "bottom" | "tl" | "bl";
        indentSize: number;
        rowKey: string;
        showHeader: boolean;
        spanAll: boolean;
        filterIconAlignLeft: boolean;
        hideExpandButtonOnEmpty: boolean;
        columnResizable: boolean;
        summaryText: string;
        defaultExpandAllRows: boolean;
        stickyHeader: number | boolean;
        showEmptyTree: boolean;
    }>;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    columns: {
        type: import("vue").PropType<import("./interface").TableColumnData[]>;
        default: () => never[];
    };
    data: {
        type: import("vue").PropType<import("./interface").TableData[]>;
        default: () => never[];
    };
    bordered: {
        type: import("vue").PropType<boolean | import("./interface").TableBorder>;
        default: boolean;
    };
    hoverable: {
        type: BooleanConstructor;
        default: boolean;
    };
    stripe: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: import("vue").PropType<"mini" | "small" | "medium" | "large">;
        default: () => "mini" | "small" | "medium" | "large";
    };
    tableLayoutFixed: {
        type: BooleanConstructor;
        default: boolean;
    };
    loading: {
        type: (BooleanConstructor | ObjectConstructor)[];
        default: boolean;
    };
    rowSelection: {
        type: import("vue").PropType<import("./interface").TableRowSelection>;
    };
    expandable: {
        type: import("vue").PropType<import("./interface").TableExpandable>;
    };
    scroll: {
        type: import("vue").PropType<{
            x?: string | number | undefined;
            y?: string | number | undefined;
            minWidth?: string | number | undefined;
            maxHeight?: string | number | undefined;
        }>;
    };
    pagination: {
        type: import("vue").PropType<boolean | import("..").PaginationProps>;
        default: boolean;
    };
    pagePosition: {
        type: import("vue").PropType<"br" | "tr" | "top" | "bottom" | "tl" | "bl">;
        default: string;
    };
    indentSize: {
        type: NumberConstructor;
        default: number;
    };
    rowKey: {
        type: StringConstructor;
        default: string;
    };
    showHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
    virtualListProps: {
        type: import("vue").PropType<import("../_components/virtual-list-v2/interface").VirtualListProps>;
    };
    spanMethod: {
        type: import("vue").PropType<(data: {
            record: import("./interface").TableData;
            column: import("./interface").TableColumnData | import("./interface").TableOperationColumn;
            rowIndex: number;
            columnIndex: number;
        }) => void | {
            rowspan?: number | undefined;
            colspan?: number | undefined;
        }>;
    };
    spanAll: {
        type: BooleanConstructor;
        default: boolean;
    };
    components: {
        type: import("vue").PropType<import("./interface").TableComponents>;
    };
    loadMore: {
        type: import("vue").PropType<(record: import("./interface").TableData, done: (children?: import("./interface").TableData[] | undefined) => void) => void>;
    };
    filterIconAlignLeft: {
        type: BooleanConstructor;
        default: boolean;
    };
    hideExpandButtonOnEmpty: {
        type: BooleanConstructor;
        default: boolean;
    };
    rowClass: {
        type: import("vue").PropType<string | any[] | Record<string, any> | ((record: import("./interface").TableData, rowIndex: number) => any)>;
    };
    draggable: {
        type: import("vue").PropType<import("./interface").TableDraggable>;
    };
    rowNumber: {
        type: (BooleanConstructor | ObjectConstructor)[];
    };
    columnResizable: {
        type: BooleanConstructor;
    };
    summary: {
        type: import("vue").PropType<boolean | ((params: {
            columns: import("./interface").TableColumnData[];
            data: import("./interface").TableData[];
        }) => import("./interface").TableData[])>;
    };
    summaryText: {
        type: StringConstructor;
        default: string;
    };
    summarySpanMethod: {
        type: import("vue").PropType<(data: {
            record: import("./interface").TableData;
            column: import("./interface").TableColumnData | import("./interface").TableOperationColumn;
            rowIndex: number;
            columnIndex: number;
        }) => void | {
            rowspan?: number | undefined;
            colspan?: number | undefined;
        }>;
    };
    selectedKeys: {
        type: import("vue").PropType<(string | number)[]>;
    };
    defaultSelectedKeys: {
        type: import("vue").PropType<(string | number)[]>;
    };
    expandedKeys: {
        type: import("vue").PropType<(string | number)[]>;
    };
    defaultExpandedKeys: {
        type: import("vue").PropType<(string | number)[]>;
    };
    defaultExpandAllRows: {
        type: BooleanConstructor;
        default: boolean;
    };
    stickyHeader: {
        type: (BooleanConstructor | NumberConstructor)[];
        default: boolean;
    };
    scrollbar: {
        type: import("vue").PropType<boolean | import("..").ScrollbarProps>;
        default: boolean;
    };
    showEmptyTree: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    onChange?: ((data: import("./interface").TableData[], extra: import("./interface").TableChangeExtra, currentData: import("./interface").TableData[]) => any) | undefined;
    onSelect?: ((rowKeys: (string | number)[], rowKey: string | number, record: import("./interface").TableData) => any) | undefined;
    onPageChange?: ((page: number) => any) | undefined;
    onPageSizeChange?: ((pageSize: number) => any) | undefined;
    "onUpdate:selectedKeys"?: ((rowKeys: (string | number)[]) => any) | undefined;
    "onUpdate:expandedKeys"?: ((rowKeys: (string | number)[]) => any) | undefined;
    onExpand?: ((rowKey: string | number, record: import("./interface").TableData) => any) | undefined;
    onExpandedChange?: ((rowKeys: (string | number)[]) => any) | undefined;
    onSelectAll?: ((checked: boolean) => any) | undefined;
    onSelectionChange?: ((rowKeys: (string | number)[]) => any) | undefined;
    onSorterChange?: ((dataIndex: string, direction: string) => any) | undefined;
    onFilterChange?: ((dataIndex: string, filteredValues: string[]) => any) | undefined;
    onCellMouseEnter?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
    onCellMouseLeave?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
    onCellClick?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
    onRowClick?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
    onHeaderClick?: ((column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
    onColumnResize?: ((dataIndex: string, width: number) => any) | undefined;
    onRowDblclick?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
    onCellDblclick?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
    onRowContextmenu?: ((record: import("./interface").TableData, ev: Event) => any) | undefined;
    onCellContextmenu?: ((record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => any) | undefined;
}>, {
    render: () => import("vue/jsx-runtime").JSX.Element;
    selfExpand: (rowKey: import("../_utils/types").BaseType | import("../_utils/types").BaseType[], expanded?: boolean) => void;
    selfExpandAll: (expanded?: boolean) => void;
    selfSelect: (rowKey: import("../_utils/types").BaseType | import("../_utils/types").BaseType[], checked?: boolean) => void;
    selfSelectAll: (checked?: boolean) => void;
    selfResetFilters: (dataIndex?: string | string[] | undefined) => void;
    selfClearFilters: (dataIndex?: string | string[] | undefined) => void;
    selfResetSorters: () => void;
    selfClearSorters: () => void;
}, {}, {}, {
    selectAll(checked?: boolean | undefined): void;
    select(rowKey: string | number | (string | number)[], checked?: boolean | undefined): void;
    expandAll(checked?: boolean | undefined): void;
    expand(rowKey: string | number | (string | number)[], checked?: boolean | undefined): void;
    resetFilters(dataIndex?: string | string[] | undefined): void;
    clearFilters(dataIndex?: string | string[] | undefined): void;
    resetSorters(): void;
    clearSorters(): void;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    'update:selectedKeys': (rowKeys: (string | number)[]) => true;
    'update:expandedKeys': (rowKeys: (string | number)[]) => true;
    expand: (rowKey: string | number, record: import("./interface").TableData) => true;
    expandedChange: (rowKeys: (string | number)[]) => true;
    select: (rowKeys: (string | number)[], rowKey: string | number, record: import("./interface").TableData) => true;
    selectAll: (checked: boolean) => true;
    selectionChange: (rowKeys: (string | number)[]) => true;
    sorterChange: (dataIndex: string, direction: string) => true;
    filterChange: (dataIndex: string, filteredValues: string[]) => true;
    pageChange: (page: number) => true;
    pageSizeChange: (pageSize: number) => true;
    change: (data: import("./interface").TableData[], extra: import("./interface").TableChangeExtra, currentData: import("./interface").TableData[]) => true;
    cellMouseEnter: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
    cellMouseLeave: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
    cellClick: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
    rowClick: (record: import("./interface").TableData, ev: Event) => true;
    headerClick: (column: import("./interface").TableColumnData, ev: Event) => true;
    columnResize: (dataIndex: string, width: number) => true;
    rowDblclick: (record: import("./interface").TableData, ev: Event) => true;
    cellDblclick: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
    rowContextmenu: (record: import("./interface").TableData, ev: Event) => true;
    cellContextmenu: (record: import("./interface").TableData, column: import("./interface").TableColumnData, ev: Event) => true;
}, string, {
    size: "mini" | "small" | "medium" | "large";
    data: import("./interface").TableData[];
    loading: boolean | Record<string, any>;
    bordered: boolean | import("./interface").TableBorder;
    scrollbar: boolean | import("..").ScrollbarProps;
    columns: import("./interface").TableColumnData[];
    hoverable: boolean;
    stripe: boolean;
    tableLayoutFixed: boolean;
    pagination: boolean | import("..").PaginationProps;
    pagePosition: "br" | "tr" | "top" | "bottom" | "tl" | "bl";
    indentSize: number;
    rowKey: string;
    showHeader: boolean;
    spanAll: boolean;
    filterIconAlignLeft: boolean;
    hideExpandButtonOnEmpty: boolean;
    columnResizable: boolean;
    summaryText: string;
    defaultExpandAllRows: boolean;
    stickyHeader: number | boolean;
    showEmptyTree: boolean;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    Thead: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    Tbody: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    Tr: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        expand: {
            type: BooleanConstructor;
        };
        empty: {
            type: BooleanConstructor;
        };
        checked: {
            type: BooleanConstructor;
        };
        rowIndex: NumberConstructor;
        record: {
            type: import("vue").PropType<import("./interface").TableDataWithRaw>;
            default: () => {};
        };
    }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        expand: {
            type: BooleanConstructor;
        };
        empty: {
            type: BooleanConstructor;
        };
        checked: {
            type: BooleanConstructor;
        };
        rowIndex: NumberConstructor;
        record: {
            type: import("vue").PropType<import("./interface").TableDataWithRaw>;
            default: () => {};
        };
    }>> & Readonly<{}>, {
        empty: boolean;
        expand: boolean;
        checked: boolean;
        record: import("./interface").TableDataWithRaw;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    Th: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        column: {
            type: import("vue").PropType<import("./interface").TableColumnData>;
            default: () => {};
        };
        operations: {
            type: import("vue").PropType<import("./interface").TableOperationColumn[]>;
            default: () => never[];
        };
        dataColumns: {
            type: import("vue").PropType<import("./interface").TableColumnData[]>;
            default: () => never[];
        };
        resizable: BooleanConstructor;
    }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        column: {
            type: import("vue").PropType<import("./interface").TableColumnData>;
            default: () => {};
        };
        operations: {
            type: import("vue").PropType<import("./interface").TableOperationColumn[]>;
            default: () => never[];
        };
        dataColumns: {
            type: import("vue").PropType<import("./interface").TableColumnData[]>;
            default: () => never[];
        };
        resizable: BooleanConstructor;
    }>> & Readonly<{}>, {
        column: import("./interface").TableColumnData;
        operations: import("./interface").TableOperationColumn[];
        dataColumns: import("./interface").TableColumnData[];
        resizable: boolean;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    Td: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        rowIndex: NumberConstructor;
        record: {
            type: import("vue").PropType<import("./interface").TableDataWithRaw>;
            default: () => {};
        };
        column: {
            type: import("vue").PropType<import("./interface").TableColumnData>;
            default: () => {};
        };
        type: {
            type: import("vue").PropType<"normal" | "checkbox" | "radio" | "expand" | "operation">;
            default: string;
        };
        operations: {
            type: import("vue").PropType<import("./interface").TableOperationColumn[]>;
            default: () => never[];
        };
        dataColumns: {
            type: import("vue").PropType<import("./interface").TableColumnData[]>;
            default: () => never[];
        };
        colSpan: {
            type: NumberConstructor;
            default: number;
        };
        rowSpan: {
            type: NumberConstructor;
            default: number;
        };
        isFixedExpand: {
            type: BooleanConstructor;
            default: boolean;
        };
        containerWidth: {
            type: NumberConstructor;
        };
        showExpandBtn: {
            type: BooleanConstructor;
            default: boolean;
        };
        indentSize: {
            type: NumberConstructor;
            default: number;
        };
        renderExpandBtn: {
            type: import("vue").PropType<(record: import("./interface").TableDataWithRaw, stopPropagation?: boolean | undefined) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>>;
        };
        summary: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        rowIndex: NumberConstructor;
        record: {
            type: import("vue").PropType<import("./interface").TableDataWithRaw>;
            default: () => {};
        };
        column: {
            type: import("vue").PropType<import("./interface").TableColumnData>;
            default: () => {};
        };
        type: {
            type: import("vue").PropType<"normal" | "checkbox" | "radio" | "expand" | "operation">;
            default: string;
        };
        operations: {
            type: import("vue").PropType<import("./interface").TableOperationColumn[]>;
            default: () => never[];
        };
        dataColumns: {
            type: import("vue").PropType<import("./interface").TableColumnData[]>;
            default: () => never[];
        };
        colSpan: {
            type: NumberConstructor;
            default: number;
        };
        rowSpan: {
            type: NumberConstructor;
            default: number;
        };
        isFixedExpand: {
            type: BooleanConstructor;
            default: boolean;
        };
        containerWidth: {
            type: NumberConstructor;
        };
        showExpandBtn: {
            type: BooleanConstructor;
            default: boolean;
        };
        indentSize: {
            type: NumberConstructor;
            default: number;
        };
        renderExpandBtn: {
            type: import("vue").PropType<(record: import("./interface").TableDataWithRaw, stopPropagation?: boolean | undefined) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>>;
        };
        summary: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{}>, {
        type: "normal" | "checkbox" | "radio" | "expand" | "operation";
        summary: boolean;
        column: import("./interface").TableColumnData;
        indentSize: number;
        record: import("./interface").TableDataWithRaw;
        operations: import("./interface").TableOperationColumn[];
        dataColumns: import("./interface").TableColumnData[];
        colSpan: number;
        rowSpan: number;
        isFixedExpand: boolean;
        showExpandBtn: boolean;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    Column: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        dataIndex: StringConstructor;
        title: StringConstructor;
        width: NumberConstructor;
        minWidth: NumberConstructor;
        align: {
            type: import("vue").PropType<"center" | "left" | "right" | undefined>;
        };
        fixed: {
            type: import("vue").PropType<"left" | "right" | undefined>;
        };
        ellipsis: {
            type: BooleanConstructor;
            default: boolean;
        };
        sortable: {
            type: import("vue").PropType<import("./interface").TableSortable>;
            default: undefined;
        };
        filterable: {
            type: import("vue").PropType<import("./interface").TableFilterable>;
            default: undefined;
        };
        cellClass: {
            type: import("vue").PropType<import("../_utils/types").ClassName>;
        };
        headerCellClass: {
            type: import("vue").PropType<import("../_utils/types").ClassName>;
        };
        bodyCellClass: {
            type: import("vue").PropType<import("../_utils/types").ClassName | ((record: import("./interface").TableData) => import("../_utils/types").ClassName)>;
        };
        summaryCellClass: {
            type: import("vue").PropType<import("../_utils/types").ClassName | ((record: import("./interface").TableData) => import("../_utils/types").ClassName)>;
        };
        cellStyle: {
            type: import("vue").PropType<import("vue").CSSProperties>;
        };
        headerCellStyle: {
            type: import("vue").PropType<import("vue").CSSProperties>;
        };
        bodyCellStyle: {
            type: import("vue").PropType<import("vue").CSSProperties | ((record: import("./interface").TableData) => import("vue").CSSProperties)>;
        };
        summaryCellStyle: {
            type: import("vue").PropType<import("vue").CSSProperties | ((record: import("./interface").TableData) => import("vue").CSSProperties)>;
        };
        index: {
            type: NumberConstructor;
        };
        tooltip: {
            type: (BooleanConstructor | ObjectConstructor)[];
            default: boolean;
        };
    }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        dataIndex: StringConstructor;
        title: StringConstructor;
        width: NumberConstructor;
        minWidth: NumberConstructor;
        align: {
            type: import("vue").PropType<"center" | "left" | "right" | undefined>;
        };
        fixed: {
            type: import("vue").PropType<"left" | "right" | undefined>;
        };
        ellipsis: {
            type: BooleanConstructor;
            default: boolean;
        };
        sortable: {
            type: import("vue").PropType<import("./interface").TableSortable>;
            default: undefined;
        };
        filterable: {
            type: import("vue").PropType<import("./interface").TableFilterable>;
            default: undefined;
        };
        cellClass: {
            type: import("vue").PropType<import("../_utils/types").ClassName>;
        };
        headerCellClass: {
            type: import("vue").PropType<import("../_utils/types").ClassName>;
        };
        bodyCellClass: {
            type: import("vue").PropType<import("../_utils/types").ClassName | ((record: import("./interface").TableData) => import("../_utils/types").ClassName)>;
        };
        summaryCellClass: {
            type: import("vue").PropType<import("../_utils/types").ClassName | ((record: import("./interface").TableData) => import("../_utils/types").ClassName)>;
        };
        cellStyle: {
            type: import("vue").PropType<import("vue").CSSProperties>;
        };
        headerCellStyle: {
            type: import("vue").PropType<import("vue").CSSProperties>;
        };
        bodyCellStyle: {
            type: import("vue").PropType<import("vue").CSSProperties | ((record: import("./interface").TableData) => import("vue").CSSProperties)>;
        };
        summaryCellStyle: {
            type: import("vue").PropType<import("vue").CSSProperties | ((record: import("./interface").TableData) => import("vue").CSSProperties)>;
        };
        index: {
            type: NumberConstructor;
        };
        tooltip: {
            type: (BooleanConstructor | ObjectConstructor)[];
            default: boolean;
        };
    }>> & Readonly<{}>, {
        ellipsis: boolean;
        tooltip: boolean | Record<string, any>;
        sortable: import("./interface").TableSortable;
        filterable: import("./interface").TableFilterable;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    install: (app: App, options?: ArcoOptions | undefined) => void;
};
export declare type TableInstance = InstanceType<typeof _Table>;
export declare type TheadInstance = InstanceType<typeof _Thead>;
export declare type TbodyInstance = InstanceType<typeof _Tbody>;
export declare type TrInstance = InstanceType<typeof _Tr>;
export declare type ThInstance = InstanceType<typeof _Th>;
export declare type TdInstance = InstanceType<typeof _Td>;
export declare type TableColumnInstance = InstanceType<typeof _Column>;
export type { TableData, TableSortable, TableFilterData, TableFilterable, TableColumnData, TableBorder, TableRowSelection, TableExpandable, TableDraggable, TableChangeExtra, } from './interface';
export { _Thead as Thead, _Tbody as Tbody, _Tr as Tr, _Th as Th, _Td as Td, _Column as TableColumn, };
export default Table;
