import { Renderer2, EventEmitter, QueryList, ElementRef } from '@angular/core';
import { UIAction } from '@true-directive/base';
import { Column } from '@true-directive/base';
import { GridLayout } from '@true-directive/base';
import { BaseComponent } from './base.component';
import { ScrollerComponent } from './scroller.component';
import { GridStateService } from './grid-state.service';
import { GridHeaderCellComponent } from './grid-header-cell.component';
import { GridHeaderBandComponent } from './grid-header-band.component';
export declare class GridHeaderComponent extends BaseComponent {
    state: GridStateService;
    private elementRef;
    private renderer;
    layout: GridLayout;
    scroller: ScrollerComponent;
    resizeColumn: EventEmitter<{
        action: string;
        ui: UIAction;
    }>;
    toggleCheckColumn: EventEmitter<Column>;
    gridHeaderTable: any;
    dropMarker: any;
    columnElements: QueryList<GridHeaderCellComponent>;
    bandElements: QueryList<GridHeaderBandComponent>;
    private _scrollerClientRect;
    _touches: boolean;
    _markerVisible: boolean;
    resizeInProcess(value: boolean): void;
    dragInProcess(value: boolean): void;
    readonly isAutoScroll: boolean;
    resizeMouseUp(e: any): void;
    toggleCheck(e: any, col: Column): void;
    headerCellMouseDown(e: any, col: Column): void;
    captionTouchMove(e: any, col: Column): void;
    captionTouchEnd(e: any): void;
    captionStartDrag(e: any, col: Column): void;
    captionSort(e: any, col: Column): void;
    resizeMouseDown(e: any, col: Column): void;
    resizeMouseDownPrev(e: any, col: Column): void;
    showHeaderBtn(fieldName: string): void;
    hideHeaderBtns(): void;
    private readonly renderedColumns;
    private readonly renderedBands;
    private inRect;
    canDrop(mouseAction: UIAction, show: boolean): any;
    autoScrollX(dx: number): void;
    initResizing(e: any, col: Column): void;
    startResizing(): void;
    initReordering(x: number, y: number): void;
    proceedReordering(xx: number, yy: number): void;
    stopReordering(): void;
    stopActions(): void;
    /**
     * Проверка необходимости инициализации перестановки колонки
     * @param  xx [description]
     * @param  yy [description]
     * @return    True, если перестановка колонки инициализирована. False - если
     *            инициализация не нужна.
     */
    checkReordering(xx: number, yy: number): boolean;
    documentMouseMove(e: MouseEvent): void;
    documentMouseUp(e: MouseEvent): void;
    constructor(state: GridStateService, elementRef: ElementRef, renderer: Renderer2);
}
