import { SubmitContactRequest as SubmitContactRequest$1, SubmitContactResponse as SubmitContactResponse$1 } from './index.typings.js'; import '@wix/sdk-types'; /** Dummy message for fqdn validation */ interface SubmitContact { /** * Submit Contact Id * @format GUID */ id?: string | null; } interface SubmitContactRequest { /** * Contact's information. * To reconcile with an existing contact, * a phone or email must be provided, * or the current session identity must be attached to a contact or member. * * If no existing contact can be found, * a new contact is created with the specified information. * * * Required if there's no contextual identity or given `contactId`. * */ info?: ContactInfo; /** * The activity that triggered this request (optional). * Requires permission `CONTACTS.SUBMIT_WITH_OVERRIDES` * @internal */ activity?: ContactActivity; /** * Pass through data, to be posted on Contact Submitted Domain Event (optional). * @maxLength 300 */ passThroughData?: string | null; /** * Existing Contact ID (optional). * Requires permission `CONTACTS.SUBMIT_WITH_OVERRIDES` * @format GUID */ contactId?: string | null; /** * Additional submit options * @internal */ options?: SubmitContactOptions; } interface ContactInfo { /** Contact's first and last name. */ name?: ContactName; /** Contact's email addresses. */ emails?: ContactEmailsWrapper; /** Contact's phone numbers. */ phones?: ContactPhonesWrapper; /** Contact's street addresses. */ addresses?: ContactAddressesWrapper; /** * Contact's company name. * @maxLength 1000 */ company?: string | null; /** * Contact's job title. * @maxLength 1000 */ jobTitle?: string | null; /** * Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`. * @format LOCAL_DATE */ birthdate?: string | null; /** * Site contributors * who are assigned to manage communication with the contact. * @internal */ assignedUserIds?: AssigneesWrapper; /** * Locale in * [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. * Typically, this is a lowercase 2-letter language code, * followed by a hyphen, followed by an uppercase 2-letter country code. * For example, `en-US` for U.S. English, and `de-DE` for Germany German. * @format LANGUAGE_TAG */ locale?: string | null; /** * List of contact's labels. * * Labels are used to organize contacts. Labels can be * added and removed using Label Contact and Unlabel Contact, respectively. * * To view or manage contact labels, use the Labels API. */ labelKeys?: LabelsWrapper; /** * Additional custom fields. * * Empty fields are not returned. */ extendedFields?: ExtendedFieldsWrapper; /** * Contact locations. * @internal */ locations?: LocationsWrapper; /** Contact's profile picture. */ picture?: ContactPicture; } interface ContactName { /** * Contact's first name. * @maxLength 1000 */ first?: string | null; /** * Contact's last name. * @maxLength 1000 */ last?: string | null; } interface ContactEmailsWrapper { /** * List of up to 50 email addresses. * @maxSize 50 */ items?: ContactEmail[]; } interface ContactEmail { /** * Email ID. * @format GUID * @readonly */ id?: string | null; /** * Email type. * * `UNTAGGED` is shown as "Other" in the Contact List. */ tag?: EmailTagWithLiterals; /** * Email address. * @minLength 1 * @maxLength 320 */ email?: string; /** * Indicates whether this is the contact's primary email address. * When changing `primary` to `true` for an email, * the contact's other emails become `false`. * Changing the primary email of a contact also affects the subscription status to marketing emails that are decided based on the primary email. */ primary?: boolean | null; } declare enum EmailTag { UNTAGGED = "UNTAGGED", MAIN = "MAIN", HOME = "HOME", WORK = "WORK" } /** @enumType */ type EmailTagWithLiterals = EmailTag | 'UNTAGGED' | 'MAIN' | 'HOME' | 'WORK'; interface ContactPhonesWrapper { /** * List of up to 50 phone numbers. * @maxSize 50 */ items?: ContactPhone[]; } interface ContactPhone { /** * Phone ID. * @format GUID * @readonly */ id?: string | null; /** * Phone type. * * `UNTAGGED` is shown as "Other" in the Contact List. */ tag?: PhoneTagWithLiterals; /** * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. * @format COUNTRY */ countryCode?: string | null; /** * Phone number. * @minLength 1 * @maxLength 50 */ phone?: string; /** * [ITU E.164-formatted](https://www.itu.int/rec/T-REC-E.164/) * phone number. * Automatically generated using `phone` and `countryCode`, pending both values are valid. * @readonly */ e164Phone?: string | null; /** * Formatted phone. Automatically generated using phone and countryCode. * @internal * @readonly */ formattedPhone?: string | null; /** * Indicates whether this is the contact's primary phone number. * When changing `primary` to `true` for a phone, * the contact's `primary` field for other phones becomes `false`. * Changing the primary phone number also affects the subscription status to SMS messages that are decided based on the primary phone. */ primary?: boolean | null; } declare enum PhoneTag { UNTAGGED = "UNTAGGED", MAIN = "MAIN", HOME = "HOME", MOBILE = "MOBILE", WORK = "WORK", FAX = "FAX" } /** @enumType */ type PhoneTagWithLiterals = PhoneTag | 'UNTAGGED' | 'MAIN' | 'HOME' | 'MOBILE' | 'WORK' | 'FAX'; interface ContactAddressesWrapper { /** * List of up to 50 addresses. * @maxSize 50 */ items?: ContactAddress[]; } interface ContactAddress { /** * Street address ID. * @format GUID * @readonly */ id?: string | null; /** * Address type. * `UNTAGGED` is shown as "Other" in the Contact List. */ tag?: AddressTagWithLiterals; /** Street address. */ address?: Address; } declare enum AddressTag { UNTAGGED = "UNTAGGED", HOME = "HOME", WORK = "WORK", BILLING = "BILLING", SHIPPING = "SHIPPING" } /** @enumType */ type AddressTagWithLiterals = AddressTag | 'UNTAGGED' | 'HOME' | 'WORK' | 'BILLING' | 'SHIPPING'; /** Physical address */ interface Address extends AddressStreetOneOf { /** Street address object, with number and name in separate fields. */ streetAddress?: StreetAddress; /** * Main address line, usually street and number, as free text. * @maxLength 1000 */ addressLine?: string | null; /** * 2-letter country code in an * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. * @format COUNTRY */ country?: string | null; /** * Code for a subdivision (such as state, prefecture, or province) in an * [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. * @maxLength 100 */ subdivision?: string | null; /** * City name. * @maxLength 1000 */ city?: string | null; /** * Postal or zip code. * @maxLength 100 */ postalCode?: string | null; /** * Free text providing more detailed address information, * such as apartment, suite, or floor. * @maxLength 1000 */ addressLine2?: string | null; /** * Human-readable address string. * If not provided, the value is generated from the available address data. * @internal * @maxLength 2000 */ formattedAddress?: string | null; /** * Instructions to help someone find the address, such as landmarks or where the entrance is. * @internal * @maxLength 200 */ hint?: string | null; /** * Coordinates of the physical address. * @internal */ geocode?: AddressLocation; /** * Full country name. * @internal * @readonly */ countryFullname?: string | null; /** * Hierarchical list of subdivisions, where the first array item is the highest level of hierarchy, and so on. * @internal * @readonly */ subdivisions?: Subdivision[]; } /** @oneof */ interface AddressStreetOneOf { /** Street address object, with number and name in separate fields. */ streetAddress?: StreetAddress; /** * Main address line, usually street and number, as free text. * @maxLength 1000 */ addressLine?: string | null; } interface StreetAddress { /** * Street number. * @maxLength 100 */ number?: string; /** * Street name. * @maxLength 1000 */ name?: string; /** * Apartment number. * @internal * @maxLength 100 */ apt?: string; /** * Optional address line 1 * @internal */ formattedAddressLine?: string | null; } interface AddressLocation { /** Address's latitude. */ latitude?: number | null; /** Address's longitude. */ longitude?: number | null; } interface Subdivision { /** subdivision short code */ code?: string; /** Full subdivision name. */ name?: string; /** @internal */ type?: SubdivisionTypeWithLiterals; /** * Free text that describes the subdivision type. * * Examples: `"state"`, `"province"`, `"prefecture"`. * @internal */ typeInfo?: string | null; } declare enum SubdivisionType { UNKNOWN_SUBDIVISION_TYPE = "UNKNOWN_SUBDIVISION_TYPE", /** State */ ADMINISTRATIVE_AREA_LEVEL_1 = "ADMINISTRATIVE_AREA_LEVEL_1", /** County */ ADMINISTRATIVE_AREA_LEVEL_2 = "ADMINISTRATIVE_AREA_LEVEL_2", /** City/town */ ADMINISTRATIVE_AREA_LEVEL_3 = "ADMINISTRATIVE_AREA_LEVEL_3", /** Neighborhood/quarter */ ADMINISTRATIVE_AREA_LEVEL_4 = "ADMINISTRATIVE_AREA_LEVEL_4", /** Street/block */ ADMINISTRATIVE_AREA_LEVEL_5 = "ADMINISTRATIVE_AREA_LEVEL_5", /** ADMINISTRATIVE_AREA_LEVEL_0. Indicates the national political entity, and is typically the highest order type returned by the Geocoder. */ COUNTRY = "COUNTRY" } /** @enumType */ type SubdivisionTypeWithLiterals = SubdivisionType | 'UNKNOWN_SUBDIVISION_TYPE' | 'ADMINISTRATIVE_AREA_LEVEL_1' | 'ADMINISTRATIVE_AREA_LEVEL_2' | 'ADMINISTRATIVE_AREA_LEVEL_3' | 'ADMINISTRATIVE_AREA_LEVEL_4' | 'ADMINISTRATIVE_AREA_LEVEL_5' | 'COUNTRY'; interface AssigneesWrapper { /** * List of site contributor user IDs. * @format GUID * @maxSize 50 */ items?: string[]; } interface LabelsWrapper { /** * List of contact label keys. * * Contact labels help categorize contacts. Label keys must exist to be added to the contact. * Contact labels can be created or retrieved with Find or Create Label or List Labels. * @maxSize 2000 */ items?: string[]; } interface ExtendedFieldsWrapper { /** * Contact's extended fields, * where each key is the field key, * and each value is the field's value for the contact. * * To view and manage extended fields, use the Extended Fields API. */ items?: Record; } interface LocationsWrapper { /** * List of location ids. * @format GUID * @maxSize 50 */ items?: string[]; } /** TEST contact picture description */ interface ContactPicture { /** * Image. * This can contain an image URL or a Wix Media image ID. */ image?: Image; /** * Indicates whether the image is retrieved from Wix Media * or an external provider. * * - `EXTERNAL`: The image is retrieved from an external provider. * - `WIX_MEDIA`: The image is retrieved from Wix Media. * @internal * @deprecated */ imageProvider?: ImageProviderWithLiterals; } interface Image { /** * WixMedia image ID. * This property is written by Wix when an image is uploaded to the Wix Media Manager. */ id?: string; /** Image source: Either a Media Manager URL or external URL. */ url?: string; /** Height of the original image. */ height?: number; /** Width of the original image. */ width?: number; /** Image alt text (optional). */ altText?: string | null; /** * Image URL expiration date (optional). * @readonly */ urlExpirationDate?: Date | null; } declare enum ImageProvider { UNKNOWN = "UNKNOWN", /** Image stored outside Wix */ EXTERNAL = "EXTERNAL", /** Stored in wix media platform, Must be uploaded by using `GeneratePictureUploadUrl` */ WIX_MEDIA = "WIX_MEDIA" } /** @enumType */ type ImageProviderWithLiterals = ImageProvider | 'UNKNOWN' | 'EXTERNAL' | 'WIX_MEDIA'; interface ContactActivity { /** Date and time of the last action. */ activityDate?: Date | null; /** Contact's last action in the site. */ activityType?: ContactActivityTypeWithLiterals; /** * Date and time of the activity. * @internal */ date?: Date | null; /** * Activity description. Translated. * @internal * @maxLength 1000 */ description?: string | null; /** * Activity Icon * @internal */ icon?: ActivityIcon; } declare enum ContactActivityType { /** Visited the site. */ GENERAL = "GENERAL", /** Became a new contact. */ CONTACT_CREATED = "CONTACT_CREATED", /** Logged in. */ MEMBER_LOGIN = "MEMBER_LOGIN", /** Requested a site membership. */ MEMBER_REGISTER = "MEMBER_REGISTER", /** Was approved, blocked, or unblocked. */ MEMBER_STATUS_CHANGED = "MEMBER_STATUS_CHANGED", /** Submitted a form. */ FORM_SUBMITTED = "FORM_SUBMITTED", /** Started a chat. */ INBOX_FORM_SUBMITTED = "INBOX_FORM_SUBMITTED", /** Paid a payment request. */ INBOX_PAYMENT_REQUEST_PAID = "INBOX_PAYMENT_REQUEST_PAID", /** Received a message from the site. */ INBOX_MESSAGE_TO_CUSTOMER = "INBOX_MESSAGE_TO_CUSTOMER", /** Sent a new message to the site. */ INBOX_MESSAGE_FROM_CUSTOMER = "INBOX_MESSAGE_FROM_CUSTOMER", /** Subscribed to a site newsletter through a form. */ NEWSLETTER_SUBSCRIPTION_FORM_SUBMITTED = "NEWSLETTER_SUBSCRIPTION_FORM_SUBMITTED", /** Unsubscribed from a site newsletter. */ NEWSLETTER_SUBSCRIPTION_UNSUBSCRIBE = "NEWSLETTER_SUBSCRIPTION_UNSUBSCRIBE", /** Made a purchase. */ ECOM_PURCHASE = "ECOM_PURCHASE", /** Abandoned a shopping cart. */ ECOM_CART_ABANDON = "ECOM_CART_ABANDON", /** Checked out shopping cart and submitted buyer info (but didn’t complete the purchase yet). */ ECOM_CHECKOUT_BUYER = "ECOM_CHECKOUT_BUYER", /** Booked an appointment. */ BOOKINGS_APPOINTMENT = "BOOKINGS_APPOINTMENT", /** Made a Wix Hotels reservation. */ HOTELS_RESERVATION = "HOTELS_RESERVATION", /** Paid for a Wix Hotels reservation. */ HOTELS_PURCHASE = "HOTELS_PURCHASE", /** Confirmed a Wix Hotels reservation. */ HOTELS_CONFIRMATION = "HOTELS_CONFIRMATION", /** Canceled a Wix Hotels reservation. */ HOTELS_CANCEL = "HOTELS_CANCEL", /** Purchased a video. */ VIDEO_PURCHASE = "VIDEO_PURCHASE", /** Rented a video. */ VIDEO_RENT = "VIDEO_RENT", /** Made a purchase with a pay button. */ CASHIER_BUTTON_PURCHASE = "CASHIER_BUTTON_PURCHASE", /** Became a new Wix Marketplace lead. */ ARENA_NEW_LEAD = "ARENA_NEW_LEAD", /** RSVP'd to an event. */ EVENTS_RSVP = "EVENTS_RSVP", /** Paid an invoice. */ INVOICE_PAY = "INVOICE_PAY", /** An invoice is now overdue. */ INVOICE_OVERDUE = "INVOICE_OVERDUE", /** Accepted a price quote. */ PRICE_QUOTE_ACCEPT = "PRICE_QUOTE_ACCEPT", /** A price quote has expired. */ PRICE_QUOTE_EXPIRE = "PRICE_QUOTE_EXPIRE", /** Ordered food with Wix Restaurants. */ RESTAURANTS_ORDER = "RESTAURANTS_ORDER", /** Made a Wix Restaurants reservation. */ RESTAURANTS_RESERVATION = "RESTAURANTS_RESERVATION", /** Opened an email from the site. */ SHOUTOUT_OPEN = "SHOUTOUT_OPEN", /** Clicked a link in an email from the site. */ SHOUTOUT_CLICK = "SHOUTOUT_CLICK", /** Merged with another contact. */ CONTACT_MERGED = "CONTACT_MERGED", /** Subscribed to a site newsletter. */ NEWSLETTER_SUBSCRIPTION_SUBSCRIBE = "NEWSLETTER_SUBSCRIPTION_SUBSCRIBE", /** Subscription status to site newsletters is pending confirmation. */ NEWSLETTER_SUBSCRIPTION_PENDING = "NEWSLETTER_SUBSCRIPTION_PENDING", /** Subscription status to site newsletters is not set. */ NEWSLETTER_SUBSCRIPTION_NOT_SET = "NEWSLETTER_SUBSCRIPTION_NOT_SET", /** Subscribed to phone notifications. */ PHONE_SUBSCRIPTION_SUBSCRIBE = "PHONE_SUBSCRIPTION_SUBSCRIBE", /** Subscription to phone notificatons is pending confirmation. */ PHONE_SUBSCRIPTION_PENDING = "PHONE_SUBSCRIPTION_PENDING", /** Subscription to phone notificatons is not set. */ PHONE_SUBSCRIPTION_NOT_SET = "PHONE_SUBSCRIPTION_NOT_SET", /** Subscribed to phone notifications. */ PHONE_SUBSCRIPTION_UNSUBSCRIBE = "PHONE_SUBSCRIPTION_UNSUBSCRIBE" } /** @enumType */ type ContactActivityTypeWithLiterals = ContactActivityType | 'GENERAL' | 'CONTACT_CREATED' | 'MEMBER_LOGIN' | 'MEMBER_REGISTER' | 'MEMBER_STATUS_CHANGED' | 'FORM_SUBMITTED' | 'INBOX_FORM_SUBMITTED' | 'INBOX_PAYMENT_REQUEST_PAID' | 'INBOX_MESSAGE_TO_CUSTOMER' | 'INBOX_MESSAGE_FROM_CUSTOMER' | 'NEWSLETTER_SUBSCRIPTION_FORM_SUBMITTED' | 'NEWSLETTER_SUBSCRIPTION_UNSUBSCRIBE' | 'ECOM_PURCHASE' | 'ECOM_CART_ABANDON' | 'ECOM_CHECKOUT_BUYER' | 'BOOKINGS_APPOINTMENT' | 'HOTELS_RESERVATION' | 'HOTELS_PURCHASE' | 'HOTELS_CONFIRMATION' | 'HOTELS_CANCEL' | 'VIDEO_PURCHASE' | 'VIDEO_RENT' | 'CASHIER_BUTTON_PURCHASE' | 'ARENA_NEW_LEAD' | 'EVENTS_RSVP' | 'INVOICE_PAY' | 'INVOICE_OVERDUE' | 'PRICE_QUOTE_ACCEPT' | 'PRICE_QUOTE_EXPIRE' | 'RESTAURANTS_ORDER' | 'RESTAURANTS_RESERVATION' | 'SHOUTOUT_OPEN' | 'SHOUTOUT_CLICK' | 'CONTACT_MERGED' | 'NEWSLETTER_SUBSCRIPTION_SUBSCRIBE' | 'NEWSLETTER_SUBSCRIPTION_PENDING' | 'NEWSLETTER_SUBSCRIPTION_NOT_SET' | 'PHONE_SUBSCRIPTION_SUBSCRIBE' | 'PHONE_SUBSCRIPTION_PENDING' | 'PHONE_SUBSCRIPTION_NOT_SET' | 'PHONE_SUBSCRIPTION_UNSUBSCRIBE'; interface ActivityIcon { /** * Icon name * @maxLength 50 */ name?: string | null; /** * Icon url * @format WEB_URL */ url?: string | null; } interface SubmitContactOptions { /** * Overrides `visitorId` * Requires permission `CONTACTS.SUBMIT_WITH_OVERRIDES` * @format GUID */ overrideVisitorId?: string | null; /** * Overrides `memberId` * Requires permission `CONTACTS.SUBMIT_WITH_OVERRIDES` * @format GUID */ overrideMemberId?: string | null; /** * Overrides `app_id` * Requires permission `CONTACTS.SUBMIT_WITH_OVERRIDES` */ overrideAppId?: string | null; /** * Indicates primary email is verified (first email on contact.emails) * Requires permission `CONTACTS.SUBMIT_WITH_OVERRIDES` */ emailVerified?: boolean | null; /** * Indicates primary phone is verified (first phone on contact.phones) * Requires permission `CONTACTS.SUBMIT_WITH_OVERRIDES` */ phoneVerified?: boolean | null; /** * Indicates if the process of creating/updating the contact should happen asynchronously. * In which case, the contact referenced by the returned `contactId` will only be available after a [Contact Submitted Domain Event](https://bo.wix.com/wix-docs/rest/crm/contacts/contacts-v4/contact-submitted-domain-event) * will be sent. * @internal */ async?: boolean | null; /** * TODO: Not implemented yet * 1. Use contact type "app:ImplicitContact" * 2. Make sure GDPR handles it. * Requires permission `CONTACTS.SUBMIT_WITH_OVERRIDES` * @internal */ hideFromContactList?: boolean | null; } interface SubmitContactResponse { /** * ID of the contact that was found or created. * @format GUID */ contactId?: string; /** * Identity type of the returned contact. * * - `CONTACT`: The returned contact ID belongs to a new or existing contact. * - `MEMBER`: The returned contact ID belongs to the currently logged-in site member. * - `NOT_AUTHENTICATED_MEMBER`: The returned contact ID belongs to a site member who is not currently logged in. */ identityType?: IdentityTypeWithLiterals; /** * Indicates whether the contact was just created or already existed. * * If the contact was just created, returns `true`. * If it already existed, returns `false`. */ newContact?: boolean; } declare enum IdentityType { UNKNOWN = "UNKNOWN", /** Existing or new contact */ CONTACT = "CONTACT", /** Member is logged in, matching logic skipped */ MEMBER = "MEMBER", /** Matching contact is a member, Merge logic won't be applied */ NOT_AUTHENTICATED_MEMBER = "NOT_AUTHENTICATED_MEMBER" } /** @enumType */ type IdentityTypeWithLiterals = IdentityType | 'UNKNOWN' | 'CONTACT' | 'MEMBER' | 'NOT_AUTHENTICATED_MEMBER'; interface ContactToSubmit { /** * reserved 6; * reserved "raw_source"; */ contactInfo?: ContactInfo; /** Last activity */ activity?: ContactActivity; /** Pass through data */ passThroughData?: string | null; /** * Contact Id * @format GUID */ contactId?: string; /** Create/Update */ submitOperation?: SubmitOperationWithLiterals; /** * Raw source * @deprecated */ rawSource?: string | null; /** Need to resolve source in allocator, because of server sign */ sourceType?: ContactSourceTypeWithLiterals; /** Source Id */ sourceId?: string | null; /** Hide from contact list (implicit contact) */ hideFromContactList?: boolean; } declare enum SubmitOperation { UNKNOWN = "UNKNOWN", CREATE = "CREATE", UPDATE = "UPDATE" } /** @enumType */ type SubmitOperationWithLiterals = SubmitOperation | 'UNKNOWN' | 'CREATE' | 'UPDATE'; declare enum ContactSourceType { OTHER = "OTHER", ADMIN = "ADMIN", WIX_APP = "WIX_APP", IMPORT = "IMPORT", THIRD_PARTY = "THIRD_PARTY", WIX_BOOKINGS = "WIX_BOOKINGS", WIX_CHAT = "WIX_CHAT", WIX_EMAIL_MARKETING = "WIX_EMAIL_MARKETING", WIX_EVENTS = "WIX_EVENTS", WIX_FORMS = "WIX_FORMS", WIX_GROUPS = "WIX_GROUPS", WIX_HOTELS = "WIX_HOTELS", WIX_MARKET_PLACE = "WIX_MARKET_PLACE", WIX_MUSIC = "WIX_MUSIC", WIX_RESTAURANTS = "WIX_RESTAURANTS", WIX_SITE_MEMBERS = "WIX_SITE_MEMBERS", WIX_STORES = "WIX_STORES", WIX_CODE = "WIX_CODE", HOPP = "HOPP" } /** @enumType */ type ContactSourceTypeWithLiterals = ContactSourceType | 'OTHER' | 'ADMIN' | 'WIX_APP' | 'IMPORT' | 'THIRD_PARTY' | 'WIX_BOOKINGS' | 'WIX_CHAT' | 'WIX_EMAIL_MARKETING' | 'WIX_EVENTS' | 'WIX_FORMS' | 'WIX_GROUPS' | 'WIX_HOTELS' | 'WIX_MARKET_PLACE' | 'WIX_MUSIC' | 'WIX_RESTAURANTS' | 'WIX_SITE_MEMBERS' | 'WIX_STORES' | 'WIX_CODE' | 'HOPP'; interface SubmitVisitorIdRequest { /** * Existing Contact ID * @format GUID */ contactId?: string; /** * The visitor ID to be attached to the given `contactId` * @format GUID */ visitorId?: string; } interface SubmitVisitorIdResponse { /** * The mapped Contact ID * @format GUID */ contactId?: string; /** * The mapped visitor ID * @format GUID */ visitorId?: string; /** Date in the `visitorId` was attached to the given `contactId` */ validFrom?: Date | null; } interface MessageEnvelope { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; /** Details related to the account */ accountInfo?: AccountInfo; } interface IdentificationData extends IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; /** @readonly */ identityType?: WebhookIdentityTypeWithLiterals; } /** @oneof */ interface IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; } declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** @enumType */ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP'; interface AccountInfo { /** * ID of the Wix account associated with the event. * @format GUID */ accountId?: string | null; /** * ID of the parent Wix account. Only included when accountId belongs to a child account. * @format GUID */ parentAccountId?: string | null; /** * ID of the Wix site associated with the event. Only included when the event is tied to a specific site. * @format GUID */ siteId?: string | null; } /** @docsIgnore */ type SubmitContactApplicationErrors = { code?: 'INSUFFICIENT_CONTACT_DATA'; description?: string; data?: Record; } | { code?: 'INSUFFICIENT_PERMISSION'; description?: string; data?: Record; } | { code?: 'CONTACT_NOT_FOUND'; description?: string; data?: Record; } | { code?: 'CANNOT_HAVE_MULTIPLE_PRIMARY_INFO'; description?: string; data?: Record; }; type __PublicMethodMetaInfo = { getUrl: (context: any) => string; httpMethod: K; path: string; pathParams: M; __requestType: T; __originalRequestType: S; __responseType: Q; __originalResponseType: R; }; declare function appendOrCreateContact(): __PublicMethodMetaInfo<'POST', {}, SubmitContactRequest$1, SubmitContactRequest, SubmitContactResponse$1, SubmitContactResponse>; export { type AccountInfo as AccountInfoOriginal, type ActivityIcon as ActivityIconOriginal, type AddressLocation as AddressLocationOriginal, type Address as AddressOriginal, type AddressStreetOneOf as AddressStreetOneOfOriginal, AddressTag as AddressTagOriginal, type AddressTagWithLiterals as AddressTagWithLiteralsOriginal, type AssigneesWrapper as AssigneesWrapperOriginal, type ContactActivity as ContactActivityOriginal, ContactActivityType as ContactActivityTypeOriginal, type ContactActivityTypeWithLiterals as ContactActivityTypeWithLiteralsOriginal, type ContactAddress as ContactAddressOriginal, type ContactAddressesWrapper as ContactAddressesWrapperOriginal, type ContactEmail as ContactEmailOriginal, type ContactEmailsWrapper as ContactEmailsWrapperOriginal, type ContactInfo as ContactInfoOriginal, type ContactName as ContactNameOriginal, type ContactPhone as ContactPhoneOriginal, type ContactPhonesWrapper as ContactPhonesWrapperOriginal, type ContactPicture as ContactPictureOriginal, ContactSourceType as ContactSourceTypeOriginal, type ContactSourceTypeWithLiterals as ContactSourceTypeWithLiteralsOriginal, type ContactToSubmit as ContactToSubmitOriginal, EmailTag as EmailTagOriginal, type EmailTagWithLiterals as EmailTagWithLiteralsOriginal, type ExtendedFieldsWrapper as ExtendedFieldsWrapperOriginal, type IdentificationDataIdOneOf as IdentificationDataIdOneOfOriginal, type IdentificationData as IdentificationDataOriginal, IdentityType as IdentityTypeOriginal, type IdentityTypeWithLiterals as IdentityTypeWithLiteralsOriginal, type Image as ImageOriginal, ImageProvider as ImageProviderOriginal, type ImageProviderWithLiterals as ImageProviderWithLiteralsOriginal, type LabelsWrapper as LabelsWrapperOriginal, type LocationsWrapper as LocationsWrapperOriginal, type MessageEnvelope as MessageEnvelopeOriginal, PhoneTag as PhoneTagOriginal, type PhoneTagWithLiterals as PhoneTagWithLiteralsOriginal, type StreetAddress as StreetAddressOriginal, type Subdivision as SubdivisionOriginal, SubdivisionType as SubdivisionTypeOriginal, type SubdivisionTypeWithLiterals as SubdivisionTypeWithLiteralsOriginal, type SubmitContactApplicationErrors as SubmitContactApplicationErrorsOriginal, type SubmitContactOptions as SubmitContactOptionsOriginal, type SubmitContact as SubmitContactOriginal, type SubmitContactRequest as SubmitContactRequestOriginal, type SubmitContactResponse as SubmitContactResponseOriginal, SubmitOperation as SubmitOperationOriginal, type SubmitOperationWithLiterals as SubmitOperationWithLiteralsOriginal, type SubmitVisitorIdRequest as SubmitVisitorIdRequestOriginal, type SubmitVisitorIdResponse as SubmitVisitorIdResponseOriginal, WebhookIdentityType as WebhookIdentityTypeOriginal, type WebhookIdentityTypeWithLiterals as WebhookIdentityTypeWithLiteralsOriginal, type __PublicMethodMetaInfo, appendOrCreateContact };