import type { RpcTransport } from '@protobuf-ts/runtime-rpc';
import type { ServiceInfo } from '@protobuf-ts/runtime-rpc';
import type { UpdateUserIdentityProviderIdResponse } from './user_management_service.js';
import type { UpdateUserIdentityProviderIdRequest } from './user_management_service.js';
import type { ListUserRightsResponse } from './user_management_service.js';
import type { ListUserRightsRequest } from './user_management_service.js';
import type { RevokeUserRightsResponse } from './user_management_service.js';
import type { RevokeUserRightsRequest } from './user_management_service.js';
import type { GrantUserRightsResponse } from './user_management_service.js';
import type { GrantUserRightsRequest } from './user_management_service.js';
import type { ListUsersResponse } from './user_management_service.js';
import type { ListUsersRequest } from './user_management_service.js';
import type { DeleteUserResponse } from './user_management_service.js';
import type { DeleteUserRequest } from './user_management_service.js';
import type { UpdateUserResponse } from './user_management_service.js';
import type { UpdateUserRequest } from './user_management_service.js';
import type { GetUserResponse } from './user_management_service.js';
import type { GetUserRequest } from './user_management_service.js';
import type { CreateUserResponse } from './user_management_service.js';
import type { CreateUserRequest } from './user_management_service.js';
import type { UnaryCall } from '@protobuf-ts/runtime-rpc';
import type { RpcOptions } from '@protobuf-ts/runtime-rpc';
/**
 * Service to manage users and their rights for interacting with the Ledger API
 * served by a participant node.
 *
 * The authorization rules for its RPCs are specified on the ``<RpcName>Request``
 * messages as boolean expressions over these facts:
 *
 * 1. ``HasRight(r)`` denoting whether the authenticated user has right ``r`` and
 * 2. ``IsAuthenticatedUser(uid)`` denoting whether ``uid`` is the empty string or equal to the id of the authenticated user.
 * 3. ``IsAuthenticatedIdentityProviderAdmin(idp)`` denoting whether ``idp`` is equal to the ``identity_provider_id``
 *    of the authenticated user and the user has an IdentityProviderAdmin right.
 *
 * If `user_id` is set to the empty string (the default), then the data for the authenticated user will be retrieved.
 * If `identity_provider_id` is set to an empty string, then it's effectively set to the value of access token's 'iss' field if that is provided.
 * If `identity_provider_id` remains an empty string, the default identity provider will be 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.
 *
 * A user resource consists of:
 *
 * 1. a set of properties represented by the ``User`` message,
 * 2. a set of user rights, where each right is represented by the ``Right`` message.
 *
 * A user resource, once it has been created, can be modified.
 * In order to update the properties represented by the ``User`` message use the ``UpdateUser`` RPC. The only fields that can be modified are those marked as ``Modifiable``.
 * In order to grant or revoke user rights use ``GrantRights' and ``RevokeRights`` RPCs.
 *
 * @generated from protobuf service com.daml.ledger.api.v2.admin.UserManagementService
 */
