import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, OnDestroy, QueryList } from '@angular/core'; import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { CommonFormControl } from '../form'; import { ComponentSize } from '../internal/types'; import { TooltipDirective } from '../tooltip'; import { OptionContentDirective } from './helper-directives'; import { OptionComponent } from './option/option.component'; import { OptionFilterFn, SelectFilterOption, TrackFn } from './select.types'; import * as i0 from "@angular/core"; export declare abstract class BaseSelect extends CommonFormControl implements AfterContentInit, AfterViewInit, OnDestroy { get size(): ComponentSize; set size(val: ComponentSize); filterable: boolean; clearable: boolean; filterFn: OptionFilterFn; trackFn: TrackFn; labelFn?: (value: T) => string; allowCreate: boolean; get allOptions(): OptionComponent[]; get opened(): boolean; get inaction(): boolean; get filterString(): string; set filterString(val: string); loading: boolean; placeholder: string; defaultFirstOption: boolean; lazy: boolean; filterChange: EventEmitter; show: EventEmitter; hide: EventEmitter; protected selectRef: ElementRef; protected tooltipRef: TooltipDirective; protected optionListRef: ElementRef; protected inputtingOption: OptionComponent; protected optionContent?: OptionContentDirective; customOptions: QueryList>; contentOptions: QueryList>; isTemplateRef: (label: any) => label is import("@angular/core").TemplateRef; isMulti: boolean; /** * Utility field to make sure the users always see the value as type array */ abstract readonly values$: Observable; allOptions$: Observable>>; protected focusedOption: OptionComponent; private _size; private _filterString; protected destroy$$: Subject; protected size$$: BehaviorSubject; private readonly filterString$$; size$: Observable; filterString$: Observable; optionVisibles$: Observable; hasVisibleOption$: Observable; hasMatchedOption$: Observable; customCreatedOptions$: Observable>>; containerWidth: string; ngAfterContentInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; openOption(): void; closeOption(): void; onShowOptions(): void; onHideOptions(): void; onInput(event: Event): void; onKeyDown(event: KeyboardEvent): void; onOptionClick(option: OptionComponent): void; protected autoFocusFirstOption(): void; protected focusOptionDir(dir: 'down' | 'up'): void; protected resetFocusedOption(focusedOption?: OptionComponent): void; protected scrollToOption(option: OptionComponent): void; protected selectFocusedOption(): void; protected escSelect(): void; private _trackFn; private _filterFn; abstract selectOption(option: OptionComponent): void; abstract clearValue(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, { "size": { "alias": "size"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; "trackFn": { "alias": "trackFn"; "required": false; }; "labelFn": { "alias": "labelFn"; "required": false; }; "allowCreate": { "alias": "allowCreate"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "defaultFirstOption": { "alias": "defaultFirstOption"; "required": false; }; "lazy": { "alias": "lazy"; "required": false; }; }, { "filterChange": "filterChange"; "show": "show"; "hide": "hide"; }, ["optionContent", "contentOptions"], never, true, never>; static ngAcceptInputType_filterable: unknown; static ngAcceptInputType_clearable: unknown; static ngAcceptInputType_allowCreate: unknown; }