import type { ValidControlValue } from './ValidControlValue.js'; /** Options for {@link ControlValueAccessor.setValue}. */ export interface SetOptions { disableEmit?: boolean; } /** Flags controlling whether and how a control value is serialized to storage. */ export interface ControlSerializeSettings { sensitive?: boolean; serializable?: boolean; } /** Contract for reading and writing a form control's value and related state. */ export interface ControlValueAccessor { readonly error: string; readonly previousValue: T; readonly serializeSettings: ControlSerializeSettings; readonly touched: boolean; readonly value: T; registerOnChange(fn: (value: T) => void): void; registerOnErrorChange(fn: (error: string) => void): void; registerOnTouched(fn: (isTouched: boolean) => void): void; setTouched(isTouched: boolean): void; setValue(fieldValue: T, options?: SetOptions): void; } //# sourceMappingURL=ControlValueAccessor.d.ts.map