/** Form submission that was created or retrieved. */ export interface FormSubmission { /** * Submission ID. * @readonly */ _id?: string | null; /** ID of the form which the submission belongs to. */ formId?: string; /** * The app which the form submissions belong to. For example, the namespace for the Wix Forms app is `wix.form_app.form`. Call `Get Submission` to retrieve the namespace. * @readonly */ namespace?: string; /** Status of the submission. */ status?: SubmissionStatus; /** Submission values where `key` is the form field and `value` is the data submitted for the given field. */ submissions?: Record; /** Date and time the form submission was created. */ _createdDate?: Date | null; /** * Date and time the form submission was updated. * @readonly */ _updatedDate?: Date | null; /** * Revision number, which increments by 1 each time the form submission is updated. To prevent conflicting changes, the existing revision must be used when updating a form submission. * @readonly */ revision?: string | null; /** * ID of the visitor that submitted the form. * @readonly */ submitter?: Submitter; /** Whether a site owner marked a submission as "seen". */ seen?: boolean; /** Data extension object that holds users' and apps' fields. */ extendedFields?: ExtendedFields; /** * Order details.
* Note: This object is only applicable when submittng a form in the Wix Payments app. */ orderDetails?: OrderDetails; /** Contact ID of a site visitor who created the submission. */ contactId?: string | null; /** authorized viewer user id */ accessRestriction?: string | null; /** Tag ids collections associated with current entity. */ tags?: PublicTags; } export declare enum SubmissionStatus { UNKNOWN_SUBMISSION_STATUS = "UNKNOWN_SUBMISSION_STATUS", /** A submission is created, but has not yet been recorded in the Wix Forms collection. */ PENDING = "PENDING", /** A submission is recorded in the Wix Forms collection. */ CONFIRMED = "CONFIRMED", /** A form submission requiring payment is created. */ PAYMENT_WAITING = "PAYMENT_WAITING", /** An order of a form submission is canceled. */ PAYMENT_CANCELED = "PAYMENT_CANCELED" } export interface Submitter extends SubmitterSubmitterOneOf { /** Member ID. */ memberId?: string | null; /** Visitor ID. */ visitorId?: string | null; /** Application ID. */ applicationId?: string | null; /** User ID. */ userId?: string | null; } /** @oneof */ export interface SubmitterSubmitterOneOf { /** Member ID. */ memberId?: string | null; /** Visitor ID. */ visitorId?: string | null; /** Application ID. */ applicationId?: string | null; /** User ID. */ userId?: string | null; } export 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>; } export interface OrderDetails { /** * ID of the order related to submission (only applicable if a form has payments). * @readonly */ orderId?: string | null; /** * Order number. * @readonly */ number?: string | null; /** * Currency. * @readonly */ currency?: string | null; /** * Item subtotal. * @readonly */ itemSubtotal?: string; /** * ID of the checkout related to submission (only applicable if a form has payments). * @readonly */ checkoutId?: string; } export interface PublicTags { /** Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. */ tags?: TagList; } export interface TagList { /** List of tag IDs */ tagIds?: string[]; } export interface FormSubmissionStatusUpdatedEvent { /** Updated submission. */ submission?: FormSubmission; /** Previous status of the submission. */ previousStatus?: SubmissionStatus; } export interface RemovedSubmissionFromTrash { /** Removed submission. */ submission?: FormSubmission; } export interface SubmissionContactMapped { /** * Mapped upserted contact ID. * @readonly */ contactId?: string; /** Identifies the namespace that the submission's form belongs to. */ namespace?: string; /** Marketing subscription details */ marketingSubscriptionDetails?: MarketingSubscriptionDetails; } export interface MarketingSubscriptionDetails { /** Form id which was submitted */ formId?: string; /** Mapped contact emails. */ emails?: string[]; /** * Date and time the form submission was created. * @readonly */ submittedDate?: Date | null; /** * Subscription consent opt in level, either single or double confirmation. * Default: SINGLE_CONFIRMATION */ optInLevel?: OptInLevel; } export declare enum OptInLevel { /** Single confirmation. */ SINGLE_CONFIRMATION = "SINGLE_CONFIRMATION", /** Double confirmation. */ DOUBLE_CONFIRMATION = "DOUBLE_CONFIRMATION" } export interface SubmissionContactMappingSkipped { /** Form Id. */ formId?: string; /** Identifies the namespace that the submission's form belongs to. */ namespace?: string; /** * Contact ID resolved from the submission context. * @readonly */ contactId?: string | null; } export interface CreateCheckoutFromSubmissionRequest extends CreateCheckoutFromSubmissionRequestFormSchemaIdentifierOneOf { /** Submission's form. */ form?: Form; /** Submission to create checkout from. */ submission?: FormSubmission; } /** @oneof */ export interface CreateCheckoutFromSubmissionRequestFormSchemaIdentifierOneOf { /** Submission's form. */ form?: Form; } export interface Form { /** * Form ID. * @readonly */ _id?: string | null; /** * List of form fields that represent input elements. * @readonly */ fieldsV2?: FormFieldV2[]; /** Defines the layout for form fields in each submission step. */ steps?: Step[]; /** Form rules, can be applied to layout and items properties. */ rules?: FormRule[]; /** * Represents the current state of an item. Each time the item is modified, its `revision` changes. For an update operation to succeed, you MUST pass the latest revision. * @readonly */ revision?: string | null; /** * Date of creation. * @readonly */ _createdDate?: Date | null; /** * Date of last update. * @readonly */ _updatedDate?: Date | null; /** Properties of the form. */ properties?: FormProperties; /** * Fields which were soft deleted. * @readonly */ deletedFields?: FormField[]; /** * List of form fields that represent input elements. * @readonly */ deletedFieldsV2?: FormFieldV2[]; /** Data extensions ExtendedFields. */ extendedFields?: ExtendedFields; /** Identifies the namespace that the form belongs to. */ namespace?: string; /** * Media folder ID. * @readonly */ mediaFolderId?: string | null; /** Rules that limit submissions on this form. */ limitationRule?: LimitationRule; /** * Spam filter protection level. * Default: ADVANCED. */ spamFilterProtectionLevel?: SpamFilterProtectionLevel; /** Required indicator properties. */ requiredIndicatorProperties?: RequiredIndicatorProperties; /** Settings for actions to be taken after form submission. */ submitSettings?: SubmitSettings; /** Settings for field groups */ fieldGroups?: FieldGroup[]; /** Message shown when the form is disabled */ disabledFormMessage?: RichContent; /** * Identifies if the form is disabled. * Default true */ enabled?: boolean | null; } export declare enum RequiredIndicator { /** Unknown required indicator. */ UNKNOWN_INDICATOR = "UNKNOWN_INDICATOR", /** Asterisk (*). */ ASTERISK = "ASTERISK", /** Text (default: "Required"). */ TEXT = "TEXT", /** None. */ NONE = "NONE" } export declare enum RequiredIndicatorPlacement { /** Unknown required indicator placement. */ UNKNOWN_PLACEMENT = "UNKNOWN_PLACEMENT", /** After field title. */ AFTER_FIELD_TITLE = "AFTER_FIELD_TITLE", /** Before field title. */ BEFORE_FIELD_TITLE = "BEFORE_FIELD_TITLE" } export interface FormField { /** Item ID. */ _id?: string; /** Definition of a target where the value of field belongs. */ 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; } export interface StringType extends StringTypeFormatOptionsOneOf { /** DATE format options */ dateOptions?: DateTimeConstraints; /** DATE_TIME format options */ dateTimeOptions?: DateTimeConstraints; /** TIME format options */ timeOptions?: DateTimeConstraints; /** DATE_OPTIONAL_TIME format options */ dateOptionalTimeOptions?: DateTimeConstraints; /** PHONE format options */ phoneOptions?: PhoneConstraints; /** Minimum length. */ minLength?: number | null; /** Maximum length. */ maxLength?: number | null; /** Pattern for a regular expression match. */ pattern?: string | null; /** Format of a string. */ format?: FormatEnumFormat; /** Custom error messages when validation fails. */ errorMessages?: StringErrorMessages; /** List of allowed values. */ enum?: string[] | null; } /** @oneof */ export interface StringTypeFormatOptionsOneOf { /** DATE format options */ dateOptions?: DateTimeConstraints; /** DATE_TIME format options */ dateTimeOptions?: DateTimeConstraints; /** TIME format options */ timeOptions?: DateTimeConstraints; /** DATE_OPTIONAL_TIME format options */ dateOptionalTimeOptions?: DateTimeConstraints; /** PHONE format options */ phoneOptions?: PhoneConstraints; } export declare enum FormatEnumFormat { 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" } export interface StringErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export interface DateTimeConstraints { /** * 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]) */ 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]) */ maximum?: string | null; } export interface PhoneConstraints { /** Country codes for phone number that are allowed */ allowedCountryCodes?: string[]; } export interface NumberType { /** 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. */ enum?: number[] | null; } export interface NumberErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export 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. */ enum?: number[] | null; } export interface BooleanType { /** Custom error message when validation fails. */ errorMessages?: BooleanErrorMessages; /** List of allowed values. */ enum?: boolean[]; } export interface BooleanErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export interface ArrayType { /** Maximum amount of array elements. */ maxItems?: number | null; /** Minimum amount of array elements. */ minItems?: number | null; /** Type of items allowed in array. */ items?: ArrayItems; /** Custom error message when validation fails. */ errorMessages?: ArrayErrorMessages; } export interface ObjectType { /** Description of object properties. */ properties?: Record; /** Custom error message when validation fails. */ errorMessages?: ObjectErrorMessages; } export interface PropertiesType extends PropertiesTypePropertiesTypeOneOf { /** String type validation for property. */ string?: StringType; /** Number type validation for property. */ number?: NumberType; /** Boolean type validation for property. */ boolean?: BooleanType; /** Integer type validation for property. */ integer?: IntegerType; /** Array type validation for property. */ array?: ArrayType; /** Whether the property is required. */ required?: boolean; } /** @oneof */ export interface PropertiesTypePropertiesTypeOneOf { /** String type validation for property. */ string?: StringType; /** Number type validation for property. */ number?: NumberType; /** Boolean type validation for property. */ boolean?: BooleanType; /** Integer type validation for property. */ integer?: IntegerType; /** Array type validation for property. */ array?: ArrayType; } export interface ObjectErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export interface ArrayItems extends ArrayItemsItemsOneOf { /** String type validation for items. */ string?: StringType; /** Number type validation for items. */ number?: NumberType; /** Boolean type validation for items. */ boolean?: BooleanType; /** Integer type validation for items. */ integer?: IntegerType; /** Object type validation for items */ object?: ObjectType; } /** @oneof */ export interface ArrayItemsItemsOneOf { /** String type validation for items. */ string?: StringType; /** Number type validation for items. */ number?: NumberType; /** Boolean type validation for items. */ boolean?: BooleanType; /** Integer type validation for items. */ integer?: IntegerType; /** Object type validation for items */ object?: ObjectType; } export interface ArrayErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export interface PredefinedValidation extends PredefinedValidationFormatOptionsOneOf { /** Payment input field. */ paymentOptions?: PaymentType; /** Multiline address validation. */ multilineAddressOptions?: MultilineAddressValidation; /** Format of predefined validation. */ format?: ValidationFormat; } /** @oneof */ export interface PredefinedValidationFormatOptionsOneOf { /** Payment input field. */ paymentOptions?: PaymentType; /** Multiline address validation. */ multilineAddressOptions?: MultilineAddressValidation; } export 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" } export interface PaymentType { /** Field mapped to products. */ products?: Product[]; /** Minimum amount of different products. */ minItems?: number | null; /** Maximum amount of different products. */ maxItems?: number | null; } export declare enum ProductType { /** Unknown product type. */ UNKNOWN = "UNKNOWN", /** Shippable (physical) product. */ SHIPPABLE = "SHIPPABLE", /** Digital product. */ DIGITAL = "DIGITAL" } export declare enum PriceType { /** Unknown price type. */ UNKNOWN = "UNKNOWN", /** Fixed price. */ FIXED_PRICE = "FIXED_PRICE", /** Dynamic price from price range. */ DYNAMIC_PRICE = "DYNAMIC_PRICE" } export interface QuantityLimit { /** Minimum quantity. */ minimum?: number | null; /** Maximum quantity. */ maximum?: number | null; } export interface FixedPriceOptions { /** Fixed price monetary amount. Decimal string with a period as a decimal separator (e.g., 3.99). */ price?: string; } export interface DynamicPriceOptions { /** Minimal price monetary amount. */ minPrice?: string; /** Maximal price monetary amount. */ maxPrice?: string | null; } export interface Product extends ProductPriceOptionsOneOf { /** Fixed price options. */ fixedPriceOptions?: FixedPriceOptions; /** Dynamic price options. */ dynamicPriceOptions?: DynamicPriceOptions; /** * Product ID. * @readonly */ _id?: string; /** Product type. */ productType?: ProductType; /** Price type. */ priceType?: PriceType; /** Quantity limit. */ quantityLimit?: QuantityLimit; } /** @oneof */ export interface ProductPriceOptionsOneOf { /** Fixed price options. */ fixedPriceOptions?: FixedPriceOptions; /** Dynamic price options. */ dynamicPriceOptions?: DynamicPriceOptions; } export interface MultilineAddressValidation { /** Allowed countries. No countries treated as all. */ allowedCountries?: string[]; /** Fields overrides. */ fields?: FieldsOverrides; } export interface FieldOverrides { /** Whether the field is required. */ required?: boolean; } export interface FieldsOverrides { /** Subdivision. */ subdivision?: FieldOverrides; /** City. */ city?: FieldOverrides; /** Postal code. */ postalCode?: FieldOverrides; /** Street name. */ streetName?: FieldOverrides; /** Street number. */ streetNumber?: FieldOverrides; /** Address line. */ addressLine?: FieldOverrides; /** Address line 2. */ addressLine2?: FieldOverrides; /** Country. */ country?: FieldOverrides; } export 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; } export interface Validation extends ValidationValidationOneOf { /** Validation of string type. */ string?: StringType; /** Validation of number type. */ number?: NumberType; /** Validation of integer type. */ integer?: IntegerType; /** Validation of boolean type. */ boolean?: BooleanType; /** Validation of array type. */ array?: ArrayType; /** Validation of object type. */ object?: ObjectType; /** Predefined validation of specific format */ predefined?: PredefinedValidation; /** Whether the field is required. */ required?: boolean; } /** @oneof */ export interface ValidationValidationOneOf { /** Validation of string type. */ string?: StringType; /** Validation of number type. */ number?: NumberType; /** Validation of integer type. */ integer?: IntegerType; /** Validation of boolean type. */ boolean?: BooleanType; /** Validation of array type. */ array?: ArrayType; /** Validation of object type. */ object?: ObjectType; /** Predefined validation of specific format */ predefined?: PredefinedValidation; } export interface DataExtensionsDetails { /** FQDNS which can be extended with this field */ fqdns?: string[]; } export interface NestedFormOverrides { /** Field overrides by field ID */ fieldOverrides?: Record; } export interface FormFieldV2 extends FormFieldV2FieldTypeOptionsOneOf { /** Field accept input of data */ inputOptions?: InputField; /** Field for displaying information such as header or text paragraph */ displayOptions?: DisplayField; /** Field id. */ _id?: string; /** * Whether the field is hidden. * Default: false */ hidden?: boolean; /** * Type of the field * @readonly */ fieldType?: FieldType; } /** @oneof */ export interface FormFieldV2FieldTypeOptionsOneOf { /** Field accept input of data */ inputOptions?: InputField; /** Field for displaying information such as header or text paragraph */ displayOptions?: DisplayField; } export interface InputFieldStringType extends InputFieldStringTypeFormatOptionsOneOf { /** DATE format options */ dateOptions?: StringTypeDateTimeConstraints; /** 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. */ minLength?: number | null; /** Maximum length. */ maxLength?: number | null; /** Pattern for a regular expression match. */ pattern?: string | null; /** Format of a string. */ format?: StringTypeFormatEnumFormat; /** Custom error messages when validation fails. */ errorMessages?: InputFieldStringErrorMessages; /** List of allowed values. */ enum?: string[] | null; } /** @oneof */ export interface InputFieldStringTypeFormatOptionsOneOf { /** DATE format options */ dateOptions?: StringTypeDateTimeConstraints; /** DATE_TIME format options */ dateTimeOptions?: StringTypeDateTimeConstraints; /** TIME format options */ timeOptions?: StringTypeDateTimeConstraints; /** DATE_OPTIONAL_TIME format options */ dateOptionalTimeOptions?: StringTypeDateTimeConstraints; /** PHONE format options */ phoneOptions?: StringTypePhoneConstraints; } export 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" } export interface InputFieldStringErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export 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]) */ 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]) */ maximum?: string | null; } export interface StringTypePhoneConstraints { /** Country codes for phone number that are allowed */ allowedCountryCodes?: string[]; } export declare enum StringComponentType { UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", TEXT_INPUT = "TEXT_INPUT", RADIO_GROUP = "RADIO_GROUP", DROPDOWN = "DROPDOWN", DATE_TIME = "DATE_TIME", PHONE_INPUT = "PHONE_INPUT", DATE_INPUT = "DATE_INPUT", TIME_INPUT = "TIME_INPUT", DATE_PICKER = "DATE_PICKER" } export interface TextInput { /** Label of the field */ label?: string | null; /** Description of the field */ description?: RichContent; /** Placeholder for the value input */ placeholder?: string | null; /** * Flag identifying to hide or not label * Default: true */ showLabel?: boolean | null; /** Default value for the text input */ default?: string | null; } export 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; } export 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; /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */ layoutCellData?: LayoutCellData; /** 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?: NodeType; /** Node ID. */ _id?: string; /** A list of child nodes. */ nodes?: Node[]; /** Padding and background color styling for the node. */ style?: NodeStyle; } /** @oneof */ export 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; /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */ layoutCellData?: LayoutCellData; } export 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" } export 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; } export interface ButtonData { /** Styling for the button's container. */ containerData?: PluginContainerData; /** The button type. */ type?: ButtonDataType; /** Styling for the button. */ styles?: Styles; /** The text to display on the button. */ text?: string | null; /** Button link details. */ link?: Link; } export interface Border { /** Border width in pixels. */ width?: number | null; /** Border radius in pixels. */ radius?: number | null; } export interface Colors { /** The text color as a hexadecimal value. */ text?: string | null; /** The border color as a hexadecimal value. */ border?: string | null; /** The background color as a hexadecimal value. */ background?: string | null; } export interface PluginContainerData { /** The width of the node when it's displayed. */ width?: PluginContainerDataWidth; /** The node's alignment within its container. */ alignment?: PluginContainerDataAlignment; /** 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; } export 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" } export 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?: WidthType; /** A custom width value in pixels. */ custom?: string | null; } /** @oneof */ export 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?: WidthType; /** A custom width value in pixels. */ custom?: string | null; } export declare enum PluginContainerDataAlignment { /** Center Alignment */ CENTER = "CENTER", /** Left Alignment */ LEFT = "LEFT", /** Right Alignment */ RIGHT = "RIGHT" } export 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; } export interface Height { /** A custom height value in pixels. */ custom?: string | null; } export declare enum ButtonDataType { /** Regular link button */ LINK = "LINK", /** Triggers custom action that is defined in plugin configuration by the consumer */ ACTION = "ACTION" } export interface Styles { /** Border attributes. */ border?: Border; /** Color attributes. */ colors?: Colors; } export 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?: LinkTarget; /** 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 */ export 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; } export 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" } export 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; } export interface CodeBlockData { /** Styling for the code block's text. */ textStyle?: TextStyle; } export interface TextStyle { /** Text alignment. Defaults to `AUTO`. */ textAlignment?: TextAlignment; /** 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; } export 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" } export interface DividerData { /** Styling for the divider's container. */ containerData?: PluginContainerData; /** Divider line style. */ lineStyle?: LineStyle; /** Divider width. */ width?: Width; /** Divider alignment. */ alignment?: Alignment; } export declare enum LineStyle { /** Single Line */ SINGLE = "SINGLE", /** Double Line */ DOUBLE = "DOUBLE", /** Dashed Line */ DASHED = "DASHED", /** Dotted Line */ DOTTED = "DOTTED" } export declare enum Width { /** Large line */ LARGE = "LARGE", /** Medium line */ MEDIUM = "MEDIUM", /** Small line */ SMALL = "SMALL" } export declare enum Alignment { /** Center alignment */ CENTER = "CENTER", /** Left alignment */ LEFT = "LEFT", /** Right alignment */ RIGHT = "RIGHT" } export 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; } export declare enum ViewMode { /** No PDF view */ NONE = "NONE", /** Full PDF view */ FULL = "FULL", /** Mini PDF view */ MINI = "MINI" } export 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 */ export 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; } export 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?: ViewMode; /** 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; } export 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; } export 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; } export interface Image { /** Image file details. */ media?: Media; /** Link details for images that are links. */ link?: Link; } export interface Video { /** Video file details. */ media?: Media; /** Video thumbnail file details. */ thumbnail?: Media; } export 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 */ export interface ItemDataOneOf { /** An image item. */ image?: Image; /** A video item. */ video?: Video; } export interface GalleryOptions { /** Gallery layout. */ layout?: Layout; /** Styling for gallery items. */ item?: ItemStyle; /** Styling for gallery thumbnail images. */ thumbnails?: Thumbnails; } export 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" } export declare enum Orientation { /** Rows Orientation */ ROWS = "ROWS", /** Columns Orientation */ COLUMNS = "COLUMNS" } export declare enum Crop { /** Crop to fill */ FILL = "FILL", /** Crop to fit */ FIT = "FIT" } export declare enum ThumbnailsAlignment { /** Top alignment */ TOP = "TOP", /** Right alignment */ RIGHT = "RIGHT", /** Bottom alignment */ BOTTOM = "BOTTOM", /** Left alignment */ LEFT = "LEFT", /** No thumbnail */ NONE = "NONE" } export interface Layout { /** Gallery layout type. */ type?: LayoutType; /** 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?: Orientation; /** 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; } export 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?: Crop; /** The spacing between items in pixels. */ spacing?: number | null; } export interface Thumbnails { /** Thumbnail alignment. */ placement?: ThumbnailsAlignment; /** Spacing between thumbnails in pixels. */ spacing?: number | null; } export 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; } export interface GIF { /** GIF format URL. */ gif?: string | null; /** MP4 format URL. */ mp4?: string | null; /** Thumbnail URL. */ still?: string | null; } export interface HeadingData { /** Heading level from 1-6. */ level?: number; /** Styling for the heading text. */ textStyle?: TextStyle; /** Indentation level from 1-4. */ indentation?: number | null; } export 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; /** Styling for the HTML node's container. */ containerData?: PluginContainerData; /** The type of HTML code. */ source?: Source; } /** @oneof */ export 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; } export declare enum Source { HTML = "HTML", ADSENSE = "ADSENSE" } export 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; } export 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; } export interface MapData { /** Styling for the map's container. */ containerData?: PluginContainerData; /** Map settings. */ mapSettings?: MapSettings; } export 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?: MapType; } export declare enum MapType { /** Roadmap map type */ ROADMAP = "ROADMAP", /** Satellite map type */ SATELITE = "SATELITE", /** Hybrid map type */ HYBRID = "HYBRID", /** Terrain map type */ TERRAIN = "TERRAIN" } export interface ParagraphData { /** Styling for the paragraph text. */ textStyle?: TextStyle; /** Indentation level from 1-4. */ indentation?: number | null; /** Paragraph level */ level?: number | null; } export 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; } export 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" } export declare enum VoteRole { /** Logged in member */ SITE_MEMBERS = "SITE_MEMBERS", /** Anyone */ ALL = "ALL" } export interface Permissions { /** Sets who can view the poll results. */ view?: ViewRole; /** Sets who can vote. */ vote?: VoteRole; /** Sets whether one voter can vote multiple times. Defaults to `false`. */ allowMultipleVotes?: boolean | null; } export interface PollOption { /** Option ID. */ _id?: string | null; /** Option title. */ title?: string | null; /** The image displayed with the option. */ image?: Media; } export 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; } export declare enum PollLayoutType { /** List */ LIST = "LIST", /** Grid */ GRID = "GRID" } export declare enum PollLayoutDirection { /** Left-to-right */ LTR = "LTR", /** Right-to-left */ RTL = "RTL" } export interface PollLayout { /** The layout for displaying the voting options. */ type?: PollLayoutType; /** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */ direction?: PollLayoutDirection; /** Sets whether to display the main poll image. Defaults to `false`. */ enableImage?: boolean | null; } export interface OptionLayout { /** Sets whether to display option images. Defaults to `false`. */ enableImage?: boolean | null; } export declare enum BackgroundType { /** Color background type */ COLOR = "COLOR", /** Image background type */ IMAGE = "IMAGE", /** Gradiant background type */ GRADIENT = "GRADIENT" } export interface Gradient { /** The gradient angle in degrees. */ angle?: number | null; /** The start color as a hexademical value. */ startColor?: string | null; /** The end color as a hexademical value. */ lastColor?: string | null; } export interface Background extends BackgroundBackgroundOneOf { /** The background color as a hexademical value. */ color?: string | null; /** An image to use for the background. */ image?: Media; /** Details for a gradient background. */ gradient?: Gradient; /** Background type. For each option, include the relevant details. */ type?: BackgroundType; } /** @oneof */ export interface BackgroundBackgroundOneOf { /** The background color as a hexademical value. */ color?: string | null; /** An image to use for the background. */ image?: Media; /** Details for a gradient background. */ gradient?: Gradient; } export interface PollDesign { /** Background styling. */ background?: Background; /** Border radius in pixels. */ borderRadius?: number | null; } export interface OptionDesign { /** Border radius in pixels. */ borderRadius?: number | null; } export 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; } export interface PollDataLayout { /** Poll layout settings. */ poll?: PollLayout; /** Voting otpions layout settings. */ options?: OptionLayout; } export interface Design { /** Styling for the poll. */ poll?: PollDesign; /** Styling for voting options. */ options?: OptionDesign; } export interface TextData { /** The text to apply decorations to. */ text?: string; /** The decorations to apply. */ decorations?: Decoration[]; } /** Adds appearence changes to text */ export 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; /** The type of decoration to apply. */ type?: DecorationType; } /** @oneof */ export 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; } export 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" } export interface AnchorData { /** The target node's ID. */ anchor?: string; } export 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; } export interface LinkData { /** Link details. */ link?: Link; } export 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; } export interface FontSizeData { /** The units used for the font size. */ unit?: FontType; /** Font size value. */ value?: number | null; } export declare enum FontType { PX = "PX", EM = "EM" } export interface SpoilerData { /** Spoiler ID. */ _id?: string | null; } export 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?: AppType; /** 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; } /** @oneof */ export interface AppEmbedDataAppDataOneOf { /** Data for embedded Wix Bookings content. */ bookingData?: BookingData; /** Data for embedded Wix Events content. */ eventData?: EventData; } export declare enum AppType { PRODUCT = "PRODUCT", EVENT = "EVENT", BOOKING = "BOOKING" } export interface BookingData { /** Booking duration in minutes. */ durations?: string | null; } export interface EventData { /** Event schedule. */ scheduling?: string | null; /** Event location. */ location?: string | null; } export 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; } export 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; } export 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; } export 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; } export 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?: InitialExpandedItems; /** The direction of the text in the list. Either left-to-right or right-to-left. */ direction?: Direction; /** If `true`, The collapsible item will appear in search results as an FAQ. */ isQapageData?: boolean | null; } export declare enum InitialExpandedItems { /** First item will be expended initally */ FIRST = "FIRST", /** All items will expended initally */ ALL = "ALL", /** All items collapsed initally */ NONE = "NONE" } export declare enum Direction { /** Left-to-right */ LTR = "LTR", /** Right-to-left */ RTL = "RTL" } export 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; } export 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[]; } export interface TableCellData { /** Styling for the cell's background color and text alignment. */ cellStyle?: CellStyle; /** The cell's border colors. */ borderColors?: BorderColors; } export declare enum VerticalAlignment { /** Top alignment */ TOP = "TOP", /** Middle alignment */ MIDDLE = "MIDDLE", /** Bottom alignment */ BOTTOM = "BOTTOM" } export interface CellStyle { /** Vertical alignment for the cell's text. */ verticalAlignment?: VerticalAlignment; /** Cell background color as a hexadecimal value. */ backgroundColor?: string | null; } export interface BorderColors { /** Left border color as a hexadecimal value. */ left?: string | null; /** Right border color as a hexadecimal value. */ right?: string | null; /** Top border color as a hexadecimal value. */ top?: string | null; /** Bottom border color as a hexadecimal value. */ bottom?: string | null; } /** * `NullValue` is a singleton enumeration to represent the null value for the * `Value` type union. * * The JSON representation for `NullValue` is JSON `null`. */ export declare enum NullValue { /** Null value. */ NULL_VALUE = "NULL_VALUE" } /** * `ListValue` is a wrapper around a repeated field of values. * * The JSON representation for `ListValue` is JSON array. */ export interface ListValue { /** Repeated field of dynamically typed values. */ values?: any[]; } export 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; } export interface OrderedListData { /** Indentation level from 0-4. */ indentation?: number; /** Offset level from 0-4. */ offset?: number | null; /** List start number. */ start?: number | null; } export interface BulletedListData { /** Indentation level from 0-4. */ indentation?: number; /** Offset level from 0-4. */ offset?: number | null; } export interface BlockquoteData { /** Indentation level from 1-4. */ indentation?: number; } export interface CaptionData { textStyle?: TextStyle; } export interface LayoutCellData { /** Size of the cell in 12 columns grid. */ colSpan?: number | null; } export 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; } export 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; } export 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; } export interface RadioGroup { /** Label of the field */ label?: string | null; /** Description of the field */ description?: RichContent; /** * Flag identifying to show option allowing input custom value * List of options to select from */ options?: RadioGroupOption[]; /** * 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?: RadioGroupCustomOption; /** * Specifies the number of columns used to display the selections within the component. * Default: ONE */ numberOfColumns?: NumberOfColumns; } export interface RadioGroupOption { /** Selectable option label */ label?: string | null; /** Selectable option value, which is saved to DB. */ value?: string | null; /** Flag identifying that option should be selected by default */ default?: boolean; /** Option id. Used as binding for translations */ _id?: string; } export interface RadioGroupCustomOption { /** Label of custom option input */ label?: string | null; /** Placeholder of custom option input */ placeholder?: string | null; } export declare enum NumberOfColumns { /** Undefined number of columns. */ UNKNOWN = "UNKNOWN", /** Zero columns. */ ZERO = "ZERO", /** One column. */ ONE = "ONE", /** Two columns. */ TWO = "TWO", /** Three columns. */ THREE = "THREE" } export interface Dropdown { /** Label of the field */ label?: string | null; /** Description of the field */ description?: RichContent; /** List of options to select from */ options?: DropdownOption[]; /** * 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?: DropdownCustomOption; /** Placeholder of dropdown input */ placeholder?: string | null; } export interface DropdownOption { /** Selectable option label */ label?: string | null; /** Selectable option value, which is saved to DB. */ value?: string | null; /** Flag identifying that option should be selected by default */ default?: boolean; /** Option id. Used as binding for translations */ _id?: string; } export interface DropdownCustomOption { /** Label of custom option input */ label?: string | null; /** Placeholder of custom option input */ placeholder?: string | null; } export interface DateTimeInput { /** Label of the field. Displayed text for the date/time input. */ label?: string | null; /** Description of the field. Additional information about the date/time input. */ description?: RichContent; /** * Flag identifying whether to show or hide the label. * Default: true */ showLabel?: boolean | null; /** * Flag identifying whether to show or hide the placeholder. * Default: true */ showPlaceholder?: boolean | null; /** * Flag indicating whether to use the 24-hour time format. * Default: false. */ use24HourFormat?: boolean; /** Default value for the date time input. */ default?: string | null; } export interface PhoneInput { /** Label of the field */ label?: string | null; /** Description of the field */ description?: RichContent; /** Placeholder for the value input */ placeholder?: string | null; /** * Flag identifying to show label or not * Default: true */ showLabel?: boolean | null; /** Default value of the country code */ defaultCountryCode?: string | null; /** * Flag identifying to show country flag or not * Default: false */ showCountryFlag?: boolean; } export interface DateInput { /** Label of the field. Displayed text for the date/time input. */ label?: string | null; /** Description of the field. Additional information about the date/time input. */ description?: RichContent; /** * Flag identifying whether to show or hide the label. * Default: true */ showLabel?: boolean | null; /** * Flag identifying whether to show or hide the placeholder. * Default: true */ showPlaceholder?: boolean | null; /** Default value for the date input. */ default?: string | null; } export interface TimeInput { /** Label of the field. Displayed text for the date/time input. */ label?: string | null; /** Description of the field. Additional information about the date/time input. */ description?: RichContent; /** * Flag identifying whether to show or hide the label. * Default: true */ showLabel?: boolean | null; /** * Flag identifying whether to show or hide the placeholder. * Default: true */ showPlaceholder?: boolean | null; /** * Flag indicating whether to use the 24-hour time format. * Default: false. */ use24HourFormat?: boolean; /** Default value for the time input. */ default?: string | null; } export interface DatePicker { /** Label of the field. Displayed text for the date/time input. */ label?: string | null; /** Description of the field. Additional information about the date/time input. */ description?: RichContent; /** * Flag identifying whether to show or hide the label. * Default: true */ showLabel?: boolean | null; /** Placeholder of date picker input */ placeholder?: string | null; /** First day of the week displayed on date picker. */ firstDayOfWeek?: FirstDayOfWeek; /** Default value for the date picker. */ default?: string | null; } export declare enum FirstDayOfWeek { /** First day of the week is Monday. */ MONDAY = "MONDAY", /** First day of the week is Sunday. */ SUNDAY = "SUNDAY" } export interface InputFieldNumberType { /** 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?: InputFieldNumberErrorMessages; /** List of allowed values. */ enum?: number[] | null; } export interface InputFieldNumberErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export declare enum NumberComponentType { UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", NUMBER_INPUT = "NUMBER_INPUT", RATING_INPUT = "RATING_INPUT" } export interface NumberInput { /** Label of the field */ label?: string | null; /** Description of the field */ description?: RichContent; /** Placeholder for the value input */ placeholder?: string | null; /** * Flag identifying to hide or not label * Default: true */ showLabel?: boolean | null; /** Default value for the number input */ default?: number | null; } export interface RatingInput { /** Label of the field */ label?: string | null; /** Description of the field */ description?: RichContent; /** * Flag identifying to hide label or not * Default: true */ showLabel?: boolean | null; /** Default rating */ defaultValue?: number | null; } export interface InputFieldBooleanType { /** Custom error message when validation fails. */ errorMessages?: InputFieldBooleanErrorMessages; /** List of allowed values. */ enum?: boolean[]; } export interface InputFieldBooleanErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export declare enum BooleanComponentType { UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", CHECKBOX = "CHECKBOX" } export interface Checkbox { /** Label of the field */ label?: RichContent; /** * Flag identifying if checked by default * Default: false */ checked?: boolean; } export interface InputFieldArrayType { /** Maximum amount of array elements. */ maxItems?: number | null; /** Minimum amount of array elements. */ minItems?: number | null; /** Type of items allowed in array. */ items?: ArrayTypeArrayItems; /** Custom error message when validation fails. */ errorMessages?: InputFieldArrayErrorMessages; } export declare enum ItemType { UNKNOWN_ITEM_TYPE = "UNKNOWN_ITEM_TYPE", STRING = "STRING", NUMBER = "NUMBER", BOOLEAN = "BOOLEAN", INTEGER = "INTEGER", OBJECT = "OBJECT" } export interface InputFieldIntegerType { /** Maximum value. */ maximum?: number | null; /** Minimum value. */ minimum?: number | null; /** Multiple of value. */ multipleOf?: number | null; /** Custom error message when validation fails. */ errorMessages?: InputFieldNumberErrorMessages; /** List of allowed values. */ enum?: number[] | null; } export interface InputFieldObjectType { /** Description of object properties. */ properties?: Record; /** Custom error message when validation fails. */ errorMessages?: InputFieldObjectErrorMessages; } export declare enum PropertiesTypeEnum { UNKNOWN = "UNKNOWN", STRING = "STRING", NUMBER = "NUMBER", BOOLEAN = "BOOLEAN", INTEGER = "INTEGER", ARRAY = "ARRAY" } export interface ObjectTypePropertiesType extends ObjectTypePropertiesTypePropertiesTypeOptionsOneOf { /** String type validation for property. */ stringOptions?: InputFieldStringType; /** Number type validation for property. */ numberOptions?: InputFieldNumberType; /** Boolean type validation for property. */ booleanOptions?: InputFieldBooleanType; /** Integer type validation for property. */ integerOptions?: InputFieldIntegerType; /** Array type validation for property. */ arrayOptions?: InputFieldArrayType; /** * Type of object properties * @readonly */ propertiesType?: PropertiesTypeEnum; /** Whether the property is required. */ required?: boolean; } /** @oneof */ export interface ObjectTypePropertiesTypePropertiesTypeOptionsOneOf { /** String type validation for property. */ stringOptions?: InputFieldStringType; /** Number type validation for property. */ numberOptions?: InputFieldNumberType; /** Boolean type validation for property. */ booleanOptions?: InputFieldBooleanType; /** Integer type validation for property. */ integerOptions?: InputFieldIntegerType; /** Array type validation for property. */ arrayOptions?: InputFieldArrayType; } export interface InputFieldObjectErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export interface ArrayTypeArrayItems extends ArrayTypeArrayItemsItemTypeOptionsOneOf { /** String type validation for items. */ stringOptions?: InputFieldStringType; /** Number type validation for items. */ numberOptions?: InputFieldNumberType; /** Boolean type validation for items. */ booleanOptions?: InputFieldBooleanType; /** Integer type validation for items. */ integerOptions?: InputFieldIntegerType; /** Object type validation for items */ objectOptions?: InputFieldObjectType; /** * Type of array items * @readonly */ itemType?: ItemType; } /** @oneof */ export interface ArrayTypeArrayItemsItemTypeOptionsOneOf { /** String type validation for items. */ stringOptions?: InputFieldStringType; /** Number type validation for items. */ numberOptions?: InputFieldNumberType; /** Boolean type validation for items. */ booleanOptions?: InputFieldBooleanType; /** Integer type validation for items. */ integerOptions?: InputFieldIntegerType; /** Object type validation for items */ objectOptions?: InputFieldObjectType; } export interface InputFieldArrayErrorMessages { /** Default error message on invalid validation. */ default?: string | null; } export declare enum ComponentType { UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", CHECKBOX_GROUP = "CHECKBOX_GROUP", TAGS = "TAGS" } export interface CheckboxGroup { /** Label of the field */ label?: string | null; /** Description of the field */ description?: RichContent; /** List of options to select from */ options?: Option[]; /** * 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?: NumberOfColumns; } export interface MediaItem extends MediaItemMediaOneOf { /** WixMedia image. */ image?: string; } /** @oneof */ export interface MediaItemMediaOneOf { /** WixMedia image. */ image?: string; } export interface Option { /** Selectable option label */ label?: string | null; /** Selectable option value, which is saved to DB. */ value?: any; /** Flag identifying that option should be selected by default */ default?: boolean; /** Option id. Used as binding for translations */ _id?: string; /** Media item. Media, associated with option, like image. */ media?: MediaItem; } export interface CustomOption { /** Label of custom option input */ label?: string | null; /** Placeholder of custom option input */ placeholder?: string | null; } export interface Tags { /** Label of the field */ label?: string | null; /** Description of the field */ description?: RichContent; /** List of options to select from */ options?: TagsOption[]; /** * 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?: CommonCustomOption; /** * Specifies the number of columns used to display the selections within the component. * Default: ONE */ numberOfColumns?: NumberOfColumns; } export interface TagsOption { /** Selectable option label */ label?: string | null; /** Selectable option value, which is saved to DB. */ value?: any; /** Flag identifying that option should be selected by default */ default?: boolean; /** Option id. Used as binding for translations */ _id?: string; /** Media item. Media, associated with option, like image. */ media?: MediaItem; } export interface CommonCustomOption { /** Label of custom option input */ label?: string | null; /** Placeholder of custom option input */ placeholder?: string | null; } export declare enum WixFileComponentType { UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", FILE_UPLOAD = "FILE_UPLOAD", SIGNATURE = "SIGNATURE" } export interface FileUpload { /** Selectable option label */ label?: string | null; /** Description of the field */ description?: RichContent; /** * Flag identifying to hide or not label * Default: true */ showLabel?: boolean | null; /** Text on upload button */ buttonText?: string | null; /** Amount of files allowed to upload */ fileLimit?: number; /** Supported file formats for upload */ uploadFileFormats?: UploadFileFormat[]; /** Custom text which appears when file is uploaded, if missing file name will be shown */ explanationText?: string | null; } export declare enum UploadFileFormat { /** Undefined upload file format. */ UNDEFINED = "UNDEFINED", /** Video files. */ VIDEO = "VIDEO", /** Image files. */ IMAGE = "IMAGE", /** Audio files. */ AUDIO = "AUDIO", /** Document files. */ DOCUMENT = "DOCUMENT", /** Archive files. */ ARCHIVE = "ARCHIVE" } export interface Signature { /** Selectable option label */ label?: string | null; /** * Flag identifying to hide label or not * Default: true */ showLabel?: boolean | null; /** Description of the field */ description?: RichContent; /** Is image upload enabled */ imageUploadEnabled?: boolean; } export declare enum PaymentComponentType { UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", CHECKBOX_GROUP = "CHECKBOX_GROUP", DONATION_INPUT = "DONATION_INPUT", PAYMENT_INPUT = "PAYMENT_INPUT", FIXED_PAYMENT = "FIXED_PAYMENT" } export interface ProductCheckboxGroup { /** Label of the field. */ label?: string | null; /** Description of the field. */ description?: RichContent; /** List of options to select from. */ options?: ProductCheckboxGroupOption[]; /** * Flag identifying to hide or not label * Default: true */ showLabel?: boolean | null; /** * Defines how an image should be resized to fit within its option. * Default: COVER */ imageFit?: ImageFit; } export interface ProductCheckboxGroupOption { /** Selectable option label. */ label?: string | null; /** Selectable option value, which is saved to DB. Corresponds to product id, found in field's products list. */ value?: any; /** Option id. Used as binding for translations. */ _id?: string; /** Media item. Media, associated with option, like image. */ media?: MediaItem; /** Flag identifying that option should be selected by default */ default?: boolean; } export declare enum ImageFit { UNKNOWN_IMAGE_FIT = "UNKNOWN_IMAGE_FIT", /** Image is scaled to maintain its aspect ratio while filling the element's entire content box. Portions of the image may be clipped if the aspect ratios do not match. */ COVER = "COVER", /** Image is resized to fill the element's content box. Aspect ratio may not be preserved. */ CONTAIN = "CONTAIN" } export interface DonationInput { /** Label of the field. */ label?: string | null; /** Description of the field. */ description?: RichContent; /** List of options to select from. */ options?: DonationInputOption[]; /** Option which can be specified by UoU, enabled when this object is specified. */ customOption?: CommonCustomOption; /** * Specifies the number of columns used to display the selections within the component. * Default: ONE */ numberOfColumns?: NumberOfColumns; /** * Flag identifying to hide or not label * Default: true */ showLabel?: boolean | null; } export interface DonationInputOption { /** Selectable option value, which is saved to DB. Corresponds to product id, found in field's products list. */ value?: string; /** Flag identifying that option should be selected by default */ default?: boolean; } export interface PaymentInput { /** Label of the field. */ label?: string | null; /** Description of the field. */ description?: RichContent; /** * Flag identifying to hide or not label * Default: true */ showLabel?: boolean | null; /** Placeholder of custom option input */ placeholder?: string | null; /** Default value for the payment input */ default?: number | null; } export interface FixedPayment { /** Label of the field. */ label?: string | null; /** Description of the field. */ description?: RichContent; /** * Flag identifying to hide or not label * Default: true */ showLabel?: boolean | null; } export declare enum SchedulingComponentType { UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", APPOINTMENT = "APPOINTMENT" } export interface Appointment extends AppointmentFormatInfoOneOf { /** In person options for the appointment */ inPersonOptions?: InPersonOptions; /** Online video conference options for the appointment */ videoConferenceOptions?: VideoConferenceOptions; /** Phone options for the appointment */ phoneOptions?: PhoneOptions; /** Label of the field */ label?: string | null; /** Name of the appointment */ name?: string | null; /** Duration of the appointment in minutes */ durationInMinutes?: number | null; /** Indicates whether manual approval is required for the appointment */ manualApprovalRequired?: boolean | null; /** ID of the staff members providing the appointment */ staffIds?: string[] | null; /** The format of the appointment */ format?: Format; } /** @oneof */ export interface AppointmentFormatInfoOneOf { /** In person options for the appointment */ inPersonOptions?: InPersonOptions; /** Online video conference options for the appointment */ videoConferenceOptions?: VideoConferenceOptions; /** Phone options for the appointment */ phoneOptions?: PhoneOptions; } export interface Location extends LocationLocationInfoOneOf { /** Custom address details */ customAddress?: string | null; /** ID of a business location */ businessLocationId?: string | null; } /** @oneof */ export interface LocationLocationInfoOneOf { /** Custom address details */ customAddress?: string | null; /** ID of a business location */ businessLocationId?: string | null; } export declare enum Format { UNKNOWN_FORMAT_TYPE = "UNKNOWN_FORMAT_TYPE", IN_PERSON = "IN_PERSON", VIDEO_CONFERENCE = "VIDEO_CONFERENCE", PHONE = "PHONE" } export interface InPersonOptions { /** The locations details */ locations?: Location[]; } export interface VideoConferenceOptions { /** Description or instructions for the online video conference */ description?: string | null; } export interface PhoneOptions { /** Description or instructions for the phone appointment */ description?: string | null; } export declare enum MultilineAddressComponentType { UNKNOWN_COMPONENT_TYPE = "UNKNOWN_COMPONENT_TYPE", MULTILINE_ADDRESS = "MULTILINE_ADDRESS" } export interface MultilineAddress { /** Label of the field. */ label?: string | null; /** Description of the field. */ description?: RichContent; /** Show country flags. */ showCountryFlags?: boolean; /** Default country configuration. */ defaultCountryConfig?: DefaultCountryConfig; /** Fields settings. */ fieldSettings?: FieldsSettings; /** Autocomplete enabled for address line field. */ autocompleteEnabled?: boolean; } export declare enum Type { /** Unknown default country config type. */ UNKNOWN_DEFAULT_COUNTRY = "UNKNOWN_DEFAULT_COUNTRY", /** Country is determined by customer's IP address. */ BY_IP = "BY_IP", /** Pre-selected default country. */ COUNTRY = "COUNTRY" } export interface AddressLine2 { /** Show address line 2 field. */ show?: boolean; } export interface DefaultCountryConfig extends DefaultCountryConfigOptionsOneOf { /** Country. */ countryOptions?: string; /** Default country type. */ type?: Type; } /** @oneof */ export interface DefaultCountryConfigOptionsOneOf { /** Country. */ countryOptions?: string; } export interface FieldsSettings { /** Address line 2. */ addressLine2?: AddressLine2; } export declare enum InputType { UNKNOWN_INPUT_TYPE = "UNKNOWN_INPUT_TYPE", STRING = "STRING", NUMBER = "NUMBER", BOOLEAN = "BOOLEAN", ARRAY = "ARRAY", OBJECT = "OBJECT", WIX_FILE = "WIX_FILE", PAYMENT = "PAYMENT", MULTILINE_ADDRESS = "MULTILINE_ADDRESS", SCHEDULING = "SCHEDULING" } export interface FormFieldContactInfo extends FormFieldContactInfoAdditionalInfoOneOf { /** Email info. */ emailInfo?: EmailInfo; /** Phone info. */ phoneInfo?: PhoneInfo; /** Address info. */ addressInfo?: AddressInfo; /** Custom field info. */ customFieldInfo?: CustomFieldInfo; /** Subscription info */ subscriptionInfo?: SubscriptionInfo; /** Field mapped to contacts. */ contactField?: ContactField; } /** @oneof */ export interface FormFieldContactInfoAdditionalInfoOneOf { /** Email info. */ emailInfo?: EmailInfo; /** Phone info. */ phoneInfo?: PhoneInfo; /** Address info. */ addressInfo?: AddressInfo; /** Custom field info. */ customFieldInfo?: CustomFieldInfo; /** Subscription info */ subscriptionInfo?: SubscriptionInfo; } export declare enum EmailInfoTag { UNTAGGED = "UNTAGGED", MAIN = "MAIN" } export declare enum PhoneInfoTag { UNTAGGED = "UNTAGGED", MAIN = "MAIN" } export declare enum Tag { UNTAGGED = "UNTAGGED", HOME = "HOME" } export declare enum SubscriptionInfoOptInLevel { UNKNOWN = "UNKNOWN", SINGLE_CONFIRMATION = "SINGLE_CONFIRMATION", DOUBLE_CONFIRMATION = "DOUBLE_CONFIRMATION" } export declare enum ContactField { UNDEFINED = "UNDEFINED", FIRST_NAME = "FIRST_NAME", LAST_NAME = "LAST_NAME", COMPANY = "COMPANY", POSITION = "POSITION", EMAIL = "EMAIL", PHONE = "PHONE", ADDRESS = "ADDRESS", BIRTHDATE = "BIRTHDATE", CUSTOM_FIELD = "CUSTOM_FIELD", SUBSCRIPTION = "SUBSCRIPTION", VAT_ID = "VAT_ID" } export interface EmailInfo { /** Email tag. */ tag?: EmailInfoTag; } export interface PhoneInfo { /** Phone tag. */ tag?: PhoneInfoTag; } export interface AddressInfo { /** Address tag. */ tag?: Tag; } export interface CustomFieldInfo { /** Custom field key. */ key?: string; } export interface SubscriptionInfo { /** * Subscription consent opt in level, either single or double confirmation. * Default: SINGLE_CONFIRMATION */ optInLevel?: SubscriptionInfoOptInLevel; } export interface _String extends _StringComponentTypeOptionsOneOf { /** Text input field */ textInputOptions?: TextInput; /** Selection field as radio group */ radioGroupOptions?: RadioGroup; /** Selection field as drop down */ dropdownOptions?: Dropdown; /** Field for selecting date and/or time */ dateTimeOptions?: DateTimeInput; /** Phone input field */ phoneInputOptions?: PhoneInput; /** Dropdown based component for selecting date */ dateInputOptions?: DateInput; /** Field for selecting time */ timeInputOptions?: TimeInput; /** Calendar type component for selecting date */ datePickerOptions?: DatePicker; /** Validation of field output value. */ validation?: InputFieldStringType; /** * Component type of the string input field * @readonly */ componentType?: StringComponentType; } /** @oneof */ export interface _StringComponentTypeOptionsOneOf { /** Text input field */ textInputOptions?: TextInput; /** Selection field as radio group */ radioGroupOptions?: RadioGroup; /** Selection field as drop down */ dropdownOptions?: Dropdown; /** Field for selecting date and/or time */ dateTimeOptions?: DateTimeInput; /** Phone input field */ phoneInputOptions?: PhoneInput; /** Dropdown based component for selecting date */ dateInputOptions?: DateInput; /** Field for selecting time */ timeInputOptions?: TimeInput; /** Calendar type component for selecting date */ datePickerOptions?: DatePicker; } export interface _Number extends _NumberComponentTypeOptionsOneOf { /** Number value input field */ numberInputOptions?: NumberInput; /** Rating value input field */ ratingInputOptions?: RatingInput; /** Validation of field output value. */ validation?: InputFieldNumberType; /** * Component type of the number input field * @readonly */ componentType?: NumberComponentType; } /** @oneof */ export interface _NumberComponentTypeOptionsOneOf { /** Number value input field */ numberInputOptions?: NumberInput; /** Rating value input field */ ratingInputOptions?: RatingInput; } export interface _Boolean extends _BooleanComponentTypeOptionsOneOf { /** Checkbox input field */ checkboxOptions?: Checkbox; /** Validation of field output value. */ validation?: InputFieldBooleanType; /** * Component type of the boolean input field * @readonly */ componentType?: BooleanComponentType; } /** @oneof */ export interface _BooleanComponentTypeOptionsOneOf { /** Checkbox input field */ checkboxOptions?: Checkbox; } export interface _Array extends _ArrayComponentTypeOptionsOneOf { /** Checkbox group input field */ checkboxGroupOptions?: CheckboxGroup; /** Tags input field */ tagsOptions?: Tags; /** Validation of array type. */ validation?: InputFieldArrayType; /** * Component type of the array input field * @readonly */ componentType?: ComponentType; } /** @oneof */ export interface _ArrayComponentTypeOptionsOneOf { /** Checkbox group input field */ checkboxGroupOptions?: CheckboxGroup; /** Tags input field */ tagsOptions?: Tags; } export interface _Object extends _ObjectValidationOneOf { /** Validation of object type. */ object?: InputFieldObjectType; } /** @oneof */ export interface _ObjectValidationOneOf { /** Validation of object type. */ object?: InputFieldObjectType; } export interface WixFile extends WixFileComponentTypeOptionsOneOf { /** File upload input field */ fileUploadOptions?: FileUpload; /** Signature input field */ signatureOptions?: Signature; /** * Component type of the array input field * @readonly */ componentType?: WixFileComponentType; } /** @oneof */ export interface WixFileComponentTypeOptionsOneOf { /** File upload input field */ fileUploadOptions?: FileUpload; /** Signature input field */ signatureOptions?: Signature; } export interface Payment extends PaymentComponentTypeOptionsOneOf { /** Checkbox group input field. */ checkboxGroupOptions?: ProductCheckboxGroup; /** Donation input field. */ donationInputOptions?: DonationInput; /** Payment input field. */ paymentInputOptions?: PaymentInput; /** Fixed payment field. */ fixedPaymentOptions?: FixedPayment; /** * Component type of the payment input field. * @readonly */ componentType?: PaymentComponentType; /** Validation of payment type. */ validation?: PaymentType; } /** @oneof */ export interface PaymentComponentTypeOptionsOneOf { /** Checkbox group input field. */ checkboxGroupOptions?: ProductCheckboxGroup; /** Donation input field. */ donationInputOptions?: DonationInput; /** Payment input field. */ paymentInputOptions?: PaymentInput; /** Fixed payment field. */ fixedPaymentOptions?: FixedPayment; } export interface InputFieldMultilineAddress extends InputFieldMultilineAddressComponentTypeOptionsOneOf { /** Multiline address input field. */ multilineAddressOptions?: MultilineAddress; /** * Component type of the multiline address field. * @readonly */ componentType?: MultilineAddressComponentType; /** Validation of multiline address field output value. */ validation?: MultilineAddressValidation; } /** @oneof */ export interface InputFieldMultilineAddressComponentTypeOptionsOneOf { /** Multiline address input field. */ multilineAddressOptions?: MultilineAddress; } export interface Scheduling extends SchedulingComponentTypeOptionsOneOf { /** Appointment input field */ appointmentOptions?: Appointment; /** * Component type of the scheduling input field * @readonly */ componentType?: SchedulingComponentType; } /** @oneof */ export interface SchedulingComponentTypeOptionsOneOf { /** Appointment input field */ appointmentOptions?: Appointment; } export declare enum FieldType { UNKNOWN = "UNKNOWN", INPUT = "INPUT", DISPLAY = "DISPLAY" } export interface InputField extends InputFieldInputTypeOptionsOneOf { /** Input return string as value */ stringOptions?: _String; /** Input return number as value */ numberOptions?: _Number; /** Input return boolean as value */ booleanOptions?: _Boolean; /** Input return array as value */ arrayOptions?: _Array; /** Input return object as value */ objectOptions?: _Object; /** Input return "Wix file" as value */ wixFileOptions?: WixFile; /** Input returns selected products as value. */ paymentOptions?: Payment; /** Input returns multiline address as value. */ multilineAddressOptions?: InputFieldMultilineAddress; /** Input returns scheduling as value. */ schedulingOptions?: Scheduling; /** Definition of a target where the value of field belongs. */ target?: string | null; /** * Mark the field as containing personal information. This will encrypt user data when storing it. * Default: false */ pii?: boolean; /** * Whether the field is required. * Default: false */ required?: boolean; /** * Type of the input field * @readonly */ inputType?: InputType; /** Mapping to contacts, telling to what contact property field input value should be saved. */ contactMapping?: FormFieldContactInfo; /** * Whether the field is read only. * Default: false */ readOnly?: boolean; } /** @oneof */ export interface InputFieldInputTypeOptionsOneOf { /** Input return string as value */ stringOptions?: _String; /** Input return number as value */ numberOptions?: _Number; /** Input return boolean as value */ booleanOptions?: _Boolean; /** Input return array as value */ arrayOptions?: _Array; /** Input return object as value */ objectOptions?: _Object; /** Input return "Wix file" as value */ wixFileOptions?: WixFile; /** Input returns selected products as value. */ paymentOptions?: Payment; /** Input returns multiline address as value. */ multilineAddressOptions?: InputFieldMultilineAddress; /** Input returns scheduling as value. */ schedulingOptions?: Scheduling; } /** Copy of the entity existing in form template project, needed to hide translations. */ export interface DisplayField extends DisplayFieldDisplayFieldTypeOptionsOneOf { /** Component displaying rich content */ richContentOptions?: RichContentOptions; /** Page navigation component resolving as navigation or submit buttons */ pageNavigationOptions?: PageNavigationOptions; /** Type of the display field */ displayFieldType?: DisplayFieldType; } /** @oneof */ export interface DisplayFieldDisplayFieldTypeOptionsOneOf { /** Component displaying rich content */ richContentOptions?: RichContentOptions; /** Page navigation component resolving as navigation or submit buttons */ pageNavigationOptions?: PageNavigationOptions; } export declare enum DisplayFieldType { UNKNOWN_FIELD_TYPE = "UNKNOWN_FIELD_TYPE", RICH_CONTENT = "RICH_CONTENT", PAGE_NAVIGATION = "PAGE_NAVIGATION" } export interface RichContentOptions { /** Content of the header */ richContent?: RichContent; } export interface PageNavigationOptions { /** When button is not on last page it behaves as switch between pages page, text of label to go to next page. */ nextPageText?: string | null; /** When button is not on last page it behaves as switch between pages page, text of label to go to previous page. */ previousPageText?: string | null; /** Text on the button when button is submitting a form */ submitText?: string | null; } export interface Step { /** Step ID. */ _id?: string; /** Name of the step. */ name?: string | null; /** Is step hidden */ hidden?: boolean; /** Form step properties */ layout?: FormLayout; } export interface FormLayout { /** Layout for large break point. */ large?: BreakPoint; /** Layout for medium break point. */ medium?: BreakPoint; /** Layout for small break point. */ small?: BreakPoint; } export interface BreakPoint { /** Description of layouts for items. */ items?: ItemLayout[]; /** Amount of columns of layout grid. */ columns?: number | null; /** Row height of layout grid. */ rowHeight?: number | null; /** Description of elements margins. */ margin?: Margin; /** Description of elements paddings. */ padding?: Margin; /** Sections of the layout, which allow manage fields */ sections?: Section[]; } export interface ItemLayout extends ItemLayoutItemOneOf { /** Form field reference id. */ fieldId?: string; /** Group info, defining that this item is a group of multiple fields */ group?: Group; /** Horizontal coordinate in the grid. */ row?: number | null; /** Vertical coordinate in the grid. */ column?: number | null; /** Height. */ width?: number | null; /** Width. */ height?: number | null; } /** @oneof */ export interface ItemLayoutItemOneOf { /** Form field reference id. */ fieldId?: string; /** Group info, defining that this item is a group of multiple fields */ group?: Group; } export interface Group { /** Field group reference id. */ groupId?: string; /** Description of layouts for items. */ items?: ItemLayout[]; } export interface Margin { /** Horizontal value. */ horizontal?: number | null; /** Vertical value. */ vertical?: number | null; } export interface Section { /** Id of the section */ _id?: string; /** Horizontal coordinate in the grid. */ row?: number | null; /** * A list of field identifiers that are permitted to be placed within a section. * The section will only accept fields with IDs specified in this list. * If the section encounters the $new key within the list, * it allows the inclusion of fields not explicitly listed, * enabling dynamic addition of new fields. */ allowedFieldIds?: string[]; } export interface FormRule { /** Id of the rule */ _id?: string; /** Rule on which item properties or layouts will be changed. */ condition?: Record | null; /** * Form items with defined properties that will be * changed when given condition is resolved to true. */ overrides?: FormOverride[]; /** Name of the rule */ name?: string | null; } export declare enum OverrideEntityType { UNKNOWN = "UNKNOWN", FIELD = "FIELD" } export interface FormOverride { /** Override entity type. */ entityType?: OverrideEntityType; /** Overridden entity id. Either fieldId, or "{fieldIdWithNestedForm}/{nestedFormFieldId}" */ entityId?: string | null; /** Form entity properties path with new value, that will be changed on condition. */ valueChanges?: Record; } export interface FormProperties { /** Form name. */ 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; } export 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" } export interface PostSubmissionTriggers { /** Upserts a contact from the submission data. */ upsertContact?: UpsertContact; } export interface UpsertContact { /** Fields mapping (target field mapped to corresponding contact field). */ fieldsMapping?: Record; /** * List of contact label keys. * [Contact labels](https://support.wix.com/en/article/adding-labels-to-contacts-in-your-contact-list) * help categorize contacts. */ labels?: string[]; } export interface NestedForm { /** Targets which have this form. */ targets?: string[]; /** Nested form. */ form?: Form; } export 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; } export declare enum SpamFilterProtectionLevel { /** Unknown spam filter protection level. */ UNKNOWN = "UNKNOWN", /** Spam filter is not used. Form is open for spam submissions. */ NONE = "NONE", /** Spam filter operates in basic mode. Form is open to high risk of spam submissions. */ BASIC = "BASIC", /** Spam filter operates in advanced mode. Form is open to low risk of spam submissions. */ ADVANCED = "ADVANCED" } export interface RequiredIndicatorProperties { /** Required indicator. */ requiredIndicator?: RequiredIndicator; /** Required indicator placement. */ requiredIndicatorPlacement?: RequiredIndicatorPlacement; } export interface SubmitSettings extends SubmitSettingsSubmitSuccessActionOptionsOneOf { /** Options for showing a thank you message after submission. */ thankYouMessageOptions?: ThankYouMessageOptions; /** Options for redirecting to a URL after submission. */ redirectOptions?: RedirectOptions; /** Action that is triggered after a successful form submission. */ submitSuccessAction?: SubmitSuccessAction; } /** @oneof */ export interface SubmitSettingsSubmitSuccessActionOptionsOneOf { /** Options for showing a thank you message after submission. */ thankYouMessageOptions?: ThankYouMessageOptions; /** Options for redirecting to a URL after submission. */ redirectOptions?: RedirectOptions; } export declare enum Target { /** Unknown target. */ UNKNOWN_TARGET = "UNKNOWN_TARGET", /** Open in the same browser tab. */ SELF = "SELF", /** Open in a new browser tab. */ BLANK = "BLANK" } export declare enum SubmitSuccessAction { /** Unknown submit success action. */ UNKNOWN_SUBMIT_SUCCESS_ACTION = "UNKNOWN_SUBMIT_SUCCESS_ACTION", /** No action will be taken after submission. */ NO_ACTION = "NO_ACTION", /** A thank you message will be shown after submission. */ THANK_YOU_MESSAGE = "THANK_YOU_MESSAGE", /** The user will be redirected to a URL after submission. */ REDIRECT = "REDIRECT" } export interface ThankYouMessageOptions { /** Duration in seconds after which the message should disappear. If 0, the message will stay forever. */ durationInSeconds?: number | null; /** The message shown after form submission. */ richContent?: RichContent; } export interface RedirectOptions { /** The URL to which the user should be redirected after a successful form submission. */ redirectUrl?: string | null; /** How the URL should be opened. */ target?: Target; } export interface FieldGroup { /** Id of group, on layout */ _id?: string; /** Label of group */ label?: string | null; } export interface CreateCheckoutFromSubmissionResponse { /** Checkout ID (applicable for form involving payments). */ checkoutId?: string | null; /** Checkout (applicable for form involving payments). */ checkout?: Checkout; } export interface Checkout { /** Checkout ID. */ _id?: string; /** * The currency used when submitting the order. * @readonly */ currency?: string; } export interface IsFormSubmittableRequest { } export interface IsFormSubmittableResponse { } export interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** * Unique event ID. * Allows clients to ignore duplicate webhooks. */ _id?: string; /** * Assumes actions are also always typed to an entity_type * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction */ entityFqdn?: string; /** * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug) * This is although the created/updated/deleted notion is duplication of the oneof types * 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 defining the order of updates to the underlying entity. * For example, given that some entity was updated at 16:00 and than again at 16:01, * it is guaranteed that the sequence number of the second update is strictly higher than the first. * As the consumer, you can use this value to ensure that you handle messages in the correct order. * To do so, you will need to persist this number on your end, and compare the sequence number from the * message against the one you have stored. Given that the stored number is higher, you should ignore the message. */ entityEventSequence?: string | null; } /** @oneof */ export interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } export interface EntityCreatedEvent { entity?: string; } export interface RestoreInfo { deletedDate?: Date | null; } export 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; } export interface EntityDeletedEvent { /** Entity that was deleted */ deletedEntity?: string | null; } export interface ActionEvent { body?: string; } export interface Empty { } export interface MessageEnvelope { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; } export interface IdentificationData extends IdentificationDataIdOneOf { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; /** @readonly */ identityType?: WebhookIdentityType; } /** @oneof */ export interface IdentificationDataIdOneOf { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; } export declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } export interface CreateSubmissionRequest { /** Submission to create. */ submission: FormSubmission; /** Captcha token. */ captchaToken?: string | null; } export interface CreateSubmissionResponse { /** The created submission. */ submission?: FormSubmission; } export interface SubmissionValidationErrorsDetails { /** Submission validation errors details. */ errors?: ValidationError[]; } export interface ValidationError { /** Path indicating the source of the error, such as `submission.submissions.email`` */ errorPath?: string; /** Error type. */ errorType?: ErrorType; /** Error message. */ errorMessage?: string; /** Additional error parameters, to help identify additional info. */ params?: Record | null; /** * Whether to use a custom error message. * If `false`, the API takes the message from the `errorType` field. * Default: `false` */ useCustomErrorMessage?: boolean; } export declare enum ErrorType { /** Error is unknown or not suitable for any of options bellow */ UNKNOWN_ERROR = "UNKNOWN_ERROR", /** Type of submitted value is incorrect */ TYPE_ERROR = "TYPE_ERROR", /** Value is required to be provided */ REQUIRED_VALUE_ERROR = "REQUIRED_VALUE_ERROR", /** Value contains additional properties not expected in schema */ UNKNOWN_VALUE_ERROR = "UNKNOWN_VALUE_ERROR", /** Text value exceeds max length */ MAX_LENGTH_ERROR = "MAX_LENGTH_ERROR", /** Text value not reaches min length */ MIN_LENGTH_ERROR = "MIN_LENGTH_ERROR", /** Text value not applicable for expected pattern */ PATTERN_ERROR = "PATTERN_ERROR", /** Text value not applicable for expected format */ FORMAT_ERROR = "FORMAT_ERROR", /** Number value is too big */ MAX_VALUE_ERROR = "MAX_VALUE_ERROR", /** Number value is too small */ MIN_VALUE_ERROR = "MIN_VALUE_ERROR", /** Number value is not multiple of expected number */ MULTIPLE_OF_VALUE_ERROR = "MULTIPLE_OF_VALUE_ERROR", /** Array value has too much items */ MIN_ITEMS_ERROR = "MIN_ITEMS_ERROR", /** Array value has not enough items */ MAX_ITEMS_ERROR = "MAX_ITEMS_ERROR", /** Value is not in list of allowed values */ NOT_ALLOWED_VALUE_ERROR = "NOT_ALLOWED_VALUE_ERROR", /** Form fields are incompatible */ FIELDS_COMPATIBILITY_ERROR = "FIELDS_COMPATIBILITY_ERROR", /** Submitted form is disabled */ DISABLED_FORM_ERROR = "DISABLED_FORM_ERROR", /** Too much forms */ FORMS_COUNT_RESTRICTIONS_ERROR = "FORMS_COUNT_RESTRICTIONS_ERROR", /** Too much fields on form */ FIELDS_COUNT_RESTRICTIONS_ERROR = "FIELDS_COUNT_RESTRICTIONS_ERROR", /** Too much steps on forms */ STEPS_COUNT_RESTRICTIONS_ERROR = "STEPS_COUNT_RESTRICTIONS_ERROR", /** Too much rules on forms */ RULES_COUNT_RESTRICTIONS_ERROR = "RULES_COUNT_RESTRICTIONS_ERROR", /** File upload is not allowed */ FILE_UPLOAD_RESTRICTIONS_ERROR = "FILE_UPLOAD_RESTRICTIONS_ERROR", /** Country code is not correct or missing from the phone number */ INVALID_PHONE_COUNTRY_CODE_ERROR = "INVALID_PHONE_COUNTRY_CODE_ERROR" } export interface CreateSubmissionBySubmitterRequest { /** Submission to create. */ submission?: FormSubmission; /** A flag indicating whether this operation is a repeated creation, such as restoring a previously manually reported as spam entity. */ repeatedCreation?: boolean; /** Validation will be mode is more forgiving, for example "required" won't be validated. */ lenientValidation?: boolean; } export interface CreateSubmissionBySubmitterResponse { /** The created submission. */ submission?: FormSubmission; } export interface BulkCreateSubmissionBySubmitterRequest { /** Form id. Restricts submissions creation for a single form. */ formId: string; /** * Submissions to create. * Deprecated */ submissions?: FormSubmission[]; /** When set, items will be returned on successful create. */ returnEntity?: boolean; /** Submissions data to create. */ submissionsV2?: BulkCreateSubmissionBySubmitterData[]; /** Validation will be mode is more forgiving, for example "required" won't be validated. */ lenientValidation?: boolean; } export interface BulkCreateSubmissionBySubmitterData { /** Submissions to create. */ submission?: FormSubmission; /** A flag indicating whether this operation is a repeated creation, such as restoring a previously manually reported as spam entity. */ repeatedCreation?: boolean; } export interface BulkCreateSubmissionBySubmitterResponse { /** Created submissions with metadata */ results?: BulkSubmissionResult[]; /** Metadata of request */ bulkActionMetadata?: BulkActionMetadata; } export interface BulkSubmissionResult { /** Created submission metadata */ itemMetadata?: ItemMetadata; /** The created submission. */ item?: FormSubmission; } export interface ItemMetadata { /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */ _id?: string | null; /** Index of the item within the request array. Allows for correlation between request and response items. */ originalIndex?: number; /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */ success?: boolean; /** Details about the error in case of failure. */ error?: ApplicationError; } export interface ApplicationError { /** Error code. */ code?: string; /** Description of the error. */ description?: string; /** Data related to the error. */ data?: Record | null; } export interface BulkActionMetadata { /** Number of items that were successfully processed. */ totalSuccesses?: number; /** Number of items that couldn't be processed. */ totalFailures?: number; /** Number of failures without details because detailed failure threshold was exceeded. */ undetailedFailures?: number; } export interface GetSubmissionRequest { /** ID of the submission to retrieve. */ submissionId: string; } export interface GetSubmissionResponse { /** The retrieved submission. */ submission?: FormSubmission; } export interface GetSubmissionByCheckoutIdRequest { /** Checkout ID of the submission to retrieve. */ checkoutId?: string; } export interface GetSubmissionByCheckoutIdResponse { /** The retrieved submission. */ submission?: FormSubmission; } export interface UpdateSubmissionRequest { /** Submission to update. */ submission: FormSubmission; } export interface UpdateSubmissionResponse { /** The updated submission. */ submission?: FormSubmission; } export interface ConfirmSubmissionRequest { /** Submission ID to confirm. */ submissionId: string; } export interface ConfirmSubmissionResponse { /** The confirmed submission. */ submission?: FormSubmission; } export interface DeleteSubmissionRequest { /** ID of the submission to delete. */ submissionId: string; /** * Delete the submission, bypassing the trash bin. This means that the submission is permanently deleted and cannot be restored. * * * Default: `false` */ permanent?: boolean; /** Whether to preserve files, associated with the submission. If the value is `false`, then the files are deleted after 210 days. */ preserveFiles?: boolean; } export interface DeleteSubmissionResponse { } export interface BulkDeleteSubmissionRequest { /** Form ID. */ formId: string; /** Submission ids. */ submissionIds?: string[]; /** * Delete submission bypassing trash-bin * Default: false */ permanent?: boolean; /** Preserve files. */ preserveFiles?: boolean; } export interface BulkDeleteSubmissionResponse { /** Results of bulk submission delete */ results?: BulkDeleteSubmissionResult[]; /** Metadata of request */ bulkActionMetadata?: BulkActionMetadata; } export interface BulkDeleteSubmissionResult { /** Deleted item metadata */ itemMetadata?: ItemMetadata; } export interface RestoreSubmissionFromTrashBinRequest { /** ID of the submission to restore. */ submissionId: string; } export interface RestoreSubmissionFromTrashBinResponse { /** The restored submission. */ submission?: FormSubmission; } export interface RemoveSubmissionFromTrashBinRequest { /** ID of the submission to restore. */ submissionId: string; } export interface RemoveSubmissionFromTrashBinResponse { } export interface BulkRemoveSubmissionFromTrashBinRequest { /** Form ID. */ formId: string; /** Submission ids. */ submissionIds?: string[]; } export interface BulkRemoveSubmissionFromTrashBinResponse { /** Results of bulk submission removal from trash */ results?: BulkRemoveSubmissionFromTrashBinResult[]; /** Metadata of request */ bulkActionMetadata?: BulkActionMetadata; } export interface BulkRemoveSubmissionFromTrashBinResult { /** Deleted item metadata */ itemMetadata?: ItemMetadata; } export interface ListDeletedSubmissionsRequest { /** Form ID. */ formId: string; /** Submission ids. */ submissionIds?: string[]; /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not filter or `order`. */ paging?: CursorPaging; /** * List of statuses of submissions which should be returned * Default: CONFIRMED */ statuses?: SubmissionStatus[]; } export interface CursorPaging { /** Number of items to load. */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * You can get the relevant cursor token * from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. */ cursor?: string | null; } export interface ListDeletedSubmissionsResponse { /** The retrieved Submissions. */ submissions?: FormSubmission[]; /** Paging metadata. */ pagingMetadata?: CursorPagingMetadata; } export interface CursorPagingMetadata { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ cursors?: Cursors; /** * Indicates if there are more results after the current page. * If `true`, another page of results can be retrieved. * If `false`, this is the last page. */ hasNext?: boolean | null; } export interface Cursors { /** Cursor pointing to next page in the list of results. */ next?: string | null; /** Cursor pointing to previous page in the list of results. */ prev?: string | null; } export interface GetDeletedSubmissionRequest { /** Submission id. */ submissionId: string; } export interface GetDeletedSubmissionResponse { /** The retrieved Submission. */ submission?: FormSubmission; } export interface QuerySubmissionRequest { /** Query options. */ query: CursorQuery; /** Whether to return only your own submissions. If `false`, returns all submissions based on query filters. */ onlyYourOwn?: boolean; } export interface CursorQuery extends CursorQueryPagingMethodOneOf { /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */ cursorPaging?: CursorPaging; /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: Record | null; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting[]; } /** @oneof */ export interface CursorQueryPagingMethodOneOf { /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */ cursorPaging?: CursorPaging; } export interface Sorting { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder; } export declare enum SortOrder { ASC = "ASC", DESC = "DESC" } export interface QuerySubmissionResponse { /** The retrieved submissions. */ submissions?: FormSubmission[]; /** Paging metadata. */ metadata?: CursorPagingMetadata; } export interface SearchSubmissionsByNamespaceRequest { /** Query options. */ search: CursorSearch; } export interface CursorSearch extends CursorSearchPagingMethodOneOf { /** * Cursor pointing to page of results. * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided. */ cursorPaging?: CursorPaging; /** A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf) */ filter?: Record | null; /** Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}] */ sort?: Sorting[]; /** Free text to match in searchable fields */ search?: SearchDetails; } /** @oneof */ export interface CursorSearchPagingMethodOneOf { /** * Cursor pointing to page of results. * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided. */ cursorPaging?: CursorPaging; } export interface SearchDetails { /** Defines how separate search terms in `expression` are combined */ mode?: Mode; /** Search term or expression */ expression?: string | null; /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */ fuzzy?: boolean; } export declare enum Mode { /** Any of the search terms must be present */ OR = "OR", /** All search terms must be present */ AND = "AND" } export interface SearchSubmissionsByNamespaceResponse { /** The retrieved Submissions. */ submissions?: FormSubmission[]; /** Paging metadata. */ metadata?: CursorPagingMetadata; } export interface SearchSubmissionsByNamespaceForExportRequest { /** Query options. */ query?: CursorQuery; } export interface SearchSubmissionsByNamespaceForExportResponse { /** The retrieved Submissions. */ submissions?: FormSubmission[]; /** Paging metadata. */ metadata?: CursorPagingMetadata; } export interface QuerySubmissionsByNamespaceRequest { /** Query options. */ query: CursorQuery; /** Whether to return only your own submissions. If `false`, returns all submissions based on query filters. */ onlyYourOwn?: boolean; } export interface QuerySubmissionsByNamespaceResponse { /** The retrieved Submissions. */ submissions?: FormSubmission[]; /** Paging metadata. */ metadata?: CursorPagingMetadata; } export interface QuerySubmissionsByNamespaceForExportRequest { /** Query options. */ query?: CursorQuery; } export interface QuerySubmissionsByNamespaceForExportResponse { /** The retrieved Submissions. */ submissions?: FormSubmission[]; /** Paging metadata. */ metadata?: CursorPagingMetadata; } export interface CountSubmissionsByFilterRequest { /** A filter object. Must filter by namespace. */ filter: Record | null; /** Free text to match in searchable fields. */ search?: SearchDetails; } export interface CountSubmissionsByFilterResponse { /** Forms submission count. */ formsSubmissionsCount?: FormSubmissionsCount[]; } export interface FormSubmissionsCount { /** Form ID. */ formId?: string; /** Total number of submissions. */ totalCount?: number; /** Number of submissions that the site owner hasn't seen yet. */ unseenCount?: number; } export interface CountSubmissionsRequest { /** Form IDs which submissions should be counted. */ formIds: string[]; /** The app which the form submissions belong to. For example, the namespace for the Wix Forms app is `wix.form_app.form`. Call `getSubmission()` to retrieve the namespace. */ namespace: string; /** * Status of the submission. * - `PENDING`: A submission is created, but has not yet been recorded in the Wix Forms collection. * - `PAYMENT_WAITING`: A form submission requiring payment is created. * - `PAYMENT_CANCELED`: An order of a form submission is canceled. * - `CONFIRMED`: A submission is recorded in the Wix Forms collection. */ statuses?: SubmissionStatus[]; } export interface CountSubmissionsResponse { /** Forms submission count. */ formsSubmissionsCount?: FormSubmissionsCount[]; } export interface CountDeletedSubmissionsRequest { /** Form IDs. */ formIds: string[]; /** Identifies the app which the form submissions belong to. For example, the namespace for the Wix Forms App is `"wix.form_app.form"`. The namespace of a submission can be retrieved using the Get Submission endpoint. */ namespace: string; /** * List of statuses of submissions which should be taken into count * Default: CONFIRMED, PAYMENT_WAITING, PAYMENT_CANCELED */ statuses?: SubmissionStatus[]; } export interface CountDeletedSubmissionsResponse { /** Forms submission count. */ formsDeletedSubmissionsCount?: FormDeletedSubmissionsCount[]; } export interface FormDeletedSubmissionsCount { /** Form ID. */ formId?: string; /** Total number of submissions. */ totalCount?: number; } export interface GetMediaUploadURLRequest { /** Form ID. */ formId: string; /** Name of file to upload. */ filename: string; /** * [Mime type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#) of file to upload. * * For example, `'image/png'` */ mimeType: string; } export interface GetMediaUploadURLResponse { /** Url to upload file. */ uploadUrl?: string; } export interface BulkMarkSubmissionsAsSeenRequest { /** Submission IDs to mark as seen. */ ids: string[]; /** ID of the form which the submissions belong to. */ formId: string; } export interface BulkMarkSubmissionsAsSeenResponse { } export interface GetSubmissionDownloadUrlRequest { /** Submission ID. */ submissionId: string; } export interface GetSubmissionDownloadUrlResponse { /** The retrieved submission document. */ document?: SubmissionDocument; } export interface SubmissionDocument extends SubmissionDocumentDocumentOneOf { /** Data of ready to download document */ readyDetails?: DocumentReady; /** * Document ID. * @readonly */ _id?: string | null; /** Document status. */ status?: Status; } /** @oneof */ export interface SubmissionDocumentDocumentOneOf { /** Data of ready to download document */ readyDetails?: DocumentReady; } export declare enum Status { UNKNOWN_STATUS = "UNKNOWN_STATUS", READY = "READY", PENDING = "PENDING", FAILED = "FAILED" } export interface DocumentReady { /** * Document download URL. * @readonly */ downloadUrl?: string; } export interface GetFormattedSubmissionRequest { /** Submission ID. */ submissionId?: string; } export interface GetFormattedSubmissionResponse { /** Submission ID. */ submissionId?: string; /** Ordered by form layout list of field submissions. */ submissions?: FormattedSubmission[]; } export interface FormattedSubmission { /** Label of form field */ label?: string | null; /** Key of the submission, and target of a form field */ key?: string; /** Value of the submission, formatted as a string */ value?: string; /** Id of the form field */ fieldId?: string; } export interface ListFormattedSubmissionsRequest { /** Namespace. */ namespace?: string; /** Submission IDs. */ submissionIds?: string[]; /** Optional additional filter of form IDs. */ formIds?: string[]; } export interface ListFormattedSubmissionsResponse { /** List of formatted submissions */ formattedFormSubmissions?: FormattedFormSubmission[]; } export interface FormattedFormSubmission { /** Submission ID. */ submissionId?: string; /** Ordered by form layout list of field submissions. */ submissions?: FormattedSubmission[]; } export interface UpdateExtendedFieldsRequest { /** ID of the entity to update. */ _id: string; /** Identifier for the app whose extended fields are being updated. */ namespace: string; /** Data to update. Structured according to the [schema](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields#json-schema-for-extended-fields) defined when the extended fields were configured. */ namespaceData: Record | null; } export interface UpdateExtendedFieldsResponse { /** namespace that was updated */ namespace?: string; /** only data from UpdateExtendedFieldsRequest namespace_data */ namespaceData?: Record | null; } export interface BulkUpdateFormSubmissionTagsRequest { /** Submission IDs to update tags for. */ submissionIds?: string[]; /** Tags to be added to submissions */ assignTags?: PublicTags; /** Tags to be removed from submissions */ unassignTags?: PublicTags; } export interface BulkUpdateFormSubmissionTagsResponse { /** Updated submissions with results */ results?: BulkUpdateFormSubmissionTagsResult[]; /** Metadata of request */ bulkActionMetadata?: BulkActionMetadata; } export interface BulkUpdateFormSubmissionTagsResult { /** Updated item metadata */ itemMetadata?: ItemMetadata; } export interface BulkUpdateFormSubmissionTagsByFilterRequest { /** Filter to select the submission to update */ filter?: Record | null; /** Tags to be added to submissions */ assignTags?: PublicTags; /** Tags to be removed from submissions */ unassignTags?: PublicTags; } export interface BulkUpdateFormSubmissionTagsByFilterResponse { /** Job id for the bulk update operation */ jobId?: string; } export interface UpsertContactFromSubmissionRequest { /** Submission from which contact needs to be upserted. */ submissionId: string; /** Optional contact id to which submission should be mapped. */ contactId?: string | null; /** Indicates contact has verified primary email. */ emailVerified?: boolean; } export interface UpsertContactFromSubmissionResponse { /** Submit contact response. */ submitContactResponse?: SubmitContactResponse; } export interface SubmitContactResponse { /** ID of the contact that was found or created. */ contactId?: string; /** * Identity type of the returned contact. * * - `CONTACT`: The returned contact ID belongs to a new or existing contact. * - `MEMBER`: The returned contact ID belongs to the currently logged-in site member. * - `NOT_AUTHENTICATED_MEMBER`: The returned contact ID belongs to a site member who is not currently logged in. */ identityType?: IdentityType; /** * Indicates whether the contact was just created or already existed. * * If the contact was just created, returns `true`. * If it already existed, returns `false`. */ newContact?: boolean; } export declare enum IdentityType { UNKNOWN = "UNKNOWN", /** Existing or new contact */ CONTACT = "CONTACT", /** Member is logged in, matching logic skipped */ MEMBER = "MEMBER", /** Matching contact is a member, Merge logic won't be applied */ NOT_AUTHENTICATED_MEMBER = "NOT_AUTHENTICATED_MEMBER" } interface OrderDetailsNonNullableFields { itemSubtotal: string; checkoutId: string; } interface TagListNonNullableFields { tagIds: string[]; } interface PublicTagsNonNullableFields { tags?: TagListNonNullableFields; } export interface FormSubmissionNonNullableFields { formId: string; namespace: string; status: SubmissionStatus; seen: boolean; orderDetails?: OrderDetailsNonNullableFields; tags?: PublicTagsNonNullableFields; } export interface CreateSubmissionResponseNonNullableFields { submission?: FormSubmissionNonNullableFields; } interface ApplicationErrorNonNullableFields { code: string; description: string; } interface ItemMetadataNonNullableFields { originalIndex: number; success: boolean; error?: ApplicationErrorNonNullableFields; } interface BulkSubmissionResultNonNullableFields { itemMetadata?: ItemMetadataNonNullableFields; item?: FormSubmissionNonNullableFields; } interface BulkActionMetadataNonNullableFields { totalSuccesses: number; totalFailures: number; undetailedFailures: number; } export interface BulkCreateSubmissionBySubmitterResponseNonNullableFields { results: BulkSubmissionResultNonNullableFields[]; bulkActionMetadata?: BulkActionMetadataNonNullableFields; } export interface GetSubmissionResponseNonNullableFields { submission?: FormSubmissionNonNullableFields; } export interface UpdateSubmissionResponseNonNullableFields { submission?: FormSubmissionNonNullableFields; } export interface ConfirmSubmissionResponseNonNullableFields { submission?: FormSubmissionNonNullableFields; } interface BulkDeleteSubmissionResultNonNullableFields { itemMetadata?: ItemMetadataNonNullableFields; } export interface BulkDeleteSubmissionResponseNonNullableFields { results: BulkDeleteSubmissionResultNonNullableFields[]; bulkActionMetadata?: BulkActionMetadataNonNullableFields; } export interface RestoreSubmissionFromTrashBinResponseNonNullableFields { submission?: FormSubmissionNonNullableFields; } interface BulkRemoveSubmissionFromTrashBinResultNonNullableFields { itemMetadata?: ItemMetadataNonNullableFields; } export interface BulkRemoveSubmissionFromTrashBinResponseNonNullableFields { results: BulkRemoveSubmissionFromTrashBinResultNonNullableFields[]; bulkActionMetadata?: BulkActionMetadataNonNullableFields; } export interface ListDeletedSubmissionsResponseNonNullableFields { submissions: FormSubmissionNonNullableFields[]; } export interface GetDeletedSubmissionResponseNonNullableFields { submission?: FormSubmissionNonNullableFields; } export interface QuerySubmissionResponseNonNullableFields { submissions: FormSubmissionNonNullableFields[]; } export interface SearchSubmissionsByNamespaceResponseNonNullableFields { submissions: FormSubmissionNonNullableFields[]; } export interface QuerySubmissionsByNamespaceResponseNonNullableFields { submissions: FormSubmissionNonNullableFields[]; } interface FormSubmissionsCountNonNullableFields { formId: string; totalCount: number; unseenCount: number; } export interface CountSubmissionsByFilterResponseNonNullableFields { formsSubmissionsCount: FormSubmissionsCountNonNullableFields[]; } export interface CountSubmissionsResponseNonNullableFields { formsSubmissionsCount: FormSubmissionsCountNonNullableFields[]; } interface FormDeletedSubmissionsCountNonNullableFields { formId: string; totalCount: number; } export interface CountDeletedSubmissionsResponseNonNullableFields { formsDeletedSubmissionsCount: FormDeletedSubmissionsCountNonNullableFields[]; } export interface GetMediaUploadURLResponseNonNullableFields { uploadUrl: string; generatedByMediaPlatform: boolean; } interface DocumentReadyNonNullableFields { downloadUrl: string; } interface SubmissionDocumentNonNullableFields { readyDetails?: DocumentReadyNonNullableFields; status: Status; } export interface GetSubmissionDownloadUrlResponseNonNullableFields { document?: SubmissionDocumentNonNullableFields; } export interface UpdateExtendedFieldsResponseNonNullableFields { namespace: string; } interface SubmitContactResponseNonNullableFields { contactId: string; identityType: IdentityType; newContact: boolean; } export interface UpsertContactFromSubmissionResponseNonNullableFields { submitContactResponse?: SubmitContactResponseNonNullableFields; } export interface BaseEventMetadata { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; } export interface EventMetadata extends BaseEventMetadata { /** * Unique event ID. * Allows clients to ignore duplicate webhooks. */ _id?: string; /** * Assumes actions are also always typed to an entity_type * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction */ entityFqdn?: string; /** * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug) * This is although the created/updated/deleted notion is duplication of the oneof types * 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 defining the order of updates to the underlying entity. * For example, given that some entity was updated at 16:00 and than again at 16:01, * it is guaranteed that the sequence number of the second update is strictly higher than the first. * As the consumer, you can use this value to ensure that you handle messages in the correct order. * To do so, you will need to persist this number on your end, and compare the sequence number from the * message against the one you have stored. Given that the stored number is higher, you should ignore the message. */ entityEventSequence?: string | null; } export interface SubmissionCreatedEnvelope { entity: FormSubmission; metadata: EventMetadata; } /** * > **Note:** The Form Submission API only works with the Wix Forms app. Call [GetAppInstance](https://dev.wix.com/docs/rest/api-reference/app-management/apps/app-instance/get-app-instance) to confirm that the app named `wix_forms` is installed on the site. *
* Triggered when a submission is created. * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @webhook * @eventType wix.forms.v4.submission_created * @documentationMaturity preview */ export declare function onSubmissionCreated(handler: (event: SubmissionCreatedEnvelope) => void | Promise): void; export interface SubmissionDeletedEnvelope { entity: FormSubmission; metadata: EventMetadata; } /** * > **Note:** The Form Submission API only works with the Wix Forms app. Call [GetAppInstance](https://dev.wix.com/docs/rest/api-reference/app-management/apps/app-instance/get-app-instance) to confirm that the app named `wix_forms` is installed on the site. *
* Triggered when a submission is deleted. * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @webhook * @eventType wix.forms.v4.submission_deleted * @documentationMaturity preview */ export declare function onSubmissionDeleted(handler: (event: SubmissionDeletedEnvelope) => void | Promise): void; export interface SubmissionRemovedSubmissionFromTrashEnvelope { data: RemovedSubmissionFromTrash; metadata: EventMetadata; } /** @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @webhook * @eventType wix.forms.v4.submission_removed_submission_from_trash * @documentationMaturity preview */ export declare function onSubmissionRemovedSubmissionFromTrash(handler: (event: SubmissionRemovedSubmissionFromTrashEnvelope) => void | Promise): void; export interface SubmissionStatusUpdatedEnvelope { data: FormSubmissionStatusUpdatedEvent; metadata: EventMetadata; } /** @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @webhook * @eventType wix.forms.v4.submission_status_updated * @documentationMaturity preview */ export declare function onSubmissionStatusUpdated(handler: (event: SubmissionStatusUpdatedEnvelope) => void | Promise): void; export interface SubmissionContactMappedEnvelope { data: SubmissionContactMapped; metadata: EventMetadata; } /** @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @webhook * @eventType wix.forms.v4.submission_submission_contact_mapped * @documentationMaturity preview */ export declare function onSubmissionContactMapped(handler: (event: SubmissionContactMappedEnvelope) => void | Promise): void; export interface SubmissionContactMappingSkippedEnvelope { data: SubmissionContactMappingSkipped; metadata: EventMetadata; } /** @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @webhook * @eventType wix.forms.v4.submission_submission_contact_mapping_skipped * @documentationMaturity preview */ export declare function onSubmissionContactMappingSkipped(handler: (event: SubmissionContactMappingSkippedEnvelope) => void | Promise): void; export interface SubmissionUpdatedEnvelope { entity: FormSubmission; metadata: EventMetadata; } /** * > **Note:** The Form Submission API only works with the Wix Forms app. Call [GetAppInstance](https://dev.wix.com/docs/rest/api-reference/app-management/apps/app-instance/get-app-instance) to confirm that the app named `wix_forms` is installed on the site. *
* Triggered when: * - Submission is updated. * - Submission order status is updated. * - Submission is confirmed. * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @webhook * @eventType wix.forms.v4.submission_updated * @documentationMaturity preview */ export declare function onSubmissionUpdated(handler: (event: SubmissionUpdatedEnvelope) => void | Promise): void; /** * Creates a submission. * * * The `createSubmission()` function is an alternative way to the [`WixFormsV2`](https://www.wix.com/velo/reference/$w/wixformsv2/submit) element for submitting a form. In this case, clicking the submit button is unnecessary, the submission is automatically created when calling this function. * @param submission - Submission to create. * @public * @documentationMaturity preview * @requiredField submission * @requiredField submission.formId * @param options - Optional fields. * @permissionId WIX_FORMS.SUBMISSION_CREATE * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @applicableIdentity VISITOR * @returns The created submission. * @fqn wix.forms.v4.FormSubmissionService.CreateSubmission */ export declare function createSubmission(submission: FormSubmission, options?: CreateSubmissionOptions): Promise; export interface CreateSubmissionOptions { /** Captcha token. */ captchaToken?: string | null; } /** * Creates multiple submissions with specified submitters. * Internal, migration only. * @param formId - Form id. Restricts submissions creation for a single form. * @public * @documentationMaturity preview * @requiredField formId * @requiredField options.submissions.submissions * @requiredField options.submissions.submitter * @permissionId WIX_FORMS.INTERNAL_SUBMISSION_CREATE * @fqn wix.forms.v4.FormSubmissionService.BulkCreateSubmissionBySubmitter */ export declare function bulkCreateSubmissionBySubmitter(formId: string, options?: BulkCreateSubmissionBySubmitterOptions): Promise; export interface BulkCreateSubmissionBySubmitterOptions { /** * Submissions to create. * Deprecated */ submissions?: FormSubmission[]; /** When set, items will be returned on successful create. */ returnEntity?: boolean; /** Submissions data to create. */ submissionsV2?: BulkCreateSubmissionBySubmitterData[]; /** Validation will be mode is more forgiving, for example "required" won't be validated. */ lenientValidation?: boolean; } /** * Retrieves a submission by ID. * @param submissionId - ID of the submission to retrieve. * @public * @requiredField submissionId * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @returns The retrieved submission. * @fqn wix.forms.v4.FormSubmissionService.GetSubmission */ export declare function getSubmission(submissionId: string): Promise; /** * Updates a submission. * * * Each time the submission is updated, `revision` increments by 1. The existing `revision` must be included when updating the submission. This ensures you're working with the latest submission information, and prevents unintended overwrites. * @param _id - Submission ID. * @public * @requiredField _id * @requiredField submission * @requiredField submission.formId * @requiredField submission.revision * @param submission - Submission to update. * @permissionId WIX_FORMS.SUBMISSION_UPDATE_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @returns The updated submission. * @fqn wix.forms.v4.FormSubmissionService.UpdateSubmission */ export declare function updateSubmission(_id: string | null, submission: UpdateSubmission): Promise; export interface UpdateSubmission { /** * Submission ID. * @readonly */ _id?: string | null; /** ID of the form which the submission belongs to. */ formId?: string; /** * The app which the form submissions belong to. For example, the namespace for the Wix Forms app is `wix.form_app.form`. Call `Get Submission` to retrieve the namespace. * @readonly */ namespace?: string; /** Status of the submission. */ status?: SubmissionStatus; /** Submission values where `key` is the form field and `value` is the data submitted for the given field. */ submissions?: Record; /** Date and time the form submission was created. */ _createdDate?: Date | null; /** * Date and time the form submission was updated. * @readonly */ _updatedDate?: Date | null; /** * Revision number, which increments by 1 each time the form submission is updated. To prevent conflicting changes, the existing revision must be used when updating a form submission. * @readonly */ revision?: string | null; /** * ID of the visitor that submitted the form. * @readonly */ submitter?: Submitter; /** Whether a site owner marked a submission as "seen". */ seen?: boolean; /** Data extension object that holds users' and apps' fields. */ extendedFields?: ExtendedFields; /** * Order details.
* Note: This object is only applicable when submittng a form in the Wix Payments app. */ orderDetails?: OrderDetails; /** Contact ID of a site visitor who created the submission. */ contactId?: string | null; /** authorized viewer user id */ accessRestriction?: string | null; /** Tag ids collections associated with current entity. */ tags?: PublicTags; } /** * Confirms a submission. * * * You can only confirm a submission that has a `PENDING` status. * When using forms from the [Wix Pricing Plans](https://www.wix.com/app-market/paid-plans?referral=collection&appIndex=42&referralTag=made-by-wix&referralSectionName=made-by-wix) app, the default submission status is `PENDING`. * When using forms from the [Wix Forms]() app, the default form submission status is `CONFIRMED`. You can change the default status for individual submissions using the `updateSubmission()` method. * @param submissionId - Submission ID to confirm. * @public * @requiredField submissionId * @permissionId WIX_FORMS.SUBMISSION_UPDATE_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.ConfirmSubmission */ export declare function confirmSubmission(submissionId: string): Promise; /** * Deletes a submission. * * * This function moves the form submission into the trash bin. To delete the submission permanently, change the default `permanent` field value to `true.` * @param submissionId - ID of the submission to delete. * @public * @requiredField submissionId * @param options - Optional fields. * @permissionId WIX_FORMS.SUBMISSION_DELETE * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.DeleteSubmission */ export declare function deleteSubmission(submissionId: string, options?: DeleteSubmissionOptions): Promise; export interface DeleteSubmissionOptions { /** * Delete the submission, bypassing the trash bin. This means that the submission is permanently delete and cannot be restored. * * * Default: `false` */ permanent?: boolean; /** Whether to preserve files, associated with the submission. If the value is `false`, then the files are deleted after 210 days. */ preserveFiles?: boolean; } /** * Deletes submissions by IDS for specific form. * @param formId - Form ID. * @public * @documentationMaturity preview * @requiredField formId * @permissionId WIX_FORMS.SUBMISSION_DELETE * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.BulkDeleteSubmission */ export declare function bulkDeleteSubmission(formId: string, options?: BulkDeleteSubmissionOptions): Promise; export interface BulkDeleteSubmissionOptions { /** Submission ids. */ submissionIds?: string[]; /** * Delete submission bypassing trash-bin * Default: false */ permanent?: boolean; /** Preserve files. */ preserveFiles?: boolean; } /** * Restores deleted submission * @param submissionId - ID of the submission to restore. * @public * @documentationMaturity preview * @requiredField submissionId * @permissionId WIX_FORMS.SUBMISSION_UPDATE_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.RestoreSubmissionFromTrashBin */ export declare function restoreSubmissionFromTrashBin(submissionId: string): Promise; /** * Remove deleted submission * @param submissionId - ID of the submission to restore. * @public * @documentationMaturity preview * @requiredField submissionId * @permissionId WIX_FORMS.SUBMISSION_DELETE * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.RemoveSubmissionFromTrashBin */ export declare function removeSubmissionFromTrashBin(submissionId: string): Promise; /** * Remove multiple deleted submissions * @param formId - Form ID. * @public * @documentationMaturity preview * @requiredField formId * @permissionId WIX_FORMS.SUBMISSION_DELETE * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.BulkRemoveSubmissionFromTrashBin */ export declare function bulkRemoveSubmissionFromTrashBin(formId: string, options?: BulkRemoveSubmissionFromTrashBinOptions): Promise; export interface BulkRemoveSubmissionFromTrashBinOptions { /** Submission ids. */ submissionIds?: string[]; } /** * List deleted submissions * @param formId - Form ID. * @public * @documentationMaturity preview * @requiredField formId * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.ListDeletedSubmissions */ export declare function listDeletedSubmissions(formId: string, options?: ListDeletedSubmissionsOptions): Promise; export interface ListDeletedSubmissionsOptions { /** Submission ids. */ submissionIds?: string[]; /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not filter or `order`. */ paging?: CursorPaging; /** * List of statuses of submissions which should be returned * Default: CONFIRMED */ statuses?: SubmissionStatus[]; } /** * Get deleted submission * @param submissionId - Submission id. * @public * @documentationMaturity preview * @requiredField submissionId * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.GetDeletedSubmission */ export declare function getDeletedSubmission(submissionId: string): Promise; /** * Deprecated on '2023-08-08'. Use QuerySubmissionsByNamespace. * @param query - Query options. * @public * @documentationMaturity preview * @requiredField query * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.QuerySubmission * @deprecated * @replacedBy com.wixpress.forms.v4.FormSubmissionService.QuerySubmissionsByNamespace * @targetRemovalDate 2025-04-01 */ export declare function querySubmission(query: CursorQuery, options?: QuerySubmissionOptions): Promise; export interface QuerySubmissionOptions { /** Whether to return only your own submissions. If `false`, returns all submissions based on query filters. */ onlyYourOwn?: boolean; } /** * > **Note:** The Form Submission API only works with the Wix Forms app. Call [GetAppInstance](https://dev.wix.com/docs/rest/api-reference/app-management/apps/app-instance/get-app-instance) to confirm that the app named `wix_forms` is installed on the site. *
* * Returns a list of up to 100 submissions, given the provided paging, filtering, and sorting. * * You can only query submissions from a specified namespace. Use the query filter on the `namespace` field, otherwise you will receive an error. * * For field support for filters and sorting, see [Form Submissions: Supported Filters and Sorting](https://dev.wix.com/docs/rest/api-reference/wix-forms/form-submissions/sort-and-filter).option * * To learn about working with _Query_ endpoints, see [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language), [Sorting and Paging](https://dev.wix.com/api/rest/getting-started/pagination), and [Field Projection](https://dev.wix.com/api/rest/getting-started/field-projection). * @param search - Query options. * @public * @documentationMaturity preview * @requiredField search * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.SearchSubmissionsByNamespace */ export declare function searchSubmissionsByNamespace(search: CursorSearch): Promise; /** * Creates a query to retrieve a list of submissions. * * * The `querySubmissionsByNamespace()` method builds a query to retrieve a list of submissions from the specified namespace and returns a [`SubmissionsQueryBuilder`](#submissionsquerybuilder) object. * >**Note:** You can only query submissions from a specified namespace. Use the query filter on the `namespace` field, otherwise you will receive an error. * * The returned object contains the query definition, which is typically used to run the query using the [`find()`](#submissionsquerybuilder/find) method. * * You can refine the query by chaining `SubmissionsQueryBuilder` methods onto the query. `SubmissionsQueryBuilder` methods enable you to sort, filter, and control the results that `querySubmissionsByNamespace()` returns. * * The following `SubmissionsQueryBuilder` methods are supported for `querySubmissionsByNamespace()`. For a full description of the Submissions object, see the object returned for the [`items`](#submissionsqueryresult/items) property in [`SubmissionsQueryResult`](#submissionsqueryresult). * @public * @param options - Query options. * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.QuerySubmissionsByNamespace */ export declare function querySubmissionsByNamespace(options?: QuerySubmissionsByNamespaceOptions): SubmissionsQueryBuilder; export interface QuerySubmissionsByNamespaceOptions { /** Whether to return only your own submissions. If `false`, returns all submissions based on query filters. */ onlyYourOwn?: boolean | undefined; } interface QueryCursorResult { cursors: Cursors; hasNext: () => boolean; hasPrev: () => boolean; length: number; pageSize: number; } export interface SubmissionsQueryResult extends QueryCursorResult { items: FormSubmission[]; query: SubmissionsQueryBuilder; next: () => Promise; prev: () => Promise; } export interface SubmissionsQueryBuilder { /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ eq: (propertyName: '_id' | 'formId' | 'namespace' | 'status' | '_createdDate' | '_updatedDate' | 'submitter.memberId' | 'submitter.visitorId' | 'submitter.applicationId' | 'submitter.userId' | 'seen', value: any) => SubmissionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ ne: (propertyName: '_id' | 'formId' | 'status' | '_createdDate' | '_updatedDate' | 'submitter.memberId' | 'submitter.visitorId' | 'submitter.applicationId' | 'submitter.userId' | 'seen', value: any) => SubmissionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ ge: (propertyName: '_createdDate' | '_updatedDate', value: any) => SubmissionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ gt: (propertyName: '_createdDate' | '_updatedDate', value: any) => SubmissionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ le: (propertyName: '_createdDate' | '_updatedDate', value: any) => SubmissionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ lt: (propertyName: '_createdDate' | '_updatedDate', value: any) => SubmissionsQueryBuilder; in: (propertyName: '_id' | 'formId' | 'status' | '_createdDate' | '_updatedDate' | 'submitter.memberId' | 'submitter.visitorId' | 'submitter.applicationId' | 'submitter.userId', value: any) => SubmissionsQueryBuilder; /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */ ascending: (...propertyNames: Array<'_id' | 'formId' | 'status' | '_createdDate' | '_updatedDate' | 'submitter.memberId' | 'submitter.visitorId' | 'submitter.applicationId' | 'submitter.userId' | 'seen'>) => SubmissionsQueryBuilder; /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */ descending: (...propertyNames: Array<'_id' | 'formId' | 'status' | '_createdDate' | '_updatedDate' | 'submitter.memberId' | 'submitter.visitorId' | 'submitter.applicationId' | 'submitter.userId' | 'seen'>) => SubmissionsQueryBuilder; /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */ limit: (limit: number) => SubmissionsQueryBuilder; /** @param cursor - A pointer to specific record */ skipTo: (cursor: string) => SubmissionsQueryBuilder; find: () => Promise; } /** * > **Note:** The Form Submission API only works with the Wix Forms app. Call [GetAppInstance](https://dev.wix.com/docs/rest/api-reference/app-management/apps/app-instance/get-app-instance) to confirm that the app named `wix_forms` is installed on the site. *
* Counts the number of submissions belonging to forms that were filtered and contain a provided expression. * @param filter - A filter object. Must filter by namespace. * @public * @requiredField filter * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.CountSubmissionsByFilter */ export declare function countSubmissionsByFilter(filter: Record | null, options?: CountSubmissionsByFilterOptions): Promise; export interface CountSubmissionsByFilterOptions { /** Free text to match in searchable fields. */ search?: SearchDetails; } /** * Counts the number of submissions belonging to the specified forms. * * * The `countSubmissions()` function is useful for analytics and tracking purposes. For example, if you have a contact form on your website, you can use this function to track how many submissions it receives daily, weekly, or monthly. * @public * @requiredField formIds * @requiredField namespace * @param namespace - The app which the form submissions belong to. For example, the namespace for the Wix Forms app is `wix.form_app.form`. Call `getSubmission()` to retrieve the namespace. * @param formIds - Form IDs which submissions should be counted. * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.CountSubmissions */ export declare function countSubmissions(formIds: string[], namespace: string, options?: CountSubmissionsOptions): Promise; export interface CountSubmissionsOptions { /** * Status of the submission. * - `PENDING`: A submission is created, but has not yet been recorded in the Wix Forms collection. * - `PAYMENT_WAITING`: A form submission requiring payment is created. * - `PAYMENT_CANCELED`: An order of a form submission is canceled. * - `CONFIRMED`: A submission is recorded in the Wix Forms collection. */ statuses?: SubmissionStatus[]; } /** * > **Note:** * > The Submissions API is only available in the Wix Studio editor. * * Counts the number of submissions belonging to the specified forms. * @param formIds - Form IDs. * @param namespace - Identifies the app which the form submissions belong to. For example, the namespace for the Wix Forms App is `"wix.form_app.form"`. The namespace of a submission can be retrieved using the Get Submission endpoint. * @public * @documentationMaturity preview * @requiredField formIds * @requiredField namespace * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.CountDeletedSubmissions */ export declare function countDeletedSubmissions(formIds: string[], namespace: string, options?: CountDeletedSubmissionsOptions): Promise; export interface CountDeletedSubmissionsOptions { /** * List of statuses of submissions which should be taken into count * Default: CONFIRMED, PAYMENT_WAITING, PAYMENT_CANCELED */ statuses?: SubmissionStatus[]; } /** * Retrieves a URL generated by the [Media Manager](https://www.wix.com/velo/reference/wix-media-v2/files/generatefileuploadurl) to use when creating a submission that includes a field for uploading files. * > **Note:** You need at least a [Standard Premium](https://support.wix.com/en/article/choosing-a-premium-plan) plan for your site to upload files. * * * To learn how external clients can use the generated upload URL to upload a file to the Media Manager, see [Upload API](https://www.wix.com/velo/reference/wix-media-v2/files/upload-api). * @param formId - Form ID. * @param filename - Name of file to upload. * @param mimeType - [Mime type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#) of file to upload. * * For example, `'image/png'` * @public * @requiredField filename * @requiredField formId * @requiredField mimeType * @permissionId WIX_FORMS.SUBMISSION_CREATE * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.forms.v4.FormSubmissionService.GetMediaUploadURL */ export declare function getMediaUploadUrl(formId: string, filename: string, mimeType: string): Promise; /** * Marks form submissions as "seen". * * * This function marks the submissions as if they were seen by the site owner. Only site collaborators with the **[Manage Submission](https://support.wix.com/en/article/roles-permissions-accessing-roles-permissions)** permissions can mark submissions. * @public * @requiredField formId * @requiredField ids * @param ids - IDs of submissions to mark as seen. * @param formId - ID of the form which the submissions belong to. * @permissionId WIX_FORMS.SUBMISSION_READ_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @permissionScope Manage Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.MANAGE-ORDERS * @permissionScope Read Orders * @permissionScopeId SCOPE.DC-PAIDPLANS.READ-ORDERS * @permissionScope Read Submissions * @permissionScopeId SCOPE.DC-FORMS.READ-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.BulkMarkSubmissionsAsSeen */ export declare function bulkMarkSubmissionsAsSeen(ids: string[], formId: string): Promise; /** * Gets submission as document which may include the document download url if the document is ready. * @param submissionId - Submission ID. * @public * @documentationMaturity preview * @requiredField submissionId * @permissionId WIX_FORMS.SUBMISSION_UPDATE_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.GetSubmissionDownloadUrl */ export declare function getSubmissionDownloadUrl(submissionId: string): Promise; /** * Update Extended Fields of the Form * @param _id - ID of the entity to update. * @param namespace - Identifier for the app whose extended fields are being updated. * @public * @documentationMaturity preview * @requiredField _id * @requiredField namespace * @requiredField options * @requiredField options.namespaceData * @permissionId WIX_FORMS.SUBMISSION_UPDATE_ANY * @permissionScope Manage Submissions * @permissionScopeId SCOPE.DC-FORMS.MANAGE-SUBMISSIONS * @applicableIdentity APP * @fqn wix.forms.v4.FormSubmissionService.UpdateExtendedFields */ export declare function updateExtendedFields(_id: string, namespace: string, options: UpdateExtendedFieldsOptions): Promise; export interface UpdateExtendedFieldsOptions { /** Data to update. Structured according to the [schema](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields#json-schema-for-extended-fields) defined when the extended fields were configured. */ namespaceData: Record | null; } /** * Upserts contact from submission. * @param submissionId - Submission from which contact needs to be upserted. * @public * @documentationMaturity preview * @requiredField submissionId * @permissionId WIX_FORMS.SUBMISSION_CONTACT_UPSERT * @fqn wix.forms.v4.FormSubmissionContactUpsertService.UpsertContactFromSubmission */ export declare function upsertContactFromSubmission(submissionId: string, options?: UpsertContactFromSubmissionOptions): Promise; export interface UpsertContactFromSubmissionOptions { /** Optional contact id to which submission should be mapped. */ contactId?: string | null; /** Indicates contact has verified primary email. */ emailVerified?: boolean; } export {};