export interface AsyncAck {
    /** Identifier linking this unique transaction execution to its related parent callers and child transactions. */
    correlationId: string;
    taskMap: TaskMap;
}
/** Specs describing an available WebSocket on which the client and server
 *  can exchange messages related to a given transaction. */
export interface CommChannelRef {
    socketId: string;
}
/** Applicable ONLY to `OperationStateEnum.Completed` */
export type OperationCompletionCodeEnum = "Cancelled" | "Failed" | "Skipped" | "Success";
/** Applicable ONLY to `OperationStateEnum.Completed` */
export declare const OperationCompletionCodeEnum: {
    /** Operation was underway but was manually interrupted before it completed. */
    readonly Cancelled: "Cancelled";
    /** Unsuccessful, not necessarily due to an error. */
    readonly Failed: "Failed";
    /**  No work to do (eg: already exists, or conditions were not met).   */
    readonly Skipped: "Skipped";
    readonly Success: "Success";
};
export type OperationStateEnum = "NotStarted" | "Processing" | "Completed";
export declare const OperationStateEnum: {
    readonly NotStarted: "NotStarted";
    readonly Processing: "Processing";
    readonly Completed: "Completed";
};
export interface OperationStatus {
    /** Human-readable identifier for the operation
     * being described by this object. */
    opCode: string;
    /** Friendly, plain-language, present-tense heading for the operation,
     * verb-"ing"-noun, and with NO trailing ellipsis.
     * eg: `"Creating cluster"`
     *
     * (aka: present-participle, gerund).  */
    opIngTitle: string;
    /** Basic tri-state indicating whether the operation is running or not (eg: has not yet started, is running or has completed).  */
    state: OperationStateEnum;
    completionCode?: OperationCompletionCodeEnum;
    /** The identifying login (eg: email) of the user that invoked the operation. */
    user: string;
    /** Identifying human readable tenant code. */
    tenant: string;
    /** optional, for use as interim processing output or completion failure reason.
     * eg: "Waiting for Azure completion". */
    message?: string;
}
/** Hierarchy of opCodes by which status messages
 *  will be marked within the overall correlation.
 *
 *  In other words, a user-friendly rendition of the intended call stack,
 *  so that real-time status messages can be rendered in sequential order
 *  by any client listening to the status stream. */
export interface TaskMap {
    /** Human-readable identifier for the operation
     *  being described by this object.
     *
     *  Must be 1-40 alphanumeric or underscore characters,
     *  no spaces or special characters
     *  (RegEx: `/^\w{1,40}$/` or: `/^[A-Za-z0-9_]{1,40}$/`). */
    opCode: string;
    /** Friendly, plain-language, present-tense heading for the operation,
     *  verb-"ing"-noun, and with NO trailing ellipsis.
     *  eg: `"Creating cluster"`
     *
     *  *(aka: present-participle, or gerund)*. */
    opIngTitle: string;
    /** (optional) The ordered list of sub processes called by this one. */
    tasks?: TaskMap[] | undefined;
}
