import { AttributeDirective } from '@ibyar/core'; import { AbstractControl } from './form-control.js'; import { AbstractFormGroup } from './form-group.js'; export type ArrayControlType = T extends { [key in keyof T]: any; } ? AbstractFormGroup : T extends Array ? AbstractFormArray : AbstractControl; export type ArrayControls = Array>; export declare abstract class AbstractFormArray extends AbstractControl { protected controls: ArrayControls; constructor(controls: ArrayControls); abstract at(index: number): ArrayControlType | undefined; abstract push(control: ArrayControlType): number; } export declare class FormArray extends AbstractFormArray { get valid(): boolean; get invalid(): boolean; get pristine(): boolean; get dirty(): boolean; get touched(): boolean; get untouched(): boolean; at(index: number): ArrayControlType | undefined; push(control: ArrayControlType): number; updateValue(value: T | null): void; updateValidity(): void; } export declare class FormArrayDirective extends AttributeDirective { } export declare class FormArrayNameDirective extends AttributeDirective { } export type ɵɵ0FormArrayDirective0ɵɵ = { selector: "formArray"; successors: [ ]; }; export type ɵɵ0FormArrayNameDirective0ɵɵ = { selector: "formArrayName"; successors: [ ]; }; //# sourceMappingURL=form-array.d.ts.map