import * as React from 'react';
import { CellProps } from './Cell';
import TableContext from './TableContext';
export interface HeaderCellProps extends CellProps {
    index?: number;
    minWidth?: number;
    sortColumn?: string;
    sortType?: 'desc' | 'asc';
    sortable?: boolean;
    style?: React.CSSProperties;
    resizable?: boolean;
    resizeLeft?: number;
    onColumnResizeStart?: (columnWidth?: number, left?: number, fixed?: boolean) => void;
    onColumnResizeEnd?: (columnWidth?: number, cursorDelta?: number, dataKey?: any, index?: number) => void;
    onResize?: (columnWidth?: number, dataKey?: string) => void;
    onColumnResizeMove?: (columnWidth?: number, columnLeft?: number, columnFixed?: boolean) => void;
    onSortColumn?: (dataKey?: string) => void;
    flexGrow?: number;
    fixed?: boolean | 'left' | 'right';
    dataIndex?: string;
    onMouseEnterHandler?: (columnWidth: number, left: number, fixed: string | boolean | undefined) => void;
    onMouseLeaveHandler?: () => void;
}
interface HeaderCelltate {
    columnWidth?: number;
    width?: number;
    flexGrow?: number;
}
declare class HeaderCell extends React.PureComponent<HeaderCellProps, HeaderCelltate> {
    static get contextType(): typeof TableContext;
    static defaultProps: {
        classPrefix: string;
    };
    static getDerivedStateFromProps(nextProps: HeaderCellProps, prevState: HeaderCelltate): {
        width: number | undefined;
        flexGrow: number | undefined;
        columnWidth: number | undefined;
    } | null;
    constructor(props: HeaderCellProps);
    handleColumnResizeStart: (columnWidth: number) => void;
    handleColumnResizeMove: (width: any, left: number | undefined, fixed: any) => void;
    handleColumnResizeEnd: (columnWidth?: number | undefined, cursorDelta?: number | undefined) => void;
    handleClick: () => void;
    handleShowMouseArea: (columnWidth: number) => void;
    addPrefix: (name: string) => any;
    renderResizeSpanner(): JSX.Element | null;
    renderSortColumn(): React.ReactNode;
    render(): JSX.Element;
}
export default HeaderCell;
