import { ChangeDetectorRef, QueryList, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';
import { OverlaySettings } from '../../../services/overlay/utilities';
import { IgxOverlayService } from '../../../services/overlay/overlay';
import { FilteringLogic, IFilteringExpression } from '../../../data-operations/filtering-expression.interface';
import { IgxChipComponent } from '../../../chips/chip.component';
import { IgxSelectComponent } from '../../../select/select.component';
import { IDragStartEventArgs, IDragBaseEventArgs } from '../../../directives/drag-drop/drag-drop.directive';
import { IgxToggleDirective, IgxOverlayOutletDirective } from '../../../directives/toggle/toggle.directive';
import { IButtonGroupEventArgs } from '../../../buttonGroup/buttonGroup.component';
import { IgxColumnComponent } from '../../columns/column.component';
import { GridType } from '../../common/grid.interface';
/**
 * @hidden
 */
declare class ExpressionItem {
    parent: ExpressionGroupItem;
    selected: boolean;
    constructor(parent?: ExpressionGroupItem);
}
/**
 * @hidden
 */
declare class ExpressionGroupItem extends ExpressionItem {
    operator: FilteringLogic;
    children: ExpressionItem[];
    constructor(operator: FilteringLogic, parent?: ExpressionGroupItem);
}
/**
 * @hidden
 */
declare class ExpressionOperandItem extends ExpressionItem {
    expression: IFilteringExpression;
    inEditMode: boolean;
    inAddMode: boolean;
    hovered: boolean;
    columnHeader: string;
    constructor(expression: IFilteringExpression, parent: ExpressionGroupItem);
}
/**
 * A component used for presenting advanced filtering UI for a Grid.
 * It is used internally in the Grid, but could also be hosted in a container outside of it.
 *
 * Example:
 * ```html
 * <igx-advanced-filtering-dialog
 *     [grid]="grid1">
 * </igx-advanced-filtering-dialog>
 * ```
 */
export declare class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDestroy {
    cdr: ChangeDetectorRef;
    /**
     * @hidden @internal
     */
    columnSelect: IgxSelectComponent;
    /**
     * @hidden @internal
     */
    conditionSelect: IgxSelectComponent;
    /**
     * @hidden @internal
     */
    searchValueInput: ElementRef;
    /**
     * @hidden @internal
     */
    addRootAndGroupButton: ElementRef;
    /**
     * @hidden @internal
     */
    addConditionButton: ElementRef;
    /**
     * @hidden @internal
     */
    set editingInputsContainer(value: ElementRef);
    /**
     * @hidden @internal
     */
    get editingInputsContainer(): ElementRef;
    /**
     * @hidden @internal
     */
    set addModeContainer(value: ElementRef);
    /**
     * @hidden @internal
     */
    get addModeContainer(): ElementRef;
    /**
     * @hidden @internal
     */
    set currentGroupButtonsContainer(value: ElementRef);
    /**
     * @hidden @internal
     */
    get currentGroupButtonsContainer(): ElementRef;
    /**
     * @hidden @internal
     */
    contextMenuToggle: IgxToggleDirective;
    /**
     * @hidden @internal
     */
    chips: QueryList<IgxChipComponent>;
    /**
     * @hidden @internal
     */
    display: string;
    /**
     * @hidden @internal
     */
    protected expressionsContainer: ElementRef;
    /**
     * @hidden @internal
     */
    protected overlayOutlet: IgxOverlayOutletDirective;
    /**
     * @hidden @internal
     */
    inline: boolean;
    /**
     * @hidden @internal
     */
    rootGroup: ExpressionGroupItem;
    /**
     * @hidden @internal
     */
    selectedExpressions: ExpressionOperandItem[];
    /**
     * @hidden @internal
     */
    selectedGroups: ExpressionGroupItem[];
    /**
     * @hidden @internal
     */
    currentGroup: ExpressionGroupItem;
    /**
     * @hidden @internal
     */
    editedExpression: ExpressionOperandItem;
    /**
     * @hidden @internal
     */
    addModeExpression: ExpressionOperandItem;
    /**
     * @hidden @internal
     */
    contextualGroup: ExpressionGroupItem;
    /**
     * @hidden @internal
     */
    filteringLogics: any;
    /**
     * @hidden @internal
     */
    selectedCondition: string;
    /**
     * @hidden @internal
     */
    searchValue: any;
    /**
     * @hidden @internal
     */
    lastActiveNode: any;
    /**
     * @hidden @internal
     */
    columnSelectOverlaySettings: OverlaySettings;
    /**
     * @hidden @internal
     */
    conditionSelectOverlaySettings: OverlaySettings;
    private destroy$;
    private _overlayComponentId;
    private _overlayService;
    private _selectedColumn;
    private _clickTimer;
    private _dblClickDelay;
    private _preventChipClick;
    private _editingInputsContainer;
    private _addModeContainer;
    private _currentGroupButtonsContainer;
    private _grid;
    private _filteringChange;
    private _positionSettings;
    private _overlaySettings;
    constructor(cdr: ChangeDetectorRef);
    /**
     * @hidden @internal
     */
    ngAfterViewInit(): void;
    /**
     * @hidden @internal
     */
    ngOnDestroy(): void;
    /**
     * @hidden @internal
     */
    get displayDensity(): string;
    /**
     * @hidden @internal
     */
    get selectedColumn(): IgxColumnComponent;
    /**
     * @hidden @internal
     */
    set selectedColumn(value: IgxColumnComponent);
    /**
     * An @Input property that sets the grid.
     */
    set grid(grid: GridType);
    /**
     * Returns the grid.
     */
    get grid(): GridType;
    /**
     * @hidden @internal
     */
    get filterableColumns(): IgxColumnComponent[];
    /**
     * @hidden @internal
     */
    dragStart(dragArgs: IDragStartEventArgs): void;
    /**
     * @hidden @internal
     */
    dragEnd(dragArgs: IDragBaseEventArgs): void;
    /**
     * @hidden @internal
     */
    onDragMove(e: any): void;
    /**
     * @hidden @internal
     */
    addCondition(parent: ExpressionGroupItem, afterExpression?: ExpressionItem): void;
    /**
     * @hidden @internal
     */
    addAndGroup(parent?: ExpressionGroupItem, afterExpression?: ExpressionItem): void;
    /**
     * @hidden @internal
     */
    addOrGroup(parent?: ExpressionGroupItem, afterExpression?: ExpressionItem): void;
    /**
     * @hidden @internal
     */
    endGroup(groupItem: ExpressionGroupItem): void;
    /**
     * @hidden @internal
     */
    commitOperandEdit(): void;
    /**
     * @hidden @internal
     */
    cancelOperandAdd(): void;
    /**
     * @hidden @internal
     */
    cancelOperandEdit(): void;
    /**
     * @hidden @internal
     */
    operandCanBeCommitted(): boolean;
    /**
     * @hidden @internal
     */
    exitOperandEdit(): void;
    /**
     * @hidden @internal
     */
    isExpressionGroup(expression: ExpressionItem): boolean;
    /**
     * @hidden @internal
     */
    onChipRemove(expressionItem: ExpressionItem): void;
    /**
     * @hidden @internal
     */
    onChipClick(expressionItem: ExpressionOperandItem): void;
    /**
     * @hidden @internal
     */
    onChipDblClick(expressionItem: ExpressionOperandItem): void;
    /**
     * @hidden @internal
     */
    enterExpressionEdit(expressionItem: ExpressionOperandItem): void;
    /**
     * @hidden @internal
     */
    clearSelection(): void;
    /**
     * @hidden @internal
     */
    enterExpressionAdd(expressionItem: ExpressionOperandItem): void;
    /**
     * @hidden @internal
     */
    contextMenuClosed(): void;
    /**
     * @hidden @internal
     */
    onKeyDown(eventArgs: KeyboardEvent): void;
    /**
     * @hidden @internal
     */
    createAndGroup(): void;
    /**
     * @hidden @internal
     */
    createOrGroup(): void;
    /**
     * @hidden @internal
     */
    deleteFilters(): void;
    /**
     * @hidden @internal
     */
    onGroupClick(groupItem: ExpressionGroupItem): void;
    /**
     * @hidden @internal
     */
    ungroup(): void;
    /**
     * @hidden @internal
     */
    deleteGroup(): void;
    /**
     * @hidden @internal
     */
    selectFilteringLogic(event: IButtonGroupEventArgs): void;
    /**
     * @hidden @internal
     */
    getConditionFriendlyName(name: string): string;
    /**
     * @hidden @internal
     */
    isDate(value: any): boolean;
    /**
     * @hidden @internal
     */
    onExpressionsScrolled(): void;
    /**
     * @hidden @internal
     */
    invokeClick(eventArgs: KeyboardEvent): void;
    /**
     * @hidden @internal
     */
    onOutletPointerDown(event: any): void;
    /**
     * @hidden @internal
     */
    getConditionList(): string[];
    /**
     * @hidden @internal
     */
    initialize(grid: GridType, overlayService: IgxOverlayService, overlayComponentId: string): void;
    /**
     * @hidden @internal
     */
    getFormatter(field: string): any;
    /**
     * @hidden @internal
     */
    getFormat(field: string): any;
    /**
     * @hidden @internal
     */
    getTimezone(field: string): any;
    /**
     * @hidden @internal
     */
    setAddButtonFocus(): void;
    /**
     * @hidden @internal
     */
    context(expression: ExpressionItem, afterExpression?: ExpressionItem): {
        $implicit: ExpressionItem;
        afterExpression: ExpressionItem;
    };
    /**
     * @hidden @internal
     */
    onClearButtonClick(event?: Event): void;
    /**
     * @hidden @internal
     */
    closeDialog(): void;
    /**
     * @hidden @internal
     */
    applyChanges(event?: Event): void;
    /**
     * @hidden @internal
     */
    cancelChanges(): void;
    /**
     * @hidden @internal
     */
    onApplyButtonClick(event?: Event): void;
    /**
     * @hidden @internal
     */
    onChipSelectionEnd(): void;
    private onToggleExpression;
    private toggleExpression;
    private addGroup;
    private createExpressionGroupItem;
    private createExpressionsTreeFromGroupItem;
    private toggleContextMenu;
    private findSingleSelectedGroup;
    private isInsideGroup;
    private deleteItem;
    private createGroup;
    private toggleGroup;
    private toggleGroupRecursive;
    private deselectParentRecursive;
    private calculateContextMenuTarget;
    private scrollElementIntoView;
    private init;
}
export {};
