/**
 * 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 { RbmqAccountRequest } from '../models';
import type { RbmqAccountsList } from '../models';
import type { RbmqExchange } from '../models';
import type { RbmqPermission } from '../models';
import type { RbmqUser } from '../models';
import type { RbmqVHost } from '../models';
/**
 * RabbitMQApi - axios parameter creator
 * @export
 */
export declare const RabbitMQApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Create a new RabbitMQ account
     * @summary Create RabbitMQ account
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {RbmqAccountRequest} rbmqAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRabbitAccount: (orgName: string, clusterName: string, rbmqAccountRequest: RbmqAccountRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Delete a RabbitMQ account
     * @summary Delete RabbitMQ account
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} accountName name of the Account
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRabbitAccount: (orgName: string, clusterName: string, accountName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * List all RabbitMQ accounts
     * @summary List RabbitMQ accounts
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitAccounts: (orgName: string, clusterName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * List RabbitMQ exchanges
     * @summary List RabbitMQ exchanges
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitExchanges: (orgName: string, clusterName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * List RabbitMQ vhosts
     * @summary List RabbitMQ vhosts
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitVHosts: (orgName: string, clusterName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Update a RabbitMQ account password
     * @summary Update RabbitMQ account password
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} accountName name of the Account
     * @param {RbmqUser} rbmqUser
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRabbitAccountPassword: (orgName: string, clusterName: string, accountName: string, rbmqUser: RbmqUser, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Update a RabbitMQ account privileges
     * @summary Update RabbitMQ account privileges
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} accountName name of the Account
     * @param {RbmqPermission} rbmqPermission
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRabbitAccountPrivileges: (orgName: string, clusterName: string, accountName: string, rbmqPermission: RbmqPermission, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * RabbitMQApi - functional programming interface
 * @export
 */
export declare const RabbitMQApiFp: (configuration?: Configuration) => {
    /**
     * Create a new RabbitMQ account
     * @summary Create RabbitMQ account
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {RbmqAccountRequest} rbmqAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRabbitAccount(orgName: string, clusterName: string, rbmqAccountRequest: RbmqAccountRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Delete a RabbitMQ account
     * @summary Delete RabbitMQ account
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} accountName name of the Account
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRabbitAccount(orgName: string, clusterName: string, accountName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * List all RabbitMQ accounts
     * @summary List RabbitMQ accounts
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitAccounts(orgName: string, clusterName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RbmqAccountsList>>;
    /**
     * List RabbitMQ exchanges
     * @summary List RabbitMQ exchanges
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitExchanges(orgName: string, clusterName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RbmqExchange>>>;
    /**
     * List RabbitMQ vhosts
     * @summary List RabbitMQ vhosts
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitVHosts(orgName: string, clusterName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RbmqVHost>>>;
    /**
     * Update a RabbitMQ account password
     * @summary Update RabbitMQ account password
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} accountName name of the Account
     * @param {RbmqUser} rbmqUser
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRabbitAccountPassword(orgName: string, clusterName: string, accountName: string, rbmqUser: RbmqUser, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Update a RabbitMQ account privileges
     * @summary Update RabbitMQ account privileges
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} accountName name of the Account
     * @param {RbmqPermission} rbmqPermission
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRabbitAccountPrivileges(orgName: string, clusterName: string, accountName: string, rbmqPermission: RbmqPermission, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
};
/**
 * RabbitMQApi - factory interface
 * @export
 */
export declare const RabbitMQApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Create a new RabbitMQ account
     * @summary Create RabbitMQ account
     * @param {RabbitMQApiCreateRabbitAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRabbitAccount(requestParameters: RabbitMQApiCreateRabbitAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Delete a RabbitMQ account
     * @summary Delete RabbitMQ account
     * @param {RabbitMQApiDeleteRabbitAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRabbitAccount(requestParameters: RabbitMQApiDeleteRabbitAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * List all RabbitMQ accounts
     * @summary List RabbitMQ accounts
     * @param {RabbitMQApiListRabbitAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitAccounts(requestParameters: RabbitMQApiListRabbitAccountsRequest, options?: RawAxiosRequestConfig): AxiosPromise<RbmqAccountsList>;
    /**
     * List RabbitMQ exchanges
     * @summary List RabbitMQ exchanges
     * @param {RabbitMQApiListRabbitExchangesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitExchanges(requestParameters: RabbitMQApiListRabbitExchangesRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<RbmqExchange>>;
    /**
     * List RabbitMQ vhosts
     * @summary List RabbitMQ vhosts
     * @param {RabbitMQApiListRabbitVHostsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRabbitVHosts(requestParameters: RabbitMQApiListRabbitVHostsRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<RbmqVHost>>;
    /**
     * Update a RabbitMQ account password
     * @summary Update RabbitMQ account password
     * @param {RabbitMQApiUpdateRabbitAccountPasswordRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRabbitAccountPassword(requestParameters: RabbitMQApiUpdateRabbitAccountPasswordRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Update a RabbitMQ account privileges
     * @summary Update RabbitMQ account privileges
     * @param {RabbitMQApiUpdateRabbitAccountPrivilegesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRabbitAccountPrivileges(requestParameters: RabbitMQApiUpdateRabbitAccountPrivilegesRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
};
/**
 * RabbitMQApi - interface
 * @export
 * @interface RabbitMQApi
 */
export interface RabbitMQApiInterface {
    /**
     * Create a new RabbitMQ account
     * @summary Create RabbitMQ account
     * @param {RabbitMQApiCreateRabbitAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApiInterface
     */
    createRabbitAccount(requestParameters: RabbitMQApiCreateRabbitAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Delete a RabbitMQ account
     * @summary Delete RabbitMQ account
     * @param {RabbitMQApiDeleteRabbitAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApiInterface
     */
    deleteRabbitAccount(requestParameters: RabbitMQApiDeleteRabbitAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * List all RabbitMQ accounts
     * @summary List RabbitMQ accounts
     * @param {RabbitMQApiListRabbitAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApiInterface
     */
    listRabbitAccounts(requestParameters: RabbitMQApiListRabbitAccountsRequest, options?: RawAxiosRequestConfig): AxiosPromise<RbmqAccountsList>;
    /**
     * List RabbitMQ exchanges
     * @summary List RabbitMQ exchanges
     * @param {RabbitMQApiListRabbitExchangesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApiInterface
     */
    listRabbitExchanges(requestParameters: RabbitMQApiListRabbitExchangesRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<RbmqExchange>>;
    /**
     * List RabbitMQ vhosts
     * @summary List RabbitMQ vhosts
     * @param {RabbitMQApiListRabbitVHostsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApiInterface
     */
    listRabbitVHosts(requestParameters: RabbitMQApiListRabbitVHostsRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<RbmqVHost>>;
    /**
     * Update a RabbitMQ account password
     * @summary Update RabbitMQ account password
     * @param {RabbitMQApiUpdateRabbitAccountPasswordRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApiInterface
     */
    updateRabbitAccountPassword(requestParameters: RabbitMQApiUpdateRabbitAccountPasswordRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Update a RabbitMQ account privileges
     * @summary Update RabbitMQ account privileges
     * @param {RabbitMQApiUpdateRabbitAccountPrivilegesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApiInterface
     */
    updateRabbitAccountPrivileges(requestParameters: RabbitMQApiUpdateRabbitAccountPrivilegesRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
}
/**
 * Request parameters for createRabbitAccount operation in RabbitMQApi.
 * @export
 * @interface RabbitMQApiCreateRabbitAccountRequest
 */
export interface RabbitMQApiCreateRabbitAccountRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RabbitMQApiCreateRabbitAccount
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof RabbitMQApiCreateRabbitAccount
     */
    readonly clusterName: string;
    /**
     *
     * @type {RbmqAccountRequest}
     * @memberof RabbitMQApiCreateRabbitAccount
     */
    readonly rbmqAccountRequest: RbmqAccountRequest;
}
/**
 * Request parameters for deleteRabbitAccount operation in RabbitMQApi.
 * @export
 * @interface RabbitMQApiDeleteRabbitAccountRequest
 */
export interface RabbitMQApiDeleteRabbitAccountRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RabbitMQApiDeleteRabbitAccount
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof RabbitMQApiDeleteRabbitAccount
     */
    readonly clusterName: string;
    /**
     * name of the Account
     * @type {string}
     * @memberof RabbitMQApiDeleteRabbitAccount
     */
    readonly accountName: string;
}
/**
 * Request parameters for listRabbitAccounts operation in RabbitMQApi.
 * @export
 * @interface RabbitMQApiListRabbitAccountsRequest
 */
export interface RabbitMQApiListRabbitAccountsRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RabbitMQApiListRabbitAccounts
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof RabbitMQApiListRabbitAccounts
     */
    readonly clusterName: string;
}
/**
 * Request parameters for listRabbitExchanges operation in RabbitMQApi.
 * @export
 * @interface RabbitMQApiListRabbitExchangesRequest
 */
export interface RabbitMQApiListRabbitExchangesRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RabbitMQApiListRabbitExchanges
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof RabbitMQApiListRabbitExchanges
     */
    readonly clusterName: string;
}
/**
 * Request parameters for listRabbitVHosts operation in RabbitMQApi.
 * @export
 * @interface RabbitMQApiListRabbitVHostsRequest
 */
export interface RabbitMQApiListRabbitVHostsRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RabbitMQApiListRabbitVHosts
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof RabbitMQApiListRabbitVHosts
     */
    readonly clusterName: string;
}
/**
 * Request parameters for updateRabbitAccountPassword operation in RabbitMQApi.
 * @export
 * @interface RabbitMQApiUpdateRabbitAccountPasswordRequest
 */
export interface RabbitMQApiUpdateRabbitAccountPasswordRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RabbitMQApiUpdateRabbitAccountPassword
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof RabbitMQApiUpdateRabbitAccountPassword
     */
    readonly clusterName: string;
    /**
     * name of the Account
     * @type {string}
     * @memberof RabbitMQApiUpdateRabbitAccountPassword
     */
    readonly accountName: string;
    /**
     *
     * @type {RbmqUser}
     * @memberof RabbitMQApiUpdateRabbitAccountPassword
     */
    readonly rbmqUser: RbmqUser;
}
/**
 * Request parameters for updateRabbitAccountPrivileges operation in RabbitMQApi.
 * @export
 * @interface RabbitMQApiUpdateRabbitAccountPrivilegesRequest
 */
export interface RabbitMQApiUpdateRabbitAccountPrivilegesRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof RabbitMQApiUpdateRabbitAccountPrivileges
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof RabbitMQApiUpdateRabbitAccountPrivileges
     */
    readonly clusterName: string;
    /**
     * name of the Account
     * @type {string}
     * @memberof RabbitMQApiUpdateRabbitAccountPrivileges
     */
    readonly accountName: string;
    /**
     *
     * @type {RbmqPermission}
     * @memberof RabbitMQApiUpdateRabbitAccountPrivileges
     */
    readonly rbmqPermission: RbmqPermission;
}
/**
 * RabbitMQApi - object-oriented interface
 * @export
 * @class RabbitMQApi
 * @extends {BaseAPI}
 */
export declare class RabbitMQApi extends BaseAPI implements RabbitMQApiInterface {
    /**
     * Create a new RabbitMQ account
     * @summary Create RabbitMQ account
     * @param {RabbitMQApiCreateRabbitAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApi
     */
    createRabbitAccount(requestParameters: RabbitMQApiCreateRabbitAccountRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * Delete a RabbitMQ account
     * @summary Delete RabbitMQ account
     * @param {RabbitMQApiDeleteRabbitAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApi
     */
    deleteRabbitAccount(requestParameters: RabbitMQApiDeleteRabbitAccountRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * List all RabbitMQ accounts
     * @summary List RabbitMQ accounts
     * @param {RabbitMQApiListRabbitAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApi
     */
    listRabbitAccounts(requestParameters: RabbitMQApiListRabbitAccountsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<RbmqAccountsList, any, {}>>;
    /**
     * List RabbitMQ exchanges
     * @summary List RabbitMQ exchanges
     * @param {RabbitMQApiListRabbitExchangesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApi
     */
    listRabbitExchanges(requestParameters: RabbitMQApiListRabbitExchangesRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<RbmqExchange[], any, {}>>;
    /**
     * List RabbitMQ vhosts
     * @summary List RabbitMQ vhosts
     * @param {RabbitMQApiListRabbitVHostsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApi
     */
    listRabbitVHosts(requestParameters: RabbitMQApiListRabbitVHostsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<RbmqVHost[], any, {}>>;
    /**
     * Update a RabbitMQ account password
     * @summary Update RabbitMQ account password
     * @param {RabbitMQApiUpdateRabbitAccountPasswordRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApi
     */
    updateRabbitAccountPassword(requestParameters: RabbitMQApiUpdateRabbitAccountPasswordRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * Update a RabbitMQ account privileges
     * @summary Update RabbitMQ account privileges
     * @param {RabbitMQApiUpdateRabbitAccountPrivilegesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RabbitMQApi
     */
    updateRabbitAccountPrivileges(requestParameters: RabbitMQApiUpdateRabbitAccountPrivilegesRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
}
//# sourceMappingURL=rabbit-mqapi.d.ts.map