import { ConnectedPosition, ScrollStrategy, ScrollStrategyOptions } 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, AppendToBodyScrollStrategyType, 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 type autoCompleteSceneType = '' | 'select' | 'select-extend' | 'suggest';
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;
    private scrollStrategyOption;
    autocomplete: string;
    autocapitalize: string;
    autocorrect: string;
    disabled: boolean;
    /**
     * @deprecated
     */
    cssClass: string;
    delay: number;
    showGlowStyle: boolean;
    get hasGlowStyle(): boolean;
    /**
     * @deprecated
     */
    minLength: number;
    itemTemplate: TemplateRef<any>;
    noResultItemTemplate: TemplateRef<any>;
    searchingTemplate: TemplateRef<any>;
    set isSearching(isSearching: any);
    appendToBody: boolean;
    appendToBodyDirections: Array<AppendToBodyDirection | ConnectedPosition>;
    appendToBodyScrollStrategy: AppendToBodyScrollStrategyType;
    cdkOverlayOffsetY: number;
    dAutoCompleteWidth: number;
    formatter: (item: any) => string;
    sceneType: autoCompleteSceneType;
    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;
    retainInputValue: boolean;
    allowEmptyValueSearch: boolean;
    customViewTemplate: TemplateRef<any>;
    customViewDirection: 'bottom' | 'right' | 'left' | 'top';
    loadMore: EventEmitter<any>;
    selectValue: EventEmitter<any>;
    transInputFocusEmit: EventEmitter<any>;
    /**
     * @deprecated
     */
    changeDropDownStatus: EventEmitter<any>;
    toggleChange: EventEmitter<boolean>;
    hoverItem: EventEmitter<any>;
    KEYBOARD_EVENT_NOT_REFRESH: string[];
    popupRef: ComponentRef<AutoCompletePopupComponent>;
    i18nText: I18nInterface['autoComplete'];
    popTipsText: string;
    position: any;
    focus: boolean;
    scrollStrategy: ScrollStrategy;
    SELECT_TYPES: string[];
    private destroy$;
    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, scrollStrategyOption: ScrollStrategyOptions);
    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;
    searchValue(value: any, isOpen: boolean): 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": { "alias": "disabled"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "delay": { "alias": "delay"; "required": false; }; "showGlowStyle": { "alias": "showGlowStyle"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "noResultItemTemplate": { "alias": "noResultItemTemplate"; "required": false; }; "searchingTemplate": { "alias": "searchingTemplate"; "required": false; }; "isSearching": { "alias": "isSearching"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "appendToBodyDirections": { "alias": "appendToBodyDirections"; "required": false; }; "appendToBodyScrollStrategy": { "alias": "appendToBodyScrollStrategy"; "required": false; }; "cdkOverlayOffsetY": { "alias": "cdkOverlayOffsetY"; "required": false; }; "dAutoCompleteWidth": { "alias": "dAutoCompleteWidth"; "required": false; }; "formatter": { "alias": "formatter"; "required": false; }; "sceneType": { "alias": "sceneType"; "required": false; }; "tipsText": { "alias": "tipsText"; "required": false; }; "overview": { "alias": "overview"; "required": false; }; "latestSource": { "alias": "latestSource"; "required": false; }; "source": { "alias": "source"; "required": false; }; "valueParser": { "alias": "valueParser"; "required": false; }; "searchFn": { "alias": "searchFn"; "required": false; }; "dropdown": { "alias": "dropdown"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "disabledKey": { "alias": "disabledKey"; "required": false; }; "showAnimation": { "alias": "showAnimation"; "required": false; }; "enableLazyLoad": { "alias": "enableLazyLoad"; "required": false; }; "retainInputValue": { "alias": "retainInputValue"; "required": false; }; "allowEmptyValueSearch": { "alias": "allowEmptyValueSearch"; "required": false; }; "customViewTemplate": { "alias": "customViewTemplate"; "required": false; }; "customViewDirection": { "alias": "customViewDirection"; "required": false; }; }, { "loadMore": "loadMore"; "selectValue": "selectValue"; "transInputFocusEmit": "transInputFocusEmit"; "changeDropDownStatus": "changeDropDownStatus"; "toggleChange": "toggleChange"; "hoverItem": "hoverItem"; }, never, never, false, never>;
}
