import type { BinaryWriteOptions } from '@protobuf-ts/runtime';
import type { IBinaryWriter } from '@protobuf-ts/runtime';
import type { BinaryReadOptions } from '@protobuf-ts/runtime';
import type { IBinaryReader } from '@protobuf-ts/runtime';
import type { PartialMessage } from '@protobuf-ts/runtime';
import { MessageType } from '@protobuf-ts/runtime';
/**
 * @generated from protobuf message com.daml.ledger.api.v2.ReassignmentCommands
 */
export interface ReassignmentCommands {
    /**
     * Identifier of the on-ledger workflow that this command is a part of.
     * Must be a valid LedgerString (as described in ``value.proto``).
     * Optional
     *
     * @generated from protobuf field: string workflow_id = 1
     */
    workflowId: string;
    /**
     * Uniquely identifies the participant user that issued the command.
     * Must be a valid UserIdString (as described in ``value.proto``).
     * Required unless authentication is used with a user token.
     * In that case, the token's user-id will be used for the request's user_id.
     *
     * @generated from protobuf field: string user_id = 2
     */
    userId: string;
    /**
     * Uniquely identifies the command.
     * The triple (user_id, submitter, command_id) constitutes the change ID for the intended ledger change.
     * The change ID can be used for matching the intended ledger changes with all their completions.
     * Must be a valid LedgerString (as described in ``value.proto``).
     * Required
     *
     * @generated from protobuf field: string command_id = 3
     */
    commandId: string;
    /**
     * Party on whose behalf the command should be executed.
     * If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
     * to act on behalf of the given party.
     * Must be a valid PartyIdString (as described in ``value.proto``).
     * Required
     *
     * @generated from protobuf field: string submitter = 4
     */
    submitter: string;
    /**
     * A unique identifier to distinguish completions for different submissions with the same change ID.
     * Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
     * with the same change ID.
     * Must be a valid LedgerString (as described in ``value.proto``).
     *
     * If omitted, the participant or the committer may set a value of their choice.
     * Optional
     *
     * @generated from protobuf field: string submission_id = 5
     */
    submissionId: string;
    /**
     * Individual elements of this reassignment. Must be non-empty.
     *
     * @generated from protobuf field: repeated com.daml.ledger.api.v2.ReassignmentCommand commands = 6
     */
    commands: ReassignmentCommand[];
}
/**
 * @generated from protobuf message com.daml.ledger.api.v2.ReassignmentCommand
 */
export interface ReassignmentCommand {
    /**
     * @generated from protobuf oneof: command
     */
    command: {
        oneofKind: 'unassignCommand';
        /**
         * @generated from protobuf field: com.daml.ledger.api.v2.UnassignCommand unassign_command = 1
         */
        unassignCommand: UnassignCommand;
    } | {
        oneofKind: 'assignCommand';
        /**
         * @generated from protobuf field: com.daml.ledger.api.v2.AssignCommand assign_command = 2
         */
        assignCommand: AssignCommand;
    } | {
        oneofKind: undefined;
    };
}
/**
 * Unassign a contract
 *
 * @generated from protobuf message com.daml.ledger.api.v2.UnassignCommand
 */
export interface UnassignCommand {
    /**
     * The ID of the contract the client wants to unassign.
     * Must be a valid LedgerString (as described in ``value.proto``).
     * Required
     *
     * @generated from protobuf field: string contract_id = 1
     */
    contractId: string;
    /**
     * The ID of the source synchronizer
     * Must be a valid synchronizer id
     * Required
     *
     * @generated from protobuf field: string source = 2
     */
    source: string;
    /**
     * The ID of the target synchronizer
     * Must be a valid synchronizer id
     * Required
     *
     * @generated from protobuf field: string target = 3
     */
    target: string;
}
/**
 * Assign a contract
 *
 * @generated from protobuf message com.daml.ledger.api.v2.AssignCommand
 */
export interface AssignCommand {
    /**
     * The ID from the unassigned event to be completed by this assignment.
     * Must be a valid LedgerString (as described in ``value.proto``).
     * Required
     *
     * @generated from protobuf field: string unassign_id = 1
     */
    unassignId: string;
    /**
     * The ID of the source synchronizer
     * Must be a valid synchronizer id
     * Required
     *
     * @generated from protobuf field: string source = 2
     */
    source: string;
    /**
     * The ID of the target synchronizer
     * Must be a valid synchronizer id
     * Required
     *
     * @generated from protobuf field: string target = 3
     */
    target: string;
}
declare class ReassignmentCommands$Type extends MessageType<ReassignmentCommands> {
    constructor();
    create(value?: PartialMessage<ReassignmentCommands>): ReassignmentCommands;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ReassignmentCommands): ReassignmentCommands;
    internalBinaryWrite(message: ReassignmentCommands, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.ReassignmentCommands
 */
export declare const ReassignmentCommands: ReassignmentCommands$Type;
declare class ReassignmentCommand$Type extends MessageType<ReassignmentCommand> {
    constructor();
    create(value?: PartialMessage<ReassignmentCommand>): ReassignmentCommand;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ReassignmentCommand): ReassignmentCommand;
    internalBinaryWrite(message: ReassignmentCommand, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.ReassignmentCommand
 */
export declare const ReassignmentCommand: ReassignmentCommand$Type;
declare class UnassignCommand$Type extends MessageType<UnassignCommand> {
    constructor();
    create(value?: PartialMessage<UnassignCommand>): UnassignCommand;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UnassignCommand): UnassignCommand;
    internalBinaryWrite(message: UnassignCommand, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.UnassignCommand
 */
export declare const UnassignCommand: UnassignCommand$Type;
declare class AssignCommand$Type extends MessageType<AssignCommand> {
    constructor();
    create(value?: PartialMessage<AssignCommand>): AssignCommand;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AssignCommand): AssignCommand;
    internalBinaryWrite(message: AssignCommand, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.AssignCommand
 */
export declare const AssignCommand: AssignCommand$Type;
export {};
//# sourceMappingURL=reassignment_commands.d.ts.map