import { Observable } from 'rxjs';
import { LogService, Logger } from '@eui/core';
import { IsolatedMultiReduxHelper, MultiStoreService } from './multi-redux.service';
import { FormGroup, FormArray, FormControl, AbstractControl } from '@angular/forms';
import { UxDynFormModel, UxDynFormModelArray } from '../model/ux-dyn-core.model';
import { DynFormApi } from './form-api-service';
import { DynConfigService } from './dyn-config.service';
import { UxDynRuleMetaData } from '../model/ux-dyn-rules.model';
import { DynDataService } from './dyn-data.service';
import { UxDynFetchTypes, UxDynMapToConfig } from '../model/ux-dyn-data.model';
import { DynValidationsService } from './dyn-validations.service';
import * as i0 from "@angular/core";
export declare class FormService {
    private dynConfigService;
    private dynDataService;
    private multipleStore;
    private logService;
    private validationsService;
    traceService: Logger;
    private onSubmitSubject;
    private frames;
    constructor(dynConfigService: DynConfigService, dynDataService: DynDataService, multipleStore: MultiStoreService, logService: LogService, validationsService: DynValidationsService);
    registerFrameInstance(id: any, instance: any): void;
    getFrameInstance(id: string): DynFormApi;
    deleteFrameInstance(id: any): void;
    getFormState(id: any): any;
    pushOnSubmit(data: any): void;
    pullOnSubmit(): Observable<any>;
    init(id: any): void;
    getMultiStoreServiceInstance(id: any): IsolatedMultiReduxHelper;
    destroy(id: any): void;
    createFormGroup(): FormGroup;
    createFormControl(): FormControl;
    createFormArray(): FormArray;
    setValidators(control: AbstractControl, context: any): void;
    calculateControls(parent: FormGroup | FormArray, metaData: UxDynFormModelArray, parentData: any, parentIndex?: any): void;
    setFormItemParentAndGetData(item: any, field: any, parent: any, parentData: any, parentIndex: any): any;
    setArrayParent(parent: FormArray, item: any, index: number): void;
    setGroupParent(parent: FormGroup, item: any, key: string): void;
    createFormItem(field: UxDynFormModel): FormGroup | FormArray | FormControl;
    getControlFromParent(parent: any, key: any): AbstractControl;
    runRules(metaData: UxDynRuleMetaData, formApi: DynFormApi): void;
    fetchData(fetchType: UxDynFetchTypes, mapTo?: UxDynMapToConfig): Observable<any>;
    isSameInstanceWith(compared: object, ref: object): boolean;
    static ɵfac: i0.ɵɵFactoryDef<FormService, never>;
    static ɵprov: i0.ɵɵInjectableDef<FormService>;
}
