import * as React from 'react';
import type { TablePaginationConfig } from 'antd/es/table';
import { ETableSettingType } from '@qn-pandora/pandora-component';
import type { ISaveFieldItem } from '@qn-pandora/pandora-component/es/components/Table';
import { EThemeTypes, ITableTheme, ChartType, IFontStyle } from '../../../constants';
import BasicComponent from '../BasicComponent';
import { IColumnProps, IFilterValue } from './constant';
import 'react-resizable/css/styles.css';
export interface IAntdTableProps<T> {
    columns: Array<IColumnProps<T>>;
    dataSource: T[];
    className?: string;
    bordered?: boolean;
    draggable?: boolean | ETableSettingType;
    size?: 'small' | 'middle' | 'large';
    tableTitleFont?: IFontStyle;
    tableTitleBgColor?: string;
    pagination?: false | TablePaginationConfig;
    onColumnsFiltersChange?: (filters: IFilterValue[]) => void;
    tableOption: ITableTheme;
    theme?: EThemeTypes;
    chartType?: ChartType;
    sort?: {
        field: string;
        order: 'ascend' | 'descend';
    };
    onSortChange?: (sort?: {
        field: string;
        order: 'ascend' | 'descend';
    }) => void;
    onSettingChange?: (fields: ISaveFieldItem[]) => void;
}
export default class AntdTable<T> extends BasicComponent<IAntdTableProps<T>, any> {
    static defaultProps: {
        columns: never[];
        dataSource: never[];
        bordered: boolean;
        tableOption: {};
        theme: EThemeTypes;
    };
    get tableHeaderStyle(): {
        backgroundColor: string | undefined;
        color?: string | undefined;
        fontSize?: number | undefined;
    };
    get hasBgColorColumns(): IColumnProps<T>[];
    get trDisplayStyle(): {
        display: string;
        gridTemplateColumns: string;
    };
    handleTableChange(_: any, filters: IKeyValues): void;
    render(): React.JSX.Element;
}
