import { Observable } from 'rxjs';
import { Directionality } from '@angular/cdk/bidi';
import { BooleanInput } from '@angular/cdk/coercion';
import { Overlay, ScrollStrategy } from '@angular/cdk/overlay';
import { ViewportRuler } from '@angular/cdk/scrolling';
import { AfterViewInit, ChangeDetectorRef, ElementRef, InjectionToken, NgZone, OnChanges, OnDestroy, SimpleChanges, ViewContainerRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { NtOptionComponent, NtOptionSelectionChange } from '@ng-tangram/components/core';
import { NtAutocompleteOriginDirective } from './autocomplete-origin.directive';
import { NtAutocompleteComponent } from './autocomplete.component';
export declare const NT_AUTOCOMPLETE_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
export declare function NT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy;
export declare const NT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER: {
    provide: InjectionToken<() => ScrollStrategy>;
    deps: (typeof Overlay)[];
    useFactory: typeof NT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY;
};
export declare const MAT_AUTOCOMPLETE_VALUE_ACCESSOR: any;
export declare function getMatAutocompleteMissingPanelError(): Error;
export declare class NtAutocompleteTriggerDirective implements ControlValueAccessor, AfterViewInit, OnChanges, OnDestroy {
    private _element;
    private _overlay;
    private _viewContainerRef;
    private _zone;
    private _changeDetectorRef;
    private _dir;
    private _document;
    private _viewportRuler?;
    private _overlayRef;
    private _portal;
    private _componentDestroyed;
    private _autocompleteDisabled;
    private _scrollStrategy;
    private _previousValue;
    private _positionStrategy;
    private _manuallyFloatingLabel;
    private _closingActionsSubscription;
    private _viewportSubscription;
    private _canOpenOnNextFocus;
    private readonly _closeKeyEventStream;
    private _windowBlurHandler;
    _onChange: (value: any) => void;
    _onTouched: () => void;
    autocomplete: NtAutocompleteComponent;
    connectedTo: NtAutocompleteOriginDirective;
    position: 'auto' | 'above' | 'below';
    autocompleteAttribute: string;
    get autocompleteDisabled(): boolean;
    set autocompleteDisabled(value: boolean);
    constructor(_element: ElementRef<HTMLInputElement>, _overlay: Overlay, _viewContainerRef: ViewContainerRef, _zone: NgZone, _changeDetectorRef: ChangeDetectorRef, scrollStrategy: any, _dir: Directionality, _document: any, _viewportRuler?: ViewportRuler | undefined);
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    get panelOpen(): boolean;
    private _overlayAttached;
    openPanel(): void;
    closePanel(): void;
    updatePosition(): void;
    get panelClosingActions(): Observable<NtOptionSelectionChange | null>;
    readonly optionSelections: Observable<NtOptionSelectionChange>;
    get activeOption(): NtOptionComponent | null;
    writeValue(value: any): void;
    registerOnChange(fn: (value: any) => {}): void;
    registerOnTouched(fn: () => {}): void;
    setDisabledState(isDisabled: boolean): void;
    _handleKeydown(event: KeyboardEvent): void;
    _handleInput(event: KeyboardEvent): void;
    _handleFocus(): void;
    private _getOutsideClickStream;
    private _resetLabel;
    private _scrollToOption;
    private _subscribeToClosingActions;
    private _destroyPanel;
    private _setTriggerValue;
    private _setValueAndClose;
    private _clearPreviousSelectedOption;
    private _attachOverlay;
    private _getOverlayConfig;
    private _getOverlayPosition;
    private _setStrategyPositions;
    private _getConnectedElement;
    private _getPanelWidth;
    private _getHostWidth;
    private _resetActiveItem;
    private _canOpen;
    private _getWindow;
    static ngAcceptInputType_autocompleteDisabled: BooleanInput;
}
