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 EmailCampaignsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class EmailCampaignsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<EmailCampaignsClient.Options>;
    constructor(options: EmailCampaignsClient.Options);
    /**
     * <Note>The response payload for this endpoint has changed
     * You now need to specify which type of statistics you would like to retrieve. For more information visit [this page](https://developers.brevo.com/changelog/2023/2/7).</Note>
     *
     * @param {Brevo.GetEmailCampaignsRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.getEmailCampaigns()
     */
    getEmailCampaigns(request?: Brevo.GetEmailCampaignsRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetEmailCampaignsResponse>;
    private __getEmailCampaigns;
    /**
     * Create a new email campaign. The campaign requires at minimum a name and sender details, and is created in draft status by default. You must provide email content via one of three mutually exclusive options: htmlContent (inline HTML), htmlUrl (remote URL), or templateId (existing template); additionally, A/B testing can be enabled by setting abTesting to true with subjectA and subjectB, but this is incompatible with sendAtBestTime.
     *
     * @param {Brevo.CreateEmailCampaignRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.MethodNotAllowedError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.createEmailCampaign({
     *         name: "Newsletter - May 2017",
     *         sender: {}
     *     })
     */
    createEmailCampaign(request: Brevo.CreateEmailCampaignRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateEmailCampaignResponse>;
    private __createEmailCampaign;
    /**
     * Upload an image to your account''s image gallery by providing an absolute URL to the image. The maximum allowed image size is 2MB and supported formats are jpeg, jpg, png, bmp, and gif; local file uploads are not supported.
     *
     * @param {Brevo.UploadImageToGalleryRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.uploadImageToGallery({
     *         imageUrl: "https://somedomain.com/image1.jpg"
     *     })
     */
    uploadImageToGallery(request: Brevo.UploadImageToGalleryRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.UploadImageToGalleryResponse>;
    private __uploadImageToGallery;
    /**
     * Retrieve detailed information about a specific email campaign by its ID, including recipients, statistics, and HTML content. Use the statistics query parameter to select which statistics to include (globalStats, linksStats, statsByDomain, statsByDevice, or statsByBrowser); statsByDevice and statsByBrowser are only available on this single-campaign endpoint. You can exclude HTML content from the response by setting excludeHtmlContent to true.
     *
     * @param {Brevo.GetEmailCampaignRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.getEmailCampaign({
     *         campaignId: 1000000
     *     })
     */
    getEmailCampaign(request: Brevo.GetEmailCampaignRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetEmailCampaignResponse>;
    private __getEmailCampaign;
    /**
     * Update an existing email campaign''s properties such as name, subject, content, sender, recipients, schedule, and A/B testing configuration. The campaign must exist and the request body must contain at least one valid field to update. Only draft or scheduled campaigns can be modified; if sendAtBestTime is enabled, IP warmup will be automatically disabled.
     *
     * @param {Brevo.UpdateEmailCampaignRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.MethodNotAllowedError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.updateEmailCampaign({
     *         campaignId: 1000000
     *     })
     */
    updateEmailCampaign(request: Brevo.UpdateEmailCampaignRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateEmailCampaign;
    /**
     * Delete an email campaign by its campaign ID. Only campaigns that have not been scheduled can be deleted; attempting to delete a campaign that has already been scheduled will return a 403 permission denied error. Related data in templates, newsletter builder, and schedule collections is also cleaned up.
     *
     * @param {Brevo.DeleteEmailCampaignRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.deleteEmailCampaign({
     *         campaignId: 1000000
     *     })
     */
    deleteEmailCampaign(request: Brevo.DeleteEmailCampaignRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteEmailCampaign;
    /**
     * Obtain winning version of an A/B test email campaign
     *
     * @param {Brevo.GetAbTestCampaignResultRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.getAbTestCampaignResult({
     *         campaignId: 1000000
     *     })
     */
    getAbTestCampaignResult(request: Brevo.GetAbTestCampaignResultRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetAbTestCampaignResultResponse>;
    private __getAbTestCampaignResult;
    /**
     * Export the recipients of a sent email campaign as an asynchronous process, filtered by recipient type (e.g. openers, clickers, hardBounces). The recipientsType field is required and determines which subset of recipients to export. An optional notifyURL webhook will be called once the export is complete, and the response returns a processId to track the export status.
     *
     * @param {Brevo.EmailExportRecipientsRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.emailExportRecipients({
     *         campaignId: 1000000,
     *         recipientsType: "all"
     *     })
     */
    emailExportRecipients(request: Brevo.EmailExportRecipientsRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.EmailExportRecipientsResponse>;
    private __emailExportRecipients;
    /**
     * Send an existing email campaign immediately by scheduling it for the current time. The campaign must have valid recipients and content configured before sending. The system verifies your account''s send limit and credit balance before dispatching; if credits are insufficient, a 402 error is returned.
     *
     * @param {Brevo.SendEmailCampaignNowRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.PaymentRequiredError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.sendEmailCampaignNow({
     *         campaignId: 1000000
     *     })
     */
    sendEmailCampaignNow(request: Brevo.SendEmailCampaignNowRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __sendEmailCampaignNow;
    /**
     * A PDF will be sent to the specified email addresses
     *
     * @param {Brevo.SendReportRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.sendReport({
     *         campaignId: 1000000,
     *         body: {
     *             email: {
     *                 body: "Please find attached the report of our last email campaign.",
     *                 to: ["jim.suehan@example.com"]
     *             }
     *         }
     *     })
     */
    sendReport(request: Brevo.SendReportRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __sendReport;
    /**
     * Send a test version of an email campaign to specified email addresses or your entire test list. If the emailTo array is left empty, the test mail will be sent to all addresses in your test list. You can send a maximum of 50 test emails per day.
     *
     * @param {Brevo.SendTestEmailRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.sendTestEmail({
     *         campaignId: 1000000,
     *         body: {}
     *     })
     */
    sendTestEmail(request: Brevo.SendTestEmailRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __sendTestEmail;
    /**
     * Get a unique URL to share & import an email template from one Brevo account to another.
     *
     * @param {Brevo.GetSharedTemplateUrlRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.MethodNotAllowedError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.getSharedTemplateUrl({
     *         campaignId: 1000000
     *     })
     */
    getSharedTemplateUrl(request: Brevo.GetSharedTemplateUrlRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSharedTemplateUrlResponse>;
    private __getSharedTemplateUrl;
    /**
     * Update the status of an email campaign, such as suspending, archiving, or replicating it. Available status values include suspended, archive, darchive, sent, queued, replicate, replicateTemplate, cancel, and draft. Note that the replicateTemplate status is only available for template type campaigns.
     *
     * @param {Brevo.UpdateCampaignStatusRequest} request
     * @param {EmailCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.emailCampaigns.updateCampaignStatus({
     *         campaignId: 1000000,
     *         body: {}
     *     })
     */
    updateCampaignStatus(request: Brevo.UpdateCampaignStatusRequest, requestOptions?: EmailCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateCampaignStatus;
}
