/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { AsynchronousRequestBody } from './AsynchronousRequestBody';
import type { AsynchronousResponseBody } from './AsynchronousResponseBody';
import type { CallersContext } from './CallersContext';
/**
 * Object used to track the status of an Asynchronous Job.
 * @export
 * @interface AsynchronousJobStatus
 */
export interface AsynchronousJobStatus {
    /**
     * The job's state can be one of the following enumerations
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    jobState?: AsynchronousJobStatusJobStateEnum;
    /**
     * Was the job being asked to cancel.
     * @type {boolean}
     * @memberof AsynchronousJobStatus
     */
    jobCanceling?: boolean;
    /**
     *
     * @type {AsynchronousRequestBody}
     * @memberof AsynchronousJobStatus
     */
    requestBody?: AsynchronousRequestBody;
    /**
     *
     * @type {AsynchronousResponseBody}
     * @memberof AsynchronousJobStatus
     */
    responseBody?: AsynchronousResponseBody;
    /**
     * The etag of the status will change whenever the status changes.
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    etag?: string;
    /**
     * The ID if the job issued when this job request was issued.
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    jobId?: string;
    /**
     * The ID of the user that started the job
     * @type {number}
     * @memberof AsynchronousJobStatus
     */
    startedByUserId?: number;
    /**
     * The date-time when the status of this table last changed to PROCESSING.
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    startedOn?: string;
    /**
     * The date-time when the status of this table last changed.
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    changedOn?: string;
    /**
     * The current message of the progress tracker.
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    progressMessage?: string;
    /**
     * The progress current value indicates how much progress has been made. For example: If progressTotal = 100; and progressCurrent = 50; then the work is 50% complete.
     * @type {number}
     * @memberof AsynchronousJobStatus
     */
    progressCurrent?: number;
    /**
     * The progress total indicates the total amount of work to complete. For example: If progressTotal = 100; and progressCurrent = 50; then the work is 50% complete.
     * @type {number}
     * @memberof AsynchronousJobStatus
     */
    progressTotal?: number;
    /**
     * The exception that needs to be thrown
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    exception?: string;
    /**
     * When processing fails, this is a one line error message.
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    errorMessage?: string;
    /**
     * When processing fails, this is the full stack trace of the error.
     * @type {string}
     * @memberof AsynchronousJobStatus
     */
    errorDetails?: string;
    /**
     * The number of milliseconds from the start to completion of this job.
     * @type {number}
     * @memberof AsynchronousJobStatus
     */
    runtimeMS?: number;
    /**
     *
     * @type {CallersContext}
     * @memberof AsynchronousJobStatus
     */
    callersContext?: CallersContext;
}
/**
 * @export
 */
export declare const AsynchronousJobStatusJobStateEnum: {
    readonly PROCESSING: "PROCESSING";
    readonly FAILED: "FAILED";
    readonly COMPLETE: "COMPLETE";
};
export type AsynchronousJobStatusJobStateEnum = typeof AsynchronousJobStatusJobStateEnum[keyof typeof AsynchronousJobStatusJobStateEnum];
/**
 * Check if a given object implements the AsynchronousJobStatus interface.
 */
export declare function instanceOfAsynchronousJobStatus(value: object): value is AsynchronousJobStatus;
export declare function AsynchronousJobStatusFromJSON(json: any): AsynchronousJobStatus;
export declare function AsynchronousJobStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): AsynchronousJobStatus;
export declare function AsynchronousJobStatusToJSON(json: any): AsynchronousJobStatus;
export declare function AsynchronousJobStatusToJSONTyped(value?: AsynchronousJobStatus | null, ignoreDiscriminator?: boolean): any;
