import { AbstractControl, ControlsCollection, ValidatorsFunction } from './abstract-control';
import { ValidationEvent } from './validation-event';
import { FormAbstractGroup } from './form-abstract-group';
export interface IOptionsFormGroup<TControls extends ControlsCollection> {
    /**
     * Validations
     * Валидациии
     */
    validators?: ValidatorsFunction<FormGroup<TControls>>[];
    /**
     * Additional information
     * Блок с дополнительной информацией
     */
    additionalData?: any;
    /**
     * Function enable validation by condition (always enabled by default)
     * / Функция включение валидаций по условию (по умолчанию включено всегда)
     */
    activate?: (() => boolean) | null;
}
export declare class FormGroup<TControls extends ControlsCollection = ControlsCollection> extends FormAbstractGroup {
    private readonly reactionOnIsActiveDisposer;
    private readonly validators;
    controls: TControls;
    constructor(
    /**
     * Сontrols
     * / Контролы
     */
    controls: TControls, 
    /**
     * Options
     * / Опции
     */
    options?: IOptionsFormGroup<TControls>);
    dispose: () => void;
    executeAsyncValidation: (validator: (control: this) => Promise<ValidationEvent[]>) => Promise<ValidationEvent[]>;
    protected getControls(): IterableIterator<AbstractControl>;
    private checkGroupValidations;
    runInAction(action: () => void): void;
}
