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 SmsCampaignsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class SmsCampaignsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<SmsCampaignsClient.Options>;
    constructor(options: SmsCampaignsClient.Options);
    /**
     * Retrieve a paginated list of all your SMS campaigns with their statistics and recipient information. Results can be filtered by status and date range, with a default limit of 500 and maximum of 1000 per page. The sort order defaults to descending by creation date; date filters are only available when status is not passed or is set to sent.
     *
     * @param {Brevo.GetSmsCampaignsRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.getSmsCampaigns()
     */
    getSmsCampaigns(request?: Brevo.GetSmsCampaignsRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSmsCampaignsResponse>;
    private __getSmsCampaigns;
    /**
     * Create a new SMS campaign with the required name, sender, and content fields. The sender name is limited to 11 alphanumeric characters or 15 numeric characters, and the content should stay within 160 characters per SMS segment. If a scheduledAt date is provided, listIds in recipients become mandatory; accounts under validation are limited to 4 total campaigns and campaigns with more than 10 recipients will be saved as draft.
     *
     * @param {Brevo.CreateSmsCampaignRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.createSmsCampaign({
     *         content: "Get a discount by visiting our NY store and saying : Happy Spring!",
     *         name: "Spring Promo Code",
     *         sender: "MyShop"
     *     })
     */
    createSmsCampaign(request: Brevo.CreateSmsCampaignRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateSmsCampaignResponse>;
    private __createSmsCampaign;
    /**
     * Retrieve detailed information about a specific SMS campaign by its ID, including campaign content, sender, recipients with list names, statistics (delivered, sent, bounces, unsubscriptions, answered), and tags. Unlike the list endpoint, recipients are returned as objects with id and name fields rather than plain IDs.
     *
     * @param {Brevo.GetSmsCampaignRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.getSmsCampaign({
     *         campaignId: 1000000
     *     })
     */
    getSmsCampaign(request: Brevo.GetSmsCampaignRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSmsCampaignResponse>;
    private __getSmsCampaign;
    /**
     * Update an existing SMS campaign''s properties such as name, sender, content, recipients, scheduled date, organisation prefix, and unsubscribe instructions. The request body must contain at least one valid field to update. The campaign must exist and must be of type SMS; if a scheduledAt is provided, valid recipients must be present either in the request or already configured on the campaign.
     *
     * @param {Brevo.UpdateSmsCampaignRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.updateSmsCampaign({
     *         campaignId: 1000000
     *     })
     */
    updateSmsCampaign(request: Brevo.UpdateSmsCampaignRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateSmsCampaign;
    /**
     * Delete an SMS campaign by its campaign ID. Only campaigns that have not been scheduled or sent can be deleted; attempting to delete a campaign that is queued, in process, or has been sent with recipients will return a 403 permission denied error.
     *
     * @param {Brevo.DeleteSmsCampaignRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.deleteSmsCampaign({
     *         campaignId: 1000000
     *     })
     */
    deleteSmsCampaign(request: Brevo.DeleteSmsCampaignRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteSmsCampaign;
    /**
     * It returns the background process ID which on completion calls the notify URL that you have set in the input.
     *
     * @param {Brevo.RequestSmsRecipientExportRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.requestSmsRecipientExport({
     *         campaignId: 1000000,
     *         recipientsType: "all"
     *     })
     */
    requestSmsRecipientExport(request: Brevo.RequestSmsRecipientExportRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<Brevo.RequestSmsRecipientExportResponse>;
    private __requestSmsRecipientExport;
    /**
     * Send an existing SMS campaign immediately by scheduling it for the current time. The system verifies your account''s SMS credit balance before dispatching; if credits are insufficient or the remaining credit is less than the number of recipients, a 402 error is returned. The campaign must have valid recipients and content already configured.
     *
     * @param {Brevo.SendSmsCampaignNowRequest} request
     * @param {SmsCampaignsClient.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.smsCampaigns.sendSmsCampaignNow({
     *         campaignId: 1000000
     *     })
     */
    sendSmsCampaignNow(request: Brevo.SendSmsCampaignNowRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __sendSmsCampaignNow;
    /**
     * Send report of Sent and Archived campaign, to the specified email addresses, with respective data and a pdf attachment in detail.
     *
     * @param {Brevo.SendSmsReportRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.sendSmsReport({
     *         campaignId: 1000000,
     *         body: {
     *             email: {
     *                 body: "Please find attached the report of our last email campaign.",
     *                 to: ["jim.suehan@example.com"]
     *             }
     *         }
     *     })
     */
    sendSmsReport(request: Brevo.SendSmsReportRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __sendSmsReport;
    /**
     * Send a test SMS to a specified phone number to preview the campaign before sending it to all recipients. The phone number must belong to one of your existing contacts in your Brevo account and must not be blacklisted. The number should include the country code (e.g. 33689965433).
     *
     * @param {Brevo.SendTestSmsRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.sendTestSms({
     *         campaignId: 1000000
     *     })
     */
    sendTestSms(request: Brevo.SendTestSmsRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __sendTestSms;
    /**
     * Update the status of an SMS 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.UpdateSmsCampaignStatusRequest} request
     * @param {SmsCampaignsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.smsCampaigns.updateSmsCampaignStatus({
     *         campaignId: 1000000,
     *         body: {}
     *     })
     */
    updateSmsCampaignStatus(request: Brevo.UpdateSmsCampaignStatusRequest, requestOptions?: SmsCampaignsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateSmsCampaignStatus;
}
