import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js";
import * as core from "../../../../core/index.js";
import * as Brevo from "../../../index.js";
export declare namespace TransactionalEmailsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class TransactionalEmailsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<TransactionalEmailsClient.Options>;
    constructor(options: TransactionalEmailsClient.Options);
    /**
     * @param {Brevo.GetTransacBlockedContactsRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.getTransacBlockedContacts()
     */
    getTransacBlockedContacts(request?: Brevo.GetTransacBlockedContactsRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetTransacBlockedContactsResponse>;
    private __getTransacBlockedContacts;
    /**
     * @param {Brevo.DeleteSmtpBlockedContactsEmailRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.unblockOrResubscribeATransactionalContact({
     *         email: "email"
     *     })
     */
    unblockOrResubscribeATransactionalContact(request: Brevo.DeleteSmtpBlockedContactsEmailRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __unblockOrResubscribeATransactionalContact;
    /**
     * Get the list of blocked domains
     *
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.transactionalEmails.getBlockedDomains()
     */
    getBlockedDomains(requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetBlockedDomainsResponse>;
    private __getBlockedDomains;
    /**
     * Blocks a new domain in order to avoid messages being sent to the same
     *
     * @param {Brevo.BlockNewDomainRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.blockNewDomain({
     *         domain: "example.com"
     *     })
     */
    blockNewDomain(request: Brevo.BlockNewDomainRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __blockNewDomain;
    /**
     * Unblocks an existing domain from the list of blocked domains
     *
     * @param {Brevo.DeleteBlockedDomainRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.deleteBlockedDomain({
     *         domain: "domain"
     *     })
     */
    deleteBlockedDomain(request: Brevo.DeleteBlockedDomainRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteBlockedDomain;
    /**
     * Delete hardbounces. To use carefully (e.g. in case of temporary ISP failures)
     *
     * @param {Brevo.DeleteHardbouncesRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.deleteHardbounces()
     */
    deleteHardbounces(request?: Brevo.DeleteHardbouncesRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteHardbounces;
    /**
     * @param {Brevo.SendTransacEmailRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.sendTransacEmail({
     *         htmlContent: "<html><head></head><body><p>Hello,</p>This is my first transactional email sent from Brevo.</p></body></html>",
     *         sender: {
     *             email: "hello@brevo.com",
     *             name: "Alex from Brevo"
     *         },
     *         subject: "Hello from Brevo!",
     *         to: [{
     *                 email: "johndoe@example.com",
     *                 name: "John Doe"
     *             }]
     *     })
     *
     * @example
     *     await client.transactionalEmails.sendTransacEmail({
     *         htmlContent: "<html><head></head><body>Your delivery is expected {{params.estimatedArrival}}.Your tracking code: {{params.trackingCode}}</p></body></html>",
     *         params: {
     *             "trackingCode": "JD01460000300002350000",
     *             "estimatedArrival": "Tomorrow"
     *         },
     *         sender: {
     *             email: "hello@brevo.com",
     *             name: "Alex from Brevo"
     *         },
     *         subject: "Hello from Brevo!",
     *         to: [{
     *                 email: "johndoe@example.com",
     *                 name: "John Doe"
     *             }]
     *     })
     */
    sendTransacEmail(request?: Brevo.SendTransacEmailRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.SendTransacEmailResponse>;
    private __sendTransacEmail;
    /**
     * Delete scheduled batch of emails by batchId or single scheduled email by messageId
     *
     * @param {Brevo.DeleteScheduledEmailByIdRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.deleteScheduledEmailById({
     *         identifier: "4320f270-a4e3-4a2e-b591-edfe30a5e627"
     *     })
     */
    deleteScheduledEmailById(request: Brevo.DeleteScheduledEmailByIdRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteScheduledEmailById;
    /**
     * Fetch scheduled batch of emails by batchId or single scheduled email by messageId (Can retrieve data upto 30 days old)
     *
     * @param {Brevo.GetScheduledEmailByIdRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.getScheduledEmailById({
     *         identifier: "4320f270-a4e3-4a2e-b591-edfe30a5e627",
     *         startDate: "2022-02-02",
     *         endDate: "2022-03-02"
     *     })
     */
    getScheduledEmailById(request: Brevo.GetScheduledEmailByIdRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetScheduledEmailByIdResponse>;
    private __getScheduledEmailById;
    /**
     * This endpoint will show the list of emails for past 30 days by default. To retrieve emails before that time, please pass startDate and endDate in query filters.
     *
     * @param {Brevo.GetTransacEmailsListRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.getTransacEmailsList()
     */
    getTransacEmailsList(request?: Brevo.GetTransacEmailsListRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetTransacEmailsListResponse>;
    private __getTransacEmailsList;
    /**
     * <Note title="How to get uuid">You can get the uuid using either of the following methods:
     * Send a GET request to https://api.brevo.com/v3/smtp/emails and pass the message_id in the url. Use your api-key to authenticate the request and you will get your uuid as a response.
     * The uuid can also be fetched from the transactional logs page in your Brevo account, from the address URL.</Note>
     *
     * @param {Brevo.GetTransacEmailContentRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.transactionalEmails.getTransacEmailContent({
     *         uuid: "uuid"
     *     })
     */
    getTransacEmailContent(request: Brevo.GetTransacEmailContentRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetTransacEmailContentResponse>;
    private __getTransacEmailContent;
    /**
     * @param {Brevo.DeleteSmtpLogIdentifierRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.deleteAnSmtpTransactionalLog({
     *         identifier: "identifier"
     *     })
     */
    deleteAnSmtpTransactionalLog(request: Brevo.DeleteSmtpLogIdentifierRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteAnSmtpTransactionalLog;
    /**
     * This endpoint will show the aggregated stats for past 90 days by default if `startDate` and `endDate` OR `days` is not passed. The date range can not exceed 90 days
     *
     * @param {Brevo.GetAggregatedSmtpReportRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.getAggregatedSmtpReport()
     */
    getAggregatedSmtpReport(request?: Brevo.GetAggregatedSmtpReportRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetAggregatedSmtpReportResponse>;
    private __getAggregatedSmtpReport;
    /**
     * This endpoint will show the aggregated stats for past 30 days by default if `startDate` and `endDate` OR `days` is not passed. The date range can not exceed 90 days
     *
     * @param {Brevo.GetEmailEventReportRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.getEmailEventReport()
     */
    getEmailEventReport(request?: Brevo.GetEmailEventReportRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetEmailEventReportResponse>;
    private __getEmailEventReport;
    /**
     * @param {Brevo.GetSmtpReportRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.getSmtpReport()
     */
    getSmtpReport(request?: Brevo.GetSmtpReportRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSmtpReportResponse>;
    private __getSmtpReport;
    /**
     * @param {unknown} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.postPreviewSmtpEmailTemplates({
     *         "key": "value"
     *     })
     */
    postPreviewSmtpEmailTemplates(request?: unknown, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.PostPreviewSmtpEmailTemplatesResponse>;
    private __postPreviewSmtpEmailTemplates;
    /**
     * @param {Brevo.GetSmtpTemplatesRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.getSmtpTemplates()
     */
    getSmtpTemplates(request?: Brevo.GetSmtpTemplatesRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSmtpTemplatesResponse>;
    private __getSmtpTemplates;
    /**
     * @param {Brevo.CreateSmtpTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.transactionalEmails.createSmtpTemplate({
     *         sender: {},
     *         subject: "Thanks for your purchase !",
     *         templateName: "Order Confirmation - EN"
     *     })
     */
    createSmtpTemplate(request: Brevo.CreateSmtpTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateSmtpTemplateResponse>;
    private __createSmtpTemplate;
    /**
     * @param {Brevo.GetSmtpTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.getSmtpTemplate({
     *         templateId: 1000000
     *     })
     */
    getSmtpTemplate(request: Brevo.GetSmtpTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSmtpTemplateOverview>;
    private __getSmtpTemplate;
    /**
     * @param {Brevo.UpdateSmtpTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.updateSmtpTemplate({
     *         templateId: 1000000
     *     })
     */
    updateSmtpTemplate(request: Brevo.UpdateSmtpTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateSmtpTemplate;
    /**
     * @param {Brevo.DeleteSmtpTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.deleteSmtpTemplate({
     *         templateId: 1000000
     *     })
     */
    deleteSmtpTemplate(request: Brevo.DeleteSmtpTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteSmtpTemplate;
    /**
     * @param {Brevo.SendTestTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.transactionalEmails.sendTestTemplate({
     *         templateId: 1000000,
     *         body: {}
     *     })
     */
    sendTestTemplate(request: Brevo.SendTestTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __sendTestTemplate;
}
