import { PureComponent } from 'react';
import { GridSortType, IGridOnChangeConfig, IGridScrollDelta, IGridInnerFixedType } from './types';
import { IGridInnerColumn, IGridProps } from './Grid';
import Store from './Store';
export interface IGridHeaderProps<Data> {
    size: IGridProps['size'];
    prefix: string;
    columns: Array<IGridInnerColumn<Data>>;
    sortType: GridSortType;
    defaultSortType?: GridSortType;
    sortBy?: string;
    onChange: (config: IGridOnChangeConfig) => void;
    store: Store;
    fixed?: IGridInnerFixedType;
    fixedColumnsHeadRowsHeight: Array<number | string>;
    scroll: IGridScrollDelta;
}
interface IHeaderCell {
    key: string | number;
    className: string;
    children?: React.ReactNode;
    colSpan?: number;
    rowSpan?: number;
}
interface IGridHeaderState {
    rows: Array<Array<IHeaderCell>>;
}
declare class Header<Data> extends PureComponent<IGridHeaderProps<Data>, IGridHeaderState> {
    constructor(props: IGridHeaderProps<Data>);
    unsubscribe: any;
    getSortInfo: (column: IGridInnerColumn<Data>, props: IGridHeaderProps<Data>) => {
        sortBy: string;
        sortType: GridSortType;
        sortTooltip: string;
    };
    getChildrenAndEvents: (column: IGridInnerColumn<Data>, props: IGridHeaderProps<Data>) => {
        children: JSX.Element;
        onClick: () => void;
    } | {
        children: import("react").ReactNode;
        onClick?: undefined;
    };
    getHeaderRows: (passProps?: IGridHeaderProps<Data>, columns?: Array<IGridInnerColumn<Data>>, currentRow?: number, rows?: Array<Array<IHeaderCell>>) => IHeaderCell[][];
    subscribe: () => void;
    componentDidMount(): void;
    componentWillReceiveProps(nextProps: IGridHeaderProps<Data>): void;
    componentWillUnmount(): void;
    renderThead(): JSX.Element;
    render(): JSX.Element;
}
export default Header;
