import type { ReactiveControllerHost } from 'lit'; import type { DirectiveResult } from 'lit/directive.js'; import type { Observable } from 'rxjs'; import type { FormGroupComponents } from '../common/types'; import type { FormController, ValidateOptions } from './form-controller'; import type { FormControl } from '../component-model/form-control'; import type { FormParent } from '../component-model/form-parent'; import type { AttachmentsStore } from '../component-model/attachments-store'; import type { AttachableComponent } from '../component-model/attachable-component'; import { ResetEvent, SubmittedEvent, ValidateEvent } from '../common/types'; import { FormGroupImpl } from '../component-model/form-group-impl'; /** * @internal */ export declare class FormControllerImpl extends FormGroupImpl implements FormController, AttachableComponent { private readonly _host; private readonly _attachmentsStoreLocal; private readonly _listenerSubmit; private readonly _listenerReset; private readonly _onReset; private readonly _onValidate; private readonly _onSubmit; private _removeNoValidate; private _isValidatedFromSubmit; constructor(host: ReactiveControllerHost, attachmentsStore: AttachmentsStore, components: TComponents); get isValidatedFromSubmit(): boolean; get onReset(): Observable; get onValidate(): Observable; get onSubmit(): Observable>; hostConnected(): void; attach(): DirectiveResult; reset(): void; submit(): void; validate(options?: ValidateOptions): boolean; /** * @internal */ _connectElement(el: HTMLFormElement): Promise; /** * @internal */ _disconnectElement(el: HTMLFormElement): void; _notifyStateChanged(origin: FormControl): void; _notifyComponentsChanged(origin: FormParent): void; private handleSubmit; private handleReset; private doValidate; }