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 ConsentGroupsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class ConsentGroupsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<ConsentGroupsClient.Options>;
    constructor(options: ConsentGroupsClient.Options);
    /**
     * Returns a paginated list of consent groups for the account.
     *
     * <Note>This endpoint is only available when the Consent Groups feature is enabled for your account. Returns `403` if the feature is not activated.</Note>
     *
     * @param {Brevo.GetConsentGroupsRequest} request
     * @param {ConsentGroupsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.TooManyRequestsError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.consentGroups.getConsentGroups()
     */
    getConsentGroups(request?: Brevo.GetConsentGroupsRequest, requestOptions?: ConsentGroupsClient.RequestOptions): core.HttpResponsePromise<Brevo.ConsentGroupsListResponse>;
    private __getConsentGroups;
    /**
     * Creates a new consent group for the account.
     *
     * <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>
     *
     * @param {Brevo.CreateConsentGroupRequest} request
     * @param {ConsentGroupsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.ConflictError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.consentGroups.createConsentGroup({
     *         name: "Newsletter EU",
     *         signupMode: "manual"
     *     })
     */
    createConsentGroup(request: Brevo.CreateConsentGroupRequest, requestOptions?: ConsentGroupsClient.RequestOptions): core.HttpResponsePromise<Brevo.ConsentGroup>;
    private __createConsentGroup;
    /**
     * Returns a single consent group by ID for the account.
     *
     * <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>
     *
     * @param {Brevo.GetConsentGroupRequest} request
     * @param {ConsentGroupsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.consentGroups.getConsentGroup({
     *         id: 1000000
     *     })
     */
    getConsentGroup(request: Brevo.GetConsentGroupRequest, requestOptions?: ConsentGroupsClient.RequestOptions): core.HttpResponsePromise<Brevo.ConsentGroup>;
    private __getConsentGroup;
    /**
     * Updates name, description, or signupMode of a consent group. At least one field must be provided.
     *
     * <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>
     *
     * @param {Brevo.UpdateConsentGroupRequest} request
     * @param {ConsentGroupsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.ConflictError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.consentGroups.updateConsentGroup({
     *         id: 1000000
     *     })
     */
    updateConsentGroup(request: Brevo.UpdateConsentGroupRequest, requestOptions?: ConsentGroupsClient.RequestOptions): core.HttpResponsePromise<Brevo.ConsentGroup>;
    private __updateConsentGroup;
    /**
     * Deletes a consent group by ID and removes it from all associated contacts.
     *
     * <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>
     *
     * @param {Brevo.DeleteConsentGroupRequest} request
     * @param {ConsentGroupsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.ForbiddenError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.consentGroups.deleteConsentGroup({
     *         id: 1000000
     *     })
     */
    deleteConsentGroup(request: Brevo.DeleteConsentGroupRequest, requestOptions?: ConsentGroupsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteConsentGroup;
}
