import { ComponentRef, ViewContainerRef } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { DynamicType } from './form-field/configurations/fields/field';
import { BaseStructureComponentConfig } from './components/structure/base-structure-component';
import { DynamicStructure as FieldDynamicStructure } from './configurations/structure/structure';
import { BaseFieldComponentConfig } from './form-field/fields/base-field-component';
export declare abstract class DynamicForm {
    group: FormGroup;
    abstract createComponent(viewContainerRef: ViewContainerRef): any;
    abstract updateVariables(component: ComponentRef<any>): void;
    abstract getComponent(): any;
    constructor({ group }: {
        group: FormGroup;
    });
}
export declare class DynamicField extends DynamicForm {
    field: DynamicType;
    constructor({ group, field }: {
        group: FormGroup;
        field: DynamicType;
    });
    createComponent(viewContainerRef: ViewContainerRef): ComponentRef<BaseFieldComponentConfig>;
    updateVariables(component: ComponentRef<any>): void;
    getComponent(): import("@angular/core").Type<any>;
}
export declare class DynamicStructure extends DynamicForm {
    config: FieldDynamicStructure;
    constructor({ group, config }: {
        group: FormGroup;
        config: FieldDynamicStructure;
    });
    createComponent(viewContainerRef: ViewContainerRef): ComponentRef<BaseStructureComponentConfig>;
    updateVariables(component: ComponentRef<any>): void;
    getComponent(): import("@angular/core").Type<any>;
}
