import type { PropType } from 'vue';
import type { TableBorder, TableChangeExtra, TableColumnData, TableComponents, TableData, TableDraggable, TableExpandable, TableOperationColumn, TableRowSelection } from './interface';
import { PaginationProps } from '../pagination';
import { VirtualListProps } from '../_components/virtual-list-v2/interface';
import { ScrollbarProps } from '../scrollbar';
import type { BaseType } from '../_utils/types';
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    columns: {
        type: PropType<TableColumnData[]>;
        default: () => never[];
    };
    data: {
        type: PropType<TableData[]>;
        default: () => never[];
    };
    bordered: {
        type: PropType<boolean | TableBorder>;
        default: boolean;
    };
    hoverable: {
        type: BooleanConstructor;
        default: boolean;
    };
    stripe: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: PropType<"mini" | "small" | "medium" | "large">;
        default: () => "mini" | "small" | "medium" | "large";
    };
    tableLayoutFixed: {
        type: BooleanConstructor;
        default: boolean;
    };
    loading: {
        type: (BooleanConstructor | ObjectConstructor)[];
        default: boolean;
    };
    rowSelection: {
        type: PropType<TableRowSelection>;
    };
    expandable: {
        type: PropType<TableExpandable>;
    };
    scroll: {
        type: PropType<{
            x?: string | number | undefined;
            y?: string | number | undefined;
            minWidth?: string | number | undefined;
            maxHeight?: string | number | undefined;
        }>;
    };
    pagination: {
        type: PropType<boolean | PaginationProps>;
        default: boolean;
    };
    pagePosition: {
        type: 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: PropType<VirtualListProps>;
    };
    spanMethod: {
        type: PropType<(data: {
            record: TableData;
            column: TableColumnData | TableOperationColumn;
            rowIndex: number;
            columnIndex: number;
        }) => {
            rowspan?: number;
            colspan?: number;
        } | void>;
    };
    spanAll: {
        type: BooleanConstructor;
        default: boolean;
    };
    components: {
        type: PropType<TableComponents>;
    };
    loadMore: {
        type: PropType<(record: TableData, done: (children?: TableData[] | undefined) => void) => void>;
    };
    filterIconAlignLeft: {
        type: BooleanConstructor;
        default: boolean;
    };
    hideExpandButtonOnEmpty: {
        type: BooleanConstructor;
        default: boolean;
    };
    rowClass: {
        type: PropType<string | any[] | Record<string, any> | ((record: TableData, rowIndex: number) => any)>;
    };
    draggable: {
        type: PropType<TableDraggable>;
    };
    rowNumber: {
        type: (BooleanConstructor | ObjectConstructor)[];
    };
    columnResizable: {
        type: BooleanConstructor;
    };
    summary: {
        type: PropType<boolean | ((params: {
            columns: TableColumnData[];
            data: TableData[];
        }) => TableData[])>;
    };
    summaryText: {
        type: StringConstructor;
        default: string;
    };
    summarySpanMethod: {
        type: PropType<(data: {
            record: TableData;
            column: TableColumnData | TableOperationColumn;
            rowIndex: number;
            columnIndex: number;
        }) => {
            rowspan?: number;
            colspan?: number;
        } | void>;
    };
    selectedKeys: {
        type: PropType<(string | number)[]>;
    };
    defaultSelectedKeys: {
        type: PropType<(string | number)[]>;
    };
    expandedKeys: {
        type: PropType<(string | number)[]>;
    };
    defaultExpandedKeys: {
        type: PropType<(string | number)[]>;
    };
    defaultExpandAllRows: {
        type: BooleanConstructor;
        default: boolean;
    };
    stickyHeader: {
        type: (BooleanConstructor | NumberConstructor)[];
        default: boolean;
    };
    scrollbar: {
        type: PropType<boolean | ScrollbarProps>;
        default: boolean;
    };
    showEmptyTree: {
        type: BooleanConstructor;
        default: boolean;
    };
}>, {
    render: () => import("vue/jsx-runtime").JSX.Element;
    selfExpand: (rowKey: BaseType | BaseType[], expanded?: boolean) => void;
    selfExpandAll: (expanded?: boolean) => void;
    selfSelect: (rowKey: BaseType | 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: TableData) => true;
    expandedChange: (rowKeys: (string | number)[]) => true;
    select: (rowKeys: (string | number)[], rowKey: string | number, record: 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: TableData[], extra: TableChangeExtra, currentData: TableData[]) => true;
    cellMouseEnter: (record: TableData, column: TableColumnData, ev: Event) => true;
    cellMouseLeave: (record: TableData, column: TableColumnData, ev: Event) => true;
    cellClick: (record: TableData, column: TableColumnData, ev: Event) => true;
    rowClick: (record: TableData, ev: Event) => true;
    headerClick: (column: TableColumnData, ev: Event) => true;
    columnResize: (dataIndex: string, width: number) => true;
    rowDblclick: (record: TableData, ev: Event) => true;
    cellDblclick: (record: TableData, column: TableColumnData, ev: Event) => true;
    rowContextmenu: (record: TableData, ev: Event) => true;
    cellContextmenu: (record: TableData, column: TableColumnData, ev: Event) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    columns: {
        type: PropType<TableColumnData[]>;
        default: () => never[];
    };
    data: {
        type: PropType<TableData[]>;
        default: () => never[];
    };
    bordered: {
        type: PropType<boolean | TableBorder>;
        default: boolean;
    };
    hoverable: {
        type: BooleanConstructor;
        default: boolean;
    };
    stripe: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: PropType<"mini" | "small" | "medium" | "large">;
        default: () => "mini" | "small" | "medium" | "large";
    };
    tableLayoutFixed: {
        type: BooleanConstructor;
        default: boolean;
    };
    loading: {
        type: (BooleanConstructor | ObjectConstructor)[];
        default: boolean;
    };
    rowSelection: {
        type: PropType<TableRowSelection>;
    };
    expandable: {
        type: PropType<TableExpandable>;
    };
    scroll: {
        type: PropType<{
            x?: string | number | undefined;
            y?: string | number | undefined;
            minWidth?: string | number | undefined;
            maxHeight?: string | number | undefined;
        }>;
    };
    pagination: {
        type: PropType<boolean | PaginationProps>;
        default: boolean;
    };
    pagePosition: {
        type: 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: PropType<VirtualListProps>;
    };
    spanMethod: {
        type: PropType<(data: {
            record: TableData;
            column: TableColumnData | TableOperationColumn;
            rowIndex: number;
            columnIndex: number;
        }) => {
            rowspan?: number;
            colspan?: number;
        } | void>;
    };
    spanAll: {
        type: BooleanConstructor;
        default: boolean;
    };
    components: {
        type: PropType<TableComponents>;
    };
    loadMore: {
        type: PropType<(record: TableData, done: (children?: TableData[] | undefined) => void) => void>;
    };
    filterIconAlignLeft: {
        type: BooleanConstructor;
        default: boolean;
    };
    hideExpandButtonOnEmpty: {
        type: BooleanConstructor;
        default: boolean;
    };
    rowClass: {
        type: PropType<string | any[] | Record<string, any> | ((record: TableData, rowIndex: number) => any)>;
    };
    draggable: {
        type: PropType<TableDraggable>;
    };
    rowNumber: {
        type: (BooleanConstructor | ObjectConstructor)[];
    };
    columnResizable: {
        type: BooleanConstructor;
    };
    summary: {
        type: PropType<boolean | ((params: {
            columns: TableColumnData[];
            data: TableData[];
        }) => TableData[])>;
    };
    summaryText: {
        type: StringConstructor;
        default: string;
    };
    summarySpanMethod: {
        type: PropType<(data: {
            record: TableData;
            column: TableColumnData | TableOperationColumn;
            rowIndex: number;
            columnIndex: number;
        }) => {
            rowspan?: number;
            colspan?: number;
        } | void>;
    };
    selectedKeys: {
        type: PropType<(string | number)[]>;
    };
    defaultSelectedKeys: {
        type: PropType<(string | number)[]>;
    };
    expandedKeys: {
        type: PropType<(string | number)[]>;
    };
    defaultExpandedKeys: {
        type: PropType<(string | number)[]>;
    };
    defaultExpandAllRows: {
        type: BooleanConstructor;
        default: boolean;
    };
    stickyHeader: {
        type: (BooleanConstructor | NumberConstructor)[];
        default: boolean;
    };
    scrollbar: {
        type: PropType<boolean | ScrollbarProps>;
        default: boolean;
    };
    showEmptyTree: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    onChange?: ((data: TableData[], extra: TableChangeExtra, currentData: TableData[]) => any) | undefined;
    onSelect?: ((rowKeys: (string | number)[], rowKey: string | number, record: 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: 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: TableData, column: TableColumnData, ev: Event) => any) | undefined;
    onCellMouseLeave?: ((record: TableData, column: TableColumnData, ev: Event) => any) | undefined;
    onCellClick?: ((record: TableData, column: TableColumnData, ev: Event) => any) | undefined;
    onRowClick?: ((record: TableData, ev: Event) => any) | undefined;
    onHeaderClick?: ((column: TableColumnData, ev: Event) => any) | undefined;
    onColumnResize?: ((dataIndex: string, width: number) => any) | undefined;
    onRowDblclick?: ((record: TableData, ev: Event) => any) | undefined;
    onCellDblclick?: ((record: TableData, column: TableColumnData, ev: Event) => any) | undefined;
    onRowContextmenu?: ((record: TableData, ev: Event) => any) | undefined;
    onCellContextmenu?: ((record: TableData, column: TableColumnData, ev: Event) => any) | undefined;
}>, {
    size: "mini" | "small" | "medium" | "large";
    data: TableData[];
    loading: boolean | Record<string, any>;
    bordered: boolean | TableBorder;
    scrollbar: boolean | ScrollbarProps;
    columns: TableColumnData[];
    hoverable: boolean;
    stripe: boolean;
    tableLayoutFixed: boolean;
    pagination: boolean | 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").ComponentProvideOptions, true, {}, any>;
export default _default;
