/// <reference types="react" />
import { TableProps as AntDTableProps, TablePaginationConfig } from 'antd/lib/table';
export interface TableCellProps {
    tableProps: {
        onEmit: (eventName: string, index: number, record: any, ...args: any[]) => void;
        onTableEmit: (eventName: string, ...args: any[]) => void;
        name: string;
        uiType: string;
        primaryKey: string;
        index: number;
        record: any;
        cellClassName?: string;
        tableDataSource: Array<any>;
        scroll?: any;
        otherKey?: any;
    };
    value: any;
}
export interface ColumnItemProps {
    name: string;
    label?: string;
    uiType?: string;
    props?: any;
    help?: string;
    /** 自定义渲染方法 */
    cell?: (value: any, record: any, index: number) => any;
    render?: (text?: number, record?: any, index?: number) => any;
    width?: number;
    fixed?: any;
}
export interface PropTypes extends Omit<AntDTableProps<any>, 'columns' | 'pagination'> {
    columns: Array<ColumnItemProps>;
    dataSource?: Array<any>;
    hasBorder?: boolean;
    cellClassName?: string;
    comsMap?: {
        [uiType: string]: React.FC | React.Component;
    };
    fixFirstColumn?: boolean;
    fixLastColumn?: boolean;
    /** 参考 antd 中 Table 组件的 pagination 属性，如果传 false，表示不分页 */
    pagination?: boolean | TablePaginationConfig;
    rowSelection?: any;
    checkable?: boolean;
    primaryKey?: string | ((records?: any) => string);
    otherKey?: string;
    onEmit?: any;
    onShowSizeChange?: any;
    onPageChange?: any;
}
