import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.mjs";
import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.mjs";
import * as core from "../../../../core/index.mjs";
import * as Management from "../../../index.mjs";
export declare namespace UserAttributeProfilesClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class UserAttributeProfilesClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<UserAttributeProfilesClient.Options>;
    constructor(options: UserAttributeProfilesClient.Options);
    /**
     * Retrieve a list of User Attribute Profiles. This endpoint supports Checkpoint pagination.
     *
     * @param {Management.ListUserAttributeProfileRequestParameters} request
     * @param {UserAttributeProfilesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.userAttributeProfiles.list({
     *         from: "from",
     *         take: 1
     *     })
     */
    list(request?: Management.ListUserAttributeProfileRequestParameters, requestOptions?: UserAttributeProfilesClient.RequestOptions): Promise<core.Page<Management.UserAttributeProfile, Management.ListUserAttributeProfilesPaginatedResponseContent>>;
    /**
     * Retrieve details about a single User Attribute Profile specified by ID.
     *
     * @param {Management.CreateUserAttributeProfileRequestContent} request
     * @param {UserAttributeProfilesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.ConflictError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.userAttributeProfiles.create({
     *         name: "name",
     *         user_attributes: {
     *             "key": {
     *                 description: "description",
     *                 label: "label",
     *                 profile_required: true,
     *                 auth0_mapping: "auth0_mapping"
     *             }
     *         }
     *     })
     */
    create(request: Management.CreateUserAttributeProfileRequestContent, requestOptions?: UserAttributeProfilesClient.RequestOptions): core.HttpResponsePromise<Management.CreateUserAttributeProfileResponseContent>;
    private __create;
    /**
     * Retrieve a list of User Attribute Profile Templates.
     *
     * @param {UserAttributeProfilesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.userAttributeProfiles.listTemplates()
     */
    listTemplates(requestOptions?: UserAttributeProfilesClient.RequestOptions): core.HttpResponsePromise<Management.ListUserAttributeProfileTemplateResponseContent>;
    private __listTemplates;
    /**
     * Retrieve a User Attribute Profile Template.
     *
     * @param {string} id - ID of the user-attribute-profile-template to retrieve.
     * @param {UserAttributeProfilesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.userAttributeProfiles.getTemplate("id")
     */
    getTemplate(id: string, requestOptions?: UserAttributeProfilesClient.RequestOptions): core.HttpResponsePromise<Management.GetUserAttributeProfileTemplateResponseContent>;
    private __getTemplate;
    /**
     * Retrieve details about a single User Attribute Profile specified by ID.
     *
     * @param {string} id - ID of the user-attribute-profile to retrieve.
     * @param {UserAttributeProfilesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.userAttributeProfiles.get("id")
     */
    get(id: string, requestOptions?: UserAttributeProfilesClient.RequestOptions): core.HttpResponsePromise<Management.GetUserAttributeProfileResponseContent>;
    private __get;
    /**
     * Delete a single User Attribute Profile specified by ID.
     *
     * @param {string} id - ID of the user-attribute-profile to delete.
     * @param {UserAttributeProfilesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.userAttributeProfiles.delete("id")
     */
    delete(id: string, requestOptions?: UserAttributeProfilesClient.RequestOptions): core.HttpResponsePromise<void>;
    private __delete;
    /**
     * Update the details of a specific User attribute profile, such as name, user_id and user_attributes.
     *
     * @param {string} id - ID of the user attribute profile to update.
     * @param {Management.UpdateUserAttributeProfileRequestContent} request
     * @param {UserAttributeProfilesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.userAttributeProfiles.update("id")
     */
    update(id: string, request?: Management.UpdateUserAttributeProfileRequestContent, requestOptions?: UserAttributeProfilesClient.RequestOptions): core.HttpResponsePromise<Management.UpdateUserAttributeProfileResponseContent>;
    private __update;
}
