/**
 * Fireblocks API
 * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
 *
 * The version of the OpenAPI document: 1.6.2
 * Contact: developers@fireblocks.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import { RequestArgs, BaseAPI } from '../base';
import { CreateUserGroupResponse } from '../models';
import { UserGroupCreateRequest } from '../models';
import { UserGroupCreateResponse } from '../models';
import { UserGroupResponse } from '../models';
import { UserGroupUpdateRequest } from '../models';
import { UserGroupsResponse } from '../models';
/**
 * UserGroupsBetaApi - axios parameter creator
 * @export
 */
export declare const UserGroupsBetaApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Create a new user group. Users with the Viewer role cannot be added to groups. Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Create user group
     * @param {UserGroupCreateRequest} userGroupCreateRequest
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createUserGroup: (userGroupCreateRequest: UserGroupCreateRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Delete a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Delete user group
     * @param {string} groupId The ID of the user group
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteUserGroup: (groupId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Get user group
     * @param {string} groupId The ID of the user group
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUserGroup: (groupId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get all user groups in your workspace  - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. Endpoint Permission: Admin, Non-Signing Admin.
     * @summary List user groups
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUserGroups: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Update a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Update user group
     * @param {UserGroupUpdateRequest} userGroupUpdateRequest
     * @param {string} groupId The ID of the user group
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateUserGroup: (userGroupUpdateRequest: UserGroupUpdateRequest, groupId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * UserGroupsBetaApi - functional programming interface
 * @export
 */
export declare const UserGroupsBetaApiFp: (configuration?: Configuration) => {
    /**
     * Create a new user group. Users with the Viewer role cannot be added to groups. Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Create user group
     * @param {UserGroupCreateRequest} userGroupCreateRequest
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createUserGroup(userGroupCreateRequest: UserGroupCreateRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateUserGroupResponse>>;
    /**
     * Delete a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Delete user group
     * @param {string} groupId The ID of the user group
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteUserGroup(groupId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Get a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Get user group
     * @param {string} groupId The ID of the user group
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUserGroup(groupId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserGroupResponse>>;
    /**
     * Get all user groups in your workspace  - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. Endpoint Permission: Admin, Non-Signing Admin.
     * @summary List user groups
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUserGroups(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserGroupsResponse>>;
    /**
     * Update a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Update user group
     * @param {UserGroupUpdateRequest} userGroupUpdateRequest
     * @param {string} groupId The ID of the user group
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateUserGroup(userGroupUpdateRequest: UserGroupUpdateRequest, groupId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserGroupCreateResponse>>;
};
/**
 * UserGroupsBetaApi - factory interface
 * @export
 */
export declare const UserGroupsBetaApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Create a new user group. Users with the Viewer role cannot be added to groups. Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Create user group
     * @param {UserGroupsBetaApiCreateUserGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createUserGroup(requestParameters: UserGroupsBetaApiCreateUserGroupRequest, options?: RawAxiosRequestConfig): AxiosPromise<CreateUserGroupResponse>;
    /**
     * Delete a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Delete user group
     * @param {UserGroupsBetaApiDeleteUserGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteUserGroup(requestParameters: UserGroupsBetaApiDeleteUserGroupRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Get a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Get user group
     * @param {UserGroupsBetaApiGetUserGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUserGroup(requestParameters: UserGroupsBetaApiGetUserGroupRequest, options?: RawAxiosRequestConfig): AxiosPromise<UserGroupResponse>;
    /**
     * Get all user groups in your workspace  - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. Endpoint Permission: Admin, Non-Signing Admin.
     * @summary List user groups
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUserGroups(options?: RawAxiosRequestConfig): AxiosPromise<UserGroupsResponse>;
    /**
     * Update a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Update user group
     * @param {UserGroupsBetaApiUpdateUserGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateUserGroup(requestParameters: UserGroupsBetaApiUpdateUserGroupRequest, options?: RawAxiosRequestConfig): AxiosPromise<UserGroupCreateResponse>;
};
/**
 * Request parameters for createUserGroup operation in UserGroupsBetaApi.
 * @export
 * @interface UserGroupsBetaApiCreateUserGroupRequest
 */
export interface UserGroupsBetaApiCreateUserGroupRequest {
    /**
     *
     * @type {UserGroupCreateRequest}
     * @memberof UserGroupsBetaApiCreateUserGroup
     */
    readonly userGroupCreateRequest: UserGroupCreateRequest;
    /**
     * A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @type {string}
     * @memberof UserGroupsBetaApiCreateUserGroup
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for deleteUserGroup operation in UserGroupsBetaApi.
 * @export
 * @interface UserGroupsBetaApiDeleteUserGroupRequest
 */
export interface UserGroupsBetaApiDeleteUserGroupRequest {
    /**
     * The ID of the user group
     * @type {string}
     * @memberof UserGroupsBetaApiDeleteUserGroup
     */
    readonly groupId: string;
}
/**
 * Request parameters for getUserGroup operation in UserGroupsBetaApi.
 * @export
 * @interface UserGroupsBetaApiGetUserGroupRequest
 */
export interface UserGroupsBetaApiGetUserGroupRequest {
    /**
     * The ID of the user group
     * @type {string}
     * @memberof UserGroupsBetaApiGetUserGroup
     */
    readonly groupId: string;
}
/**
 * Request parameters for updateUserGroup operation in UserGroupsBetaApi.
 * @export
 * @interface UserGroupsBetaApiUpdateUserGroupRequest
 */
export interface UserGroupsBetaApiUpdateUserGroupRequest {
    /**
     *
     * @type {UserGroupUpdateRequest}
     * @memberof UserGroupsBetaApiUpdateUserGroup
     */
    readonly userGroupUpdateRequest: UserGroupUpdateRequest;
    /**
     * The ID of the user group
     * @type {string}
     * @memberof UserGroupsBetaApiUpdateUserGroup
     */
    readonly groupId: string;
    /**
     * A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @type {string}
     * @memberof UserGroupsBetaApiUpdateUserGroup
     */
    readonly idempotencyKey?: string;
}
/**
 * UserGroupsBetaApi - object-oriented interface
 * @export
 * @class UserGroupsBetaApi
 * @extends {BaseAPI}
 */
export declare class UserGroupsBetaApi extends BaseAPI {
    /**
     * Create a new user group. Users with the Viewer role cannot be added to groups. Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Create user group
     * @param {UserGroupsBetaApiCreateUserGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserGroupsBetaApi
     */
    createUserGroup(requestParameters: UserGroupsBetaApiCreateUserGroupRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<CreateUserGroupResponse>>;
    /**
     * Delete a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Delete user group
     * @param {UserGroupsBetaApiDeleteUserGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserGroupsBetaApi
     */
    deleteUserGroup(requestParameters: UserGroupsBetaApiDeleteUserGroupRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
    /**
     * Get a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Get user group
     * @param {UserGroupsBetaApiGetUserGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserGroupsBetaApi
     */
    getUserGroup(requestParameters: UserGroupsBetaApiGetUserGroupRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<UserGroupResponse>>;
    /**
     * Get all user groups in your workspace  - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. Endpoint Permission: Admin, Non-Signing Admin.
     * @summary List user groups
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserGroupsBetaApi
     */
    getUserGroups(): Promise<import("../response/fireblocksResponse").FireblocksResponse<UserGroupsResponse>>;
    /**
     * Update a user group by ID.  **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions.
     * @summary Update user group
     * @param {UserGroupsBetaApiUpdateUserGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserGroupsBetaApi
     */
    updateUserGroup(requestParameters: UserGroupsBetaApiUpdateUserGroupRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<UserGroupCreateResponse>>;
}
