import { EventEmitter, ElementRef, Renderer2, ChangeDetectorRef, TemplateRef, OnInit, OnChanges, AfterViewChecked, OnDestroy } from '@angular/core';
import { Observable, BehaviorSubject, Subscription } from 'rxjs';
export declare class LookupItemDirective {
    templateRef: TemplateRef<any>;
    constructor(templateRef: TemplateRef<any>);
}
export declare class LookupLabelDirective {
    templateRef: TemplateRef<any>;
    constructor(templateRef: TemplateRef<any>);
}
export declare class LookupHeaderDirective {
    hasLabel: boolean;
}
export declare class LookupComponent implements OnInit, OnChanges, AfterViewChecked, OnDestroy {
    private element;
    private renderer;
    private detector;
    itemTemplate: LookupItemDirective;
    lookup: Function;
    field: string;
    placeholder: string;
    noResultsText: string;
    searchIcon: boolean;
    debounce: number;
    set isDisabled(disabled: boolean | string);
    get isDisabled(): boolean | string;
    inputWasTouched: EventEmitter<any>;
    scrollEndReached: EventEmitter<any>;
    set value(value: string);
    valueChange: EventEmitter<string>;
    pick: any;
    set setPick(pick: any);
    pickChange: EventEmitter<any>;
    label: string;
    labelTemplate: LookupLabelDirective;
    inputEl: ElementRef;
    inputId: string;
    _label: string | TemplateRef<any>;
    private _disabled;
    private globalClickUnsubscriber;
    private _open;
    set open(_open: boolean);
    get open(): boolean;
    inputValue: string;
    private inputSubject;
    suggestions: any[];
    suggestionsSubscription: Subscription;
    noResults: boolean;
    activeIndex: number;
    private lastUserInput;
    private pendingFocus;
    constructor(element: ElementRef, renderer: Renderer2, detector: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes?: any): void;
    ngAfterViewChecked(): void;
    ngOnDestroy(): void;
    get expanded(): boolean;
    handleScroll(scrollObj: any): void;
    pickActive(evt: KeyboardEvent): void;
    handlePick(item: any): void;
    moveActive(evt: KeyboardEvent, moves: number): void;
    optionId(index: number): string;
    onInputChange(value: string): void;
    removeUserSelection(): void;
    close(evt?: KeyboardEvent): void;
    getInputBehaviorSubjectByChanges(isByChanges: boolean, isDelayed: boolean): Observable<string> | BehaviorSubject<any>;
    triggerLookupByChangesOn(behaviorSubject: BehaviorSubject<any> | Observable<string>, isDistinct: boolean): Observable<any>;
    resolveLabel(item: any): any;
    globalClickHandler($event: MouseEvent): void;
    focus(): void;
    private unsubscribeGlobalClick;
}
