import { EventEmitter, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { IComponent, IFormDataComponent, IFormDataTypeComponent, OFormComponent, OValueChangeEvent } from 'ontimize-web-ngx';
import { ODynamicFormComponent } from 'ontimize-web-ngx-dynamicform';
import { BehaviorSubject } from 'rxjs';
import { OComponentData } from './ontimize-components-data';
import { ComponentsDataService } from './services';
import { ArrayList } from './utils';
export declare class ODynamicFormBuilderComponent implements OnInit, IComponent, IFormDataTypeComponent, IFormDataComponent {
    protected dialog: MatDialog;
    protected componentsDataService: ComponentsDataService;
    protected parentForm: OFormComponent;
    autoBinding: boolean;
    autoRegistering: boolean;
    formDefinition$: BehaviorSubject<any>;
    componentsArray: ArrayList<OComponentData>;
    render: EventEmitter<any>;
    onFormDefinitionUpdate: EventEmitter<Object>;
    onChange: EventEmitter<Object>;
    onValueChange: EventEmitter<OValueChangeEvent>;
    protected oattr: string;
    protected innerFormDefinition: any;
    protected _isReadOnly: boolean;
    protected _fControl: FormControl;
    protected innerForm: OFormComponent;
    protected dynamicForm: ODynamicFormComponent;
    constructor(dialog: MatDialog, componentsDataService: ComponentsDataService, parentForm: OFormComponent);
    ngOnInit(): void;
    registerFormListeners(): void;
    ngOnDestroy(): void;
    unregisterFormListeners(): void;
    getValue(): any;
    clearValue(): void;
    setValue(val: any): void;
    getAttribute(): string;
    getSQLType(): number;
    reloadInnerFormMode(): void;
    onDynamicFormRendered(): void;
    data: any;
    isAutomaticBinding(): boolean;
    isAutomaticRegistering(): boolean;
    getComponentsFromJSON(componentsJSON: any, parent: any): void;
    formDefinition: any;
    definitionToString(): string;
    onUpdateComponents(): void;
    getComponentsJson(components: ArrayList<OComponentData>, parent: any[]): void;
    openSettingsDialog(component: OComponentData, args?: any): void;
    getComponentsArray(): OComponentData[];
    onAddComponent(args: any): void;
    onMoveComponent(args: any): void;
    onEditComponentSettings(args: any): void;
    onDeleteComponent(args: any): void;
    getOComponentData(fieldComponent: any): any;
    cloneComponent(component: any): OComponentData;
    isReadOnly: boolean;
    getControl(): FormControl;
    getFormControl(): FormControl;
    hasError(error: string): boolean;
    private _searchElement;
    private _insertElement;
    private _removeElement;
    private _cloneComponentData;
}
