import { EventEmitter, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';
import { SearchItem } from '../../../interfaces/form';
import * as i0 from "@angular/core";
import * as i1 from "../../../utils/coercion";
export declare class ItSearchComponent extends ItAbstractFormComponent<string | null | undefined> implements OnInit {
    /**
     * Indicates the list of searchable elements on which to base the input search system
     * If you need to retrieve items via API, can pass a function of Observable
     * @default undefined
     */
    searchData: Array<SearchItem> | ((search?: string | null) => Observable<Array<SearchItem>>);
    /**
     * To get a large version of Search
     */
    big?: boolean;
    /**
     * Time span [ms] has passed without another source emission, to delay data filtering.
     * Useful when the user is typing multiple letters
     * @default 300 [ms]
     */
    debounceTime: number;
    /**
     * The input placeholder
     */
    placeholder: string;
    /**
     * The input label even get labelWaria icon
     */
    labelWaria: string | undefined;
    /**
     * Show the label
     */
    forceShowLabel: boolean;
    /**
     * Fired when the Search Item has been selected
     */
    searchSelectedEvent: EventEmitter<SearchItem>;
    protected showAutocompletion: boolean;
    /** Observable da cui vengono emessi i risultati dell'auto completamento */
    protected searchResults$: Observable<{
        searchedValue: string | undefined | null;
        relatedEntries: Array<SearchItem>;
    }>;
    ngOnInit(): void;
    /**
     * Create the search list
     */
    private getSearchResults$;
    protected onEntryClick(entry: SearchItem, event: Event): void;
    protected searchItemTrackByValueFn(index: number, item: SearchItem): string;
    protected onKeyDown(): void;
    protected get isActiveLabel(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ItSearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ItSearchComponent, "it-search", never, { "searchData": { "alias": "searchData"; "required": true; }; "big": { "alias": "big"; "required": false; }; "debounceTime": { "alias": "debounceTime"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "labelWaria": { "alias": "labelWaria"; "required": false; }; "forceShowLabel": { "alias": "forceShowLabel"; "required": false; }; }, { "searchSelectedEvent": "searchSelectedEvent"; }, never, ["[error]"], true, never>;
    static ngAcceptInputType_big: i1.BooleanInput;
    static ngAcceptInputType_forceShowLabel: i1.BooleanInput;
}
