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 EcommerceClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class EcommerceClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<EcommerceClient.Options>;
    constructor(options: EcommerceClient.Options);
    /**
     * @param {Brevo.GetCategoriesRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.getCategories()
     */
    getCategories(request?: Brevo.GetCategoriesRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetCategoriesResponse>;
    private __getCategories;
    /**
     * @param {Brevo.CreateUpdateCategoryRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.createUpdateCategory({
     *         id: "CAT123"
     *     })
     */
    createUpdateCategory(request: Brevo.CreateUpdateCategoryRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateUpdateCategoryResponse | undefined>;
    private __createUpdateCategory;
    /**
     * @param {Brevo.CreateUpdateBatchCategoryRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.createUpdateBatchCategory({
     *         categories: [{
     *                 id: "CAT123"
     *             }]
     *     })
     */
    createUpdateBatchCategory(request: Brevo.CreateUpdateBatchCategoryRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateUpdateBatchCategoryResponse>;
    private __createUpdateBatchCategory;
    /**
     * @param {Brevo.GetCategoryInfoRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.ecommerce.getCategoryInfo({
     *         id: "id"
     *     })
     */
    getCategoryInfo(request: Brevo.GetCategoryInfoRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetCategoryDetails>;
    private __getCategoryInfo;
    /**
     * Getting access to Brevo eCommerce.
     *
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.ecommerce.activateTheECommerceApp()
     */
    activateTheECommerceApp(requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<void>;
    private __activateTheECommerceApp;
    /**
     * @param {Brevo.GetEcommerceAttributionMetricsRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.getAttributionMetricsForOneOrMoreBrevoCampaignsOrWorkflows({
     *         periodFrom: "2022-01-02T00:00:00Z",
     *         periodTo: "2022-01-03T00:00:00Z"
     *     })
     */
    getAttributionMetricsForOneOrMoreBrevoCampaignsOrWorkflows(request?: Brevo.GetEcommerceAttributionMetricsRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetEcommerceAttributionMetricsResponse>;
    private __getAttributionMetricsForOneOrMoreBrevoCampaignsOrWorkflows;
    /**
     * @param {Brevo.GetEcommerceAttributionMetricsConversionSourceConversionSourceIdRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.getDetailedAttributionMetricsForASingleBrevoCampaignOrWorkflow({
     *         conversionSource: "email_campaign",
     *         conversionSourceId: "sale"
     *     })
     */
    getDetailedAttributionMetricsForASingleBrevoCampaignOrWorkflow(request: Brevo.GetEcommerceAttributionMetricsConversionSourceConversionSourceIdRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetEcommerceAttributionMetricsConversionSourceConversionSourceIdResponse>;
    private __getDetailedAttributionMetricsForASingleBrevoCampaignOrWorkflow;
    /**
     * @param {Brevo.GetEcommerceAttributionProductsConversionSourceConversionSourceIdRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.getAttributedProductSalesForASingleBrevoCampaignOrWorkflow({
     *         conversionSource: "email_campaign",
     *         conversionSourceId: "sale"
     *     })
     */
    getAttributedProductSalesForASingleBrevoCampaignOrWorkflow(request: Brevo.GetEcommerceAttributionProductsConversionSourceConversionSourceIdRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetEcommerceAttributionProductsConversionSourceConversionSourceIdResponse>;
    private __getAttributedProductSalesForASingleBrevoCampaignOrWorkflow;
    /**
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     *
     * @example
     *     await client.ecommerce.getTheIso4217CompliantDisplayCurrencyCodeForYourBrevoAccount()
     */
    getTheIso4217CompliantDisplayCurrencyCodeForYourBrevoAccount(requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetEcommerceConfigDisplayCurrencyResponse>;
    private __getTheIso4217CompliantDisplayCurrencyCodeForYourBrevoAccount;
    /**
     * @param {Brevo.SetConfigDisplayCurrencyRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.UnprocessableEntityError}
     *
     * @example
     *     await client.ecommerce.setConfigDisplayCurrency({
     *         code: "EUR"
     *     })
     */
    setConfigDisplayCurrency(request: Brevo.SetConfigDisplayCurrencyRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.SetConfigDisplayCurrencyResponse>;
    private __setConfigDisplayCurrency;
    /**
     * Get all the orders
     *
     * @param {Brevo.GetOrdersRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.getOrders()
     */
    getOrders(request?: Brevo.GetOrdersRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<unknown>;
    private __getOrders;
    /**
     * Manages the transactional status of the order
     *
     * @param {Brevo.Order} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.createOrder({
     *         amount: 308.42,
     *         createdAt: "2021-07-29T20:59:23.383Z",
     *         id: "14",
     *         products: [{
     *                 price: 99.99,
     *                 productId: "P1"
     *             }],
     *         status: "completed",
     *         updatedAt: "2021-07-30T10:59:23.383Z"
     *     })
     */
    createOrder(request: Brevo.Order, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<void>;
    private __createOrder;
    /**
     * Create multiple orders at one time instead of one order at a time
     *
     * @param {Brevo.CreateBatchOrderRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.createBatchOrder({
     *         orders: [{
     *                 amount: 308.42,
     *                 createdAt: "2021-07-29T20:59:23.383Z",
     *                 id: "14",
     *                 products: [{
     *                         price: 99.99,
     *                         productId: "P1"
     *                     }],
     *                 status: "completed",
     *                 updatedAt: "2021-07-30T10:59:23.383Z"
     *             }]
     *     })
     */
    createBatchOrder(request: Brevo.CreateBatchOrderRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateBatchOrderResponse>;
    private __createBatchOrder;
    /**
     * @param {Brevo.GetProductsRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.getProducts()
     */
    getProducts(request?: Brevo.GetProductsRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetProductsResponse>;
    private __getProducts;
    /**
     * @param {Brevo.CreateUpdateProductRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.createUpdateProduct({
     *         id: "P11",
     *         name: "Iphone 11"
     *     })
     */
    createUpdateProduct(request: Brevo.CreateUpdateProductRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateUpdateProductResponse | undefined>;
    private __createUpdateProduct;
    /**
     * @param {Brevo.CreateUpdateBatchProductsRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.ecommerce.createUpdateBatchProducts({
     *         products: [{
     *                 id: "P11",
     *                 name: "Iphone 11"
     *             }]
     *     })
     */
    createUpdateBatchProducts(request: Brevo.CreateUpdateBatchProductsRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateUpdateBatchProductsResponse>;
    private __createUpdateBatchProducts;
    /**
     * @param {Brevo.GetProductInfoRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.ecommerce.getProductInfo({
     *         id: "id"
     *     })
     */
    getProductInfo(request: Brevo.GetProductInfoRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetProductDetails>;
    private __getProductInfo;
    /**
     * @param {Brevo.CreateProductAlertRequest} request
     * @param {EcommerceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.ecommerce.createProductAlert({
     *         id: "id",
     *         type: "back_in_stock"
     *     })
     */
    createProductAlert(request: Brevo.CreateProductAlertRequest, requestOptions?: EcommerceClient.RequestOptions): core.HttpResponsePromise<void>;
    private __createProductAlert;
}
