import { IAbstractControl } from './i-abstract-control' ; import { AbstractControl } from '@angular/forms' ; export interface IFormGroup < T > extends IAbstractControl < T , T > { controls : { [ key in keyof T ] : IAbstractControl < T [ key ] , T > ; } ; addControl < K extends keyof T > ( name , control , options ? ) : void ; contains ( controlName ) : boolean ; getRawValue ( ) : T ; patchValue ( value , options ? ) : void ; registerControl < K extends keyof T > ( name , control ) : AbstractControl ; removeControl ( name , options ? ) : void ; reset ( value ? , options ? ) : void ; setControl < K extends keyof T > ( name , control , options ? ) : void ; setValue < K extends keyof T > ( value , options ? ) : void ; controlsError ? : { [ key ] : any ; } ; submitted ? : boolean ; }