import { AfterViewInit, ChangeDetectorRef, TemplateRef, OnDestroy } from '@angular/core';
import { IgxInputDirective } from '../../../directives/input/input.directive';
import { IgxForOfDirective } from '../../../directives/for-of/for_of.directive';
import { IChangeCheckboxEventArgs, IgxCheckboxComponent } from '../../../checkbox/public_api';
import { PlatformUtil } from '../../../core/utils';
import { BaseFilteringComponent } from './base-filtering.component';
import { ActiveElement, FilterListItem } from './common';
import { IgxButtonDirective } from '../../../directives/button/button.directive';
import { IgxTreeComponent } from '../../../tree/tree.component';
import { IgxListComponent } from '../../../list/list.component';
import { ITreeNodeSelectionEvent } from '../../../tree/common';
import * as i0 from "@angular/core";
export declare class IgxExcelStyleLoadingValuesTemplateDirective {
    template: TemplateRef<undefined>;
    static ngTemplateContextGuard(_dir: IgxExcelStyleLoadingValuesTemplateDirective, ctx: unknown): ctx is undefined;
    constructor(template: TemplateRef<undefined>);
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxExcelStyleLoadingValuesTemplateDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxExcelStyleLoadingValuesTemplateDirective, "[igxExcelStyleLoading]", never, {}, {}, never, never, true, never>;
}
/**
 * A component used for presenting Excel style search UI.
 */
export declare class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy {
    cdr: ChangeDetectorRef;
    esf: BaseFilteringComponent;
    protected platform: PlatformUtil;
    private static readonly filterOptimizationThreshold;
    /**
     * @hidden @internal
     */
    defaultClass: boolean;
    /**
     * @hidden @internal
     */
    searchInput: IgxInputDirective;
    protected cancelButton: IgxButtonDirective;
    /**
     * @hidden @internal
     */
    list: IgxListComponent;
    /**
     * @hidden @internal
     */
    selectAllCheckbox: IgxCheckboxComponent;
    /**
     * @hidden @internal
     */
    addToCurrentFilterCheckbox: IgxCheckboxComponent;
    /**
     * @hidden @internal
     */
    tree: IgxTreeComponent;
    /**
     * @hidden @internal
     */
    protected virtDir: IgxForOfDirective<any>;
    /**
     * @hidden @internal
     */
    protected defaultExcelStyleLoadingValuesTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    get selectAllItem(): FilterListItem;
    /**
     * @hidden @internal
     */
    get addToCurrentFilterItem(): FilterListItem;
    /**
     * @hidden @internal
     */
    get isLoading(): boolean;
    /**
     * @hidden @internal
     */
    set isLoading(value: boolean);
    /**
     * @hidden @internal
     */
    searchValue: any;
    /**
     * @hidden @internal
     */
    displayedListData: FilterListItem[];
    /**
     * @hidden @internal
     */
    matchesCount: number;
    /**
     * @hidden @internal
     */
    get valuesLoadingTemplate(): any;
    protected activeDescendant: string;
    private _id;
    private _isLoading;
    private _addToCurrentFilterItem;
    private _selectAllItem;
    private _hierarchicalSelectedItems;
    private _focusedItem;
    private destroy$;
    constructor(cdr: ChangeDetectorRef, esf: BaseFilteringComponent, platform: PlatformUtil);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * @hidden @internal
     */
    refreshSize: () => void;
    /**
     * @hidden @internal
     */
    clearInput(): void;
    /**
     * @hidden @internal
     */
    onCheckboxChange(eventArgs: IChangeCheckboxEventArgs): void;
    /**
     * @hidden @internal
     */
    onSelectAllCheckboxChange(eventArgs: IChangeCheckboxEventArgs): void;
    /**
     * @hidden @internal
     */
    onNodeSelectionChange(eventArgs: ITreeNodeSelectionEvent): void;
    /**
     * @hidden @internal
     */
    get itemSize(): string;
    /**
     * @hidden @internal
     */
    get containerSize(): any;
    protected get id(): string;
    protected set id(value: string);
    protected getItemId(index: number): string;
    protected setActiveDescendant(): void;
    protected get focusedItem(): ActiveElement;
    protected set focusedItem(val: ActiveElement);
    /**
     * @hidden @internal
     */
    get applyButtonDisabled(): boolean;
    /**
     * @hidden @internal
     */
    onInputKeyDown(event: KeyboardEvent): void;
    /**
     * @hidden @internal
     */
    filterListData(): void;
    /**
     * @hidden @internal
     */
    applyFilter(): void;
    protected handleKeyDown(event: KeyboardEvent): void;
    protected onFocus(): void;
    protected onFocusOut(): void;
    /**
     * @hidden @internal
     */
    isHierarchical(): boolean;
    /**
     * @hidden @internal
     */
    isTreeEmpty(): boolean;
    private hierarchicalSelectMatches;
    private hierarchicalSelectAllChildren;
    private expandAllParentNodes;
    private addFilteredToSelectedItems;
    private createCondition;
    /**
     * @hidden @internal
     */
    private rejectNonNumericalEntries;
    private onArrowUpKeyDown;
    private onArrowDownKeyDown;
    private onHomeKeyDown;
    private onEndKeyDown;
    private onActionKeyDown;
    private navigateItem;
    private isIndexOutOfBounds;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxExcelStyleSearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IgxExcelStyleSearchComponent, "igx-excel-style-search", never, { "id": { "alias": "id"; "required": false; }; }, {}, never, never, true, never>;
}
