import * as i0 from '@angular/core'; import { InjectionToken, AfterViewInit } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; /** * Configuration for the CVA behavior */ interface CvaConfig { /** The property to bind to (e.g., 'value', 'checked') */ property: string; /** The event(s) to listen to (e.g., 'change', 'input', or 'change,input') */ events: string[]; /** Value transformer function (e.g., for boolean coercion) */ transformValue?: (value: any) => any; /** * Radio button mode: compares form control value with element's value attribute * and sets checked state accordingly. When true, the CVA will: * - Write: compare formControl.value === element.value, set element.checked * - Read: return element.value (not just true/false) */ isRadioButton?: boolean; } /** Injection token for CVA configuration */ declare const CVA_CONFIG: InjectionToken; declare class GenericControlValueAccessor implements ControlValueAccessor, AfterViewInit { onChange: (val: ValueType) => void; onTouched: () => void; private elementRef; private cdr; private config; private _value; private _valueSet; private _initialized; private _disabled; private get effectiveConfig(); ngAfterViewInit(): void; setDisabledState(isDisabled: boolean): void; registerOnChange(fn: (newVal: ValueType) => void): void; registerOnTouched(fn: () => void): void; writeValue(val: ValueType): void; private initializeComponent; private getValueToEmit; private updateElementValue; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[noop]", never, {}, {}, never, never, true, never>; } export { CVA_CONFIG, GenericControlValueAccessor };