import { AbstractControl } from './abstract-control';
import { ControlError } from './control-error';
import { ControlOptions } from './control-options';
import { ControlValidator } from './validators/control-validator';
export declare class FormGroup<T = any> extends AbstractControl {
    private _controls;
    readonly validators: ControlValidator[];
    constructor(_controls: {
        [name: string]: AbstractControl;
    }, validators?: ControlValidator[], options?: ControlOptions);
    /**
     * Return an agregate values of all enabled controls.
     */
    get value(): T;
    set value(value: T);
    get valid(): boolean;
    get enabled(): boolean;
    set enabled(isEnabled: boolean);
    get waiting(): boolean;
    set waiting(isWaiting: boolean);
    get readonly(): boolean;
    set readonly(isReadonly: boolean);
    get errors(): ControlError[];
    set errors(errors: ControlError[]);
    get errorsDeep(): ControlError[];
    get touched(): boolean;
    submit(): Promise<void>;
    reset(): void;
    endEdition(): void;
    get controls(): AbstractControl[];
    containsControl(name: string): boolean;
    getControl<T = any>(name: string): AbstractControl<T>;
    addControl(name: string, control: AbstractControl): void;
    setControl(name: string, control: AbstractControl): void;
    removeControl(name: string): void;
    private setupControlsParent;
    protected _hasAnyControlsInError(): boolean;
}
//# sourceMappingURL=form-group.d.ts.map