/** @packageDocumentation
 * @module AccessControlClient
 */
import type { AccessToken } from "@itwin/core-bentley";
import type { AccessControlAPIResponse, Group, GroupUpdate, IGroupsClient } from "../accessControlTypes";
import { BaseClient } from "./BaseClient";
export declare class GroupsClient extends BaseClient implements IGroupsClient {
    constructor(url?: string);
    /** Retrieves a list of available user roles that are defined for a specified iTwin
      * @param accessToken The client access token string
      * @param iTwinId The id of the iTwin
      * @returns Group[]
      */
    getITwinGroupsAsync(accessToken: AccessToken, iTwinId: string): Promise<AccessControlAPIResponse<Group[]>>;
    /** Retrieves the specified role for the specified iTwin
      * @param accessToken The client access token string
      * @param iTwinId The id of the iTwin
      * @returns Group
      */
    getITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<Group>>;
    /** Creates a new iTwin group
      * @param accessToken The client access token string
      * @param iTwinId The id of the iTwin
      * @param group The group to be created
      * @returns Group
      */
    createITwinGroupAsync(accessToken: AccessToken, iTwinId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
    /** Delete the specified iTwin group
      * @param accessToken The client access token string
      * @param iTwinId The id of the iTwin
      * @param groupId The id of the group to remove
      * @returns No Content
      */
    deleteITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<undefined>>;
    /** Update the specified iTwin group
      * @param accessToken The client access token string
      * @param iTwinId The id of the iTwin
      * @param groupId The id of the role to update
      * @param group The updated group
      * @returns Role
      */
    updateITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string, group: GroupUpdate): Promise<AccessControlAPIResponse<Group>>;
}
//# sourceMappingURL=GroupsClient.d.ts.map