/**
 * Admin API
 * The Admin API is used to manage the ApeCloud platform.
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: support@apecloud.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 { type RequestArgs, BaseAPI } from '../base';
import type { PermissionList } from '../models';
import type { Role } from '../models';
import type { RoleCreate } from '../models';
import type { RoleList } from '../models';
import type { RoleUpdate } from '../models';
/**
 * RoleApi - axios parameter creator
 * @export
 */
export declare const RoleApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Batch add permissions to a role
     * @summary Batch add permissions to a role
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {Array<string>} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    batchAddRolePermissions: (orgName: string, roleName: string, requestBody: Array<string>, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Batch remove permissions from a role
     * @summary Batch remove permissions from a role
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {Array<string>} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    batchRemoveRolePermissions: (orgName: string, roleName: string, requestBody: Array<string>, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Create role
     * @summary Create role
     * @param {string} orgName name of the Org
     * @param {RoleCreate} roleCreate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRole: (orgName: string, roleCreate: RoleCreate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Delete role by name
     * @summary Delete role by name
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRoleByName: (orgName: string, roleName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get role by name
     * @summary Get role by name
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRoleByName: (orgName: string, roleName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * List all permissions
     * @summary List all permissions
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listPermissions: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * List permissions of a role
     * @summary List permissions of a role
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRolePermissions: (orgName: string, roleName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * List roles of a organization
     * @summary List roles of a organization
     * @param {string} orgName name of the Org
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRoles: (orgName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Update role by name
     * @summary Update role by name
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {RoleUpdate} roleUpdate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRoleByName: (orgName: string, roleName: string, roleUpdate: RoleUpdate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * RoleApi - functional programming interface
 * @export
 */
export declare const RoleApiFp: (configuration?: Configuration) => {
    /**
     * Batch add permissions to a role
     * @summary Batch add permissions to a role
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {Array<string>} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    batchAddRolePermissions(orgName: string, roleName: string, requestBody: Array<string>, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Batch remove permissions from a role
     * @summary Batch remove permissions from a role
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {Array<string>} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    batchRemoveRolePermissions(orgName: string, roleName: string, requestBody: Array<string>, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Create role
     * @summary Create role
     * @param {string} orgName name of the Org
     * @param {RoleCreate} roleCreate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRole(orgName: string, roleCreate: RoleCreate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Role>>;
    /**
     * Delete role by name
     * @summary Delete role by name
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRoleByName(orgName: string, roleName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Get role by name
     * @summary Get role by name
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRoleByName(orgName: string, roleName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Role>>;
    /**
     * List all permissions
     * @summary List all permissions
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listPermissions(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PermissionList>>;
    /**
     * List permissions of a role
     * @summary List permissions of a role
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRolePermissions(orgName: string, roleName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PermissionList>>;
    /**
     * List roles of a organization
     * @summary List roles of a organization
     * @param {string} orgName name of the Org
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRoles(orgName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RoleList>>;
    /**
     * Update role by name
     * @summary Update role by name
     * @param {string} orgName name of the Org
     * @param {string} roleName
     * @param {RoleUpdate} roleUpdate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRoleByName(orgName: string, roleName: string, roleUpdate: RoleUpdate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Role>>;
};
/**
 * RoleApi - factory interface
 * @export
 */
export declare const RoleApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Batch add permissions to a role
     * @summary Batch add permissions to a role
     * @param {RoleApiBatchAddRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    batchAddRolePermissions(requestParameters: RoleApiBatchAddRolePermissionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Batch remove permissions from a role
     * @summary Batch remove permissions from a role
     * @param {RoleApiBatchRemoveRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    batchRemoveRolePermissions(requestParameters: RoleApiBatchRemoveRolePermissionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Create role
     * @summary Create role
     * @param {RoleApiCreateRoleRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRole(requestParameters: RoleApiCreateRoleRequest, options?: RawAxiosRequestConfig): AxiosPromise<Role>;
    /**
     * Delete role by name
     * @summary Delete role by name
     * @param {RoleApiDeleteRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRoleByName(requestParameters: RoleApiDeleteRoleByNameRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Get role by name
     * @summary Get role by name
     * @param {RoleApiGetRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRoleByName(requestParameters: RoleApiGetRoleByNameRequest, options?: RawAxiosRequestConfig): AxiosPromise<Role>;
    /**
     * List all permissions
     * @summary List all permissions
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listPermissions(options?: RawAxiosRequestConfig): AxiosPromise<PermissionList>;
    /**
     * List permissions of a role
     * @summary List permissions of a role
     * @param {RoleApiListRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRolePermissions(requestParameters: RoleApiListRolePermissionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<PermissionList>;
    /**
     * List roles of a organization
     * @summary List roles of a organization
     * @param {RoleApiListRolesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRoles(requestParameters: RoleApiListRolesRequest, options?: RawAxiosRequestConfig): AxiosPromise<RoleList>;
    /**
     * Update role by name
     * @summary Update role by name
     * @param {RoleApiUpdateRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRoleByName(requestParameters: RoleApiUpdateRoleByNameRequest, options?: RawAxiosRequestConfig): AxiosPromise<Role>;
};
/**
 * RoleApi - interface
 * @export
 * @interface RoleApi
 */
export interface RoleApiInterface {
    /**
     * Batch add permissions to a role
     * @summary Batch add permissions to a role
     * @param {RoleApiBatchAddRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    batchAddRolePermissions(requestParameters: RoleApiBatchAddRolePermissionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Batch remove permissions from a role
     * @summary Batch remove permissions from a role
     * @param {RoleApiBatchRemoveRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    batchRemoveRolePermissions(requestParameters: RoleApiBatchRemoveRolePermissionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Create role
     * @summary Create role
     * @param {RoleApiCreateRoleRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    createRole(requestParameters: RoleApiCreateRoleRequest, options?: RawAxiosRequestConfig): AxiosPromise<Role>;
    /**
     * Delete role by name
     * @summary Delete role by name
     * @param {RoleApiDeleteRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    deleteRoleByName(requestParameters: RoleApiDeleteRoleByNameRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Get role by name
     * @summary Get role by name
     * @param {RoleApiGetRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    getRoleByName(requestParameters: RoleApiGetRoleByNameRequest, options?: RawAxiosRequestConfig): AxiosPromise<Role>;
    /**
     * List all permissions
     * @summary List all permissions
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    listPermissions(options?: RawAxiosRequestConfig): AxiosPromise<PermissionList>;
    /**
     * List permissions of a role
     * @summary List permissions of a role
     * @param {RoleApiListRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    listRolePermissions(requestParameters: RoleApiListRolePermissionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<PermissionList>;
    /**
     * List roles of a organization
     * @summary List roles of a organization
     * @param {RoleApiListRolesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    listRoles(requestParameters: RoleApiListRolesRequest, options?: RawAxiosRequestConfig): AxiosPromise<RoleList>;
    /**
     * Update role by name
     * @summary Update role by name
     * @param {RoleApiUpdateRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApiInterface
     */
    updateRoleByName(requestParameters: RoleApiUpdateRoleByNameRequest, options?: RawAxiosRequestConfig): AxiosPromise<Role>;
}
/**
 * Request parameters for batchAddRolePermissions operation in RoleApi.
 * @export
 * @interface RoleApiBatchAddRolePermissionsRequest
 */
export interface RoleApiBatchAddRolePermissionsRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RoleApiBatchAddRolePermissions
     */
    readonly orgName: string;
    /**
     *
     * @type {string}
     * @memberof RoleApiBatchAddRolePermissions
     */
    readonly roleName: string;
    /**
     *
     * @type {Array<string>}
     * @memberof RoleApiBatchAddRolePermissions
     */
    readonly requestBody: Array<string>;
}
/**
 * Request parameters for batchRemoveRolePermissions operation in RoleApi.
 * @export
 * @interface RoleApiBatchRemoveRolePermissionsRequest
 */
export interface RoleApiBatchRemoveRolePermissionsRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RoleApiBatchRemoveRolePermissions
     */
    readonly orgName: string;
    /**
     *
     * @type {string}
     * @memberof RoleApiBatchRemoveRolePermissions
     */
    readonly roleName: string;
    /**
     *
     * @type {Array<string>}
     * @memberof RoleApiBatchRemoveRolePermissions
     */
    readonly requestBody: Array<string>;
}
/**
 * Request parameters for createRole operation in RoleApi.
 * @export
 * @interface RoleApiCreateRoleRequest
 */
export interface RoleApiCreateRoleRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RoleApiCreateRole
     */
    readonly orgName: string;
    /**
     *
     * @type {RoleCreate}
     * @memberof RoleApiCreateRole
     */
    readonly roleCreate: RoleCreate;
}
/**
 * Request parameters for deleteRoleByName operation in RoleApi.
 * @export
 * @interface RoleApiDeleteRoleByNameRequest
 */
export interface RoleApiDeleteRoleByNameRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RoleApiDeleteRoleByName
     */
    readonly orgName: string;
    /**
     *
     * @type {string}
     * @memberof RoleApiDeleteRoleByName
     */
    readonly roleName: string;
}
/**
 * Request parameters for getRoleByName operation in RoleApi.
 * @export
 * @interface RoleApiGetRoleByNameRequest
 */
export interface RoleApiGetRoleByNameRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RoleApiGetRoleByName
     */
    readonly orgName: string;
    /**
     *
     * @type {string}
     * @memberof RoleApiGetRoleByName
     */
    readonly roleName: string;
}
/**
 * Request parameters for listRolePermissions operation in RoleApi.
 * @export
 * @interface RoleApiListRolePermissionsRequest
 */
export interface RoleApiListRolePermissionsRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RoleApiListRolePermissions
     */
    readonly orgName: string;
    /**
     *
     * @type {string}
     * @memberof RoleApiListRolePermissions
     */
    readonly roleName: string;
}
/**
 * Request parameters for listRoles operation in RoleApi.
 * @export
 * @interface RoleApiListRolesRequest
 */
export interface RoleApiListRolesRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RoleApiListRoles
     */
    readonly orgName: string;
}
/**
 * Request parameters for updateRoleByName operation in RoleApi.
 * @export
 * @interface RoleApiUpdateRoleByNameRequest
 */
export interface RoleApiUpdateRoleByNameRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RoleApiUpdateRoleByName
     */
    readonly orgName: string;
    /**
     *
     * @type {string}
     * @memberof RoleApiUpdateRoleByName
     */
    readonly roleName: string;
    /**
     *
     * @type {RoleUpdate}
     * @memberof RoleApiUpdateRoleByName
     */
    readonly roleUpdate: RoleUpdate;
}
/**
 * RoleApi - object-oriented interface
 * @export
 * @class RoleApi
 * @extends {BaseAPI}
 */
export declare class RoleApi extends BaseAPI implements RoleApiInterface {
    /**
     * Batch add permissions to a role
     * @summary Batch add permissions to a role
     * @param {RoleApiBatchAddRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    batchAddRolePermissions(requestParameters: RoleApiBatchAddRolePermissionsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * Batch remove permissions from a role
     * @summary Batch remove permissions from a role
     * @param {RoleApiBatchRemoveRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    batchRemoveRolePermissions(requestParameters: RoleApiBatchRemoveRolePermissionsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * Create role
     * @summary Create role
     * @param {RoleApiCreateRoleRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    createRole(requestParameters: RoleApiCreateRoleRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Role, any, {}>>;
    /**
     * Delete role by name
     * @summary Delete role by name
     * @param {RoleApiDeleteRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    deleteRoleByName(requestParameters: RoleApiDeleteRoleByNameRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * Get role by name
     * @summary Get role by name
     * @param {RoleApiGetRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    getRoleByName(requestParameters: RoleApiGetRoleByNameRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Role, any, {}>>;
    /**
     * List all permissions
     * @summary List all permissions
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    listPermissions(options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<PermissionList, any, {}>>;
    /**
     * List permissions of a role
     * @summary List permissions of a role
     * @param {RoleApiListRolePermissionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    listRolePermissions(requestParameters: RoleApiListRolePermissionsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<PermissionList, any, {}>>;
    /**
     * List roles of a organization
     * @summary List roles of a organization
     * @param {RoleApiListRolesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    listRoles(requestParameters: RoleApiListRolesRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<RoleList, any, {}>>;
    /**
     * Update role by name
     * @summary Update role by name
     * @param {RoleApiUpdateRoleByNameRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    updateRoleByName(requestParameters: RoleApiUpdateRoleByNameRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Role, any, {}>>;
}
//# sourceMappingURL=role-api.d.ts.map