import { AbstractControl, FormControlStatus, FormGroup } from '@angular/forms';
import { Observable } from 'rxjs';
export interface FormGroupExtended<TValue extends {
    [K in keyof TValue]: AbstractControl<any, any>;
} = any, DATA = any> extends FormGroup<TValue> {
    extended: true;
    status$: Observable<FormControlStatus>;
    invalid$: Observable<boolean>;
    valid$: Observable<boolean>;
    data$: Observable<DATA | undefined>;
    data: DATA | undefined;
    markAllAsDirty: () => void;
    setReadonly: (value: boolean, ...keys: (keyof TValue)[]) => FormGroupExtended<TValue, DATA>;
    setDisabled: (value: boolean, ...keys: (keyof TValue)[]) => FormGroupExtended<TValue, DATA>;
    setData: (value: DATA | undefined) => FormGroupExtended<TValue, DATA>;
}
export declare function formGroup<T extends {
    [K in keyof T]: AbstractControl<any, any>;
}, DATA = any>(inputs: T): FormGroupExtended<T, any>;
export declare function isFormGroupExtended(group: FormGroup | FormGroupExtended): group is FormGroupExtended;
