import React from 'react';
import PropTypes from 'prop-types';
import { LocalStorage } from '../../../data/LocalStorage';
import { GridSorterDefaultProps, GridSorterProps } from './GridSorter';
export interface GridHeaderCellState {
    minWidth: any;
    resizing: any;
}
declare type GridHeaderCellProps = {
    isSortable?: boolean;
    isResizable?: boolean;
    append?: React.ReactNode;
    minWidth?: number;
    maxWidth?: number;
    ariaDescription?: string;
    ariaDescriptionId?: string;
    skipContentForSR?: boolean;
    noRightBorder?: boolean;
} & GridSorterProps & Partial<GridHeaderCellDefaultProps> & React.HTMLProps<GridHeaderCell>;
declare type GridHeaderCellDefaultProps = {
    isSortable: boolean;
    isResizable: boolean;
    append: null;
    minWidth: null;
    maxWidth: null;
    skipContentForSR: boolean;
    ariaDescriptionId: null;
    noRightBorder: false;
} & GridSorterDefaultProps;
export declare class GridHeaderCell extends React.Component<GridHeaderCellProps, GridHeaderCellState> {
    static propTypes: {
        isSortable: PropTypes.Requireable<boolean>;
        isResizable: PropTypes.Requireable<boolean>;
        append: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        minWidth: PropTypes.Requireable<number>;
        maxWidth: PropTypes.Requireable<number>;
        ariaDescription: PropTypes.Requireable<string>;
        ariaDescriptionId: PropTypes.Requireable<string>;
        skipContentForSR: PropTypes.Requireable<boolean>;
        noRightBorder: PropTypes.Requireable<boolean>;
    };
    static defaultProps: {
        isSortable: boolean;
        isResizable: boolean;
        append: any;
        minWidth: number;
        maxWidth: number;
        skipContentForSR: boolean;
        ariaDescriptionId: any;
        ariaDescription: string;
        noRightBorder: boolean;
        readonly ascendingText: string;
        readonly descendingText: string;
        readonly sorterTitleText: string;
    };
    static contextTypes: {
        localStorage: PropTypes.Requireable<LocalStorage>;
    };
    state: {
        minWidth: any;
        resizing: any;
    };
    cellRef: any;
    gridSorterRef: any;
    componentDidMount(): void;
    componentWillUnmount(): void;
    getResizeColumnWidth(): any;
    getParentCell(element: any): any;
    handleSiblingResize: (localStoragePrefix: any) => void;
    createResizeOverlay(): HTMLDivElement;
    startResizing: (event: any) => void;
    resize: (event: any) => void;
    stopResizing: (event: any) => void;
    cancelResizing(): void;
    notifySiblings: () => void;
    isResizable(): boolean;
    renderResizeHandler(): JSX.Element;
    renderChildren: (ariaDescription: any, skipContentForSR: any, ariaDescriptionId: any, children: any) => JSX.Element;
    renderPrepend(prepend: any): JSX.Element;
    renderAppend(append: any): JSX.Element;
    renderCellContent(prepend: any, children: any, append: any): JSX.Element;
    render(): JSX.Element;
}
export {};
