import { UserCompDetails } from "../../../components/framework/userComponentFactory";
import { Column } from "../../../entities/column";
import { Beans } from "../../../rendering/beans";
import { ColumnSortState } from "../../../utils/aria";
import { ITooltipFeatureComp } from "../../../widgets/tooltipFeature";
import { HeaderRowCtrl } from "../../row/headerRowCtrl";
import { AbstractHeaderCellCtrl, IAbstractHeaderCellComp } from "../abstractCell/abstractHeaderCellCtrl";
import { IHeader, IHeaderParams } from "./headerComp";
export interface IHeaderCellComp extends IAbstractHeaderCellComp, ITooltipFeatureComp {
    setWidth(width: string): void;
    addOrRemoveCssClass(cssClassName: string, on: boolean): void;
    setAriaSort(sort: ColumnSortState | undefined): void;
    setColId(id: string): void;
    setAriaDescribedBy(id: string | undefined): void;
    setUserCompDetails(compDetails: UserCompDetails): void;
    getUserCompInstance(): IHeader | undefined;
}
export declare class HeaderCellCtrl extends AbstractHeaderCellCtrl {
    private columnModel;
    private columnHoverService;
    protected beans: Beans;
    private sortController;
    private menuFactory;
    private dragAndDropService;
    private gridApi;
    private columnApi;
    private userComponentFactory;
    private colDefVersion;
    private comp;
    private column;
    private refreshFunctions;
    private selectAllFeature;
    private moveDragSource;
    private sortable;
    private displayName;
    private draggable;
    private menuEnabled;
    private dragSourceElement;
    private userCompDetails;
    private userHeaderClasses;
    constructor(column: Column, parentRowCtrl: HeaderRowCtrl);
    setComp(comp: IHeaderCellComp, eGui: HTMLElement, eResize: HTMLElement): void;
    private setupUserComp;
    private setCompDetails;
    private lookupUserCompDetails;
    private createParams;
    private setupSelectAll;
    getSelectAllGui(): HTMLElement;
    protected handleKeyDown(e: KeyboardEvent): void;
    private onEnterKeyPressed;
    isMenuEnabled(): boolean;
    protected onFocusIn(e: FocusEvent): void;
    protected onFocusOut(e: FocusEvent): void;
    private setupTooltip;
    private setupClassesFromColDef;
    getGui(): HTMLElement;
    setDragSource(eSource: HTMLElement | undefined): void;
    private createDragItem;
    removeDragSource(): void;
    private onNewColumnsLoaded;
    private updateState;
    addRefreshFunction(func: () => void): void;
    private refresh;
    private refreshHeaderComp;
    attemptHeaderCompRefresh(params: IHeaderParams): boolean;
    private calculateDisplayName;
    private checkDisplayName;
    private workOutDraggable;
    private onColumnRowGroupChanged;
    private onColumnPivotChanged;
    private onColumnValueChanged;
    private setupWidth;
    private setupMovingCss;
    private setupMenuClass;
    private setupSortableClass;
    private addColumnHoverListener;
    private setupFilterCss;
    private setupColId;
    private addActiveHeaderMouseListeners;
    private setActiveHeader;
}
