/**
 * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
 * @link https://truedirective.com/
 * @license MIT
*/
import { EventEmitter, Renderer2, ElementRef, OnDestroy } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { PopupComponent } from './popup.component';
import { DataQuery } from '@true-directive/base';
/**
 * Dropdown base component.
 */
export declare abstract class DropdownBaseComponent implements ControlValueAccessor, OnDestroy {
    protected _elementRef: ElementRef;
    protected _renderer: Renderer2;
    usePopup: boolean;
    popup: PopupComponent;
    input: any;
    disableTextEditor: boolean;
    disabled: boolean;
    maxDropDownHeight: string;
    popupPosition: 'RELATIVE' | 'ABSOLUTE' | 'MODAL';
    blur: EventEmitter<any>;
    keydown: EventEmitter<any>;
    protected onChange: (_: any) => void;
    protected onTouched: () => void;
    registerOnChange(fn: (_: any) => void): void;
    registerOnTouched(fn: () => void): void;
    protected _validBlur: boolean;
    protected _useAltDown: boolean;
    displayValue: string;
    useAltDown: boolean;
    protected shownByKey: boolean;
    fetchData(dataQuery: DataQuery, data: Array<any>): void;
    inputBlur(e: FocusEvent): void;
    inputClick(e: any): void;
    private _touched;
    inputTouchStart(e: any): void;
    inputTouchMove(e: any): void;
    inputTouchEnd(e: any): void;
    protected _value: any;
    value: any;
    writeValue(value: any): void;
    readonly popupVisible: boolean;
    protected focusPopup(): void;
    protected processKey(e: any): boolean;
    showByTarget(): void;
    closePopup(): void;
    /**
     * User's input
     * @param  e Input event
     */
    inputInput(e?: any): void;
    inputKeyDown(e: any): void;
    focus(): void;
    _skipFocusOnPopupClose: boolean;
    popupClose(e: any): void;
    inputFocus(e: any): void;
    togglePopup(): void;
    btnClick(e: any): void;
    setValueFromDisplayed(): void;
    ngOnDestroy(): void;
    constructor(_elementRef: ElementRef, _renderer: Renderer2);
}
