import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js";
import * as core from "../../../../core/index.js";
import * as Management from "../../../index.js";
export declare namespace EmailTemplatesClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class EmailTemplatesClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<EmailTemplatesClient.Options>;
    constructor(options: EmailTemplatesClient.Options);
    /**
     * Create an email template.
     *
     * @param {Management.CreateEmailTemplateRequestContent} request
     * @param {EmailTemplatesClient.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.emailTemplates.create({
     *         template: "verify_email"
     *     })
     */
    create(request: Management.CreateEmailTemplateRequestContent, requestOptions?: EmailTemplatesClient.RequestOptions): core.HttpResponsePromise<Management.CreateEmailTemplateResponseContent>;
    private __create;
    /**
     * Retrieve an email template by pre-defined name. These names are `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, and `async_approval`. The names `change_password`, and `password_reset` are also supported for legacy scenarios.
     *
     * @param {Management.EmailTemplateNameEnum} templateName - Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
     * @param {EmailTemplatesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.emailTemplates.get("verify_email")
     */
    get(templateName: Management.EmailTemplateNameEnum, requestOptions?: EmailTemplatesClient.RequestOptions): core.HttpResponsePromise<Management.GetEmailTemplateResponseContent>;
    private __get;
    /**
     * Update an email template.
     *
     * @param {Management.EmailTemplateNameEnum} templateName - Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
     * @param {Management.SetEmailTemplateRequestContent} request
     * @param {EmailTemplatesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.emailTemplates.set("verify_email", {
     *         template: "verify_email"
     *     })
     */
    set(templateName: Management.EmailTemplateNameEnum, request: Management.SetEmailTemplateRequestContent, requestOptions?: EmailTemplatesClient.RequestOptions): core.HttpResponsePromise<Management.SetEmailTemplateResponseContent>;
    private __set;
    /**
     * Modify an email template.
     *
     * @param {Management.EmailTemplateNameEnum} templateName - Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
     * @param {Management.UpdateEmailTemplateRequestContent} request
     * @param {EmailTemplatesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.emailTemplates.update("verify_email")
     */
    update(templateName: Management.EmailTemplateNameEnum, request?: Management.UpdateEmailTemplateRequestContent, requestOptions?: EmailTemplatesClient.RequestOptions): core.HttpResponsePromise<Management.UpdateEmailTemplateResponseContent>;
    private __update;
}
