// package: com.daml.ledger.api.v1
// file: com/daml/ledger/api/v1/commands.proto

/* tslint:disable */
/* eslint-disable */

import * as jspb from "google-protobuf";
import * as com_daml_ledger_api_v1_value_pb from "../../../../../com/daml/ledger/api/v1/value_pb";
import * as google_protobuf_timestamp_pb from "google-protobuf/google/protobuf/timestamp_pb";
import * as google_protobuf_duration_pb from "google-protobuf/google/protobuf/duration_pb";

export class Commands extends jspb.Message { 
    getLedgerId(): string;
    setLedgerId(value: string): Commands;

    getWorkflowId(): string;
    setWorkflowId(value: string): Commands;

    getApplicationId(): string;
    setApplicationId(value: string): Commands;

    getCommandId(): string;
    setCommandId(value: string): Commands;

    getParty(): string;
    setParty(value: string): Commands;

    clearCommandsList(): void;
    getCommandsList(): Array<Command>;
    setCommandsList(value: Array<Command>): Commands;
    addCommands(value?: Command, index?: number): Command;


    hasDeduplicationTime(): boolean;
    clearDeduplicationTime(): void;
    getDeduplicationTime(): google_protobuf_duration_pb.Duration | undefined;
    setDeduplicationTime(value?: google_protobuf_duration_pb.Duration): Commands;


    hasMinLedgerTimeAbs(): boolean;
    clearMinLedgerTimeAbs(): void;
    getMinLedgerTimeAbs(): google_protobuf_timestamp_pb.Timestamp | undefined;
    setMinLedgerTimeAbs(value?: google_protobuf_timestamp_pb.Timestamp): Commands;


    hasMinLedgerTimeRel(): boolean;
    clearMinLedgerTimeRel(): void;
    getMinLedgerTimeRel(): google_protobuf_duration_pb.Duration | undefined;
    setMinLedgerTimeRel(value?: google_protobuf_duration_pb.Duration): Commands;


    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): Commands.AsObject;
    static toObject(includeInstance: boolean, msg: Commands): Commands.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: Commands, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): Commands;
    static deserializeBinaryFromReader(message: Commands, reader: jspb.BinaryReader): Commands;
}

export namespace Commands {
    export type AsObject = {
        ledgerId: string,
        workflowId: string,
        applicationId: string,
        commandId: string,
        party: string,
        commandsList: Array<Command.AsObject>,
        deduplicationTime?: google_protobuf_duration_pb.Duration.AsObject,
        minLedgerTimeAbs?: google_protobuf_timestamp_pb.Timestamp.AsObject,
        minLedgerTimeRel?: google_protobuf_duration_pb.Duration.AsObject,
    }
}

export class Command extends jspb.Message { 

    hasCreate(): boolean;
    clearCreate(): void;
    getCreate(): CreateCommand | undefined;
    setCreate(value?: CreateCommand): Command;


    hasExercise(): boolean;
    clearExercise(): void;
    getExercise(): ExerciseCommand | undefined;
    setExercise(value?: ExerciseCommand): Command;


    hasExercisebykey(): boolean;
    clearExercisebykey(): void;
    getExercisebykey(): ExerciseByKeyCommand | undefined;
    setExercisebykey(value?: ExerciseByKeyCommand): Command;


    hasCreateandexercise(): boolean;
    clearCreateandexercise(): void;
    getCreateandexercise(): CreateAndExerciseCommand | undefined;
    setCreateandexercise(value?: CreateAndExerciseCommand): Command;


    getCommandCase(): Command.CommandCase;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): Command.AsObject;
    static toObject(includeInstance: boolean, msg: Command): Command.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: Command, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): Command;
    static deserializeBinaryFromReader(message: Command, reader: jspb.BinaryReader): Command;
}

export namespace Command {
    export type AsObject = {
        create?: CreateCommand.AsObject,
        exercise?: ExerciseCommand.AsObject,
        exercisebykey?: ExerciseByKeyCommand.AsObject,
        createandexercise?: CreateAndExerciseCommand.AsObject,
    }

    export enum CommandCase {
        COMMAND_NOT_SET = 0,
    
    CREATE = 1,

    EXERCISE = 2,

    EXERCISEBYKEY = 4,

    CREATEANDEXERCISE = 3,

    }

}

export class CreateCommand extends jspb.Message { 

    hasTemplateId(): boolean;
    clearTemplateId(): void;
    getTemplateId(): com_daml_ledger_api_v1_value_pb.Identifier | undefined;
    setTemplateId(value?: com_daml_ledger_api_v1_value_pb.Identifier): CreateCommand;


    hasCreateArguments(): boolean;
    clearCreateArguments(): void;
    getCreateArguments(): com_daml_ledger_api_v1_value_pb.Record | undefined;
    setCreateArguments(value?: com_daml_ledger_api_v1_value_pb.Record): CreateCommand;


    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): CreateCommand.AsObject;
    static toObject(includeInstance: boolean, msg: CreateCommand): CreateCommand.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: CreateCommand, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): CreateCommand;
    static deserializeBinaryFromReader(message: CreateCommand, reader: jspb.BinaryReader): CreateCommand;
}

