import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { Observable, Subscription } from 'rxjs';
import { FilterConfig, SortDirection, SortEventArg } from '../../../data-table.model';
import * as i0 from "@angular/core";
export declare class TableThComponent implements OnChanges, OnDestroy {
    private renderer2;
    private zone;
    private cdr;
    private doc;
    resizeEnabledClass: boolean;
    operableClass: boolean;
    sortActiveClass: boolean;
    filterActiveClass: boolean;
    stickyLeftClass: boolean;
    stickyRightClass: boolean;
    stickyLeftStyle: string;
    stickyRightStyle: string;
    resizeEnabled: boolean;
    filterable: boolean;
    beforeFilter: (value: any) => boolean | Promise<boolean> | Observable<boolean>;
    customFilterTemplate: TemplateRef<any>;
    extraFilterTemplate: TemplateRef<any>;
    searchFn: (term: string) => Observable<Array<any>>;
    showFilterIcon: boolean;
    filterList: Array<FilterConfig>;
    filterIconActive: boolean;
    filterMultiple: boolean;
    closeFilterWhenScroll: boolean;
    filterBoxWidth: any;
    filterBoxHeight: any;
    filterChange: EventEmitter<FilterConfig[]>;
    filterToggle: EventEmitter<{
        isOpen: boolean;
        checklist: FilterConfig[];
    }>;
    sortable: boolean;
    sortDirection: SortDirection;
    showSortIcon: boolean;
    sortDirectionChange: EventEmitter<SortDirection>;
    sortChange: EventEmitter<SortEventArg>;
    colDraggable: boolean;
    nestedColumn: boolean;
    /**
     * @depreted 存在xxs风险，使用方需根据自身场景做好防护
     */
    iconFoldTable: string;
    /**
     * @depreted 存在xxs风险，使用方需根据自身场景做好防护
     */
    iconUnFoldTable: string;
    tableViewRefElement: ElementRef;
    resizeEndEvent: EventEmitter<any>;
    resizeStartEvent: EventEmitter<any>;
    resizingEvent: EventEmitter<any>;
    minWidth: string;
    maxWidth: string;
    fixedLeft: string;
    fixedRight: string;
    isLastFixedLeft: boolean;
    isFirstFixedRight: boolean;
    resizeBarRefElement: HTMLElement;
    element: HTMLElement;
    subscription: Subscription;
    resizing: boolean;
    resizeNodeEvent: any;
    resizeOverlay: HTMLElement;
    nextElement: any;
    initialWidth: number;
    initialOffset: number;
    totalWidth: number;
    mouseDownScreenX: number;
    resizeHandleElement: HTMLElement;
    tableElement: HTMLElement;
    tableHeaderElement: HTMLElement;
    childrenTableOpen: boolean;
    toggleChildrenTableEvent: EventEmitter<boolean>;
    tapEvent: EventEmitter<any>;
    column: any;
    document: Document;
    constructor(element: ElementRef, renderer2: Renderer2, zone: NgZone, cdr: ChangeDetectorRef, doc: any);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    onFilterIconActive(active: any): void;
    onTap(event: any): void;
    toggleChildrenTable(): void;
    emitFilterData(filterData: any): void;
    emitFilterToggle(data: {
        isOpen: boolean;
        checklist: FilterConfig[];
    }): void;
    onSort(event: SortEventArg): void;
    clearSortOrder(): void;
    onMousedown(event: MouseEvent): void;
    onMouseup(event: MouseEvent): void;
    bindMousemove: (e: any) => void;
    move(event: MouseEvent): void;
    private getFinalWidth;
    private handleWidth;
    private _destroySubscription;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableThComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableThComponent, "[dHeadCell]", never, { "resizeEnabled": { "alias": "resizeEnabled"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "beforeFilter": { "alias": "beforeFilter"; "required": false; }; "customFilterTemplate": { "alias": "customFilterTemplate"; "required": false; }; "extraFilterTemplate": { "alias": "extraFilterTemplate"; "required": false; }; "searchFn": { "alias": "searchFn"; "required": false; }; "showFilterIcon": { "alias": "showFilterIcon"; "required": false; }; "filterList": { "alias": "filterList"; "required": false; }; "filterIconActive": { "alias": "filterIconActive"; "required": false; }; "filterMultiple": { "alias": "filterMultiple"; "required": false; }; "closeFilterWhenScroll": { "alias": "closeFilterWhenScroll"; "required": false; }; "filterBoxWidth": { "alias": "filterBoxWidth"; "required": false; }; "filterBoxHeight": { "alias": "filterBoxHeight"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "sortDirection": { "alias": "sortDirection"; "required": false; }; "showSortIcon": { "alias": "showSortIcon"; "required": false; }; "colDraggable": { "alias": "colDraggable"; "required": false; }; "nestedColumn": { "alias": "nestedColumn"; "required": false; }; "iconFoldTable": { "alias": "iconFoldTable"; "required": false; }; "iconUnFoldTable": { "alias": "iconUnFoldTable"; "required": false; }; "tableViewRefElement": { "alias": "tableViewRefElement"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "fixedLeft": { "alias": "fixedLeft"; "required": false; }; "fixedRight": { "alias": "fixedRight"; "required": false; }; "isLastFixedLeft": { "alias": "isLastFixedLeft"; "required": false; }; "isFirstFixedRight": { "alias": "isFirstFixedRight"; "required": false; }; "childrenTableOpen": { "alias": "childrenTableOpen"; "required": false; }; "column": { "alias": "column"; "required": false; }; }, { "filterChange": "filterChange"; "filterToggle": "filterToggle"; "sortDirectionChange": "sortDirectionChange"; "sortChange": "sortChange"; "resizeEndEvent": "resizeEndEvent"; "resizeStartEvent": "resizeStartEvent"; "resizingEvent": "resizingEvent"; "toggleChildrenTableEvent": "toggleChildrenTableEvent"; "tapEvent": "tapEvent"; }, never, ["*"], false, never>;
}
