import { ConnectedPosition } from '@angular/cdk/overlay';
import { ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, ElementRef, EventEmitter, Injector, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { PositionService } from 'ng-devui/position';
import { AppendToBodyDirection, DevConfigService } from 'ng-devui/utils';
import { Observable } from 'rxjs';
import { AutoCompleteConfig } from './auto-complete-config';
import { AutoCompletePopupComponent } from './auto-complete-popup.component';
import * as i0 from "@angular/core";
export declare class AutoCompleteDirective implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {
    private autoCompleteConfig;
    private elementRef;
    private viewContainerRef;
    private componentFactoryResolver;
    private renderer;
    private injector;
    private positionService;
    private changeDetectorRef;
    private i18n;
    private devConfigService;
    autocomplete: string;
    autocapitalize: string;
    autocorrect: string;
    disabled: boolean;
    /**
     * @deprecated
     */
    cssClass: string;
    delay: number;
    /**
     * @deprecated
     */
    minLength: number;
    itemTemplate: TemplateRef<any>;
    noResultItemTemplate: TemplateRef<any>;
    searchingTemplate: TemplateRef<any>;
    set isSearching(isSearching: any);
    appendToBody: boolean;
    appendToBodyDirections: Array<AppendToBodyDirection | ConnectedPosition>;
    cdkOverlayOffsetY: number;
    dAutoCompleteWidth: number;
    formatter: (item: any) => string;
    sceneType: string;
    tipsText: string;
    overview: string;
    latestSource: any[];
    source: any[];
    valueParser: (item: any) => any;
    searchFn: (term: string, target?: AutoCompleteDirective) => Observable<any[]>;
    /**
     * @deprecated
     */
    dropdown: boolean;
    maxHeight: number;
    disabledKey: string;
    showAnimation: boolean;
    /**
     *  【可选】启用数据懒加载，默认不启用
     */
    enableLazyLoad: boolean;
    allowEmptyValueSearch: boolean;
    loadMore: EventEmitter<any>;
    selectValue: EventEmitter<any>;
    transInputFocusEmit: EventEmitter<any>;
    /**
     * @deprecated
     */
    changeDropDownStatus: EventEmitter<any>;
    toggleChange: EventEmitter<boolean>;
    KEYBOARD_EVENT_NOT_REFRESH: string[];
    popupRef: ComponentRef<AutoCompletePopupComponent>;
    private destroy$;
    i18nText: I18nInterface['autoComplete'];
    popTipsText: string;
    position: any;
    focus: boolean;
    private valueChanges;
    private value;
    private subscription;
    private onChange;
    private onTouched;
    constructor(autoCompleteConfig: AutoCompleteConfig, elementRef: ElementRef, viewContainerRef: ViewContainerRef, componentFactoryResolver: ComponentFactoryResolver, renderer: Renderer2, injector: Injector, positionService: PositionService, changeDetectorRef: ChangeDetectorRef, i18n: I18nService, devConfigService: DevConfigService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    init(): void;
    setPositions(): void;
    setI18nText(): void;
    restLatestSource(): void;
    onSourceChange(source: any): void;
    private showLatestSource;
    private showSource;
    private updatePosition;
    openPopup(activeIndex?: number): void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    ngOnDestroy(): void;
    onFocus($event: any): void;
    onBlur($event: any): void;
    onEscKeyup($event: any): void;
    onEnterKeyDown($event: any): void;
    onArrowUpKeyDown($event: any): void;
    onArrowDownKeyDown($event: any): void;
    onDocumentClick($event: Event): void;
    hidePopup(): void;
    private fillPopup;
    private writeInputValue;
    private clearInputValue;
    private unSubscription;
    onTermChange(term: any): void;
    private registerInputEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<AutoCompleteDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AutoCompleteDirective, "[dAutoComplete]", ["autoComplete"], { "disabled": "disabled"; "cssClass": "cssClass"; "delay": "delay"; "minLength": "minLength"; "itemTemplate": "itemTemplate"; "noResultItemTemplate": "noResultItemTemplate"; "searchingTemplate": "searchingTemplate"; "isSearching": "isSearching"; "appendToBody": "appendToBody"; "appendToBodyDirections": "appendToBodyDirections"; "cdkOverlayOffsetY": "cdkOverlayOffsetY"; "dAutoCompleteWidth": "dAutoCompleteWidth"; "formatter": "formatter"; "sceneType": "sceneType"; "tipsText": "tipsText"; "overview": "overview"; "latestSource": "latestSource"; "source": "source"; "valueParser": "valueParser"; "searchFn": "searchFn"; "dropdown": "dropdown"; "maxHeight": "maxHeight"; "disabledKey": "disabledKey"; "showAnimation": "showAnimation"; "enableLazyLoad": "enableLazyLoad"; "allowEmptyValueSearch": "allowEmptyValueSearch"; }, { "loadMore": "loadMore"; "selectValue": "selectValue"; "transInputFocusEmit": "transInputFocusEmit"; "changeDropDownStatus": "changeDropDownStatus"; "toggleChange": "toggleChange"; }, never, never, false>;
}
