import { OnChanges, OnInit, EventEmitter, ExistingProvider, ElementRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { SelectDropdownComponent } from './selectDropdownComponent';
import { IOption } from './optionInterface';
import { Option } from './option';
export declare const SELECT_VALUE_ACCESSOR: ExistingProvider;
export declare class SelectComponent implements ControlValueAccessor, OnChanges, OnInit {
    el: ElementRef;
    options: Array<IOption>;
    allowClear: boolean;
    disabled: boolean;
    highlightColor: string;
    highlightTextColor: string;
    multiple: boolean;
    noFilter: number;
    notFoundMsg: string;
    placeholder: string;
    filterPlaceholder: string;
    label: string;
    filterEnabled: boolean;
    opened: EventEmitter<null>;
    closed: EventEmitter<null>;
    selected: EventEmitter<IOption>;
    deselected: EventEmitter<IOption | IOption[]>;
    noOptionsFound: EventEmitter<string>;
    selectionSpan: any;
    dropdown: SelectDropdownComponent;
    filterInput: any;
    private _value;
    private optionList;
    hasSelected: boolean;
    hasFocus: boolean;
    isOpen: boolean;
    isBelow: boolean;
    private filterInputWidth;
    private isDisabled;
    private placeholderView;
    private clearClicked;
    private selectContainerClicked;
    private width;
    private top;
    private left;
    private onChange;
    private onTouched;
    constructor(el: ElementRef);
    ngOnInit(): void;
    ngOnChanges(changes: any): void;
    closeSelect(event: any): void;
    isChild(elemnt: any): boolean;
    onWindowClick(): void;
    onWindowResize(): void;
    onSelectContainerClick(event: any): void;
    onSelectContainerFocus(): void;
    onSelectContainerKeydown(event: any): void;
    onDropdownOptionClicked(option: Option): void;
    onDropdownClose(focus: any): void;
    onSingleFilterClick(): void;
    onSingleFilterInput(term: string): void;
    onSingleFilterKeydown(event: any): void;
    onMultipleFilterInput(event: any): void;
    onMultipleFilterKeydown(event: any): void;
    onClearSelectionClick(event: any): void;
    onDeselectOptionClick(option: Option): void;
    open(): void;
    close(): void;
    clear(): void;
    select(value: string): void;
    writeValue(value: any): void;
    registerOnChange(fn: (_: any) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    value: string | string[];
    private valueChanged();
    private updateOptionsList(firstTime);
    private toggleDropdown();
    private openDropdown();
    private closeDropdown(focus?);
    private selectOption(option);
    private deselectOption(option);
    private clearSelection();
    private toggleSelectOption(option);
    private selectHighlightedOption();
    private deselectLast();
    private clearFilterInput();
    private setMultipleFilterInput(value);
    private KEYS;
    private handleSelectContainerKeydown(event);
    private handleMultipleFilterKeydown(event);
    private handleSingleFilterKeydown(event);
    focus(): void;
    blur(): void;
    private updateWidth();
    private updatePosition();
    private updateFilterWidth();
}
