import { AfterContentInit, ElementRef, OnDestroy } from '@angular/core';
import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
import { NxInputLikeComponent } from '../nx-forms/input/input-like';
import { NxOptionComponent } from '../nx-option/nx-option.component';
import { NxSingleSelect } from './nx-select-token';
import * as i0 from "@angular/core";
import * as i1 from "../nx-forms/form-field/form-field-control.directive";
/** Component for selecting a value from a set of options */
export declare class NxSelectComponent<T = unknown> extends NxInputLikeComponent implements AfterContentInit, OnDestroy, ControlValueAccessor, Validator, NxSingleSelect<T> {
    readonly multiple: false;
    private defaultPlaceholderToken;
    protected defaultPlaceholder: import("@angular/core").Signal<string> | import("@angular/core").Signal<null>;
    /** Text diplayed when no option is selected */
    placeholder: import("@angular/core").InputSignal<string | undefined>;
    private injector;
    private destroyRef;
    protected host: ElementRef<HTMLElement>;
    private onChange;
    private onTouched;
    registerOnChange(fn: (_: T | null) => void): void;
    registerOnTouched(fn: () => void): void;
    /** Disabled state */
    disabledInput: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    disabledOutput: import("@angular/core").OutputEmitterRef<boolean>;
    private cvaDisabled;
    setDisabledState(isDisabled: boolean): void;
    private disabled;
    protected _disabledInputEffect: import("@angular/core").EffectRef;
    protected _closeOnDisableEffect: import("@angular/core").EffectRef;
    /** Value of the select */
    valueModel: import("@angular/core").ModelSignal<T | null>;
    protected _valueModelEffect: import("@angular/core").EffectRef;
    private value;
    protected _valueEffect: import("@angular/core").EffectRef;
    writeValue(value: T | null): void;
    /** Whether a value is required in a form */
    required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    validate(control: AbstractControl<T>): ValidationErrors | null;
    selected: import("@angular/core").WritableSignal<NxOptionComponent<T> | undefined>;
    private options;
    protected zeroOptions: import("@angular/core").Signal<boolean>;
    protected _zeroOptionEffect: import("@angular/core").EffectRef;
    private defaultZeroOptionPlaceholderToken;
    protected defaultZeroOptionPlaceholder: import("@angular/core").Signal<string> | import("@angular/core").Signal<null>;
    /** Text displayed when there are no options */
    zeroOptionsPlaceholder: import("@angular/core").InputSignal<string | undefined>;
    protected _optionsChangeEffect: import("@angular/core").EffectRef;
    protected ariaDisabled: import("@angular/core").Signal<import("nx-shared").AriaBoolean>;
    /** Allows options with `null` value to be selected instead of clearing the select */
    allowNullSelect: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    private connectedOverlay;
    protected overlayOpen: import("@angular/core").WritableSignal<boolean>;
    protected ariaExpanded: import("@angular/core").Signal<import("nx-shared").AriaBoolean>;
    protected overlayWidth: import("@angular/core").WritableSignal<number>;
    protected overlayPositions: import("@angular/cdk/overlay").ConnectedPosition[];
    private optionsContainer;
    /** Compatibility hack for v19, previously effects fired after content init */
    private afterContentInit;
    private keyManager;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    protected onBlur(): void;
    protected onKeyDown(event: KeyboardEvent): void;
    protected onClosedKeyDown(event: KeyboardEvent): void;
    protected onClick(): void;
    protected open(): void;
    protected scrollOptionIntoView(option: NxOptionComponent<T>): void;
    protected onOpenKeyDown(event: KeyboardEvent): void;
    select(option: NxOptionComponent<T>): void;
    /** Called from option when it is disabled */
    unselect(_: NxOptionComponent<T>): void;
    protected onOverlayKeyDown(event: KeyboardEvent): void;
    protected onOutsideClick(event: MouseEvent): void;
    protected close(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NxSelectComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NxSelectComponent<any>, "nx-select", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "valueModel": { "alias": "value"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "zeroOptionsPlaceholder": { "alias": "zeroOptionsPlaceholder"; "required": false; "isSignal": true; }; "allowNullSelect": { "alias": "allowNullSelect"; "required": false; "isSignal": true; }; }, { "disabledOutput": "disabled"; "valueModel": "valueChange"; }, ["options"], ["*"], true, [{ directive: typeof i1.NxFormFieldControlDirective; inputs: {}; outputs: {}; }]>;
}
