import { NonNullablePaths } from '@wix/sdk-types'; /** * An interactive form session enables AI-powered conversational form completion. * The session maintains conversation context and tracks form data extraction throughout * the user's interaction with the AI assistant. */ interface InteractiveFormSession { /** * Interactive form session ID. * @format GUID * @readonly */ _id?: string; /** * Form ID. * @format GUID */ formId?: string; } interface Form { /** * Form schema ID. * @format GUID * @readonly */ _id?: string | null; /** * Form fields that define the input elements and their validation rules. * @maxSize 500 */ formFields?: Field[]; /** * Layout configuration that defines how form fields are organized across multiple steps. * Each step represents a page of the form. * @maxSize 100 */ steps?: Step[]; /** * Form rules, can be applied to layout and items properties. * @maxSize 100 * @deprecated Form rules, can be applied to layout and items properties. * @replacedBy wix.forms.v4.Form.form_rules * @targetRemovalDate 2026-04-01 */ rules?: FormRule[]; /** * Revision number, which increments by 1 each time the form schema is updated. * To prevent conflicting changes, the current revision must be passed when updating the form schema. * @readonly */ revision?: string | null; /** * Date and time when the form schema was created. * @readonly */ _createdDate?: Date | null; /** * Date and time when the form schema was last updated. * @readonly */ _updatedDate?: Date | null; /** * Fields which were soft deleted. * @maxSize 150 * @readonly */ deletedFields?: FormField[]; /** * Form fields that were soft deleted. * @maxSize 150 * @readonly */ deletedFormFields?: Field[]; /** Data extensions for storing additional custom properties. */ extendedFields?: ExtendedFields; /** * Unique identifier for the app that owns this form schema. * For example, `wix.form_app.form` for Wix Forms. * * See a list of namespaces for [apps made by Wix](https://dev.wix.com/docs/api-reference/crm/forms/form-schemas/introduction#namespaces-of-apps-made-by-wix) section. * @minLength 10 * @maxLength 50 * @immutable */ namespace?: string; /** * Media folder ID for storing uploaded files from form submissions. * @maxLength 100 * @readonly */ mediaFolderId?: string | null; /** Submission limits that can automatically disable the form when reached. */ limitationRule?: LimitationRule; /** * Level of spam protection applied to form submissions. * * Default: `ADVANCED` */ spamFilterProtectionLevel?: SpamFilterProtectionLevelWithLiterals; /** Configuration for how required field indicators are displayed to the submitter. */ requiredIndicatorProperties?: RequiredIndicatorProperties; /** Configuration for actions taken after a form is successfully submitted. */ submitSettings?: SubmitSettings; /** * Message displayed to visitors when the form is disabled. * This allows you to inform submitters why the form isn't available. */ disabledFormMessage?: RichContent; /** * Whether the form is effectively active — `true` only when the user has not disabled the form * **and** no system service has placed an `activation_block` on it. * * Writing `enabled: true` records the user's intent to activate the form, but the value read * back may still be `false` if `activation_block` is present (e.g. a plan restriction is in * effect). Once the block is lifted the form becomes active automatically without any additional * write. * * Default: `true` */ enabled?: boolean | null; /** * Display name of the form schema. * @maxLength 200 */ name?: string | null; /** * Business logic rules that can modify form behavior based on user input or other conditions. * These rules can show/hide fields, change validation, or trigger actions. * @maxSize 100 */ formRules?: Rule[]; /** Tag IDs collections associated with the current entity. */ tags?: Tags; /** Source used for contact autofill when filling form fields. Default: FORM_INPUT. */ autoFillContact?: ContactAutofillWithLiterals; /** * Controls who can read submissions of this form beyond the standard permission. * * Default: `OWNER_AND_COLLABORATORS` */ submissionAccess?: SubmissionAccessWithLiterals; } interface FormField { /** * Item ID. * @format GUID * @immutable */ _id?: string; /** * Definition of a target where the value of field belongs. * @maxLength 200 * @immutable */ target?: string | null; /** Validation of field output value. */ validation?: Validation; /** Mark the field as containing personal information. This will encrypt user data when storing it. */ pii?: boolean; /** Whether the field is hidden. */ hidden?: boolean; /** Field view properties. */ view?: Record | null; /** Details identifying field, which is extension of other entity */ dataExtensionsDetails?: DataExtensionsDetails; /** * Whether the field is read only. * Default: false */ readOnly?: boolean; } interface FormFieldStringType extends FormFieldStringTypeFormatOptionsOneOf { /** DATE format options */ dateOptions?: DateTimeAdvancedConstraints; /** DATE_TIME format options */ dateTimeOptions?: StringTypeDateTimeConstraints; /** TIME format options */ timeOptions?: StringTypeDateTimeConstraints; /** DATE_OPTIONAL_TIME format options */ dateOptionalTimeOptions?: StringTypeDateTimeConstraints; /** PHONE format options */ phoneOptions?: StringTypePhoneConstraints; /** * Minimum length. * @max 20000 */ minLength?: number | null; /** * Maximum length. * @max 20000 */ maxLength?: number | null; /** * Pattern for a regular expression match. * @maxLength 500 */ pattern?: string | null; /** Format of a string. */ format?: StringTypeFormatEnumFormatWithLiterals; /** Custom error messages when validation fails. */ errorMessages?: StringErrorMessages; /** * List of allowed values. * @maxSize 500 * @maxLength 20000 */ enum?: string[] | null; /** User defined error messages when particular validation constraint fails */ validationMessages?: StringTypeValidationMessages; } /** @oneof */ interface FormFieldStringTypeFormatOptionsOneOf { /** DATE format options */ dateOptions?: DateTimeAdvancedConstraints; /** DATE_TIME format options */ dateTimeOptions?: StringTypeDateTimeConstraints; /** TIME format options */ timeOptions?: StringTypeDateTimeConstraints; /** DATE_OPTIONAL_TIME format options */ dateOptionalTimeOptions?: StringTypeDateTimeConstraints; /** PHONE format options */ phoneOptions?: StringTypePhoneConstraints; } declare enum StringTypeFormatEnumFormat { UNDEFINED = "UNDEFINED", DATE = "DATE", TIME = "TIME", DATE_TIME = "DATE_TIME", EMAIL = "EMAIL", URL = "URL", UUID = "UUID", PHONE = "PHONE", URI = "URI", HOSTNAME = "HOSTNAME", COLOR_HEX = "COLOR_HEX", CURRENCY = "CURRENCY", LANGUAGE = "LANGUAGE", DATE_OPTIONAL_TIME = "DATE_OPTIONAL_TIME" } /** @enumType */ type StringTypeFormatEnumFormatWithLiterals = StringTypeFormatEnumFormat | 'UNDEFINED' | 'DATE' | 'TIME' | 'DATE_TIME' | 'EMAIL' | 'URL' | 'UUID' | 'PHONE' | 'URI' | 'HOSTNAME' | 'COLOR_HEX' | 'CURRENCY' | 'LANGUAGE' | 'DATE_OPTIONAL_TIME'; interface StringErrorMessages { /** * Default error message on invalid validation. * @maxLength 200 */ default?: string | null; } interface DateTimeAdvancedConstraints { /** * Allows to specify available and unavailable dates and days of the week. * If unset, all dates from minimum to maximum are available. */ availability?: Availability; /** * Support static constrains defined as ISO date/time format, as well as * dynamic calculations can be performed using special keywords such as "$now" to represent the current date and time. * The dynamic calculation supports expressions like "$now+2d" (2 days in the future), "$now-1h" (1 hour in the past), etc. * The regex pattern for dynamic calculations is: \$now([+-]\d{1,2})([yMdmh]) * @maxLength 50 */ minimum?: string | null; /** * Support static constrains defined as ISO date/time format, as well as * dynamic calculations can be performed using special keywords such as "$now" to represent the current date and time. * The dynamic calculation supports expressions like "$now+2d" (2 days in the future), "$now-1h" (1 hour in the past), etc. * The regex pattern for dynamic calculations is: \$now([+-]\d{1,2})([yMdmh]) * @maxLength 50 */ maximum?: string | null; } interface Availability { /** * Available date ranges. * If empty, all dates are available; if non-empty, only dates within these ranges are available. * `unavailable_dates` takes priority in case of overlap — for example, an empty `available_dates` * with a non-empty `unavailable_dates` means all dates are available except the excluded ranges. * @maxSize 5 */ availableDates?: DateRange[]; /** * Unavailable date ranges. They take priority over `available_dates` in case of overlap. * @maxSize 5 */ unavailableDates?: DateRange[]; /** * During available_dates, only these days of the week are available. * @maxSize 7 */ availableDays?: DayOfWeekWithLiterals[]; } interface DateRange { /** * The beginning of the date range (inclusive). ISO 8601 date format (YYYY-MM-DD). * @format LOCAL_DATE */ start?: string; /** * The end of the date range (exclusive). ISO 8601 date format (YYYY-MM-DD). * @format LOCAL_DATE */ end?: string; } declare enum DayOfWeek { MONDAY = "MONDAY", TUESDAY = "TUESDAY", WEDNESDAY = "WEDNESDAY", THURSDAY = "THURSDAY", FRIDAY = "FRIDAY", SATURDAY = "SATURDAY", SUNDAY = "SUNDAY" } /** @enumType */ type DayOfWeekWithLiterals = DayOfWeek | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY'; interface StringTypeDateTimeConstraints { /** * Support static constrains defined as ISO date/time format, as well as * dynamic calculations can be performed using special keywords such as "$now" to represent the current date and time. * The dynamic calculation supports expressions like "$now+2d" (2 days in the future), "$now-1h" (1 hour in the past), etc. * The regex pattern for dynamic calculations is: \$now([+-]\d{1,2})([yMdmh]) * @maxLength 50 */ minimum?: string | null; /** * Support static constrains defined as ISO date/time format, as well as * dynamic calculations can be performed using special keywords such as "$now" to represent the current date and time. * The dynamic calculation supports expressions like "$now+2d" (2 days in the future), "$now-1h" (1 hour in the past), etc. * The regex pattern for dynamic calculations is: \$now([+-]\d{1,2})([yMdmh]) * @maxLength 50 */ maximum?: string | null; } interface StringTypePhoneConstraints { /** * Country codes for phone number that are allowed * @maxSize 250 * @maxLength 2 */ allowedCountryCodes?: string[]; } interface StringTypeValidationMessages { /** * Error message shown when validation of patter fails * @maxLength 200 */ pattern?: string | null; } interface FormFieldNumberType { /** Inclusive maximum value. */ maximum?: number | null; /** Inclusive minimum value. */ minimum?: number | null; /** Multiple of value. */ multipleOf?: number | null; /** Custom error message when validation fails. */ errorMessages?: NumberErrorMessages; /** * List of allowed values. * @maxSize 500 */ enum?: number[] | null; } interface NumberErrorMessages { /** * Default error message on invalid validation. * @maxLength 200 */ default?: string | null; } interface IntegerType { /** Minimum value. */ maximum?: number | null; /** Maximum value. */ minimum?: number | null; /** Multiple of value. */ multipleOf?: number | null; /** Custom error message when validation fails. */ errorMessages?: NumberErrorMessages; /** * List of allowed values. * @maxSize 500 */ enum?: number[] | null; } interface FormFieldBooleanType { /** Custom error message when validation fails. */ errorMessages?: BooleanErrorMessages; /** * List of allowed values. * @maxSize 2 */ enum?: boolean[]; } interface BooleanErrorMessages { /** * Default error message on invalid validation. * @maxLength 200 */ default?: string | null; } interface FormFieldArrayType { /** * Maximum amount of array elements. * @max 1000 */ maxItems?: number | null; /** * Minimum amount of array elements. * @max 1000 */ minItems?: number | null; /** Type of items allowed in array. */ items?: ArrayTypeArrayItems; /** Custom error message when validation fails. */ errorMessages?: ArrayErrorMessages; } interface FormFieldObjectType { /** Description of object properties. */ properties?: Record; /** Custom error message when validation fails. */ errorMessages?: ObjectErrorMessages; } interface ObjectTypePropertiesType extends ObjectTypePropertiesTypePropertiesTypeOneOf { /** String type validation for property. */ string?: FormFieldStringType; /** Number type validation for property. */ number?: FormFieldNumberType; /** Boolean type validation for property. */ boolean?: FormFieldBooleanType; /** Integer type validation for property. */ integer?: IntegerType; /** Array type validation for property. */ array?: FormFieldArrayType; /** Whether the property is required. */ required?: boolean; } /** @oneof */ interface ObjectTypePropertiesTypePropertiesTypeOneOf { /** String type validation for property. */ string?: FormFieldStringType; /** Number type validation for property. */ number?: FormFieldNumberType; /** Boolean type validation for property. */ boolean?: FormFieldBooleanType; /** Integer type validation for property. */ integer?: IntegerType; /** Array type validation for property. */ array?: FormFieldArrayType; } interface ObjectErrorMessages { /** * Default error message on invalid validation. * @maxLength 200 */ default?: string | null; } interface ArrayTypeArrayItems extends ArrayTypeArrayItemsItemsOneOf { /** String type validation for items. */ string?: FormFieldStringType; /** Number type validation for items. */ number?: FormFieldNumberType; /** Boolean type validation for items. */ boolean?: FormFieldBooleanType; /** Integer type validation for items. */ integer?: IntegerType; /** Object type validation for items */ object?: FormFieldObjectType; } /** @oneof */ interface ArrayTypeArrayItemsItemsOneOf { /** String type validation for items. */ string?: FormFieldStringType; /** Number type validation for items. */ number?: FormFieldNumberType; /** Boolean type validation for items. */ boolean?: FormFieldBooleanType; /** Integer type validation for items. */ integer?: IntegerType; /** Object type validation for items */ object?: FormFieldObjectType; } interface ArrayErrorMessages { /** * Default error message on invalid validation. * @maxLength 200 */ default?: string | null; } interface PredefinedValidation extends PredefinedValidationFormatOptionsOneOf { /** Payment input field. */ paymentOptions?: PaymentType; /** Multiline address validation. */ multilineAddressOptions?: MultilineAddressValidation; /** Validation configuration for the object array input. */ objectArrayOptions?: ObjectArrayType; /** Format of predefined validation. */ format?: ValidationFormatWithLiterals; } /** @oneof */ interface PredefinedValidationFormatOptionsOneOf { /** Payment input field. */ paymentOptions?: PaymentType; /** Multiline address validation. */ multilineAddressOptions?: MultilineAddressValidation; /** Validation configuration for the object array input. */ objectArrayOptions?: ObjectArrayType; } declare enum ValidationFormat { UNDEFINED = "UNDEFINED", /** File upload validation. */ WIX_FILE = "WIX_FILE", /** Payment validation. */ PAYMENT = "PAYMENT", /** Multiline address. */ MULTILINE_ADDRESS = "MULTILINE_ADDRESS", /** Scheduling validation. */ SCHEDULING = "SCHEDULING", /** Object array validation. */ OBJECT_ARRAY = "OBJECT_ARRAY" } /** @enumType */ type ValidationFormatWithLiterals = ValidationFormat | 'UNDEFINED' | 'WIX_FILE' | 'PAYMENT' | 'MULTILINE_ADDRESS' | 'SCHEDULING' | 'OBJECT_ARRAY'; interface PaymentType { /** * Products the submitter can select to make a payment for. * @minSize 1 * @maxSize 100 */ products?: Product[]; /** * Minimum number of different products that must be selected. * @max 100 */ minItems?: number | null; /** * Maximum number of different products that can be selected. * @max 100 */ maxItems?: number | null; } declare enum ProductType { /** Physical product that can be shipped. */ SHIPPABLE = "SHIPPABLE", /** Digital product. */ DIGITAL = "DIGITAL" } /** @enumType */ type ProductTypeWithLiterals = ProductType | 'SHIPPABLE' | 'DIGITAL'; declare enum PriceType { /** Product has a single, unchanging price. */ FIXED_PRICE = "FIXED_PRICE", /** Product price can vary within a specified range. */ DYNAMIC_PRICE = "DYNAMIC_PRICE" } /** @enumType */ type PriceTypeWithLiterals = PriceType | 'FIXED_PRICE' | 'DYNAMIC_PRICE'; interface QuantityLimit { /** * Minimum quantity that must be selected for this product. * @min 1 * @max 100000 */ minimum?: number | null; /** * Maximum quantity that can be selected for this product. * @min 1 * @max 100000 */ maximum?: number | null; } interface FixedPriceOptions { /** * Fixed price of the product. * * Specified as a decimal string with period as decimal separator. For example, `"3.99"`. * @decimalValue options { gte:0.00, maxScale:2 } */ price?: string; } interface DynamicPriceOptions { /** * Minimum price of the product. * * Specified as a decimal string with period as decimal separator. For example, `"1.00"`. * @decimalValue options { gte:0.00, maxScale:2 } */ minPrice?: string; /** * Maximum monetary price of the product. * * Specified as a decimal string with period as decimal separator. For example, `"10.00"`. * * If not specified, there is no upper limit on the price. * @decimalValue options { gte:0.00, maxScale:2 } */ maxPrice?: string | null; } interface Product extends ProductPriceOptionsOneOf { /** Configuration for products with fixed pricing. */ fixedPriceOptions?: FixedPriceOptions; /** Configuration for products with variable pricing within a range. */ dynamicPriceOptions?: DynamicPriceOptions; /** * Product ID. * @format GUID * @readonly */ _id?: string; /** Product type. */ productType?: ProductTypeWithLiterals; /** Price type. */ priceType?: PriceTypeWithLiterals; /** Limits on how many units of this product can be selected. */ quantityLimit?: QuantityLimit; } /** @oneof */ interface ProductPriceOptionsOneOf { /** Configuration for products with fixed pricing. */ fixedPriceOptions?: FixedPriceOptions; /** Configuration for products with variable pricing within a range. */ dynamicPriceOptions?: DynamicPriceOptions; } interface MultilineAddressValidation { /** * Countries from which addresses are accepted. * If empty, addresses from all countries are allowed. * @format COUNTRY * @maxSize 200 */ allowedCountries?: string[]; /** Customization configuration for individual address field components. */ fields?: FieldsOverrides; } interface FieldOverrides { /** Whether the field is required. */ required?: boolean; } interface FieldsOverrides { /** Subdivision settings. */ subdivision?: FieldOverrides; /** City settings. */ city?: FieldOverrides; /** Postal code settings. */ postalCode?: FieldOverrides; /** Street name settings. */ streetName?: FieldOverrides; /** Street number settings. */ streetNumber?: FieldOverrides; /** Address line settings. */ addressLine?: FieldOverrides; /** Address line 2 settings. */ addressLine2?: FieldOverrides; /** Country settings. */ country?: FieldOverrides; } interface ObjectArrayType { /** * Maximum number of elements allowed in the array. * @max 1000 */ maxItems?: number | null; /** * Minimum number of elements required in the array. * @max 1000 */ minItems?: number | null; } interface NestedFormFieldOverrides { /** Whether the field is required. Leave blank for no override. */ required?: boolean | null; /** Whether the field is hidden. Leave blank for no override. */ hidden?: boolean | null; } interface Validation extends ValidationValidationOneOf { /** Validation of string type. */ string?: FormFieldStringType; /** Validation of number type. */ number?: FormFieldNumberType; /** Validation of integer type. */ integer?: IntegerType; /** Validation of boolean type. */ boolean?: FormFieldBooleanType; /** Validation of array type. */ array?: FormFieldArrayType; /** Validation of object type. */ object?: FormFieldObjectType; /** Predefined validation of specific format */ predefined?: PredefinedValidation; /** Whether the field is required. */ required?: boolean; } /** @oneof */ interface ValidationValidationOneOf { /** Validation of string type. */ string?: FormFieldStringType; /** Validation of number type. */ number?: FormFieldNumberType; /** Validation of integer type. */ integer?: IntegerType; /** Validation of boolean type. */ boolean?: FormFieldBooleanType; /** Validation of array type. */ array?: FormFieldArrayType; /** Validation of object type. */ object?: FormFieldObjectType; /** Predefined validation of specific format */ predefined?: PredefinedValidation; } interface DataExtensionsDetails { /** * FQDNS which can be extended with this field * @maxSize 10 * @maxLength 100 * @immutable */ fqdns?: string[]; } interface NestedFormOverrides { /** Field overrides by field ID */ fieldOverrides?: Record; } interface Field extends FieldFieldTypeOptionsOneOf { /** Configuration for input fields that collect user data. */ inputOptions?: InputField; /** Configuration for display fields that show information without collecting input. */ displayOptions?: DisplayField; /** * Field ID. * @format GUID * @immutable */ _id?: string; /** * Whether the field is hidden from submitters. * * Default: `false` */ hidden?: boolean; /** * Custom identification for the field. This is intended as a way for you to identify certain fields that you want to apply special behavior to in your own logic. * @maxLength 50 */ identifier?: string | null; /** * Field type. * @readonly */ fieldType?: FieldTypeWithLiterals; } /** @oneof */ interface FieldFieldTypeOptionsOneOf { /** Configuration for input fields that collect user data. */ inputOptions?: InputField; /** Configuration for display fields that show information without collecting input. */ displayOptions?: DisplayField; } declare enum FieldType { /** Unknown field type. */ UNKNOWN_FIELD_TYPE = "UNKNOWN_FIELD_TYPE", /** Input field that collects data from users. */ INPUT = "INPUT", /** Display field that shows information without collecting input. */ DISPLAY = "DISPLAY" } /** @enumType */ type FieldTypeWithLiterals = FieldType | 'UNKNOWN_FIELD_TYPE' | 'INPUT' | 'DISPLAY'; interface InputField extends InputFieldInputTypeOptionsOneOf { /** String input field settings. */ stringOptions?: _String; /** Number input field settings. */ numberOptions?: _Number; /** Boolean input field settings. */ booleanOptions?: _Boolean; /** Array input field settings. */ arrayOptions?: _Array; /** Object input field settings. */ objectOptions?: _Object; /** File input field settings. Files are uploaded to the [Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager). */ wixFileOptions?: WixFile; /** Payment input field settings. */ paymentOptions?: Payment; /** Scheduling input field settings. */ schedulingOptions?: Scheduling; /** Address input field settings. */ addressOptions?: Address; /** * Human readable identifier used to reference a field. For example, `"address"`. * * Can be set once. * @minLength 1 * @maxLength 200 * @immutable */ target?: string; /** * Whether this field contains Personally Identifiable Information (PII). * * PII fields are automatically encrypted when stored. * * Default: `false` */ pii?: boolean; /** * Whether the field is required for form submission. * * Default: `false` */ required?: boolean; /** * Type of the input field that determines what kind of data it collects. * @readonly */ inputType?: InputTypeWithLiterals; /** * Mapping configuration for automatically saving field values to contact properties. * * When specified, form submissions automatically create or update contacts with the field data. */ contactMapping?: FormFieldContactInfo; /** * Whether the field is read-only. * * Default: `false` */ readOnly?: boolean; } /** @oneof */ interface InputFieldInputTypeOptionsOneOf { /** String input field settings. */ stringOptions?: _String; /** Number input field settings. */ numberOptions?: _Number; /** Boolean input field settings. */ booleanOptions?: _Boolean; /** Array input field settings. */ arrayOptions?: _Array; /** Object input field settings. */ objectOptions?: _Object; /** File input field settings. Files are uploaded to the [Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager). */ wixFileOptions?: WixFile; /** Payment input field settings. */ paymentOptions?: Payment; /** Scheduling input field settings. */ schedulingOptions?: Scheduling; /** Address input field settings. */ addressOptions?: Address; } interface StringCorrectAnswersList { /** * @minLength 1 * @maxLength 150 * @maxSize 50 */ correctAnswers?: string[]; } interface StringType extends StringTypeFormatOptionsOneOf { /** Validation rules for strings with date format. */ dateOptions?: DateTimeAdvancedConstraints; /** Validation rules for strings with date and time format. */ dateTimeOptions?: DateTimeConstraints; /** Validation rules for strings with time format. */ timeOptions?: DateTimeConstraints; /** Validation rules for string with date and time format, where time is optional. */ dateOptionalTimeOptions?: DateTimeConstraints; /** Validation rules for strings with phone number format. */ phoneOptions?: PhoneConstraints; /** * Minimum required length for the string value. * @max 20000 */ minLength?: number | null; /** * Maximum allowed length for the string value. * @max 20000 */ maxLength?: number | null; /** * Regular expression pattern that the string value must match. * @maxLength 500 */ pattern?: string | null; /** Expected format of the string value. */ format?: FormatEnumFormatWithLiterals; /** * List of specific values that are allowed for this field. * When specified, the input must match one of these predefined values. * @maxSize 500 * @maxLength 20000 */ enum?: string[] | null; /** Custom error messages displayed when validation fails. */ validationMessages?: ValidationMessages; } /** @oneof */ interface StringTypeFormatOptionsOneOf { /** Validation rules for strings with date format. */ dateOptions?: DateTimeAdvancedConstraints; /** Validation rules for strings with date and time format. */ dateTimeOptions?: DateTimeConstraints; /** Validation rules for strings with time format. */ timeOptions?: DateTimeConstraints; /** Validation rules for string with date and time format, where time is optional. */ dateOptionalTimeOptions?: DateTimeConstraints; /** Validation rules for strings with phone number format. */ phoneOptions?: PhoneConstraints; } declare enum FormatEnumFormat { /** Unknown format. */ UNKNOWN_FORMAT = "UNKNOWN_FORMAT", /** Date format. */ DATE = "DATE", /** Time format. */ TIME = "TIME", /** Date and time format. */ DATE_TIME = "DATE_TIME", /** Email format. */ EMAIL = "EMAIL", /** URL format. */ URL = "URL", /** UUID format. */ UUID = "UUID", /** Phone number format. */ PHONE = "PHONE", /** URI format. */ URI = "URI", /** Hostname format. */ HOSTNAME = "HOSTNAME", /** Hexadecimal color code format. */ COLOR_HEX = "COLOR_HEX", /** Currency format. */ CURRENCY = "CURRENCY", /** Language code format. */ LANGUAGE = "LANGUAGE", /** Date with optional time format. */ DATE_OPTIONAL_TIME = "DATE_OPTIONAL_TIME" } /** @enumType */ type FormatEnumFormatWithLiterals = FormatEnumFormat | 'UNKNOWN_FORMAT' | 'DATE' | 'TIME' | 'DATE_TIME' | 'EMAIL' | 'URL' | 'UUID' | 'PHONE' | 'URI' | 'HOSTNAME' | 'COLOR_HEX' | 'CURRENCY' | 'LANGUAGE' | 'DATE_OPTIONAL_TIME'; interface DateTimeConstraints { /** * Minimum allowed datetime value. * * Supports ISO datetime format or dynamic calculations using "$now" keyword. * The dynamic calculation supports times in the future and past. * The pattern for dynamic calculations: $now([+-]\d{1,2})([yMdmh]). * * Examples: `"2023-01-01"`, `"$now-1d"` (1 day ago), `"$now+2h"` (2 hours from now). * @maxLength 50 */ minimum?: string | null; /** * Maximum allowed datetime value. * * Supports ISO datetime format or dynamic calculations using "$now" keyword. * The dynamic calculation supports times in the future and past. * The pattern for dynamic calculations: $now([+-]\d{1,2})([yMdmh]). * * Examples: `"2023-01-01"`, `"$now-1d"` (1 day ago), `"$now+2h"` (2 hours from now). * @maxLength 50 */ maximum?: string | null; } interface PhoneConstraints { /** * Country codes that are allowed for phone number validation. * * Use ISO 3166-1 alpha-2 country codes. For example, `"US"`, `"GB"`, `"CA"`. * @maxSize 250 * @maxLength 2 */ allowedCountryCodes?: string[]; } interface ValidationMessages { /** * Error message shown when the pattern validation fails. * * This message is displayed to users when their input doesn't match the specified regex pattern. * @maxLength 200 */ pattern?: string | null; } declare enum StringComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** Text input component. */ TEXT_INPUT = "TEXT_INPUT", /** Radio group component. */ RADIO_GROUP = "RADIO_GROUP", /** Dropdown component. */ DROPDOWN = "DROPDOWN", /** Date and time component. */ DATE_TIME = "DATE_TIME", /** Phone number component. */ PHONE_INPUT = "PHONE_INPUT", /** Date selection component. */ DATE_INPUT = "DATE_INPUT", /** Time selection component. */ TIME_INPUT = "TIME_INPUT", /** Calendar-style date picker component. */ DATE_PICKER = "DATE_PICKER", /** Dropdown component for selecting available services. */ SERVICES_DROPDOWN = "SERVICES_DROPDOWN", /** Component which obscures input characters. */ PASSWORD = "PASSWORD" } /** @enumType */ type StringComponentTypeWithLiterals = StringComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'TEXT_INPUT' | 'RADIO_GROUP' | 'DROPDOWN' | 'DATE_TIME' | 'PHONE_INPUT' | 'DATE_INPUT' | 'TIME_INPUT' | 'DATE_PICKER' | 'SERVICES_DROPDOWN' | 'PASSWORD'; interface StringQuizFieldSettings { /** Points awarded for correctly answering this quiz question. */ score?: number; /** Correct answers for this quiz question. */ correctAnswersList?: StringCorrectAnswersList; } interface TextInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Placeholder text shown inside the field when it's empty. * Useful for providing a hint about the expected format or content. * @maxLength 100 */ placeholder?: string | null; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Default value for the field. This value is pre-populated in the field when the form loads. * @maxLength 20000 */ default?: string | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface RichContent { /** Node objects representing a rich content document. */ nodes?: Node[]; /** Object metadata. */ metadata?: Metadata; /** Global styling for header, paragraph, block quote, and code block nodes in the object. */ documentStyle?: DocumentStyle; } interface Node extends NodeDataOneOf { /** Data for a button node. */ buttonData?: ButtonData; /** Data for a code block node. */ codeBlockData?: CodeBlockData; /** Data for a divider node. */ dividerData?: DividerData; /** Data for a file node. */ fileData?: FileData; /** Data for a gallery node. */ galleryData?: GalleryData; /** Data for a GIF node. */ gifData?: GIFData; /** Data for a heading node. */ headingData?: HeadingData; /** Data for an embedded HTML node. */ htmlData?: HTMLData; /** Data for an image node. */ imageData?: ImageData; /** Data for a link preview node. */ linkPreviewData?: LinkPreviewData; /** @deprecated */ mapData?: MapData; /** Data for a paragraph node. */ paragraphData?: ParagraphData; /** Data for a poll node. */ pollData?: PollData; /** Data for a text node. Used to apply decorations to text. */ textData?: TextData; /** Data for an app embed node. */ appEmbedData?: AppEmbedData; /** Data for a video node. */ videoData?: VideoData; /** Data for an oEmbed node. */ embedData?: EmbedData; /** Data for a collapsible list node. */ collapsibleListData?: CollapsibleListData; /** Data for a table node. */ tableData?: TableData; /** Data for a table cell node. */ tableCellData?: TableCellData; /** Data for a custom external node. */ externalData?: Record | null; /** Data for an audio node. */ audioData?: AudioData; /** Data for an ordered list node. */ orderedListData?: OrderedListData; /** Data for a bulleted list node. */ bulletedListData?: BulletedListData; /** Data for a block quote node. */ blockquoteData?: BlockquoteData; /** Data for a caption node. */ captionData?: CaptionData; /** Data for a layout node. Reserved for future use. */ layoutData?: LayoutData; /** Data for a cell node. */ layoutCellData?: LayoutCellData; /** Data for a shape node. */ shapeData?: ShapeData; /** Data for a card node. */ cardData?: CardData; /** Data for a table of contents node. */ tocData?: TocData; /** Data for a smart block node. */ smartBlockData?: SmartBlockData; /** Data for a smart block cell node. */ smartBlockCellData?: SmartBlockCellData; /** Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format. */ type?: NodeTypeWithLiterals; /** Node ID. */ id?: string; /** A list of child nodes. */ nodes?: Node[]; /** Padding and background color styling for the node. */ style?: NodeStyle; } /** @oneof */ interface NodeDataOneOf { /** Data for a button node. */ buttonData?: ButtonData; /** Data for a code block node. */ codeBlockData?: CodeBlockData; /** Data for a divider node. */ dividerData?: DividerData; /** Data for a file node. */ fileData?: FileData; /** Data for a gallery node. */ galleryData?: GalleryData; /** Data for a GIF node. */ gifData?: GIFData; /** Data for a heading node. */ headingData?: HeadingData; /** Data for an embedded HTML node. */ htmlData?: HTMLData; /** Data for an image node. */ imageData?: ImageData; /** Data for a link preview node. */ linkPreviewData?: LinkPreviewData; /** @deprecated */ mapData?: MapData; /** Data for a paragraph node. */ paragraphData?: ParagraphData; /** Data for a poll node. */ pollData?: PollData; /** Data for a text node. Used to apply decorations to text. */ textData?: TextData; /** Data for an app embed node. */ appEmbedData?: AppEmbedData; /** Data for a video node. */ videoData?: VideoData; /** Data for an oEmbed node. */ embedData?: EmbedData; /** Data for a collapsible list node. */ collapsibleListData?: CollapsibleListData; /** Data for a table node. */ tableData?: TableData; /** Data for a table cell node. */ tableCellData?: TableCellData; /** Data for a custom external node. */ externalData?: Record | null; /** Data for an audio node. */ audioData?: AudioData; /** Data for an ordered list node. */ orderedListData?: OrderedListData; /** Data for a bulleted list node. */ bulletedListData?: BulletedListData; /** Data for a block quote node. */ blockquoteData?: BlockquoteData; /** Data for a caption node. */ captionData?: CaptionData; /** Data for a layout node. Reserved for future use. */ layoutData?: LayoutData; /** Data for a cell node. */ layoutCellData?: LayoutCellData; /** Data for a shape node. */ shapeData?: ShapeData; /** Data for a card node. */ cardData?: CardData; /** Data for a table of contents node. */ tocData?: TocData; /** Data for a smart block node. */ smartBlockData?: SmartBlockData; /** Data for a smart block cell node. */ smartBlockCellData?: SmartBlockCellData; } declare enum NodeType { PARAGRAPH = "PARAGRAPH", TEXT = "TEXT", HEADING = "HEADING", BULLETED_LIST = "BULLETED_LIST", ORDERED_LIST = "ORDERED_LIST", LIST_ITEM = "LIST_ITEM", BLOCKQUOTE = "BLOCKQUOTE", CODE_BLOCK = "CODE_BLOCK", VIDEO = "VIDEO", DIVIDER = "DIVIDER", FILE = "FILE", GALLERY = "GALLERY", GIF = "GIF", HTML = "HTML", IMAGE = "IMAGE", LINK_PREVIEW = "LINK_PREVIEW", /** @deprecated */ MAP = "MAP", POLL = "POLL", APP_EMBED = "APP_EMBED", BUTTON = "BUTTON", COLLAPSIBLE_LIST = "COLLAPSIBLE_LIST", TABLE = "TABLE", EMBED = "EMBED", COLLAPSIBLE_ITEM = "COLLAPSIBLE_ITEM", COLLAPSIBLE_ITEM_TITLE = "COLLAPSIBLE_ITEM_TITLE", COLLAPSIBLE_ITEM_BODY = "COLLAPSIBLE_ITEM_BODY", TABLE_CELL = "TABLE_CELL", TABLE_ROW = "TABLE_ROW", EXTERNAL = "EXTERNAL", AUDIO = "AUDIO", CAPTION = "CAPTION", LAYOUT = "LAYOUT", LAYOUT_CELL = "LAYOUT_CELL", SHAPE = "SHAPE", CARD = "CARD", TOC = "TOC", SMART_BLOCK = "SMART_BLOCK", SMART_BLOCK_CELL = "SMART_BLOCK_CELL" } /** @enumType */ type NodeTypeWithLiterals = NodeType | 'PARAGRAPH' | 'TEXT' | 'HEADING' | 'BULLETED_LIST' | 'ORDERED_LIST' | 'LIST_ITEM' | 'BLOCKQUOTE' | 'CODE_BLOCK' | 'VIDEO' | 'DIVIDER' | 'FILE' | 'GALLERY' | 'GIF' | 'HTML' | 'IMAGE' | 'LINK_PREVIEW' | 'MAP' | 'POLL' | 'APP_EMBED' | 'BUTTON' | 'COLLAPSIBLE_LIST' | 'TABLE' | 'EMBED' | 'COLLAPSIBLE_ITEM' | 'COLLAPSIBLE_ITEM_TITLE' | 'COLLAPSIBLE_ITEM_BODY' | 'TABLE_CELL' | 'TABLE_ROW' | 'EXTERNAL' | 'AUDIO' | 'CAPTION' | 'LAYOUT' | 'LAYOUT_CELL' | 'SHAPE' | 'CARD' | 'TOC' | 'SMART_BLOCK' | 'SMART_BLOCK_CELL'; interface NodeStyle { /** The top padding value in pixels. */ paddingTop?: string | null; /** The bottom padding value in pixels. */ paddingBottom?: string | null; /** The background color as a hexadecimal value. */ backgroundColor?: string | null; } interface ButtonData { /** Styling for the button's container. */ containerData?: PluginContainerData; /** The button type. */ type?: ButtonDataTypeWithLiterals; /** Styling for the button. */ styles?: Styles; /** The text to display on the button. */ text?: string | null; /** Button link details. */ link?: Link; } /** Background type */ declare enum BackgroundType { /** Solid color background */ COLOR = "COLOR", /** Gradient background */ GRADIENT = "GRADIENT" } /** @enumType */ type BackgroundTypeWithLiterals = BackgroundType | 'COLOR' | 'GRADIENT'; interface Gradient { /** Gradient type. */ type?: GradientTypeWithLiterals; /** * Color stops for the gradient. * @maxSize 1000 */ stops?: Stop[]; /** Angle in degrees for linear gradient (0-360). */ angle?: number | null; /** * Horizontal center position for radial gradient (0-100). * @max 100 */ centerX?: number | null; /** * Vertical center position for radial gradient (0-100). * @max 100 */ centerY?: number | null; } /** Gradient type. */ declare enum GradientType { /** Linear gradient. */ LINEAR = "LINEAR", /** Radial gradient. */ RADIAL = "RADIAL" } /** @enumType */ type GradientTypeWithLiterals = GradientType | 'LINEAR' | 'RADIAL'; /** A single color stop in the gradient. */ interface Stop { /** * Stop color as hex value. * @format COLOR_HEX */ color?: string | null; /** Stop position (0-1). */ position?: number | null; } interface Border { /** * Deprecated: Use `borderWidth` in `styles` instead. * @deprecated */ width?: number | null; /** * Deprecated: Use `borderRadius` in `styles` instead. * @deprecated */ radius?: number | null; } interface Colors { /** * Deprecated: Use `textColor` in `styles` instead. * @deprecated */ text?: string | null; /** * Deprecated: Use `borderColor` in `styles` instead. * @deprecated */ border?: string | null; /** * Deprecated: Use `backgroundColor` in `styles` instead. * @deprecated */ background?: string | null; } /** Background styling (color or gradient) */ interface Background { /** Background type. */ type?: BackgroundTypeWithLiterals; /** * Background color as a hexadecimal value. * @format COLOR_HEX */ color?: string | null; /** Gradient configuration. */ gradient?: Gradient; } interface PluginContainerData { /** The width of the node when it's displayed. */ width?: PluginContainerDataWidth; /** The node's alignment within its container. */ alignment?: PluginContainerDataAlignmentWithLiterals; /** Spoiler cover settings for the node. */ spoiler?: Spoiler; /** The height of the node when it's displayed. */ height?: Height; /** Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`. */ textWrap?: boolean | null; } declare enum WidthType { /** Width matches the content width */ CONTENT = "CONTENT", /** Small Width */ SMALL = "SMALL", /** Width will match the original asset width */ ORIGINAL = "ORIGINAL", /** coast-to-coast display */ FULL_WIDTH = "FULL_WIDTH" } /** @enumType */ type WidthTypeWithLiterals = WidthType | 'CONTENT' | 'SMALL' | 'ORIGINAL' | 'FULL_WIDTH'; interface PluginContainerDataWidth extends PluginContainerDataWidthDataOneOf { /** * One of the following predefined width options: * `CONTENT`: The width of the container matches the content width. * `SMALL`: A small width. * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width. * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen. */ size?: WidthTypeWithLiterals; /** A custom width value in pixels. */ custom?: string | null; } /** @oneof */ interface PluginContainerDataWidthDataOneOf { /** * One of the following predefined width options: * `CONTENT`: The width of the container matches the content width. * `SMALL`: A small width. * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width. * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen. */ size?: WidthTypeWithLiterals; /** A custom width value in pixels. */ custom?: string | null; } declare enum PluginContainerDataAlignment { /** Center Alignment */ CENTER = "CENTER", /** Left Alignment */ LEFT = "LEFT", /** Right Alignment */ RIGHT = "RIGHT" } /** @enumType */ type PluginContainerDataAlignmentWithLiterals = PluginContainerDataAlignment | 'CENTER' | 'LEFT' | 'RIGHT'; interface Spoiler { /** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */ enabled?: boolean | null; /** The description displayed on top of the spoiler cover. */ description?: string | null; /** The text for the button used to remove the spoiler cover. */ buttonText?: string | null; } interface Height { /** A custom height value in pixels. */ custom?: string | null; } declare enum ButtonDataType { /** Regular link button */ LINK = "LINK", /** Triggers custom action that is defined in plugin configuration by the consumer */ ACTION = "ACTION" } /** @enumType */ type ButtonDataTypeWithLiterals = ButtonDataType | 'LINK' | 'ACTION'; interface Styles { /** * Deprecated: Use `borderWidth` and `borderRadius` instead. * @deprecated */ border?: Border; /** * Deprecated: Use `textColor`, `borderColor` and `backgroundColor` instead. * @deprecated */ colors?: Colors; /** Border width in pixels. */ borderWidth?: number | null; /** * Deprecated: Use `borderWidth` for normal/hover states instead. * @deprecated */ borderWidthHover?: number | null; /** Border radius in pixels. */ borderRadius?: number | null; /** * Border color as a hexadecimal value. * @format COLOR_HEX */ borderColor?: string | null; /** * Border color as a hexadecimal value (hover state). * @format COLOR_HEX */ borderColorHover?: string | null; /** * Text color as a hexadecimal value. * @format COLOR_HEX */ textColor?: string | null; /** * Text color as a hexadecimal value (hover state). * @format COLOR_HEX */ textColorHover?: string | null; /** * Deprecated: Use `background` instead. * @format COLOR_HEX * @deprecated */ backgroundColor?: string | null; /** * Deprecated: Use `backgroundHover` instead. * @format COLOR_HEX * @deprecated */ backgroundColorHover?: string | null; /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */ buttonSize?: string | null; /** Background styling (color or gradient). */ background?: Background; /** Background styling for hover state (color or gradient). */ backgroundHover?: Background; } interface Link extends LinkDataOneOf { /** The absolute URL for the linked document. */ url?: string; /** The target node's ID. Used for linking to another node in this object. */ anchor?: string; /** * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows: * `SELF` - Default. Opens the linked document in the same frame as the link. * `BLANK` - Opens the linked document in a new browser tab or window. * `PARENT` - Opens the linked document in the link's parent frame. * `TOP` - Opens the linked document in the full body of the link's browser tab or window. */ target?: LinkTargetWithLiterals; /** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */ rel?: Rel; /** A serialized object used for a custom or external link panel. */ customData?: string | null; } /** @oneof */ interface LinkDataOneOf { /** The absolute URL for the linked document. */ url?: string; /** The target node's ID. Used for linking to another node in this object. */ anchor?: string; } declare enum LinkTarget { /** Opens the linked document in the same frame as it was clicked (this is default) */ SELF = "SELF", /** Opens the linked document in a new window or tab */ BLANK = "BLANK", /** Opens the linked document in the parent frame */ PARENT = "PARENT", /** Opens the linked document in the full body of the window */ TOP = "TOP" } /** @enumType */ type LinkTargetWithLiterals = LinkTarget | 'SELF' | 'BLANK' | 'PARENT' | 'TOP'; interface Rel { /** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */ nofollow?: boolean | null; /** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */ sponsored?: boolean | null; /** Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post. Defaults to `false`. */ ugc?: boolean | null; /** Indicates that this link protect referral information from being passed to the target website. */ noreferrer?: boolean | null; } interface CodeBlockData { /** Styling for the code block's text. */ textStyle?: TextStyle; } interface TextStyle { /** Text alignment. Defaults to `AUTO`. */ textAlignment?: TextAlignmentWithLiterals; /** A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px. */ lineHeight?: string | null; } declare enum TextAlignment { /** browser default, eqivalent to `initial` */ AUTO = "AUTO", /** Left align */ LEFT = "LEFT", /** Right align */ RIGHT = "RIGHT", /** Center align */ CENTER = "CENTER", /** Text is spaced to line up its left and right edges to the left and right edges of the line box, except for the last line */ JUSTIFY = "JUSTIFY" } /** @enumType */ type TextAlignmentWithLiterals = TextAlignment | 'AUTO' | 'LEFT' | 'RIGHT' | 'CENTER' | 'JUSTIFY'; interface DividerData { /** Styling for the divider's container. */ containerData?: PluginContainerData; /** Divider line style. */ lineStyle?: LineStyleWithLiterals; /** Divider width. */ width?: WidthWithLiterals; /** Divider alignment. */ alignment?: DividerDataAlignmentWithLiterals; } declare enum LineStyle { /** Single Line */ SINGLE = "SINGLE", /** Double Line */ DOUBLE = "DOUBLE", /** Dashed Line */ DASHED = "DASHED", /** Dotted Line */ DOTTED = "DOTTED" } /** @enumType */ type LineStyleWithLiterals = LineStyle | 'SINGLE' | 'DOUBLE' | 'DASHED' | 'DOTTED'; declare enum Width { /** Large line */ LARGE = "LARGE", /** Medium line */ MEDIUM = "MEDIUM", /** Small line */ SMALL = "SMALL" } /** @enumType */ type WidthWithLiterals = Width | 'LARGE' | 'MEDIUM' | 'SMALL'; declare enum DividerDataAlignment { /** Center alignment */ CENTER = "CENTER", /** Left alignment */ LEFT = "LEFT", /** Right alignment */ RIGHT = "RIGHT" } /** @enumType */ type DividerDataAlignmentWithLiterals = DividerDataAlignment | 'CENTER' | 'LEFT' | 'RIGHT'; interface FileData { /** Styling for the file's container. */ containerData?: PluginContainerData; /** The source for the file's data. */ src?: FileSource; /** File name. */ name?: string | null; /** File type. */ type?: string | null; /** * Use `sizeInKb` instead. * @deprecated */ size?: number | null; /** Settings for PDF files. */ pdfSettings?: PDFSettings; /** File MIME type. */ mimeType?: string | null; /** File path. */ path?: string | null; /** File size in KB. */ sizeInKb?: string | null; } declare enum ViewMode { /** No PDF view */ NONE = "NONE", /** Full PDF view */ FULL = "FULL", /** Mini PDF view */ MINI = "MINI" } /** @enumType */ type ViewModeWithLiterals = ViewMode | 'NONE' | 'FULL' | 'MINI'; interface FileSource extends FileSourceDataOneOf { /** The absolute URL for the file's source. */ url?: string | null; /** * Custom ID. Use `id` instead. * @deprecated */ custom?: string | null; /** An ID that's resolved to a URL by a resolver function. */ id?: string | null; /** Indicates whether the file's source is private. Defaults to `false`. */ private?: boolean | null; } /** @oneof */ interface FileSourceDataOneOf { /** The absolute URL for the file's source. */ url?: string | null; /** * Custom ID. Use `id` instead. * @deprecated */ custom?: string | null; /** An ID that's resolved to a URL by a resolver function. */ id?: string | null; } interface PDFSettings { /** * PDF view mode. One of the following: * `NONE` : The PDF isn't displayed. * `FULL` : A full page view of the PDF is displayed. * `MINI` : A mini view of the PDF is displayed. */ viewMode?: ViewModeWithLiterals; /** Sets whether the PDF download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; /** Sets whether the PDF print button is disabled. Defaults to `false`. */ disablePrint?: boolean | null; } interface GalleryData { /** Styling for the gallery's container. */ containerData?: PluginContainerData; /** The items in the gallery. */ items?: Item[]; /** Options for defining the gallery's appearance. */ options?: GalleryOptions; /** Sets whether the gallery's expand button is disabled. Defaults to `false`. */ disableExpand?: boolean | null; /** Sets whether the gallery's download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; } interface Media { /** The source for the media's data. */ src?: FileSource; /** Media width in pixels. */ width?: number | null; /** Media height in pixels. */ height?: number | null; /** Media duration in seconds. Only relevant for audio and video files. */ duration?: number | null; } interface Image { /** Image file details. */ media?: Media; /** Link details for images that are links. */ link?: Link; } interface Video { /** Video file details. */ media?: Media; /** Video thumbnail file details. */ thumbnail?: Media; } interface Item extends ItemDataOneOf { /** An image item. */ image?: Image; /** A video item. */ video?: Video; /** Item title. */ title?: string | null; /** Item's alternative text. */ altText?: string | null; } /** @oneof */ interface ItemDataOneOf { /** An image item. */ image?: Image; /** A video item. */ video?: Video; } interface GalleryOptions { /** Gallery layout. */ layout?: GalleryOptionsLayout; /** Styling for gallery items. */ item?: ItemStyle; /** Styling for gallery thumbnail images. */ thumbnails?: Thumbnails; } declare enum LayoutType { /** Collage type */ COLLAGE = "COLLAGE", /** Masonry type */ MASONRY = "MASONRY", /** Grid type */ GRID = "GRID", /** Thumbnail type */ THUMBNAIL = "THUMBNAIL", /** Slider type */ SLIDER = "SLIDER", /** Slideshow type */ SLIDESHOW = "SLIDESHOW", /** Panorama type */ PANORAMA = "PANORAMA", /** Column type */ COLUMN = "COLUMN", /** Magic type */ MAGIC = "MAGIC", /** Fullsize images type */ FULLSIZE = "FULLSIZE" } /** @enumType */ type LayoutTypeWithLiterals = LayoutType | 'COLLAGE' | 'MASONRY' | 'GRID' | 'THUMBNAIL' | 'SLIDER' | 'SLIDESHOW' | 'PANORAMA' | 'COLUMN' | 'MAGIC' | 'FULLSIZE'; declare enum Orientation { /** Rows Orientation */ ROWS = "ROWS", /** Columns Orientation */ COLUMNS = "COLUMNS" } /** @enumType */ type OrientationWithLiterals = Orientation | 'ROWS' | 'COLUMNS'; declare enum Crop { /** Crop to fill */ FILL = "FILL", /** Crop to fit */ FIT = "FIT" } /** @enumType */ type CropWithLiterals = Crop | 'FILL' | 'FIT'; declare enum ThumbnailsAlignment { /** Top alignment */ TOP = "TOP", /** Right alignment */ RIGHT = "RIGHT", /** Bottom alignment */ BOTTOM = "BOTTOM", /** Left alignment */ LEFT = "LEFT", /** No thumbnail */ NONE = "NONE" } /** @enumType */ type ThumbnailsAlignmentWithLiterals = ThumbnailsAlignment | 'TOP' | 'RIGHT' | 'BOTTOM' | 'LEFT' | 'NONE'; interface GalleryOptionsLayout { /** Gallery layout type. */ type?: LayoutTypeWithLiterals; /** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */ horizontalScroll?: boolean | null; /** Gallery orientation. */ orientation?: OrientationWithLiterals; /** The number of columns to display on full size screens. */ numberOfColumns?: number | null; /** The number of columns to display on mobile screens. */ mobileNumberOfColumns?: number | null; } interface ItemStyle { /** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */ targetSize?: number | null; /** Item ratio */ ratio?: number | null; /** Sets how item images are cropped. */ crop?: CropWithLiterals; /** The spacing between items in pixels. */ spacing?: number | null; } interface Thumbnails { /** Thumbnail alignment. */ placement?: ThumbnailsAlignmentWithLiterals; /** Spacing between thumbnails in pixels. */ spacing?: number | null; } interface GIFData { /** Styling for the GIF's container. */ containerData?: PluginContainerData; /** The source of the full size GIF. */ original?: GIF; /** The source of the downsized GIF. */ downsized?: GIF; /** Height in pixels. */ height?: number; /** Width in pixels. */ width?: number; /** Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`. */ gifType?: GIFTypeWithLiterals; } interface GIF { /** * GIF format URL. * @format WEB_URL */ gif?: string | null; /** * MP4 format URL. * @format WEB_URL */ mp4?: string | null; /** * Thumbnail URL. * @format WEB_URL */ still?: string | null; } declare enum GIFType { NORMAL = "NORMAL", STICKER = "STICKER" } /** @enumType */ type GIFTypeWithLiterals = GIFType | 'NORMAL' | 'STICKER'; interface HeadingData { /** Heading level from 1-6. */ level?: number; /** Styling for the heading text. */ textStyle?: TextStyle; /** Indentation level from 1-4. */ indentation?: number | null; /** Rendered heading level for SEO/accessibility, overrides the HTML tag when set. */ renderedLevel?: number | null; } interface HTMLData extends HTMLDataDataOneOf { /** The URL for the HTML code for the node. */ url?: string; /** The HTML code for the node. */ html?: string; /** * Whether this is an AdSense element. Use `source` instead. * @deprecated */ isAdsense?: boolean | null; /** The WixelWidget ID for AI_WIDGET source nodes. */ widgetId?: string; /** Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`. */ containerData?: PluginContainerData; /** The type of HTML code. */ source?: SourceWithLiterals; /** If container height is aligned with its content height. Defaults to `true`. */ autoHeight?: boolean | null; } /** @oneof */ interface HTMLDataDataOneOf { /** The URL for the HTML code for the node. */ url?: string; /** The HTML code for the node. */ html?: string; /** * Whether this is an AdSense element. Use `source` instead. * @deprecated */ isAdsense?: boolean | null; /** The WixelWidget ID for AI_WIDGET source nodes. */ widgetId?: string; } declare enum Source { HTML = "HTML", ADSENSE = "ADSENSE", AI = "AI", AI_WIDGET = "AI_WIDGET" } /** @enumType */ type SourceWithLiterals = Source | 'HTML' | 'ADSENSE' | 'AI' | 'AI_WIDGET'; interface ImageData { /** Styling for the image's container. */ containerData?: PluginContainerData; /** Image file details. */ image?: Media; /** Link details for images that are links. */ link?: Link; /** Sets whether the image expands to full screen when clicked. Defaults to `false`. */ disableExpand?: boolean | null; /** Image's alternative text. */ altText?: string | null; /** * Deprecated: use Caption node instead. * @deprecated */ caption?: string | null; /** Sets whether the image's download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; /** Sets whether the image is decorative and does not need an explanation. Defaults to `false`. */ decorative?: boolean | null; /** Styling for the image. */ styles?: ImageDataStyles; } interface StylesBorder { /** Border width in pixels. */ width?: number | null; /** * Border color as a hexadecimal value. * @format COLOR_HEX */ color?: string | null; /** Border radius in pixels. */ radius?: number | null; } interface ImageDataStyles { /** Border attributes. */ border?: StylesBorder; } interface LinkPreviewData { /** Styling for the link preview's container. */ containerData?: PluginContainerData; /** Link details. */ link?: Link; /** Preview title. */ title?: string | null; /** Preview thumbnail URL. */ thumbnailUrl?: string | null; /** Preview description. */ description?: string | null; /** The preview content as HTML. */ html?: string | null; /** Styling for the link preview. */ styles?: LinkPreviewDataStyles; } declare enum StylesPosition { /** Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts) */ START = "START", /** Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts) */ END = "END", /** Thumbnail positioned at the top */ TOP = "TOP", /** Thumbnail hidden and not displayed */ HIDDEN = "HIDDEN" } /** @enumType */ type StylesPositionWithLiterals = StylesPosition | 'START' | 'END' | 'TOP' | 'HIDDEN'; interface LinkPreviewDataStyles { /** * Background color as a hexadecimal value. * @format COLOR_HEX */ backgroundColor?: string | null; /** * Title color as a hexadecimal value. * @format COLOR_HEX */ titleColor?: string | null; /** * Subtitle color as a hexadecimal value. * @format COLOR_HEX */ subtitleColor?: string | null; /** * Link color as a hexadecimal value. * @format COLOR_HEX */ linkColor?: string | null; /** Border width in pixels. */ borderWidth?: number | null; /** Border radius in pixels. */ borderRadius?: number | null; /** * Border color as a hexadecimal value. * @format COLOR_HEX */ borderColor?: string | null; /** Position of thumbnail. Defaults to `START`. */ thumbnailPosition?: StylesPositionWithLiterals; } interface MapData { /** Styling for the map's container. */ containerData?: PluginContainerData; /** Map settings. */ mapSettings?: MapSettings; } interface MapSettings { /** The address to display on the map. */ address?: string | null; /** Sets whether the map is draggable. */ draggable?: boolean | null; /** Sets whether the location marker is visible. */ marker?: boolean | null; /** Sets whether street view control is enabled. */ streetViewControl?: boolean | null; /** Sets whether zoom control is enabled. */ zoomControl?: boolean | null; /** Location latitude. */ lat?: number | null; /** Location longitude. */ lng?: number | null; /** Location name. */ locationName?: string | null; /** Sets whether view mode control is enabled. */ viewModeControl?: boolean | null; /** Initial zoom value. */ initialZoom?: number | null; /** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */ mapType?: MapTypeWithLiterals; } declare enum MapType { /** Roadmap map type */ ROADMAP = "ROADMAP", /** Satellite map type */ SATELITE = "SATELITE", /** Hybrid map type */ HYBRID = "HYBRID", /** Terrain map type */ TERRAIN = "TERRAIN" } /** @enumType */ type MapTypeWithLiterals = MapType | 'ROADMAP' | 'SATELITE' | 'HYBRID' | 'TERRAIN'; interface ParagraphData { /** Styling for the paragraph text. */ textStyle?: TextStyle; /** Indentation level from 1-4. */ indentation?: number | null; /** Paragraph level */ level?: number | null; } interface PollData { /** Styling for the poll's container. */ containerData?: PluginContainerData; /** Poll data. */ poll?: Poll; /** Layout settings for the poll and voting options. */ layout?: PollDataLayout; /** Styling for the poll and voting options. */ design?: Design; } declare enum ViewRole { /** Only Poll creator can view the results */ CREATOR = "CREATOR", /** Anyone who voted can see the results */ VOTERS = "VOTERS", /** Anyone can see the results, even if one didn't vote */ EVERYONE = "EVERYONE" } /** @enumType */ type ViewRoleWithLiterals = ViewRole | 'CREATOR' | 'VOTERS' | 'EVERYONE'; declare enum VoteRole { /** Logged in member */ SITE_MEMBERS = "SITE_MEMBERS", /** Anyone */ ALL = "ALL" } /** @enumType */ type VoteRoleWithLiterals = VoteRole | 'SITE_MEMBERS' | 'ALL'; interface Permissions { /** Sets who can view the poll results. */ view?: ViewRoleWithLiterals; /** Sets who can vote. */ vote?: VoteRoleWithLiterals; /** Sets whether one voter can vote multiple times. Defaults to `false`. */ allowMultipleVotes?: boolean | null; } interface PollOption { /** Option ID. */ id?: string | null; /** Option title. */ title?: string | null; /** The image displayed with the option. */ image?: Media; } interface Settings { /** Permissions settings for voting. */ permissions?: Permissions; /** Sets whether voters are displayed in the vote results. Defaults to `true`. */ showVoters?: boolean | null; /** Sets whether the vote count is displayed. Defaults to `true`. */ showVotesCount?: boolean | null; } declare enum PollLayoutType { /** List */ LIST = "LIST", /** Grid */ GRID = "GRID" } /** @enumType */ type PollLayoutTypeWithLiterals = PollLayoutType | 'LIST' | 'GRID'; declare enum PollLayoutDirection { /** Left-to-right */ LTR = "LTR", /** Right-to-left */ RTL = "RTL" } /** @enumType */ type PollLayoutDirectionWithLiterals = PollLayoutDirection | 'LTR' | 'RTL'; interface PollLayout { /** The layout for displaying the voting options. */ type?: PollLayoutTypeWithLiterals; /** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */ direction?: PollLayoutDirectionWithLiterals; /** Sets whether to display the main poll image. Defaults to `false`. */ enableImage?: boolean | null; } interface OptionLayout { /** Sets whether to display option images. Defaults to `false`. */ enableImage?: boolean | null; } declare enum PollDesignBackgroundType { /** Color background type */ COLOR = "COLOR", /** Image background type */ IMAGE = "IMAGE", /** Gradiant background type */ GRADIENT = "GRADIENT" } /** @enumType */ type PollDesignBackgroundTypeWithLiterals = PollDesignBackgroundType | 'COLOR' | 'IMAGE' | 'GRADIENT'; interface BackgroundGradient { /** The gradient angle in degrees. */ angle?: number | null; /** * The start color as a hexademical value. * @format COLOR_HEX */ startColor?: string | null; /** * The end color as a hexademical value. * @format COLOR_HEX */ lastColor?: string | null; } interface PollDesignBackground extends PollDesignBackgroundBackgroundOneOf { /** * The background color as a hexademical value. * @format COLOR_HEX */ color?: string | null; /** An image to use for the background. */ image?: Media; /** Details for a gradient background. */ gradient?: BackgroundGradient; /** Background type. For each option, include the relevant details. */ type?: PollDesignBackgroundTypeWithLiterals; } /** @oneof */ interface PollDesignBackgroundBackgroundOneOf { /** * The background color as a hexademical value. * @format COLOR_HEX */ color?: string | null; /** An image to use for the background. */ image?: Media; /** Details for a gradient background. */ gradient?: BackgroundGradient; } interface PollDesign { /** Background styling. */ background?: PollDesignBackground; /** Border radius in pixels. */ borderRadius?: number | null; } interface OptionDesign { /** Border radius in pixels. */ borderRadius?: number | null; } interface Poll { /** Poll ID. */ id?: string | null; /** Poll title. */ title?: string | null; /** Poll creator ID. */ creatorId?: string | null; /** Main poll image. */ image?: Media; /** Voting options. */ options?: PollOption[]; /** The poll's permissions and display settings. */ settings?: Settings; } interface PollDataLayout { /** Poll layout settings. */ poll?: PollLayout; /** Voting otpions layout settings. */ options?: OptionLayout; } interface Design { /** Styling for the poll. */ poll?: PollDesign; /** Styling for voting options. */ options?: OptionDesign; } interface TextData { /** The text to apply decorations to. */ text?: string; /** The decorations to apply. */ decorations?: Decoration[]; } /** Adds appearence changes to text */ interface Decoration extends DecorationDataOneOf { /** Data for an anchor link decoration. */ anchorData?: AnchorData; /** Data for a color decoration. */ colorData?: ColorData; /** Data for an external link decoration. */ linkData?: LinkData; /** Data for a mention decoration. */ mentionData?: MentionData; /** Data for a font size decoration. */ fontSizeData?: FontSizeData; /** Font weight for a bold decoration. */ fontWeightValue?: number | null; /** Data for an italic decoration. Defaults to `true`. */ italicData?: boolean | null; /** Data for an underline decoration. Defaults to `true`. */ underlineData?: boolean | null; /** Data for a spoiler decoration. */ spoilerData?: SpoilerData; /** Data for a strikethrough decoration. Defaults to `true`. */ strikethroughData?: boolean | null; /** Data for a superscript decoration. Defaults to `true`. */ superscriptData?: boolean | null; /** Data for a subscript decoration. Defaults to `true`. */ subscriptData?: boolean | null; /** Data for a font family decoration. */ fontFamilyData?: FontFamilyData; /** The type of decoration to apply. */ type?: DecorationTypeWithLiterals; } /** @oneof */ interface DecorationDataOneOf { /** Data for an anchor link decoration. */ anchorData?: AnchorData; /** Data for a color decoration. */ colorData?: ColorData; /** Data for an external link decoration. */ linkData?: LinkData; /** Data for a mention decoration. */ mentionData?: MentionData; /** Data for a font size decoration. */ fontSizeData?: FontSizeData; /** Font weight for a bold decoration. */ fontWeightValue?: number | null; /** Data for an italic decoration. Defaults to `true`. */ italicData?: boolean | null; /** Data for an underline decoration. Defaults to `true`. */ underlineData?: boolean | null; /** Data for a spoiler decoration. */ spoilerData?: SpoilerData; /** Data for a strikethrough decoration. Defaults to `true`. */ strikethroughData?: boolean | null; /** Data for a superscript decoration. Defaults to `true`. */ superscriptData?: boolean | null; /** Data for a subscript decoration. Defaults to `true`. */ subscriptData?: boolean | null; /** Data for a font family decoration. */ fontFamilyData?: FontFamilyData; } declare enum DecorationType { BOLD = "BOLD", ITALIC = "ITALIC", UNDERLINE = "UNDERLINE", SPOILER = "SPOILER", ANCHOR = "ANCHOR", MENTION = "MENTION", LINK = "LINK", COLOR = "COLOR", FONT_SIZE = "FONT_SIZE", EXTERNAL = "EXTERNAL", STRIKETHROUGH = "STRIKETHROUGH", SUPERSCRIPT = "SUPERSCRIPT", SUBSCRIPT = "SUBSCRIPT", FONT_FAMILY = "FONT_FAMILY" } /** @enumType */ type DecorationTypeWithLiterals = DecorationType | 'BOLD' | 'ITALIC' | 'UNDERLINE' | 'SPOILER' | 'ANCHOR' | 'MENTION' | 'LINK' | 'COLOR' | 'FONT_SIZE' | 'EXTERNAL' | 'STRIKETHROUGH' | 'SUPERSCRIPT' | 'SUBSCRIPT' | 'FONT_FAMILY'; interface AnchorData { /** The target node's ID. */ anchor?: string; } interface ColorData { /** The text's background color as a hexadecimal value. */ background?: string | null; /** The text's foreground color as a hexadecimal value. */ foreground?: string | null; } interface LinkData { /** Link details. */ link?: Link; } interface MentionData { /** The mentioned user's name. */ name?: string; /** The version of the user's name that appears after the `@` character in the mention. */ slug?: string; /** Mentioned user's ID. */ id?: string | null; } interface FontSizeData { /** The units used for the font size. */ unit?: FontTypeWithLiterals; /** Font size value. */ value?: number | null; } declare enum FontType { PX = "PX", EM = "EM" } /** @enumType */ type FontTypeWithLiterals = FontType | 'PX' | 'EM'; interface SpoilerData { /** Spoiler ID. */ id?: string | null; } interface FontFamilyData { /** @maxLength 1000 */ value?: string | null; } interface AppEmbedData extends AppEmbedDataAppDataOneOf { /** Data for embedded Wix Bookings content. */ bookingData?: BookingData; /** Data for embedded Wix Events content. */ eventData?: EventData; /** The type of Wix App content being embedded. */ type?: AppTypeWithLiterals; /** The ID of the embedded content. */ itemId?: string | null; /** The name of the embedded content. */ name?: string | null; /** * Deprecated: Use `image` instead. * @deprecated */ imageSrc?: string | null; /** The URL for the embedded content. */ url?: string | null; /** An image for the embedded content. */ image?: Media; /** Whether to hide the image. */ hideImage?: boolean | null; /** Whether to hide the title. */ hideTitle?: boolean | null; /** Whether to hide the price. */ hidePrice?: boolean | null; /** Whether to hide the description (Event and Booking). */ hideDescription?: boolean | null; /** Whether to hide the date and time (Event). */ hideDateTime?: boolean | null; /** Whether to hide the location (Event). */ hideLocation?: boolean | null; /** Whether to hide the duration (Booking). */ hideDuration?: boolean | null; /** Whether to hide the button. */ hideButton?: boolean | null; /** Whether to hide the ribbon. */ hideRibbon?: boolean | null; /** Button styling options. */ buttonStyles?: ButtonStyles; /** Image styling options. */ imageStyles?: ImageStyles; /** Ribbon styling options. */ ribbonStyles?: RibbonStyles; /** Card styling options. */ cardStyles?: CardStyles; /** Styling for the app embed's container. */ containerData?: PluginContainerData; /** Pricing data for embedded Wix App content. */ pricingData?: PricingData; } /** @oneof */ interface AppEmbedDataAppDataOneOf { /** Data for embedded Wix Bookings content. */ bookingData?: BookingData; /** Data for embedded Wix Events content. */ eventData?: EventData; } declare enum Position { /** Image positioned at the start (left in LTR layouts, right in RTL layouts) */ START = "START", /** Image positioned at the end (right in LTR layouts, left in RTL layouts) */ END = "END", /** Image positioned at the top */ TOP = "TOP" } /** @enumType */ type PositionWithLiterals = Position | 'START' | 'END' | 'TOP'; declare enum AspectRatio { /** 1:1 aspect ratio */ SQUARE = "SQUARE", /** 16:9 aspect ratio */ RECTANGLE = "RECTANGLE" } /** @enumType */ type AspectRatioWithLiterals = AspectRatio | 'SQUARE' | 'RECTANGLE'; declare enum Resizing { /** Fill the container, may crop the image */ FILL = "FILL", /** Fit the image within the container */ FIT = "FIT" } /** @enumType */ type ResizingWithLiterals = Resizing | 'FILL' | 'FIT'; declare enum Placement { /** Ribbon placed on the image */ IMAGE = "IMAGE", /** Ribbon placed on the product information */ PRODUCT_INFO = "PRODUCT_INFO" } /** @enumType */ type PlacementWithLiterals = Placement | 'IMAGE' | 'PRODUCT_INFO'; declare enum CardStylesType { /** Card with visible border and background */ CONTAINED = "CONTAINED", /** Card without visible border */ FRAMELESS = "FRAMELESS" } /** @enumType */ type CardStylesTypeWithLiterals = CardStylesType | 'CONTAINED' | 'FRAMELESS'; declare enum CardStylesAlignment { /** Content aligned to start (left in LTR layouts, right in RTL layouts) */ START = "START", /** Content centered */ CENTER = "CENTER", /** Content aligned to end (right in LTR layouts, left in RTL layouts) */ END = "END" } /** @enumType */ type CardStylesAlignmentWithLiterals = CardStylesAlignment | 'START' | 'CENTER' | 'END'; declare enum Layout { /** Elements stacked vertically */ STACKED = "STACKED", /** Elements arranged horizontally */ SIDE_BY_SIDE = "SIDE_BY_SIDE" } /** @enumType */ type LayoutWithLiterals = Layout | 'STACKED' | 'SIDE_BY_SIDE'; declare enum AppType { PRODUCT = "PRODUCT", EVENT = "EVENT", BOOKING = "BOOKING" } /** @enumType */ type AppTypeWithLiterals = AppType | 'PRODUCT' | 'EVENT' | 'BOOKING'; interface BookingData { /** Booking duration in minutes. */ durations?: string | null; } interface EventData { /** Event schedule. */ scheduling?: string | null; /** Event location. */ location?: string | null; } interface ButtonStyles { /** Text to display on the button. */ buttonText?: string | null; /** Border width in pixels. */ borderWidth?: number | null; /** Border radius in pixels. */ borderRadius?: number | null; /** * Border color as a hexadecimal value. * @format COLOR_HEX */ borderColor?: string | null; /** * Text color as a hexadecimal value. * @format COLOR_HEX */ textColor?: string | null; /** * Background color as a hexadecimal value. * @format COLOR_HEX */ backgroundColor?: string | null; /** * Border color as a hexadecimal value (hover state). * @format COLOR_HEX */ borderColorHover?: string | null; /** * Text color as a hexadecimal value (hover state). * @format COLOR_HEX */ textColorHover?: string | null; /** * Background color as a hexadecimal value (hover state). * @format COLOR_HEX */ backgroundColorHover?: string | null; /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */ buttonSize?: string | null; } interface ImageStyles { /** Whether to hide the image. */ hideImage?: boolean | null; /** Position of image. Defaults to `START`. */ imagePosition?: PositionWithLiterals; /** Aspect ratio for the image. Defaults to `SQUARE`. */ aspectRatio?: AspectRatioWithLiterals; /** How the image should be resized. Defaults to `FILL`. */ resizing?: ResizingWithLiterals; /** * Image border color as a hexadecimal value. * @format COLOR_HEX */ borderColor?: string | null; /** Image border width in pixels. */ borderWidth?: number | null; /** Image border radius in pixels. */ borderRadius?: number | null; } interface RibbonStyles { /** Text to display on the ribbon. */ ribbonText?: string | null; /** * Ribbon background color as a hexadecimal value. * @format COLOR_HEX */ backgroundColor?: string | null; /** * Ribbon text color as a hexadecimal value. * @format COLOR_HEX */ textColor?: string | null; /** * Ribbon border color as a hexadecimal value. * @format COLOR_HEX */ borderColor?: string | null; /** Ribbon border width in pixels. */ borderWidth?: number | null; /** Ribbon border radius in pixels. */ borderRadius?: number | null; /** Placement of the ribbon. Defaults to `IMAGE`. */ ribbonPlacement?: PlacementWithLiterals; } interface CardStyles { /** * Card background color as a hexadecimal value. * @format COLOR_HEX */ backgroundColor?: string | null; /** * Card border color as a hexadecimal value. * @format COLOR_HEX */ borderColor?: string | null; /** Card border width in pixels. */ borderWidth?: number | null; /** Card border radius in pixels. */ borderRadius?: number | null; /** Card type. Defaults to `CONTAINED`. */ type?: CardStylesTypeWithLiterals; /** Content alignment. Defaults to `START`. */ alignment?: CardStylesAlignmentWithLiterals; /** Layout for title and price. Defaults to `STACKED`. */ titlePriceLayout?: LayoutWithLiterals; /** * Title text color as a hexadecimal value. * @format COLOR_HEX */ titleColor?: string | null; /** * Text color as a hexadecimal value. * @format COLOR_HEX */ textColor?: string | null; } interface PricingData { /** * Minimum numeric price value as string (e.g., "10.99"). * @decimalValue options { maxScale:2 } */ valueFrom?: string | null; /** * Maximum numeric price value as string (e.g., "19.99"). * @decimalValue options { maxScale:2 } */ valueTo?: string | null; /** * Numeric price value as string after discount application (e.g., "15.99"). * @decimalValue options { maxScale:2 } */ discountedValue?: string | null; /** * Currency of the value in ISO 4217 format (e.g., "USD", "EUR"). * @format CURRENCY */ currency?: string | null; /** * Pricing plan ID. * @format GUID */ pricingPlanId?: string | null; } interface VideoData { /** Styling for the video's container. */ containerData?: PluginContainerData; /** Video details. */ video?: Media; /** Video thumbnail details. */ thumbnail?: Media; /** Sets whether the video's download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; /** Video title. */ title?: string | null; /** Video options. */ options?: PlaybackOptions; } interface PlaybackOptions { /** Sets whether the media will automatically start playing. */ autoPlay?: boolean | null; /** Sets whether media's will be looped. */ playInLoop?: boolean | null; /** Sets whether media's controls will be shown. */ showControls?: boolean | null; } interface EmbedData { /** Styling for the oEmbed node's container. */ containerData?: PluginContainerData; /** An [oEmbed](https://www.oembed.com) object. */ oembed?: Oembed; /** Origin asset source. */ src?: string | null; } interface Oembed { /** The resource type. */ type?: string | null; /** The width of the resource specified in the `url` property in pixels. */ width?: number | null; /** The height of the resource specified in the `url` property in pixels. */ height?: number | null; /** Resource title. */ title?: string | null; /** The source URL for the resource. */ url?: string | null; /** HTML for embedding a video player. The HTML should have no padding or margins. */ html?: string | null; /** The name of the author or owner of the resource. */ authorName?: string | null; /** The URL for the author or owner of the resource. */ authorUrl?: string | null; /** The name of the resource provider. */ providerName?: string | null; /** The URL for the resource provider. */ providerUrl?: string | null; /** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */ thumbnailUrl?: string | null; /** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */ thumbnailWidth?: string | null; /** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */ thumbnailHeight?: string | null; /** The URL for an embedded viedo. */ videoUrl?: string | null; /** The oEmbed version number. This value must be `1.0`. */ version?: string | null; } interface CollapsibleListData { /** Styling for the collapsible list's container. */ containerData?: PluginContainerData; /** If `true`, only one item can be expanded at a time. Defaults to `false`. */ expandOnlyOne?: boolean | null; /** Sets which items are expanded when the page loads. */ initialExpandedItems?: InitialExpandedItemsWithLiterals; /** The direction of the text in the list. Either left-to-right or right-to-left. */ direction?: DirectionWithLiterals; /** If `true`, The collapsible item will appear in search results as an FAQ. */ isQapageData?: boolean | null; } declare enum InitialExpandedItems { /** First item will be expended initally */ FIRST = "FIRST", /** All items will expended initally */ ALL = "ALL", /** All items collapsed initally */ NONE = "NONE" } /** @enumType */ type InitialExpandedItemsWithLiterals = InitialExpandedItems | 'FIRST' | 'ALL' | 'NONE'; declare enum Direction { /** Left-to-right */ LTR = "LTR", /** Right-to-left */ RTL = "RTL" } /** @enumType */ type DirectionWithLiterals = Direction | 'LTR' | 'RTL'; interface TableData { /** Styling for the table's container. */ containerData?: PluginContainerData; /** The table's dimensions. */ dimensions?: Dimensions; /** * Deprecated: Use `rowHeader` and `columnHeader` instead. * @deprecated */ header?: boolean | null; /** Sets whether the table's first row is a header. Defaults to `false`. */ rowHeader?: boolean | null; /** Sets whether the table's first column is a header. Defaults to `false`. */ columnHeader?: boolean | null; /** The spacing between cells in pixels. Defaults to `0`. */ cellSpacing?: number | null; /** * Padding in pixels for cells. Follows CSS order: top, right, bottom, left. * @maxSize 4 */ cellPadding?: number[]; /** Table's alternative text. */ altText?: string | null; } interface Dimensions { /** An array representing relative width of each column in relation to the other columns. */ colsWidthRatio?: number[]; /** An array representing the height of each row in pixels. */ rowsHeight?: number[]; /** An array representing the minimum width of each column in pixels. */ colsMinWidth?: number[]; } interface TableCellData { /** Styling for the cell's background color and text alignment. */ cellStyle?: CellStyle; /** The cell's border colors. */ borderColors?: BorderColors; /** Defines how many columns the cell spans. Default: 1. */ colspan?: number | null; /** Defines how many rows the cell spans. Default: 1. */ rowspan?: number | null; /** The cell's border widths. */ borderWidths?: BorderWidths; } declare enum VerticalAlignment { /** Top alignment */ TOP = "TOP", /** Middle alignment */ MIDDLE = "MIDDLE", /** Bottom alignment */ BOTTOM = "BOTTOM" } /** @enumType */ type VerticalAlignmentWithLiterals = VerticalAlignment | 'TOP' | 'MIDDLE' | 'BOTTOM'; interface CellStyle { /** Vertical alignment for the cell's text. */ verticalAlignment?: VerticalAlignmentWithLiterals; /** * Cell background color as a hexadecimal value. * @format COLOR_HEX */ backgroundColor?: string | null; } interface BorderColors { /** * Left border color as a hexadecimal value. * @format COLOR_HEX */ left?: string | null; /** * Right border color as a hexadecimal value. * @format COLOR_HEX */ right?: string | null; /** * Top border color as a hexadecimal value. * @format COLOR_HEX */ top?: string | null; /** * Bottom border color as a hexadecimal value. * @format COLOR_HEX */ bottom?: string | null; } interface BorderWidths { /** Left border width in pixels. */ left?: number | null; /** Right border width in pixels. */ right?: number | null; /** Top border width in pixels. */ top?: number | null; /** Bottom border width in pixels. */ bottom?: number | null; } /** * `NullValue` is a singleton enumeration to represent the null value for the * `Value` type union. * * The JSON representation for `NullValue` is JSON `null`. */ declare enum NullValue { /** Null value. */ NULL_VALUE = "NULL_VALUE" } /** @enumType */ type NullValueWithLiterals = NullValue | 'NULL_VALUE'; /** * `ListValue` is a wrapper around a repeated field of values. * * The JSON representation for `ListValue` is JSON array. */ interface ListValue { /** Repeated field of dynamically typed values. */ values?: any[]; } interface AudioData { /** Styling for the audio node's container. */ containerData?: PluginContainerData; /** Audio file details. */ audio?: Media; /** Sets whether the audio node's download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; /** Cover image. */ coverImage?: Media; /** Track name. */ name?: string | null; /** Author name. */ authorName?: string | null; /** An HTML version of the audio node. */ html?: string | null; } interface OrderedListData { /** Indentation level from 0-4. */ indentation?: number; /** Offset level from 0-4. */ offset?: number | null; /** List start number. */ start?: number | null; } interface BulletedListData { /** Indentation level from 0-4. */ indentation?: number; /** Offset level from 0-4. */ offset?: number | null; } interface BlockquoteData { /** Indentation level from 1-4. */ indentation?: number; } interface CaptionData { textStyle?: TextStyle; } interface LayoutData { /** * Deprecated: Use `background` instead. * @format COLOR_HEX * @deprecated */ backgroundColor?: string | null; /** Background image. */ backgroundImage?: LayoutDataBackgroundImage; /** * Border color as a hexadecimal value. * @format COLOR_HEX */ borderColor?: string | null; /** Border width in pixels. */ borderWidth?: number | null; /** Border radius in pixels. */ borderRadius?: number | null; /** * Deprecated: Use `backdrop` instead. * @format COLOR_HEX * @deprecated */ backdropColor?: string | null; /** Backdrop image. */ backdropImage?: LayoutDataBackgroundImage; /** Backdrop top padding. */ backdropPaddingTop?: number | null; /** Backdrop bottom padding */ backdropPaddingBottom?: number | null; /** Horizontal and vertical gap between columns */ gap?: number | null; /** * Padding in pixels for cells. Follows CSS order: top, right, bottom, left * @maxSize 4 */ cellPadding?: number[]; /** Vertical alignment for the cell's items. */ cellVerticalAlignment?: VerticalAlignmentAlignmentWithLiterals; /** Responsiveness behaviour of columns when responsiveness applies. Either stacks or wrappers. */ responsivenessBehaviour?: ResponsivenessBehaviourWithLiterals; /** Size in pixels when responsiveness_behaviour applies */ responsivenessBreakpoint?: number | null; /** Styling for the layout's container. */ containerData?: PluginContainerData; /** Defines where selected design propertied applies to */ designTarget?: DesignTargetWithLiterals; /** Banner configuration. When present, this layout is displayed as a banner. */ banner?: Banner; /** Background styling (color or gradient). */ background?: LayoutDataBackground; /** Backdrop styling (color or gradient). */ backdrop?: Backdrop; } declare enum ImageScalingScaling { /** Auto image scaling */ AUTO = "AUTO", /** Contain image scaling */ CONTAIN = "CONTAIN", /** Cover image scaling */ COVER = "COVER" } /** @enumType */ type ImageScalingScalingWithLiterals = ImageScalingScaling | 'AUTO' | 'CONTAIN' | 'COVER'; declare enum LayoutDataImagePosition { /** Image positioned at the center */ CENTER = "CENTER", /** Image positioned on the left */ CENTER_LEFT = "CENTER_LEFT", /** Image positioned on the right */ CENTER_RIGHT = "CENTER_RIGHT", /** Image positioned at the center top */ TOP = "TOP", /** Image positioned at the top left */ TOP_LEFT = "TOP_LEFT", /** Image positioned at the top right */ TOP_RIGHT = "TOP_RIGHT", /** Image positioned at the center bottom */ BOTTOM = "BOTTOM", /** Image positioned at the bottom left */ BOTTOM_LEFT = "BOTTOM_LEFT", /** Image positioned at the bottom right */ BOTTOM_RIGHT = "BOTTOM_RIGHT" } /** @enumType */ type LayoutDataImagePositionWithLiterals = LayoutDataImagePosition | 'CENTER' | 'CENTER_LEFT' | 'CENTER_RIGHT' | 'TOP' | 'TOP_LEFT' | 'TOP_RIGHT' | 'BOTTOM' | 'BOTTOM_LEFT' | 'BOTTOM_RIGHT'; declare enum Origin { /** Banner originated from an image */ IMAGE = "IMAGE", /** Banner originated from a layout */ LAYOUT = "LAYOUT" } /** @enumType */ type OriginWithLiterals = Origin | 'IMAGE' | 'LAYOUT'; /** Background type */ declare enum LayoutDataBackgroundType { /** Solid color background */ COLOR = "COLOR", /** Gradient background */ GRADIENT = "GRADIENT" } /** @enumType */ type LayoutDataBackgroundTypeWithLiterals = LayoutDataBackgroundType | 'COLOR' | 'GRADIENT'; /** Backdrop type */ declare enum BackdropType { /** Solid color backdrop */ COLOR = "COLOR", /** Gradient backdrop */ GRADIENT = "GRADIENT" } /** @enumType */ type BackdropTypeWithLiterals = BackdropType | 'COLOR' | 'GRADIENT'; interface LayoutDataBackgroundImage { /** Background image. */ media?: Media; /** Background image opacity. */ opacity?: number | null; /** Background image scaling. */ scaling?: ImageScalingScalingWithLiterals; /** Position of background. Defaults to `CENTER`. */ position?: LayoutDataImagePositionWithLiterals; } declare enum VerticalAlignmentAlignment { /** Top alignment */ TOP = "TOP", /** Middle alignment */ MIDDLE = "MIDDLE", /** Bottom alignment */ BOTTOM = "BOTTOM" } /** @enumType */ type VerticalAlignmentAlignmentWithLiterals = VerticalAlignmentAlignment | 'TOP' | 'MIDDLE' | 'BOTTOM'; declare enum ResponsivenessBehaviour { /** Stacking of columns */ STACK = "STACK", /** Wrapping of columns */ WRAP = "WRAP" } /** @enumType */ type ResponsivenessBehaviourWithLiterals = ResponsivenessBehaviour | 'STACK' | 'WRAP'; declare enum DesignTarget { /** Design applied to layout */ LAYOUT = "LAYOUT", /** Design applied to cells */ CELL = "CELL" } /** @enumType */ type DesignTargetWithLiterals = DesignTarget | 'LAYOUT' | 'CELL'; interface Banner { /** Origin of the banner */ origin?: OriginWithLiterals; } /** Background styling (color or gradient) */ interface LayoutDataBackground { /** Background type. */ type?: LayoutDataBackgroundTypeWithLiterals; /** * Background color as a hexadecimal value. * @format COLOR_HEX */ color?: string | null; /** Gradient configuration. */ gradient?: Gradient; } /** Backdrop styling (color or gradient) */ interface Backdrop { /** Backdrop type. */ type?: BackdropTypeWithLiterals; /** * Backdrop color as a hexadecimal value. * @format COLOR_HEX */ color?: string | null; /** Gradient configuration. */ gradient?: Gradient; } interface LayoutCellData { /** Size of the cell in 12 columns grid. */ colSpan?: number | null; } interface ShapeData { /** Styling for the shape's container. */ containerData?: PluginContainerData; /** Shape file details. */ shape?: Media; /** Styling for the shape. */ styles?: ShapeDataStyles; } interface ShapeDataStyles { /** * Shape fill color as a hexadecimal value. * @format COLOR_HEX */ color?: string | null; /** Map of original color keys to their new color values. */ colors?: Record; } interface CardData { /** Background styling (color or gradient). */ background?: CardDataBackground; /** Background image. */ backgroundImage?: BackgroundImage; } declare enum Scaling { /** Auto image scaling */ AUTO = "AUTO", /** Contain image scaling */ CONTAIN = "CONTAIN", /** Cover image scaling */ COVER = "COVER" } /** @enumType */ type ScalingWithLiterals = Scaling | 'AUTO' | 'CONTAIN' | 'COVER'; declare enum ImagePositionPosition { /** Image positioned at the center */ CENTER = "CENTER", /** Image positioned on the left */ CENTER_LEFT = "CENTER_LEFT", /** Image positioned on the right */ CENTER_RIGHT = "CENTER_RIGHT", /** Image positioned at the center top */ TOP = "TOP", /** Image positioned at the top left */ TOP_LEFT = "TOP_LEFT", /** Image positioned at the top right */ TOP_RIGHT = "TOP_RIGHT", /** Image positioned at the center bottom */ BOTTOM = "BOTTOM", /** Image positioned at the bottom left */ BOTTOM_LEFT = "BOTTOM_LEFT", /** Image positioned at the bottom right */ BOTTOM_RIGHT = "BOTTOM_RIGHT" } /** @enumType */ type ImagePositionPositionWithLiterals = ImagePositionPosition | 'CENTER' | 'CENTER_LEFT' | 'CENTER_RIGHT' | 'TOP' | 'TOP_LEFT' | 'TOP_RIGHT' | 'BOTTOM' | 'BOTTOM_LEFT' | 'BOTTOM_RIGHT'; /** Background type */ declare enum CardDataBackgroundType { /** Solid color background */ COLOR = "COLOR", /** Gradient background */ GRADIENT = "GRADIENT" } /** @enumType */ type CardDataBackgroundTypeWithLiterals = CardDataBackgroundType | 'COLOR' | 'GRADIENT'; /** Background styling (color or gradient) */ interface CardDataBackground { /** Background type. */ type?: CardDataBackgroundTypeWithLiterals; /** * Background color as a hexadecimal value. * @format COLOR_HEX */ color?: string | null; /** Gradient configuration. */ gradient?: Gradient; } interface BackgroundImage { /** Background image. */ media?: Media; /** Background image opacity. */ opacity?: number | null; /** Background image scaling. */ scaling?: ScalingWithLiterals; /** Position of background. Defaults to `CENTER`. */ position?: ImagePositionPositionWithLiterals; } interface TocData { /** Heading levels included in the table of contents. Default: [1, 2, 3, 4, 5, 6]. */ includedHeadings?: number[]; /** List style. Default: PLAIN. */ listStyle?: ListStyleWithLiterals; /** Optional override for the font size in pixels. */ fontSize?: number | null; /** Optional override for the vertical spacing between items in pixels. */ itemSpacing?: number | null; /** * Optional override for the text color. * @format COLOR_HEX */ color?: string | null; /** Indentation style. Default: NESTED. */ indentation?: IndentationWithLiterals; } /** List style. */ declare enum ListStyle { /** No markers (default) */ PLAIN = "PLAIN", /** Numbered list */ NUMBERED = "NUMBERED", /** Alphabetic letters */ LETTERS = "LETTERS", /** Roman numerals */ ROMAN = "ROMAN", /** Bulleted list */ BULLETED = "BULLETED", /** Alphabetical index */ ALPHABETICAL_INDEX = "ALPHABETICAL_INDEX", /** Alphabetical index (compact top-row only) */ ALPHABETICAL_INDEX_COMPACT = "ALPHABETICAL_INDEX_COMPACT" } /** @enumType */ type ListStyleWithLiterals = ListStyle | 'PLAIN' | 'NUMBERED' | 'LETTERS' | 'ROMAN' | 'BULLETED' | 'ALPHABETICAL_INDEX' | 'ALPHABETICAL_INDEX_COMPACT'; /** Indentation style. */ declare enum Indentation { /** Sub-headings indented under parents (default) */ NESTED = "NESTED", /** All items at the same level */ FLAT = "FLAT" } /** @enumType */ type IndentationWithLiterals = Indentation | 'NESTED' | 'FLAT'; /** Data for a smart block node. */ interface SmartBlockData { /** The type of the smart block. */ type?: SmartBlockDataTypeWithLiterals; /** Layout orientation. HORIZONTAL or VERTICAL. Optional for variants with fixed orientation. */ orientation?: string | null; /** Column size controlling cells per row. */ columnSize?: ColumnSizeWithLiterals; /** Border color (for SOLID_JOINED_BOXES variant). */ borderColor?: string | null; /** Border width in pixels (for SOLID_JOINED_BOXES variant). */ borderWidth?: number | null; /** Border radius in pixels (for SOLID_JOINED_BOXES variant). */ borderRadius?: number | null; } /** Layout type of the smart block */ declare enum SmartBlockDataType { /** Grid-based layouts with solid box items containing title, body, and icon/image. */ SOLID_BOXES = "SOLID_BOXES", /** Numbered boxes. */ NUMBERED_BOXES = "NUMBERED_BOXES", /** Statistics display with large numbers/values. */ STATS = "STATS", /** Statistics with circular visual elements. */ CIRCLE_STATS = "CIRCLE_STATS", /** Staggered/zigzag grid layout with alternating box positions. */ SOLID_BOXES_ALTERNATING = "SOLID_BOXES_ALTERNATING", /** Grid layout with boxes visually joined (no gaps, shared container border). */ SOLID_JOINED_BOXES = "SOLID_JOINED_BOXES", /** Transparent cells with only a left side line. */ SIDE_LINE_TEXT = "SIDE_LINE_TEXT", /** Transparent cells with only a top line. */ TOP_LINE_TEXT = "TOP_LINE_TEXT", /** Outlined boxes with a numbered/icon circle at the top. */ OUTLINE_BOXES_WITH_TOP_CIRCLE = "OUTLINE_BOXES_WITH_TOP_CIRCLE", /** Large icon bullets with text content. */ BIG_BULLETS = "BIG_BULLETS", /** Small dot bullets with text content. */ SMALL_BULLETS = "SMALL_BULLETS", /** Arrow icon bullets with text content. */ ARROW_BULLETS = "ARROW_BULLETS", /** Process steps with numbered/icon labels above a horizontal line. */ PROCESS_STEPS = "PROCESS_STEPS", /** Statistics with bar visual elements. */ BAR_STATS = "BAR_STATS" } /** @enumType */ type SmartBlockDataTypeWithLiterals = SmartBlockDataType | 'SOLID_BOXES' | 'NUMBERED_BOXES' | 'STATS' | 'CIRCLE_STATS' | 'SOLID_BOXES_ALTERNATING' | 'SOLID_JOINED_BOXES' | 'SIDE_LINE_TEXT' | 'TOP_LINE_TEXT' | 'OUTLINE_BOXES_WITH_TOP_CIRCLE' | 'BIG_BULLETS' | 'SMALL_BULLETS' | 'ARROW_BULLETS' | 'PROCESS_STEPS' | 'BAR_STATS'; /** Column size controlling how many cells appear per row. */ declare enum ColumnSize { /** Up to 4 cells in a row. */ SMALL = "SMALL", /** Up to 3 cells in a row (default). */ MEDIUM = "MEDIUM", /** Up to 2 cells in a row. */ LARGE = "LARGE", /** 1 cell in a row. */ EXTRA_LARGE = "EXTRA_LARGE" } /** @enumType */ type ColumnSizeWithLiterals = ColumnSize | 'SMALL' | 'MEDIUM' | 'LARGE' | 'EXTRA_LARGE'; /** Data for a smart block cell node. */ interface SmartBlockCellData { /** Optional label text for the cell (e.g., for stats variants). */ label?: string | null; /** Shape file details. */ shape?: Media; /** Border color of the cell. */ borderColor?: string | null; /** Border width in pixels. */ borderWidth?: number | null; /** Border radius in pixels. */ borderRadius?: number | null; /** The type of the parent smart block (must match parent). */ type?: SmartBlockDataTypeWithLiterals; /** Accent color for non-background variants (e.g., line, bullet, label color). */ accentColor?: string | null; /** Background color for background-based variants (SOLID_BOXES, SOLID_BOXES_ALTERNATING, SOLID_JOINED_BOXES). */ backgroundColor?: string | null; /** Shape fill color as a hexadecimal value. */ shapeColor?: string | null; } interface Metadata { /** Schema version. */ version?: number; /** * When the object was created. * @readonly * @deprecated */ createdTimestamp?: Date | null; /** * When the object was most recently updated. * @deprecated */ updatedTimestamp?: Date | null; /** Object ID. */ _id?: string | null; } interface DocumentStyle { /** Styling for H1 nodes. */ headerOne?: TextNodeStyle; /** Styling for H2 nodes. */ headerTwo?: TextNodeStyle; /** Styling for H3 nodes. */ headerThree?: TextNodeStyle; /** Styling for H4 nodes. */ headerFour?: TextNodeStyle; /** Styling for H5 nodes. */ headerFive?: TextNodeStyle; /** Styling for H6 nodes. */ headerSix?: TextNodeStyle; /** Styling for paragraph nodes. */ paragraph?: TextNodeStyle; /** Styling for block quote nodes. */ blockquote?: TextNodeStyle; /** Styling for code block nodes. */ codeBlock?: TextNodeStyle; } interface TextNodeStyle { /** The decorations to apply to the node. */ decorations?: Decoration[]; /** Padding and background color for the node. */ nodeStyle?: NodeStyle; /** Line height for text in the node. */ lineHeight?: string | null; } interface MediaItem extends MediaItemMediaOneOf { /** WixMedia image. */ image?: string; } /** @oneof */ interface MediaItemMediaOneOf { /** WixMedia image. */ image?: string; } interface MediaSettings { /** * Specifies where the image should be displayed relative to the field's label. * Default: `BELOW` */ imagePosition?: ImagePositionWithLiterals; /** * Specifies the image alignment. * Default: `CENTER` */ imageAlignment?: AlignmentWithLiterals; /** * Specifies how an image should be resized to fit. * Default: `COVER` */ imageFit?: ImageFitWithLiterals; } declare enum ImagePosition { /** Above the field's label. */ ABOVE = "ABOVE", /** Below the field's label. */ BELOW = "BELOW" } /** @enumType */ type ImagePositionWithLiterals = ImagePosition | 'ABOVE' | 'BELOW'; declare enum Alignment { /** Align left. */ LEFT = "LEFT", /** Align center. */ CENTER = "CENTER", /** Align right. */ RIGHT = "RIGHT" } /** @enumType */ type AlignmentWithLiterals = Alignment | 'LEFT' | 'CENTER' | 'RIGHT'; declare enum ImageFit { /** Scale the image to maintain its aspect ratio while filling the element's entire content box. Portions of the image may be clipped if the aspect ratios don't match. */ COVER = "COVER", /** Resize the image to fill the element's content box. The image's original sspect ratio may not be preserved. */ CONTAIN = "CONTAIN" } /** @enumType */ type ImageFitWithLiterals = ImageFit | 'COVER' | 'CONTAIN'; interface RadioGroup { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * List of options the submitter can select from. * @maxSize 400 */ options?: RadioGroupOption[]; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** Custom option which can be specified by the submitter. */ customOption?: CustomOption; /** * Specifies the number of columns used to display the selections within the component. * * Default: `ONE` */ numberOfColumns?: NumberOfColumnsWithLiterals; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface RadioGroupOption { /** * Selectable option label. * @maxLength 400 */ label?: string | null; /** * Value stored on submission when this option is selected. * @maxLength 20000 */ value?: string | null; /** Whether this option is selected by default. */ default?: boolean; /** * Option ID. Can be used to connect this option with [Wix Multilingual](https://dev.wix.com/docs/api-reference/business-management/multilingual/translation/introduction) for translation. * @format GUID * @immutable */ _id?: string; } interface CustomOption { /** * Custom option label. * @maxLength 350 */ label?: string | null; /** * Custom option placeholder text. * @maxLength 100 */ placeholder?: string | null; } declare enum NumberOfColumns { /** Zero columns. */ ZERO = "ZERO", /** One column. */ ONE = "ONE", /** Two columns. */ TWO = "TWO", /** Three columns. */ THREE = "THREE" } /** @enumType */ type NumberOfColumnsWithLiterals = NumberOfColumns | 'ZERO' | 'ONE' | 'TWO' | 'THREE'; interface Dropdown { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * List of options the submitter can select from. * @maxSize 400 */ options?: DropdownOption[]; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** Custom option which can be specified by the submitter. */ customOption?: CustomOption; /** * Placeholder text shown when no option is selected. * @maxLength 100 */ placeholder?: string | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface DropdownOption { /** * Selectable option label. * @maxLength 400 */ label?: string | null; /** * Value stored on submission when this option is selected. * @maxLength 20000 */ value?: string | null; /** Whether this option is selected by default. */ default?: boolean; /** * Option ID. Can be used to connect this option with [Wix Multilingual](https://dev.wix.com/docs/api-reference/business-management/multilingual/translation/introduction) for translation. * @format GUID * @immutable */ _id?: string; } interface DateTimeInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Whether to display placeholder text in the field when it's empty. * * Default: `true` */ showPlaceholder?: boolean | null; /** * Whether to use 24-hour time format. * * Default: `false` */ use24HourFormat?: boolean; /** * Default value for the field. This value is pre-populated in the field when the form loads. * Supports static constrains defined as ISO date-time format, as well as dynamic calculations using special keywords * such as "$now" to represent the current date and time. * The dynamic calculation supports expressions like "$now+2d" (2 days in the future), "$now-1h" (1 hour in the past), etc. * The regex pattern for dynamic calculations is: \$now([+-]\d{1,2})([yMdmh]) * @maxLength 50 */ default?: string | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; /** * Flag identifying whether to show or hide the date labels. * Default: true */ showDateLabels?: boolean | null; } interface PhoneInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Placeholder text shown inside the field when it's empty. * @maxLength 100 */ placeholder?: string | null; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Default country code for the phone number input. Two-letter country code in ISO-3166 alpha-2 format. * @minLength 1 * @maxLength 5 */ defaultCountryCode?: string | null; /** * Whether to display the country flag next to the country code. * * Default: `false` */ showCountryFlag?: boolean; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface DateInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Whether to display placeholder text in the field when it's empty. * * Default: `true` */ showPlaceholder?: boolean | null; /** * Default value for the field. This value is pre-populated in the field when the form loads. * Supports static constrains defined as ISO date format, as well as dynamic calculations using special keywords * such as "$now" to represent the current date and time. * The dynamic calculation supports expressions like "$now+2d" (2 days in the future), "$now-1h" (1 hour in the past), etc. * The regex pattern for dynamic calculations is: \$now([+-]\d{1,2})([yMdmh]) * @maxLength 50 */ default?: string | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; /** * Flag identifying whether to show or hide the date labels. * Default: true */ showDateLabels?: boolean | null; } interface TimeInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Field description. */ description?: RichContent; /** * Whether to display the label. * * Default: `true` */ showLabel?: boolean | null; /** * Whether to display placeholder text in the field when it's empty. * * Default: `true` */ showPlaceholder?: boolean | null; /** * Whether to use 24-hour time format. * * Default: `false` */ use24HourFormat?: boolean; /** * Default value for the field. This value is pre-populated in the field when the form loads. * Supports static constrains defined as ISO time format, as well as dynamic calculations using special keywords * such as "$now" to represent the current date and time. * The dynamic calculation supports expressions like "$now+2d" (2 days in the future), "$now-1h" (1 hour in the past), etc. * The regex pattern for dynamic calculations is: \$now([+-]\d{1,2})([yMdmh]) * @maxLength 50 */ default?: string | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface DatePicker { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Placeholder text shown when no date is selected. * @maxLength 100 */ placeholder?: string | null; /** First day of the week displayed on the date picker. */ firstDayOfWeek?: FirstDayOfWeekWithLiterals; /** * Default value for the field. This value is pre-populated in the field when the form loads. * Supports static constrains defined as ISO date format, as well as dynamic calculations using special keywords * such as "$now" to represent the current date and time. * The dynamic calculation supports expressions like "$now+2d" (2 days in the future), "$now-1h" (1 hour in the past), etc. * The regex pattern for dynamic calculations is: \$now([+-]\d{1,2})([yMdmh]) * @maxLength 50 */ default?: string | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } declare enum FirstDayOfWeek { /** First day of the week is Monday. */ MONDAY = "MONDAY", /** First day of the week is Sunday. */ SUNDAY = "SUNDAY" } /** @enumType */ type FirstDayOfWeekWithLiterals = FirstDayOfWeek | 'MONDAY' | 'SUNDAY'; interface ServicesDropdown { /** * Field label. * @maxLength 350 */ label?: string | null; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Placeholder text shown when no service is selected. * @maxLength 100 */ placeholder?: string | null; /** * List of service options the submitter can select from. * @maxSize 400 */ options?: ServiceOption[]; /** Custom option which can be specified by the submitter. */ customOption?: CustomOption; /** Additional description or instructions for the field. */ description?: RichContent; } interface ServiceOption { /** * Service name/label * @maxLength 400 */ label?: string | null; /** * Option id. Used as binding for translations. Corresponds to the Service ID. * @format GUID * @immutable */ _id?: string; /** * Selectable option value, which is saved to DB. Corresponds to the Service ID. * @format GUID * @immutable */ value?: string | null; } interface Password { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Placeholder text shown inside the field when it's empty. * Useful for providing a hint about the expected format or content. * @maxLength 100 */ placeholder?: string | null; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Default value for the field. This value is pre-populated in the field when the form loads. * @maxLength 20000 */ default?: string | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface NumberCorrectAnswersList { /** @maxSize 50 */ correctAnswers?: number[]; } interface NumberType { /** The maximum value of the number. Inclusive. */ maximum?: number | null; /** The minimum value of the number. Inclusive. */ minimum?: number | null; /** A number that the value must be a multiple of. */ multipleOf?: number | null; /** * List of allowed values. * @maxSize 500 */ enum?: number[] | null; } declare enum NumberComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** Numeric input component. */ NUMBER_INPUT = "NUMBER_INPUT", /** Rating input component. */ RATING_INPUT = "RATING_INPUT" } /** @enumType */ type NumberComponentTypeWithLiterals = NumberComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'NUMBER_INPUT' | 'RATING_INPUT'; interface NumberQuizFieldSettings { /** Points awarded for correctly answering this quiz question. */ score?: number; /** Correct answers for this quiz question. */ correctAnswersList?: NumberCorrectAnswersList; } interface NumberInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Placeholder text shown inside the field when it's empty. * @maxLength 100 */ placeholder?: string | null; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** Default value for the field. This value is pre-populated in the field when the form loads. */ default?: number | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface RatingInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Default rating value for the field. * @min 1 * @max 5 */ defaultValue?: number | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface BooleanType { /** * List of allowed values. * @maxSize 2 */ enum?: boolean[]; } declare enum BooleanComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** Checkbox component. */ CHECKBOX = "CHECKBOX" } /** @enumType */ type BooleanComponentTypeWithLiterals = BooleanComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'CHECKBOX'; interface Checkbox { /** Field label. */ label?: RichContent; /** * Whether the checkbox is selected by default when the form loads. * * Default: `false` */ checked?: boolean; } interface CorrectAnswersList { /** @maxSize 50 */ correctAnswers?: any[]; } interface ArrayType { /** * Maximum number of elements allowed in the array. * @max 1000 */ maxItems?: number | null; /** * Minimum number of elements required in the array. * @max 1000 */ minItems?: number | null; /** Type of items allowed in the array. */ items?: ArrayItems; } declare enum ItemType { /** Array can contain string values. */ STRING = "STRING", /** Array can contain numeric values. */ NUMBER = "NUMBER", /** Array can contain boolean values. */ BOOLEAN = "BOOLEAN" } /** @enumType */ type ItemTypeWithLiterals = ItemType | 'STRING' | 'NUMBER' | 'BOOLEAN'; interface ObjectType { /** Definition of object properties and their validation rules. */ properties?: Record; } declare enum PropertiesTypeEnum { /** Property must contain a string value. */ STRING = "STRING", /** Property must contain a numeric value. */ NUMBER = "NUMBER", /** Property must contain a boolean value. */ BOOLEAN = "BOOLEAN", /** Property must contain an array. */ ARRAY = "ARRAY" } /** @enumType */ type PropertiesTypeEnumWithLiterals = PropertiesTypeEnum | 'STRING' | 'NUMBER' | 'BOOLEAN' | 'ARRAY'; interface PropertiesType extends PropertiesTypePropertiesTypeOptionsOneOf { /** Validation rules for string properties. */ stringOptions?: StringType; /** Validation rules for numeric properties. */ numberOptions?: NumberType; /** Validation rules for boolean properties. */ booleanOptions?: BooleanType; /** Validation rules for array properties. */ arrayOptions?: ArrayType; /** * Data type of the object property. * @readonly */ propertiesType?: PropertiesTypeEnumWithLiterals; /** Whether the object property is required for validation. */ required?: boolean; } /** @oneof */ interface PropertiesTypePropertiesTypeOptionsOneOf { /** Validation rules for string properties. */ stringOptions?: StringType; /** Validation rules for numeric properties. */ numberOptions?: NumberType; /** Validation rules for boolean properties. */ booleanOptions?: BooleanType; /** Validation rules for array properties. */ arrayOptions?: ArrayType; } interface ArrayItems extends ArrayItemsItemTypeOptionsOneOf { /** Validation rules for string array elements. */ stringOptions?: StringType; /** Validation rules for numeric array elements. */ numberOptions?: NumberType; /** Validation rules for boolean array elements. */ booleanOptions?: BooleanType; /** * Allowed item type. * @readonly */ itemType?: ItemTypeWithLiterals; } /** @oneof */ interface ArrayItemsItemTypeOptionsOneOf { /** Validation rules for string array elements. */ stringOptions?: StringType; /** Validation rules for numeric array elements. */ numberOptions?: NumberType; /** Validation rules for boolean array elements. */ booleanOptions?: BooleanType; } declare enum ArrayComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** Checkbox group component. */ CHECKBOX_GROUP = "CHECKBOX_GROUP", /** Tags component. */ TAGS = "TAGS", SERVICES_CHECKBOX_GROUP = "SERVICES_CHECKBOX_GROUP" } /** @enumType */ type ArrayComponentTypeWithLiterals = ArrayComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'CHECKBOX_GROUP' | 'TAGS' | 'SERVICES_CHECKBOX_GROUP'; interface QuizFieldSettings { /** Points awarded for correctly answering this quiz question. */ score?: number; /** Correct answers for this quiz question. */ correctAnswersList?: CorrectAnswersList; } interface CheckboxGroup { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * List of options the submitter can select from. * @maxSize 400 */ options?: CheckboxGroupOption[]; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** Custom option which can be specified by the submitter. */ customOption?: CustomOption; /** * Specifies the number of columns used to display the selections within the component. * * Default: `ONE` */ numberOfColumns?: NumberOfColumnsWithLiterals; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface CheckboxGroupOption { /** * Selectable option label. * @maxLength 400 */ label?: string | null; /** Value stored on submission when this option is selected. */ value?: any; /** Whether this option is selected by default. */ default?: boolean; /** * Option ID. Can be used to connect this option with [Wix Multilingual](https://dev.wix.com/docs/api-reference/business-management/multilingual/translation/introduction) for translation. * @format GUID * @immutable */ _id?: string; /** Media content associated with this option. */ media?: MediaItem; /** * Whether to display the option label. * * Default: `true` */ showLabel?: boolean | null; } interface ComponentsTags { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * List of options the submitter can select from. * @maxSize 400 */ options?: TagsOption[]; /** * Whether to display the label. * * Default: `true` */ showLabel?: boolean | null; /** Custom option which can be specified by the submitter. */ customOption?: CustomOption; /** * Specifies the number of columns used to display the selections within the component. * * Default: `ONE` */ numberOfColumns?: NumberOfColumnsWithLiterals; /** Media item. Media, associated with field, like image. */ media?: MediaItem; /** Configuration for the media item. */ mediaSettings?: MediaSettings; } interface TagsOption { /** * Selectable option label. * @maxLength 400 */ label?: string | null; /** Value stored on submission when this option is selected. */ value?: any; /** Flag identifying that option should be selected by default. */ default?: boolean; /** * Option id. Used as binding for translations * @format GUID * @immutable */ _id?: string; /** Media content associated with the option, such as an image. */ media?: MediaItem; } interface ServicesCheckboxGroup { /** * Label of the field * @maxLength 350 */ label?: string | null; /** Description of the field */ description?: RichContent; /** * List of options to select from * @maxSize 100 */ options?: ServiceOption[]; /** * Flag identifying to hide or not label * Default: true */ showLabel?: boolean | null; /** Option which can be specified by UoU, enabled when this object is specified. */ customOption?: CustomOption; /** * Specifies the number of columns used to display the selections within the component. * Default: ONE */ numberOfColumns?: NumberOfColumnsWithLiterals; } declare enum WixFileComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** File upload component. */ FILE_UPLOAD = "FILE_UPLOAD", /** Signature component. */ SIGNATURE = "SIGNATURE" } /** @enumType */ type WixFileComponentTypeWithLiterals = WixFileComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'FILE_UPLOAD' | 'SIGNATURE'; interface FileType { /** * Maximum number of files that can be uploaded. * @min 1 * @max 30 */ fileLimit?: number; /** * Supported file formats for uploaded files. * @maxSize 6 */ uploadFileFormats?: UploadFileFormatWithLiterals[]; } declare enum UploadFileFormat { /** Video files. */ VIDEO = "VIDEO", /** Image files. */ IMAGE = "IMAGE", /** Audio files. */ AUDIO = "AUDIO", /** Document files. */ DOCUMENT = "DOCUMENT", /** Archive files. */ ARCHIVE = "ARCHIVE", /** 3D model files. */ MODEL_3D = "MODEL_3D" } /** @enumType */ type UploadFileFormatWithLiterals = UploadFileFormat | 'VIDEO' | 'IMAGE' | 'AUDIO' | 'DOCUMENT' | 'ARCHIVE' | 'MODEL_3D'; interface FileUpload { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Text displayed on the upload button. * @maxLength 500 */ buttonText?: string | null; /** * Custom text displayed when a file is uploaded. If not specified, the file name is shown. * @maxLength 255 */ explanationText?: string | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface Signature { /** * Field label. * @maxLength 350 */ label?: string | null; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** Additional description or instructions for the field. */ description?: RichContent; /** Whether image upload is enabled for the signature field. */ imageUploadEnabled?: boolean; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media item. */ mediaSettings?: MediaSettings; } declare enum PaymentComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** Checkbox group component. */ CHECKBOX_GROUP = "CHECKBOX_GROUP", /** Donation input component. */ DONATION_INPUT = "DONATION_INPUT", /** Payment input component. */ PAYMENT_INPUT = "PAYMENT_INPUT", /** Fixed payment component. */ FIXED_PAYMENT = "FIXED_PAYMENT" } /** @enumType */ type PaymentComponentTypeWithLiterals = PaymentComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'CHECKBOX_GROUP' | 'DONATION_INPUT' | 'PAYMENT_INPUT' | 'FIXED_PAYMENT'; interface ProductCheckboxGroup { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * List of product options the submitter can select from. * @maxSize 400 */ options?: ProductCheckboxGroupOption[]; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * How an image should be resized to fit within its option container. * * Default: `COVER` */ imageFit?: ImageFitWithLiterals; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface ProductCheckboxGroupOption { /** * Selectable option label. * @maxLength 400 */ label?: string | null; /** Value stored on submission when this option is selected. Must match a product ID found in the field's products list. */ value?: any; /** * Option ID. Can be used to connect this option with [Wix Multilingual](https://dev.wix.com/docs/api-reference/business-management/multilingual/translation/introduction) for translation. * @format GUID * @immutable */ _id?: string; /** Media content associated with this option, such as an image. */ media?: MediaItem; /** Whether this option is selected by default. */ default?: boolean; } interface DonationInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * List of donation amount options the submitter can select from. * @maxSize 400 */ options?: DonationInputOption[]; /** Custom option which can be specified by the submitter. */ customOption?: CustomOption; /** * Specifies the number of columns used to display the selections within the component. * * Default: `ONE` */ numberOfColumns?: NumberOfColumnsWithLiterals; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface DonationInputOption { /** * Value stored on submission when this option is selected. Must match a product ID found in the field's products list. * @format GUID */ value?: string; /** Whether this option is selected by default. */ default?: boolean; } interface PaymentInput { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** * Placeholder text shown inside the field when it's empty. * @maxLength 100 */ placeholder?: string | null; /** Default value for the field. This value is pre-populated in the field when the form loads. */ default?: number | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } interface FixedPayment { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; /** Media content associated with the field, such as an image. */ media?: MediaItem; /** Configuration for the media content. */ mediaSettings?: MediaSettings; } declare enum ComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** Multiline address component. */ MULTILINE_ADDRESS = "MULTILINE_ADDRESS" } /** @enumType */ type ComponentTypeWithLiterals = ComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'MULTILINE_ADDRESS'; interface MultilineAddress { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** Whether to display country flags in the country selection. */ showCountryFlags?: boolean; /** Default country configuration for the address field. */ defaultCountryConfig?: DefaultCountryConfig; /** Fields settings. */ fieldSettings?: FieldsSettings; /** Whether autocomplete is enabled for the address line field. */ autocompleteEnabled?: boolean; /** * Flag identifying whether to show or hide the address labels. * Default: true */ showAddressLabels?: boolean | null; /** * Flag identifying whether to show or hide the label. * Default: true */ showLabel?: boolean | null; } declare enum DefaultCountryConfigType { /** Unknown default country configuration type. */ UNKNOWN_DEFAULT_COUNTRY = "UNKNOWN_DEFAULT_COUNTRY", /** Country is determined by the submitter's IP address. */ BY_IP = "BY_IP", /** Pre-selected default country. */ COUNTRY = "COUNTRY" } /** @enumType */ type DefaultCountryConfigTypeWithLiterals = DefaultCountryConfigType | 'UNKNOWN_DEFAULT_COUNTRY' | 'BY_IP' | 'COUNTRY'; interface AddressLine2 { /** Whether to display the address line 2 field. */ show?: boolean; } interface DefaultCountryConfig extends DefaultCountryConfigOptionsOneOf { /** * Country code for the pre-selected default country. Two-letter country code in ISO-3166 alpha-2 format. * @format COUNTRY */ countryOptions?: string; /** Default country type. */ type?: DefaultCountryConfigTypeWithLiterals; } /** @oneof */ interface DefaultCountryConfigOptionsOneOf { /** * Country code for the pre-selected default country. Two-letter country code in ISO-3166 alpha-2 format. * @format COUNTRY */ countryOptions?: string; } interface FieldsSettings { /** Configuration for the address line 2 field. */ addressLine2?: AddressLine2; } declare enum ObjectArrayComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** Repeater component. */ REPEATER = "REPEATER" } /** @enumType */ type ObjectArrayComponentTypeWithLiterals = ObjectArrayComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'REPEATER'; interface Repeater { /** * Field label. * @maxLength 350 */ label?: string | null; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the label. * * Default: `true` */ showLabel?: boolean | null; /** * Form fields that define the input elements inside repeater. * @maxSize 10 */ fields?: Field[]; /** Layout configuration that defines how form fields are arranged within this repeater. */ layout?: FormLayout; } interface FormLayout { /** Layout configuration for large screen breakpoints (desktop). */ large?: BreakPoint; /** Layout configuration for medium screen breakpoints (tablet). */ medium?: BreakPoint; /** Layout configuration for small screen breakpoints (mobile). */ small?: BreakPoint; } interface BreakPoint { /** * Configuration for the layout of items in the breakpoint. * @maxSize 500 */ items?: ItemLayout[]; /** Number of columns in the layout grid. */ columns?: number | null; /** Height of each row in the layout grid, measured in pixels. */ rowHeight?: number | null; /** Margin spacing configuration for the form elements. */ margin?: Margin; /** Padding spacing inside form elements in pixels. */ padding?: Margin; } interface ItemLayout extends ItemLayoutItemOneOf { /** * ID of the form field to be positioned in the layout. * @format GUID */ fieldId?: string; /** Group configuration for positioning multiple fields as a single layout unit. */ group?: Group; /** Row position in the grid where this item is placed. */ row?: number | null; /** Column position in the grid where this item is placed. */ column?: number | null; /** Width of the item in grid units. */ width?: number | null; /** Height of the item in grid units. */ height?: number | null; } /** @oneof */ interface ItemLayoutItemOneOf { /** * ID of the form field to be positioned in the layout. * @format GUID */ fieldId?: string; /** Group configuration for positioning multiple fields as a single layout unit. */ group?: Group; } interface Group { /** * ID of the field group. * @format GUID */ groupId?: string; /** * Layout configuration for individual items within this group. * @minSize 1 * @maxSize 500 */ items?: ItemLayout[]; } interface Margin { /** Horizontal spacing in pixels. */ horizontal?: number | null; /** Vertical spacing in pixels. */ vertical?: number | null; } interface Section { /** * Section ID. * @format GUID * @minLength 1 */ _id?: string; /** Row position where this section is placed in the grid. */ row?: number | null; /** * A list of field IDs that can be placed within the section. * The section only accepts fields with IDs specified in this list. * If the `$new` key is contained in this list, the section allows the inclusion of fields not explicitly listed, enabling dynamic addition of new fields. * @maxSize 100 * @maxLength 100 */ allowedFieldIds?: string[]; } declare enum SchedulingComponentType { /** Unknown component type. */ UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", /** Appointment component. */ APPOINTMENT = "APPOINTMENT" } /** @enumType */ type SchedulingComponentTypeWithLiterals = SchedulingComponentType | 'UNKNOWN_COMPONENT_TYPE' | 'APPOINTMENT'; interface Appointment extends AppointmentFormatInfoOneOf { /** Configuration for in-person appointments. */ inPersonOptions?: InPersonOptions; /** Configuration for video conference appointments. */ videoConferenceOptions?: VideoConferenceOptions; /** Configuration for phone appointments. */ phoneOptions?: PhoneOptions; /** * Field label. * @maxLength 255 */ label?: string | null; /** * Appointment name. * @minLength 1 * @maxLength 400 */ name?: string | null; /** * Duration of the appointment in minutes. * @min 1 * @max 44639 */ durationInMinutes?: number | null; /** Whether appointments require manual approval before confirmation. */ manualApprovalRequired?: boolean | null; /** * IDs of staff members who provide this service. * @maxSize 220 * @format GUID */ staffIds?: string[] | null; /** Appointment format. */ format?: FormatWithLiterals; /** Additional description or instructions for the field. */ description?: RichContent; /** * Whether to display the field label. * * Default: `true` */ showLabel?: boolean | null; } /** @oneof */ interface AppointmentFormatInfoOneOf { /** Configuration for in-person appointments. */ inPersonOptions?: InPersonOptions; /** Configuration for video conference appointments. */ videoConferenceOptions?: VideoConferenceOptions; /** Configuration for phone appointments. */ phoneOptions?: PhoneOptions; } interface Location extends LocationLocationInfoOneOf { /** * Custom address specified as a text string. * @maxLength 512 */ customAddress?: string | null; /** * ID of a predefined business [location](https://dev.wix.com/docs/rest/crm/members-contacts/locations/locations/introduction). * @format GUID */ businessLocationId?: string | null; } /** @oneof */ interface LocationLocationInfoOneOf { /** * Custom address specified as a text string. * @maxLength 512 */ customAddress?: string | null; /** * ID of a predefined business [location](https://dev.wix.com/docs/rest/crm/members-contacts/locations/locations/introduction). * @format GUID */ businessLocationId?: string | null; } declare enum Format { /** Face-to-face meeting at a physical location. */ IN_PERSON = "IN_PERSON", /** Online meeting via video conference. */ VIDEO_CONFERENCE = "VIDEO_CONFERENCE", /** Appointment conducted over the phone. */ PHONE = "PHONE" } /** @enumType */ type FormatWithLiterals = Format | 'IN_PERSON' | 'VIDEO_CONFERENCE' | 'PHONE'; declare enum MeetingType { /** Single staff member provides the service. */ SINGLE_STAFF = "SINGLE_STAFF", /** Multiple staff members rotate via round robin scheduling. */ ROUND_ROBIN = "ROUND_ROBIN" } /** @enumType */ type MeetingTypeWithLiterals = MeetingType | 'SINGLE_STAFF' | 'ROUND_ROBIN'; declare enum StaffStrategySelection { /** Staff selected randomly. */ AUTOMATIC = "AUTOMATIC", /** Staff sorted by priority, highest first. */ HIGH_TO_LOW_PRIORITY = "HIGH_TO_LOW_PRIORITY", /** Staff sorted by priority, lowest first. */ LOW_TO_HIGH_PRIORITY = "LOW_TO_HIGH_PRIORITY" } /** @enumType */ type StaffStrategySelectionWithLiterals = StaffStrategySelection | 'AUTOMATIC' | 'HIGH_TO_LOW_PRIORITY' | 'LOW_TO_HIGH_PRIORITY'; interface InPersonOptions { /** * Physical locations where the appointment can take place. * @minSize 1 * @maxSize 1 */ locations?: Location[]; } interface VideoConferenceOptions { /** * Description or instructions for video conference appointments. * @maxLength 512 */ description?: string | null; } interface PhoneOptions { /** * Description or instructions for phone appointments. * @maxLength 512 */ description?: string | null; } declare enum InputType { /** Unknown input type. */ UNKNOWN_INPUT_TYPE = "UNKNOWN_INPUT_TYPE", /** String input. */ STRING = "STRING", /** Numeric input. */ NUMBER = "NUMBER", /** Boolean input. */ BOOLEAN = "BOOLEAN", /** Array input. */ ARRAY = "ARRAY", /** Object input. */ OBJECT = "OBJECT", /** File upload input. */ WIX_FILE = "WIX_FILE", /** Payment input. */ PAYMENT = "PAYMENT", /** Scheduling input. */ SCHEDULING = "SCHEDULING", /** Address input. */ ADDRESS = "ADDRESS" } /** @enumType */ type InputTypeWithLiterals = InputType | 'UNKNOWN_INPUT_TYPE' | 'STRING' | 'NUMBER' | 'BOOLEAN' | 'ARRAY' | 'OBJECT' | 'WIX_FILE' | 'PAYMENT' | 'SCHEDULING' | 'ADDRESS'; interface FormFieldContactInfo extends FormFieldContactInfoAdditionalInfoOneOf { /** Configuration for email contact fields. */ emailInfo?: EmailInfo; /** Configuration for phone contact fields. */ phoneInfo?: PhoneInfo; /** Configuration for address contact fields. */ addressInfo?: AddressInfo; /** Configuration for custom contact fields. */ customFieldInfo?: CustomFieldInfo; /** Configuration for subscription contact fields. */ subscriptionInfo?: SubscriptionInfo; /** The [Contact](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/introduction) field that this form field maps to. */ contactField?: ContactFieldWithLiterals; } /** @oneof */ interface FormFieldContactInfoAdditionalInfoOneOf { /** Configuration for email contact fields. */ emailInfo?: EmailInfo; /** Configuration for phone contact fields. */ phoneInfo?: PhoneInfo; /** Configuration for address contact fields. */ addressInfo?: AddressInfo; /** Configuration for custom contact fields. */ customFieldInfo?: CustomFieldInfo; /** Configuration for subscription contact fields. */ subscriptionInfo?: SubscriptionInfo; } declare enum EmailInfoTag { /** Untagged email address. */ UNTAGGED = "UNTAGGED", /** Primary email address for the contact. */ MAIN = "MAIN" } /** @enumType */ type EmailInfoTagWithLiterals = EmailInfoTag | 'UNTAGGED' | 'MAIN'; declare enum PhoneInfoTag { /** Untagged phone number. */ UNTAGGED = "UNTAGGED", /** Primary phone number for the contact. */ MAIN = "MAIN" } /** @enumType */ type PhoneInfoTagWithLiterals = PhoneInfoTag | 'UNTAGGED' | 'MAIN'; declare enum Tag { /** Untagged address. */ UNTAGGED = "UNTAGGED", /** Home address. */ HOME = "HOME" } /** @enumType */ type TagWithLiterals = Tag | 'UNTAGGED' | 'HOME'; declare enum ConfirmationLevel { /** Unknown confirmation level. */ UNKNOWN_CONFIRMATION_LEVEL = "UNKNOWN_CONFIRMATION_LEVEL", /** Single confirmation level. */ SINGLE_CONFIRMATION = "SINGLE_CONFIRMATION", /** Double confirmation level. */ DOUBLE_CONFIRMATION = "DOUBLE_CONFIRMATION" } /** @enumType */ type ConfirmationLevelWithLiterals = ConfirmationLevel | 'UNKNOWN_CONFIRMATION_LEVEL' | 'SINGLE_CONFIRMATION' | 'DOUBLE_CONFIRMATION'; declare enum SubscriptionChannel { /** Email subscription channel. */ EMAIL = "EMAIL", /** SMS subscription channel. */ SMS = "SMS" } /** @enumType */ type SubscriptionChannelWithLiterals = SubscriptionChannel | 'EMAIL' | 'SMS'; declare enum ContactField { /** Contact's first name. */ FIRST_NAME = "FIRST_NAME", /** Contact's last name. */ LAST_NAME = "LAST_NAME", /** Contact's company or organization. */ COMPANY = "COMPANY", /** Contact's job title or position. */ POSITION = "POSITION", /** Contact's email address. */ EMAIL = "EMAIL", /** Contact's phone number. */ PHONE = "PHONE", /** Contact's physical address. */ ADDRESS = "ADDRESS", /** Contact's birth date. */ BIRTHDATE = "BIRTHDATE", /** Custom contact field defined by the site owner. */ CUSTOM_FIELD = "CUSTOM_FIELD", /** Contact's subscription preferences. */ SUBSCRIPTION = "SUBSCRIPTION", /** Contact's VAT identification number. */ VAT_ID = "VAT_ID" } /** @enumType */ type ContactFieldWithLiterals = ContactField | 'FIRST_NAME' | 'LAST_NAME' | 'COMPANY' | 'POSITION' | 'EMAIL' | 'PHONE' | 'ADDRESS' | 'BIRTHDATE' | 'CUSTOM_FIELD' | 'SUBSCRIPTION' | 'VAT_ID'; interface EmailInfo { /** Email categorization tag. */ tag?: EmailInfoTagWithLiterals; } interface PhoneInfo { /** Phone number categorization tag. */ tag?: PhoneInfoTagWithLiterals; } interface AddressInfo { /** Address categorization tag. */ tag?: TagWithLiterals; } interface CustomFieldInfo { /** * Custom field key. * @minLength 1 * @maxLength 500 */ key?: string; } interface SubscriptionInfo { /** * Subscription consent opt-in level, either single or double confirmation. * Default: `SINGLE_CONFIRMATION` */ confirmationLevel?: ConfirmationLevelWithLiterals; /** * Subscription channels. * When not specified, defaults to `EMAIL`. * @maxSize 2 */ subscriptionChannels?: SubscriptionChannelWithLiterals[]; } interface _String extends _StringComponentTypeOptionsOneOf { /** Text input component settings. */ textInputOptions?: TextInput; /** Radio group component settings. */ radioGroupOptions?: RadioGroup; /** Dropdown component settings. */ dropdownOptions?: Dropdown; /** Date and time input component settings. */ dateTimeOptions?: DateTimeInput; /** Phone input component settings. */ phoneInputOptions?: PhoneInput; /** Date input component settings. */ dateInputOptions?: DateInput; /** Time input component settings. */ timeInputOptions?: TimeInput; /** Date picker component settings. */ datePickerOptions?: DatePicker; /** Services dropdown component settings. */ servicesDropdownOptions?: ServicesDropdown; /** Password component settings. */ passwordOptions?: Password; /** Validation configuration for the string input. */ validation?: StringType; /** * Component type of the string input field. * @readonly */ componentType?: StringComponentTypeWithLiterals; } /** @oneof */ interface _StringComponentTypeOptionsOneOf { /** Text input component settings. */ textInputOptions?: TextInput; /** Radio group component settings. */ radioGroupOptions?: RadioGroup; /** Dropdown component settings. */ dropdownOptions?: Dropdown; /** Date and time input component settings. */ dateTimeOptions?: DateTimeInput; /** Phone input component settings. */ phoneInputOptions?: PhoneInput; /** Date input component settings. */ dateInputOptions?: DateInput; /** Time input component settings. */ timeInputOptions?: TimeInput; /** Date picker component settings. */ datePickerOptions?: DatePicker; /** Services dropdown component settings. */ servicesDropdownOptions?: ServicesDropdown; /** Password component settings. */ passwordOptions?: Password; } interface _Number extends _NumberComponentTypeOptionsOneOf { /** Number input settings. */ numberInputOptions?: NumberInput; /** Rating input settings. */ ratingInputOptions?: RatingInput; /** Validation configuration for the number input. */ validation?: NumberType; /** * Component type of the number input field. * @readonly */ componentType?: NumberComponentTypeWithLiterals; } /** @oneof */ interface _NumberComponentTypeOptionsOneOf { /** Number input settings. */ numberInputOptions?: NumberInput; /** Rating input settings. */ ratingInputOptions?: RatingInput; } interface _Boolean extends _BooleanComponentTypeOptionsOneOf { /** Checkbox component settings. */ checkboxOptions?: Checkbox; /** Validation configuration for the boolean input. */ validation?: BooleanType; /** * Component type of the boolean input field. * @readonly */ componentType?: BooleanComponentTypeWithLiterals; } /** @oneof */ interface _BooleanComponentTypeOptionsOneOf { /** Checkbox component settings. */ checkboxOptions?: Checkbox; } interface _Array extends _ArrayComponentTypeOptionsOneOf { /** Checkbox group component settings. */ checkboxGroupOptions?: CheckboxGroup; /** Tags component settings. */ tagsOptions?: ComponentsTags; /** Services checkbox group input field */ servicesCheckboxGroupOptions?: ServicesCheckboxGroup; /** Validation configuration for the array input. */ validation?: ArrayType; /** * Component type of the array input field. * @readonly */ componentType?: ArrayComponentTypeWithLiterals; } /** @oneof */ interface _ArrayComponentTypeOptionsOneOf { /** Checkbox group component settings. */ checkboxGroupOptions?: CheckboxGroup; /** Tags component settings. */ tagsOptions?: ComponentsTags; /** Services checkbox group input field */ servicesCheckboxGroupOptions?: ServicesCheckboxGroup; } interface _Object { /** Validation configuration for the object input. */ validation?: ObjectType; } interface WixFile extends WixFileComponentTypeOptionsOneOf { /** File upload component settings. */ fileUploadOptions?: FileUpload; /** Signature component settings. */ signatureOptions?: Signature; /** * Component type of the file input field. * @readonly */ componentType?: WixFileComponentTypeWithLiterals; /** Validation configuration for the file input. */ validation?: FileType; } /** @oneof */ interface WixFileComponentTypeOptionsOneOf { /** File upload component settings. */ fileUploadOptions?: FileUpload; /** Signature component settings. */ signatureOptions?: Signature; } interface Payment extends PaymentComponentTypeOptionsOneOf { /** Checkbox group component settings. */ checkboxGroupOptions?: ProductCheckboxGroup; /** Donation input component settings. */ donationInputOptions?: DonationInput; /** Payment input component settings. */ paymentInputOptions?: PaymentInput; /** Fixed payment component settings. */ fixedPaymentOptions?: FixedPayment; /** * Component type of the payment input field. * @readonly */ componentType?: PaymentComponentTypeWithLiterals; /** Validation configuration for the payment input. */ validation?: PaymentType; } /** @oneof */ interface PaymentComponentTypeOptionsOneOf { /** Checkbox group component settings. */ checkboxGroupOptions?: ProductCheckboxGroup; /** Donation input component settings. */ donationInputOptions?: DonationInput; /** Payment input component settings. */ paymentInputOptions?: PaymentInput; /** Fixed payment component settings. */ fixedPaymentOptions?: FixedPayment; } interface Scheduling extends SchedulingComponentTypeOptionsOneOf { /** Appointment component settings. */ appointmentOptions?: Appointment; /** * Component type of the scheduling field. * @readonly */ componentType?: SchedulingComponentTypeWithLiterals; } /** @oneof */ interface SchedulingComponentTypeOptionsOneOf { /** Appointment component settings. */ appointmentOptions?: Appointment; } interface Address extends AddressComponentTypeOptionsOneOf { /** Multiline address component settings. */ multilineAddressOptions?: MultilineAddress; /** * Component type of the multiline address field. * @readonly */ componentType?: ComponentTypeWithLiterals; /** Validation configuration for the multiline address input. */ validation?: MultilineAddressValidation; } /** @oneof */ interface AddressComponentTypeOptionsOneOf { /** Multiline address component settings. */ multilineAddressOptions?: MultilineAddress; } interface ObjectArray extends ObjectArrayComponentTypeOptionsOneOf { /** Repeater component settings. */ repeaterOptions?: Repeater; /** * Component type of the object array input. * @readonly */ componentType?: ObjectArrayComponentTypeWithLiterals; /** Validation configuration for the object array input. */ validation?: ObjectArrayType; } /** @oneof */ interface ObjectArrayComponentTypeOptionsOneOf { /** Repeater component settings. */ repeaterOptions?: Repeater; } interface DisplayField extends DisplayFieldDisplayFieldTypeOptionsOneOf { /** Configuration for rich content display fields. */ richContentOptions?: RichContentOptions; /** Configuration for page navigation display fields such as navigation or submit buttons. */ pageNavigationOptions?: PageNavigationOptions; /** Type of display field that determines its appearance and behavior. */ displayFieldType?: DisplayFieldTypeWithLiterals; } /** @oneof */ interface DisplayFieldDisplayFieldTypeOptionsOneOf { /** Configuration for rich content display fields. */ richContentOptions?: RichContentOptions; /** Configuration for page navigation display fields such as navigation or submit buttons. */ pageNavigationOptions?: PageNavigationOptions; } declare enum DisplayFieldType { /** Unknown field type. */ UNKNOWN_FIELD_TYPE = "UNKNOWN_FIELD_TYPE", /** Rich content display field. */ RICH_CONTENT = "RICH_CONTENT", /** Page navigation display field. */ PAGE_NAVIGATION = "PAGE_NAVIGATION", /** Login bar display field. */ LOGIN_BAR = "LOGIN_BAR" } /** @enumType */ type DisplayFieldTypeWithLiterals = DisplayFieldType | 'UNKNOWN_FIELD_TYPE' | 'RICH_CONTENT' | 'PAGE_NAVIGATION' | 'LOGIN_BAR'; interface RichContentOptions { /** Rich content to display in the field. */ richContent?: RichContent; /** * Maximum number of paragraphs to show initially. * Additional content is hidden behind an expandable section. If not specified, all content is visible. */ maxShownParagraphs?: number | null; } interface PageNavigationOptions { /** * Text displayed on the button when it navigates to the next page. * Only applicable when the button is not on the final form page. * @maxLength 65 */ nextPageText?: string | null; /** * Text displayed on the button when it navigates to the previous page. * Only applicable when the button is not on the first form page. * @maxLength 65 */ previousPageText?: string | null; /** * Text displayed on the button when it submits the form. * Only applicable when the button is on the final form page. * @maxLength 65 */ submitText?: string | null; } interface Step { /** * Step ID. * @format GUID * @immutable */ _id?: string; /** * Name of the step. * @maxLength 200 */ name?: string | null; /** Whether the step is hidden. */ hidden?: boolean; /** Layout configuration that defines how form fields are arranged within this step. */ layout?: FormLayout; } interface FormRule { /** * Rule ID. * @format GUID * @immutable */ _id?: string; /** Condition that determines when this rule's overrides should be applied. */ condition?: Record | null; /** * Changes to apply to form elements when the condition evaluates to true. * @maxSize 500 */ overrides?: FormOverride[]; /** * Name for the rule. * @maxLength 200 */ name?: string | null; /** * Namespace rules are part of business logic of app owning namespace, have limited editing possibilities * @immutable */ namespaceRule?: boolean | null; } declare enum OverrideEntityType { /** Unknown override entity type. */ UNKNOWN = "UNKNOWN", /** Override applies to a form field. */ FIELD = "FIELD" } /** @enumType */ type OverrideEntityTypeWithLiterals = OverrideEntityType | 'UNKNOWN' | 'FIELD'; interface FormOverride { /** * Type of form element that this override targets. * @immutable */ entityType?: OverrideEntityTypeWithLiterals; /** * ID of the form element to modify. * For nested form fields, use the format: "{fieldIdWithNestedForm}/{nestedFormFieldId}". * @immutable * @maxLength 73 */ entityId?: string | null; /** * Property changes to apply to the form element when the rule condition is met. * Each key represents a property path, and the value is the new value to set. */ valueChanges?: Record; } interface FormProperties { /** * Form name. * @maxLength 200 * @deprecated * @replacedBy wix.forms.v4.Form.name * @targetRemovalDate 2026-01-06 */ name?: string | null; /** * Identifies if the form is disabled. * @deprecated Identifies if the form is disabled. * @replacedBy wix.forms.v4.Form.enabled * @targetRemovalDate 2026-01-06 */ disabled?: boolean; } declare enum Kind { /** Return forms specific to tenant, excluding template based forms. */ REGULAR = "REGULAR", /** Return forms based on common templates, with applied user overrides if they exist. */ EXTENSION = "EXTENSION" } /** @enumType */ type KindWithLiterals = Kind | 'REGULAR' | 'EXTENSION'; interface PostSubmissionTriggers { /** Upserts a [contact](https://support.wix.com/en/article/about-your-contact-list) to the Wix site from the form submission data. */ upsertContact?: UpsertContact; } interface UpsertContact { /** * Fields mapping between the form fields and the contact fields. * * This is the target form field mapped to the corresponding contact field. * * The key is the form field ID, and the value is the contact field. * @maxSize 250 */ fieldsMapping?: Record; /** * List of [labels](https://support.wix.com/en/article/creating-contact-labels) to add to the contact to help categorize it. * @minLength 1 * @maxLength 100 * @maxSize 20 */ labels?: string[]; } interface V4FormFieldContactInfo extends V4FormFieldContactInfoAdditionalInfoOneOf { /** Email info. */ emailInfo?: FormFieldContactInfoEmailInfo; /** Phone info. */ phoneInfo?: FormFieldContactInfoPhoneInfo; /** Address info. */ addressInfo?: FormFieldContactInfoAddressInfo; /** Custom field info. */ customFieldInfo?: FormFieldContactInfoCustomFieldInfo; /** Subscription info. */ subscriptionInfo?: FormFieldContactInfoSubscriptionInfo; /** The contact field that the form field maps to. */ contactField?: FormFieldContactInfoContactFieldWithLiterals; } /** @oneof */ interface V4FormFieldContactInfoAdditionalInfoOneOf { /** Email info. */ emailInfo?: FormFieldContactInfoEmailInfo; /** Phone info. */ phoneInfo?: FormFieldContactInfoPhoneInfo; /** Address info. */ addressInfo?: FormFieldContactInfoAddressInfo; /** Custom field info. */ customFieldInfo?: FormFieldContactInfoCustomFieldInfo; /** Subscription info. */ subscriptionInfo?: FormFieldContactInfoSubscriptionInfo; } declare enum FormFieldContactInfoEmailInfoTag { /** Email without a specific tag. */ UNTAGGED = "UNTAGGED", /** Primary email address for the contact. */ MAIN = "MAIN" } /** @enumType */ type FormFieldContactInfoEmailInfoTagWithLiterals = FormFieldContactInfoEmailInfoTag | 'UNTAGGED' | 'MAIN'; declare enum FormFieldContactInfoPhoneInfoTag { /** Phone number without a specific tag. */ UNTAGGED = "UNTAGGED", /** Primary phone number for the contact. */ MAIN = "MAIN" } /** @enumType */ type FormFieldContactInfoPhoneInfoTagWithLiterals = FormFieldContactInfoPhoneInfoTag | 'UNTAGGED' | 'MAIN'; declare enum AddressInfoTag { /** Address without a specific tag. */ UNTAGGED = "UNTAGGED", /** Home address for the contact. */ HOME = "HOME" } /** @enumType */ type AddressInfoTagWithLiterals = AddressInfoTag | 'UNTAGGED' | 'HOME'; declare enum OptInLevel { /** Unknown opt-in level. */ UNKNOWN = "UNKNOWN", /** Single confirmation opt-in. The contact is subscribed immediately. */ SINGLE_CONFIRMATION = "SINGLE_CONFIRMATION", /** Double confirmation opt-in. The contact must confirm their subscription via email. */ DOUBLE_CONFIRMATION = "DOUBLE_CONFIRMATION" } /** @enumType */ type OptInLevelWithLiterals = OptInLevel | 'UNKNOWN' | 'SINGLE_CONFIRMATION' | 'DOUBLE_CONFIRMATION'; declare enum FormFieldContactInfoContactField { /** First name. */ FIRST_NAME = "FIRST_NAME", /** CLast name. */ LAST_NAME = "LAST_NAME", /** Company name. */ COMPANY = "COMPANY", /** Job position or title. */ POSITION = "POSITION", /** Email address. */ EMAIL = "EMAIL", /** Phone number. */ PHONE = "PHONE", /** Physical address. */ ADDRESS = "ADDRESS", /** Birth date. */ BIRTHDATE = "BIRTHDATE", /** Custom field. */ CUSTOM_FIELD = "CUSTOM_FIELD", /** Subscription status. */ SUBSCRIPTION = "SUBSCRIPTION", /** VAT identification number. */ VAT_ID = "VAT_ID" } /** @enumType */ type FormFieldContactInfoContactFieldWithLiterals = FormFieldContactInfoContactField | 'FIRST_NAME' | 'LAST_NAME' | 'COMPANY' | 'POSITION' | 'EMAIL' | 'PHONE' | 'ADDRESS' | 'BIRTHDATE' | 'CUSTOM_FIELD' | 'SUBSCRIPTION' | 'VAT_ID'; interface FormFieldContactInfoEmailInfo { /** Email tag. */ tag?: FormFieldContactInfoEmailInfoTagWithLiterals; } interface FormFieldContactInfoPhoneInfo { /** Phone tag. */ tag?: FormFieldContactInfoPhoneInfoTagWithLiterals; } interface FormFieldContactInfoAddressInfo { /** Address tag. */ tag?: AddressInfoTagWithLiterals; } interface FormFieldContactInfoCustomFieldInfo { /** * Custom field key. * @minLength 1 * @maxLength 500 */ key?: string; } interface FormFieldContactInfoSubscriptionInfo { /** * Subscription consent opt-in level. * Default: `SINGLE_CONFIRMATION` */ optInLevel?: OptInLevelWithLiterals; /** * Subscription channels. * When not specified, defaults to `EMAIL`. * @maxSize 2 */ subscriptionChannels?: SubscriptionChannelWithLiterals[]; } interface ExtendedFields { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } interface NestedForm { /** * Targets which have this form. * @maxSize 10 * @maxLength 200 */ targets?: string[]; /** Nested form. */ form?: Form; } interface LimitationRule { /** Limitation by submission count, disables form when a set amount of submissions is reached. */ maxAllowedSubmissions?: number | null; /** Limitation by submission date, disables form when a set date and time is reached. */ dateTimeDeadline?: Date | null; /** * Limitation per user submission count, disables form when a set amount of submissions per user is reached. * @min 1 */ submissionLimitPerUser?: number | null; } declare enum SpamFilterProtectionLevel { /** Unknown spam filter protection level. */ UNKNOWN = "UNKNOWN", /** No spam filtering. All submissions are accepted without screening. */ NONE = "NONE", /** Basic spam filtering. Provides minimal protection against obvious spam and the form is open to a high risk of spam submissions. */ BASIC = "BASIC", /** Advanced spam filtering. Provides comprehensive protection with intelligent screening and the form is open to a low risk of spam submissions. */ ADVANCED = "ADVANCED" } /** @enumType */ type SpamFilterProtectionLevelWithLiterals = SpamFilterProtectionLevel | 'UNKNOWN' | 'NONE' | 'BASIC' | 'ADVANCED'; interface RequiredIndicatorProperties { /** Type of visual indicator used to mark required fields. */ requiredIndicator?: RequiredIndicatorWithLiterals; /** Position where the required indicator appears relative to the field title. */ requiredIndicatorPlacement?: RequiredIndicatorPlacementWithLiterals; } declare enum RequiredIndicator { /** Display an asterisk (*) symbol to indicate required fields. */ ASTERISK = "ASTERISK", /** Display the text "Required" to indicate required fields. */ TEXT = "TEXT", /** No visual indicator is shown for required fields. */ NONE = "NONE" } /** @enumType */ type RequiredIndicatorWithLiterals = RequiredIndicator | 'ASTERISK' | 'TEXT' | 'NONE'; declare enum RequiredIndicatorPlacement { /** Place the required indicator after the field title. */ AFTER_FIELD_TITLE = "AFTER_FIELD_TITLE", /** Place the required indicator before the field title. */ BEFORE_FIELD_TITLE = "BEFORE_FIELD_TITLE" } /** @enumType */ type RequiredIndicatorPlacementWithLiterals = RequiredIndicatorPlacement | 'AFTER_FIELD_TITLE' | 'BEFORE_FIELD_TITLE'; interface SubmitSettings extends SubmitSettingsSubmitSuccessActionOptionsOneOf { /** Configuration for displaying a thank you message after submission. */ thankYouMessageOptions?: ThankYouMessageOptions; /** Configuration for redirecting submitters to a URL after submission. */ redirectOptions?: RedirectOptions; /** Configuration for displaying a popup after submission. */ popupOptions?: PopupOptions; /** Action that's triggered after a form is successfully submitted. */ submitSuccessAction?: SubmitSuccessActionWithLiterals; } /** @oneof */ interface SubmitSettingsSubmitSuccessActionOptionsOneOf { /** Configuration for displaying a thank you message after submission. */ thankYouMessageOptions?: ThankYouMessageOptions; /** Configuration for redirecting submitters to a URL after submission. */ redirectOptions?: RedirectOptions; /** Configuration for displaying a popup after submission. */ popupOptions?: PopupOptions; } declare enum Target { /** Unknown target behavior. */ UNKNOWN_TARGET = "UNKNOWN_TARGET", /** Open the URL in the same browser tab, replacing the current page. */ SELF = "SELF", /** Open the URL in a new browser tab. */ BLANK = "BLANK" } /** @enumType */ type TargetWithLiterals = Target | 'UNKNOWN_TARGET' | 'SELF' | 'BLANK'; declare enum SubmitSuccessAction { /** No action is taken after form submission. */ NO_ACTION = "NO_ACTION", /** Display a thank you message after form submission. */ THANK_YOU_MESSAGE = "THANK_YOU_MESSAGE", /** Redirect the user to a specified URL after form submission. */ REDIRECT = "REDIRECT", /** Display a popup after form submission. */ POPUP = "POPUP" } /** @enumType */ type SubmitSuccessActionWithLiterals = SubmitSuccessAction | 'NO_ACTION' | 'THANK_YOU_MESSAGE' | 'REDIRECT' | 'POPUP'; interface ThankYouMessageOptions { /** * Duration in seconds before the thank you message automatically disappears. * If set to 0, the message remains visible until manually dismissed. */ durationInSeconds?: number | null; /** Rich content message displayed to users after successful form submission. */ richContent?: RichContent; } interface RedirectOptions { /** * URL to which the user should be redirected after successfully submitting the form. * @maxLength 2000 */ redirectUrl?: string | null; /** How the redirect URL should be opened in the browser. */ target?: TargetWithLiterals; } interface PopupOptions { /** * ID of the site popup to open after successful form submission. * @minLength 1 * @maxLength 100 */ popupId?: string; } interface FieldGroup { /** * Id of group, on layout * @format GUID */ _id?: string; /** * Label of group * @maxLength 350 */ label?: string | null; } interface Rule { /** * Rule ID. * @format GUID * @immutable */ _id?: string; /** * Conditional expression that determines when this rule should be applied. * The overrides defined in this rule are applied when this expression evaluates to true. */ expression?: ConditionNode; /** * Form modifications that are applied when the rule expression evaluates to true. * Each override specifies how a form element should be changed. * @maxSize 500 */ overrides?: RuleFormOverride[]; /** * Human-readable name for the rule. * @maxLength 200 */ name?: string | null; /** * Namespace rules are part of business logic of app owning namespace, have limited editing possibilities * @immutable */ namespaceRule?: boolean | null; } /** Enum for different types of field properties that can be modified by rules. */ declare enum ChangeableProperty { /** Required property type. */ REQUIRED = "REQUIRED", /** Hidden property type. */ HIDDEN = "HIDDEN", /** Allowed values property type. */ ALLOWED_VALUES = "ALLOWED_VALUES" } /** @enumType */ type ChangeablePropertyWithLiterals = ChangeableProperty | 'REQUIRED' | 'HIDDEN' | 'ALLOWED_VALUES'; interface RequiredOptions { /** Whether the field should be required. */ required?: boolean; } interface HiddenOptions { /** Whether the field should be hidden. */ hidden?: boolean; } interface AllowedValuesOptions { /** * List of values that are allowed for the field when this rule is active. * Restricts user input to only these predefined options. * @maxSize 300 */ allowedValues?: any[]; } declare enum OverrideEntityTypeEnumOverrideEntityType { /** Override applies to a form field. */ FIELD = "FIELD" } /** @enumType */ type OverrideEntityTypeEnumOverrideEntityTypeWithLiterals = OverrideEntityTypeEnumOverrideEntityType | 'FIELD'; interface FieldOverride extends FieldOverridePropertyTypeOptionsOneOf { /** Configuration for changing the required property of a field. */ requiredOptions?: RequiredOptions; /** Configuration for changing the visibility property of a field. */ hiddenOptions?: HiddenOptions; /** Configuration for changing the allowed values of a field. */ allowedValuesOptions?: AllowedValuesOptions; /** * ID of the field to be modified by this override. * @immutable * @format GUID */ fieldId?: string; /** The new value for the field property that will be set when the rule conditions are met. */ propertyType?: ChangeablePropertyWithLiterals; } /** @oneof */ interface FieldOverridePropertyTypeOptionsOneOf { /** Configuration for changing the required property of a field. */ requiredOptions?: RequiredOptions; /** Configuration for changing the visibility property of a field. */ hiddenOptions?: HiddenOptions; /** Configuration for changing the allowed values of a field. */ allowedValuesOptions?: AllowedValuesOptions; } interface ConditionNode extends ConditionNodeNodeOneOf { /** Logical AND condition with 1 or more child conditions. All child conditions must be true. */ and?: AndCondition; /** Logical OR condition with 1 or more child conditions. At least 1 child condition must be true. */ or?: OrCondition; /** Single condition to evaluate. */ condition?: Condition; } /** @oneof */ interface ConditionNodeNodeOneOf { /** Logical AND condition with 1 or more child conditions. All child conditions must be true. */ and?: AndCondition; /** Logical OR condition with 1 or more child conditions. At least 1 child condition must be true. */ or?: OrCondition; /** Single condition to evaluate. */ condition?: Condition; } interface AndCondition { /** * List of conditions that must all evaluate to true. * @minSize 1 * @maxSize 400 */ conditions?: ConditionNode[]; } interface OrCondition { /** * List of conditions where at least 1 must evaluate to true. * @minSize 1 * @maxSize 400 */ conditions?: ConditionNode[]; } interface Condition { /** * Human readable identifier used to reference a field. * Supports dot notation for nested properties. For example, `"address.city"`. * @maxLength 100 */ target?: string; /** Comparison operator to use for evaluating the condition. */ operator?: OperatorWithLiterals; /** Value to compare against the value in the target field. */ value?: any; } declare enum Operator { /** Specified value equals the value in the target field. */ EQUAL = "EQUAL", /** Specified value doesn't equal the value in the target field. */ NOT_EQUAL = "NOT_EQUAL", /** Target field is empty or has no value. */ EMPTY = "EMPTY", /** Target field isn't empty and has a value. */ NOT_EMPTY = "NOT_EMPTY", /** String value in the target field contains the specified substring. */ CONTAINS = "CONTAINS", /** String value in the target field doesn't contain the specified substring. */ NOT_CONTAINS = "NOT_CONTAINS", /** Numeric value in the target field is less than the specified value. */ LESS_THAN = "LESS_THAN", /** Numeric value in the target field is less than or equal to the specified value. */ LESS_THAN_OR_EQUALS = "LESS_THAN_OR_EQUALS", /** Numeric value in the target field is greater than the specified value. */ GREATER_THAN = "GREATER_THAN", /** Numeric value in the target field is greater than or equal to the specified value. */ GREATER_THAN_OR_EQUALS = "GREATER_THAN_OR_EQUALS", /** Date value in the target field is before the specified date. */ BEFORE = "BEFORE", /** Date value in the target field is before or equal to the specified date. */ BEFORE_OR_EQUAL = "BEFORE_OR_EQUAL", /** Date value in the target field is after the specified date. */ AFTER = "AFTER", /** Date value in the target field is after or equal to the specified date. */ AFTER_OR_EQUAL = "AFTER_OR_EQUAL", /** Value in the target field falls within the specified range. */ BETWEEN = "BETWEEN", /** Value in the target field matches any of the specified values. */ ANY = "ANY", /** Array value in the target field exactly equals the specified array. */ ARRAY_EQUAL = "ARRAY_EQUAL", /** Array value in the target field doesn't equal the specified array. */ ARRAY_NOT_EQUAL = "ARRAY_NOT_EQUAL", /** Checkbox or boolean field value in the target field is checked. */ CHECKED = "CHECKED", /** Checkbox or boolean field value in the target field isn't checked. */ NOT_CHECKED = "NOT_CHECKED", /** Value in the target field is included in the specified list. */ IN = "IN", /** Value in the target field isn't included in the specified list. */ NOT_IN = "NOT_IN", /** Date value in the target field is older than the specified time period. */ IS_DATE_OLDER_THAN = "IS_DATE_OLDER_THAN", /** Date value in the target field is older than or equal to the specified time period. */ IS_DATE_OLDER_THAN_OR_EQUAL = "IS_DATE_OLDER_THAN_OR_EQUAL", /** Date value in the target field is newer than the specified time period. */ IS_DATE_NEWER_THAN = "IS_DATE_NEWER_THAN", /** Date value in the target field is newer than or equal to the specified time period. */ IS_DATE_NEWER_THAN_OR_EQUAL = "IS_DATE_NEWER_THAN_OR_EQUAL" } /** @enumType */ type OperatorWithLiterals = Operator | 'EQUAL' | 'NOT_EQUAL' | 'EMPTY' | 'NOT_EMPTY' | 'CONTAINS' | 'NOT_CONTAINS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'BEFORE' | 'BEFORE_OR_EQUAL' | 'AFTER' | 'AFTER_OR_EQUAL' | 'BETWEEN' | 'ANY' | 'ARRAY_EQUAL' | 'ARRAY_NOT_EQUAL' | 'CHECKED' | 'NOT_CHECKED' | 'IN' | 'NOT_IN' | 'IS_DATE_OLDER_THAN' | 'IS_DATE_OLDER_THAN_OR_EQUAL' | 'IS_DATE_NEWER_THAN' | 'IS_DATE_NEWER_THAN_OR_EQUAL'; interface RuleFormOverride extends RuleFormOverrideEntityTypeOptionsOneOf { /** Field override settings. */ fieldOptions?: FieldOverride; /** * Type of form element being modified by this override. * @immutable */ entityType?: OverrideEntityTypeEnumOverrideEntityTypeWithLiterals; } /** @oneof */ interface RuleFormOverrideEntityTypeOptionsOneOf { /** Field override settings. */ fieldOptions?: FieldOverride; } /** * Common object for tags. * Should be use as in this example: * message Foo { * option (.wix.api.decomposite_of) = "wix.common.tags.Foo"; * string id = 1; * ... * Tags tags = 5 * } * * example of taggable entity * { * id: "123" * tags: { * tags: { * tag_ids:["11","22"] * }, * private_tags: { * tag_ids: ["33", "44"] * } * } * } */ interface Tags { /** Tags that require an additional permission in order to access them, normally not given to site members or visitors. */ privateTags?: TagList; /** Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. */ tags?: TagList; } interface TagList { /** * List of tag IDs * @maxSize 100 * @maxLength 5 */ tagIds?: string[]; } interface QuizSettings extends QuizSettingsPassingCriteriaOneOf, QuizSettingsResultsDisplayOptionsOneOf { /** Score required to pass the quiz (in points). */ passingScorePoints?: number; /** * Score required to pass the quiz as a percentage (0-100). * @max 100 */ passingScorePercentage?: number; /** Configuration for displaying only the pass/fail message. */ passingStatusOptions?: PassFailMessages; /** Configuration for displaying both the score and pass/fail message. */ scoreAndPassingStatusOptions?: PassFailMessages; /** Confirmation message text. */ message?: RichContent; /** * How to display quiz results in the confirmation page. * Default: `DO_NOT_DISPLAY` */ resultsDisplay?: ResultsDisplayWithLiterals; } /** @oneof */ interface QuizSettingsPassingCriteriaOneOf { /** Score required to pass the quiz (in points). */ passingScorePoints?: number; /** * Score required to pass the quiz as a percentage (0-100). * @max 100 */ passingScorePercentage?: number; } /** @oneof */ interface QuizSettingsResultsDisplayOptionsOneOf { /** Configuration for displaying only the pass/fail message. */ passingStatusOptions?: PassFailMessages; /** Configuration for displaying both the score and pass/fail message. */ scoreAndPassingStatusOptions?: PassFailMessages; } declare enum ResultsDisplay { /** Do not show quiz score and passing status. */ DO_NOT_DISPLAY = "DO_NOT_DISPLAY", /** Display only the user's score. */ SCORE = "SCORE", /** Display the pass or fail message based on the user's score. */ PASSING_STATUS = "PASSING_STATUS", /** Display both the score and pass/fail message. */ SCORE_AND_PASSING_STATUS = "SCORE_AND_PASSING_STATUS" } /** @enumType */ type ResultsDisplayWithLiterals = ResultsDisplay | 'DO_NOT_DISPLAY' | 'SCORE' | 'PASSING_STATUS' | 'SCORE_AND_PASSING_STATUS'; interface PassFailMessages { /** Message displayed when the user passes the quiz. */ passMessage?: RichContent; /** Message displayed when the user fails the quiz. */ failMessage?: RichContent; } declare enum ContactAutofill { /** Use site member data to autofill contact fields. */ MEMBER_DATA = "MEMBER_DATA", /** Use form input data to autofill contact fields. */ FORM_INPUT = "FORM_INPUT" } /** @enumType */ type ContactAutofillWithLiterals = ContactAutofill | 'MEMBER_DATA' | 'FORM_INPUT'; /** Controls who can read submissions of this form. */ declare enum SubmissionAccess { /** Unknown submission access. */ UNKNOWN_SUBMISSION_ACCESS = "UNKNOWN_SUBMISSION_ACCESS", /** Only users with `WIX_FORM.SUBMISSIONS_READ_ANY` permission. Default behavior. */ OWNER_AND_COLLABORATORS = "OWNER_AND_COLLABORATORS", /** Logged-in site members can read submissions. */ MEMBERS = "MEMBERS", /** Any site visitor with a valid Wix session can read submissions. */ PUBLIC = "PUBLIC" } /** @enumType */ type SubmissionAccessWithLiterals = SubmissionAccess | 'UNKNOWN_SUBMISSION_ACCESS' | 'OWNER_AND_COLLABORATORS' | 'MEMBERS' | 'PUBLIC'; interface CreateInteractiveFormSessionRequest { /** * Form ID to create an interactive session for. * @format GUID */ formId: string; /** * Pre-filled values to apply to the form, to initialize the session with existing data. * Field keys must match the form schema field names. * For example: `{"firstName": "John", "email": "john@example.com", "age": 25}`. * These values are merged with any data extracted during the conversation. */ currentValues?: Record | null; /** * Whether the session should run in dry run mode for testing and preview purposes. * In dry run mode, the full conversational flow works normally and form data is extracted, * but no actual form submission occurs. * @immutable */ dryRun?: boolean; /** Current date-time of api client. */ clientTime?: ClientTime; } interface ClientTime { /** * Current date and time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format. * For example, `2023-10-01T12:00:00Z`. * @minLength 1 * @maxLength 200 */ currentTime?: string | null; /** * Browser's timezone identifier for localizing date and time values in IANA timezone format (for example, `Europe/Vilnius`, `America/New_York`). * @minLength 1 * @maxLength 50 */ timeZone?: string | null; } interface CreateInteractiveFormSessionResponse { /** Created interactive form session. */ interactiveFormSession?: InteractiveFormSession; /** AI assistant response chunks for the interactive form session. */ responseChunks?: InteractiveFormSessionResponseChunk[]; } /** * AI assistant response chunk, containing different types of conversational content. * Chunks are delivered sequentially and must be processed in the order they are received to build the complete * conversation interface. Each chunk type requires different UI handling. */ interface InteractiveFormSessionResponseChunk extends InteractiveFormSessionResponseChunkOfOneOf { /** Conversational text message for display. */ textDetails?: TextDetails; /** Structured data extracted from user input and mapped to specific form fields. */ textDataDetails?: TextDataDetails; /** Selector for selecting multiple options from a predefined list. */ multiSelectInputDetails?: MultiSelectInputDetails; /** Selector for numeric input with optional range and validation constraints. */ numberInputDetails?: NumberInputDetails; /** Visual separator element for organizing conversation flow. */ separatorDetails?: SeparatorDetails; /** Selector for selecting a single option from a predefined list. */ singleSelectInputDetails?: SingleSelectInputDetails; /** Error information when processing fails or validation errors occur. */ errorDetails?: ErrorDetails; /** Form submission confirmation including a form submission ID. A checkout ID will also be returned here if the user selected products for purchase. */ submissionDetails?: SubmissionDetails; /** Important contextual information that may influence data extraction or user decisions. */ importantTextDetails?: ImportantTextDetails; /** Diagnostic information for development, debugging, and performance monitoring. */ debugDetails?: DebugDetails; /** Stream completion signal indicating no more chunks will be sent in this response. */ endOfResponseDetails?: EndOfResponseDetails; /** Input for file upload with field targeting. Not supported. */ fileUploadDetails?: FileUploadDetails; /** Input for digital signature capture with field targeting. Not supported. */ signatureDetails?: SignatureDetails; /** Response chunk type, that determines how the content should be processed and displayed. */ chunkType?: ChunkTypeWithLiterals; /** * Indicates which portion of the original user input was meaningful for data extraction. * Can be used to highlight relevant parts of the user's message in the UI. */ meaningfulInput?: MeaningfulInput; } /** @oneof */ interface InteractiveFormSessionResponseChunkOfOneOf { /** Conversational text message for display. */ textDetails?: TextDetails; /** Structured data extracted from user input and mapped to specific form fields. */ textDataDetails?: TextDataDetails; /** Selector for selecting multiple options from a predefined list. */ multiSelectInputDetails?: MultiSelectInputDetails; /** Selector for numeric input with optional range and validation constraints. */ numberInputDetails?: NumberInputDetails; /** Visual separator element for organizing conversation flow. */ separatorDetails?: SeparatorDetails; /** Selector for selecting a single option from a predefined list. */ singleSelectInputDetails?: SingleSelectInputDetails; /** Error information when processing fails or validation errors occur. */ errorDetails?: ErrorDetails; /** Form submission confirmation including a form submission ID. A checkout ID will also be returned here if the user selected products for purchase. */ submissionDetails?: SubmissionDetails; /** Important contextual information that may influence data extraction or user decisions. */ importantTextDetails?: ImportantTextDetails; /** Diagnostic information for development, debugging, and performance monitoring. */ debugDetails?: DebugDetails; /** Stream completion signal indicating no more chunks will be sent in this response. */ endOfResponseDetails?: EndOfResponseDetails; /** Input for file upload with field targeting. Not supported. */ fileUploadDetails?: FileUploadDetails; /** Input for digital signature capture with field targeting. Not supported. */ signatureDetails?: SignatureDetails; } declare enum ChunkType { /** Text message for display to the user. */ TEXT = "TEXT", /** Structured data extracted from user input and mapped to form fields. */ TEXT_DATA = "TEXT_DATA", /** Selector for selecting multiple options from a list. */ MULTI_SELECT_INPUT = "MULTI_SELECT_INPUT", /** Selector for numeric input with optional validation. */ NUMBER_INPUT = "NUMBER_INPUT", /** Visual separator element such as paragraph breaks. */ SEPARATOR = "SEPARATOR", /** Selector for selecting one option from a list. */ SINGLE_SELECT_INPUT = "SINGLE_SELECT_INPUT", /** Error message when processing fails or validation errors occur. */ ERROR = "ERROR", /** Form submission confirmation including a submission ID. */ SUBMISSION = "SUBMISSION", /** Highlighted information that may influence form data extraction. */ IMPORTANT_TEXT = "IMPORTANT_TEXT", /** Diagnostic information for troubleshooting and development. */ DEBUG = "DEBUG", /** Signals the completion of a response stream. */ END_OF_RESPONSE = "END_OF_RESPONSE", /** Input for file upload. Not supported. */ FILE_UPLOAD = "FILE_UPLOAD", /** Input for digital signature capture. Not supported. */ SIGNATURE = "SIGNATURE" } /** @enumType */ type ChunkTypeWithLiterals = ChunkType | 'TEXT' | 'TEXT_DATA' | 'MULTI_SELECT_INPUT' | 'NUMBER_INPUT' | 'SEPARATOR' | 'SINGLE_SELECT_INPUT' | 'ERROR' | 'SUBMISSION' | 'IMPORTANT_TEXT' | 'DEBUG' | 'END_OF_RESPONSE' | 'FILE_UPLOAD' | 'SIGNATURE'; /** Conversational text content from the AI assistant. */ interface TextDetails { /** * Text content to display. * @minLength 1 * @maxLength 10000 */ text?: string; /** Text formatting style for visual presentation. */ style?: StyleWithLiterals; } declare enum Style { /** Regular conversational text. */ NORMAL = "NORMAL", /** Bold text for emphasis. */ BOLD = "BOLD" } /** @enumType */ type StyleWithLiterals = Style | 'NORMAL' | 'BOLD'; /** Structured data extracted from user input and mapped to form fields. */ interface TextDataDetails { /** * Form field identifier that this extracted data maps to. * Matches a field name in the form schema. * @minLength 1 * @maxLength 200 */ fieldTarget?: string; /** * Human-readable text representation of the extracted data to display. * @minLength 1 * @maxLength 10000 */ text?: string; /** * Structured value for form submission (for example, boolean `true`/`false`, number, or string). * This is the actual data value that will be submitted with the form. */ value?: any; /** * User-friendly display representation of the value (for example, "Yes"/"No" for boolean, "25 years old" for age). * Use this to display confirmation of what was extracted from the user's input. * @minLength 1 * @maxLength 10000 */ displayValue?: string; } /** Interactive prompt for selecting multiple options from a predefined list. */ interface MultiSelectInputDetails { /** * Form field identifier for the multi-select input. * @minLength 1 * @maxLength 200 */ fieldTarget?: string; /** * Options available for selection, when relevant. Users can choose multiple options from this list. * @minSize 1 * @maxSize 100 */ options?: Option[]; /** When present, allows users to provide custom values not in the predefined options list. */ allowedCustomValue?: CustomValue; } /** Selection option for input prompts. */ interface Option { /** * Value to be submitted when this option is selected. * This is the technical value used in form processing and submission. * @minLength 1 * @maxLength 10000 */ value?: string; /** * Human-readable label for display for this option. * @minLength 1 * @maxLength 10000 */ label?: string; } /** Custom value configuration for input prompts. */ interface CustomValue { /** * Description of the expected custom value format or content. * Displayed to guide users when they choose to provide a custom option. * @maxLength 10000 */ description?: string; } /** Interactive prompt for numeric input with validation constraints. */ interface NumberInputDetails { /** * Form field identifier for the numeric input. * @minLength 1 * @maxLength 200 */ fieldTarget?: string; /** Minimum and maximum value constraints for the numeric input. */ rangeLimit?: NumberRangeLimit; /** * When provided, restricts input to multiples of this value. * For example, `2.5` would allow 2.5, 5.0, 7.5, and so on. */ multipleOf?: number | null; } /** Numeric range constraints for number input validation. */ interface NumberRangeLimit extends NumberRangeLimitEndOneOf { /** Maximum allowed value (inclusive). */ maxInclusiveValue?: number | null; /** Maximum allowed value (exclusive). */ maxExclusiveValue?: number | null; /** Minimum allowed value (inclusive). */ minInclusiveValue?: number | null; } /** @oneof */ interface NumberRangeLimitEndOneOf { /** Maximum allowed value (inclusive). */ maxInclusiveValue?: number | null; /** Maximum allowed value (exclusive). */ maxExclusiveValue?: number | null; } /** Visual separator element for organizing conversation flow. */ interface SeparatorDetails { /** Type of visual separator to display in the conversation flow. */ type?: TypeWithLiterals; } declare enum Type { /** Paragraph break for visual content separation. */ PARAGRAPH = "PARAGRAPH" } /** @enumType */ type TypeWithLiterals = Type | 'PARAGRAPH'; /** Selector for selecting a single option from a predefined list. */ interface SingleSelectInputDetails { /** * Form field identifier for the single-select input. * @minLength 1 * @maxLength 200 */ fieldTarget?: string; /** * Options available for selection. Users can choose only one option from this list. * @minSize 1 * @maxSize 100 */ options?: Option[]; /** When present, allows users to provide a custom value not in the predefined options list. */ allowedCustomValue?: CustomValue; } /** Error information when processing fails or validation errors occur. */ interface ErrorDetails { /** * Error message detailing what went wrong during processing. * For display to the user when the AI cannot process their input or when validation fails. * @minLength 1 * @maxLength 1000 */ messageText?: string; } /** Form submission confirmation containing submission information. */ interface SubmissionDetails { /** * Form submission ID created when the form is successfully completed and submitted. * @format GUID */ submissionId?: string; /** * Wix eCommerce checkout ID when the form includes payment processing. * Only present for forms that have payment fields or are connected to eCommerce flows. * @format GUID * @readonly */ checkoutId?: string | null; } /** Important contextual information that may influence data extraction or user decisions. */ interface ImportantTextDetails { /** * Form field identifier that this important information relates to. * @minLength 1 * @maxLength 200 */ fieldTarget?: string; /** * Important contextual information to highlight. * This might include validation requirements, format expectations, or clarifying questions. * @minLength 1 * @maxLength 10000 */ text?: string; } /** Diagnostic information for development and troubleshooting. */ interface DebugDetails { /** * Diagnostic data for development and troubleshooting. * Contains information such as AI tools called, processing times, and internal state. */ data?: Record | null; } /** Stream completion signal indicating the end of a response stream. */ interface EndOfResponseDetails { /** * Whether the response stream completed successfully. * When `false`, there may have been processing errors or interruptions. */ success?: boolean; } /** Interactive prompt for file upload input. */ interface FileUploadDetails { /** * Form field identifier for the file upload input. * @minLength 1 * @maxLength 200 */ fieldTarget?: string; } /** Interactive prompt for digital signature capture. */ interface SignatureDetails { /** * Form field identifier for the digital signature input. * @minLength 1 * @maxLength 200 */ fieldTarget?: string; } /** Indicates which portion of user input was meaningful for data extraction. */ interface MeaningfulInput { /** * Character position (0-indexed) where the meaningful portion of user input begins. * @max 10000 */ startOffset?: number; /** * Length in characters of the meaningful portion of user input. * Use this with `startOffset` to highlight the relevant text that was processed for data extraction. * @max 10000 */ length?: number; } interface CreateInteractiveFormSessionStreamedRequest { /** * Form ID to create an interactive session for. * @format GUID */ formId: string; /** * Pre-filled values to apply to the form, to initialize the session with existing data. * Field keys must match the form schema field names. * For example: `{"firstName": "John", "email": "john@example.com", "age": 25}`. * These values are merged with any data extracted during the conversation. */ currentValues?: Record | null; /** * Whether the session should run in dry run mode when no actual form submission occurs. * In dry run mode, the full conversational flow works normally and form data is extracted, * but no actual form submission occurs. * * Default: `false` * @immutable */ dryRun?: boolean; /** Caller's local date and time. */ clientTime?: ClientTime; } interface CreateInteractiveFormSessionStreamedResponse { /** * AI assistant response chunk, streamed in real-time. * Process each chunk as it arrives to provide progressive user feedback. */ responseChunk?: InteractiveFormSessionResponseChunk; /** * Information about the created interactive form session. * Only included in the first chunk of the stream to provide session details immediately. */ interactiveFormSession?: InteractiveFormSession; } interface SendUserMessageRequest { /** * Interactive form session ID to send the message to. * @format GUID */ interactiveFormSessionId: string; /** * User's natural language input. * The AI assistant analyzes this text to extract form field data and determine the next conversation step. * Maximum length: 10,000 characters. * @maxLength 10000 */ input?: string | null; /** * Form field values to apply to the session. * Use this to update form data from other sources while the conversation is ongoing. * These values override any existing data for the same field keys. * For example: `{"lastName": "Smith", "phoneNumber": "+1234567890"}`. */ currentValues?: Record | null; } interface SendUserMessageResponse { /** Updated interactive form session after the user input is processed. */ interactiveFormSession?: InteractiveFormSession; /** * AI assistant response chunks generated from processing the user's message. * These can include extracted data, follow-up questions, input selectors, or submission confirmation. */ responseChunks?: InteractiveFormSessionResponseChunk[]; } interface SendUserMessageStreamedRequest { /** * Interactive form session ID to send the message to. * @format GUID */ interactiveFormSessionId: string; /** * User's natural language input to process. * The AI assistant analyzes this text to extract form field data and determine the next conversation step. * @maxLength 10000 */ input?: string | null; /** * Form field values to apply to the session. * Use this to update form data from other sources while the conversation is ongoing. * These values override any existing data for the same field keys. * For example: `{"lastName": "Smith", "phoneNumber": "+1234567890"}`. */ currentValues?: Record | null; } interface SendUserMessageStreamedResponse { /** AI assistant response chunk streamed in real-time as the message is processed. */ responseChunk?: InteractiveFormSessionResponseChunk; /** * Updated interactive form session information. * Session data, including session ID and form ID. Returned in the first chunk of the streamed response. */ interactiveFormSession?: InteractiveFormSession; } interface ConverseRequest extends ConverseRequestRequestOneOf { /** Get state request */ getStateRequest?: GetStateRequest; /** Call tools request */ callToolsRequest?: CallToolsRequest; /** Relay assistant message request */ relayAssistantMessage?: RelayAssistantMessageRequest; /** Usage request */ usageRequest?: UsageRequest; /** * Request ID used for mapping the request to the response * @format GUID */ requestId?: string; } /** @oneof */ interface ConverseRequestRequestOneOf { /** Get state request */ getStateRequest?: GetStateRequest; /** Call tools request */ callToolsRequest?: CallToolsRequest; /** Relay assistant message request */ relayAssistantMessage?: RelayAssistantMessageRequest; /** Usage request */ usageRequest?: UsageRequest; } interface GetStateRequest { /** * Interactive form session ID * @format GUID */ interactiveFormSessionId?: string; } interface CallToolsRequest { /** * Tool calls to be executed * @maxSize 100 */ calls?: Call[]; /** * Interactive form session ID * @format GUID */ interactiveFormSessionId?: string; } interface Call { /** Tool call arguments */ args?: Record | null; /** * Tool name to call * @minLength 1 * @maxLength 100 */ toolName?: string; /** * Tool call ID * @minLength 1 * @maxLength 100 */ callId?: string; } interface RelayAssistantMessageRequest { /** * Assistant message text * @minLength 1 * @maxLength 10000 */ text?: string; /** * Interactive form session ID * @format GUID */ interactiveFormSessionId?: string; } interface UsageRequest { /** Microcents spent for the request */ microcentsSpent?: string; /** * Interactive form session ID * @format GUID */ interactiveFormSessionId?: string; /** * Form ID * @format GUID */ formId?: string; /** Usage details for the request */ usage?: Usage; } interface Usage { /** * Model name used for the session * @minLength 1 * @maxLength 100 */ model?: string | null; /** The total number of tokens in the Response including input and output text and audio tokens */ totalTokens?: string; /** The number of input tokens used in the Response, including text and audio tokens. */ inputTokens?: string; /** The number of output tokens sent in the Response, including text and audio tokens. */ outputTokens?: string; /** Token details */ tokenDetails?: Record | null; } interface ConverseResponse extends ConverseResponseResponseOneOf { /** Get state response */ getStateResponse?: GetStateResponse; /** Call tools response */ callToolsResponse?: CallToolsResponse; /** Assistant response chunk */ responseChunk?: InteractiveFormSessionResponseChunk; /** Response that signals that the request has been processed */ acknowledgmentResponse?: AcknowledgmentResponse; /** * Request ID used for mapping the request to the response * @format GUID */ requestId?: string; } /** @oneof */ interface ConverseResponseResponseOneOf { /** Get state response */ getStateResponse?: GetStateResponse; /** Call tools response */ callToolsResponse?: CallToolsResponse; /** Assistant response chunk */ responseChunk?: InteractiveFormSessionResponseChunk; /** Response that signals that the request has been processed */ acknowledgmentResponse?: AcknowledgmentResponse; } interface GetStateResponse { /** * Available tools for the session * @maxSize 100 */ tools?: Tool[]; /** * Context messages for the session * @maxSize 10000 */ contextMessages?: ContextMessage[]; /** * System prompt text * @minLength 1 * @maxLength 10000 */ systemPrompt?: string; /** * Form ID for the session * @format GUID */ formId?: string; /** * Submission state message * @maxLength 10000 */ submissionStateMessage?: string | null; } interface Tool { /** * Tool type identifier * @minLength 1 * @maxLength 10000 */ type?: string; /** * Tool name * @minLength 1 * @maxLength 10000 */ name?: string | null; /** * Tool description * @minLength 1 * @maxLength 10000 */ description?: string | null; /** Tool parameters */ parameters?: Record | null; } interface ContextMessage extends ContextMessageOptionsOneOf { /** User options */ userOptions?: UserOptions; /** Assistant options */ assistantOptions?: AssistantOptions; /** Function call options */ functionCallOptions?: FunctionCallOptions; /** Function call output options */ functionCallOutputOptions?: FunctionCallOutputOptions; /** Developer options */ developerOptions?: DeveloperOptions; /** Role of the message sender */ role?: RoleWithLiterals; } /** @oneof */ interface ContextMessageOptionsOneOf { /** User options */ userOptions?: UserOptions; /** Assistant options */ assistantOptions?: AssistantOptions; /** Function call options */ functionCallOptions?: FunctionCallOptions; /** Function call output options */ functionCallOutputOptions?: FunctionCallOutputOptions; /** Developer options */ developerOptions?: DeveloperOptions; } declare enum Role { /** Message from the user. */ USER = "USER", /** Message from the AI assistant. */ ASSISTANT = "ASSISTANT", /** Function call message. */ FUNCTION_CALL = "FUNCTION_CALL", /** Function call output message. */ FUNCTION_CALL_OUTPUT = "FUNCTION_CALL_OUTPUT", /** Message from the developer/system. */ DEVELOPER = "DEVELOPER" } /** @enumType */ type RoleWithLiterals = Role | 'USER' | 'ASSISTANT' | 'FUNCTION_CALL' | 'FUNCTION_CALL_OUTPUT' | 'DEVELOPER'; interface UserOptions { /** * User message content * @minLength 1 * @maxLength 10000 */ content?: string; } interface AssistantOptions { /** * Assistant message content * @minLength 1 * @maxLength 10000 */ content?: string; } interface FunctionCallOptions { /** * Call name * @minLength 1 * @maxLength 100 */ functionName?: string; /** Call arguments */ args?: Record | null; /** * Call ID * @minLength 1 * @maxLength 100 */ callId?: string; } interface FunctionCallOutputOptions { /** Call output data */ output?: Record | null; /** * Call ID * @minLength 1 * @maxLength 100 */ callId?: string; } interface DeveloperOptions { /** * Developer message content * @minLength 1 * @maxLength 10000 */ content?: string; } interface CallToolsResponse { /** * Tool call responses * @maxSize 100 */ responses?: Response[]; } interface Response { /** * Tool call ID * @minLength 1 * @maxLength 100 */ callId?: string; /** Tool call response data */ response?: Record | null; } interface AcknowledgmentResponse { /** Whether request processing was successful. */ success?: boolean; } interface OutputInteractiveFormSessionStreamedRequest { /** * Interactive form session id to output * @format GUID */ interactiveFormSessionId?: string; } interface OutputInteractiveFormSessionStreamedResponse { /** Interactive form session id */ interactiveFormSession?: InteractiveFormSession; /** Assistant response chunk for the session */ responseChunk?: InteractiveFormSessionResponseChunk; } /** Request to report a conversation for quality assurance. */ interface ReportConversationRequest { /** * Interactive form session ID to report. * @format GUID */ interactiveFormSessionId?: string; /** * Details about the issue or feedback. * @minLength 1 * @maxLength 10000 */ description?: string; /** * Viewer debug URL of the conversation * @format WEB_URL */ viewerDebugUrl?: string; } /** Response confirming conversation report submission. */ interface ReportConversationResponse { /** Whether the report was successfully created. */ success?: boolean | null; /** * Error message. * @maxLength 10000 */ errorMessage?: string | null; } /** Request to generate a natural language summary of a form. */ interface GenerateFormSummaryRequest { /** * Form object to generate a summary for. * Must include the form's fields and configuration. */ form: Form; } /** Response containing the generated form summary. */ interface GenerateFormSummaryResponse { /** * AI-generated natural language summary describing the form's structure, fields, and intended purpose. * Maximum 255 characters. * @maxLength 255 */ formSummary?: string | null; } interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ _id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at 16:00 and then again at 16:01, the second update will always have a higher sequence number. * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } interface EntityCreatedEvent { entity?: string; } interface RestoreInfo { deletedDate?: Date | null; } interface EntityUpdatedEvent { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntity?: string; } interface EntityDeletedEvent { /** Entity that was deleted. */ deletedEntity?: string | null; } interface ActionEvent { body?: string; } 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 SendUserMessageApplicationErrors = { code?: 'EMPTY_REQUEST'; description?: string; data?: Record; }; /** @docsIgnore */ type SendUserMessageStreamedApplicationErrors = { code?: 'EMPTY_REQUEST'; description?: string; data?: Record; }; /** @docsIgnore */ type GenerateFormSummaryApplicationErrors = { code?: 'INVALID_FORM'; description?: string; data?: Record; }; interface BaseEventMetadata { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Details related to the account */ accountInfo?: AccountInfo; } interface EventMetadata extends BaseEventMetadata { /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ _id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at 16:00 and then again at 16:01, the second update will always have a higher sequence number. * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it. */ entityEventSequence?: string | null; accountInfo?: AccountInfoMetadata; } interface AccountInfoMetadata { /** ID of the Wix account associated with the event */ accountId: string; /** ID of the Wix site associated with the event. Only included when the event is tied to a specific site. */ siteId?: string; /** ID of the parent Wix account. Only included when 'accountId' belongs to a child account. */ parentAccountId?: string; } interface InteractiveFormSessionCreatedEnvelope { entity: InteractiveFormSession; metadata: EventMetadata; } /** * Triggered when an interactive form session is created. * @permissionScope Manage form submissions. * @permissionScopeId SCOPE.FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Challenges * @permissionScopeId SCOPE.CHALLENGES.MANAGE * @permissionId WIX_FORMS.READ_INTERACTIVE_FORM_SESSION * @webhook * @eventType wix.forms.ai.v1.interactive_form_session_created * @slug created * @documentationMaturity preview */ declare function onInteractiveFormSessionCreated(handler: (event: InteractiveFormSessionCreatedEnvelope) => void | Promise): void; /** * Creates an interactive form session for AI-powered conversational form completion. * * For implementations that require real-time streaming, call [Create Interactive Form Session Streamed](https://dev.wix.com/docs/api-reference/crm/forms/interactive-form-sessions/create-interactive-form-session-streamed) instead. * @param formId - Form ID to create an interactive session for. * @public * @requiredField formId * @permissionId WIX_FORMS.CREATE_INTERACTIVE_FORM_SESSION * @applicableIdentity APP * @returns Created interactive form session. * @fqn wix.forms.ai.v1.InteractiveFormSessionsService.CreateInteractiveFormSession */ declare function createInteractiveFormSession(formId: string, options?: CreateInteractiveFormSessionOptions): Promise>; interface CreateInteractiveFormSessionOptions { /** * Pre-filled values to apply to the form, to initialize the session with existing data. * Field keys must match the form schema field names. * For example: `{"firstName": "John", "email": "john@example.com", "age": 25}`. * These values are merged with any data extracted during the conversation. */ currentValues?: Record | null; /** * Whether the session should run in dry run mode for testing and preview purposes. * In dry run mode, the full conversational flow works normally and form data is extracted, * but no actual form submission occurs. * @immutable */ dryRun?: boolean; /** Current date-time of api client. */ clientTime?: ClientTime; } /** * Creates an interactive form session for AI-powered conversational form completion, with real-time streaming. * * For implementations that prefer to wait for the complete response, call [Create Interactive Form Session](https://dev.wix.com/docs/api-reference/crm/forms/interactive-form-sessions/create-interactive-form-session) instead. * @param formId - Form ID to create an interactive session for. * @public * @requiredField formId * @permissionId WIX_FORMS.CREATE_INTERACTIVE_FORM_SESSION * @applicableIdentity APP * @fqn wix.forms.ai.v1.InteractiveFormSessionsService.CreateInteractiveFormSessionStreamed */ declare function createInteractiveFormSessionStreamed(formId: string, options?: CreateInteractiveFormSessionStreamedOptions): Promise>; interface CreateInteractiveFormSessionStreamedOptions { /** * Pre-filled values to apply to the form, to initialize the session with existing data. * Field keys must match the form schema field names. * For example: `{"firstName": "John", "email": "john@example.com", "age": 25}`. * These values are merged with any data extracted during the conversation. */ currentValues?: Record | null; /** * Whether the session should run in dry run mode when no actual form submission occurs. * In dry run mode, the full conversational flow works normally and form data is extracted, * but no actual form submission occurs. * * Default: `false` * @immutable */ dryRun?: boolean; /** Caller's local date and time. */ clientTime?: ClientTime; } /** * Submits a user message to an existing interactive form session and processes the conversational input. * User messages support up to 10,000 characters. * * For implementations that require real-time streaming, call [Send User Message Streamed](https://dev.wix.com/docs/api-reference/crm/forms/interactive-form-sessions/send-user-message-streamed) instead. * @param interactiveFormSessionId - Interactive form session ID to send the message to. * @public * @requiredField interactiveFormSessionId * @permissionId WIX_FORMS.SEND_USER_MESSAGE_TO_INTERACTIVE_FORM_SESSION * @applicableIdentity APP * @fqn wix.forms.ai.v1.InteractiveFormSessionsService.SendUserMessage */ declare function sendUserMessage(interactiveFormSessionId: string, options?: SendUserMessageOptions): Promise & { __applicationErrorsType?: SendUserMessageApplicationErrors; }>; interface SendUserMessageOptions { /** * User's natural language input. * The AI assistant analyzes this text to extract form field data and determine the next conversation step. * Maximum length: 10,000 characters. * @maxLength 10000 */ input?: string | null; /** * Form field values to apply to the session. * Use this to update form data from other sources while the conversation is ongoing. * These values override any existing data for the same field keys. * For example: `{"lastName": "Smith", "phoneNumber": "+1234567890"}`. */ currentValues?: Record | null; } /** * Submits a user message to an existing interactive form session and processes the conversational input, with real-time streaming. * * For implementations that prefer to wait for the complete response, call [Send User Message](https://dev.wix.com/docs/api-reference/crm/forms/interactive-form-sessions/send-user-message) instead. * @param interactiveFormSessionId - Interactive form session ID to send the message to. * @public * @requiredField interactiveFormSessionId * @permissionId WIX_FORMS.SEND_USER_MESSAGE_TO_INTERACTIVE_FORM_SESSION * @applicableIdentity APP * @fqn wix.forms.ai.v1.InteractiveFormSessionsService.SendUserMessageStreamed */ declare function sendUserMessageStreamed(interactiveFormSessionId: string, options?: SendUserMessageStreamedOptions): Promise & { __applicationErrorsType?: SendUserMessageStreamedApplicationErrors; }>; interface SendUserMessageStreamedOptions { /** * User's natural language input to process. * The AI assistant analyzes this text to extract form field data and determine the next conversation step. * @maxLength 10000 */ input?: string | null; /** * Form field values to apply to the session. * Use this to update form data from other sources while the conversation is ongoing. * These values override any existing data for the same field keys. * For example: `{"lastName": "Smith", "phoneNumber": "+1234567890"}`. */ currentValues?: Record | null; } /** * Generates an AI summary of a form's structure and purpose in natural language, based on the form's fields and configuration, of max 255 characters. * * The summary describes what the form collects and its intended use case, * useful for accessibility, previews, and AI-powered form discovery. * @param form - Form object to generate a summary for. * Must include the form's fields and configuration. * @public * @requiredField form * @permissionId WIX_FORMS.CREATE_INTERACTIVE_FORM_SESSION * @applicableIdentity APP * @returns Response containing the generated form summary. * @fqn wix.forms.ai.v1.InteractiveFormSessionsService.GenerateFormSummary */ declare function generateFormSummary(form: Form): Promise; export { type AccountInfo, type AccountInfoMetadata, type AcknowledgmentResponse, type ActionEvent, type Address, type AddressComponentTypeOptionsOneOf, type AddressInfo, AddressInfoTag, type AddressInfoTagWithLiterals, type AddressLine2, Alignment, type AlignmentWithLiterals, type AllowedValuesOptions, type AnchorData, type AndCondition, type AppEmbedData, type AppEmbedDataAppDataOneOf, AppType, type AppTypeWithLiterals, type Appointment, type AppointmentFormatInfoOneOf, ArrayComponentType, type ArrayComponentTypeWithLiterals, type ArrayErrorMessages, type ArrayItems, type ArrayItemsItemTypeOptionsOneOf, type ArrayType, type ArrayTypeArrayItems, type ArrayTypeArrayItemsItemsOneOf, AspectRatio, type AspectRatioWithLiterals, type AssistantOptions, type AudioData, type Availability, type Backdrop, BackdropType, type BackdropTypeWithLiterals, type Background, type BackgroundGradient, type BackgroundImage, BackgroundType, type BackgroundTypeWithLiterals, type Banner, type BaseEventMetadata, type BlockquoteData, type BookingData, BooleanComponentType, type BooleanComponentTypeWithLiterals, type BooleanErrorMessages, type BooleanType, type Border, type BorderColors, type BorderWidths, type BreakPoint, type BulletedListData, type ButtonData, ButtonDataType, type ButtonDataTypeWithLiterals, type ButtonStyles, type Call, type CallToolsRequest, type CallToolsResponse, type CaptionData, type CardData, type CardDataBackground, CardDataBackgroundType, type CardDataBackgroundTypeWithLiterals, type CardStyles, CardStylesAlignment, type CardStylesAlignmentWithLiterals, CardStylesType, type CardStylesTypeWithLiterals, type CellStyle, ChangeableProperty, type ChangeablePropertyWithLiterals, type Checkbox, type CheckboxGroup, type CheckboxGroupOption, ChunkType, type ChunkTypeWithLiterals, type ClientTime, type CodeBlockData, type CollapsibleListData, type ColorData, type Colors, ColumnSize, type ColumnSizeWithLiterals, ComponentType, type ComponentTypeWithLiterals, type ComponentsTags, type Condition, type ConditionNode, type ConditionNodeNodeOneOf, ConfirmationLevel, type ConfirmationLevelWithLiterals, ContactAutofill, type ContactAutofillWithLiterals, ContactField, type ContactFieldWithLiterals, type ContextMessage, type ContextMessageOptionsOneOf, type ConverseRequest, type ConverseRequestRequestOneOf, type ConverseResponse, type ConverseResponseResponseOneOf, type CorrectAnswersList, type CreateInteractiveFormSessionOptions, type CreateInteractiveFormSessionRequest, type CreateInteractiveFormSessionResponse, type CreateInteractiveFormSessionStreamedOptions, type CreateInteractiveFormSessionStreamedRequest, type CreateInteractiveFormSessionStreamedResponse, Crop, type CropWithLiterals, type CustomFieldInfo, type CustomOption, type CustomValue, type DataExtensionsDetails, type DateInput, type DatePicker, type DateRange, type DateTimeAdvancedConstraints, type DateTimeConstraints, type DateTimeInput, DayOfWeek, type DayOfWeekWithLiterals, type DebugDetails, type Decoration, type DecorationDataOneOf, DecorationType, type DecorationTypeWithLiterals, type DefaultCountryConfig, type DefaultCountryConfigOptionsOneOf, DefaultCountryConfigType, type DefaultCountryConfigTypeWithLiterals, type Design, DesignTarget, type DesignTargetWithLiterals, type DeveloperOptions, type Dimensions, Direction, type DirectionWithLiterals, type DisplayField, type DisplayFieldDisplayFieldTypeOptionsOneOf, DisplayFieldType, type DisplayFieldTypeWithLiterals, type DividerData, DividerDataAlignment, type DividerDataAlignmentWithLiterals, type DocumentStyle, type DomainEvent, type DomainEventBodyOneOf, type DonationInput, type DonationInputOption, type Dropdown, type DropdownOption, type DynamicPriceOptions, type EmailInfo, EmailInfoTag, type EmailInfoTagWithLiterals, type EmbedData, type EndOfResponseDetails, type EntityCreatedEvent, type EntityDeletedEvent, type EntityUpdatedEvent, type ErrorDetails, type EventData, type EventMetadata, type ExtendedFields, type Field, type FieldFieldTypeOptionsOneOf, type FieldGroup, type FieldOverride, type FieldOverridePropertyTypeOptionsOneOf, type FieldOverrides, FieldType, type FieldTypeWithLiterals, type FieldsOverrides, type FieldsSettings, type FileData, type FileSource, type FileSourceDataOneOf, type FileType, type FileUpload, type FileUploadDetails, FirstDayOfWeek, type FirstDayOfWeekWithLiterals, type FixedPayment, type FixedPriceOptions, type FontFamilyData, type FontSizeData, FontType, type FontTypeWithLiterals, type Form, type FormField, type FormFieldArrayType, type FormFieldBooleanType, type FormFieldContactInfo, type FormFieldContactInfoAdditionalInfoOneOf, type FormFieldContactInfoAddressInfo, FormFieldContactInfoContactField, type FormFieldContactInfoContactFieldWithLiterals, type FormFieldContactInfoCustomFieldInfo, type FormFieldContactInfoEmailInfo, FormFieldContactInfoEmailInfoTag, type FormFieldContactInfoEmailInfoTagWithLiterals, type FormFieldContactInfoPhoneInfo, FormFieldContactInfoPhoneInfoTag, type FormFieldContactInfoPhoneInfoTagWithLiterals, type FormFieldContactInfoSubscriptionInfo, type FormFieldNumberType, type FormFieldObjectType, type FormFieldStringType, type FormFieldStringTypeFormatOptionsOneOf, type FormLayout, type FormOverride, type FormProperties, type FormRule, Format, FormatEnumFormat, type FormatEnumFormatWithLiterals, type FormatWithLiterals, type FunctionCallOptions, type FunctionCallOutputOptions, type GIF, type GIFData, GIFType, type GIFTypeWithLiterals, type GalleryData, type GalleryOptions, type GalleryOptionsLayout, type GenerateFormSummaryApplicationErrors, type GenerateFormSummaryRequest, type GenerateFormSummaryResponse, type GetStateRequest, type GetStateResponse, type Gradient, GradientType, type GradientTypeWithLiterals, type Group, type HTMLData, type HTMLDataDataOneOf, type HeadingData, type Height, type HiddenOptions, type IdentificationData, type IdentificationDataIdOneOf, type Image, type ImageData, type ImageDataStyles, ImageFit, type ImageFitWithLiterals, ImagePosition, ImagePositionPosition, type ImagePositionPositionWithLiterals, type ImagePositionWithLiterals, ImageScalingScaling, type ImageScalingScalingWithLiterals, type ImageStyles, type ImportantTextDetails, type InPersonOptions, Indentation, type IndentationWithLiterals, InitialExpandedItems, type InitialExpandedItemsWithLiterals, type InputField, type InputFieldInputTypeOptionsOneOf, InputType, type InputTypeWithLiterals, type IntegerType, type InteractiveFormSession, type InteractiveFormSessionCreatedEnvelope, type InteractiveFormSessionResponseChunk, type InteractiveFormSessionResponseChunkOfOneOf, type Item, type ItemDataOneOf, type ItemLayout, type ItemLayoutItemOneOf, type ItemStyle, ItemType, type ItemTypeWithLiterals, Kind, type KindWithLiterals, Layout, type LayoutCellData, type LayoutData, type LayoutDataBackground, type LayoutDataBackgroundImage, LayoutDataBackgroundType, type LayoutDataBackgroundTypeWithLiterals, LayoutDataImagePosition, type LayoutDataImagePositionWithLiterals, LayoutType, type LayoutTypeWithLiterals, type LayoutWithLiterals, type LimitationRule, LineStyle, type LineStyleWithLiterals, type Link, type LinkData, type LinkDataOneOf, type LinkPreviewData, type LinkPreviewDataStyles, LinkTarget, type LinkTargetWithLiterals, ListStyle, type ListStyleWithLiterals, type ListValue, type Location, type LocationLocationInfoOneOf, type MapData, type MapSettings, MapType, type MapTypeWithLiterals, type Margin, type MeaningfulInput, type Media, type MediaItem, type MediaItemMediaOneOf, type MediaSettings, MeetingType, type MeetingTypeWithLiterals, type MentionData, type MessageEnvelope, type Metadata, type MultiSelectInputDetails, type MultilineAddress, type MultilineAddressValidation, type NestedForm, type NestedFormFieldOverrides, type NestedFormOverrides, type Node, type NodeDataOneOf, type NodeStyle, NodeType, type NodeTypeWithLiterals, NullValue, type NullValueWithLiterals, NumberComponentType, type NumberComponentTypeWithLiterals, type NumberCorrectAnswersList, type NumberErrorMessages, type NumberInput, type NumberInputDetails, NumberOfColumns, type NumberOfColumnsWithLiterals, type NumberQuizFieldSettings, type NumberRangeLimit, type NumberRangeLimitEndOneOf, type NumberType, type ObjectArray, ObjectArrayComponentType, type ObjectArrayComponentTypeOptionsOneOf, type ObjectArrayComponentTypeWithLiterals, type ObjectArrayType, type ObjectErrorMessages, type ObjectType, type ObjectTypePropertiesType, type ObjectTypePropertiesTypePropertiesTypeOneOf, type Oembed, Operator, type OperatorWithLiterals, OptInLevel, type OptInLevelWithLiterals, type Option, type OptionDesign, type OptionLayout, type OrCondition, type OrderedListData, Orientation, type OrientationWithLiterals, Origin, type OriginWithLiterals, type OutputInteractiveFormSessionStreamedRequest, type OutputInteractiveFormSessionStreamedResponse, OverrideEntityType, OverrideEntityTypeEnumOverrideEntityType, type OverrideEntityTypeEnumOverrideEntityTypeWithLiterals, type OverrideEntityTypeWithLiterals, type PDFSettings, type PageNavigationOptions, type ParagraphData, type PassFailMessages, type Password, type Payment, PaymentComponentType, type PaymentComponentTypeOptionsOneOf, type PaymentComponentTypeWithLiterals, type PaymentInput, type PaymentType, type Permissions, type PhoneConstraints, type PhoneInfo, PhoneInfoTag, type PhoneInfoTagWithLiterals, type PhoneInput, type PhoneOptions, Placement, type PlacementWithLiterals, type PlaybackOptions, type PluginContainerData, PluginContainerDataAlignment, type PluginContainerDataAlignmentWithLiterals, type PluginContainerDataWidth, type PluginContainerDataWidthDataOneOf, type Poll, type PollData, type PollDataLayout, type PollDesign, type PollDesignBackground, type PollDesignBackgroundBackgroundOneOf, PollDesignBackgroundType, type PollDesignBackgroundTypeWithLiterals, type PollLayout, PollLayoutDirection, type PollLayoutDirectionWithLiterals, PollLayoutType, type PollLayoutTypeWithLiterals, type PollOption, type PopupOptions, Position, type PositionWithLiterals, type PostSubmissionTriggers, type PredefinedValidation, type PredefinedValidationFormatOptionsOneOf, PriceType, type PriceTypeWithLiterals, type PricingData, type Product, type ProductCheckboxGroup, type ProductCheckboxGroupOption, type ProductPriceOptionsOneOf, ProductType, type ProductTypeWithLiterals, type PropertiesType, PropertiesTypeEnum, type PropertiesTypeEnumWithLiterals, type PropertiesTypePropertiesTypeOptionsOneOf, type QuantityLimit, type QuizFieldSettings, type QuizSettings, type QuizSettingsPassingCriteriaOneOf, type QuizSettingsResultsDisplayOptionsOneOf, type RadioGroup, type RadioGroupOption, type RatingInput, type RedirectOptions, type Rel, type RelayAssistantMessageRequest, type Repeater, type ReportConversationRequest, type ReportConversationResponse, RequiredIndicator, RequiredIndicatorPlacement, type RequiredIndicatorPlacementWithLiterals, type RequiredIndicatorProperties, type RequiredIndicatorWithLiterals, type RequiredOptions, Resizing, type ResizingWithLiterals, type Response, ResponsivenessBehaviour, type ResponsivenessBehaviourWithLiterals, type RestoreInfo, ResultsDisplay, type ResultsDisplayWithLiterals, type RibbonStyles, type RichContent, type RichContentOptions, Role, type RoleWithLiterals, type Rule, type RuleFormOverride, type RuleFormOverrideEntityTypeOptionsOneOf, Scaling, type ScalingWithLiterals, type Scheduling, SchedulingComponentType, type SchedulingComponentTypeOptionsOneOf, type SchedulingComponentTypeWithLiterals, type Section, type SendUserMessageApplicationErrors, type SendUserMessageOptions, type SendUserMessageRequest, type SendUserMessageResponse, type SendUserMessageStreamedApplicationErrors, type SendUserMessageStreamedOptions, type SendUserMessageStreamedRequest, type SendUserMessageStreamedResponse, type SeparatorDetails, type ServiceOption, type ServicesCheckboxGroup, type ServicesDropdown, type Settings, type ShapeData, type ShapeDataStyles, type Signature, type SignatureDetails, type SingleSelectInputDetails, type SmartBlockCellData, type SmartBlockData, SmartBlockDataType, type SmartBlockDataTypeWithLiterals, Source, type SourceWithLiterals, SpamFilterProtectionLevel, type SpamFilterProtectionLevelWithLiterals, type Spoiler, type SpoilerData, StaffStrategySelection, type StaffStrategySelectionWithLiterals, type Step, type Stop, StringComponentType, type StringComponentTypeWithLiterals, type StringCorrectAnswersList, type StringErrorMessages, type StringQuizFieldSettings, type StringType, type StringTypeDateTimeConstraints, StringTypeFormatEnumFormat, type StringTypeFormatEnumFormatWithLiterals, type StringTypeFormatOptionsOneOf, type StringTypePhoneConstraints, type StringTypeValidationMessages, Style, type StyleWithLiterals, type Styles, type StylesBorder, StylesPosition, type StylesPositionWithLiterals, SubmissionAccess, type SubmissionAccessWithLiterals, type SubmissionDetails, type SubmitSettings, type SubmitSettingsSubmitSuccessActionOptionsOneOf, SubmitSuccessAction, type SubmitSuccessActionWithLiterals, SubscriptionChannel, type SubscriptionChannelWithLiterals, type SubscriptionInfo, type TableCellData, type TableData, Tag, type TagList, type TagWithLiterals, type Tags, type TagsOption, Target, type TargetWithLiterals, TextAlignment, type TextAlignmentWithLiterals, type TextData, type TextDataDetails, type TextDetails, type TextInput, type TextNodeStyle, type TextStyle, type ThankYouMessageOptions, type Thumbnails, ThumbnailsAlignment, type ThumbnailsAlignmentWithLiterals, type TimeInput, type TocData, type Tool, Type, type TypeWithLiterals, UploadFileFormat, type UploadFileFormatWithLiterals, type UpsertContact, type Usage, type UsageRequest, type UserOptions, type V4FormFieldContactInfo, type V4FormFieldContactInfoAdditionalInfoOneOf, type Validation, ValidationFormat, type ValidationFormatWithLiterals, type ValidationMessages, type ValidationValidationOneOf, VerticalAlignment, VerticalAlignmentAlignment, type VerticalAlignmentAlignmentWithLiterals, type VerticalAlignmentWithLiterals, type Video, type VideoConferenceOptions, type VideoData, ViewMode, type ViewModeWithLiterals, ViewRole, type ViewRoleWithLiterals, VoteRole, type VoteRoleWithLiterals, WebhookIdentityType, type WebhookIdentityTypeWithLiterals, Width, WidthType, type WidthTypeWithLiterals, type WidthWithLiterals, type WixFile, WixFileComponentType, type WixFileComponentTypeOptionsOneOf, type WixFileComponentTypeWithLiterals, type _Array, type _ArrayComponentTypeOptionsOneOf, type _Boolean, type _BooleanComponentTypeOptionsOneOf, type _Number, type _NumberComponentTypeOptionsOneOf, type _Object, type _String, type _StringComponentTypeOptionsOneOf, createInteractiveFormSession, createInteractiveFormSessionStreamed, generateFormSummary, onInteractiveFormSessionCreated, sendUserMessage, sendUserMessageStreamed };