import * as i0 from '@angular/core'; import { InjectionToken, AfterContentInit, AfterContentChecked, OnDestroy, ElementRef, InputSignal, QueryList, Signal } from '@angular/core'; import * as i1 from '@sbb-esta/angular/core'; import { NgControl, AbstractControlDirective } from '@angular/forms'; import { Observable } from 'rxjs'; /** * Injection token that can be used to reference instances of `SbbError`. It serves as * alternative token to the actual `SbbError` class which could cause unnecessary * retention of the class and its directive metadata. */ declare const SBB_ERROR: InjectionToken; /** Single error message to be shown underneath the form field. */ declare class SbbError { id: string; constructor(...args: unknown[]); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** An interface which allows a control to work inside of a `SbbField`. */ declare abstract class SbbFormFieldControl { /** The value of the control. */ value: TValue | null; /** * Stream that emits whenever the state of the control changes such that the parent `SbbField` * needs to run change detection. */ readonly stateChanges: Observable; /** The id of the form field. */ readonly id: string; /** The attached NgControl or AbstractControlDirective, if any exists. */ readonly ngControl: NgControl | AbstractControlDirective | undefined; /** Whether the control is focused. */ readonly focused: boolean; /** Whether the control is empty. */ readonly empty: boolean; /** Whether the control is required. */ readonly required: boolean; /** Whether the control is disabled. */ readonly disabled: boolean; /** Whether the control is in an error state. */ readonly errorState: boolean; /** * An optional name for the control type that can be used to distinguish `sbb-form-field` elements * based on their control type. The form field will add a class, * `sbb-form-field-type-{{controlType}}` to its root element. */ readonly controlType?: string; /** * Whether the input is currently in an autofilled state. If property is not present on the * control it is assumed to be false. */ readonly autofilled?: boolean; /** * Value of `aria-describedby` that should be merged with the described-by ids * which are set by the form-field. */ readonly userAriaDescribedBy?: string; /** * Whether to automatically assign the ID of the form field as the `for` attribute * on the `