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 BalanceClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class BalanceClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<BalanceClient.Options>;
    constructor(options: BalanceClient.Options);
    /**
     * Returns Active Balances
     *
     * @param {Brevo.GetLoyaltyBalanceProgramsPidActiveBalanceRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.getActiveBalancesApi({
     *         pid: "pid",
     *         contact_id: 1,
     *         balance_definition_id: "balance_definition_id"
     *     })
     */
    getActiveBalancesApi(request: Brevo.GetLoyaltyBalanceProgramsPidActiveBalanceRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.BalanceLimit>;
    private __getActiveBalancesApi;
    /**
     * Returns balance definition page
     *
     * @param {Brevo.GetBalanceDefinitionListRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.getBalanceDefinitionList({
     *         pid: "pid"
     *     })
     */
    getBalanceDefinitionList(request: Brevo.GetBalanceDefinitionListRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetBalanceDefinitionListResponse>;
    private __getBalanceDefinitionList;
    /**
     * Creates balance definition and returns information
     *
     * @param {Brevo.PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.createBalanceDefinition({
     *         pid: "pid",
     *         name: "name",
     *         unit: "POINTS"
     *     })
     */
    createBalanceDefinition(request: Brevo.PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.BalanceDefinition>;
    private __createBalanceDefinition;
    /**
     * Returns balance definition
     *
     * @param {Brevo.GetBalanceDefinitionRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.getBalanceDefinition({
     *         pid: "pid",
     *         bdid: "bdid"
     *     })
     */
    getBalanceDefinition(request: Brevo.GetBalanceDefinitionRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.BalanceDefinition>;
    private __getBalanceDefinition;
    /**
     * Updates Balance definition
     *
     * @param {Brevo.UpdateBalanceDefinitionRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.FailedDependencyError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.updateBalanceDefinition({
     *         pid: "pid",
     *         bdid: "bdid",
     *         name: "name",
     *         unit: "POINTS"
     *     })
     */
    updateBalanceDefinition(request: Brevo.UpdateBalanceDefinitionRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.BalanceDefinition>;
    private __updateBalanceDefinition;
    /**
     * Delete Balance definition
     *
     * @param {Brevo.DeleteBalanceDefinitionRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.deleteBalanceDefinition({
     *         pid: "pid",
     *         bdid: "bdid"
     *     })
     */
    deleteBalanceDefinition(request: Brevo.DeleteBalanceDefinitionRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteBalanceDefinition;
    /**
     * Creates balance limit and sends the created UUID along with the data
     *
     * @param {Brevo.CreateBalanceLimitRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.FailedDependencyError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.createBalanceLimit({
     *         pid: "pid",
     *         bdid: "bdid",
     *         constraintType: "transaction",
     *         durationUnit: "day",
     *         durationValue: 1,
     *         transactionType: "credit",
     *         value: 1
     *     })
     */
    createBalanceLimit(request: Brevo.CreateBalanceLimitRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.BalanceLimit>;
    private __createBalanceLimit;
    /**
     * Fetches balance limits and send the created UUID along with the data
     *
     * @param {Brevo.GetBalanceLimitRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.getBalanceLimit({
     *         pid: "pid",
     *         bdid: "bdid",
     *         blid: "blid"
     *     })
     */
    getBalanceLimit(request: Brevo.GetBalanceLimitRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.BalanceLimit>;
    private __getBalanceLimit;
    /**
     * Updates balance limit
     *
     * @param {Brevo.UpdateBalanceLimitRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.updateBalanceLimit({
     *         pid: "pid",
     *         bdid: "bdid",
     *         blid: "blid",
     *         constraintType: "transaction",
     *         durationUnit: "day",
     *         durationValue: 1,
     *         transactionType: "credit",
     *         value: 1
     *     })
     */
    updateBalanceLimit(request: Brevo.UpdateBalanceLimitRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.BalanceLimit>;
    private __updateBalanceLimit;
    /**
     * Delete balance limit
     *
     * @param {Brevo.DeleteBalanceLimitRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.deleteBalanceLimit({
     *         pid: "pid",
     *         bdid: "bdid",
     *         blid: "blid"
     *     })
     */
    deleteBalanceLimit(request: Brevo.DeleteBalanceLimitRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteBalanceLimit;
    /**
     * Returns balance list
     *
     * @param {Brevo.GetContactBalancesRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.getContactBalances({
     *         pid: "pid"
     *     })
     */
    getContactBalances(request: Brevo.GetContactBalancesRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetContactBalancesResponse>;
    private __getContactBalances;
    /**
     * Returns created order
     *
     * @param {Brevo.CreateBalanceOrderRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.createBalanceOrder({
     *         pid: "pid",
     *         amount: 1.1,
     *         balanceDefinitionId: "balanceDefinitionId",
     *         contactId: 1,
     *         dueAt: "dueAt",
     *         source: "source"
     *     })
     */
    createBalanceOrder(request: Brevo.CreateBalanceOrderRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateBalanceOrderResponse>;
    private __createBalanceOrder;
    /**
     * Returns subscription balances
     *
     * @param {Brevo.GetSubscriptionBalancesRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.getSubscriptionBalances({
     *         pid: "pid",
     *         cid: "cid"
     *     })
     */
    getSubscriptionBalances(request: Brevo.GetSubscriptionBalancesRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSubscriptionBalancesResponse>;
    private __getSubscriptionBalances;
    /**
     * Creates a balance for a contact
     *
     * @param {Brevo.PostLoyaltyBalanceProgramsPidSubscriptionsCidBalancesRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.createSubscriptionBalances({
     *         pid: "pid",
     *         cid: "cid",
     *         balanceDefinitionId: "balanceDefinitionId"
     *     })
     */
    createSubscriptionBalances(request: Brevo.PostLoyaltyBalanceProgramsPidSubscriptionsCidBalancesRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.PostLoyaltyBalanceProgramsPidSubscriptionsCidBalancesResponse>;
    private __createSubscriptionBalances;
    /**
     * Returns transaction history
     *
     * @param {Brevo.GetLoyaltyBalanceProgramsPidTransactionHistoryRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.getTransactionHistoryApi({
     *         pid: "pid",
     *         contactId: 1,
     *         balanceDefinitionId: "balanceDefinitionId"
     *     })
     */
    getTransactionHistoryApi(request: Brevo.GetLoyaltyBalanceProgramsPidTransactionHistoryRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.GetLoyaltyBalanceProgramsPidTransactionHistoryResponse>;
    private __getTransactionHistoryApi;
    /**
     * Creates new transaction and returns information
     *
     * @param {Brevo.BeginTransactionRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.beginTransaction({
     *         pid: "pid",
     *         amount: 1.1,
     *         balanceDefinitionId: "balanceDefinitionId"
     *     })
     */
    beginTransaction(request: Brevo.BeginTransactionRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.Transaction>;
    private __beginTransaction;
    /**
     * Cancels transaction
     *
     * @param {Brevo.CancelTransactionRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.cancelTransaction({
     *         pid: "pid",
     *         tid: "tid"
     *     })
     */
    cancelTransaction(request: Brevo.CancelTransactionRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.Transaction>;
    private __cancelTransaction;
    /**
     * Completes transaction
     *
     * @param {Brevo.CompleteTransactionRequest} request
     * @param {BalanceClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.balance.completeTransaction({
     *         pid: "pid",
     *         tid: "tid"
     *     })
     */
    completeTransaction(request: Brevo.CompleteTransactionRequest, requestOptions?: BalanceClient.RequestOptions): core.HttpResponsePromise<Brevo.Transaction>;
    private __completeTransaction;
}
