/**
 * 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 { Apikey } from '../models';
import type { ApikeyCreate } from '../models';
import type { ApikeyList } from '../models';
import type { ApikeyWithSK } from '../models';
import type { PhoneVerificationRequest } from '../models';
import type { UpdateAuthenticatedUserPasswordRequest } from '../models';
import type { User } from '../models';
import type { UserUpdate } from '../models';
/**
 * UserApi - axios parameter creator
 * @export
 */
export declare const UserApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Create apikey of the authenticated user
     * @summary Create apikey of the authenticated user
     * @param {ApikeyCreate} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createUserApikey: (body: ApikeyCreate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * delete apikey
     * @summary Delete apikey
     * @param {string} keyName Name of the Apikey
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteApikey: (keyName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get authenticated login user info
     * @summary Get authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAuthenticatedUser: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * partially update the specified apikey
     * @summary Update apikey information
     * @param {string} keyName Name of the apikey
     * @param {ApikeyCreate} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    patchAPIkey: (keyName: string, body: ApikeyCreate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * partially update the specified User. If you want to update phone number, you must request /api/v1/user/phone-verification-code first.
     * @summary Update user information
     * @param {UserUpdate} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    patchAuthenticatedUser: (body: UserUpdate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * to update user phone number, send verification code first
     * @summary Send verification code to user\'s phone
     * @param {PhoneVerificationRequest} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    phoneVerification: (body: PhoneVerificationRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get apikeys of the authenticated user
     * @summary Get apikeys of the authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    readUserApikeys: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Update current authenticated user password.
     * @summary Update current authenticated user password
     * @param {UpdateAuthenticatedUserPasswordRequest} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateAuthenticatedUserPassword: (body: UpdateAuthenticatedUserPasswordRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * UserApi - functional programming interface
 * @export
 */
export declare const UserApiFp: (configuration?: Configuration) => {
    /**
     * Create apikey of the authenticated user
     * @summary Create apikey of the authenticated user
     * @param {ApikeyCreate} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createUserApikey(body: ApikeyCreate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApikeyWithSK>>;
    /**
     * delete apikey
     * @summary Delete apikey
     * @param {string} keyName Name of the Apikey
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteApikey(keyName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Get authenticated login user info
     * @summary Get authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAuthenticatedUser(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<User>>;
    /**
     * partially update the specified apikey
     * @summary Update apikey information
     * @param {string} keyName Name of the apikey
     * @param {ApikeyCreate} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    patchAPIkey(keyName: string, body: ApikeyCreate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Apikey>>;
    /**
     * partially update the specified User. If you want to update phone number, you must request /api/v1/user/phone-verification-code first.
     * @summary Update user information
     * @param {UserUpdate} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    patchAuthenticatedUser(body: UserUpdate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<User>>;
    /**
     * to update user phone number, send verification code first
     * @summary Send verification code to user\'s phone
     * @param {PhoneVerificationRequest} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    phoneVerification(body: PhoneVerificationRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Get apikeys of the authenticated user
     * @summary Get apikeys of the authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    readUserApikeys(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApikeyList>>;
    /**
     * Update current authenticated user password.
     * @summary Update current authenticated user password
     * @param {UpdateAuthenticatedUserPasswordRequest} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateAuthenticatedUserPassword(body: UpdateAuthenticatedUserPasswordRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
};
/**
 * UserApi - factory interface
 * @export
 */
export declare const UserApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Create apikey of the authenticated user
     * @summary Create apikey of the authenticated user
     * @param {UserApiCreateUserApikeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createUserApikey(requestParameters: UserApiCreateUserApikeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<ApikeyWithSK>;
    /**
     * delete apikey
     * @summary Delete apikey
     * @param {UserApiDeleteApikeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteApikey(requestParameters: UserApiDeleteApikeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Get authenticated login user info
     * @summary Get authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAuthenticatedUser(options?: RawAxiosRequestConfig): AxiosPromise<User>;
    /**
     * partially update the specified apikey
     * @summary Update apikey information
     * @param {UserApiPatchAPIkeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    patchAPIkey(requestParameters: UserApiPatchAPIkeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<Apikey>;
    /**
     * partially update the specified User. If you want to update phone number, you must request /api/v1/user/phone-verification-code first.
     * @summary Update user information
     * @param {UserApiPatchAuthenticatedUserRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    patchAuthenticatedUser(requestParameters: UserApiPatchAuthenticatedUserRequest, options?: RawAxiosRequestConfig): AxiosPromise<User>;
    /**
     * to update user phone number, send verification code first
     * @summary Send verification code to user\'s phone
     * @param {UserApiPhoneVerificationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    phoneVerification(requestParameters: UserApiPhoneVerificationRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Get apikeys of the authenticated user
     * @summary Get apikeys of the authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    readUserApikeys(options?: RawAxiosRequestConfig): AxiosPromise<ApikeyList>;
    /**
     * Update current authenticated user password.
     * @summary Update current authenticated user password
     * @param {UserApiUpdateAuthenticatedUserPasswordRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateAuthenticatedUserPassword(requestParameters: UserApiUpdateAuthenticatedUserPasswordRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
};
/**
 * UserApi - interface
 * @export
 * @interface UserApi
 */
export interface UserApiInterface {
    /**
     * Create apikey of the authenticated user
     * @summary Create apikey of the authenticated user
     * @param {UserApiCreateUserApikeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApiInterface
     */
    createUserApikey(requestParameters: UserApiCreateUserApikeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<ApikeyWithSK>;
    /**
     * delete apikey
     * @summary Delete apikey
     * @param {UserApiDeleteApikeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApiInterface
     */
    deleteApikey(requestParameters: UserApiDeleteApikeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Get authenticated login user info
     * @summary Get authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApiInterface
     */
    getAuthenticatedUser(options?: RawAxiosRequestConfig): AxiosPromise<User>;
    /**
     * partially update the specified apikey
     * @summary Update apikey information
     * @param {UserApiPatchAPIkeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApiInterface
     */
    patchAPIkey(requestParameters: UserApiPatchAPIkeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<Apikey>;
    /**
     * partially update the specified User. If you want to update phone number, you must request /api/v1/user/phone-verification-code first.
     * @summary Update user information
     * @param {UserApiPatchAuthenticatedUserRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApiInterface
     */
    patchAuthenticatedUser(requestParameters: UserApiPatchAuthenticatedUserRequest, options?: RawAxiosRequestConfig): AxiosPromise<User>;
    /**
     * to update user phone number, send verification code first
     * @summary Send verification code to user\'s phone
     * @param {UserApiPhoneVerificationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApiInterface
     */
    phoneVerification(requestParameters: UserApiPhoneVerificationRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Get apikeys of the authenticated user
     * @summary Get apikeys of the authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApiInterface
     */
    readUserApikeys(options?: RawAxiosRequestConfig): AxiosPromise<ApikeyList>;
    /**
     * Update current authenticated user password.
     * @summary Update current authenticated user password
     * @param {UserApiUpdateAuthenticatedUserPasswordRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApiInterface
     */
    updateAuthenticatedUserPassword(requestParameters: UserApiUpdateAuthenticatedUserPasswordRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
}
/**
 * Request parameters for createUserApikey operation in UserApi.
 * @export
 * @interface UserApiCreateUserApikeyRequest
 */
export interface UserApiCreateUserApikeyRequest {
    /**
     *
     * @type {ApikeyCreate}
     * @memberof UserApiCreateUserApikey
     */
    readonly body: ApikeyCreate;
}
/**
 * Request parameters for deleteApikey operation in UserApi.
 * @export
 * @interface UserApiDeleteApikeyRequest
 */
export interface UserApiDeleteApikeyRequest {
    /**
     * Name of the Apikey
     * @type {string}
     * @memberof UserApiDeleteApikey
     */
    readonly keyName: string;
}
/**
 * Request parameters for patchAPIkey operation in UserApi.
 * @export
 * @interface UserApiPatchAPIkeyRequest
 */
export interface UserApiPatchAPIkeyRequest {
    /**
     * Name of the apikey
     * @type {string}
     * @memberof UserApiPatchAPIkey
     */
    readonly keyName: string;
    /**
     *
     * @type {ApikeyCreate}
     * @memberof UserApiPatchAPIkey
     */
    readonly body: ApikeyCreate;
}
/**
 * Request parameters for patchAuthenticatedUser operation in UserApi.
 * @export
 * @interface UserApiPatchAuthenticatedUserRequest
 */
export interface UserApiPatchAuthenticatedUserRequest {
    /**
     *
     * @type {UserUpdate}
     * @memberof UserApiPatchAuthenticatedUser
     */
    readonly body: UserUpdate;
}
/**
 * Request parameters for phoneVerification operation in UserApi.
 * @export
 * @interface UserApiPhoneVerificationRequest
 */
export interface UserApiPhoneVerificationRequest {
    /**
     *
     * @type {PhoneVerificationRequest}
     * @memberof UserApiPhoneVerification
     */
    readonly body: PhoneVerificationRequest;
}
/**
 * Request parameters for updateAuthenticatedUserPassword operation in UserApi.
 * @export
 * @interface UserApiUpdateAuthenticatedUserPasswordRequest
 */
export interface UserApiUpdateAuthenticatedUserPasswordRequest {
    /**
     *
     * @type {UpdateAuthenticatedUserPasswordRequest}
     * @memberof UserApiUpdateAuthenticatedUserPassword
     */
    readonly body: UpdateAuthenticatedUserPasswordRequest;
}
/**
 * UserApi - object-oriented interface
 * @export
 * @class UserApi
 * @extends {BaseAPI}
 */
export declare class UserApi extends BaseAPI implements UserApiInterface {
    /**
     * Create apikey of the authenticated user
     * @summary Create apikey of the authenticated user
     * @param {UserApiCreateUserApikeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    createUserApikey(requestParameters: UserApiCreateUserApikeyRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<ApikeyWithSK, any, {}>>;
    /**
     * delete apikey
     * @summary Delete apikey
     * @param {UserApiDeleteApikeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    deleteApikey(requestParameters: UserApiDeleteApikeyRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * Get authenticated login user info
     * @summary Get authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    getAuthenticatedUser(options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<User, any, {}>>;
    /**
     * partially update the specified apikey
     * @summary Update apikey information
     * @param {UserApiPatchAPIkeyRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    patchAPIkey(requestParameters: UserApiPatchAPIkeyRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Apikey, any, {}>>;
    /**
     * partially update the specified User. If you want to update phone number, you must request /api/v1/user/phone-verification-code first.
     * @summary Update user information
     * @param {UserApiPatchAuthenticatedUserRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    patchAuthenticatedUser(requestParameters: UserApiPatchAuthenticatedUserRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<User, any, {}>>;
    /**
     * to update user phone number, send verification code first
     * @summary Send verification code to user\'s phone
     * @param {UserApiPhoneVerificationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    phoneVerification(requestParameters: UserApiPhoneVerificationRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * Get apikeys of the authenticated user
     * @summary Get apikeys of the authenticated user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    readUserApikeys(options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<ApikeyList, any, {}>>;
    /**
     * Update current authenticated user password.
     * @summary Update current authenticated user password
     * @param {UserApiUpdateAuthenticatedUserPasswordRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UserApi
     */
    updateAuthenticatedUserPassword(requestParameters: UserApiUpdateAuthenticatedUserPasswordRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
}
//# sourceMappingURL=user-api.d.ts.map