import { ElementRef, OnDestroy, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { SearchInputType } from '../models/category/search-input-type';
import { Observable } from 'rxjs';
import { SearchAutocompleteOption } from '../models/category/search-autocomplete-option';
import * as i0 from "@angular/core";
export declare abstract class AbstractSearchOperandInputComponent implements OnInit, OnDestroy {
    /**
     * Whether the contents displayed in this component can be edited by the user or not.
     *
     * Defaults to `true`
     */
    editable: boolean;
    inputFormControl: FormControl;
    inputType: SearchInputType;
    first: boolean;
    /**
     * Only if the input is of type [AUTOCOMPLETE{@link SearchInputType#AUTOCOMPLETE}
     */
    filterOptionsFunction: (userInput: Observable<string>) => Observable<Array<SearchAutocompleteOption<unknown>>>;
    protected _inputConfirmed: boolean;
    private _filteredOptions$;
    private _autocompleteChange;
    private _initialExpansion;
    renderSelection: (selection: SearchAutocompleteOption<unknown>) => string;
    ngOnInit(): void;
    ngOnDestroy(): void;
    get filteredOptions$(): Observable<Array<SearchAutocompleteOption<unknown>>>;
    isInputFilled(): boolean;
    set categoryInput(input: ElementRef<HTMLInputElement>);
    confirmInput(): void;
    editInput(): void;
    /**
     * Autocomplete `displayWith` function
     * @param selection the selected option
     */
    protected _renderSelection(selection: SearchAutocompleteOption<unknown>): string;
    protected isInputValueSet(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractSearchOperandInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractSearchOperandInputComponent, "ncc-abstract-search-operand-input", never, { "editable": { "alias": "editable"; "required": false; }; "inputFormControl": { "alias": "inputFormControl"; "required": false; }; "inputType": { "alias": "inputType"; "required": false; }; "first": { "alias": "first"; "required": false; }; "filterOptionsFunction": { "alias": "filterOptionsFunction"; "required": false; }; }, {}, never, never, false, never>;
}
