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<{
    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<"top" | "tl" | "tr" | "bottom" | "bl" | "br">;
        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: () => 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;
}, unknown, {}, {
    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").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    columns?: unknown;
    data?: unknown;
    bordered?: unknown;
    hoverable?: unknown;
    stripe?: unknown;
    size?: unknown;
    tableLayoutFixed?: unknown;
    loading?: unknown;
    rowSelection?: unknown;
    expandable?: unknown;
    scroll?: unknown;
    pagination?: unknown;
    pagePosition?: unknown;
    indentSize?: unknown;
    rowKey?: unknown;
    showHeader?: unknown;
    virtualListProps?: unknown;
    spanMethod?: unknown;
    spanAll?: unknown;
    components?: unknown;
    loadMore?: unknown;
    filterIconAlignLeft?: unknown;
    hideExpandButtonOnEmpty?: unknown;
    rowClass?: unknown;
    draggable?: unknown;
    rowNumber?: unknown;
    columnResizable?: unknown;
    summary?: unknown;
    summaryText?: unknown;
    summarySpanMethod?: unknown;
    selectedKeys?: unknown;
    defaultSelectedKeys?: unknown;
    expandedKeys?: unknown;
    defaultExpandedKeys?: unknown;
    defaultExpandAllRows?: unknown;
    stickyHeader?: unknown;
    scrollbar?: unknown;
    showEmptyTree?: unknown;
} & {
    size: "mini" | "small" | "medium" | "large";
    scrollbar: boolean | ScrollbarProps;
    data: TableData[];
    loading: boolean | Record<string, any>;
    bordered: boolean | TableBorder;
    columns: TableColumnData[];
    hoverable: boolean;
    pagination: boolean | PaginationProps;
    stripe: boolean;
    tableLayoutFixed: boolean;
    pagePosition: "top" | "tl" | "tr" | "bottom" | "bl" | "br";
    indentSize: number;
    rowKey: string;
    showHeader: boolean;
    spanAll: boolean;
    filterIconAlignLeft: boolean;
    hideExpandButtonOnEmpty: boolean;
    columnResizable: boolean;
    summaryText: string;
    defaultExpandAllRows: boolean;
    stickyHeader: number | boolean;
    showEmptyTree: boolean;
} & {
    scroll?: {
        x?: string | number | undefined;
        y?: string | number | undefined;
        minWidth?: string | number | undefined;
        maxHeight?: string | number | undefined;
    } | undefined;
    summary?: boolean | ((params: {
        columns: TableColumnData[];
        data: TableData[];
    }) => TableData[]) | undefined;
    virtualListProps?: VirtualListProps | undefined;
    rowSelection?: TableRowSelection | undefined;
    expandable?: TableExpandable | undefined;
    spanMethod?: ((data: {
        record: TableData;
        column: TableColumnData | TableOperationColumn;
        rowIndex: number;
        columnIndex: number;
    }) => {
        rowspan?: number;
        colspan?: number;
    } | void) | undefined;
    components?: TableComponents | undefined;
    loadMore?: ((record: TableData, done: (children?: TableData[] | undefined) => void) => void) | undefined;
    rowClass?: string | any[] | Record<string, any> | ((record: TableData, rowIndex: number) => any) | undefined;
    draggable?: TableDraggable | undefined;
    rowNumber?: boolean | Record<string, any> | undefined;
    summarySpanMethod?: ((data: {
        record: TableData;
        column: TableColumnData | TableOperationColumn;
        rowIndex: number;
        columnIndex: number;
    }) => {
        rowspan?: number;
        colspan?: number;
    } | void) | undefined;
    selectedKeys?: (string | number)[] | undefined;
    defaultSelectedKeys?: (string | number)[] | undefined;
    expandedKeys?: (string | number)[] | undefined;
    defaultExpandedKeys?: (string | number)[] | undefined;
}> & {
    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;
    onExpand?: ((rowKey: string | number, record: TableData) => any) | undefined;
    "onUpdate:selectedKeys"?: ((rowKeys: (string | number)[]) => any) | undefined;
    "onUpdate:expandedKeys"?: ((rowKeys: (string | number)[]) => 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";
    scrollbar: boolean | ScrollbarProps;
    data: TableData[];
    loading: boolean | Record<string, any>;
    bordered: boolean | TableBorder;
    columns: TableColumnData[];
    hoverable: boolean;
    pagination: boolean | PaginationProps;
    stripe: boolean;
    tableLayoutFixed: boolean;
    pagePosition: "top" | "tl" | "tr" | "bottom" | "bl" | "br";
    indentSize: number;
    rowKey: string;
    showHeader: boolean;
    spanAll: boolean;
    filterIconAlignLeft: boolean;
    hideExpandButtonOnEmpty: boolean;
    columnResizable: boolean;
    summaryText: string;
    defaultExpandAllRows: boolean;
    stickyHeader: number | boolean;
    showEmptyTree: boolean;
}>;
export default _default;
