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 ProgramClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class ProgramClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<ProgramClient.Options>;
    constructor(options: ProgramClient.Options);
    /**
     * Returns list of loyalty programs
     *
     * @param {Brevo.GetLpListRequest} request
     * @param {ProgramClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.program.getLpList()
     */
    getLpList(request?: Brevo.GetLpListRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<Brevo.GetLpListResponse>;
    private __getLpList;
    /**
     * Creates loyalty program
     *
     * @param {Brevo.CreateNewLpRequest} request
     * @param {ProgramClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.ConflictError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.program.createNewLp({
     *         name: "name"
     *     })
     */
    createNewLp(request: Brevo.CreateNewLpRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<Brevo.LoyaltyProgram>;
    private __createNewLp;
    /**
     * Returns loyalty program
     *
     * @param {Brevo.GetLoyaltyProgramInfoRequest} request
     * @param {ProgramClient.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.program.getLoyaltyProgramInfo({
     *         pid: "pid"
     *     })
     */
    getLoyaltyProgramInfo(request: Brevo.GetLoyaltyProgramInfoRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<Brevo.LoyaltyProgram>;
    private __getLoyaltyProgramInfo;
    /**
     * Updates loyalty program
     *
     * @param {Brevo.UpdateLoyaltyProgramRequest} request
     * @param {ProgramClient.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.program.updateLoyaltyProgram({
     *         pid: "pid",
     *         name: "name"
     *     })
     */
    updateLoyaltyProgram(request: Brevo.UpdateLoyaltyProgramRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<Brevo.LoyaltyProgram>;
    private __updateLoyaltyProgram;
    /**
     * Deletes Loyalty Program
     *
     * @param {Brevo.DeleteLoyaltyProgramRequest} request
     * @param {ProgramClient.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.program.deleteLoyaltyProgram({
     *         pid: "pid"
     *     })
     */
    deleteLoyaltyProgram(request: Brevo.DeleteLoyaltyProgramRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteLoyaltyProgram;
    /**
     * Partially updates loyalty program
     *
     * @param {Brevo.PartiallyUpdateLoyaltyProgramRequest} request
     * @param {ProgramClient.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.program.partiallyUpdateLoyaltyProgram({
     *         pid: "pid"
     *     })
     */
    partiallyUpdateLoyaltyProgram(request: Brevo.PartiallyUpdateLoyaltyProgramRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<Brevo.LoyaltyProgram>;
    private __partiallyUpdateLoyaltyProgram;
    /**
     * Get Information of balances, tiers, rewards and subscription members for a subscription
     *
     * @param {Brevo.GetParameterSubscriptionInfoRequest} request
     * @param {ProgramClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.program.getParameterSubscriptionInfo({
     *         pid: "pid"
     *     })
     */
    getParameterSubscriptionInfo(request: Brevo.GetParameterSubscriptionInfoRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<Brevo.GetParameterSubscriptionInfoResponse>;
    private __getParameterSubscriptionInfo;
    /**
     * Delete subscription for a contact
     *
     * @param {Brevo.DeleteContactSubscriptionRequest} request
     * @param {ProgramClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.program.deleteContactSubscription({
     *         pid: "pid",
     *         cid: 1
     *     })
     */
    deleteContactSubscription(request: Brevo.DeleteContactSubscriptionRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteContactSubscription;
    /**
     * Publishes loyalty program
     *
     * @param {Brevo.PublishLoyaltyProgramRequest} request
     * @param {ProgramClient.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.program.publishLoyaltyProgram({
     *         pid: "pid"
     *     })
     */
    publishLoyaltyProgram(request: Brevo.PublishLoyaltyProgramRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<void>;
    private __publishLoyaltyProgram;
    /**
     * Add member to a subscription
     *
     * @param {Brevo.SubscribeMemberToASubscriptionRequest} request
     * @param {ProgramClient.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.program.subscribeMemberToASubscription({
     *         pid: "pid",
     *         memberContactIds: [1]
     *     })
     */
    subscribeMemberToASubscription(request: Brevo.SubscribeMemberToASubscriptionRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<Brevo.SubscribeMemberToASubscriptionResponse>;
    private __subscribeMemberToASubscription;
    /**
     * Deletes member from a subscription
     *
     * @param {Brevo.DeleteContactMembersRequest} request
     * @param {ProgramClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.program.deleteContactMembers({
     *         pid: "pid",
     *         memberContactIds: "memberContactIds"
     *     })
     */
    deleteContactMembers(request: Brevo.DeleteContactMembersRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteContactMembers;
    /**
     * Subscribes to a loyalty program
     *
     * @param {Brevo.SubscribeToLoyaltyProgramRequest} request
     * @param {ProgramClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnauthorizedError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnprocessableEntityError}
     * @throws {@link Brevo.InternalServerError}
     *
     * @example
     *     await client.program.subscribeToLoyaltyProgram({
     *         pid: "pid",
     *         contactId: 1
     *     })
     */
    subscribeToLoyaltyProgram(request: Brevo.SubscribeToLoyaltyProgramRequest, requestOptions?: ProgramClient.RequestOptions): core.HttpResponsePromise<Brevo.SubscribeToLoyaltyProgramResponse>;
    private __subscribeToLoyaltyProgram;
}
