import { ChangeDetectorRef, TemplateRef, OnDestroy, ElementRef } from '@angular/core';
import { IgxOverlayService } from '../../../services/index';
import { IgxFilteringService } from '../grid-filtering.service';
import { IFilteringOperation } from '../../../data-operations/filtering-condition';
import { IgxExcelStyleSearchComponent } from './excel-style-search.component';
import { IgxExcelStyleCustomDialogComponent } from './excel-style-custom-dialog.component';
import { IgxExcelStyleSortingComponent } from './excel-style-sorting.component';
import { ISelectionEventArgs, IgxDropDownComponent } from '../../../drop-down';
import { IgxColumnComponent } from '../../columns/column.component';
import { IgxGridBaseDirective } from '../../grid-base.directive';
/**
 * @hidden
 */
export declare class FilterListItem {
    value: any;
    label: any;
    isSelected: boolean;
    indeterminate: boolean;
    isSpecial: boolean;
    isBlanks: boolean;
}
export declare class IgxExcelStyleSortingTemplateDirective {
    template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
}
export declare class IgxExcelStyleMovingTemplateDirective {
    template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
}
export declare class IgxExcelStyleHidingTemplateDirective {
    template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
}
export declare class IgxExcelStyleSelectingTemplateDirective {
    template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
}
export declare class IgxExcelStylePinningTemplateDirective {
    template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
}
/**
 * A component used for presenting Excel style filtering UI for a specific column.
 * It is used internally in the Grid, but could also be hosted in a container outside of it.
 *
 * Example:
 * ```html
 * <igx-grid-excel-style-filtering
 *     [column]="grid1.columns[0]">
 * </igx-grid-excel-style-filtering>
 * ```
 */
export declare class IgxGridExcelStyleFilteringComponent implements OnDestroy {
    private cdr;
    private element;
    private static readonly filterOptimizationThreshold;
    private shouldOpenSubMenu;
    private expressionsList;
    private destroy$;
    private containsNullOrEmpty;
    private selectAllSelected;
    private selectAllIndeterminate;
    private filterValues;
    private _column;
    private _columnPinning;
    private _columnVisibilityChanged;
    private _filteringChanged;
    private _densityChanged;
    /**
     * An @Input property that sets the column.
     */
    set column(value: IgxColumnComponent);
    /**
     * Returns the current column.
     */
    get column(): IgxColumnComponent;
    /**
     * @hidden @internal
     */
    get filteringService(): IgxFilteringService;
    /**
     * @hidden @internal
     */
    listData: FilterListItem[];
    /**
     * @hidden @internal
     */
    uniqueValues: any[];
    /**
     * @hidden @internal
     */
    overlayService: IgxOverlayService;
    /**
     * @hidden @internal
     */
    overlayComponentId: string;
    private _subMenuPositionSettings;
    private _subMenuOverlaySettings;
    /**
     * @hidden @internal
     */
    get minHeight(): string;
    /**
     * @hidden @internal
     */
    get maxHeight(): string;
    /**
     * @hidden @internal
     */
    className: string;
    /**
     * @hidden @internal
     */
    inline: boolean;
    /**
     * @hidden @internal
     */
    mainDropdown: ElementRef;
    /**
     * @hidden @internal
     */
    subMenu: IgxDropDownComponent;
    /**
     * @hidden @internal
     */
    customDialog: IgxExcelStyleCustomDialogComponent;
    /**
     * @hidden @internal
     */
    protected excelStyleSearch: IgxExcelStyleSearchComponent;
    /**
     * @hidden @internal
     */
    protected excelStyleSorting: IgxExcelStyleSortingComponent;
    /**
     * @hidden @internal
     */
    protected defaultExcelStyleSortingTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    protected defaultExcelStyleHidingTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    protected defaultExcelStyleSelectingTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    protected defaultExcelStyleMovingTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    protected defaultExcelStylePinningTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    isColumnPinnable: boolean;
    /**
     * @hidden @internal
     */
    get grid(): IgxGridBaseDirective;
    /**
     * @hidden @internal
     */
    get conditions(): string[];
    /**
     * @hidden @internal
     */
    get subMenuText(): string;
    constructor(cdr: ChangeDetectorRef, element: ElementRef);
    /**
     * @hidden @internal
     */
    ngOnDestroy(): void;
    private init;
    /**
     * @hidden @internal
     */
    clearFilterClass(): "igx-excel-filter__actions-clear" | "igx-excel-filter__actions-clear--disabled";
    /**
     * @hidden @internal
     */
    pinClass(): "igx-excel-filter__actions-pin" | "igx-excel-filter__actions-pin--disabled";
    /**
     * @hidden @internal
     */
    selectedClass(): "igx-excel-filter__actions-selected" | "igx-excel-filter__actions-select";
    /**
     * @hidden @internal
     */
    initialize(column: IgxColumnComponent, overlayService: IgxOverlayService, overlayComponentId: string): void;
    /**
     * @hidden @internal
     */
    getCondition(value: string): IFilteringOperation;
    /**
     * @hidden @internal
     */
    translateCondition(value: string): string;
    /**
     * @hidden @internal
     */
    onPin(): void;
    /**
     * @hidden @internal
     */
    onSelect(): void;
    /**
     * @hidden @internal
     */
    columnSelectable(): boolean;
    /**
     * @hidden @internal
     */
    onHideToggle(): void;
    /**
     * @hidden @internal
     */
    onTextFilterClick(eventArgs: any): void;
    /**
     * @hidden @internal
     */
    onTextFilterKeyDown(eventArgs: any): void;
    /**
     * @hidden @internal
     */
    onSubMenuClosed(): void;
    /**
     * @hidden @internal
     */
    onSubMenuSelection(eventArgs: ISelectionEventArgs): void;
    private areExpressionsSelectable;
    private areExpressionsValuesInTheList;
    private populateColumnData;
    private renderColumnValuesRemotely;
    private renderColumnValuesFromData;
    private renderValues;
    private generateUniqueValues;
    private generateFilterValues;
    private generateListData;
    private getColumnFilterExpressionsTree;
    private addBooleanItems;
    private addItems;
    private addSelectAllItem;
    private addBlanksItem;
    private sortData;
    private selectAllFilterItems;
    /**
     * @hidden @internal
     */
    get sortingTemplate(): TemplateRef<any>;
    /**
     * @hidden @internal
     */
    get movingTemplate(): TemplateRef<any>;
    /**
     * @hidden @internal
     */
    get pinningTemplate(): TemplateRef<any>;
    /**
     * @hidden @internal
     */
    get hidingTemplate(): TemplateRef<any>;
    /**
     * @hidden @internal
     */
    get selectingTemplate(): TemplateRef<any>;
    /**
     * @hidden @internal
     */
    get applyButtonDisabled(): boolean;
    /**
     * @hidden @internal
     */
    applyFilter(): void;
    /**
     * @hidden @internal
     */
    cancel(): void;
    private closeDropdown;
    /**
     * @hidden @internal
     */
    onKeyDown(eventArgs: any): void;
    /**
     * @hidden @internal
     */
    clearFilter(): void;
    /**
     * @hidden @internal
     */
    onClearFilterKeyDown(eventArgs: any): void;
    /**
     * @hidden @internal
     */
    showCustomFilterItem(): boolean;
    private createCondition;
}
