import { Executable } from "../../Common/Execution/Executable";
import { XExecutionData } from "../../Common/Data/ExecutionData/XExecutionData";
import { XExpressionDefinition } from "../../Expressions/XExpressionDefinition";
import { IConfigStorage } from "../../Common/IConfigStorage";
import { ITestingContext } from "../../Common/Testing/ITestingContext";
import { IDesignValidationProvider, ValidationIssue } from "../../Common/IDesignValidationProvider";
import { XDataDefinition } from "../../Common/Data/XDataDefinition";
import { MappingEditContext } from "./MappingEditContext";
export declare enum MappingRuleViewType {
    HIDDEN = "hidden",
    SMALL = "small",
    EXPANDED = "Expanded"
}
export declare class MappingRule implements IConfigStorage {
    id: string;
    targetPath: string;
    mapping: XExpressionDefinition;
    x: number;
    y: number;
    desiredX: number;
    desiredY: number;
    private _viewType;
    set viewType(viewType: MappingRuleViewType);
    get viewType(): MappingRuleViewType;
    constructor(desiredX: number, desiredY: number, targetPath?: string);
    getInboundPaths(): string[];
    getStorageData(): object;
    setStorageData(data: object): void;
    deleteTarget(): void;
    getValidationIssue(odatadef: XDataDefinition): ValidationIssue[];
}
export declare class XMappingDefinition extends Executable implements IDesignValidationProvider {
    private _mappingRules;
    editContext?: MappingEditContext;
    get mappingRules(): MappingRule[];
    run(data: XExecutionData, testContext: ITestingContext | undefined): void;
    addMappingRule(mappingRule?: MappingRule): MappingRule;
    addMappingRuleFromDestination(destinationPath: string): MappingRule;
    removeMappingRule(id: string): void;
    directConnect(sourcePath: string, targetPath: string): MappingRule;
    getStorageData(): object;
    setStorageData(data: object): void;
    getMappingRuleByTargetPath(targetPath: string): MappingRule | undefined;
    setRuleTarget(mappingRule: MappingRule, targetPath: string): void;
    find(id: string): MappingRule | undefined;
    private checkTargetFieldConfigured;
    getDesignValidationIssues(): ValidationIssue[];
}
