import { UxDynMappingConfig, UxFieldId } from './ux-dyn-core.model';
import { DynFormApi } from '../services/form-api-service';
import { Observable } from 'rxjs';
export declare class SaveFieldDataEvent {
    fieldId: UxFieldId;
    key: string;
    data: any;
    level: string;
    interpreted?: boolean;
    constructor(fieldId: UxFieldId, key: string, data: any, level: string, interpreted?: boolean);
}
export declare class DynFieldData {
    private id;
    private valId;
    private formApi;
    private ruleFn;
    levelId: any;
    constructor(id: string | number, valId: string, formApi: DynFormApi, ruleFn: UxDynRuleFn);
    set(newVal: any): void;
    get(): Observable<any>;
    setScope(id: any): void;
    getScope(): any;
}
export declare type UxDynRuleFn = (formApi: DynFormApi, fieldData: Array<DynFieldData>, constants: Array<any>) => void;
export declare type UxDynRuleMetaData = Array<UxDynRuleResolver>;
export interface UxDynRuleResolver {
    params: Array<UxDynRuleDependency>;
    constants: Array<any>;
    ruleId: string;
}
export interface UxDynRuleDependency {
    fieldId: UxFieldId;
    propName: string;
}
export declare function dynRuleRunner(metaData: UxDynRuleMetaData, config: UxDynMappingConfig, formApi: DynFormApi): void;
