import { AfterViewInit, ElementRef, EventEmitter, QueryList } from '@angular/core';
import { AbstractControl, ControlValueAccessor, Validator } from '@angular/forms';
import { IIdentified } from '@c8y/client';
import { BsDropdownDirective } from 'ngx-bootstrap/dropdown';
import { ListItemComponent } from '../list-group/list-item.component';
import { SelectKeyboardService } from './select-keyboard.service';
import * as i0 from "@angular/core";
export declare class TypeaheadComponent implements ControlValueAccessor, Validator, AfterViewInit {
    private selectKeyboardService;
    searchControl: ElementRef;
    searchControlModel: any;
    dropdown: BsDropdownDirective;
    list: QueryList<ListItemComponent>;
    required: boolean;
    maxlength: string | number;
    disabled: boolean;
    allowFreeEntries: boolean;
    placeholder: string;
    displayProperty: string;
    icon: string;
    name: string;
    autoClose: boolean;
    hideNew: boolean;
    container: '' | 'body';
    selected: IIdentified;
    highlightFirstItem: boolean;
    onSearch: EventEmitter<string>;
    onIconClick: EventEmitter<{
        icon: string;
        $event: MouseEvent;
    }>;
    private onChange;
    private onTouched;
    private readonly destroyed$;
    constructor(selectKeyboardService: SelectKeyboardService);
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    doBlur(): void;
    getDisplayProperty(): any;
    onShown(): void;
    /**
     * Resets the input field - clear value and clean field to be pristine and untouched.
     */
    reset(): void;
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    validate(_ctrl: AbstractControl): {
        [key: string]: any;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<TypeaheadComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TypeaheadComponent, "c8y-typeahead", never, { "required": { "alias": "required"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "allowFreeEntries": { "alias": "allowFreeEntries"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "displayProperty": { "alias": "displayProperty"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "name": { "alias": "name"; "required": false; }; "autoClose": { "alias": "autoClose"; "required": false; }; "hideNew": { "alias": "hideNew"; "required": false; }; "container": { "alias": "container"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "highlightFirstItem": { "alias": "highlightFirstItem"; "required": false; }; }, { "onSearch": "onSearch"; "onIconClick": "onIconClick"; }, ["list"], ["div, c8y-li, c8y-list-item, button, a"], false, never>;
}
//# sourceMappingURL=typeahead.component.d.ts.map