/**
 * @license chowa v1.1.3
 *
 * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from 'react';
import { Data, UpdateParams, ColumnsWidthMap, FilterInfo, SorterInfo } from './table';
import { TableColumnProps, DataIndex } from './table-column';
export declare type HeaderColumn = TableColumnProps & {
    parentIndexs?: number[];
};
export interface HeaderRow {
    tier: number;
    tiers: number[];
    cells: number[];
    columns: HeaderColumn[];
}
export interface TableHeaderProps {
    data: Data;
    globalAlign: 'left' | 'right' | 'center';
    columns: TableColumnProps[];
    columnsWidthMap: ColumnsWidthMap;
    resizeable: boolean;
    dataIndexs: DataIndex[];
    headerRowAttr: (rowIndex: number) => React.Attributes;
    filterInfo: FilterInfo;
    sorterInfo: SorterInfo;
    updateTable: (params: UpdateParams) => void;
    expanded: boolean;
    selectable: boolean;
    selectedIndexs: React.ReactText[];
    onSelectAll: () => void;
    onDeSelectAll: () => void;
    fixed?: 'left' | 'right';
    headerHeight?: number;
    draggable?: boolean;
    columnDragSorter?: (dragIndex: number, dropIndex: number, parentIndexs: number[]) => void;
}
export interface TableHeaderState {
    headerRows: HeaderRow[];
}
declare class TableHeader extends React.PureComponent<TableHeaderProps, TableHeaderState> {
    private dragStartX;
    private dragDataIndex;
    private dragDataIndexWidth;
    constructor(props: TableHeaderProps);
    private onSelectionChange;
    componentDidUpdate(preProps: TableHeaderProps): void;
    private onResizeMove;
    private onResizeEnd;
    private onCellResize;
    private compileHeaderRows;
    private renderRow;
    render(): React.ReactNode;
}
export default TableHeader;
