import { AfterViewInit, ElementRef, Injector, OnInit, QueryList } from '@angular/core';
import { TypeaheadContainerComponent, TypeaheadDirective, TypeaheadMatch } from 'ngx-bootstrap/typeahead';
import { App } from '@wm/core';
import { DataSetItem } from '@wm/components/base';
import { DatasetAwareFormComponent } from '@wm/components/input';
import * as i0 from "@angular/core";
export declare class SearchComponent extends DatasetAwareFormComponent implements OnInit, AfterViewInit {
    binddatavalue: any;
    binddataset: any;
    static initializeProps: void;
    casesensitive: boolean;
    searchkey: string;
    queryModel: Array<DataSetItem> | string;
    query: string;
    limit: any;
    showsearchicon: boolean;
    minchars: number;
    type: string;
    navsearchbar: any;
    debouncetime: number;
    hint: string;
    arialabel: string;
    private app;
    private typeaheadDataSource;
    private pagesize;
    private page;
    _loadingItems: boolean;
    private dataProvider;
    private result;
    private formattedDataset;
    private isformfield;
    private $typeaheadEvent;
    tabindex: number;
    startIndex: number;
    binddisplaylabel: string;
    typeaheadContainer: TypeaheadContainerComponent;
    containerTarget: string;
    typeahead: TypeaheadDirective;
    ulElement: ElementRef;
    liElements: QueryList<ElementRef>;
    private allowonlyselect;
    private class;
    private lastSelectedIndex;
    private dataoptions;
    dropdownEl: any;
    private _lastQuery;
    private _lastResult;
    private _isOpen;
    private showClosebtn;
    private _unsubscribeDv;
    private _datasource;
    private isScrolled;
    private parentEl;
    private position;
    private elIndex;
    private listenQuery;
    private _domUpdated;
    private searchon;
    private showclear;
    matchmode: string;
    private clearData;
    get datasource(): any;
    set datasource(nv: any);
    constructor(inj: Injector, app: App, binddatavalue: any, binddataset: any, explicitContext: any);
    private clearSearch;
    clearText(): void;
    private closeSearch;
    private renderMobileAutoComplete;
    private getDataSourceAsObservable;
    protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any): void;
    private highlight;
    private insertAtIndex;
    isMobileAutoComplete(): boolean;
    isQueryEntered(): boolean;
    private loadMoreData;
    private onFocusOut;
    private onInputChange;
    private handleEnterEvent;
    private onSearchSelect;
    private invokeOnBeforeServiceCall;
    private onDropdownOpen;
    private selectNext;
    private setLastActiveMatchAsSelected;
    private triggerSearch;
    private isUpdateOnKeyPress;
    private debounceDefaultQuery;
    private updateByDatavalue;
    private updateByDataSource;
    private updateDatavalueFromQueryModel;
    private updateByDataset;
    private handleFocus;
    notifySubscriber(): void;
    getDataSource(query: Array<string> | string, searchOnDataField?: boolean, nextItemIndex?: number): Promise<DataSetItem[]>;
    private getContext;
    getTransformedData(data: any, itemIndex?: number, iscustom?: boolean): DataSetItem[];
    onScroll($scrollEl: Element, evt: Event): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private eventData;
    typeaheadOnSelect(match: TypeaheadMatch, $event: Event): void;
    onPropertyChange(key: string, nv: any, ov: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchComponent, [null, null, { attribute: "datavalue.bind"; }, { attribute: "dataset.bind"; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchComponent, "[wmSearch]", never, {}, {}, never, never, false, never>;
}
