import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient"; import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient"; import * as core from "../../../../core"; import type * as Square from "../../../index"; import { CardsClient } from "../resources/cards/client/Client"; import { CustomAttributeDefinitionsClient } from "../resources/customAttributeDefinitions/client/Client"; import { CustomAttributesClient } from "../resources/customAttributes/client/Client"; import { GroupsClient } from "../resources/groups/client/Client"; import { SegmentsClient } from "../resources/segments/client/Client"; export declare namespace CustomersClient { type Options = BaseClientOptions; interface RequestOptions extends BaseRequestOptions { } } export declare class CustomersClient { protected readonly _options: NormalizedClientOptionsWithAuth; protected _customAttributeDefinitions: CustomAttributeDefinitionsClient | undefined; protected _groups: GroupsClient | undefined; protected _segments: SegmentsClient | undefined; protected _cards: CardsClient | undefined; protected _customAttributes: CustomAttributesClient | undefined; constructor(options?: CustomersClient.Options); get customAttributeDefinitions(): CustomAttributeDefinitionsClient; get groups(): GroupsClient; get segments(): SegmentsClient; get cards(): CardsClient; get customAttributes(): CustomAttributesClient; /** * Lists customer profiles associated with a Square account. * * Under normal operating conditions, newly created or updated customer profiles become available * for the listing operation in well under 30 seconds. Occasionally, propagation of the new or updated * profiles can take closer to one minute or longer, especially during network incidents and outages. * * @param {Square.ListCustomersRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.list({ * cursor: "cursor", * limit: 1, * sortField: "DEFAULT", * sortOrder: "DESC", * count: true * }) */ list(request?: Square.ListCustomersRequest, requestOptions?: CustomersClient.RequestOptions): Promise>; /** * Creates a new customer for a business. * * You must provide at least one of the following values in your request to this * endpoint: * * - `given_name` * - `family_name` * - `company_name` * - `email_address` * - `phone_number` * * @param {Square.CreateCustomerRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.create({ * givenName: "Amelia", * familyName: "Earhart", * emailAddress: "Amelia.Earhart@example.com", * address: { * addressLine1: "500 Electric Ave", * addressLine2: "Suite 600", * locality: "New York", * administrativeDistrictLevel1: "NY", * postalCode: "10003", * country: "US" * }, * phoneNumber: "+1-212-555-4240", * referenceId: "YOUR_REFERENCE_ID", * note: "a customer" * }) */ create(request?: Square.CreateCustomerRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __create; /** * Creates multiple [customer profiles](entity:Customer) for a business. * * This endpoint takes a map of individual create requests and returns a map of responses. * * You must provide at least one of the following values in each create request: * * - `given_name` * - `family_name` * - `company_name` * - `email_address` * - `phone_number` * * @param {Square.BulkCreateCustomersRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.batchCreate({ * customers: { * "8bb76c4f-e35d-4c5b-90de-1194cd9179f0": { * givenName: "Amelia", * familyName: "Earhart", * emailAddress: "Amelia.Earhart@example.com", * address: { * addressLine1: "500 Electric Ave", * addressLine2: "Suite 600", * locality: "New York", * administrativeDistrictLevel1: "NY", * postalCode: "10003", * country: "US" * }, * phoneNumber: "+1-212-555-4240", * referenceId: "YOUR_REFERENCE_ID", * note: "a customer" * }, * "d1689f23-b25d-4932-b2f0-aed00f5e2029": { * givenName: "Marie", * familyName: "Curie", * emailAddress: "Marie.Curie@example.com", * address: { * addressLine1: "500 Electric Ave", * addressLine2: "Suite 601", * locality: "New York", * administrativeDistrictLevel1: "NY", * postalCode: "10003", * country: "US" * }, * phoneNumber: "+1-212-444-4240", * referenceId: "YOUR_REFERENCE_ID", * note: "another customer" * } * } * }) */ batchCreate(request: Square.BulkCreateCustomersRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __batchCreate; /** * Deletes multiple customer profiles. * * The endpoint takes a list of customer IDs and returns a map of responses. * * @param {Square.BulkDeleteCustomersRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.bulkDeleteCustomers({ * customerIds: ["8DDA5NZVBZFGAX0V3HPF81HHE0", "N18CPRVXR5214XPBBA6BZQWF3C", "2GYD7WNXF7BJZW1PMGNXZ3Y8M8"] * }) */ bulkDeleteCustomers(request: Square.BulkDeleteCustomersRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __bulkDeleteCustomers; /** * Retrieves multiple customer profiles. * * This endpoint takes a list of customer IDs and returns a map of responses. * * @param {Square.BulkRetrieveCustomersRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.bulkRetrieveCustomers({ * customerIds: ["8DDA5NZVBZFGAX0V3HPF81HHE0", "N18CPRVXR5214XPBBA6BZQWF3C", "2GYD7WNXF7BJZW1PMGNXZ3Y8M8"] * }) */ bulkRetrieveCustomers(request: Square.BulkRetrieveCustomersRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __bulkRetrieveCustomers; /** * Updates multiple customer profiles. * * This endpoint takes a map of individual update requests and returns a map of responses. * * @param {Square.BulkUpdateCustomersRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.bulkUpdateCustomers({ * customers: { * "8DDA5NZVBZFGAX0V3HPF81HHE0": { * emailAddress: "New.Amelia.Earhart@example.com", * note: "updated customer note", * version: BigInt("2") * }, * "N18CPRVXR5214XPBBA6BZQWF3C": { * givenName: "Marie", * familyName: "Curie", * version: BigInt("0") * } * } * }) */ bulkUpdateCustomers(request: Square.BulkUpdateCustomersRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __bulkUpdateCustomers; /** * Searches the customer profiles associated with a Square account using one or more supported query filters. * * Calling `SearchCustomers` without any explicit query filter returns all * customer profiles ordered alphabetically based on `given_name` and * `family_name`. * * Under normal operating conditions, newly created or updated customer profiles become available * for the search operation in well under 30 seconds. Occasionally, propagation of the new or updated * profiles can take closer to one minute or longer, especially during network incidents and outages. * * @param {Square.SearchCustomersRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.search({ * limit: BigInt("2"), * query: { * filter: { * creationSource: { * values: ["THIRD_PARTY"], * rule: "INCLUDE" * }, * createdAt: { * startAt: "2018-01-01T00:00:00-00:00", * endAt: "2018-02-01T00:00:00-00:00" * }, * emailAddress: { * fuzzy: "example.com" * }, * groupIds: { * all: ["545AXB44B4XXWMVQ4W8SBT3HHF"] * } * }, * sort: { * field: "CREATED_AT", * order: "ASC" * } * } * }) */ search(request?: Square.SearchCustomersRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __search; /** * Returns details for a single customer. * * @param {Square.GetCustomersRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.get({ * customerId: "customer_id" * }) */ get(request: Square.GetCustomersRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __get; /** * Updates a customer profile. This endpoint supports sparse updates, so only new or changed fields are required in the request. * To add or update a field, specify the new value. To remove a field, specify `null`. * * To update a customer profile that was created by merging existing profiles, you must use the ID of the newly created profile. * * @param {Square.UpdateCustomerRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.update({ * customerId: "customer_id", * emailAddress: "New.Amelia.Earhart@example.com", * note: "updated customer note", * version: BigInt("2") * }) */ update(request: Square.UpdateCustomerRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __update; /** * Deletes a customer profile from a business. * * To delete a customer profile that was created by merging existing profiles, you must use the ID of the newly created profile. * * @param {Square.DeleteCustomersRequest} request * @param {CustomersClient.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.customers.delete({ * customerId: "customer_id", * version: BigInt("1000000") * }) */ delete(request: Square.DeleteCustomersRequest, requestOptions?: CustomersClient.RequestOptions): core.HttpResponsePromise; private __delete; }