import type { ValueComparator } from '../value-comparators/value-comparator'; import type { ValueAccessor } from './value-accessor'; export type OnTouchedCallback = () => void; export type OnChangeCallback = (value: TValue | null) => void; export declare abstract class ValueAccessorBase implements ValueAccessor { readonly kind: string; readonly valueComparator: ValueComparator; readonly supportsMultipleElements: boolean; readonly supportsNativeValidation: boolean; private _onTouched; private _onChange; constructor(kind: string); abstract get elements(): ReadonlySet; abstract detach(el: TElement): void; abstract readValue(): TValue | null; abstract writeValue(value: TValue): void; abstract setDisabledState(disabled: boolean): void; abstract focus(): void; abstract reset(): void; /** * @internal */ _registerListeners(onTouched: OnTouchedCallback, onChange: OnChangeCallback): void; attach(_el: TElement): void; waitForRenderComplete(_el: TElement): Promise; isEmpty(value: TValue | null): boolean; checkValidity(): boolean; reportValidity(): void; setCustomValidity(_message: string): void; protected notifyChange(): void; protected notifyTouched(): void; }