export namespace CreateCommand {
    export type AsObject = {
        templateId?: com_daml_ledger_api_v1_value_pb.Identifier.AsObject,
        createArguments?: com_daml_ledger_api_v1_value_pb.Record.AsObject,
    }
}

export class ExerciseCommand extends jspb.Message { 

    hasTemplateId(): boolean;
    clearTemplateId(): void;
    getTemplateId(): com_daml_ledger_api_v1_value_pb.Identifier | undefined;
    setTemplateId(value?: com_daml_ledger_api_v1_value_pb.Identifier): ExerciseCommand;

    getContractId(): string;
    setContractId(value: string): ExerciseCommand;

    getChoice(): string;
    setChoice(value: string): ExerciseCommand;


    hasChoiceArgument(): boolean;
    clearChoiceArgument(): void;
    getChoiceArgument(): com_daml_ledger_api_v1_value_pb.Value | undefined;
    setChoiceArgument(value?: com_daml_ledger_api_v1_value_pb.Value): ExerciseCommand;


    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ExerciseCommand.AsObject;
    static toObject(includeInstance: boolean, msg: ExerciseCommand): ExerciseCommand.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ExerciseCommand, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ExerciseCommand;
    static deserializeBinaryFromReader(message: ExerciseCommand, reader: jspb.BinaryReader): ExerciseCommand;
}

export namespace ExerciseCommand {
    export type AsObject = {
        templateId?: com_daml_ledger_api_v1_value_pb.Identifier.AsObject,
        contractId: string,
        choice: string,
        choiceArgument?: com_daml_ledger_api_v1_value_pb.Value.AsObject,
    }
}

export class ExerciseByKeyCommand extends jspb.Message { 

    hasTemplateId(): boolean;
    clearTemplateId(): void;
    getTemplateId(): com_daml_ledger_api_v1_value_pb.Identifier | undefined;
    setTemplateId(value?: com_daml_ledger_api_v1_value_pb.Identifier): ExerciseByKeyCommand;


    hasContractKey(): boolean;
    clearContractKey(): void;
    getContractKey(): com_daml_ledger_api_v1_value_pb.Value | undefined;
    setContractKey(value?: com_daml_ledger_api_v1_value_pb.Value): ExerciseByKeyCommand;

    getChoice(): string;
    setChoice(value: string): ExerciseByKeyCommand;


    hasChoiceArgument(): boolean;
    clearChoiceArgument(): void;
    getChoiceArgument(): com_daml_ledger_api_v1_value_pb.Value | undefined;
    setChoiceArgument(value?: com_daml_ledger_api_v1_value_pb.Value): ExerciseByKeyCommand;


    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ExerciseByKeyCommand.AsObject;
    static toObject(includeInstance: boolean, msg: ExerciseByKeyCommand): ExerciseByKeyCommand.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ExerciseByKeyCommand, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ExerciseByKeyCommand;
    static deserializeBinaryFromReader(message: ExerciseByKeyCommand, reader: jspb.BinaryReader): ExerciseByKeyCommand;
}

export namespace ExerciseByKeyCommand {
    export type AsObject = {
        templateId?: com_daml_ledger_api_v1_value_pb.Identifier.AsObject,
        contractKey?: com_daml_ledger_api_v1_value_pb.Value.AsObject,
        choice: string,
        choiceArgument?: com_daml_ledger_api_v1_value_pb.Value.AsObject,
    }
}

export class CreateAndExerciseCommand extends jspb.Message { 

    hasTemplateId(): boolean;
    clearTemplateId(): void;
    getTemplateId(): com_daml_ledger_api_v1_value_pb.Identifier | undefined;
    setTemplateId(value?: com_daml_ledger_api_v1_value_pb.Identifier): CreateAndExerciseCommand;


    hasCreateArguments(): boolean;
    clearCreateArguments(): void;
    getCreateArguments(): com_daml_ledger_api_v1_value_pb.Record | undefined;
    setCreateArguments(value?: com_daml_ledger_api_v1_value_pb.Record): CreateAndExerciseCommand;

    getChoice(): string;
    setChoice(value: string): CreateAndExerciseCommand;


    hasChoiceArgument(): boolean;
    clearChoiceArgument(): void;
    getChoiceArgument(): com_daml_ledger_api_v1_value_pb.Value | undefined;
    setChoiceArgument(value?: com_daml_ledger_api_v1_value_pb.Value): CreateAndExerciseCommand;


    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): CreateAndExerciseCommand.AsObject;
    static toObject(includeInstance: boolean, msg: CreateAndExerciseCommand): CreateAndExerciseCommand.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: CreateAndExerciseCommand, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): CreateAndExerciseCommand;
    static deserializeBinaryFromReader(message: CreateAndExerciseCommand, reader: jspb.BinaryReader): CreateAndExerciseCommand;
}

export namespace CreateAndExerciseCommand {
    export type AsObject = {
        templateId?: com_daml_ledger_api_v1_value_pb.Identifier.AsObject,
        createArguments?: com_daml_ledger_api_v1_value_pb.Record.AsObject,
        choice: string,
        choiceArgument?: com_daml_ledger_api_v1_value_pb.Value.AsObject,
    }
}
