import type { RpcTransport } from '@protobuf-ts/runtime-rpc';
import type { ServiceInfo } from '@protobuf-ts/runtime-rpc';
import type { DeleteIdentityProviderConfigResponse } from './identity_provider_config_service.js';
import type { DeleteIdentityProviderConfigRequest } from './identity_provider_config_service.js';
import type { ListIdentityProviderConfigsResponse } from './identity_provider_config_service.js';
import type { ListIdentityProviderConfigsRequest } from './identity_provider_config_service.js';
import type { UpdateIdentityProviderConfigResponse } from './identity_provider_config_service.js';
import type { UpdateIdentityProviderConfigRequest } from './identity_provider_config_service.js';
import type { GetIdentityProviderConfigResponse } from './identity_provider_config_service.js';
import type { GetIdentityProviderConfigRequest } from './identity_provider_config_service.js';
import type { CreateIdentityProviderConfigResponse } from './identity_provider_config_service.js';
import type { CreateIdentityProviderConfigRequest } from './identity_provider_config_service.js';
import type { UnaryCall } from '@protobuf-ts/runtime-rpc';
import type { RpcOptions } from '@protobuf-ts/runtime-rpc';
/**
 * Identity Provider Config Service makes it possible for participant node administrators
 * to setup and manage additional identity providers at runtime.
 *
 * This allows using access tokens from identity providers unknown at deployment time. When an identity
 * provider is configured, independent IDP administrators can manage their own set of parties and users.
 * Such parties and users have a matching `identity_provider_id` defined and are inaccessible to
 * administrators from other identity providers. A user will only be authenticated if the corresponding JWT
 * token is issued by the appropriate identity provider.
 * Users and parties without `identity_provider_id` defined are assumed to be using the default identity provider,
 * which is configured statically at the participant node's deployment time.
 *
 * The Ledger API uses the "iss" claim of a JWT token to match the token to a specific IDP. If there is no match,
 * the default IDP is assumed.
 *
 * The fields of request messages (and sub-messages) are marked either as ``Optional`` or ``Required``:
 *
 * 1. ``Optional`` denoting the client may leave the field unset when sending a request.
 * 2. ``Required`` denoting the client must set the field to a non-default value when sending a request.
 *
 * An identity provider config resource is described by the ``IdentityProviderConfig`` message,
 * An identity provider config resource, once it has been created, can be modified.
 * In order to update the properties represented by the ``IdentityProviderConfig`` message use the ``UpdateIdentityProviderConfig`` RPC.
 * The only fields that can be modified are those marked as ``Modifiable``.
 *
 * @generated from protobuf service com.daml.ledger.api.v2.admin.IdentityProviderConfigService
 */
