import * as React from 'react';
import PropTypes from 'prop-types';
import { CellProps } from './Cell';
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?: (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 propTypes: {
        index: PropTypes.Requireable<number>;
        sortColumn: PropTypes.Requireable<string>;
        dataIndex: PropTypes.Requireable<string>;
        sortType: PropTypes.Requireable<string>;
        sortable: PropTypes.Requireable<boolean>;
        resizable: PropTypes.Requireable<boolean>;
        minWidth: PropTypes.Requireable<number>;
        onColumnResizeStart: PropTypes.Requireable<(...args: any[]) => any>;
        onColumnResizeEnd: PropTypes.Requireable<(...args: any[]) => any>;
        onResize: PropTypes.Requireable<(...args: any[]) => any>;
        onColumnResizeMove: PropTypes.Requireable<(...args: any[]) => any>;
        onSortColumn: PropTypes.Requireable<(...args: any[]) => any>;
        flexGrow: PropTypes.Requireable<number>;
        fixed: PropTypes.Requireable<string | boolean>;
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        onMouseEnterHandler: PropTypes.Requireable<(...args: any[]) => any>;
        onMouseLeaveHandler: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static get contextType(): React.Context<import("./TableContext").Props>;
    static defaultProps: {
        classPrefix: string;
    };
    static getDerivedStateFromProps(nextProps: HeaderCellProps, prevState: HeaderCelltate): {
        width: number | undefined;
        flexGrow: number | undefined;
        columnWidth: number | undefined;
    } | null;
    constructor(props: HeaderCellProps);
    handleColumnResizeStart: () => void;
    handleColumnResizeMove: (width: any, left: number | undefined, fixed: any) => void;
    handleColumnResizeEnd: (columnWidth?: number | undefined, cursorDelta?: number | undefined) => void;
    handleClick: () => void;
    handleShowMouseArea: (left: any) => void;
    addPrefix: (name: string) => any;
    renderResizeSpanner(): JSX.Element | null;
    renderSortColumn(): React.ReactNode;
    render(): JSX.Element;
}
export default HeaderCell;
