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 ContactsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class ContactsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<ContactsClient.Options>;
    constructor(options: ContactsClient.Options);
    /**
     * @param {Brevo.GetContactsRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.TooManyRequestsError}
     *
     * @example
     *     await client.contacts.getContacts()
     */
    getContacts(request?: Brevo.GetContactsRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetContacts>;
    private __getContacts;
    /**
     * <Note>Follow this format when passing a "SMS" phone number as an attribute.
     * Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx</Note>
     * Creates new contacts on Brevo. Contacts can be created by passing either - <br><br> 1. email address of the contact (email_id),  <br> 2. phone number of the contact (to be passed as "SMS" field in "attributes" along with proper country code), For example- {"SMS":"+91xxxxxxxxxx"} or {"SMS":"0091xxxxxxxxxx"} <br> 3. ext_id <br>
     *
     * @param {Brevo.CreateContactRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.TooEarlyError}
     *
     * @example
     *     await client.contacts.createContact()
     */
    createContact(request?: Brevo.CreateContactRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateContactResponse | undefined>;
    private __createContact;
    /**
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.contacts.getAttributes()
     */
    getAttributes(requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetAttributesResponse>;
    private __getAttributes;
    /**
     * @param {Brevo.CreateAttributeRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.createAttribute({
     *         attributeCategory: "normal",
     *         attributeName: "attributeName"
     *     })
     */
    createAttribute(request: Brevo.CreateAttributeRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __createAttribute;
    /**
     * @param {Brevo.UpdateAttributeRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.updateAttribute({
     *         attributeCategory: "category",
     *         attributeName: "attributeName"
     *     })
     */
    updateAttribute(request: Brevo.UpdateAttributeRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateAttribute;
    /**
     * @param {Brevo.DeleteAttributeRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.deleteAttribute({
     *         attributeCategory: "normal",
     *         attributeName: "attributeName"
     *     })
     */
    deleteAttribute(request: Brevo.DeleteAttributeRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteAttribute;
    /**
     * @param {Brevo.DeleteMultiAttributeOptionsRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.deleteMultiAttributeOptions({
     *         attributeType: "multiple-choice",
     *         multipleChoiceAttribute: "multipleChoiceAttribute",
     *         multipleChoiceAttributeOption: "multipleChoiceAttributeOption"
     *     })
     */
    deleteMultiAttributeOptions(request: Brevo.DeleteMultiAttributeOptionsRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteMultiAttributeOptions;
    /**
     * @param {Brevo.UpdateBatchContactsRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.updateBatchContacts()
     */
    updateBatchContacts(request?: Brevo.UpdateBatchContactsRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateBatchContacts;
    /**
     * <Note title="How to use attributes param?">attributes param in this endpoint is an object containing key-value pairs where values can be either a string, integer, array, or boolean. You can create key-value pairs with these four datatypes. When a value is an array, it should be an array of strings.</Note>
     *
     * @param {Brevo.CreateDoiContactRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.createDoiContact({
     *         email: "elly@example.com",
     *         includeListIds: [36],
     *         redirectionUrl: "http://requestb.in/173lyyx1",
     *         templateId: 2
     *     })
     */
    createDoiContact(request: Brevo.CreateDoiContactRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __createDoiContact;
    /**
     * It returns the background process ID which on completion calls the notify URL that you have set in the input. File will be available in csv.
     *
     * @param {Brevo.RequestContactExportRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.TooManyRequestsError}
     *
     * @example
     *     await client.contacts.requestContactExport({
     *         customContactFilter: {}
     *     })
     */
    requestContactExport(request: Brevo.RequestContactExportRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.RequestContactExportResponse>;
    private __requestContactExport;
    /**
     * <Note>Ongoing changes for this endpoint
     * We're dropping support for the response attributes totalSubscribers and totalBlacklisted.
     * These are non breaking changes.
     * The default value for the attributes will be 0.
     * The uniqueSubscribers field is deprecated</Note>
     *
     * @param {Brevo.GetFoldersRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.getFolders()
     */
    getFolders(request?: Brevo.GetFoldersRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetFoldersResponse>;
    private __getFolders;
    /**
     * @param {Brevo.CreateUpdateFolder} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.createFolder({})
     */
    createFolder(request: Brevo.CreateUpdateFolder, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateFolderResponse>;
    private __createFolder;
    /**
     * <Note>Ongoing changes for this endpoint.
     * We're dropping support for the response attributes totalSubscribers and totalBlacklisted.
     * These are non breaking changes. The default value for the attributes will be 0.</Note>
     *
     * @param {Brevo.GetFolderRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.getFolder({
     *         folderId: 1000000
     *     })
     */
    getFolder(request: Brevo.GetFolderRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetFolder>;
    private __getFolder;
    /**
     * @param {Brevo.UpdateFolderRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.updateFolder({
     *         folderId: 1000000,
     *         body: {}
     *     })
     */
    updateFolder(request: Brevo.UpdateFolderRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateFolder;
    /**
     * @param {Brevo.DeleteFolderRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.deleteFolder({
     *         folderId: 1000000
     *     })
     */
    deleteFolder(request: Brevo.DeleteFolderRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteFolder;
    /**
     * <Note>Ongoing changes for this endpoint.
     * We're dropping support for the response attributes totalSubscribers and totalBlacklisted.
     * These are non breaking changes. The default value for the attributes will be 0.</Note>
     *
     * @param {Brevo.GetFolderListsRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.getFolderLists({
     *         folderId: 1000000
     *     })
     */
    getFolderLists(request: Brevo.GetFolderListsRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetFolderListsResponse>;
    private __getFolderLists;
    /**
     * It returns the background process ID which on completion calls the notify URL that you have set in the input. **Note**: - Any contact attribute that doesn't exist in your account will be ignored at import end.
     *
     * @param {Brevo.ImportContactsRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.importContacts()
     */
    importContacts(request?: Brevo.ImportContactsRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.ImportContactsResponse>;
    private __importContacts;
    /**
     * <Note>Ongoing changes for this endpoint.
     * We're dropping support for the response attributes totalSubscribers and totalBlacklisted.
     * These are non breaking changes. The default value for the attributes will be 0.</Note>
     *
     * @param {Brevo.GetListsRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.getLists()
     */
    getLists(request?: Brevo.GetListsRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetListsResponse>;
    private __getLists;
    /**
     * @param {Brevo.CreateListRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.createList({
     *         folderId: 2,
     *         name: "Magento Customer - ES"
     *     })
     */
    createList(request: Brevo.CreateListRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.CreateListResponse>;
    private __createList;
    /**
     * @param {Brevo.GetListRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.getList({
     *         listId: 1000000
     *     })
     */
    getList(request: Brevo.GetListRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetListResponse>;
    private __getList;
    /**
     * @param {Brevo.UpdateListRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.updateList({
     *         listId: 1000000
     *     })
     */
    updateList(request: Brevo.UpdateListRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateList;
    /**
     * @param {Brevo.DeleteListRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.deleteList({
     *         listId: 1000000
     *     })
     */
    deleteList(request: Brevo.DeleteListRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteList;
    /**
     * @param {Brevo.GetContactsFromListRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.getContactsFromList({
     *         listId: 1000000
     *     })
     */
    getContactsFromList(request: Brevo.GetContactsFromListRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetContacts>;
    private __getContactsFromList;
    /**
     * @param {Brevo.AddContactToListRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.addContactToList({
     *         listId: 1000000,
     *         body: {
     *             emails: ["jeff32@example.com", "jim56@example.com"]
     *         }
     *     })
     *
     * @example
     *     await client.contacts.addContactToList({
     *         listId: 1000000,
     *         body: {
     *             extIds: ["ext234", "ext456"]
     *         }
     *     })
     *
     * @example
     *     await client.contacts.addContactToList({
     *         listId: 1000000,
     *         body: {
     *             ids: [1, 2]
     *         }
     *     })
     */
    addContactToList(request: Brevo.AddContactToListRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.PostContactInfo>;
    private __addContactToList;
    /**
     * @param {Brevo.RemoveContactFromListRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.removeContactFromList({
     *         listId: 1000000,
     *         body: {
     *             all: true
     *         }
     *     })
     *
     * @example
     *     await client.contacts.removeContactFromList({
     *         listId: 1000000,
     *         body: {
     *             emails: ["jeff32@example.com", "jim56@example.com"]
     *         }
     *     })
     *
     * @example
     *     await client.contacts.removeContactFromList({
     *         listId: 1000000,
     *         body: {
     *             extIds: ["ext234", "ext456"]
     *         }
     *     })
     *
     * @example
     *     await client.contacts.removeContactFromList({
     *         listId: 1000000,
     *         body: {
     *             ids: [1, 2]
     *         }
     *     })
     */
    removeContactFromList(request: Brevo.RemoveContactFromListRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.PostContactInfo>;
    private __removeContactFromList;
    /**
     * @param {Brevo.GetSegmentsRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     *
     * @example
     *     await client.contacts.getSegments()
     */
    getSegments(request?: Brevo.GetSegmentsRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetSegmentsResponse>;
    private __getSegments;
    /**
     * <Note>Follow this format when passing a "SMS" phone number as an attribute.
     * Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx</Note>
     * There are 2 ways to get a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL), phone_id (for SMS) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL, SMS and ID of the contact.   <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, phone_id for SMS attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute <br><br>Along with the contact details, this endpoint will show the statistics of contact for the recent 90 days by default. To fetch the earlier statistics, please use Get contact campaign stats ``https://developers.brevo.com/reference/contacts-7#getcontactstats`` endpoint with the appropriate date ranges.
     *
     * @param {Brevo.GetContactInfoRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.getContactInfo({
     *         identifier: "identifier"
     *     })
     */
    getContactInfo(request: Brevo.GetContactInfoRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetContactInfoResponse>;
    private __getContactInfo;
    /**
     * <Note>Follow this format when passing a "SMS" phone number as an attribute.
     * Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx <br><br> If a blocklisted contact's email address is updated, it is going to remove that blocklisting from the contact and they will be resubscribed.</Note>
     * There are 2 ways to update a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact.   <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE attribute
     *
     * @param {Brevo.UpdateContactRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.TooEarlyError}
     *
     * @example
     *     await client.contacts.updateContact({
     *         identifier: "identifier"
     *     })
     */
    updateContact(request: Brevo.UpdateContactRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateContact;
    /**
     * There are 2 ways to delete a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact.   <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute.
     *
     * @param {Brevo.DeleteContactRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.MethodNotAllowedError}
     *
     * @example
     *     await client.contacts.deleteContact({
     *         identifier: "identifier"
     *     })
     */
    deleteContact(request: Brevo.DeleteContactRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteContact;
    /**
     * @param {Brevo.GetContactStatsRequest} request
     * @param {ContactsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     *
     * @example
     *     await client.contacts.getContactStats({
     *         identifier: "identifier"
     *     })
     */
    getContactStats(request: Brevo.GetContactStatsRequest, requestOptions?: ContactsClient.RequestOptions): core.HttpResponsePromise<Brevo.GetContactStatsResponse>;
    private __getContactStats;
}
