import { EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { HeaderCellContext, SelectionType, SortDirection, SortPropDir, SortType } from '../../types/public.types';
import { InnerSortEvent, TableColumnInternal } from '../../types/internal.types';
import * as i0 from "@angular/core";
export declare class DataTableHeaderCellComponent implements OnInit, OnDestroy {
    private cd;
    sortType: SortType;
    sortAscendingIcon?: string;
    sortDescendingIcon?: string;
    sortUnsetIcon?: string;
    isTarget?: boolean;
    targetMarkerTemplate?: TemplateRef<any>;
    targetMarkerContext: any;
    enableClearingSortState: boolean;
    _allRowsSelected?: boolean;
    set allRowsSelected(value: boolean | undefined);
    get allRowsSelected(): boolean | undefined;
    selectionType?: SelectionType;
    set column(column: TableColumnInternal);
    get column(): TableColumnInternal;
    headerHeight: number;
    set sorts(val: SortPropDir[]);
    get sorts(): SortPropDir[];
    sort: EventEmitter<InnerSortEvent>;
    select: EventEmitter<void>;
    columnContextmenu: EventEmitter<{
        event: MouseEvent;
        column: TableColumnInternal;
    }>;
    resize: EventEmitter<{
        width: number;
        column: TableColumnInternal;
    }>;
    resizing: EventEmitter<{
        width: number;
        column: TableColumnInternal;
    }>;
    get columnCssClasses(): string;
    get name(): string | undefined;
    get minWidth(): number | undefined;
    get maxWidth(): number | undefined;
    get width(): number;
    get tabindex(): number;
    get isCheckboxable(): boolean | undefined;
    sortClass?: string;
    sortDir?: SortDirection;
    cellContext: HeaderCellContext;
    private _column;
    private _sorts;
    private element;
    private subscription?;
    constructor();
    onContextmenu($event: MouseEvent): void;
    enter(): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    calcSortDir(sorts: SortPropDir[]): any;
    private totalSortStatesApplied;
    onSort(): void;
    calcSortClass(sortDir: SortDirection | undefined): string | undefined;
    protected onMousedown(event: MouseEvent | TouchEvent): void;
    private onMouseup;
    private move;
    private destroySubscription;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataTableHeaderCellComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DataTableHeaderCellComponent, "datatable-header-cell", never, { "sortType": { "alias": "sortType"; "required": false; }; "sortAscendingIcon": { "alias": "sortAscendingIcon"; "required": false; }; "sortDescendingIcon": { "alias": "sortDescendingIcon"; "required": false; }; "sortUnsetIcon": { "alias": "sortUnsetIcon"; "required": false; }; "isTarget": { "alias": "isTarget"; "required": false; }; "targetMarkerTemplate": { "alias": "targetMarkerTemplate"; "required": false; }; "targetMarkerContext": { "alias": "targetMarkerContext"; "required": false; }; "enableClearingSortState": { "alias": "enableClearingSortState"; "required": false; }; "allRowsSelected": { "alias": "allRowsSelected"; "required": false; }; "selectionType": { "alias": "selectionType"; "required": false; }; "column": { "alias": "column"; "required": false; }; "headerHeight": { "alias": "headerHeight"; "required": false; }; "sorts": { "alias": "sorts"; "required": false; }; }, { "sort": "sort"; "select": "select"; "columnContextmenu": "columnContextmenu"; "resize": "resize"; "resizing": "resizing"; }, never, never, true, never>;
}
