/// <reference types="lodash" />
import * as React from 'react';
import { ITableTheme, IFontStyle } from '../../../../constants';
import { IColumnProps, IFilterValue } from '../constant';
export interface ITTableHeaderProps<T> {
    columns: Array<IColumnProps<T>>;
    dataSource: T[];
    data: T[];
    setData: (data: T[]) => void;
    fixedIndexes: {
        left: number[];
        right: number[];
    };
    filters: IFilterValue[];
    handleChangeFilters: (filters: IFilterValue[]) => void;
    bordered?: boolean;
    tableOption: ITableTheme;
    tableTitleFont?: IFontStyle;
    tableTitleBgColor?: string;
    defaultActiveOrder?: 'ascend' | 'descend';
    defaultActiveDataIndex?: string;
    onColumnsFiltersChange?: (filters: IFilterValue[]) => void;
    getTableData: (dataSource: T[]) => any;
    handleCellResize: ({ size }: any, dataIndex?: string) => void;
    onSortChange?: (sort?: {
        field: string;
        order: 'ascend' | 'descend';
    }) => void;
}
export default class TableHeader<T> extends React.Component<ITTableHeaderProps<T>, {}> {
    activeOrder: 'ascend' | 'descend' | null;
    activeDataIndex: string;
    debounceColumnsFiltersChange: import("lodash").DebouncedFunc<(filters: IFilterValue[]) => void>;
    get borderStyle(): {
        borderBottom: string;
    } | {
        borderBottom?: undefined;
    };
    get tableHeaderStyle(): {
        backgroundColor: string | undefined;
        color?: string | undefined;
        fontSize?: number | undefined;
    };
    setActiveDataIndex(dataIndex: string): void;
    setActiveOrder(order: 'ascend' | 'descend'): void;
    handleRestFilterValue(key: string): void;
    handleUpdateFilterValue(filterValue: IFilterValue): void;
    componentDidMount(): void;
    UNSAFE_componentWillReceiveProps(nextProps: Readonly<ITTableHeaderProps<T>>): void;
    render(): React.JSX.Element;
}
