import { ComponentRef, ViewContainerRef } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { Row } from './configurations/grid/row';
import { Structure } from './configurations/structure/structure';
import { FormField } from './form-field/form-field';
import { DynamicFormCacheService } from './services/dynamic-form-cache';
export declare abstract class DynamicForm {
    group: FormGroup | undefined;
    errorMessages: any;
    cacheService: DynamicFormCacheService;
    abstract createComponent(viewContainerRef: ViewContainerRef): any;
    abstract updateVariables(component: ComponentRef<any>): void;
    abstract getComponent(): any;
    constructor({ group, errorMessages, cacheService }: {
        group: FormGroup | undefined;
        errorMessages: any;
        cacheService: DynamicFormCacheService;
    });
}
export declare class DynamicField extends DynamicForm {
    field: FormField | undefined;
    constructor({ group, field, errorMessages, cacheService }: {
        group: FormGroup | undefined;
        field: FormField | undefined;
        errorMessages: any;
        cacheService: DynamicFormCacheService;
    });
    createComponent(viewContainerRef: ViewContainerRef): ComponentRef<any>;
    setVariablesByType(component: ComponentRef<any>): void;
    updateVariables(component: ComponentRef<any>): void;
    getComponent(): any;
    private _switchEmptyStringToNull;
}
export declare class DynamicStructure extends DynamicForm {
    config: Structure | undefined;
    constructor({ group, config, errorMessages, cacheService }: {
        group: FormGroup | undefined;
        config: Structure | undefined;
        errorMessages: any;
        cacheService: DynamicFormCacheService;
    });
    createComponent(viewContainerRef: ViewContainerRef): ComponentRef<any>;
    updateVariables(component: ComponentRef<any>): void;
    getComponent(): any;
}
export declare class DynamicGrid extends DynamicForm {
    config: Row | undefined;
    constructor({ group, config, errorMessages, cacheService }: {
        group: FormGroup | undefined;
        config: Row | undefined;
        errorMessages: any;
        cacheService: DynamicFormCacheService;
    });
    createComponent(viewContainerRef: ViewContainerRef): any;
    updateVariables(component: ComponentRef<any>): void;
    getComponent(): any;
}
