import type { FormComponent } from '../component-model/form-component'; import type { FormControl } from '../component-model/form-control'; import type { FormParent } from '../component-model/form-parent'; export type ValidationErrors = Record; export type ValidatorFunction = (control: FormControl) => ValidationErrors | null; export type FormGroupComponents = { [name: string]: FormComponent; }; export type FormComponentValue> = T['value']; export type FormGroupValues = { [K in keyof T]: FormComponentValue; }; export type FormArrayValues = FormGroupValues[]; export declare interface ControlValidationResult { readonly control: FormControl; readonly errors: ValidationErrors; } export declare class ValueChangedEvent { readonly component: FormComponent; readonly origin: FormControl; constructor(component: FormComponent, origin: FormControl); } export declare class TouchedEvent { readonly component: FormComponent; readonly origin: FormControl; constructor(component: FormComponent, origin: FormControl); } export declare class StateChangedEvent { readonly component: FormComponent; readonly origin: FormControl; constructor(component: FormComponent, origin: FormControl); } export declare class ComponentChangedEvent { readonly component: FormParent; readonly origin: FormParent; constructor(component: FormParent, origin: FormParent); } export declare class ValidateEvent { readonly valid: boolean; readonly invalid: readonly ControlValidationResult[]; constructor(valid: boolean, invalid: readonly ControlValidationResult[]); } export declare class SubmittedEvent { readonly values: FormGroupValues; constructor(values: FormGroupValues); } export declare class ResetEvent { } export declare class ConnectedEvent { readonly element: TElement; constructor(element: TElement); }