/**
 * 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 { Environment } from '../models';
import type { EnvironmentList } from '../models';
import type { EnvironmentModuleInfo } from '../models';
import type { NodeGroup } from '../models';
/**
 * EnvironmentApi - axios parameter creator
 * @export
 */
export declare const EnvironmentApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @summary Get environment
     * @param {string} orgName name of the Org
     * @param {string} environmentName name of the Environment
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEnvironment: (orgName: string, environmentName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Get environment module information in an environment
     * @param {string} environmentName Environment Name
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEnvironmentModuleInfo: (environmentName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * List available zones of an environment
     * @summary List the availability zones where the environment\'s nodes are located
     * @param {string} orgName name of the Org
     * @param {string} environmentName name of the Environment
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEnvNodeZone: (orgName: string, environmentName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * List environments
     * @summary List environments
     * @param {string} orgName name of the Org
     * @param {string} [engine] engine name
     * @param {string} [version] version of the engine
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEnvironment: (orgName: string, engine?: string, version?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary List environment node group
     * @param {string} environmentName name of the environment
     * @param {Array<string>} [zones] available zone for filtering node groups
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listNodeGroup: (environmentName: string, zones?: Array<string>, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * EnvironmentApi - functional programming interface
 * @export
 */
export declare const EnvironmentApiFp: (configuration?: Configuration) => {
    /**
     *
     * @summary Get environment
     * @param {string} orgName name of the Org
     * @param {string} environmentName name of the Environment
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEnvironment(orgName: string, environmentName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Environment>>;
    /**
     *
     * @summary Get environment module information in an environment
     * @param {string} environmentName Environment Name
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEnvironmentModuleInfo(environmentName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EnvironmentModuleInfo>>;
    /**
     * List available zones of an environment
     * @summary List the availability zones where the environment\'s nodes are located
     * @param {string} orgName name of the Org
     * @param {string} environmentName name of the Environment
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEnvNodeZone(orgName: string, environmentName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>>;
    /**
     * List environments
     * @summary List environments
     * @param {string} orgName name of the Org
     * @param {string} [engine] engine name
     * @param {string} [version] version of the engine
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEnvironment(orgName: string, engine?: string, version?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EnvironmentList>>;
    /**
     *
     * @summary List environment node group
     * @param {string} environmentName name of the environment
     * @param {Array<string>} [zones] available zone for filtering node groups
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listNodeGroup(environmentName: string, zones?: Array<string>, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<NodeGroup>>>;
};
/**
 * EnvironmentApi - factory interface
 * @export
 */
export declare const EnvironmentApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @summary Get environment
     * @param {EnvironmentApiGetEnvironmentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEnvironment(requestParameters: EnvironmentApiGetEnvironmentRequest, options?: RawAxiosRequestConfig): AxiosPromise<Environment>;
    /**
     *
     * @summary Get environment module information in an environment
     * @param {EnvironmentApiGetEnvironmentModuleInfoRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEnvironmentModuleInfo(requestParameters: EnvironmentApiGetEnvironmentModuleInfoRequest, options?: RawAxiosRequestConfig): AxiosPromise<EnvironmentModuleInfo>;
    /**
     * List available zones of an environment
     * @summary List the availability zones where the environment\'s nodes are located
     * @param {EnvironmentApiListEnvNodeZoneRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEnvNodeZone(requestParameters: EnvironmentApiListEnvNodeZoneRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<string>>;
    /**
     * List environments
     * @summary List environments
     * @param {EnvironmentApiListEnvironmentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEnvironment(requestParameters: EnvironmentApiListEnvironmentRequest, options?: RawAxiosRequestConfig): AxiosPromise<EnvironmentList>;
    /**
     *
     * @summary List environment node group
     * @param {EnvironmentApiListNodeGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listNodeGroup(requestParameters: EnvironmentApiListNodeGroupRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<NodeGroup>>;
};
/**
 * EnvironmentApi - interface
 * @export
 * @interface EnvironmentApi
 */
export interface EnvironmentApiInterface {
    /**
     *
     * @summary Get environment
     * @param {EnvironmentApiGetEnvironmentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApiInterface
     */
    getEnvironment(requestParameters: EnvironmentApiGetEnvironmentRequest, options?: RawAxiosRequestConfig): AxiosPromise<Environment>;
    /**
     *
     * @summary Get environment module information in an environment
     * @param {EnvironmentApiGetEnvironmentModuleInfoRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApiInterface
     */
    getEnvironmentModuleInfo(requestParameters: EnvironmentApiGetEnvironmentModuleInfoRequest, options?: RawAxiosRequestConfig): AxiosPromise<EnvironmentModuleInfo>;
    /**
     * List available zones of an environment
     * @summary List the availability zones where the environment\'s nodes are located
     * @param {EnvironmentApiListEnvNodeZoneRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApiInterface
     */
    listEnvNodeZone(requestParameters: EnvironmentApiListEnvNodeZoneRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<string>>;
    /**
     * List environments
     * @summary List environments
     * @param {EnvironmentApiListEnvironmentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApiInterface
     */
    listEnvironment(requestParameters: EnvironmentApiListEnvironmentRequest, options?: RawAxiosRequestConfig): AxiosPromise<EnvironmentList>;
    /**
     *
     * @summary List environment node group
     * @param {EnvironmentApiListNodeGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApiInterface
     */
    listNodeGroup(requestParameters: EnvironmentApiListNodeGroupRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<NodeGroup>>;
}
/**
 * Request parameters for getEnvironment operation in EnvironmentApi.
 * @export
 * @interface EnvironmentApiGetEnvironmentRequest
 */
export interface EnvironmentApiGetEnvironmentRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof EnvironmentApiGetEnvironment
     */
    readonly orgName: string;
    /**
     * name of the Environment
     * @type {string}
     * @memberof EnvironmentApiGetEnvironment
     */
    readonly environmentName: string;
}
/**
 * Request parameters for getEnvironmentModuleInfo operation in EnvironmentApi.
 * @export
 * @interface EnvironmentApiGetEnvironmentModuleInfoRequest
 */
export interface EnvironmentApiGetEnvironmentModuleInfoRequest {
    /**
     * Environment Name
     * @type {string}
     * @memberof EnvironmentApiGetEnvironmentModuleInfo
     */
    readonly environmentName: string;
}
/**
 * Request parameters for listEnvNodeZone operation in EnvironmentApi.
 * @export
 * @interface EnvironmentApiListEnvNodeZoneRequest
 */
export interface EnvironmentApiListEnvNodeZoneRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof EnvironmentApiListEnvNodeZone
     */
    readonly orgName: string;
    /**
     * name of the Environment
     * @type {string}
     * @memberof EnvironmentApiListEnvNodeZone
     */
    readonly environmentName: string;
}
/**
 * Request parameters for listEnvironment operation in EnvironmentApi.
 * @export
 * @interface EnvironmentApiListEnvironmentRequest
 */
export interface EnvironmentApiListEnvironmentRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof EnvironmentApiListEnvironment
     */
    readonly orgName: string;
    /**
     * engine name
     * @type {string}
     * @memberof EnvironmentApiListEnvironment
     */
    readonly engine?: string;
    /**
     * version of the engine
     * @type {string}
     * @memberof EnvironmentApiListEnvironment
     */
    readonly version?: string;
}
/**
 * Request parameters for listNodeGroup operation in EnvironmentApi.
 * @export
 * @interface EnvironmentApiListNodeGroupRequest
 */
export interface EnvironmentApiListNodeGroupRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof EnvironmentApiListNodeGroup
     */
    readonly environmentName: string;
    /**
     * available zone for filtering node groups
     * @type {Array<string>}
     * @memberof EnvironmentApiListNodeGroup
     */
    readonly zones?: Array<string>;
}
/**
 * EnvironmentApi - object-oriented interface
 * @export
 * @class EnvironmentApi
 * @extends {BaseAPI}
 */
export declare class EnvironmentApi extends BaseAPI implements EnvironmentApiInterface {
    /**
     *
     * @summary Get environment
     * @param {EnvironmentApiGetEnvironmentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApi
     */
    getEnvironment(requestParameters: EnvironmentApiGetEnvironmentRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Environment, any, {}>>;
    /**
     *
     * @summary Get environment module information in an environment
     * @param {EnvironmentApiGetEnvironmentModuleInfoRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApi
     */
    getEnvironmentModuleInfo(requestParameters: EnvironmentApiGetEnvironmentModuleInfoRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<EnvironmentModuleInfo, any, {}>>;
    /**
     * List available zones of an environment
     * @summary List the availability zones where the environment\'s nodes are located
     * @param {EnvironmentApiListEnvNodeZoneRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApi
     */
    listEnvNodeZone(requestParameters: EnvironmentApiListEnvNodeZoneRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<string[], any, {}>>;
    /**
     * List environments
     * @summary List environments
     * @param {EnvironmentApiListEnvironmentRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApi
     */
    listEnvironment(requestParameters: EnvironmentApiListEnvironmentRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<EnvironmentList, any, {}>>;
    /**
     *
     * @summary List environment node group
     * @param {EnvironmentApiListNodeGroupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvironmentApi
     */
    listNodeGroup(requestParameters: EnvironmentApiListNodeGroupRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<NodeGroup[], any, {}>>;
}
//# sourceMappingURL=environment-api.d.ts.map