import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { MultiSearchActionInputComponent } from '../action-input/component';
import { MultiSearchTagsComponent } from '../multi-search-tags/component';
import { SearchConditionConfig, SearchCondition, SearchConditionModel } from '../types';
import * as i0 from "@angular/core";
export declare const DEFAULT_OPERATOR: string;
export declare class MultiSearchComponent implements OnDestroy {
    protected readonly cdr: ChangeDetectorRef;
    placeholder: string;
    conditionCreatable: boolean;
    conditions: SearchCondition[];
    conditions$: Observable<SearchCondition[]>;
    conditionConfig: SearchConditionConfig[];
    conditionConfig$: Observable<SearchConditionConfig[]>;
    autoScroll: boolean;
    searchSuffix: boolean;
    search: EventEmitter<SearchCondition[]>;
    showFootAction: boolean;
    conditionsChange: EventEmitter<SearchCondition[]>;
    normalInputComponent: MultiSearchActionInputComponent;
    tagsComponent: MultiSearchTagsComponent;
    multiSearchRef: ElementRef;
    addedCondition: SearchConditionModel;
    focus$$: BehaviorSubject<boolean>;
    destroy$$: Subject<void>;
    actionScanner$$: Subject<(items: SearchConditionModel[]) => SearchConditionModel[]>;
    existingConditions: SearchConditionModel[];
    existingConditions$: Observable<SearchConditionModel[]>;
    noEditingCondition: boolean;
    noEditingCondition$: Observable<boolean>;
    noDeletingCondition: boolean;
    noDeletingCondition$: Observable<boolean>;
    addedInputShouldHidden$: Observable<boolean>;
    get inputComponent(): MultiSearchActionInputComponent;
    CLEAR_ICON_CLASS: string;
    SEARCH_ICON_CLASS: string;
    constructor(cdr: ChangeDetectorRef);
    private isSearchBtn;
    private notActionElement;
    private notTooltipContent;
    private checkElement;
    private manualComplete;
    manualFocus(silence?: boolean): void;
    setFocus(focus: boolean): void;
    manualBlur(): void;
    doSearch(): void;
    clearConditions(): void;
    removeCondition(condition: SearchConditionModel): void;
    updateCondition(condition: SearchConditionModel, index: number): void;
    addCondition(activeCondition: SearchConditionModel): void;
    setConditionEditing(condition: SearchConditionModel): void;
    setConditionDeleting(index?: number): void;
    complete({ activeCondition, toContinue, manualFocus, index, }: {
        activeCondition: SearchConditionModel;
        toContinue?: boolean;
        manualFocus?: boolean;
        index?: number;
    }): void;
    private isGrammarCustomCondition;
    private getConditionModel;
    conditionInAction(condition: SearchConditionModel): boolean;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiSearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiSearchComponent, "acl-multi-search", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "conditionCreatable": { "alias": "conditionCreatable"; "required": false; }; "conditions": { "alias": "conditions"; "required": false; }; "conditionConfig": { "alias": "conditionConfig"; "required": false; }; "autoScroll": { "alias": "autoScroll"; "required": false; }; "searchSuffix": { "alias": "searchSuffix"; "required": false; }; "showFootAction": { "alias": "showFootAction"; "required": false; }; }, { "search": "search"; "conditionsChange": "conditionsChange"; }, never, never, true, never>;
}
