import { EventEmitter, OnChanges, OnDestroy, SimpleChanges, TemplateRef } from '@angular/core';
import { ColumnResizeEvent, InnerSortEvent, ReorderEvent, SelectionType, SortDirection, SortEvent, SortPropDir, SortType } from '../../types/public.types';
import { NgStyle } from '@angular/common';
import { TableColumn } from '../../types/table-column.type';
import { OrderableReorderEvent, PinnedColumns, TargetChangedEvent } from '../../types/internal.types';
import * as i0 from "@angular/core";
export declare class DataTableHeaderComponent implements OnDestroy, OnChanges {
    private cd;
    private scrollbarHelper;
    sortAscendingIcon: string;
    sortDescendingIcon: string;
    sortUnsetIcon: string;
    scrollbarH: boolean;
    dealsWithGroup: boolean;
    targetMarkerTemplate: TemplateRef<unknown>;
    enableClearingSortState: boolean;
    set innerWidth(val: number);
    get innerWidth(): number;
    sorts: SortPropDir[];
    sortType: SortType;
    allRowsSelected: boolean;
    selectionType: SelectionType;
    reorderable: boolean;
    verticalScrollVisible: boolean;
    dragEventTarget?: MouseEvent;
    set headerHeight(val: any);
    get headerHeight(): any;
    set columns(val: TableColumn[]);
    get columns(): any[];
    set offsetX(val: number);
    get offsetX(): number;
    sort: EventEmitter<SortEvent>;
    reorder: EventEmitter<ReorderEvent>;
    resize: EventEmitter<ColumnResizeEvent>;
    resizing: EventEmitter<ColumnResizeEvent>;
    select: EventEmitter<void>;
    columnContextmenu: EventEmitter<{
        event: MouseEvent;
        column: TableColumn;
    }>;
    _columnsByPin: PinnedColumns[];
    _columnGroupWidths: any;
    _innerWidth: number;
    _offsetX: number;
    _columns: TableColumn[];
    _headerHeight: string;
    _styleByGroup: {
        left: NgStyle['ngStyle'];
        center: NgStyle['ngStyle'];
        right: NgStyle['ngStyle'];
    };
    private destroyed;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    onLongPressStart({ event, model }: {
        event: MouseEvent;
        model: TableColumn;
    }): void;
    onLongPressEnd({ model }: {
        model: TableColumn;
    }): void;
    get headerWidth(): string;
    onColumnResized(width: number, column: TableColumn): void;
    onColumnResizing(width: number, column: TableColumn): void;
    private makeResizeEvent;
    onColumnReordered({ prevIndex, newIndex, model }: OrderableReorderEvent): void;
    onTargetChanged({ prevIndex, newIndex, initialIndex }: TargetChangedEvent): void;
    getColumn(index: number): any;
    onSort({ column, prevValue, newValue }: InnerSortEvent): void;
    calcNewSorts(column: TableColumn, prevValue: SortDirection, newValue: SortDirection): SortPropDir[];
    setStylesByGroup(): void;
    calcStylesByGroup(group: 'center' | 'right' | 'left'): NgStyle['ngStyle'];
    static ɵfac: i0.ɵɵFactoryDeclaration<DataTableHeaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DataTableHeaderComponent, "datatable-header", never, { "sortAscendingIcon": { "alias": "sortAscendingIcon"; "required": false; }; "sortDescendingIcon": { "alias": "sortDescendingIcon"; "required": false; }; "sortUnsetIcon": { "alias": "sortUnsetIcon"; "required": false; }; "scrollbarH": { "alias": "scrollbarH"; "required": false; }; "dealsWithGroup": { "alias": "dealsWithGroup"; "required": false; }; "targetMarkerTemplate": { "alias": "targetMarkerTemplate"; "required": false; }; "enableClearingSortState": { "alias": "enableClearingSortState"; "required": false; }; "innerWidth": { "alias": "innerWidth"; "required": false; }; "sorts": { "alias": "sorts"; "required": false; }; "sortType": { "alias": "sortType"; "required": false; }; "allRowsSelected": { "alias": "allRowsSelected"; "required": false; }; "selectionType": { "alias": "selectionType"; "required": false; }; "reorderable": { "alias": "reorderable"; "required": false; }; "verticalScrollVisible": { "alias": "verticalScrollVisible"; "required": false; }; "headerHeight": { "alias": "headerHeight"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; }, { "sort": "sort"; "reorder": "reorder"; "resize": "resize"; "resizing": "resizing"; "select": "select"; "columnContextmenu": "columnContextmenu"; }, never, never, true, never>;
}
