import { Ref } from 'vue';
import { EleLoadingProps, ElePaginationProps, EleDataTableProps, EleToolbarProps } from '../ele-app/plus';
import { DataItem, Column, Columns, Sorter, Filter, TableSize, RowKey } from '../ele-data-table/types';
import { ReloadFunction, DoneParams, TableTool, FetchFunction, TableViewInstance, ExportConfig, PrintConfig, TableExportParams } from './types';
import { TableToolsInstance } from './props';

declare const _default: import('vue').DefineComponent<{
    rowKey: {
        type: import('vue').PropType<RowKey>;
        required: boolean;
    };
    loading: BooleanConstructor;
    datasource: {
        type: import('vue').PropType<import('./types').Datasource>;
        required: boolean;
    };
    queryParam: import('vue').PropType<import('./types').QueryParam>;
    request: import('vue').PropType<import('./types').RequestOption>;
    response: import('vue').PropType<import('./types').ResponseOption>;
    parseData: import('vue').PropType<import('./types').ParseData>;
    loadOnCreated: {
        type: BooleanConstructor;
        default: boolean;
    };
    loadOnChanged: {
        type: BooleanConstructor;
        default: boolean;
    };
    selections: import('vue').PropType<DataItem[]>;
    current: import('vue').PropType<DataItem | null>;
    toolbar: {
        type: import('vue').PropType<boolean | EleToolbarProps>;
        default: () => null;
    };
    tools: {
        type: import('vue').PropType<TableTool[] | boolean>;
        default: () => null;
    };
    columnSortable: {
        type: BooleanConstructor;
        default: boolean;
    };
    columnFixed: {
        type: BooleanConstructor;
        default: boolean;
    };
    maximizedIndex: NumberConstructor;
    maximizedHeight: (StringConstructor | NumberConstructor)[];
    tableStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
    footerStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
    pagination: {
        type: import('vue').PropType<boolean | import('./types').TablePagination>;
        default: () => null;
    };
    loadingProps: import('vue').PropType<EleLoadingProps>;
    cacheKey: StringConstructor;
    virtual: BooleanConstructor;
    rowHeight: NumberConstructor;
    locale: import('vue').PropType<Partial<import('./types').TableLocale>>;
    exportConfig: import('vue').PropType<ExportConfig>;
    printConfig: import('vue').PropType<PrintConfig>;
    width: (NumberConstructor | StringConstructor)[];
    height: (NumberConstructor | StringConstructor)[];
    size: {
        readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", never>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    fit: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxHeight: (NumberConstructor | StringConstructor)[];
    lazy: BooleanConstructor;
    className: {
        type: StringConstructor;
        default: string;
    };
    stripe: {
        type: BooleanConstructor;
        default: null;
    };
    border: {
        type: BooleanConstructor;
        default: null;
    };
    showHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
    showSummary: BooleanConstructor;
    sumText: StringConstructor;
    summaryMethod: import('vue').PropType<import('element-plus').SummaryMethod<any> | undefined>;
    rowClassName: import('vue').PropType<import('element-plus').ColumnCls<any> | undefined>;
    rowStyle: import('vue').PropType<import('element-plus').ColumnStyle<any> | undefined>;
    cellClassName: import('vue').PropType<import('element-plus').CellCls<any> | undefined>;
    cellStyle: import('vue').PropType<import('element-plus').CellStyle<any> | undefined>;
    headerRowClassName: import('vue').PropType<import('element-plus').ColumnCls<any> | undefined>;
    headerRowStyle: import('vue').PropType<import('element-plus').ColumnStyle<any> | undefined>;
    headerCellClassName: import('vue').PropType<import('element-plus').CellCls<any> | undefined>;
    headerCellStyle: import('vue').PropType<import('element-plus').CellStyle<any> | undefined>;
    highlightCurrentRow: BooleanConstructor;
    currentRowKey: (NumberConstructor | StringConstructor)[];
    emptyText: StringConstructor;
    expandRowKeys: import('vue').PropType<string[] | undefined>;
    defaultExpandAll: BooleanConstructor;
    defaultSort: import('vue').PropType<import('element-plus').Sort | undefined>;
    tooltipEffect: StringConstructor;
    tooltipOptions: import('vue').PropType<Partial<Pick<import('element-plus').ElTooltipProps, "offset" | "transition" | "placement" | "effect" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "popperClass" | "appendTo" | "showArrow">> | undefined>;
    spanMethod: import('vue').PropType<((data: {
        row: any;
        rowIndex: number;
        column: import('element-plus').TableColumnCtx<any>;
        columnIndex: number;
    }) => number[] | {
        rowspan: number;
        colspan: number;
    } | undefined) | undefined>;
    selectOnIndeterminate: {
        type: BooleanConstructor;
        default: boolean;
    };
    indent: {
        type: NumberConstructor;
        default: number;
    };
    treeProps: {
        type: import('vue').PropType<import('element-plus/es/components/table/src/table/defaults').TreeProps | undefined>;
        default: () => {
            hasChildren: string;
            children: string;
            checkStrictly: boolean;
        };
    };
    load: import('vue').PropType<((row: any, treeNode: import('element-plus').TreeNode, resolve: (data: any[]) => void) => void) | undefined>;
    tableLayout: {
        type: import('vue').PropType<"fixed" | "auto">;
        default: string;
    };
    scrollbarAlwaysOn: BooleanConstructor;
    flexible: BooleanConstructor;
    showOverflowTooltip: import('vue').PropType<boolean | Partial<Pick<import('element-plus').ElTooltipProps, "offset" | "transition" | "placement" | "effect" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "popperClass" | "appendTo" | "showArrow">> | undefined>;
    appendFilterPanelTo: StringConstructor;
    scrollbarTabindex: {
        type: (NumberConstructor | StringConstructor)[];
        default: undefined;
    };
    columns: {
        type: import('vue').PropType<Columns>;
        required: boolean;
    };
    sticky: BooleanConstructor;
    headerEllipsis: {
        type: BooleanConstructor;
        default: boolean;
    };
    slotNormalize: {
        type: BooleanConstructor;
        default: boolean;
    };
    bottomLine: {
        type: BooleanConstructor;
        default: boolean;
    };
    emptyProps: {
        type: import('vue').PropType<import('../ele-data-table/types').TableEmptyProps>;
        default: () => null;
    };
    rowClickChecked: import('vue').PropType<import('../ele-data-table/types').RowClickChecked>;
    reserveCurrent: BooleanConstructor;
    selectedRowKeys: import('vue').PropType<import('../ele-data-table/types').DataKey[]>;
}, {
    tableToolsRef: Ref<TableToolsInstance>;
    tableViewRef: Ref<TableViewInstance>;
    tableData: Ref<{
        [x: string]: any;
        [x: number]: any;
        [x: symbol]: any;
        _isMock?: boolean | undefined;
    }[]>;
    tableSize: Ref<"" | "small" | "default" | "large" | undefined>;
    tableMaximized: Ref<boolean>;
    tableIndex: import('vue').ComputedRef<number>;
    paginationProps: import('vue').ComputedRef<ElePaginationProps | null>;
    tableProps: import('vue').ComputedRef<EleDataTableProps>;
    toolNames: import('vue').ComputedRef<string[]>;
    tableToolbarProps: import('vue').ComputedRef<boolean | EleToolbarProps>;
    toolExportConfig: import('vue').ComputedRef<ExportConfig>;
    toolPrintConfig: import('vue').ComputedRef<PrintConfig>;
    loadingProps: import('vue').ComputedRef<EleLoadingProps>;
    handleRefresh: () => void;
    handleSizeChange: (size: TableSize) => void;
    handleColumnsChange: (columns: Columns, tableColumns: Columns, isReset: boolean) => void;
    handleMaximizedChange: (maximized: boolean) => void;
    handlePageSizeChange: (pageSize: number) => void;
    handlePageCurrentChange: (page: number) => void;
    reload: ReloadFunction;
    reset: () => void;
    getTableRef: () => TableViewInstance | undefined;
    getData: () => DataItem[];
    setData: (data: DataItem[]) => void;
    goPageByRowKey: (key: unknown) => void;
    fetch: FetchFunction;
    openPrintModal: () => void;
    printData: (params?: TableExportParams) => void;
    openExportModal: () => void;
    exportData: (params?: TableExportParams) => void;
    clearSelection: () => void;
    getSelectionRows: () => DataItem[] | undefined;
    toggleRowSelection: (row: DataItem, selected?: boolean) => void;
    toggleAllSelection: () => void;
    toggleRowExpansion: (row: DataItem, expanded?: boolean) => void;
    setCurrentRow: (row?: DataItem | null) => void;
    clearSort: () => void;
    clearFilter: (columnKeys?: string[]) => void;
    doLayout: () => void;
    sort: (prop: string, order: string) => void;
    scrollTo: (options: number | ScrollToOptions, yCoord?: number) => void;
    setScrollTop: (top?: number) => void;
    setScrollLeft: (left? /** 表格当前的排序筛选搜索参数 */: number) => void;
    setCurrentRowKey: (key?: import('../ele-data-table/types').DataKey | null) => void;
    getCurrentRow: () => DataItem | undefined;
    setSelectedRows: (rows?: DataItem[]) => void;
    setSelectedRowKeys: (keys?: import('../ele-data-table/types').DataKey[], rows?: DataItem[]) => void;
    toggleRowExpansionAll: (expanded?: boolean) => void;
    updateSelectedAndChecked: () => void;
    updateKeyChildren: (key?: import('../ele-data-table/types').DataKey | null, rows?: DataItem[]) => void;
    isShowTable: Ref<{
        valueOf: () => boolean;
    }>;
    toolsSlotExcludes: string[];
    tableSlotExcludes: string[];
    pageSlotExcludes: string[];
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    done: (_result: DoneParams<DataItem>, _parent?: DataItem) => boolean;
    'update:selections': (_selections: DataItem[]) => boolean;
    'update:current': (_current?: DataItem | null) => boolean;
    columnsChange: (_columns: Columns, _tableColumns: Columns, _isReset: boolean) => boolean;
    sizeChange: (_size: TableSize) => boolean;
    maximizedChange: (_maximized: boolean) => boolean;
    refresh: () => boolean;
    select: (_selection: DataItem[], _row: DataItem) => boolean;
    selectAll: (_selection: DataItem[]) => boolean;
    selectionChange: (_selection: DataItem[]) => boolean;
    cellMouseEnter: (_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => boolean;
    cellMouseLeave: (_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => boolean;
    cellClick: (_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => boolean;
    cellDblclick: (_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => boolean;
    cellContextmenu: (_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => boolean;
    rowClick: (_row: DataItem, _column: Column, _e: MouseEvent) => boolean;
    rowContextmenu: (_row: DataItem, _column: Column, _e: MouseEvent) => boolean;
    rowDblclick: (_row: DataItem, _column: Column, _e: MouseEvent) => boolean;
    headerClick: (_column: Column, _e: MouseEvent) => boolean;
    headerContextmenu: (_column: Column, _e: MouseEvent) => boolean;
    sortChange: (_sorter: Sorter) => boolean;
    filterChange: (_filter: Filter) => boolean;
    currentChange: (_current?: DataItem | null, _old?: DataItem | null) => boolean;
    headerDragend: (_width: number, _old: number, _column: Column, _e: MouseEvent) => boolean;
    expandChange: (_row: DataItem, _expanded: boolean) => boolean;
    'update:currentRowKey': (_currentRowKey?: import('../ele-data-table/types').DataKey) => boolean;
    'update:selectedRowKeys': (_selectedRowKeys?: import('../ele-data-table/types').DataKey[]) => boolean;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    rowKey: {
        type: import('vue').PropType<RowKey>;
        required: boolean;
    };
    loading: BooleanConstructor;
    datasource: {
        type: import('vue').PropType<import('./types').Datasource>;
        required: boolean;
    };
    queryParam: import('vue').PropType<import('./types').QueryParam>;
    request: import('vue').PropType<import('./types').RequestOption>;
    response: import('vue').PropType<import('./types').ResponseOption>;
    parseData: import('vue').PropType<import('./types').ParseData>;
    loadOnCreated: {
        type: BooleanConstructor;
        default: boolean;
    };
    loadOnChanged: {
        type: BooleanConstructor;
        default: boolean;
    };
    selections: import('vue').PropType<DataItem[]>;
    current: import('vue').PropType<DataItem | null>;
    toolbar: {
        type: import('vue').PropType<boolean | EleToolbarProps>;
        default: () => null;
    };
    tools: {
        type: import('vue').PropType<TableTool[] | boolean>;
        default: () => null;
    };
    columnSortable: {
        type: BooleanConstructor;
        default: boolean;
    };
    columnFixed: {
        type: BooleanConstructor;
        default: boolean;
    };
    maximizedIndex: NumberConstructor;
    maximizedHeight: (StringConstructor | NumberConstructor)[];
    tableStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
    footerStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
    pagination: {
        type: import('vue').PropType<boolean | import('./types').TablePagination>;
        default: () => null;
    };
    loadingProps: import('vue').PropType<EleLoadingProps>;
    cacheKey: StringConstructor;
    virtual: BooleanConstructor;
    rowHeight: NumberConstructor;
    locale: import('vue').PropType<Partial<import('./types').TableLocale>>;
    exportConfig: import('vue').PropType<ExportConfig>;
    printConfig: import('vue').PropType<PrintConfig>;
    width: (NumberConstructor | StringConstructor)[];
    height: (NumberConstructor | StringConstructor)[];
    size: {
        readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", never>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    fit: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxHeight: (NumberConstructor | StringConstructor)[];
    lazy: BooleanConstructor;
    className: {
        type: StringConstructor;
        default: string;
    };
    stripe: {
        type: BooleanConstructor;
        default: null;
    };
    border: {
        type: BooleanConstructor;
        default: null;
    };
    showHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
    showSummary: BooleanConstructor;
    sumText: StringConstructor;
    summaryMethod: import('vue').PropType<import('element-plus').SummaryMethod<any> | undefined>;
    rowClassName: import('vue').PropType<import('element-plus').ColumnCls<any> | undefined>;
    rowStyle: import('vue').PropType<import('element-plus').ColumnStyle<any> | undefined>;
    cellClassName: import('vue').PropType<import('element-plus').CellCls<any> | undefined>;
    cellStyle: import('vue').PropType<import('element-plus').CellStyle<any> | undefined>;
    headerRowClassName: import('vue').PropType<import('element-plus').ColumnCls<any> | undefined>;
    headerRowStyle: import('vue').PropType<import('element-plus').ColumnStyle<any> | undefined>;
    headerCellClassName: import('vue').PropType<import('element-plus').CellCls<any> | undefined>;
    headerCellStyle: import('vue').PropType<import('element-plus').CellStyle<any> | undefined>;
    highlightCurrentRow: BooleanConstructor;
    currentRowKey: (NumberConstructor | StringConstructor)[];
    emptyText: StringConstructor;
    expandRowKeys: import('vue').PropType<string[] | undefined>;
    defaultExpandAll: BooleanConstructor;
    defaultSort: import('vue').PropType<import('element-plus').Sort | undefined>;
    tooltipEffect: StringConstructor;
    tooltipOptions: import('vue').PropType<Partial<Pick<import('element-plus').ElTooltipProps, "offset" | "transition" | "placement" | "effect" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "popperClass" | "appendTo" | "showArrow">> | undefined>;
    spanMethod: import('vue').PropType<((data: {
        row: any;
        rowIndex: number;
        column: import('element-plus').TableColumnCtx<any>;
        columnIndex: number;
    }) => number[] | {
        rowspan: number;
        colspan: number;
    } | undefined) | undefined>;
    selectOnIndeterminate: {
        type: BooleanConstructor;
        default: boolean;
    };
    indent: {
        type: NumberConstructor;
        default: number;
    };
    treeProps: {
        type: import('vue').PropType<import('element-plus/es/components/table/src/table/defaults').TreeProps | undefined>;
        default: () => {
            hasChildren: string;
            children: string;
            checkStrictly: boolean;
        };
    };
    load: import('vue').PropType<((row: any, treeNode: import('element-plus').TreeNode, resolve: (data: any[]) => void) => void) | undefined>;
    tableLayout: {
        type: import('vue').PropType<"fixed" | "auto">;
        default: string;
    };
    scrollbarAlwaysOn: BooleanConstructor;
    flexible: BooleanConstructor;
    showOverflowTooltip: import('vue').PropType<boolean | Partial<Pick<import('element-plus').ElTooltipProps, "offset" | "transition" | "placement" | "effect" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "popperClass" | "appendTo" | "showArrow">> | undefined>;
    appendFilterPanelTo: StringConstructor;
    scrollbarTabindex: {
        type: (NumberConstructor | StringConstructor)[];
        default: undefined;
    };
    columns: {
        type: import('vue').PropType<Columns>;
        required: boolean;
    };
    sticky: BooleanConstructor;
    headerEllipsis: {
        type: BooleanConstructor;
        default: boolean;
    };
    slotNormalize: {
        type: BooleanConstructor;
        default: boolean;
    };
    bottomLine: {
        type: BooleanConstructor;
        default: boolean;
    };
    emptyProps: {
        type: import('vue').PropType<import('../ele-data-table/types').TableEmptyProps>;
        default: () => null;
    };
    rowClickChecked: import('vue').PropType<import('../ele-data-table/types').RowClickChecked>;
    reserveCurrent: BooleanConstructor;
    selectedRowKeys: import('vue').PropType<import('../ele-data-table/types').DataKey[]>;
}>> & {
    onSelect?: ((_selection: DataItem[], _row: DataItem) => any) | undefined;
    onExpandChange?: ((_row: DataItem, _expanded: boolean) => any) | undefined;
    onFilterChange?: ((_filter: Filter) => any) | undefined;
    onSelectAll?: ((_selection: DataItem[]) => any) | undefined;
    onSelectionChange?: ((_selection: DataItem[]) => any) | undefined;
    onCellMouseEnter?: ((_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => any) | undefined;
    onCellMouseLeave?: ((_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => any) | undefined;
    onCellClick?: ((_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => any) | undefined;
    onCellDblclick?: ((_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => any) | undefined;
    onCellContextmenu?: ((_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => any) | undefined;
    onRowClick?: ((_row: DataItem, _column: Column, _e: MouseEvent) => any) | undefined;
    onRowContextmenu?: ((_row: DataItem, _column: Column, _e: MouseEvent) => any) | undefined;
    onRowDblclick?: ((_row: DataItem, _column: Column, _e: MouseEvent) => any) | undefined;
    onHeaderClick?: ((_column: Column, _e: MouseEvent) => any) | undefined;
    onHeaderContextmenu?: ((_column: Column, _e: MouseEvent) => any) | undefined;
    onSortChange?: ((_sorter: Sorter) => any) | undefined;
    onCurrentChange?: ((_current?: DataItem | null | undefined, _old?: DataItem | null | undefined) => any) | undefined;
    onHeaderDragend?: ((_width: number, _old: number, _column: Column, _e: MouseEvent) => any) | undefined;
    "onUpdate:currentRowKey"?: ((_currentRowKey?: import('../ele-data-table/types').DataKey | undefined) => any) | undefined;
    "onUpdate:selectedRowKeys"?: ((_selectedRowKeys?: import('../ele-data-table/types').DataKey[] | undefined) => any) | undefined;
    onDone?: ((_result: DoneParams<DataItem>, _parent?: DataItem | undefined) => any) | undefined;
    onRefresh?: (() => any) | undefined;
    "onUpdate:selections"?: ((_selections: DataItem[]) => any) | undefined;
    "onUpdate:current"?: ((_current?: DataItem | null | undefined) => any) | undefined;
    onColumnsChange?: ((_columns: Columns, _tableColumns: Columns, _isReset: boolean) => any) | undefined;
    onSizeChange?: ((_size: "" | "small" | "default" | "large" | undefined) => any) | undefined;
    onMaximizedChange?: ((_maximized: boolean) => any) | undefined;
}, {
    loading: boolean;
    fit: boolean;
    lazy: boolean;
    className: string;
    stripe: boolean;
    border: boolean;
    showHeader: boolean;
    showSummary: boolean;
    highlightCurrentRow: boolean;
    defaultExpandAll: boolean;
    selectOnIndeterminate: boolean;
    indent: number;
    treeProps: import('element-plus/es/components/table/src/table/defaults').TreeProps | undefined;
    tableLayout: "fixed" | "auto";
    scrollbarAlwaysOn: boolean;
    flexible: boolean;
    scrollbarTabindex: string | number;
    sticky: boolean;
    toolbar: boolean | EleToolbarProps;
    tools: boolean | string[];
    headerEllipsis: boolean;
    slotNormalize: boolean;
    bottomLine: boolean;
    emptyProps: import('../ele-data-table/types').TableEmptyProps;
    reserveCurrent: boolean;
    loadOnCreated: boolean;
    loadOnChanged: boolean;
    columnSortable: boolean;
    columnFixed: boolean;
    pagination: boolean | import('./types').TablePagination;
    virtual: boolean;
}, {}>;
export default _default;
