/**
 * KubeBlocks Cloud API
 * KubeBlocks Cloud API is a RESTful API for managing KubeBlocks Cloud resources.  The API is organized around REST.  Our API has predictable resource-oriented URLs, accepts `JSON-encoded` request bodies, returns `JSON-encoded` responses, and uses standard HTTP response codes, authentication, and verbs.  We use standard HTTP authentication and provide API keys to identify who you are. Your API keys carry many privileges, so be sure to keep them secret! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
 *
 * 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 { ACLUser } from '../models';
import type { ACLUserResponse } from '../models';
import type { OpsRequestName } from '../models';
/**
 * RedisApi - axios parameter creator
 * @export
 */
export declare const RedisApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @summary create redis account
     * @param {string} orgName the name of organization
     * @param {string} clusterName the name of cluster
     * @param {ACLUser} aCLUser
     * @param {string} [component] the component type to create account
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRedisAccount: (orgName: string, clusterName: string, aCLUser: ACLUser, component?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary delete redis account
     * @param {string} orgName the name of organization
     * @param {string} clusterName the name of cluster
     * @param {string} accountName the name of account
     * @param {string} [component] in which component type to delete account
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRedisAccount: (orgName: string, clusterName: string, accountName: string, component?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary list redis accounts
     * @param {string} orgName the name of organization
     * @param {string} clusterName the name of cluster
     * @param {string} [component] the component type to list accounts
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRedisAccounts: (orgName: string, clusterName: string, component?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary update redis account
     * @param {string} orgName the name of organization
     * @param {string} clusterName the name of cluster
     * @param {string} accountName the name of account
     * @param {ACLUser} aCLUser
     * @param {string} [component] in which component type to update account
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRedisAccount: (orgName: string, clusterName: string, accountName: string, aCLUser: ACLUser, component?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * RedisApi - functional programming interface
 * @export
 */
export declare const RedisApiFp: (configuration?: Configuration) => {
    /**
     *
     * @summary create redis account
     * @param {string} orgName the name of organization
     * @param {string} clusterName the name of cluster
     * @param {ACLUser} aCLUser
     * @param {string} [component] the component type to create account
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRedisAccount(orgName: string, clusterName: string, aCLUser: ACLUser, component?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OpsRequestName>>;
    /**
     *
     * @summary delete redis account
     * @param {string} orgName the name of organization
     * @param {string} clusterName the name of cluster
     * @param {string} accountName the name of account
     * @param {string} [component] in which component type to delete account
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRedisAccount(orgName: string, clusterName: string, accountName: string, component?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OpsRequestName>>;
    /**
     *
     * @summary list redis accounts
     * @param {string} orgName the name of organization
     * @param {string} clusterName the name of cluster
     * @param {string} [component] the component type to list accounts
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRedisAccounts(orgName: string, clusterName: string, component?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ACLUserResponse>>;
    /**
     *
     * @summary update redis account
     * @param {string} orgName the name of organization
     * @param {string} clusterName the name of cluster
     * @param {string} accountName the name of account
     * @param {ACLUser} aCLUser
     * @param {string} [component] in which component type to update account
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRedisAccount(orgName: string, clusterName: string, accountName: string, aCLUser: ACLUser, component?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OpsRequestName>>;
};
/**
 * RedisApi - factory interface
 * @export
 */
export declare const RedisApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @summary create redis account
     * @param {RedisApiCreateRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createRedisAccount(requestParameters: RedisApiCreateRedisAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<OpsRequestName>;
    /**
     *
     * @summary delete redis account
     * @param {RedisApiDeleteRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteRedisAccount(requestParameters: RedisApiDeleteRedisAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<OpsRequestName>;
    /**
     *
     * @summary list redis accounts
     * @param {RedisApiListRedisAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listRedisAccounts(requestParameters: RedisApiListRedisAccountsRequest, options?: RawAxiosRequestConfig): AxiosPromise<ACLUserResponse>;
    /**
     *
     * @summary update redis account
     * @param {RedisApiUpdateRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateRedisAccount(requestParameters: RedisApiUpdateRedisAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<OpsRequestName>;
};
/**
 * RedisApi - interface
 * @export
 * @interface RedisApi
 */
export interface RedisApiInterface {
    /**
     *
     * @summary create redis account
     * @param {RedisApiCreateRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RedisApiInterface
     */
    createRedisAccount(requestParameters: RedisApiCreateRedisAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<OpsRequestName>;
    /**
     *
     * @summary delete redis account
     * @param {RedisApiDeleteRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RedisApiInterface
     */
    deleteRedisAccount(requestParameters: RedisApiDeleteRedisAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<OpsRequestName>;
    /**
     *
     * @summary list redis accounts
     * @param {RedisApiListRedisAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RedisApiInterface
     */
    listRedisAccounts(requestParameters: RedisApiListRedisAccountsRequest, options?: RawAxiosRequestConfig): AxiosPromise<ACLUserResponse>;
    /**
     *
     * @summary update redis account
     * @param {RedisApiUpdateRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RedisApiInterface
     */
    updateRedisAccount(requestParameters: RedisApiUpdateRedisAccountRequest, options?: RawAxiosRequestConfig): AxiosPromise<OpsRequestName>;
}
/**
 * Request parameters for createRedisAccount operation in RedisApi.
 * @export
 * @interface RedisApiCreateRedisAccountRequest
 */
export interface RedisApiCreateRedisAccountRequest {
    /**
     * the name of organization
     * @type {string}
     * @memberof RedisApiCreateRedisAccount
     */
    readonly orgName: string;
    /**
     * the name of cluster
     * @type {string}
     * @memberof RedisApiCreateRedisAccount
     */
    readonly clusterName: string;
    /**
     *
     * @type {ACLUser}
     * @memberof RedisApiCreateRedisAccount
     */
    readonly aCLUser: ACLUser;
    /**
     * the component type to create account
     * @type {string}
     * @memberof RedisApiCreateRedisAccount
     */
    readonly component?: string;
}
/**
 * Request parameters for deleteRedisAccount operation in RedisApi.
 * @export
 * @interface RedisApiDeleteRedisAccountRequest
 */
export interface RedisApiDeleteRedisAccountRequest {
    /**
     * the name of organization
     * @type {string}
     * @memberof RedisApiDeleteRedisAccount
     */
    readonly orgName: string;
    /**
     * the name of cluster
     * @type {string}
     * @memberof RedisApiDeleteRedisAccount
     */
    readonly clusterName: string;
    /**
     * the name of account
     * @type {string}
     * @memberof RedisApiDeleteRedisAccount
     */
    readonly accountName: string;
    /**
     * in which component type to delete account
     * @type {string}
     * @memberof RedisApiDeleteRedisAccount
     */
    readonly component?: string;
}
/**
 * Request parameters for listRedisAccounts operation in RedisApi.
 * @export
 * @interface RedisApiListRedisAccountsRequest
 */
export interface RedisApiListRedisAccountsRequest {
    /**
     * the name of organization
     * @type {string}
     * @memberof RedisApiListRedisAccounts
     */
    readonly orgName: string;
    /**
     * the name of cluster
     * @type {string}
     * @memberof RedisApiListRedisAccounts
     */
    readonly clusterName: string;
    /**
     * the component type to list accounts
     * @type {string}
     * @memberof RedisApiListRedisAccounts
     */
    readonly component?: string;
}
/**
 * Request parameters for updateRedisAccount operation in RedisApi.
 * @export
 * @interface RedisApiUpdateRedisAccountRequest
 */
export interface RedisApiUpdateRedisAccountRequest {
    /**
     * the name of organization
     * @type {string}
     * @memberof RedisApiUpdateRedisAccount
     */
    readonly orgName: string;
    /**
     * the name of cluster
     * @type {string}
     * @memberof RedisApiUpdateRedisAccount
     */
    readonly clusterName: string;
    /**
     * the name of account
     * @type {string}
     * @memberof RedisApiUpdateRedisAccount
     */
    readonly accountName: string;
    /**
     *
     * @type {ACLUser}
     * @memberof RedisApiUpdateRedisAccount
     */
    readonly aCLUser: ACLUser;
    /**
     * in which component type to update account
     * @type {string}
     * @memberof RedisApiUpdateRedisAccount
     */
    readonly component?: string;
}
/**
 * RedisApi - object-oriented interface
 * @export
 * @class RedisApi
 * @extends {BaseAPI}
 */
export declare class RedisApi extends BaseAPI implements RedisApiInterface {
    /**
     *
     * @summary create redis account
     * @param {RedisApiCreateRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RedisApi
     */
    createRedisAccount(requestParameters: RedisApiCreateRedisAccountRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OpsRequestName, any, {}>>;
    /**
     *
     * @summary delete redis account
     * @param {RedisApiDeleteRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RedisApi
     */
    deleteRedisAccount(requestParameters: RedisApiDeleteRedisAccountRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OpsRequestName, any, {}>>;
    /**
     *
     * @summary list redis accounts
     * @param {RedisApiListRedisAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RedisApi
     */
    listRedisAccounts(requestParameters: RedisApiListRedisAccountsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<ACLUserResponse, any, {}>>;
    /**
     *
     * @summary update redis account
     * @param {RedisApiUpdateRedisAccountRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RedisApi
     */
    updateRedisAccount(requestParameters: RedisApiUpdateRedisAccountRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OpsRequestName, any, {}>>;
}
//# sourceMappingURL=redis-api.d.ts.map