import _m0 from 'protobufjs/minimal';
import { Duration } from '../../../../../google/protobuf/duration';
export declare const protobufPackage = "yandex.cloud.serverless.workflows.v1";
export interface Execution {
    /** ID of the Workflow execution. Generated at creation time. */
    id: string;
    /** ID of the Workflow. */
    workflowId: string;
    /** Input data for the Workflow execution. */
    input?: ExecutionInput;
    /** Result of the Workflow execution. */
    result?: ExecutionResult;
    /** Error details, in case Workflow execution failed. */
    error?: ExecutionError;
    /** Status of the Workflow execution */
    status: Execution_Status;
    /** Start timestamp for the Workflow execution. */
    startedAt?: Date;
    /** Duration of the Workflow execution. */
    duration?: Duration;
}
export declare enum Execution_Status {
    STATUS_UNSPECIFIED = 0,
    /** QUEUED - Workflow execution is being queued. */
    QUEUED = 1,
    /** RUNNING - Workflow execution is running. */
    RUNNING = 2,
    /** PAUSED - Workflow execution is being paused. */
    PAUSED = 3,
    /** STOPPED - Workflow execution is stopped. */
    STOPPED = 4,
    /** FAILED - Workflow execution is failed. */
    FAILED = 5,
    /** FINISHED - Workflow execution is finished. */
    FINISHED = 6,
    UNRECOGNIZED = -1
}
export declare function execution_StatusFromJSON(object: any): Execution_Status;
export declare function execution_StatusToJSON(object: Execution_Status): string;
export interface ExecutionPreview {
    /** ID of the Workflow execution. Generated at creation time. */
    id: string;
    /** ID of the Workflow. */
    workflowId: string;
    /** Status of the Workflow execution */
    status: Execution_Status;
    /** Start timestamp for the Workflow execution. */
    startedAt?: Date;
    /** Duration of the Workflow execution. */
    duration?: Duration;
}
export interface ExecutionInput {
    /** JSON input data for the Workflow execution. */
    inputJson: string | undefined;
}
export interface ExecutionResult {
    /** JSON result of the Workflow execution. */
    resultJson: string | undefined;
}
export interface ExecutionError {
    /** Error message of the Workflow execution. */
    message: string;
    /** Error code of the Workflow execution. */
    errorCode: string;
}
export declare const Execution: {
    encode(message: Execution, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Execution;
    fromJSON(object: any): Execution;
    toJSON(message: Execution): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        workflowId?: string | undefined;
        input?: {
            inputJson?: string | undefined;
        } | undefined;
        result?: {
            resultJson?: string | undefined;
        } | undefined;
        error?: {
            message?: string | undefined;
            errorCode?: string | undefined;
        } | undefined;
        status?: Execution_Status | undefined;
        startedAt?: Date | undefined;
        duration?: {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        workflowId?: string | undefined;
        input?: ({
            inputJson?: string | undefined;
        } & {
            inputJson?: string | undefined;
        } & Record<Exclude<keyof I["input"], "inputJson">, never>) | undefined;
        result?: ({
            resultJson?: string | undefined;
        } & {
            resultJson?: string | undefined;
        } & Record<Exclude<keyof I["result"], "resultJson">, never>) | undefined;
        error?: ({
            message?: string | undefined;
            errorCode?: string | undefined;
        } & {
            message?: string | undefined;
            errorCode?: string | undefined;
        } & Record<Exclude<keyof I["error"], keyof ExecutionError>, never>) | undefined;
        status?: Execution_Status | undefined;
        startedAt?: Date | undefined;
        duration?: ({
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & Record<Exclude<keyof I["duration"], keyof Duration>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Execution>, never>>(object: I): Execution;
};
export declare const ExecutionPreview: {
    encode(message: ExecutionPreview, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionPreview;
    fromJSON(object: any): ExecutionPreview;
    toJSON(message: ExecutionPreview): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        workflowId?: string | undefined;
        status?: Execution_Status | undefined;
        startedAt?: Date | undefined;
        duration?: {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        workflowId?: string | undefined;
        status?: Execution_Status | undefined;
        startedAt?: Date | undefined;
        duration?: ({
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & Record<Exclude<keyof I["duration"], keyof Duration>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof ExecutionPreview>, never>>(object: I): ExecutionPreview;
};
export declare const ExecutionInput: {
    encode(message: ExecutionInput, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionInput;
    fromJSON(object: any): ExecutionInput;
    toJSON(message: ExecutionInput): unknown;
    fromPartial<I extends {
        inputJson?: string | undefined;
    } & {
        inputJson?: string | undefined;
    } & Record<Exclude<keyof I, "inputJson">, never>>(object: I): ExecutionInput;
};
export declare const ExecutionResult: {
    encode(message: ExecutionResult, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionResult;
    fromJSON(object: any): ExecutionResult;
    toJSON(message: ExecutionResult): unknown;
    fromPartial<I extends {
        resultJson?: string | undefined;
    } & {
        resultJson?: string | undefined;
    } & Record<Exclude<keyof I, "resultJson">, never>>(object: I): ExecutionResult;
};
export declare const ExecutionError: {
    encode(message: ExecutionError, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionError;
    fromJSON(object: any): ExecutionError;
    toJSON(message: ExecutionError): unknown;
    fromPartial<I extends {
        message?: string | undefined;
        errorCode?: string | undefined;
    } & {
        message?: string | undefined;
        errorCode?: string | undefined;
    } & Record<Exclude<keyof I, keyof ExecutionError>, never>>(object: I): ExecutionError;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
