import { ElementRef, OnDestroy } from '@angular/core';
import { displayExtraButtonFieldElement } from '../../tcc-abstract-display-element';
import { TccInputMask } from '../../../../models/inputMask.model';
import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';
import { Observable } from 'rxjs';
import { TccKeyValuePair } from '../../../../../odata/models/shared.model';
/**
   * input element with autocomplete functionality
  */
export declare class TccAutocompleteInputElementComponent extends displayExtraButtonFieldElement implements OnDestroy {
    triggerAutocompleteInput: MatAutocompleteTrigger;
    set element(element: TccInputMask._DisplayAutocompleteElement);
    _element: TccInputMask._DisplayAutocompleteElement;
    filteredAutocompleteOptions: Observable<Array<TccKeyValuePair>>;
    private currentFilteredAutocompleteOptions;
    private lastFilteredAutocompleteOptions;
    _value: string;
    _default: string;
    _autocomplete: TccKeyValuePair[];
    private _forceSelection;
    private optionClicked;
    private currValueIsOption;
    displayAutocompleteValueFn: (value: string) => any;
    constructor(elementRef: ElementRef);
    ngOnDestroy(): void;
    initAutocompleteValue(): void;
    private _setAutocomplete;
    /**
     * get the value of the element
     *
     * @returns element.value
    */
    _getValue(onlyChanged?: boolean): string;
    refresh(): void;
    verify(): boolean;
    focus(): void;
    protected onSetElement(): void;
    protected onSetForm(): void;
    private getOptionValue;
    setValue(value: string, options?: {
        setValueChange?: boolean;
        emitChangeEvent?: boolean;
        index?: number;
    }): void;
    onInputElementEnter(event: KeyboardEvent): void;
    protected changeElement(): void;
    private subscribeValueChangesAutocomplete;
    /**
     * Sets the autocomplete list, from which the suggestions are taken. If forceSelection is !== false, only Values present in this list can be selected.
     *
     * @param {Array<string | TccKeyValuePair>} list  The target to process see {@link Todo}
    */
    setAutocomplete(list: Array<string | TccKeyValuePair>): void;
    onOptionSelected(event: MatAutocompleteSelectedEvent): void;
    autocompleteClosed(): void;
    changeEventExtended(): void;
    clearSelectedOption(event: KeyboardEvent): void;
    changeEvent(): void;
}
