import type { RpcTransport } from '@protobuf-ts/runtime-rpc';
import type { ServiceInfo } from '@protobuf-ts/runtime-rpc';
import type { CompletionStreamResponse } from './command_completion_service.js';
import type { CompletionStreamRequest } from './command_completion_service.js';
import type { ServerStreamingCall } from '@protobuf-ts/runtime-rpc';
import type { RpcOptions } from '@protobuf-ts/runtime-rpc';
/**
 * Allows clients to observe the status of their submissions.
 * Commands may be submitted via the Command Submission Service.
 * The on-ledger effects of their submissions are disclosed by the Update Service.
 *
 * Commands may fail in 2 distinct manners:
 *
 * 1. Failure communicated synchronously in the gRPC error of the submission.
 * 2. Failure communicated asynchronously in a Completion, see ``completion.proto``.
 *
 * Note that not only successfully submitted commands MAY produce a completion event. For example, the participant MAY
 * choose to produce a completion event for a rejection of a duplicate command.
 *
 * Clients that do not receive a successful completion about their submission MUST NOT assume that it was successful.
 * Clients SHOULD subscribe to the CompletionStream before starting to submit commands to prevent race conditions.
 *
 * @generated from protobuf service com.daml.ledger.api.v2.CommandCompletionService
 */
export interface ICommandCompletionServiceClient {
    /**
     * Subscribe to command completion events.
     *
     * @generated from protobuf rpc: CompletionStream
     */
    completionStream(input: CompletionStreamRequest, options?: RpcOptions): ServerStreamingCall<CompletionStreamRequest, CompletionStreamResponse>;
}
/**
 * Allows clients to observe the status of their submissions.
 * Commands may be submitted via the Command Submission Service.
 * The on-ledger effects of their submissions are disclosed by the Update Service.
 *
 * Commands may fail in 2 distinct manners:
 *
 * 1. Failure communicated synchronously in the gRPC error of the submission.
 * 2. Failure communicated asynchronously in a Completion, see ``completion.proto``.
 *
 * Note that not only successfully submitted commands MAY produce a completion event. For example, the participant MAY
 * choose to produce a completion event for a rejection of a duplicate command.
 *
 * Clients that do not receive a successful completion about their submission MUST NOT assume that it was successful.
 * Clients SHOULD subscribe to the CompletionStream before starting to submit commands to prevent race conditions.
 *
 * @generated from protobuf service com.daml.ledger.api.v2.CommandCompletionService
 */
export declare class CommandCompletionServiceClient implements ICommandCompletionServiceClient, ServiceInfo {
    private readonly _transport;
    typeName: string;
    methods: import("@protobuf-ts/runtime-rpc").MethodInfo<any, any>[];
    options: {
        [extensionName: string]: import("@protobuf-ts/runtime").JsonValue;
    };
    constructor(_transport: RpcTransport);
    /**
     * Subscribe to command completion events.
     *
     * @generated from protobuf rpc: CompletionStream
     */
    completionStream(input: CompletionStreamRequest, options?: RpcOptions): ServerStreamingCall<CompletionStreamRequest, CompletionStreamResponse>;
}
//# sourceMappingURL=command_completion_service.client.d.ts.map