import React from 'react';
import { TableProps, ColumnProps, GroupHeaderProps, GroupFooterProps } from '@alifd/next/types/table';
import { PaginationProps } from '@alifd/next/types/pagination';
import { ButtonProps } from '@alifd/next/types/button';
import { propsType as comfirmType } from '../dialog/confirm';
interface column extends ColumnProps {
    tips?: any;
    iconType?: string;
    iconColor?: any;
    dataIndex?: string;
    isSpecialIndex?: boolean;
    iconSize?: "inherit" | "small" | "large" | "medium" | "xxs" | "xs" | "xl" | "xxl" | "xxxl";
}
interface action {
    width: string | number;
    title: React.ReactNode;
    props: ColumnProps;
    buttons: {
        visible?: boolean | Function;
        onClick?: Function;
    }[];
    max: number;
    maxText: string;
}
interface batchAction extends ButtonProps {
    comfirmProps?: comfirmType;
}
interface rowSelection {
    getProps?: (record: object, index: number) => void;
    onChange?: (selectedRowKeys: Array<any>, records: Array<any>) => void;
    onSelect?: (selected: boolean, record: object, records: Array<any>) => void;
    onSelectAll?: (selected: boolean, records: Array<any>) => void;
    selectedRowKeys?: Array<any>;
    mode?: 'single' | 'multiple';
    columnProps?: () => ColumnProps;
}
interface tablePagination extends PaginationProps {
    showTotal: boolean;
}
export interface propsType extends TableProps {
    /** 是否显示等待 */
    isLoading?: boolean;
    /** 分页器配置 */
    pagination?: tablePagination;
    /** 渲染数据的配置 */
    columns: column[];
    /** 操作集合 */
    actions?: action;
    /** 批量操作按钮 */
    batchActionContent?: Array<batchAction | object>;
    /** 不显示cell内的气泡 */
    noBalloon?: boolean;
    /** table.groupHeader的属性 */
    groupHeader?: GroupHeaderProps;
    /** table.groupFooter的属性 */
    groupFooter?: GroupFooterProps;
    /** 是否展示基础的empty */
    baseEmpty?: boolean;
    /** 默认Empty底部文案 */
    empty?: React.ReactNode;
    /**  是否启用选择模式
     * next的rowSelection属性申明有问题，明明还有一个columnProps等方法
     * 在这里做补充
     * */
    rowSelection?: rowSelection;
    /**文案 */
    locale?: any;
    /**批量操作函数*/
    batchClearAction?: Function;
}
interface stateType {
    selectedRowKeys: any[];
}
declare class LPTable extends React.Component<propsType, stateType> {
    TableId: string;
    constructor(props: any);
    rowSelectionProxy: (rowSelection: any, batchActionContent: any) => any;
    generateTitle(tips: any, title: any, iconType: string | undefined, iconColor: string | undefined, iconSize: any): any;
    columnCell: (value: any, index: any, data: any, column: any, noBalloon: boolean | undefined, balloonProps: any) => any;
    renderTextButton(textButton: any, item: any, index: any, actionIndex: any): any;
    getActionable: (visible: any, data: any, defaultValue: any) => any;
    generateActions: (value: any, index: any, data: any, actions: any) => JSX.Element;
    returnBatchActionContent: (batchActionContent: any) => any;
    renderfooter: (paginationConfig: any, batchActionContent: any) => JSX.Element | null;
    renderColums: (columns: any, dataSource: any, noBalloon: any) => any;
    getPaginationConfig: (pagination: any, batchActionContent: any, locale: any) => any;
    render(): JSX.Element;
}
export default LPTable;
