import { XExecutionData } from "../../Common/Data/ExecutionData/XExecutionData";
import { IConfigStorage } from "../../Common/IConfigStorage";
import { ITestingContext } from "../../Common/Testing/ITestingContext";
import { XFlowConfiguration } from "../Structure/XFlowConfiguration";
export declare class XFlowEngine {
    static startFlow(flow: XFlowConfiguration, data: XExecutionData, testContext: ITestingContext): string;
    static runFlowAndWait(flow: XFlowConfiguration, data: XExecutionData, testContext: ITestingContext): Promise<XFlowExecutionData>;
    static getFlowState(id: string): XFlowState;
    static getFlowResult(id: string): XFlowExecutionData;
    static getFlowExecutionData(id: string): XFlowExecutionData;
    static storeFlow(id: string): void;
    static cancelFlow(id: string): void;
    static clearFlow(id: string): void;
    static restartFlow(id: string, startAtStepId: string, startWithData: XFlowExecutionData, startWithPath?: string): void;
}
export declare enum XFlowState {
    RUNNING = "RUNNING",
    WAITING = "WAITING",
    COMPLETED = "COMPLETED"
}
export declare class XFlowExecutionData implements IConfigStorage {
    testContext?: ITestingContext;
    data: XExecutionData;
    constructor(data: XExecutionData);
    getStorageData(): object;
    setStorageData(data: object): void;
}
