import { RuleExecutable } from "../../../Common/Execution/RuleExecutable";
import { XExecutionData } from "../../../Common/Data/ExecutionData/XExecutionData";
import { TreeRuleNode } from "./TreeRuleNode";
import { ITestingContext } from "../../../Common/Testing/ITestingContext";
import { ValidationIssue } from "../../../Common/IDesignValidationProvider";
import { IConfigStorage } from "../../../Common/IConfigStorage";
import { IDataDefinition } from "../../../Common/Data/Definitions/IDataDefinition";
export declare class TreeRuleDefinition extends RuleExecutable implements IConfigStorage {
    _id: string;
    _root: TreeRuleNode;
    constructor();
    get executionResult(): IDataDefinition | (() => IDataDefinition);
    set executionResult(value: IDataDefinition | (() => IDataDefinition));
    set root(node: TreeRuleNode);
    get root(): TreeRuleNode;
    run(data: XExecutionData, testContext?: ITestingContext): any;
    insert(node: TreeRuleNode, isTrue: boolean): void;
    getAllChildren(node: TreeRuleNode): TreeRuleNode[];
    getAllResults(): TreeRuleNode[];
    getDesignValidationIssues(): ValidationIssue[];
    getStorageData(): object;
    setStorageData(data: object): void;
}
