import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { Observable, Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class ToggleMenuSearchComponent implements OnInit, AfterViewInit, OnDestroy {
    el: ElementRef;
    searchPlaceholder: string;
    isShowSearchIcon: boolean;
    inputValue: string;
    inputWidth: string;
    filterKey: string;
    maxLength: number;
    disabled: boolean;
    spellcheck: boolean;
    options: any[];
    delay: number;
    /**
     * 【可选】决定下拉框没项文字如何显示，默认显示filterKey字段或者本身的值
     */
    formatter: (item: any) => string;
    /**
     * 【可选】搜索函数，当需要自定义下拉选择过滤规则时可以使用
     *  请保证返回值有id和option字段，id是确保尤其多选的时候能正确索引对应选项
     *  简单实现参考：
     *  search = (term) => {
     *    return of(
     *     [Lily, May, Jorsh, Shiwa, Nanth]
     *     .map((option, index) => ({id: index, option: option}))
     *     .filter(item => item.option.name.toLowerCase().indexOf(term.toLowerCase()) !== -1)
     *   );
     *  }
     */
    searchFn: (term: string) => Observable<Array<{
        id: string | number;
        option: any;
    }>>;
    searchInputValueChange: EventEmitter<any>;
    get width(): string;
    filterSubscription: Subscription;
    constructor(el: ElementRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToggleMenuSearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToggleMenuSearchComponent, "d-toggle-menu-search", never, { "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "isShowSearchIcon": { "alias": "isShowSearchIcon"; "required": false; }; "inputValue": { "alias": "inputValue"; "required": false; }; "inputWidth": { "alias": "inputWidth"; "required": false; }; "filterKey": { "alias": "filterKey"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "spellcheck": { "alias": "spellcheck"; "required": false; }; "options": { "alias": "options"; "required": false; }; "delay": { "alias": "delay"; "required": false; }; "formatter": { "alias": "formatter"; "required": false; }; "searchFn": { "alias": "searchFn"; "required": false; }; }, { "searchInputValueChange": "searchInputValueChange"; }, never, ["*"], false, never>;
}
