import React, { ReactNode } from 'react';
import { TTableRef } from '../../../table';
import { Pagination } from "../../../pagination";
export interface ICrudQueryTableProps {
    /** ref 操控表格内的一些方法 比如;reloadTable 刷新表格 */
    cRef: any;
    /** 控制组件显示高度 */
    height?: string | number;
    /** 左上角的标题 */
    tableTitle: string;
    /** 表格显示列：表头、分屏、平铺都在这里配置 包括筛选项 */
    columns: any[];
    /** 表头数据查询配置 sort、order 后台接口查询需要的字段 rowKey 表格唯一显示的字段 */
    headerConfig: {
        sort: string;
        order: string;
        rowKey: string;
    };
    /** 表头查询的request 请求 */
    requestHeader: (page: {
        offset: number;
        limit: number;
    }, filters: {
        Key: string;
        Val: string;
        Operator?: string;
    }[], sorter: {
        sort: string;
        order: string;
    }, noFilters: any) => Promise<object>;
    /** Table表格 col 当前列的信息 page 分页所需 filters: 过滤所需 sorter：排序所需 表头列的筛选请求事件 */
    requestCellFilter?: (page: any, filters: any[], sorter: any, col: any) => Promise<object> | undefined;
    /** 右上角 按钮组的显示 */
    buttonToolbar: (tableRef: TTableRef) => [];
    /** 批量选中行之后的需要执行的按钮操作 */
    selectedRowsToolbar: (selectedRows?: any[], reloadTable?: (filters?: {
        Key: string;
        Val: string;
        Operator?: string;
    }[], noFilters?: any) => void) => any[];
    /** 拖拽后停止拿到改变的列 */
    onResizeStop?: (type: 'header' | 'split' | 'scan' | 'noRadio', { pageSize, tableSize, changeColumns, }: {
        pageSize: any;
        tableSize: any;
        changeColumns: any;
    }) => void;
    /** 列配置面板重置的事件 */
    onResetSettingColumnsChange?: (type: 'header' | 'split' | 'scan' | string, { pageSize, tableSize, }: {
        pageSize: any;
        tableSize: any;
    }, getConfigCols: any) => void;
    /** 列配置面板修改后的事件 */
    onSettingColumnsChange?: (type: 'header' | 'split' | 'scan' | 'noRadio', { pageSize, tableSize, changeColumns, }: {
        pageSize: any;
        tableSize: any;
        changeColumns: any;
    }) => void;
    /** 自定义标题显示组件 */
    renderSelfHeader?: (tableRef: TTableRef, selectedRows: any[]) => React.ReactNode;
    /** 筛选位置的 Toolbar 自定义显示组件 */
    renderSelfToolbar?: (reloadTable: (filters?: {
        Key: string;
        Val: string;
        Operator?: string;
    }[], noFilters?: any) => void) => React.ReactNode;
    /** 表格默认大小 */
    defaultTableSize?: 'small' | 'middle' | 'large';
    /** 默认每页显示的数量 */
    defaultPageSize?: number;
    /** 同原Table 的rowSelection 用法一致，内涵 callback方法 */
    rowSelection?: any;
    /** 默认查询的条件 在filter外面 */
    tableDefaultField?: any;
    /** 默认查询的条件 在filter中的 */
    tableDefaultFilter?: {
        Key: string;
        Val: string;
        Operator?: string;
    }[];
    /** 表格内的高度 默认{x: getScrollX(showColumns), y: selectedRows.length > 0 ? 'calc(100vh - 330px)' :'calc(100vh - 270px)'} */
    scroll?: {
        x?: number | string;
        y?: number | string;
    } | undefined;
    /** 表格底部的内容 */
    footer?: () => ReactNode;
    /** 表格表头是否吸顶 默认true */
    sticky?: boolean;
    /** 表格行样式 同Table的 rowClassName 用法一致 */
    rowClassName?: (record: any, index: number) => string;
    /** 全部 右侧的内容自定义 */
    renderNoticeToolbar?: () => ReactNode;
    /** 全部 右侧的下拉菜单 */
    renderDropMenuToolbar?: (reloadTable?: (filters?: {
        Key: string;
        Val: string;
        Operator?: string;
    }[], noFilters?: any) => void) => ReactNode;
    /** 分页的一些配置 */
    pagination?: Pagination;
    /** 是否展示列配置 默认为 true 设置为false后 列拖拽的宽度不会保存起来 但是会有效果 */
    noSettingIcon?: boolean;
}
declare const CrudQueryTable: React.FC<ICrudQueryTableProps>;
export default CrudQueryTable;
