import type { OnDestroy, OnInit, TemplateRef } from '@angular/core'; import { ElementRef } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import type { CuiOnChange, CuiOnTouched, CuiNullable } from '@cuby-ui/cdk'; import type { CuiOption } from '../../interfaces'; import type { CuiSizeMd, CuiSizeSm } from '../../types'; import * as i0 from "@angular/core"; import * as i1 from "@cuby-ui/cdk"; export declare class CuiSelectComponent implements ControlValueAccessor, OnInit, OnDestroy { private readonly element; private readonly document; private readonly changeDetectorRef; private readonly viewContainerRef; private readonly destroy$; private readonly cuiTextFieldController; private readonly cuiClickOutsideDirective; protected readonly SPACE_BETWEEN_BUTTON_AND_OPTIONS = 3; protected isOpened: boolean; protected isOptionsListAbove: boolean; protected value: CuiNullable; protected onChange: CuiOnChange; protected onTouched: CuiOnTouched; protected isDisabled: boolean; protected selectedOption?: CuiOption; options: CuiOption[]; defaultOptionText?: string; protected readonly button: ElementRef; protected readonly getOptionsListHeightContainer: ElementRef; protected readonly backdrop: TemplateRef; protected readonly optionsWrapper: TemplateRef; protected gap: string; protected get id(): string | undefined; protected get size(): CuiSizeSm | CuiSizeMd; protected get placeholder(): string | undefined; protected get isError(): boolean; protected trackByFn(_: number, item: CuiOption): string; writeValue(value: unknown): void; registerOnChange(fn: CuiOnChange): void; registerOnTouched(fn: CuiOnTouched): void; ngOnInit(): void; ngOnDestroy(): void; setDisabledState(isDisabled: boolean): void; protected onSelect(event: Event, option: CuiOption): void; protected onSwitch(): void; protected onClose(): void; protected onWindowResize(): void; private initClickOutsideSubscription; private open; private close; private clearViewContainerRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }