import { AfterContentInit, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, QueryList } from '@angular/core';
import { OptionComponent } from './option/option.component';
import { Observable } from 'rxjs';
import { ControlValueAccessor, NgControl, NgForm } from '@angular/forms';
import { FormDisabledDirective } from '../form-disabled.directive';
export declare class SelectComponent implements ControlValueAccessor, OnInit, OnDestroy, AfterContentInit {
    private element;
    private injector;
    private form;
    private formDisabled;
    name: string;
    state: 'invalid' | 'approved';
    label: string;
    value: any;
    get tabindex(): number;
    role: string;
    required: boolean;
    set setRequired(value: boolean);
    disabled: boolean;
    set setDisabled(value: boolean);
    options: QueryList<OptionComponent>;
    onFocusChanged: EventEmitter<boolean>;
    focus$: Observable<boolean>;
    control: NgControl;
    private onChange;
    private onTouched;
    private _focused;
    private _opened;
    private subscriptions;
    constructor(element: ElementRef, injector: Injector, form: NgForm, formDisabled: FormDisabledDirective);
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngAfterContentInit(): void;
    get invalid(): boolean;
    get viewDisabled(): boolean;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: () => {}): void;
    writeValue(outsideValue: any): void;
    setDisabledState(isDisabled: boolean): void;
    updateValue(insideValue: any): void;
    get selectedOption(): OptionComponent;
    get optionsAvailable(): OptionComponent[];
    select(value: any): void;
    focus(): void;
    get opened(): boolean;
    open(): void;
    close(): void;
    toggle(): void;
    get focused(): boolean;
    updateOptionsSelection(): void;
    updateOptionsFocus(): void;
    onFocus(): void;
    onBlur(): void;
    onEnter(): void;
    onEscape(): void;
    onArrowUp(): void;
    onArrowDown(): void;
    onArrowLeft(): void;
    onArrowRight(): void;
    private focusPrevOption;
    private focusNextOption;
    private selectPrevOption;
    private selectNextOption;
    private get navFocused();
    private get navSelected();
}
