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 TierClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class TierClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<TierClient.Options>;
    constructor(options: TierClient.Options);
    /**
     * Manually assigns a tier to a specific membership.
     *
     * @param {Brevo.AddSubscriptionToTierRequest} request
     * @param {TierClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.ConflictError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.FailedDependencyError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.tier.addSubscriptionToTier({
     *         pid: "pid",
     *         cid: "cid",
     *         tid: "tid"
     *     })
     */
    addSubscriptionToTier(request: Brevo.AddSubscriptionToTierRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<Brevo.AddSubscriptionToTierResponse>;
    private __addSubscriptionToTier;
    /**
     * Returns the list of tier groups defined within the loyalty program.
     *
     * @param {Brevo.GetListOfTierGroupsRequest} request
     * @param {TierClient.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.tier.getListOfTierGroups({
     *         pid: "pid"
     *     })
     */
    getListOfTierGroups(request: Brevo.GetListOfTierGroupsRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<Brevo.GetListOfTierGroupsResponse>;
    private __getListOfTierGroups;
    /**
     * Creates a new tier group in a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
     *
     * @param {Brevo.CreateTierGroupRequest} request
     * @param {TierClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.ConflictError}
     * @throws {@link Brevo.UnprocessableEntityError}
     *
     * @example
     *     await client.tier.createTierGroup({
     *         pid: "pid",
     *         name: "name"
     *     })
     */
    createTierGroup(request: Brevo.CreateTierGroupRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<Brevo.TierGroup>;
    private __createTierGroup;
    /**
     * Returns tier group information.
     *
     * @param {Brevo.GetTierGroupRequest} request
     * @param {TierClient.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.tier.getTierGroup({
     *         pid: "pid",
     *         gid: "gid"
     *     })
     */
    getTierGroup(request: Brevo.GetTierGroupRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<Brevo.TierGroup>;
    private __getTierGroup;
    /**
     * Updates a tier group from a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
     *
     * @param {Brevo.UpdateTierGroupRequest} request
     * @param {TierClient.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.tier.updateTierGroup({
     *         pid: "pid",
     *         gid: "gid",
     *         downgradeStrategy: "real_time",
     *         name: "name",
     *         tierOrder: ["tierOrder"],
     *         upgradeStrategy: "real_time"
     *     })
     */
    updateTierGroup(request: Brevo.UpdateTierGroupRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<Brevo.TierGroup>;
    private __updateTierGroup;
    /**
     * Deletes a tier group from a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
     *
     * @param {Brevo.DeleteTierGroupRequest} request
     * @param {TierClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.ConflictError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.tier.deleteTierGroup({
     *         pid: "pid",
     *         gid: "gid"
     *     })
     */
    deleteTierGroup(request: Brevo.DeleteTierGroupRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteTierGroup;
    /**
     * Creates a new tier in a loyalty program tier group. *(The changes will take effect with the next publication of the loyalty program)*
     *
     * @param {Brevo.CreateTierForTierGroupRequest} request
     * @param {TierClient.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.tier.createTierForTierGroup({
     *         pid: "pid",
     *         gid: "gid",
     *         accessConditions: [{}],
     *         name: "name"
     *     })
     */
    createTierForTierGroup(request: Brevo.CreateTierForTierGroupRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<Brevo.Tier>;
    private __createTierForTierGroup;
    /**
     * Returns the list of tiers defined within the loyalty program.
     *
     * @param {Brevo.GetLoyaltyProgramTierRequest} request
     * @param {TierClient.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.tier.getLoyaltyProgramTier({
     *         pid: "pid"
     *     })
     */
    getLoyaltyProgramTier(request: Brevo.GetLoyaltyProgramTierRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<Brevo.GetLoyaltyProgramTierResponse>;
    private __getLoyaltyProgramTier;
    /**
     * Modifies an existing tier for the specified tier group *(The changes will take effect with the next publication of the loyalty program)*
     *
     * @param {Brevo.UpdateTierRequest} request
     * @param {TierClient.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.tier.updateTier({
     *         pid: "pid",
     *         tid: "tid",
     *         accessConditions: [{}],
     *         name: "name",
     *         tierRewards: [{}]
     *     })
     */
    updateTier(request: Brevo.UpdateTierRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<Brevo.Tier>;
    private __updateTier;
    /**
     * Deletes a tier from a loyalty program tier group. *(The changes will take effect with the next publication of the loyalty program)*
     *
     * @param {Brevo.DeleteTierRequest} request
     * @param {TierClient.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.tier.deleteTier({
     *         pid: "pid",
     *         tid: "tid"
     *     })
     */
    deleteTier(request: Brevo.DeleteTierRequest, requestOptions?: TierClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteTier;
}
