import { type DirectiveResult } from 'lit/directive.js'; import type { ValueAccessorFactory } from '../value-accessors/value-accessor-factory'; import type { AttachableComponent } from './attachable-component'; import type { ValidationErrors, ValidatorFunction } from '../common/types'; import type { ValidationErrorMessageWriter } from '../validation/validation-error-message-writer'; import type { FormControl, FormControlOptions, FormControlValidationOptions } from './form-control'; import { FormComponentImpl } from './form-component-impl'; import { Observable } from 'rxjs'; import { ConnectedEvent } from '../common/types'; /** * @internal */ export declare class FormControlImpl extends FormComponentImpl implements FormControl, AttachableComponent { private readonly _onConnected; private readonly _disableNativeValidation; private readonly _valueAccessorFactory; private readonly _validationErrorMessageWriter; private readonly _validators; private readonly _options; private _defaultValue; private _value; private _isDirty; private _isValid; private _errors; private _valueAccessorTemporary; private _valueAccessor; constructor(valueAccessorFactory: ValueAccessorFactory, validationErrorMessageWriter: ValidationErrorMessageWriter, defaultValue?: TValue | null, options?: FormControlOptions); get onConnected(): Observable>; get kind(): string; get elements(): ReadonlySet; get value(): TValue | null; set value(value: TValue | null); get validators(): readonly ValidatorFunction[]; get errors(): ValidationErrors; get isValid(): boolean; get isDirty(): boolean; get isEmpty(): boolean; clone(): FormControl; reset(): void; validate(options?: FormControlValidationOptions): boolean; focus(): void; enable(): void; disable(): void; attach(): DirectiveResult; _destroy(): void; _connectElement(element: TElement): Promise; _disconnectElement(element: TElement): void; private initializeValue; private updateValue; private writeValue; private doValidate; }