import { AttributeDirective, OnInit } from '@ibyar/core'; import { AbstractControl } from './form-control.js'; import { AbstractFormArray } from './form-array.js'; export type GroupControlType = T[K] extends Array ? AbstractFormArray : T[K] extends { [key in K]: infer G; } ? AbstractFormGroup : AbstractControl; export type GroupeControls = { [K in keyof T]: GroupControlType; }; export declare abstract class AbstractFormGroup extends AbstractControl { controls: GroupeControls; constructor(controls?: GroupeControls); abstract get(name: K): GroupControlType | undefined; abstract addControl(name: K, control: GroupControlType): void; abstract removeControl(name: K): void; } export declare class FormGroup extends AbstractFormGroup { get valid(): boolean; get invalid(): boolean; get pristine(): boolean; get dirty(): boolean; get touched(): boolean; get untouched(): boolean; get(key: K): GroupControlType | undefined; addControl(name: K, control: GroupControlType): void; removeControl(name: K): void; updateValue(value: T | null): void; updateValidity(): void; } export declare class FormGroupDirective extends AttributeDirective implements OnInit { protected el: HTMLFormElement; formGroup: import("@ibyar/core").InputWithoutTransform>; onInit(): void; onSubmit(event: Event): void; get valid(): boolean; } export type ɵɵ0FormGroupDirective0ɵɵ = { selector: "formGroup"; successors: [ ]; inputs: [ { name: "formGroup"; aliasName: "formGroup"; } ]; }; //# sourceMappingURL=form-group.d.ts.map