import { TooltipDirective, InputComponent } from '@alauda/ui';
import { EventEmitter, Injector, OnDestroy } from '@angular/core';
import { FormControl } from '@angular/forms';
import { BaseResourceFormComponent } from 'ng-resource-form-util';
import { BehaviorSubject, Observable } from 'rxjs';
import { SearchConditionConfig, SearchConditionModel, MultiSearchOption } from '../types';
import * as i0 from "@angular/core";
export declare class MultiSearchActionInputComponent extends BaseResourceFormComponent<SearchConditionModel> implements OnDestroy {
    injector: Injector;
    placeholder: string;
    conditionCreatable: boolean;
    isEditing: boolean;
    hidden: boolean;
    hidden$: Observable<boolean>;
    autoScroll: boolean;
    conditionConfig: SearchConditionConfig[];
    showFootAction: boolean;
    conditionConfig$: Observable<SearchConditionConfig[]>;
    existingConditions: SearchConditionModel[];
    existingConditions$: Observable<SearchConditionModel[]>;
    completed: EventEmitter<{
        activeCondition: SearchConditionModel;
        toContinue?: boolean;
        manualFocus?: boolean;
    }>;
    editing: EventEmitter<void>;
    delete: EventEmitter<void>;
    search: EventEmitter<void>;
    focusIn: EventEmitter<void>;
    focusOut: EventEmitter<void>;
    inputRef: InputComponent;
    toolTipRef: TooltipDirective;
    get hiddenState(): boolean;
    _conditionsModel: string;
    get conditionsModel(): string;
    set conditionsModel(v: string);
    conditionsModel$$: BehaviorSubject<string>;
    hasFilteredConditions$: Observable<boolean>;
    conditionsShouldShow$: Observable<string | boolean>;
    normalConditionsResource$: Observable<SearchConditionConfig[]>;
    normalConditions$: Observable<SearchConditionConfig[]>;
    groupConditionsResource$: Observable<{
        group: string;
        member: SearchConditionConfig[];
    }[]>;
    groupConditions$: Observable<{
        group: string;
        member: SearchConditionConfig[];
    }[]>;
    hasFilteredValues: (activeCondition: SearchConditionModel, model: string, isMulti?: boolean) => boolean;
    getNormalValues: (activeCondition: SearchConditionModel, model: string, isMulti?: boolean) => MultiSearchOption[];
    getValuesGroup: (activeCondition: SearchConditionModel, model: string, isMulti: boolean) => {
        group: string;
        member: MultiSearchOption[];
    }[];
    valuesFilter(conditions: MultiSearchOption[], condition: MultiSearchOption, separator: string, isMulti?: boolean): boolean;
    get isConditionSelecting(): boolean;
    get isOperatorSelecting(): boolean;
    get isValueSelecting(): string;
    get isInitialized(): boolean;
    get isOperationComplete(): MultiSearchOption;
    get isSelectAll(): boolean;
    get isIndeterminate(): boolean;
    get inputElement(): HTMLInputElement;
    get optionElements(): NodeListOf<HTMLDivElement>;
    arrowCursor: number;
    MAX_SAFE_INTEGER: number;
    DEFAULT_OPERATOR: string;
    DROPDOWN_ITEM_CLASS: string;
    constructor(injector: Injector);
    private resolveHideSync;
    private resolveFormModelChangeSync;
    private conditionSync;
    private valuesSync;
    createForm(): FormControl<SearchConditionModel>;
    adaptResourceModel(resource: SearchConditionModel): SearchConditionModel;
    private initModel;
    selectActiveCondition(conditionConfig: SearchConditionConfig): void;
    setConditionByModel(): void;
    selectActiveOperator(operator: string): void;
    selectValue(condition: MultiSearchOption, isMulti?: boolean): void;
    private selectMultiValue;
    selectAllClick: import("lodash").DebouncedFunc<() => void>;
    private selectAllValues;
    private deselectAllValues;
    activeConditionClick(): void;
    activeOperatorClick(): void;
    activeValueClick(): void;
    private setActiveOperator;
    private setValues;
    private clearActiveCondition;
    private changeToEditing;
    inputFocus(): void;
    inputKeydown(e: KeyboardEvent): void;
    confirmSelection(): void;
    private changeToEditingIfNeed;
    private resolveTabEvent;
    private resolveArrowEvent;
    private resolveDeleteEvent;
    private resolveEnterEvent;
    private deleteSelf;
    private resetArrowCursor;
    manualFocus(silence?: boolean): void;
    manualBlur(): void;
    private refreshDropdown;
    private refreshCursor;
    toolTipHide(): void;
    toolTipShow(): void;
    ifComplete(toContinue?: boolean, manualFocus?: boolean): boolean;
    _complete(activeCondition: SearchConditionModel, toContinue?: boolean, manualFocus?: boolean): void;
    private conditionFilterByExists;
    private resolveGroup;
    getConditionLabel(condition: SearchConditionModel): string;
    private getSeparator;
    getValueContent: (condition: SearchConditionModel) => string;
    getValueLabel(value: MultiSearchOption): string;
    private getMultiSearchVal;
    isConditionSelected(current: string, conditionsModel: string): boolean;
    isValueSelected: (current: string, conditionsModel: string, condition: SearchConditionModel) => boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiSearchActionInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiSearchActionInputComponent, "acl-multi-search-action-input", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "conditionCreatable": { "alias": "conditionCreatable"; "required": false; }; "isEditing": { "alias": "isEditing"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "autoScroll": { "alias": "autoScroll"; "required": false; }; "conditionConfig": { "alias": "conditionConfig"; "required": false; }; "showFootAction": { "alias": "showFootAction"; "required": false; }; "existingConditions": { "alias": "existingConditions"; "required": false; }; }, { "completed": "completed"; "editing": "editing"; "delete": "delete"; "search": "search"; "focusIn": "focusIn"; "focusOut": "focusOut"; }, never, never, true, never>;
}
