import Bluebird from "../deps/bluebird_fork";
import { Lookup } from "../Collections";
import { Activity } from "../definition/Activity";
import { ProgramInspector } from "../definition/ProgramInspector";
/** Contains information about an activity. */
export interface IActivityState {
    /** Indicates the identifier of this state. */
    id: any;
    /** Indicates the activity. */
    activity: Activity;
    /** Indicates the number of passes on the current step. */
    passes: number;
    /** Indicates the error that was caught. */
    caught: Error;
    /** Indicates the inputs. */
    inputs: {};
    /** Indicates the outputs. */
    outputs: {};
    /** Indicates the completion promise. */
    promise: Bluebird<Error[]>;
}
/** Contains information about a debug event. */
export interface IMonikerFrame {
    /** Indicates the activity currently being run. */
    current: IActivityState;
    /** Indicates the activity states. */
    state: Lookup<IActivityState>;
}
/** Exposes information and controls for debugging a running workflow. */
export interface IDebugSession {
    /** Indicates the program being run. */
    inspector: ProgramInspector;
    /** Indicates the activity currently being run. */
    frame: IMonikerFrame;
    /** Indicates the monikers for which activities may draw input from. */
    stack: IMonikerFrame[];
    /** Breaks execution of the program being debugged. */
    break(): void;
    /** Continues execution of the program being debugged. */
    continue(): void;
}