export interface IUserManagementServiceClient {
    /**
     * Create a new user.
     *
     * @generated from protobuf rpc: CreateUser
     */
    createUser(input: CreateUserRequest, options?: RpcOptions): UnaryCall<CreateUserRequest, CreateUserResponse>;
    /**
     * Get the user data of a specific user or the authenticated user.
     *
     * @generated from protobuf rpc: GetUser
     */
    getUser(input: GetUserRequest, options?: RpcOptions): UnaryCall<GetUserRequest, GetUserResponse>;
    /**
     * Update selected modifiable attribute of a user resource described by the ``User`` message.
     *
     * @generated from protobuf rpc: UpdateUser
     */
    updateUser(input: UpdateUserRequest, options?: RpcOptions): UnaryCall<UpdateUserRequest, UpdateUserResponse>;
    /**
     * Delete an existing user and all its rights.
     *
     * @generated from protobuf rpc: DeleteUser
     */
    deleteUser(input: DeleteUserRequest, options?: RpcOptions): UnaryCall<DeleteUserRequest, DeleteUserResponse>;
    /**
     * List all existing users.
     *
     * @generated from protobuf rpc: ListUsers
     */
    listUsers(input: ListUsersRequest, options?: RpcOptions): UnaryCall<ListUsersRequest, ListUsersResponse>;
    /**
     * Grant rights to a user.
     * Granting rights does not affect the resource version of the corresponding user.
     *
     * @generated from protobuf rpc: GrantUserRights
     */
    grantUserRights(input: GrantUserRightsRequest, options?: RpcOptions): UnaryCall<GrantUserRightsRequest, GrantUserRightsResponse>;
    /**
     * Revoke rights from a user.
     * Revoking rights does not affect the resource version of the corresponding user.
     *
     * @generated from protobuf rpc: RevokeUserRights
     */
    revokeUserRights(input: RevokeUserRightsRequest, options?: RpcOptions): UnaryCall<RevokeUserRightsRequest, RevokeUserRightsResponse>;
    /**
     * List the set of all rights granted to a user.
     *
     * @generated from protobuf rpc: ListUserRights
     */
    listUserRights(input: ListUserRightsRequest, options?: RpcOptions): UnaryCall<ListUserRightsRequest, ListUserRightsResponse>;
    /**
     * Update the assignment of a user from one IDP to another.
     *
     * @generated from protobuf rpc: UpdateUserIdentityProviderId
     */
    updateUserIdentityProviderId(input: UpdateUserIdentityProviderIdRequest, options?: RpcOptions): UnaryCall<UpdateUserIdentityProviderIdRequest, UpdateUserIdentityProviderIdResponse>;
}
/**
 * Service to manage users and their rights for interacting with the Ledger API
 * served by a participant node.
 *
 * The authorization rules for its RPCs are specified on the ``<RpcName>Request``
 * messages as boolean expressions over these facts:
 *
 * 1. ``HasRight(r)`` denoting whether the authenticated user has right ``r`` and
 * 2. ``IsAuthenticatedUser(uid)`` denoting whether ``uid`` is the empty string or equal to the id of the authenticated user.
 * 3. ``IsAuthenticatedIdentityProviderAdmin(idp)`` denoting whether ``idp`` is equal to the ``identity_provider_id``
 *    of the authenticated user and the user has an IdentityProviderAdmin right.
 *
 * If `user_id` is set to the empty string (the default), then the data for the authenticated user will be retrieved.
 * If `identity_provider_id` is set to an empty string, then it's effectively set to the value of access token's 'iss' field if that is provided.
 * If `identity_provider_id` remains an empty string, the default identity provider will be 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.
 *
 * A user resource consists of:
 *
 * 1. a set of properties represented by the ``User`` message,
 * 2. a set of user rights, where each right is represented by the ``Right`` message.
 *
 * A user resource, once it has been created, can be modified.
 * In order to update the properties represented by the ``User`` message use the ``UpdateUser`` RPC. The only fields that can be modified are those marked as ``Modifiable``.
 * In order to grant or revoke user rights use ``GrantRights' and ``RevokeRights`` RPCs.
 *
 * @generated from protobuf service com.daml.ledger.api.v2.admin.UserManagementService
 */
export declare class UserManagementServiceClient implements IUserManagementServiceClient, 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 user.
     *
     * @generated from protobuf rpc: CreateUser
     */
    createUser(input: CreateUserRequest, options?: RpcOptions): UnaryCall<CreateUserRequest, CreateUserResponse>;
    /**
     * Get the user data of a specific user or the authenticated user.
     *
     * @generated from protobuf rpc: GetUser
     */
    getUser(input: GetUserRequest, options?: RpcOptions): UnaryCall<GetUserRequest, GetUserResponse>;
    /**
     * Update selected modifiable attribute of a user resource described by the ``User`` message.
     *
     * @generated from protobuf rpc: UpdateUser
     */
    updateUser(input: UpdateUserRequest, options?: RpcOptions): UnaryCall<UpdateUserRequest, UpdateUserResponse>;
    /**
     * Delete an existing user and all its rights.
     *
     * @generated from protobuf rpc: DeleteUser
     */
    deleteUser(input: DeleteUserRequest, options?: RpcOptions): UnaryCall<DeleteUserRequest, DeleteUserResponse>;
    /**
     * List all existing users.
     *
     * @generated from protobuf rpc: ListUsers
     */
    listUsers(input: ListUsersRequest, options?: RpcOptions): UnaryCall<ListUsersRequest, ListUsersResponse>;
    /**
     * Grant rights to a user.
     * Granting rights does not affect the resource version of the corresponding user.
     *
     * @generated from protobuf rpc: GrantUserRights
     */
    grantUserRights(input: GrantUserRightsRequest, options?: RpcOptions): UnaryCall<GrantUserRightsRequest, GrantUserRightsResponse>;
    /**
     * Revoke rights from a user.
     * Revoking rights does not affect the resource version of the corresponding user.
     *
     * @generated from protobuf rpc: RevokeUserRights
     */
    revokeUserRights(input: RevokeUserRightsRequest, options?: RpcOptions): UnaryCall<RevokeUserRightsRequest, RevokeUserRightsResponse>;
    /**
     * List the set of all rights granted to a user.
     *
     * @generated from protobuf rpc: ListUserRights
     */
    listUserRights(input: ListUserRightsRequest, options?: RpcOptions): UnaryCall<ListUserRightsRequest, ListUserRightsResponse>;
    /**
     * Update the assignment of a user from one IDP to another.
     *
     * @generated from protobuf rpc: UpdateUserIdentityProviderId
     */
    updateUserIdentityProviderId(input: UpdateUserIdentityProviderIdRequest, options?: RpcOptions): UnaryCall<UpdateUserIdentityProviderIdRequest, UpdateUserIdentityProviderIdResponse>;
}
//# sourceMappingURL=user_management_service.client.d.ts.map