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);
    /**
     * Retrieve a paginated list of transactional contacts that have been blocked or unsubscribed, along with the reason for blocking (e.g. hard bounce, admin blocked, spam complaint, or unsubscription via email/API/Marketing Automation). Both `startDate` and `endDate` must be provided together when filtering by date range, and neither date can be in the future. Results default to 50 per page (max 100) and are sorted in descending order of record creation unless overridden with the `sort` parameter.
     *
     * @param {Brevo.GetTransacBlockedContactsRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.getTransacBlockedContacts()
     */
    getTransacBlockedContacts(request?: Brevo.GetTransacBlockedContactsRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetTransacBlockedContactsResponse>;
    private __getTransacBlockedContacts;
    /**
     * Unblock or resubscribe a transactional contact by removing their email address from the blacklist. The email address must be URL-encoded in the path parameter and must be a valid email format. If the contact is not found in the blocklist, a 404 error is returned.
     *
     * @param {Brevo.DeleteSmtpBlockedContactsEmailRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.deleteHardbounces()
     */
    deleteHardbounces(request?: Brevo.DeleteHardbouncesRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteHardbounces;
    /**
     * Send a transactional email to one or more recipients, either using inline HTML content or a pre-built template via `templateId`. You can schedule emails for future delivery using `scheduledAt` (UTC, up to 5-minute delay), send multiple personalized versions with `messageVersions` (max 2000 total recipients, 99 per version), and attach files via URL or base64-encoded content. A `sender` and `subject` are required when no `templateId` is provided; when a `templateId` is used, the template''s sender and subject are applied unless overridden.
     *
     * @param {Brevo.SendTransacEmailRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.getTransacEmailContent({
     *         uuid: "uuid"
     *     })
     */
    getTransacEmailContent(request: Brevo.GetTransacEmailContentRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetTransacEmailContentResponse>;
    private __getTransacEmailContent;
    /**
     * Delete SMTP transactional log entries identified by a message ID (enclosed in angle brackets with an @ sign) or a valid email address. Optionally narrow the deletion to a specific date range using `from_date` and `to_date` query parameters (YYYY-MM-DD format). The operation also removes any associated stored email preview content.
     *
     * @param {Brevo.DeleteSmtpLogIdentifierRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.getEmailEventReport()
     */
    getEmailEventReport(request?: Brevo.GetEmailEventReportRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetEmailEventReportResponse>;
    private __getEmailEventReport;
    /**
     * This endpoint will show the aggregated stats per day for the past 10 days by default if `startDate` and `endDate` OR `days` is not passed. The date range can not exceed 30 days.
     *
     * @param {Brevo.GetSmtpReportRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.getSmtpReport()
     */
    getSmtpReport(request?: Brevo.GetSmtpReportRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSmtpReportResponse>;
    private __getSmtpReport;
    /**
     * Generate a fully rendered preview of a transactional email template by resolving dynamic variables. Provide either an `email` address (to populate variables from the contact''s attributes) or a `params` object with key-value pairs for manual substitution; at least one of these is required alongside the mandatory `templateId`. The response includes the rendered HTML, subject, sender details, preview text, and any feed names used in the template.
     *
     * @param {Brevo.PostPreviewSmtpEmailTemplatesRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.postPreviewSmtpEmailTemplates({
     *         "key": "value"
     *     })
     */
    postPreviewSmtpEmailTemplates(request: Brevo.PostPreviewSmtpEmailTemplatesRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.PostPreviewSmtpEmailTemplatesResponse>;
    private __postPreviewSmtpEmailTemplates;
    /**
     * Retrieve a paginated list of all transactional email templates (including automation templates) with their details such as name, subject, sender, status, HTML content, and timestamps. Results default to 50 per page (max 1000) and are sorted in descending creation order unless overridden. You can filter by active/inactive status using `templateStatus` and by editor type using `editorType` (currently only `richTextEditor` is supported).
     *
     * @param {Brevo.GetSmtpTemplatesRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.getSmtpTemplates()
     */
    getSmtpTemplates(request?: Brevo.GetSmtpTemplatesRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSmtpTemplatesResponse>;
    private __getSmtpTemplates;
    /**
     * Create a new transactional email template with the specified sender, subject, and content. The `sender`, `subject`, and `templateName` fields are required. Template content can be provided via `htmlContent` (minimum 10 characters) or `htmlUrl`; at least one must be supplied. Templates are created as inactive by default unless `isActive` is explicitly set to `true`.
     *
     * @param {Brevo.CreateSmtpTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @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;
    /**
     * Retrieve the full details of a specific transactional email template by its numeric ID or custom template identifier string. The response includes the template name, subject, sender information, HTML content, active status, creation and modification timestamps, reply-to address, tag, and a `doiTemplate` flag indicating whether the template is a double opt-in template (detected by the presence of optin-related tags or variables in the content).
     *
     * @param {Brevo.GetSmtpTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.getSmtpTemplate({
     *         templateId: 1000000
     *     })
     */
    getSmtpTemplate(request: Brevo.GetSmtpTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSmtpTemplateOverview>;
    private __getSmtpTemplate;
    /**
     * Update an existing transactional email template by its numeric ID or custom template identifier string. All fields in the request body are optional; only the provided fields will be updated. You can update the template name, subject, sender, reply-to address, HTML content (via `htmlContent` or `htmlUrl`), active status, tag, attachment URL, and the personalized `toField`. Only one of sender email or sender ID should be provided per request.
     *
     * @param {Brevo.UpdateSmtpTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.updateSmtpTemplate({
     *         templateId: 1000000
     *     })
     */
    updateSmtpTemplate(request: Brevo.UpdateSmtpTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateSmtpTemplate;
    /**
     * Permanently delete a transactional email template by its numeric ID. Only inactive templates can be deleted; attempting to delete an active template returns a 405 error. To deactivate a template before deletion, use `PUT /smtp/templates/{templateId}` with `isActive` set to `false`. Deletion also removes associated newsletter template data and triggers asynchronous cleanup of shared assets.
     *
     * @param {Brevo.DeleteSmtpTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.deleteSmtpTemplate({
     *         templateId: 1000000
     *     })
     */
    deleteSmtpTemplate(request: Brevo.DeleteSmtpTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteSmtpTemplate;
    /**
     * Send a test email of the specified transactional template to one or more recipients. Provide an array of email addresses in the `emailTo` field; if left empty, the test mail is sent to your entire test list. You can send a maximum of 50 test emails per day, and all provided email addresses must be valid.
     *
     * @param {Brevo.SendTestTemplateRequest} request
     * @param {TransactionalEmailsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.transactionalEmails.sendTestTemplate({
     *         templateId: 1000000,
     *         body: {}
     *     })
     */
    sendTestTemplate(request: Brevo.SendTestTemplateRequest, requestOptions?: TransactionalEmailsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __sendTestTemplate;
}
