import { EventEmitter } from '@angular/core';
import { Nullable, PlainObjectOf, SortOrderType } from '@angular-ru/cdk/typings';
import { ColumnsSchema } from '../../interfaces/table-builder.external';
import { ResizeEvent } from '../../interfaces/table-builder.internal';
import { FilterableService } from '../../services/filterable/filterable.service';
import * as i0 from "@angular/core";
export declare class TableTheadComponent<T> {
    protected readonly filterable: FilterableService<T>;
    columnWidth: number;
    headHeight: Nullable<string | number>;
    sortableDefinition: PlainObjectOf<SortOrderType>;
    positionMap: PlainObjectOf<number>;
    sortableCount: number;
    filterableDefinition: PlainObjectOf<string> | ReadonlyMap<unknown, unknown>;
    clientRowHeight: Nullable<number>;
    columnSchema: Nullable<ColumnsSchema>;
    readonly resizing: EventEmitter<ResizeEvent>;
    readonly sortByKey: EventEmitter<string>;
    readonly openContextMenu: EventEmitter<MouseEvent>;
    orderType: typeof SortOrderType;
    limit: number;
    constructor(filterable: FilterableService<T>);
    openContextMenuHandler($event: MouseEvent): void;
    sortIfEnabled(): void;
    openFilter(key: Nullable<string>, event: MouseEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableTheadComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableTheadComponent<any>, "table-thead", never, { "columnWidth": "column-width"; "headHeight": "head-height"; "sortableDefinition": "sortable-definition"; "positionMap": "sortable-position"; "sortableCount": "sortable-count"; "filterableDefinition": "filterable-definition"; "clientRowHeight": "client-row-height"; "columnSchema": "column-schema"; }, { "resizing": "resizing"; "sortByKey": "sortByKey"; "openContextMenu": "openContextMenu"; }, never, never>;
}
//# sourceMappingURL=table-thead.component.d.ts.map