import { DoCheck, OnChanges, SimpleChanges, EventEmitter, OnDestroy } from '@angular/core';
import { FormGroup, FormArray, NgForm, FormGroupDirective } from '@angular/forms';
import { FormlyFieldConfig, FormlyFormOptions } from './formly.field.config';
import { FormlyFormBuilder } from '../services/formly.form.builder';
import { FormlyFormExpression } from '../services/formly.form.expression';
import { FormlyConfig } from '../services/formly.config';
export declare class FormlyForm implements DoCheck, OnChanges, OnDestroy {
    private formlyBuilder;
    private formlyExpression;
    private formlyConfig;
    private parentForm;
    private parentFormGroup;
    private parentFormlyForm;
    model: any;
    form: FormGroup | FormArray;
    fields: FormlyFieldConfig[];
    options: FormlyFormOptions;
    modelChange: EventEmitter<any>;
    modelWillChange: EventEmitter<void>;
    modelDidChange: EventEmitter<void>;
    /** @internal */
    isRoot: boolean;
    private initialModel;
    private modelChangeSubs;
    constructor(formlyBuilder: FormlyFormBuilder, formlyExpression: FormlyFormExpression, formlyConfig: FormlyConfig, parentForm: NgForm, parentFormGroup: FormGroupDirective, parentFormlyForm: FormlyForm);
    ngDoCheck(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    changeModel(event: {
        key: string;
        value: any;
    }): void;
    setOptions(): void;
    private checkExpressionChange();
    private trackModelChanges(fields, rootKey?);
    private clearModelSubscriptions();
    private patchModel(model);
    private resetModel(model?);
    private resetFieldArray(fields, newModel);
    private initializeFormValue(control);
    private updateInitialValue();
}
