import type { RpcTransport } from '@protobuf-ts/runtime-rpc';
import type { ServiceInfo } from '@protobuf-ts/runtime-rpc';
import type { GetPreferredPackagesResponse } from './interactive_submission_service.js';
import type { GetPreferredPackagesRequest } from './interactive_submission_service.js';
import type { GetPreferredPackageVersionResponse } from './interactive_submission_service.js';
import type { GetPreferredPackageVersionRequest } from './interactive_submission_service.js';
import type { ExecuteSubmissionResponse } from './interactive_submission_service.js';
import type { ExecuteSubmissionRequest } from './interactive_submission_service.js';
import type { PrepareSubmissionResponse } from './interactive_submission_service.js';
import type { PrepareSubmissionRequest } from './interactive_submission_service.js';
import type { UnaryCall } from '@protobuf-ts/runtime-rpc';
import type { RpcOptions } from '@protobuf-ts/runtime-rpc';
/**
 * Service allowing interactive construction of command submissions
 *
 * The prepare and execute endpoints allow to submit commands in 2-steps:
 *
 * 1. prepare transaction from commands,
 * 2. submit the prepared transaction
 *
 * This gives callers the ability to sign the daml transaction with their own signing keys
 *
 * @generated from protobuf service com.daml.ledger.api.v2.interactive.InteractiveSubmissionService
 */
export interface IInteractiveSubmissionServiceClient {
    /**
     * Requires `readAs` scope for the submitting party when LAPI User authorization is enabled
     *
     * @generated from protobuf rpc: PrepareSubmission
     */
    prepareSubmission(input: PrepareSubmissionRequest, options?: RpcOptions): UnaryCall<PrepareSubmissionRequest, PrepareSubmissionResponse>;
    /**
     * @generated from protobuf rpc: ExecuteSubmission
     */
    executeSubmission(input: ExecuteSubmissionRequest, options?: RpcOptions): UnaryCall<ExecuteSubmissionRequest, ExecuteSubmissionResponse>;
    /**
     * A preferred package is the highest-versioned package for a provided package-name
     * that is vetted by all the participants hosting the provided parties.
     *
     * Ledger API clients should use this endpoint for constructing command submissions
     * that are compatible with the provided preferred package, by making informed decisions on:
     * - which are the compatible packages that can be used to create contracts
     * - which contract or exercise choice argument version can be used in the command
     * - which choices can be executed on a template or interface of a contract
     *
     * Can be accessed by any Ledger API client with a valid token when Ledger API authorization is enabled.
     *
     * Provided for backwards compatibility, it will be removed in the Canton version 3.4.0
     *
     * @generated from protobuf rpc: GetPreferredPackageVersion
     */
    getPreferredPackageVersion(input: GetPreferredPackageVersionRequest, options?: RpcOptions): UnaryCall<GetPreferredPackageVersionRequest, GetPreferredPackageVersionResponse>;
    /**
     * Compute the preferred packages for the vetting requirements in the request.
     * A preferred package is the highest-versioned package for a provided package-name
     * that is vetted by all the participants hosting the provided parties.
     *
     * Ledger API clients should use this endpoint for constructing command submissions
     * that are compatible with the provided preferred packages, by making informed decisions on:
     * - which are the compatible packages that can be used to create contracts
     * - which contract or exercise choice argument version can be used in the command
     * - which choices can be executed on a template or interface of a contract
     *
     * If the package preferences could not be computed due to no selection satisfying the requirements,
     * a `FAILED_PRECONDITION` error will be returned.
     *
     * Can be accessed by any Ledger API client with a valid token when Ledger API authorization is enabled.
     *
     * Experimental API: this endpoint is not guaranteed to provide backwards compatibility in future releases
     *
     * @generated from protobuf rpc: GetPreferredPackages
     */
    getPreferredPackages(input: GetPreferredPackagesRequest, options?: RpcOptions): UnaryCall<GetPreferredPackagesRequest, GetPreferredPackagesResponse>;
}
/**
 * Service allowing interactive construction of command submissions
 *
 * The prepare and execute endpoints allow to submit commands in 2-steps:
 *
 * 1. prepare transaction from commands,
 * 2. submit the prepared transaction
 *
 * This gives callers the ability to sign the daml transaction with their own signing keys
 *
 * @generated from protobuf service com.daml.ledger.api.v2.interactive.InteractiveSubmissionService
 */
export declare class InteractiveSubmissionServiceClient implements IInteractiveSubmissionServiceClient, 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);
    /**
     * Requires `readAs` scope for the submitting party when LAPI User authorization is enabled
     *
     * @generated from protobuf rpc: PrepareSubmission
     */
    prepareSubmission(input: PrepareSubmissionRequest, options?: RpcOptions): UnaryCall<PrepareSubmissionRequest, PrepareSubmissionResponse>;
    /**
     * @generated from protobuf rpc: ExecuteSubmission
     */
    executeSubmission(input: ExecuteSubmissionRequest, options?: RpcOptions): UnaryCall<ExecuteSubmissionRequest, ExecuteSubmissionResponse>;
    /**
     * A preferred package is the highest-versioned package for a provided package-name
     * that is vetted by all the participants hosting the provided parties.
     *
     * Ledger API clients should use this endpoint for constructing command submissions
     * that are compatible with the provided preferred package, by making informed decisions on:
     * - which are the compatible packages that can be used to create contracts
     * - which contract or exercise choice argument version can be used in the command
     * - which choices can be executed on a template or interface of a contract
     *
     * Can be accessed by any Ledger API client with a valid token when Ledger API authorization is enabled.
     *
     * Provided for backwards compatibility, it will be removed in the Canton version 3.4.0
     *
     * @generated from protobuf rpc: GetPreferredPackageVersion
     */
    getPreferredPackageVersion(input: GetPreferredPackageVersionRequest, options?: RpcOptions): UnaryCall<GetPreferredPackageVersionRequest, GetPreferredPackageVersionResponse>;
    /**
     * Compute the preferred packages for the vetting requirements in the request.
     * A preferred package is the highest-versioned package for a provided package-name
     * that is vetted by all the participants hosting the provided parties.
     *
     * Ledger API clients should use this endpoint for constructing command submissions
     * that are compatible with the provided preferred packages, by making informed decisions on:
     * - which are the compatible packages that can be used to create contracts
     * - which contract or exercise choice argument version can be used in the command
     * - which choices can be executed on a template or interface of a contract
     *
     * If the package preferences could not be computed due to no selection satisfying the requirements,
     * a `FAILED_PRECONDITION` error will be returned.
     *
     * Can be accessed by any Ledger API client with a valid token when Ledger API authorization is enabled.
     *
     * Experimental API: this endpoint is not guaranteed to provide backwards compatibility in future releases
     *
     * @generated from protobuf rpc: GetPreferredPackages
     */
    getPreferredPackages(input: GetPreferredPackagesRequest, options?: RpcOptions): UnaryCall<GetPreferredPackagesRequest, GetPreferredPackagesResponse>;
}
//# sourceMappingURL=interactive_submission_service.client.d.ts.map