import { XDataDefinition } from "../Data/XDataDefinition";
import { BaseExecutable } from "./BaseExecutable";
import { XExecutionData } from "../Data/ExecutionData/XExecutionData";
import { ITestingContext } from "../Testing/ITestingContext";
export declare abstract class Executable extends BaseExecutable {
    protected _executionResult?: (() => XDataDefinition) | XDataDefinition;
    executionResultCache?: XDataDefinition;
    abstract run(data: XExecutionData, testContext: ITestingContext | undefined): any;
    set executionResult(res: (() => XDataDefinition) | XDataDefinition | undefined);
    get executionResult(): (() => XDataDefinition) | XDataDefinition | undefined;
    getExecutionResult(): XDataDefinition;
    get canChangeOutputs(): boolean;
    getStorageData(): object;
    setStorageData(data: object): void;
}
