import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ComponentRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { Observable } from 'rxjs';
import { NbAdjustableConnectedPositionStrategy, NbOverlayRef, NbOverlayService, NbPortalDirective, NbPosition, NbPositionBuilderService, NbScrollStrategy } from '../cdk';
import { NbOptionComponent } from './option.component';
export declare class NbSelectLabelComponent {
}
export declare class NbSelectComponent<T> implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, ControlValueAccessor {
    protected document: any;
    protected overlay: NbOverlayService;
    protected hostRef: ElementRef<HTMLElement>;
    protected positionBuilder: NbPositionBuilderService;
    protected cd: ChangeDetectorRef;
    size: string;
    status: string;
    shape: string;
    hero: boolean;
    disabled: boolean;
    fullWidth: boolean;
    outline: boolean;
    placeholder: string;
    selectedChange: EventEmitter<T | T[]>;
    setSelected: T | T[];
    setMultiple: boolean;
    options: QueryList<NbOptionComponent<T>>;
    customLabel: any;
    portal: NbPortalDirective;
    button: ElementRef<HTMLButtonElement>;
    multiple: boolean;
    selectionModel: NbOptionComponent<T>[];
    positionStrategy: NbAdjustableConnectedPositionStrategy;
    overlayPosition: NbPosition;
    selectionChange: Observable<NbOptionComponent<T>>;
    protected ref: NbOverlayRef;
    protected alive: boolean;
    protected queue: T | T[];
    protected onChange: Function;
    protected onTouched: Function;
    constructor(document: any, overlay: NbOverlayService, hostRef: ElementRef<HTMLElement>, positionBuilder: NbPositionBuilderService, cd: ChangeDetectorRef);
    readonly isOpened: boolean;
    readonly isHidden: boolean;
    readonly hostWidth: number;
    readonly selectionView: any;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    show(): void;
    hide(): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    writeValue(value: T | T[]): void;
    protected handleSelect(option: NbOptionComponent<T>): void;
    protected reset(): void;
    protected selectOption(option: NbOptionComponent<T>): void;
    protected handleSingleSelect(option: NbOptionComponent<T>): void;
    protected handleMultipleSelect(option: NbOptionComponent<T>): void;
    protected createOverlay(): void;
    protected createPositionStrategy(): NbAdjustableConnectedPositionStrategy;
    protected createScrollStrategy(): NbScrollStrategy;
    protected subscribeOnTriggers(): void;
    protected subscribeOnPositionChange(): void;
    protected subscribeOnSelectionChange(): void;
    protected getContainer(): ComponentRef<any>;
    protected emitSelected(selected: T | T[]): void;
    protected setSelection(value: T | T[]): void;
    protected cleanSelection(): void;
    protected selectValue(value: T): void;
    trySetTouched(): void;
    protected isClickedWithinComponent($event: Event): boolean;
}