export interface IIdentityProviderConfigServiceClient {
    /**
     * Create a new identity provider configuration.
     * The request will fail if the maximum allowed number of separate configurations is reached.
     *
     * @generated from protobuf rpc: CreateIdentityProviderConfig
     */
    createIdentityProviderConfig(input: CreateIdentityProviderConfigRequest, options?: RpcOptions): UnaryCall<CreateIdentityProviderConfigRequest, CreateIdentityProviderConfigResponse>;
    /**
     * Get the identity provider configuration data by id.
     *
     * @generated from protobuf rpc: GetIdentityProviderConfig
     */
    getIdentityProviderConfig(input: GetIdentityProviderConfigRequest, options?: RpcOptions): UnaryCall<GetIdentityProviderConfigRequest, GetIdentityProviderConfigResponse>;
    /**
     * Update selected modifiable attribute of an identity provider config resource described
     * by the ``IdentityProviderConfig`` message.
     *
     * @generated from protobuf rpc: UpdateIdentityProviderConfig
     */
    updateIdentityProviderConfig(input: UpdateIdentityProviderConfigRequest, options?: RpcOptions): UnaryCall<UpdateIdentityProviderConfigRequest, UpdateIdentityProviderConfigResponse>;
    /**
     * List all existing identity provider configurations.
     *
     * @generated from protobuf rpc: ListIdentityProviderConfigs
     */
    listIdentityProviderConfigs(input: ListIdentityProviderConfigsRequest, options?: RpcOptions): UnaryCall<ListIdentityProviderConfigsRequest, ListIdentityProviderConfigsResponse>;
    /**
     * Delete an existing identity provider configuration.
     *
     * @generated from protobuf rpc: DeleteIdentityProviderConfig
     */
    deleteIdentityProviderConfig(input: DeleteIdentityProviderConfigRequest, options?: RpcOptions): UnaryCall<DeleteIdentityProviderConfigRequest, DeleteIdentityProviderConfigResponse>;
}
/**
 * Identity Provider Config Service makes it possible for participant node administrators
 * to setup and manage additional identity providers at runtime.
 *
 * This allows using access tokens from identity providers unknown at deployment time. When an identity
 * provider is configured, independent IDP administrators can manage their own set of parties and users.
 * Such parties and users have a matching `identity_provider_id` defined and are inaccessible to
 * administrators from other identity providers. A user will only be authenticated if the corresponding JWT
 * token is issued by the appropriate identity provider.
 * Users and parties without `identity_provider_id` defined are assumed to be using the default identity provider,
 * which is configured statically at the participant node's deployment time.
 *
 * The Ledger API uses the "iss" claim of a JWT token to match the token to a specific IDP. If there is no match,
 * the default IDP is assumed.
 *
 * The fields of request messages (and sub-messages) are marked either as ``Optional`` or ``Required``:
 *
 * 1. ``Optional`` denoting the client may leave the field unset when sending a request.
 * 2. ``Required`` denoting the client must set the field to a non-default value when sending a request.
 *
 * An identity provider config resource is described by the ``IdentityProviderConfig`` message,
 * An identity provider config resource, once it has been created, can be modified.
 * In order to update the properties represented by the ``IdentityProviderConfig`` message use the ``UpdateIdentityProviderConfig`` RPC.
 * The only fields that can be modified are those marked as ``Modifiable``.
 *
 * @generated from protobuf service com.daml.ledger.api.v2.admin.IdentityProviderConfigService
 */
export declare class IdentityProviderConfigServiceClient implements IIdentityProviderConfigServiceClient, 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);
    /**
     * Create a new identity provider configuration.
     * The request will fail if the maximum allowed number of separate configurations is reached.
     *
     * @generated from protobuf rpc: CreateIdentityProviderConfig
     */
    createIdentityProviderConfig(input: CreateIdentityProviderConfigRequest, options?: RpcOptions): UnaryCall<CreateIdentityProviderConfigRequest, CreateIdentityProviderConfigResponse>;
    /**
     * Get the identity provider configuration data by id.
     *
     * @generated from protobuf rpc: GetIdentityProviderConfig
     */
    getIdentityProviderConfig(input: GetIdentityProviderConfigRequest, options?: RpcOptions): UnaryCall<GetIdentityProviderConfigRequest, GetIdentityProviderConfigResponse>;
    /**
     * Update selected modifiable attribute of an identity provider config resource described
     * by the ``IdentityProviderConfig`` message.
     *
     * @generated from protobuf rpc: UpdateIdentityProviderConfig
     */
    updateIdentityProviderConfig(input: UpdateIdentityProviderConfigRequest, options?: RpcOptions): UnaryCall<UpdateIdentityProviderConfigRequest, UpdateIdentityProviderConfigResponse>;
    /**
     * List all existing identity provider configurations.
     *
     * @generated from protobuf rpc: ListIdentityProviderConfigs
     */
    listIdentityProviderConfigs(input: ListIdentityProviderConfigsRequest, options?: RpcOptions): UnaryCall<ListIdentityProviderConfigsRequest, ListIdentityProviderConfigsResponse>;
    /**
     * Delete an existing identity provider configuration.
     *
     * @generated from protobuf rpc: DeleteIdentityProviderConfig
     */
    deleteIdentityProviderConfig(input: DeleteIdentityProviderConfigRequest, options?: RpcOptions): UnaryCall<DeleteIdentityProviderConfigRequest, DeleteIdentityProviderConfigResponse>;
}
//# sourceMappingURL=identity_provider_config_service.client.d.ts.map