/** A Data Extension Schema is the [JSON schema](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/the-json-schema) within a [schema plugin extension](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions) defining `extendedFields` that are added to a Wix API's service object. */ export interface DataExtensionSchema { /** * Schema ID. * @readonly */ id?: string | null; /** FQDN of the entity this schema extends. */ fqdn?: string | null; /** * Namespace for this schema. For example, an app creating schemas might use their app name as a namespace. * When a site owner creates a user-defined schema, the namespace is: `_user_fields`. */ namespace?: string | null; /** * Schema definition in [JSON schema format](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/the-json-schema) with the following [vocab](https://docs.json-everything.net/schema/vocabs/) extension: * ``` * { * "$schema": "https://json-schema.org/draft/2020-12/schema", * "$id": "https://wixapis.com/v1/json-schema/extensions", * "$vocabulary": { * "https://wixapis.com/v1/json-schema/extensions/vocab/data-extensions": true * }, * "$dynamicAnchor": "meta", * "title": "Wix' data-extensions vocabulary meta schema", * "type": [ * "object", * "boolean" * ], * "properties": { * "x-wix-permissions": { * "type": "object", * "description": "list of identity types that are allowed reading schema properties", * "properties": { * "read": { * "type": "array", * "items": { * "type": "string", * "enum": [ * "apps", * "owning-app", * "users", * "users-of-users" * ] * } * }, * "write": { * "type": "array", * "items": { * "type": "string", * "enum": [ * "apps", * "owning-app", * "users", * "users-of-users" * ] * } * } * } * }, * "x-wix-display": { * "type": "object", * "description": "field display properties", * "schema": { * "properties": { * "placeholder": { * "type": "string", * "maxLength": 255, * "description": "placeholder text for input fields" * }, * "label": { * "type": "string", * "maxLength": 255, * "description": "label of the input fields" * }, * "hint": { * "type": "string", * "maxLength": 255, * "description": "a short explanation that appears next to the input field" * } * } * } * } * } * } * ``` */ jsonSchema?: Record | null; /** * Date and time the schema was last updated. * @readonly */ updatedDate?: Date | null; /** * Date and time the schema was created. * @readonly */ createdDate?: Date | null; /** * Revision number, which increments by 1 each time the schema is updated. To prevent conflicting changes, the existing revision must be used when updating a schema. * @readonly */ revision?: string | null; /** * Maximum allowed schema size in bytes. * @readonly */ maxLimitBytes?: number | null; /** * Current schema size in bytes. * @readonly */ currentSizeBytes?: number | null; } export declare enum DataExtensionSchemaState { } 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 { entityAsJson?: string; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo; } 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. */ currentEntityAsJson?: string; } export interface EntityDeletedEvent { /** Entity that was deleted */ deletedEntityAsJson?: string | null; } export interface ActionEvent { bodyAsJson?: string; } 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 ReindexEvent { /** fqdn of the dext schema that needs reindexing */ fqdn?: string; /** List of fields that needs reindexing */ fields?: ReindexField[]; } export interface ReindexField { /** path of field that needs reindexing */ fieldPath?: string; /** only reindex records updated after this timestamp */ reindexSince?: Date | null; } export interface CreateDataExtensionSchemaRequest { /** Schema to create. */ dataExtensionSchema: DataExtensionSchema; } export interface CreateDataExtensionSchemaResponse { /** Created schema. */ dataExtensionSchema?: DataExtensionSchema; } export interface UpdateDataExtensionSchemaRequest { /** Schema to update. */ dataExtensionSchema: DataExtensionSchema; } export interface UpdateDataExtensionSchemaResponse { /** Updated schema. */ dataExtensionSchema?: DataExtensionSchema; } export interface ListDataExtensionSchemasRequest { /** [Fully qualified domain name](https://dev.wix.com/docs/rest/articles/getting-started/fqdns). */ fqdn: string; /** Namespaces within the given entity. */ namespaces?: string[]; /** Additional fields that are hidden by default. For example, fields with `"x-wix-archived": true`. */ fields?: RequestedField[]; /** Extension points within the given entity. */ extensionPoints?: string[]; } export declare enum RequestedField { /** Undefined requested field. */ UNKNOWN_REQUESTED_FIELD = "UNKNOWN_REQUESTED_FIELD", /** Returns `x-wix-archived` fields in `DataExtensionSchema.json_schema`. */ ARCHIVED = "ARCHIVED" } export interface ListDataExtensionSchemasResponse { /** Requested schemas. */ dataExtensionSchemas?: DataExtensionSchema[]; } export interface DeleteDemoDataExtensionSchemaRequest { /** Schema ID. */ dataExtensionSchemaId?: string; } export interface DeleteDemoDataExtensionSchemaResponse { } export interface DeleteGlobalExtensionSchemaRequest { /** fqdn */ fqdn?: string; /** namespace */ namespace?: string; /** extension point */ extensionPoint?: string; /** state */ state?: DataExtensionSchemaState; } export interface DeleteGlobalExtensionSchemaResponse { } export interface DeleteByWhiteListedMetaSiteRequest { /** Meta site id */ metaSiteId: string; } export interface DeleteByWhiteListedMetaSiteResponse { /** has more */ hasMore?: boolean; } export interface Empty { } export interface AppRuntimeDataEvent { appRuntimeData?: AppRuntimeDataCacheEntity; isDraft?: boolean; } export interface AppRuntimeDataCacheEntity { appData?: AppData; translatedDataMap?: Record; } export interface RuntimeComponentCacheEntity extends RuntimeComponentCacheEntityComponentOneOf { componentEntity?: RuntimeComponentCacheEntityComponent; componentExperimentEntity?: RuntimeComponentCacheEntityExperiment; } /** @oneof */ export interface RuntimeComponentCacheEntityComponentOneOf { componentEntity?: RuntimeComponentCacheEntityComponent; componentExperimentEntity?: RuntimeComponentCacheEntityExperiment; } export interface RuntimeComponentCacheEntityComponent { /** The ID of the component */ componentId?: string; /** The version of the component */ version?: number; /** Component name */ name?: string | null; /** the type of the component */ type?: ComponentType; /** the data of the component */ data?: ComponentData; /** The external id of the component */ externalId?: string | null; /** The additional translated keys of the component */ additionalTranslatedKeys?: Record; /** Partial update patch value */ partialUpdatePatch?: string | null; } /** Component type */ export declare enum ComponentType { NONE = "NONE", STUDIO = "STUDIO", PLATFORM = "PLATFORM", WORKER = "WORKER", DASHBOARD = "DASHBOARD", WIDGET = "WIDGET", PAGE = "PAGE", DASHBOARD_PLATFORM = "DASHBOARD_PLATFORM", STUDIO_WIDGET = "STUDIO_WIDGET", EMBEDDED_SCRIPT = "EMBEDDED_SCRIPT", EXTENSION = "EXTENSION", SNIPPET_SOLUTION = "SNIPPET_SOLUTION", DATA_COMPONENT = "DATA_COMPONENT", WEB = "WEB", DC_CONFIG = "DC_CONFIG", WIDGET_OUT_OF_IFRAME = "WIDGET_OUT_OF_IFRAME", PAGE_OUT_OF_IFRAME = "PAGE_OUT_OF_IFRAME", STATIC_FILE = "STATIC_FILE", APP_CONFIG = "APP_CONFIG", MULTIPLE_DASHBOARDS = "MULTIPLE_DASHBOARDS", PAYMENTS_GATEWAY = "PAYMENTS_GATEWAY", CODE_PACKAGE = "CODE_PACKAGE", AUTOMATION_TRIGGER = "AUTOMATION_TRIGGER", INVOICES_ACTIONS = "INVOICES_ACTIONS", DASHBOARD_APPLICATION = "DASHBOARD_APPLICATION", CONTACT_LABELS = "CONTACT_LABELS", WIDGET_PLUGIN = "WIDGET_PLUGIN", CROSS_SELL = "CROSS_SELL", LOCAL_DELIVERY = "LOCAL_DELIVERY", PAYMENT_PROVIDER = "PAYMENT_PROVIDER", ECOM_MEMBERSHIPS = "ECOM_MEMBERSHIPS", ECOM_LINE_ITEMS_ENRICHER = "ECOM_LINE_ITEMS_ENRICHER", ECOM_SHIPPING_RATES = "ECOM_SHIPPING_RATES", SHIPPING_LABEL_CARRIER = "SHIPPING_LABEL_CARRIER", RESTAURANTS_POS = "RESTAURANTS_POS", FICTIONAL_SHIPPING_PROVIDER = "FICTIONAL_SHIPPING_PROVIDER", ALERT_ENRICHER = "ALERT_ENRICHER", DATA_EXTENSIONS = "DATA_EXTENSIONS", GENERIC_HOOKS = "GENERIC_HOOKS", AUTOMATIONS_ACTION_PROVIDER = "AUTOMATIONS_ACTION_PROVIDER", ECOM_CATALOG = "ECOM_CATALOG", BACK_OFFICE_EXTENSION_CONTAINER = "BACK_OFFICE_EXTENSION_CONTAINER", BACK_OFFICE_EXTENSION = "BACK_OFFICE_EXTENSION", AUTOMATIONS_TRIGGER_PROVIDER = "AUTOMATIONS_TRIGGER_PROVIDER", IDENTITY_PRE_REGISTRATION = "IDENTITY_PRE_REGISTRATION", PREMIUM_PRODUCTS_PATHS = "PREMIUM_PRODUCTS_PATHS", ECOM_CUSTOM_SCOPE = "ECOM_CUSTOM_SCOPE", GIFT_CARDS_PROVIDER = "GIFT_CARDS_PROVIDER", DEALER_EXTERNAL_FILTER_PROVIDER = "DEALER_EXTERNAL_FILTER_PROVIDER", ECOM_DROPSHIPPING_PROVIDER = "ECOM_DROPSHIPPING_PROVIDER", INVOICES_PROVIDER = "INVOICES_PROVIDER", SEO_KEYWORDS_SUGGESTIONS = "SEO_KEYWORDS_SUGGESTIONS", ECOM_DISCOUNTS_TRIGGER = "ECOM_DISCOUNTS_TRIGGER", MULTILINGUAL_CONTENT_PROVIDER = "MULTILINGUAL_CONTENT_PROVIDER", APPLICATION_AUTOMATION = "APPLICATION_AUTOMATION", BACK_OFFICE_SIDEBAR_CATEGORY = "BACK_OFFICE_SIDEBAR_CATEGORY", BACK_OFFICE_PAGE = "BACK_OFFICE_PAGE", ECOM_ADDITIONAL_FEES = "ECOM_ADDITIONAL_FEES", PING_USER_NOTIFICATION = "PING_USER_NOTIFICATION", ECOM_RECOMMENDATIONS_PROVIDER = "ECOM_RECOMMENDATIONS_PROVIDER", BOOKINGS_PRICING_PROVIDER = "BOOKINGS_PRICING_PROVIDER", IDENTITY_AUTHENTICATOR = "IDENTITY_AUTHENTICATOR", IDENTITY_IDP_CONNECTOR = "IDENTITY_IDP_CONNECTOR", ITEMS_SELECTION_PROVIDER = "ITEMS_SELECTION_PROVIDER", PORTFOLIO_SYNCED_PROJECTS_PROVIDER = "PORTFOLIO_SYNCED_PROJECTS_PROVIDER", COMMUNICATION_CHANNEL = "COMMUNICATION_CHANNEL", IDENTITY_POST_LOGIN = "IDENTITY_POST_LOGIN", BACK_OFFICE_WIDGET = "BACK_OFFICE_WIDGET", SOCIAL_MARKETING_DESIGN = "SOCIAL_MARKETING_DESIGN", FORMS_SUBMISSIONS_PROVIDER = "FORMS_SUBMISSIONS_PROVIDER", WIX_OFFERING = "WIX_OFFERING", DEV_CENTER_TESTING_COMPONENT = "DEV_CENTER_TESTING_COMPONENT", COMPONENTS_VALIDATOR_PROVIDER = "COMPONENTS_VALIDATOR_PROVIDER", COMPONENTS_TRANSLATIONS_ADDITIONAL_FIELDS_PROVIDER = "COMPONENTS_TRANSLATIONS_ADDITIONAL_FIELDS_PROVIDER", FORMS_SCHEMA_PROVIDER = "FORMS_SCHEMA_PROVIDER", BOOKINGS_EXTERNAL_CALENDAR_PROVIDER = "BOOKINGS_EXTERNAL_CALENDAR_PROVIDER", ECOM_DEFAULT_TAXATION_CATEGORY = "ECOM_DEFAULT_TAXATION_CATEGORY", VIEWER_DYNAMIC_SITE_STRUCTURE_PROVIDER = "VIEWER_DYNAMIC_SITE_STRUCTURE_PROVIDER", PING_UOU_NOTIFICATION = "PING_UOU_NOTIFICATION", HEADLESS_OAUTH = "HEADLESS_OAUTH", ECOM_TAX_CALCULATOR_SPI = "ECOM_TAX_CALCULATOR_SPI", COMMENTS_MODERATION_PROVIDER = "COMMENTS_MODERATION_PROVIDER", GRID_APP_FILES_TRANSFORMER = "GRID_APP_FILES_TRANSFORMER", BENEFIT_PROGRAMS_POLICY_PROVIDER = "BENEFIT_PROGRAMS_POLICY_PROVIDER", PREMIUM_CUSTOM_CHARGES = "PREMIUM_CUSTOM_CHARGES", ECOM_VALIDATIONS = "ECOM_VALIDATIONS", COMPONENT_REFERENCE_DATA_PROVIDER = "COMPONENT_REFERENCE_DATA_PROVIDER", WIX_REVIEWS_PRODUCT_CATALOG = "WIX_REVIEWS_PRODUCT_CATALOG", SOCIAL_MARKETING_DESIGNS_PROVIDER = "SOCIAL_MARKETING_DESIGNS_PROVIDER", GOOGLE_BUSINESS_PROFILE_FEATURE_PROVIDER = "GOOGLE_BUSINESS_PROFILE_FEATURE_PROVIDER", COMMENTS_FILTER_PROVIDER = "COMMENTS_FILTER_PROVIDER", BILLING_TAX_ID_VALIDATOR = "BILLING_TAX_ID_VALIDATOR", PING_SETTINGS_GROUP = "PING_SETTINGS_GROUP", FORMS_SPAM_SUBMISSIONS_PROVIDER = "FORMS_SPAM_SUBMISSIONS_PROVIDER", EDITOR_ADDON = "EDITOR_ADDON", EXTERNAL_DATABASE_PROVIDER = "EXTERNAL_DATABASE_PROVIDER", ECOM_PAYMENT_SETTINGS = "ECOM_PAYMENT_SETTINGS", NOTIFICATION_TOPIC = "NOTIFICATION_TOPIC", NOTIFICATION_PREFERENCES_FILTER_PROVIDER = "NOTIFICATION_PREFERENCES_FILTER_PROVIDER", BOOKINGS_RESOURCE_TYPES_PROVIDER = "BOOKINGS_RESOURCE_TYPES_PROVIDER", PRICING_PLANS_FORM_CONFIGURATION = "PRICING_PLANS_FORM_CONFIGURATION", USER_NOTIFICATION = "USER_NOTIFICATION", CONTACT_NOTIFICATION = "CONTACT_NOTIFICATION", UNIFIED_PAGE = "UNIFIED_PAGE", AVAILABILITY_TIME_SLOTS_CONFIGURATION_PROVIDER = "AVAILABILITY_TIME_SLOTS_CONFIGURATION_PROVIDER", PROPOSAL_EDITOR_PROVIDER = "PROPOSAL_EDITOR_PROVIDER", CUSTOM_TABLE_RESERVATIONS_PROVIDER = "CUSTOM_TABLE_RESERVATIONS_PROVIDER", COMMENTS_CONTEXT_PROVIDER = "COMMENTS_CONTEXT_PROVIDER", FORMS_SPAM_SUBMISSION_REPORTS_PROVIDER = "FORMS_SPAM_SUBMISSION_REPORTS_PROVIDER", AUTOMATIONS_VELO_ACTION_PROVIDER = "AUTOMATIONS_VELO_ACTION_PROVIDER", CALENDAR_EVENT_TYPE_PROVIDER = "CALENDAR_EVENT_TYPE_PROVIDER", /** Reserved - previously was `SERVICE_AVAILABILITY_POLICY_PROVIDER` */ RESERVED = "RESERVED", SMS_ACTION_MESSAGE = "SMS_ACTION_MESSAGE", BOOKING_POLICY_PROVIDER = "BOOKING_POLICY_PROVIDER", MULTI_SERVICE_BOOKING_POLICY_PROVIDER = "MULTI_SERVICE_BOOKING_POLICY_PROVIDER", AI_ASSISTANT = "AI_ASSISTANT", FORMS_SUBMISSIONS_EXTENSION_PROVIDER = "FORMS_SUBMISSIONS_EXTENSION_PROVIDER", MULTILINGUAL_TRANSLATION_SCHEMA = "MULTILINGUAL_TRANSLATION_SCHEMA", TAX_CALCULATION_PROVIDER = "TAX_CALCULATION_PROVIDER", TAX_GROUPS_PROVIDER = "TAX_GROUPS_PROVIDER", BACK_OFFICE_MODAL = "BACK_OFFICE_MODAL", DEPLOYMENT_PIPELINE_PROVIDER = "DEPLOYMENT_PIPELINE_PROVIDER", CUSTOM_ELEMENT_WIDGET = "CUSTOM_ELEMENT_WIDGET", BACK_OFFICE_EXTENSION_WIDGET = "BACK_OFFICE_EXTENSION_WIDGET", BACK_OFFICE_EXTENSION_MENU_ITEM = "BACK_OFFICE_EXTENSION_MENU_ITEM", FORM_TEMPLATE = "FORM_TEMPLATE", NOTIFICATION_CONTENT = "NOTIFICATION_CONTENT", BROADCAST_LIST = "BROADCAST_LIST", PARTNERS_PAYOUTS = "PARTNERS_PAYOUTS", WIX_REVIEWS_ENTITY_CATALOG = "WIX_REVIEWS_ENTITY_CATALOG", VELO_PUBLISH_PIPELINE_TASK_PROVIDER = "VELO_PUBLISH_PIPELINE_TASK_PROVIDER", FUNCTIONS_SHOP_PRICE_PROVIDER = "FUNCTIONS_SHOP_PRICE_PROVIDER", FUNCTION = "FUNCTION", ECOM_CHECKOUT_CONTENT = "ECOM_CHECKOUT_CONTENT", COMMUNICATION_CHANNEL_PROVIDER = "COMMUNICATION_CHANNEL_PROVIDER", WEBHOOK = "WEBHOOK", TOPOLOGY = "TOPOLOGY", LOYALTY_CUSTOM_REWARDS = "LOYALTY_CUSTOM_REWARDS", FUNCTION_RECIPE = "FUNCTION_RECIPE", BACK_OFFICE_EXTERNAL_URL = "BACK_OFFICE_EXTERNAL_URL", IDENTITY_FACTOR = "IDENTITY_FACTOR", ECOM_DISCOUNTS = "ECOM_DISCOUNTS", VELO_CUSTOM_CSS = "VELO_CUSTOM_CSS", DEALER_ADAPTIVE_COMPONENT_PROVIDER = "DEALER_ADAPTIVE_COMPONENT_PROVIDER", AI_ASSISTANT_ACTION = "AI_ASSISTANT_ACTION", ECOM_INVENTORY = "ECOM_INVENTORY", MONITORING = "MONITORING", PAPI_PROVIDER = "PAPI_PROVIDER", UNIFIED_LIGHTBOX = "UNIFIED_LIGHTBOX", FORMS_EXTENSION_PROVIDER = "FORMS_EXTENSION_PROVIDER", MULTILINGUAL_TRANSLATION_SCHEMA_GROUP = "MULTILINGUAL_TRANSLATION_SCHEMA_GROUP", PANEL = "PANEL", PREMIUM_PURCHASE_VALIDATIONS = "PREMIUM_PURCHASE_VALIDATIONS", BROWSER_STORAGE = "BROWSER_STORAGE", SDK_DEFINITION = "SDK_DEFINITION", SITE_WIDGET_SLOT = "SITE_WIDGET_SLOT", CALENDAR_EVENT_VALIDATION_PROVIDER = "CALENDAR_EVENT_VALIDATION_PROVIDER", CLIENT_SIDE_SERVICE = "CLIENT_SIDE_SERVICE", BILLING_SETTINGS = "BILLING_SETTINGS", PATTERNS_WIZARD = "PATTERNS_WIZARD", APPLICATION_PROFILE = "APPLICATION_PROFILE", TEXT_TO_SPEECH_ACTION_MESSAGE = "TEXT_TO_SPEECH_ACTION_MESSAGE", AUDIENCE_PROVIDER = "AUDIENCE_PROVIDER", PRICING_PLANS_PRICING = "PRICING_PLANS_PRICING", PRICING_PLAN_CUSTOMER_START_DATE_LIMIT = "PRICING_PLAN_CUSTOMER_START_DATE_LIMIT", PRICING_PLAN_START_DATE_POLICY = "PRICING_PLAN_START_DATE_POLICY", EVENTS_TICKET_RESERVATIONS = "EVENTS_TICKET_RESERVATIONS", PAYMENTS_DISPUTE_SERVICE_PLUGIN = "PAYMENTS_DISPUTE_SERVICE_PLUGIN", PRICING_PLANS_FEES = "PRICING_PLANS_FEES", EDITOR_REACT_COMPONENT = "EDITOR_REACT_COMPONENT" } /** Component data */ export interface ComponentData extends ComponentDataDataOneOf { /** * Create a widget iframe that users can display on their site. We recommend submitting a proposal before using iframes in your app. * Learn More: https://devforum.wix.com/en/article/widget-components */ widgetComponentData?: WidgetComponentData; /** * Display an iframe as a page on a user's site. * Learn More: https://dev.wix.com/docs/build-apps/developer-tools/extensions/iframes/guide-to-page-extensions */ pageComponentData?: PageComponentData; /** * Open an iframe in the Dashboard, or add a link to a page on your platform. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/external-links/about-external-link-extensions */ dashboardComponentData?: DashboardComponentData; /** * Use an invisible iframe to track activity. It’s added to every page on the site (max. 1). * Learn More: https://devforum.wix.com/en/article/worker-components */ workerComponentData?: WorkerComponentData; /** * Inject a script into a site’s HTML code. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/embedded-scripts/about-embedded-scripts */ embeddedScriptComponentData?: EmbeddedScriptComponentData; /** * Display a widget that fits into a predefined slot in a Wix app. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-plugins/about-site-plugin-extensions */ widgetPlugin?: WidgetPluginComponentData; /** * Displays the options from your Shipping Rates service plugin in a site's cart and checkout. * Learn More: https://dev.wix.com/docs/rest/api-reference/wix-e-commerce/shipping-rates-integration-spi/introduction */ ecomShippingRates?: ShippingRatesConfig; /** Extend a Wix entity with custom fields for your app */ dataExtensions?: DataExtensionsComponentData; /** * eCommerce Catalog Service Plugin | Become a Wix catalog provider and integrate any external repository of sellable items with the Wix eCommerce platform. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/catalog-service-plugin/introduction */ ecomCatalog?: CatalogSPIConfig; /** * Gift Card SPI for Ecom Platform * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/gift-cards-service-plugin/introduction */ giftCardsProvider?: GiftCardProviderConfig; /** * Provide SEO keyword suggestions to site collaborators, report quota usage, and provide a page where users can upgrade their plan. * Learn More: https://dev.wix.com/docs/rest/api-reference/marketing/seo-keywords-suggestions-v-1/introduction */ seoKeywordsSuggestions?: SeoKeywordsSuggestionsSPIConfig; /** * Configure a page for your app that will be embedded in the Wix Dashboard. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-pages/about-dashboard-page-extensions */ backOfficePage?: BackOfficePage; /** * Displays the fees from your Additional Fees service plugin in a site's cart and checkout. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/additional-fees-service-plugin/introduction */ ecomAdditionalFees?: AdditionalFeesSPIConfig; /** * Premium Custom Charges Config * Learn More: https://dev.wix.com/docs/rest/api-reference/app-management/apps/custom-charges-spi/introduction */ premiumCustomCharges?: CustomChargesConfig; /** * Performs Validations for a site's cart and checkout. * Learn More: https://dev.wix.com/docs/rest/api-reference/wix-e-commerce/validations-integration-spi/introduction */ ecomValidations?: ValidationsSPIConfig; /** * Build a tool that adds functionality to the Wix editors. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/editor-extensions/about-editor-extensions */ editorAddon?: EditorAddon; /** External Database component */ externalDatabaseProvider?: ExternalDatabaseSpiConfig; /** * Ecom Payment Settings Service Plugin Config * Learn More: https://dev.wix.com/docs/rest/api-reference/wix-e-commerce/payment-settings-integration-spi/introduction */ ecomPaymentSettings?: PaymentSettingsSPIConfig; /** * Add a site page that displays selected widgets. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-pages/about-site-page-extensions */ unifiedPage?: UnifiedPage; /** Create a reusable modal that can be utilized across multiple pages within your app and in other applications. */ backOfficeModal?: BackOfficeModal; /** * Display a draggable widget on a site using a self-hosted custom element. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-widgets/about-site-widget-extensions */ customElementWidget?: CustomElementWidget; } /** @oneof */ export interface ComponentDataDataOneOf { /** * Create a widget iframe that users can display on their site. We recommend submitting a proposal before using iframes in your app. * Learn More: https://devforum.wix.com/en/article/widget-components */ widgetComponentData?: WidgetComponentData; /** * Display an iframe as a page on a user's site. * Learn More: https://dev.wix.com/docs/build-apps/developer-tools/extensions/iframes/guide-to-page-extensions */ pageComponentData?: PageComponentData; /** * Open an iframe in the Dashboard, or add a link to a page on your platform. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/external-links/about-external-link-extensions */ dashboardComponentData?: DashboardComponentData; /** * Use an invisible iframe to track activity. It’s added to every page on the site (max. 1). * Learn More: https://devforum.wix.com/en/article/worker-components */ workerComponentData?: WorkerComponentData; /** * Inject a script into a site’s HTML code. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/embedded-scripts/about-embedded-scripts */ embeddedScriptComponentData?: EmbeddedScriptComponentData; /** * Display a widget that fits into a predefined slot in a Wix app. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-plugins/about-site-plugin-extensions */ widgetPlugin?: WidgetPluginComponentData; /** * Displays the options from your Shipping Rates service plugin in a site's cart and checkout. * Learn More: https://dev.wix.com/docs/rest/api-reference/wix-e-commerce/shipping-rates-integration-spi/introduction */ ecomShippingRates?: ShippingRatesConfig; /** Extend a Wix entity with custom fields for your app */ dataExtensions?: DataExtensionsComponentData; /** * eCommerce Catalog Service Plugin | Become a Wix catalog provider and integrate any external repository of sellable items with the Wix eCommerce platform. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/catalog-service-plugin/introduction */ ecomCatalog?: CatalogSPIConfig; /** * Gift Card SPI for Ecom Platform * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/gift-cards-service-plugin/introduction */ giftCardsProvider?: GiftCardProviderConfig; /** * Provide SEO keyword suggestions to site collaborators, report quota usage, and provide a page where users can upgrade their plan. * Learn More: https://dev.wix.com/docs/rest/api-reference/marketing/seo-keywords-suggestions-v-1/introduction */ seoKeywordsSuggestions?: SeoKeywordsSuggestionsSPIConfig; /** * Configure a page for your app that will be embedded in the Wix Dashboard. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-pages/about-dashboard-page-extensions */ backOfficePage?: BackOfficePage; /** * Displays the fees from your Additional Fees service plugin in a site's cart and checkout. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/additional-fees-service-plugin/introduction */ ecomAdditionalFees?: AdditionalFeesSPIConfig; /** * Premium Custom Charges Config * Learn More: https://dev.wix.com/docs/rest/api-reference/app-management/apps/custom-charges-spi/introduction */ premiumCustomCharges?: CustomChargesConfig; /** * Performs Validations for a site's cart and checkout. * Learn More: https://dev.wix.com/docs/rest/api-reference/wix-e-commerce/validations-integration-spi/introduction */ ecomValidations?: ValidationsSPIConfig; /** * Build a tool that adds functionality to the Wix editors. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/editor-extensions/about-editor-extensions */ editorAddon?: EditorAddon; /** External Database component */ externalDatabaseProvider?: ExternalDatabaseSpiConfig; /** * Ecom Payment Settings Service Plugin Config * Learn More: https://dev.wix.com/docs/rest/api-reference/wix-e-commerce/payment-settings-integration-spi/introduction */ ecomPaymentSettings?: PaymentSettingsSPIConfig; /** * Add a site page that displays selected widgets. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-pages/about-site-page-extensions */ unifiedPage?: UnifiedPage; /** Create a reusable modal that can be utilized across multiple pages within your app and in other applications. */ backOfficeModal?: BackOfficeModal; /** * Display a draggable widget on a site using a self-hosted custom element. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-widgets/about-site-widget-extensions */ customElementWidget?: CustomElementWidget; } /** An iframe to be displayed on the user’s site */ export interface WidgetComponentData { /** Allow users to resize and move the widget, or pin it to a specific position on all pages of the site. */ fixedPositionOption?: FixedPositionOptions; /** Widget will automatically be stretched to this width after installing it */ widgetWidthType?: WidgetWidthType; /** Widget width size */ width?: number | null; /** Widget width height */ height?: number | null; /** A public link to the widget endpoint */ widgetEndpointUrl?: string | null; /** A public link to the mobile endpoint */ widgetMobileEndpointUrl?: string | null; /** A public link to the settings endpoint */ settingsEndpointUrl?: string | null; /** A public link to the SEO endpoint */ seoEndpointUrl?: string | null; /** Product display data for this component */ widgetDisplay?: WidgetDisplay; /** When true, this is the default component */ default?: boolean; /** When this is turned on, this page will be added to the site when installing the app, regardless of whether it's the default component or not */ essential?: boolean; /** Published state for this widget */ published?: boolean; /** When true, allow this widget to be added only once */ addOnlyOnce?: boolean; /** * This ID is used to identify your widget endpoint in a Wix site. You can use this ID when using methods of the Wix SDK * @readonly */ tpaWidgetId?: string; /** Where this should be rendered */ position?: Position; /** Article id in settings panel */ helpId?: string | null; /** Default Mobile Height */ defaultMobileHeight?: number | null; /** Min Mobile Height */ minMobileHeight?: number | null; /** Mobile Settings Enabled */ mobileSettingsEnabled?: boolean; /** Mobile article id in settings panel */ mobileHelpId?: string | null; /** Editor setting version. optional values: 1 (old - deprecated) or 2 (new). default value is 2 */ settingsVersion?: number | null; /** If setting version is 1, this will be the public link to the settings endpoint */ settingsEndpointUrlV1?: string | null; /** A public link to the settings endpoint on ADI editor */ onBoardingSettingsEndpointUrl?: string | null; /** The sub pages list for this component to be rendered in */ subPages?: SubPage[]; /** If this component should be stretched in relation to a form factor (desktop, tablet, mobile) */ isStretched?: IsStretched; /** Any margins this page should have in relation to a form factor (desktop, tablet, mobile) */ margins?: Margins; /** Any docking this page (horizontal / vertical) should have in relation to a form factor (desktop, tablet, mobile) */ docking?: Docking; /** The height of this page in relation to a form factor (desktop, tablet, mobile) */ heightBreakPoints?: Height; /** The width of this page in relation to a form factor (desktop, tablet, mobile) */ widthBreakPoints?: ApiWidth; /** Keep default and let users stretch widget to full width (GFPP) */ addStretchButton?: boolean; /** toggle to mark whether the editor should revoke an app that contains this component. */ excludeFromAutoRevoke?: boolean; /** should be <%=serviceUrl('your_artifact_id', '')%>, this field will later be used to trasform the settings url field in both the component and the **derived widget** */ settingsEndpointUrlTemplate?: string | null; /** should be <%=serviceUrl('your_artifact_id', '')%>, this field will later be used to trasform the settings url field in both the component and the **derived widget** */ settingsEndpointUrlV1Template?: string | null; } /** Allow users to resize and move the widget, or pin it to a specific position on all pages of the site. */ export interface FixedPositionOptions { /** Vertical widget position in the browser window */ widgetVertical?: WidgetVertical; /** Horizontal widget position in the browser window */ widgetHorizontal?: WidgetHorizontal; } /** Vertical widget position in the browser window */ export declare enum WidgetVertical { NONE_VERTICAL = "NONE_VERTICAL", TOP = "TOP", CENTER_VERTICAL = "CENTER_VERTICAL", BOTTOM = "BOTTOM" } /** Horizontal widget position in the browser window */ export declare enum WidgetHorizontal { NONE_HORIZONTAL = "NONE_HORIZONTAL", LEFT = "LEFT", CENTER_HORIZONTAL = "CENTER_HORIZONTAL", RIGHT = "RIGHT" } /** Widget will automatically be stretched to this width after installing it */ export declare enum WidgetWidthType { NONE_TYPE = "NONE_TYPE", /** A custom width for the widget */ CUSTOM = "CUSTOM", /** Full width of the browser window */ FULL = "FULL" } export interface WidgetDisplay { name?: string; /** short description about the widget */ shortDescription?: string | null; /** images showing off how the widget looks */ images?: string[]; /** optional, if no order exist for all components, will be decided by order in array (non-deterministic) */ order?: number | null; price?: number | null; variationId?: string | null; } export interface Position { region?: Region; } export declare enum Region { no_region = "no_region", header = "header", pageContainer = "pageContainer", footer = "footer" } export interface SubPage { /** The path of the subpage */ key?: string; /** If it's sub entities are enumerable for querying (for example, a search endpoint is not enumerable) */ enumerable?: boolean; /** Should hide inner routes of this sub page from floating dynamic pages navigation bar */ hideFromFloatingNavBar?: boolean; /** Should hide this sub page from selections in link panel */ hideFromLinkPanel?: boolean; } export interface IsStretched { desktop?: boolean | null; tablet?: boolean | null; mobile?: boolean | null; } export interface Margins { desktop?: DisplayProperties; tablet?: DisplayProperties; mobile?: DisplayProperties; } export interface DisplayProperties { top?: DisplayValue; right?: DisplayValue; bottom?: DisplayValue; left?: DisplayValue; } export interface DisplayValue { type?: UnitType; value?: number | null; } export declare enum UnitType { NO_UNIT = "NO_UNIT", AUTO = "AUTO", PX = "PX", VH = "VH", VW = "VW", PERCENTAGE = "PERCENTAGE" } export interface Docking { desktop?: DockingProperties; tablet?: DockingProperties; mobile?: DockingProperties; } export interface DockingProperties { horizontal?: HorizontalDocking; vertical?: VerticalDocking; } export declare enum HorizontalDocking { NO_HDOCKING = "NO_HDOCKING", LEFT_DOCKING = "LEFT_DOCKING", HCENTER = "HCENTER", RIGHT_DOCKING = "RIGHT_DOCKING" } export declare enum VerticalDocking { NO_VDOCKING = "NO_VDOCKING", TOP_DOCKING = "TOP_DOCKING", VCENTER = "VCENTER", BOTTOM_DOCKING = "BOTTOM_DOCKING" } export interface Height { desktop?: DisplayValue; tablet?: DisplayValue; mobile?: DisplayValue; } export interface ApiWidth { desktop?: DisplayValue; tablet?: DisplayValue; mobile?: DisplayValue; } /** An iframe to be displayed as a full page on the user’s site */ export interface PageComponentData { /** Hide this page from the user’s site menu */ isHidden?: boolean; /** Show in pages menu */ showInPanel?: boolean | null; /** Set page to full width */ isFullWidth?: boolean; /** Keep default and let users stretch page to full width (GFPP) */ addStrechButton?: boolean; /** A public link to the page endpoint */ pageEndpointUrl?: string | null; /** A public link to the mobile endpoint */ pageMobileEndpointUrl?: string | null; /** A public link to the settings endpoint */ settingsEndpointUrl?: string | null; /** A public link to the SEO endpoint */ seoEndpointUrl?: string | null; /** * When true, this is the default component * Main visual component. One components must be default (no more than 1 component) */ default?: boolean; /** * Second visual component * When this is turned on, this page will be added to the site when installing the app, regardless of whether it's the default component or not */ essential?: boolean; /** Published state for this page */ published?: boolean; /** * This ID is used to identify your page endpoint in a Wix site. You can use this ID when using methods of the Wix SDK * @readonly */ tpaWidgetId?: string; /** Article id in settings panel */ helpId?: string | null; /** Default Mobile Height */ defaultMobileHeight?: number | null; /** Min Mobile Height */ minMobileHeight?: number | null; /** Mobile Settings Enabled */ mobileSettingsEnabled?: boolean; /** Mobile article id in settings panel */ mobileHelpId?: string | null; /** Editor setting version. optional values: 1 (old - deprecated) or 2 (new). default value is 2 */ settingsVersion?: number | null; /** If setting version is 1, this will be the public link to the settings endpoint */ settingsEndpointUrlV1?: string | null; /** A public link to the settings endpoint on ADI editor */ onBoardingSettingsEndpointUrl?: string | null; /** The padding to use in different views */ padding?: Padding; /** The sub pages list for this component to be rendered in */ subPages?: SubPage[]; /** toggle to mark whether the editor should revoke an app that contains this component. */ excludeFromAutoRevoke?: boolean; /** Options to mark whether this page is replacing other page or is replaced by other page. */ pageReplaceOptions?: PageReplaceOptions; /** Elements in the editor can be linked to this page (a button for example) */ linkable?: boolean | null; /** Should add the page to site menu. defaults to true (will add the page to site menu) */ addToSiteMenu?: boolean | null; /** Should allow multiple instances of the page (allow duplicate the page). defaults to false (will not allow multiple instances of the page) */ multiInstanceEnabled?: boolean; } export interface Padding { desktop?: DisplayProperties; tablet?: DisplayProperties; mobile?: DisplayProperties; } export interface PageReplaceOptions extends PageReplaceOptionsOptionsOneOf { replacingOptions?: ReplacingOptions; replaceableOptions?: ReplaceableOptions; type?: ReplacementType; } /** @oneof */ export interface PageReplaceOptionsOptionsOneOf { replacingOptions?: ReplacingOptions; replaceableOptions?: ReplaceableOptions; } export interface PageReplace { /** The app id of the page the app can replace */ appId?: string; /** The page id the app can replace */ pageId?: string; } export declare enum ReplacementType { UNKNOWN_REPLACEMENT = "UNKNOWN_REPLACEMENT", REPLACING = "REPLACING", REPLACEABLE = "REPLACEABLE" } export interface ReplacingOptions { /** describe the page and application id that this page will replace. */ pageReplace?: PageReplace; } export interface ReplaceableOptions { /** toggle to mark whether this page can be replaced by other page or app. */ isReplaceable?: boolean; } /** A widget out of iframe component that loads directly in the Editor DOM */ export interface WidgetOutOfIframeComponentData { /** Iframe URL that hosts the widget's content. */ componentUrl?: string; /** Iframe controller URL. */ controllerUrl?: string | null; /** Information about the widget. */ widgetData?: WidgetComponentData; /** Out of iframe SSR URL. */ ssrComponentUrl?: string | null; /** Format: `<%=serviceUrl('your_artifact_id', 'component_url_bundle_file')%>`. */ componentUrlTemplate?: string | null; /** Format: `<%=serviceUrl('your_artifact_id', 'controller_url_bundle_file')%>`. */ controllerUrlTemplate?: string | null; /** Out of iframe widget data. */ outOfIframeData?: OutOfIframeData; /** Format: `<%=serviceUrl('your_artifact_id', 'no_css_component_url_bundle_file')%>`. */ noCssComponentUrlTemplate?: string | null; /** Out of iframe no css component URL. */ noCssComponentUrl?: string | null; /** Whether to support different style param values for different breakpoints. */ cssPerBreakpoint?: boolean | null; } /** Out Of Iframes additional info */ export interface OutOfIframeData { /** The setting URLs for the app */ settingsUrls?: SettingsUrl[]; /** Automatically installed on app installation */ autoInstall?: boolean; /** The info about how to report errors for the App */ errorReporting?: ErrorReporting; /** The list of slots available */ slots?: Slot[]; /** if true, ssr will not cache pages that contain this widget */ ssrCacheExcluded?: boolean; /** Should use loadable-components */ isLoadable?: boolean; } /** An editor settings configuration */ export interface SettingsUrl { /** The URL for the setting panel */ url?: string; /** What type of editor this is */ editorType?: string; /** How this view is rendered (mobile, tablet, etc) */ viewType?: string; /** should be <%=serviceUrl('your_artifact_id', '')%>, this field will later be used to trasform the settings url field in both the component and the **derived widget** */ urlTemplate?: string | null; } /** Error reporting configuration for the App */ export interface ErrorReporting { /** An error reporting URL to be used by our infra (Example: A sentry DSN url) */ url?: string; /** Optional: Data about the artifact that reports the error. */ artifact?: ErrorReportingArtifact; } /** Data of the artifact that reports an error. */ export interface ErrorReportingArtifact { /** The full artifact id of the project which errors are associated with (Example: com.wixpress.my-artifact) */ fullArtifactId?: string; /** The project version which errors are associated with (Example: Falcon fingerprint) */ version?: string; } /** Definition of slot */ export interface Slot { /** Role of the slot component (uniquely identifies slot within parent comp; used by Velo) - former "slotName" */ slotRole?: string; /** The list of interfaces that should be implemented by a plugin in order to fit the slot */ pluginInterfaces?: PluginInterface[]; /** Id of the slot component (a.k.a. Velo role) */ slotId?: string; } /** The types of public APIs exposed by the Plugin */ export declare enum PluginInterface { /** No public APIs exposed */ NONE_INTERFACE = "NONE_INTERFACE", /** The slot requires the REVIEWS interface to be implemented by the plugin. The plugin specifies the implementation of the REVIEWS interface */ REVIEWS = "REVIEWS", /** The slot requires the RATINGS_SUMMARY interface to be implemented by the plugin. The plugin specifies the implementation of the RATINGS_SUMMARY interface */ RATINGS_SUMMARY = "RATINGS_SUMMARY", /** The slot requires the RATINGS_SUMMARY_OOI_LIST interface to be implemented by the plugin. The plugin specifies the implementation of the RATINGS_SUMMARY_OOI_LIST interface */ RATINGS_SUMMARY_OOI_LIST = "RATINGS_SUMMARY_OOI_LIST", /** The slot requires the BOOKINGS_SERVICE interface to be implemented by the plugin. The plugin specifies the implementation of the BOOKINGS_SERVICE interface */ BOOKINGS_SERVICE = "BOOKINGS_SERVICE", /** The slot requires the BOOKINGS_FORM interface to be implemented by the plugin. The plugin specifies the implementation of the BOOKINGS_FORM interface */ BOOKINGS_FORM = "BOOKINGS_FORM", /** The slot requires the BASE interface to be implemented by the plugin. The plugin specifies the implementation of the BASE interface */ BASE = "BASE", /** The slot requires the EVENT interface to be implemented by the plugin. The plugin specifies the implementation of the EVENT interface */ EVENT = "EVENT", /** The slot requires the PRODUCT interface to be implemented by the plugin. The plugin specifies the implementation of the PRODUCT interface */ PRODUCT = "PRODUCT", /** The slot requires the CHECKOUT interface to be implemented by the plugin. The plugin specifies the implementation of the CHECKOUT interface */ CHECKOUT = "CHECKOUT", /** The slot requires the CATEGORY interface to be implemented by the plugin. The plugin specifies the implementation of the CATEGORY interface */ CATEGORY = "CATEGORY", /** The slot requires the BOOKINGS_CALENDAR interface to be implemented by the plugin. The plugin specifies the implementation of the BOOKINGS_CALENDAR interface */ BOOKINGS_CALENDAR = "BOOKINGS_CALENDAR", /** The slot requires the CART interface to be implemented by the plugin. The plugin specifies the implementation of the CART interface */ CART = "CART" } export interface ExtensionExposure { /** Determines if the component is production ready */ maturity?: Maturity; } export declare enum Exposure { /** Unexposed. to be used by dev team only */ PRIVATE = "PRIVATE", /** Exposed internally */ INTERNAL = "INTERNAL", /** Exposed to the world */ PUBLIC = "PUBLIC" } export declare enum Maturity { /** Immature. subject to breaking changes */ ALPHA = "ALPHA", /** Ready for integration. 2 weeks notice before breaking changes are applied */ BETA = "BETA", /** Matured. breaking changes are not acceptable. 3 month notice before sunset */ GA = "GA", /** Not yet implemented */ NOT_IMPLEMENTED = "NOT_IMPLEMENTED" } /** A page out of iframe component that loads directly in the Editor DOM */ export interface PageOutOfIframeComponentData { /** Out of iframe component URL. */ componentUrl?: string; /** Out of iframe controller URL. */ controllerUrl?: string | null; /** Page data. */ pageData?: PageComponentData; /** Out of iframe SSR URL. */ ssrComponentUrl?: string | null; /** Component URL template. `<%=serviceUrl('your_artifact_id', 'component_url_bundle_file')%>` */ componentUrlTemplate?: string | null; /** Controller URL template. `<%=serviceUrl('your_artifact_id', 'controller_url_bundle_file')%>` */ controllerUrlTemplate?: string | null; /** Data about the out of iframe page. */ outOfIframeData?: OutOfIframeData; /** Setting endpoint URL template. `<%=serviceUrl('your_artifact_id', '')%>`. Used to transform the settings URL field in both the component and the **derived widget**. */ settingsEndpointUrlTemplate?: string | null; /** Setting endpoint URL v1 template. `<%=serviceUrl('your_artifact_id', '')%>`. Used to transform the settings URL field in both the component and the **derived widget**. */ settingsEndpointUrlV1Template?: string | null; /** No css component URL template. `<%=serviceUrl('your_artifact_id', 'no_css_component_url_bundle_file')%>`. */ noCssComponentUrlTemplate?: string | null; /** URL for the out of iframe no CSS component URL. */ noCssComponentUrl?: string | null; /** Whether to enable support for different style param values for different breakpoints. */ cssPerBreakpoint?: boolean | null; } /** Create a collection of native Editor components that loads directly in the Editor DOM */ export interface PlatfromComponentData { /** Path to a Javascript file that Editor runs on app install */ editorScriptUrl?: string | null; /** Path to a Javascript file that viewer runs for page components / widgets and applicative business logic */ viewerScriptUrl?: string | null; /** If true, components of the app wont be added to the editor (only run editor scripts) */ platformOnly?: boolean; /** If the viewer script should run in the Editor */ enableInEditor?: boolean; /** URL to get complex routing decisions at runtime from a platform app. Some spec can be seen here: https://docs.google.com/document/d/1t_3bl9vVMoPVm_I9Sx59LsVUPXi07gihGIg3-F7z8Q0/edit?ts=595512f6#heading=h.9ca9859ng5d */ routerServiceUrl?: string | null; /** Path to a Javascript file that viewer runs for page components / widgets and applicative business logic. Includes verbose logs for Wix runtime. */ viewerVerboseScriptUrl?: string | null; /** A map of string descriptor the app understands to a versioned URL topology value, can be an API or statics data. Example: `storesCartAPI: https://stores.com/api/v2/cart/ */ baseUrls?: Record; /** Used by DAC (gradual roll-out). A map of string descriptor the app understands to a template versioned URL topology value, Example: `storeCSSStuff: https://static.pararstorage.com/services/stores-css-stuff/<%=serviceVersion('your_artifact_id')%>/main.css */ baseUrlsTemplate?: Record; /** should be <%=serviceUrl('your_artifact_id', 'viewer_script_url_bundle_file')%> */ viewerScriptUrlTemplate?: string | null; /** If this component should be stretched in relation to a form factor (desktop, tablet, mobile) */ isStretched?: IsStretched; /** Any margins this page should have in relation to a form factor (desktop, tablet, mobile) */ margins?: Margins; /** Any docking this page (horizontal / vertical) should have in relation to a form factor (desktop, tablet, mobile) */ docking?: Docking; /** The height of this page in relation to a form factor (desktop, tablet, mobile) */ height?: Height; /** The width of this page in relation to a form factor (desktop, tablet, mobile) */ width?: ApiWidth; /** * Support adding application pages with preset data * Vertical endpoint that clones the data * https://docs.google.com/document/d/1pUp-d9vVMCTjDdQffBuwh1mBvQacQZy0n6nm2amCMV4/edit */ cloneAppDataUrl?: string | null; /** * False by default * If false, data is cloned per app * If true, the data is cloned per add component on component addition */ shouldCloneDataPerComponent?: boolean; /** * Error reporting URL used to report errors at platform level, * and as fallback for pageOOI and widgetOOI error reporting */ errorReporting?: ErrorReporting; /** A concrete versioned URL of the translation template, contains `{language}` parameter in the path */ editorTranslationUrl?: string | null; /** A version templated URL of the translation template, contains a <%=serviceVersion('your_artifact_id')%> template and a `{language}` template */ editorTranslationUrlTemplate?: string | null; excludeFromAutoRevoke?: boolean; /** dictates if the app has migrated to the new platform API */ migratedToNewPlatformApi?: boolean; /** The HTTP Verb used to call the router, if not set will be POST */ routerHttpMethod?: HTTPMethod; } /** Add interim support for HTTP methods before a bigger rewrite for Routers as a component */ export declare enum HTTPMethod { UNKNOWN_METHOD = "UNKNOWN_METHOD", GET = "GET", POST = "POST" } /** * An iframe that opens in the user’s Wix Dashboard, * or add a link to open the page directly in your platform. */ export interface DashboardComponentData { /** The dashboard url. */ url?: string; /** * External or Internal dashboard. * The user’s Wix Dashboard (recommended) or your platform or site */ embedded?: boolean; /** A settings page for users to customize your dashboard */ settingsPageUrl?: string | null; checkStatusUrl?: string | null; published?: boolean | null; hideWixSideMenu?: boolean | null; } /** An invisible iframe to track site activity. It’ll be added to every page on the user’s site */ export interface WorkerComponentData { /** A public link to the worker endpoint */ workerEndpointUrl?: string; } /** * An extension to platform used by Wix Blocks UI * The main component in the Wix Blocks. * no manual adding. auto-created only from Wix Blocks */ export interface StudioComponentData { /** Path to a Javascript file that Editor runs on app install */ editorScriptUrl?: string; /** Path to a Javascript file that viewer runs for page components / widgets and applicative business logic */ viewerScriptUrl?: string; /** If true, components of the app wont be added to the editor (only run editor scripts) */ platformOnly?: boolean; /** If the viewer script should run in the Editor */ enableInEditor?: boolean; /** URL to get complex routing decisions at runtime from a platform app. Some spec can be seen here: https://docs.google.com/document/d/1t_3bl9vVMoPVm_I9Sx59LsVUPXi07gihGIg3-F7z8Q0/edit?ts=595512f6#heading=h.9ca9859ng5d */ routerServiceUrl?: string; /** Path to a Javascript file that viewer runs for page components / widgets and applicative business logic. Includes verbose logs for Wix runtime. */ viewerVerboseScriptUrl?: string; /** Instance id of wixCode in the original dev site. used in order to access the widgets code */ wixCodeInstanceId?: string; /** Id of the grid in wixCode FS where the widgets code is located. used in order to access the widgets code */ wixCodeGridId?: string; /** Path to a json which contains metaData of the devSite */ siteHeaderUrl?: string; /** A map of string descriptor the app understands to a versioned URL topology value, can be an API or statics data. This may have some values which are NOT URL since Studio computes some values on the fly. */ baseUrls?: Record; /** If true, not shown in add panel and apps panel when it is installed */ hideInAddPanel?: boolean; /** if true, this studio component enforce permissions */ permissionsEnforced?: boolean; } /** A widget component in the Wix Blocks. */ export interface StudioWidgetComponentData { /** Id of the widget */ studioWidgetId?: string; /** Path to a json which contains the widget data and structure */ pageJsonFilename?: string; /** variationId -> widget variation data */ variations?: Record; /** Product display data for this component */ widgetDisplay?: WidgetDisplay; /** If it is required to be installed as part of the app */ essential?: boolean; /** The version of blocks used to build this widget */ blocksVersion?: string; /** If this component should be stretched in relation to a form factor (desktop, tablet, mobile) */ isStretched?: IsStretched; /** Any margins this page should have in relation to a form factor (desktop, tablet, mobile) */ margins?: Margins; /** Any docking this page (horizontal / vertical) should have in relation to a form factor (desktop, tablet, mobile) */ docking?: Docking; /** The height of this page in relation to a form factor (desktop, tablet, mobile) */ height?: Height; /** The width of this page in relation to a form factor (desktop, tablet, mobile) */ width?: ApiWidth; /** Properties of installed custom elements */ customElement?: CustomElement; /** ids of nested widgets in this widget */ nestedWidgets?: NestedWidgets; /** Properties of widget's presets */ presetsInfo?: PresetInfo[]; /** Widget properties that affect the way it behaves during installation in a site. */ installationSettings?: InstallationSettings; /** Properties that affect the widget's presence in the editor. */ editorPresence?: EditorPresence; /** Base info of component by shared logic of unified components */ base?: BaseInfo; /** Unified widget installation settings */ installation?: WidgetInstallationSettings; /** Optional: The URL of the widget's code bundle */ widgetBundleUrl?: string | null; } /** A variation of a blocks widget */ export interface StudioWidgetVariation { /** Id of the widget variation */ id?: string; /** Display name of the variation */ name?: string; /** Path to a json which contains the widget variation data and structure */ pageJsonFilename?: string; } export interface CustomElement extends CustomElementConsentCategoryOneOf { essential?: boolean; /** Related to performance and other functional measurements. */ functional?: boolean; /** Related to analytics about how the site is used in order to improve it. */ analytics?: boolean; /** Related to allowing better customization of the experience to a current visitor. */ advertising?: boolean; /** Boolean to make custom element in this widget be available for free sites */ allowedForFreeSite?: boolean; /** CCPA compliance flag. */ dataToThirdParty?: boolean; } /** @oneof */ export interface CustomElementConsentCategoryOneOf { essential?: boolean; /** Related to performance and other functional measurements. */ functional?: boolean; /** Related to analytics about how the site is used in order to improve it. */ analytics?: boolean; /** Related to allowing better customization of the experience to a current visitor. */ advertising?: boolean; } /** Nested widgets */ export interface NestedWidgets { /** ids of all recursively nested widgets from the same Blocks app */ internal?: string[]; } /** Preset Info */ export interface PresetInfo { /** Id of the widget's preset */ presetId?: string; /** Display name of the widget's preset */ presetName?: string; /** The default size used when the preset is added to the stage */ defaultSize?: PresetSize; } /** Preset Size */ export interface PresetSize { /** The width of the preset when it's added to the stage */ width?: DisplayValue; /** The height of the preset when it's added to the stage */ height?: DisplayValue; } /** Settings to control the behavour of widgets when installed in a wix site. */ export interface InstallationSettings extends InstallationSettingsOptionsOneOf { /** Extra options needed when `install_page` is set to `PAGE`. */ pageOptions?: PageOptions; /** Extra options needed when `install_page` is set to `LIGHTBOX`. */ lightboxOptions?: LightboxOptions; /** How to add the widget automatically to the site. Options could be `NO_PAGE`, `CURRENT`, `PAGE` or `LIGHTBOX`. */ installPage?: InstallPage; /** Controls whether to show or hide the widget in the add panel. */ showInAddPanel?: boolean | null; /** Defines the main preset per breakpoint for the widget. */ mainPresets?: MainPresets; } /** @oneof */ export interface InstallationSettingsOptionsOneOf { /** Extra options needed when `install_page` is set to `PAGE`. */ pageOptions?: PageOptions; /** Extra options needed when `install_page` is set to `LIGHTBOX`. */ lightboxOptions?: LightboxOptions; } /** The page to which a new widget can be added */ export declare enum InstallPage { /** Don't add widget to a page */ NO_PAGE = "NO_PAGE", /** Add widget to the current page in the editor */ CURRENT = "CURRENT", /** Add widget to a new page in the editor */ PAGE = "PAGE", /** Add widget to a new lightbox in the editor */ LIGHTBOX = "LIGHTBOX" } /** Defines the main preset per breakpoint for the widget. */ export interface MainPresets { /** The main desktop preset. */ desktopPresetId?: string; /** The main tablet preset. */ tabletPresetId?: string; /** The main mobile preset. */ mobilePresetId?: string; } /** Options for widgets that are added as a page during installation */ export interface PageOptions { /** Display name of the page that will be shown in the page menu. */ pageName?: string; /** The page ID used for navigation purposes. Once set cannot be changed. */ pageId?: string; } export interface LightboxOptions { /** Display name of the lightbox that will be shown in the lightbox menu. */ lightboxName?: string; /** The lightbox ID used for navigation purposes. Once set cannot be changed. */ lightboxId?: string; } export interface EditorPresence { /** Properties that describe the presence of each of the widget's presets */ presetsEditorPresence?: PresetEditorPresence[]; } export interface PresetEditorPresence { /** Id of the widget's preset */ presetId?: string; /** Controls whether to show or hide the preset in the Add Panel */ showInAddPanel?: boolean; /** Controls whether to show or hide the preset in the Presets Panel */ showInPresetsPanel?: boolean; /** Optional image to show as the preset's thumbnail in the editor, if left empty an automatic snapshot of the preset will be used */ wixMediaThumbnail?: WixCommonImage; /** Another preset id that is a mobile variation of this preset */ mobilePresetId?: string; } export interface WixCommonImage { /** WixMedia image ID. */ id?: string; /** Image URL. */ url?: string; /** * Original image height. * @readonly */ height?: number; /** * Original image width. * @readonly */ width?: number; /** Image alt text. */ altText?: string | null; /** * Image filename. * @readonly */ filename?: string | null; } export interface FocalPoint { /** X-coordinate of the focal point. */ x?: number; /** Y-coordinate of the focal point. */ y?: number; /** crop by height */ height?: number | null; /** crop by width */ width?: number | null; } export interface BaseInfo { /** The name of the component */ name?: string; /** The internal id of the component by the own app */ id?: string; /** The description of the component by the own app */ description?: string; /** Reference to help articles about the widget */ helpResources?: HelpResources; } export interface HelpResources { /** The Wix Answers' article related to the component (chosen by own app) */ articleId?: string; } export interface WidgetInstallationSettings { /** Shared installation settings for unified components */ base?: BaseInstallation; /** Widget installation settings for unified components */ widget?: WidgetInstallation; } export interface BaseInstallation { /** Auto add component to stage */ autoAdd?: boolean; /** Mark component as essential for the existence of the app (force to delete the whole app) */ essential?: boolean; /** Max instances of the component that can be on site */ maxInstances?: number | null; } export interface WidgetInstallation { /** Preset should be selected defaultly with installation */ defaultPreset?: MainPresets; /** Region of widget */ region?: RegionType; } export declare enum RegionType { HEADER = "HEADER", BODY = "BODY", FOOTER = "FOOTER" } export interface ComponentModel { /** The component type of the builder component. */ componentType?: string; /** The component URL of the builder component */ componentUrl?: string; } /** A component that indicates the existence of an importable code package in a Wix Blocks application. */ export interface CodePackageComponentData { /** The GUID to access the package code in the Velo/Wix Code system */ gridId?: string; /** Name of the package for display */ displayName?: string; /** Name of the package for import */ importName?: string; /** An optional description of this package and what it does */ description?: string | null; } /** A collection of native components that load directly in the Business Manager */ export interface DashboardPlatfromComponentData { /** Path to a Javascript file that Dashboard runs on app install */ scriptUrl?: string; } /** Inject third party scripts into the user’s site */ export interface EmbeddedScriptComponentData { /** The script */ template?: string; /** A name that’s unique to this component. Names can include letters and the hyphen (-) character only */ name?: string; /** What category of pages this will be embedded on (single, many, none) */ pages?: EmbeddedScriptPages; /** Where in the HTML this should be embedded */ placement?: EmbeddedScriptPlacement; /** An article explaining how to activate the script */ connectArticleUrl?: string; /** Type of script you are injecting. This will be used for GDPR and cookie consent purposes */ embedCategory?: EmbedCategory; /** * if the script should be loaded once - default and only supported value is true * @readonly */ loadOnce?: boolean; /** allow developers to decide if their app script can be install on free sites */ allowedForFreeSite?: boolean; /** The runtime dependencies array to declare the widget packages. */ dependencies?: WixDependency[]; } /** Category of pages this will be embedded on (single, many, none) */ export declare enum EmbeddedScriptPages { /** It will not be embedded */ NONE_PAGES = "NONE_PAGES", /** It will be embedded once */ ONCE = "ONCE", /** It will be embedded multiple times on specific pages */ SPECIFIC_PAGES = "SPECIFIC_PAGES" } /** Where that embed will be rendered */ export declare enum EmbeddedScriptPlacement { /** It will not be rendered */ NONE_PLACEMENT = "NONE_PLACEMENT", /** In the document head */ HEAD = "HEAD", /** Prepended before all children already rendered in the body tag */ BODY_START = "BODY_START", /** Appended after the last child already rendered in the body tag */ BODY_END = "BODY_END" } /** Embed category defined for Privacy regulation compliance in EU and CCPA in the US */ export declare enum EmbedCategory { /** Not categorized yet */ UNKNOWN = "UNKNOWN", /** Must load regardless of policy */ ESSENTIAL = "ESSENTIAL", /** Adds optional functionality to the site */ FUNCTIONAL = "FUNCTIONAL", /** Adds analytics abilities to the site */ ANALYTICS = "ANALYTICS", /** Adds advertising content or advertising tracking to the site */ ADVERTISING = "ADVERTISING" } export interface WixDependency { /** The fully qualified package name from npm, example: @wix/frontend-location */ packageName?: string; /** The major version of the package (this may be a detail included in the package name, but is conventional in NPM with semver semantics */ version?: number; } /** A draggable custom element. Add your custom script and generate ui directly in the viewer */ export interface WebComponentData { /** A link to a preview image we can render in the editor in place of your component */ imagePreview?: string; /** Web component size */ size?: Size; /** This script url should render temp empty state */ scriptTag?: string; /** Unique tag name to use in order to connect your JS script to your web component */ tagName?: string; /** The settings panel URL for this component */ settingsUrl?: string | null; /** The editor modal that the user will see */ modalTitle?: string; /** Settings CTA label */ connectLabel?: string; /** Dynamic settings(Graphic Floating Properties Panel settings) */ gfppSettings?: Settings; /** Custom element type PAGE / WIDGET */ type?: WebComponentDataElementType; /** Boolean to make this component be available for free sites */ allowedForFreeSite?: boolean; /** A public link to the SEO endpoint */ seoUrl?: string | null; /** For case that the widget will be used as page */ slug?: string | null; /** For case that the widget will be used as page */ showPageInMenu?: boolean; /** The details of the selected widget to add */ widget?: WidgetDetails; /** Give the option to change the script type */ scriptType?: ScriptType; /** Web component default mobile height */ defaultMobileHeight?: number | null; /** Prevent the deletion of the widget when set to true. */ essential?: boolean; /** Toggle to mark whether the editor should revoke an app that contains this component. */ excludeFromAutoRevoke?: boolean; /** defines the widget's behaviour in editor page */ widgetBehavior?: WidgetBehavior; } /** Web component size */ export interface Size { /** Height in pixels */ height?: number; /** Width in pixels */ width?: number; } /** Graphic Floating Properties Panel settings */ export interface Settings { activeTab?: string; fetchInitialData?: string | null; tabs?: Tab[]; } /** Setting tab definition */ export interface Tab { label?: string; items?: Container[]; /** hidden tab will not be visible in editor and dev center preview */ hidden?: boolean; } /** UI Container in page */ export interface Container extends ContainerDataOneOf { /** containers */ main?: Main; section?: Section; drillInListItem?: DrillInListItem; /** items */ thumbnails?: Thumbnails; sliderLabeled?: SliderLabeled; dropDownLabeled?: DropDownLabeled; toggleLabeled?: ToggleLabeled; barAlignment?: BarAlignment; textInputLabeled?: TextInputLabeled; resetButton?: ResetButton; fontFamilyWithColorPicker?: FontFamilyWithColorPicker; radioButtonLabeled?: RadioButtonLabeled; colorSelectLabeled?: ColorSelectLabeled; textStyle?: TextStyle; } /** @oneof */ export interface ContainerDataOneOf { /** containers */ main?: Main; section?: Section; drillInListItem?: DrillInListItem; /** items */ thumbnails?: Thumbnails; sliderLabeled?: SliderLabeled; dropDownLabeled?: DropDownLabeled; toggleLabeled?: ToggleLabeled; barAlignment?: BarAlignment; textInputLabeled?: TextInputLabeled; resetButton?: ResetButton; fontFamilyWithColorPicker?: FontFamilyWithColorPicker; radioButtonLabeled?: RadioButtonLabeled; colorSelectLabeled?: ColorSelectLabeled; textStyle?: TextStyle; } /** Main 1 */ export interface Main { items?: MainPropsData[]; } /** MainPropsData */ export interface MainPropsData { dashboardButton?: DashboardButton; richTextWithIllustrationVertical?: RichTextWithIllustrationVertical; } /** DashboardButton main 2 */ export interface DashboardButton { title?: string; label?: string; } /** RichTextWithIllustrationVertical main 1 */ export interface RichTextWithIllustrationVertical { key?: string; label?: string; text?: string; } /** Section 2 */ export interface Section { label?: string; } /** DrillInListItem 3 */ export interface DrillInListItem { items?: DrillItem[]; label?: string; } /** DrillItem */ export interface DrillItem extends DrillItemDataOneOf { /** containers */ section?: Section; /** items */ radioButtonLabeled?: RadioButtonLabeled; colorSelectLabeled?: ColorSelectLabeled; thumbnails?: Thumbnails; sliderLabeled?: SliderLabeled; dropDownLabeled?: DropDownLabeled; toggleLabeled?: ToggleLabeled; barAlignment?: BarAlignment; textInputLabeled?: TextInputLabeled; fontFamilyWithColorPicker?: FontFamilyWithColorPicker; textStyle?: TextStyle; } /** @oneof */ export interface DrillItemDataOneOf { /** containers */ section?: Section; /** items */ radioButtonLabeled?: RadioButtonLabeled; colorSelectLabeled?: ColorSelectLabeled; thumbnails?: Thumbnails; sliderLabeled?: SliderLabeled; dropDownLabeled?: DropDownLabeled; toggleLabeled?: ToggleLabeled; barAlignment?: BarAlignment; textInputLabeled?: TextInputLabeled; fontFamilyWithColorPicker?: FontFamilyWithColorPicker; textStyle?: TextStyle; } /** RadioButtonLabeled 12 */ export interface RadioButtonLabeled { key?: string; title?: string; value?: string; options?: string[]; description?: string; conditions?: Condition[]; } export interface Condition { value?: string; state?: SingleKeyCondition[]; } export interface SingleKeyCondition { key?: string; value?: string; visible?: boolean; } /** ColorSelectLabeled 13 */ export interface ColorSelectLabeled extends ColorSelectLabeledDataOneOf { customColor?: ColorDefinition; templateColor?: TemplateDefaultColor; title?: string; key?: string; /** @deprecated */ color?: string; defaultData?: ColorDefinition; description?: string; } /** @oneof */ export interface ColorSelectLabeledDataOneOf { customColor?: ColorDefinition; templateColor?: TemplateDefaultColor; } export interface ColorDefinition { value?: string; opacity?: string; } export declare enum TemplateDefaultColor { BACKGROUND = "BACKGROUND", SECONDARY_TEXTS = "SECONDARY_TEXTS", MAIN_TEXT_AND_ICONS = "MAIN_TEXT_AND_ICONS", BORDERS_AND_DIVIDERS = "BORDERS_AND_DIVIDERS", BUTTONS_AND_LINKS = "BUTTONS_AND_LINKS" } /** Thumbnails 4 */ export interface Thumbnails { key?: string; title?: string; value?: string; options?: ThumbnailData[]; size?: ThumbnailsSize; description?: string; conditions?: Condition[]; } /** Structure for thumbnail */ export interface ThumbnailData { value?: string; src?: string | null; selectedSrc?: string | null; onHoverSrc?: string | null; label?: string; } export declare enum ThumbnailsSize { SMALL = "SMALL", MEDIUM = "MEDIUM", LARGE = "LARGE", XLARGE = "XLARGE" } /** SliderLabeled 5 */ export interface SliderLabeled { key?: string; title?: string; size?: string; placeholder?: string; description?: string; minSize?: number; maxSize?: number; } /** DropDownLabeled 6 */ export interface DropDownLabeled { key?: string; title?: string; value?: string; options?: string[]; description?: string; conditions?: Condition[]; } /** ToggleLabeled 7 */ export interface ToggleLabeled { key?: string; title?: string; value?: boolean; description?: string; conditions?: Condition[]; } /** * Elements ========= * BarAlignment 8 */ export interface BarAlignment { /** @deprecated */ selected?: BarAlignmentSelected; key?: string; title?: string; description?: string; value?: BarAlignmentSelected; conditions?: Condition[]; } /** Bar alignment selected value */ export declare enum BarAlignmentSelected { ALIGN_LEFT = "ALIGN_LEFT", ALIGN_CENTER = "ALIGN_CENTER", ALIGN_RIGHT = "ALIGN_RIGHT" } /** TextInputLabeled 9 */ export interface TextInputLabeled { key?: string; title?: string; placeholder?: string; value?: string; description?: string; } /** 11 */ export interface FontFamilyWithColorPicker { key?: string; title?: string; description?: string; value?: FontDefinition; defaultValue?: FontDefinition; } /** defintion and enums */ export interface FontDefinition { font?: string; color?: ColorDefinition; } /** TextStyle 14 */ export interface TextStyle extends TextStyleDefaultColorOneOf { customColor?: ColorDefinition; templateColor?: TemplateDefaultColor; key?: string; title?: string; description?: string; defaultTextStyle?: DefaultTextStyle; } /** @oneof */ export interface TextStyleDefaultColorOneOf { customColor?: ColorDefinition; templateColor?: TemplateDefaultColor; } export declare enum DefaultTextStyle { TITLE = "TITLE", PARAGRAPH = "PARAGRAPH", LOWER_HIERARCHY_TEXTS = "LOWER_HIERARCHY_TEXTS" } /** 10 */ export interface ResetButton { label?: string; } export declare enum WebComponentDataElementType { WIDGET = "WIDGET", PAGE = "PAGE" } export interface WidgetDetails { name?: string | null; icon?: string | null; description?: string | null; } export declare enum ScriptType { NO_SCRIPT_TYPE = "NO_SCRIPT_TYPE", MODULE = "MODULE" } export interface WidgetBehavior { /** Toggle whether the widget is removable from the page. */ removable?: boolean; /** Toggle whether the widget is duplicatable from the page. */ duplicatable?: boolean; } export interface ExtensionData { data?: string; extensionType?: ExtensionType; } export declare enum ExtensionType { NONE_EXTENSION = "NONE_EXTENSION", PAYMENTS_GATEWAY_EXTENSION = "PAYMENTS_GATEWAY_EXTENSION", COUPONS_EXTENSION = "COUPONS_EXTENSION", DROPSHIPPING_EXTENSION = "DROPSHIPPING_EXTENSION", FULFILMENT_EXTENSION = "FULFILMENT_EXTENSION", DROPSHIPPING_SUPPLIER_EXTENSION = "DROPSHIPPING_SUPPLIER_EXTENSION", FULFILLMENT_CENTER_EXTENSION = "FULFILLMENT_CENTER_EXTENSION", RESTAURANTS_POS_EXTENSION = "RESTAURANTS_POS_EXTENSION", ART_STORE_EXTENSION = "ART_STORE_EXTENSION", ASCEND_AUTOMATION_EXTENSION = "ASCEND_AUTOMATION_EXTENSION", CONTACT_LABELS_EXTENSION = "CONTACT_LABELS_EXTENSION" } export interface SnippetSolutionData { code?: string; instructions?: string; } /** A component which represents collections that will be installed as part of the app */ export interface DataComponent { } export interface DCConfigData { isVisualApp?: boolean; } export interface StaticFileComponentData { url?: string; } export interface AppConfig { siteConfig?: SiteConfig; namespace?: string; } export interface SiteConfig { /** todo: WEB_URL */ siteStructureApi?: string | null; } /** * Business Manager sidebar category that contains sidebar links. * each link in the category opens in the business manager in an iframe. */ export interface MultipleDashboardsComponentData { /** items inside the category */ items?: DashboardItem[]; } /** * a single dashboard page, * represented in Business Manager as sidebar link that opens in an iframe */ export interface DashboardItem { /** name of the sidebar link of the page */ label?: string; /** data about the current page */ dashboardData?: DashboardComponentData; /** permission to check for this page. */ permissionId?: string | null; } /** Test component extension */ export interface PaymentsGatewayComponentData { /** The shop url */ shopUrl?: string; } export interface AutomationTrigger { /** The name that will be passed with trigger report event to activate an Automation. */ name?: string; /** The name displayed to the user. */ displayName?: string; /** The schema of the payload that will be passed with trigger when activating an Automation. */ schemaConfig?: SchemaConfig; deploymentUri?: string; revision?: number; } export interface SchemaConfig { /** The fields of the payload as sent in the report event */ fields?: SchemaField[]; /** * Dynamic schema service URL. * Dynamic schema is used when user needs to choose specific entities from site to activate the Automation. * For example form name, purchased product, etc. */ dynamicSchemaUrl?: string | null; } export interface SchemaField { /** The key as it appears on the report event payload. */ key?: string; /** The name displayed to the user. */ displayName?: string; /** The field type */ fieldType?: SchemaFieldType; /** Sample values, values that could show up in the payload of a trigger. */ sampleValues?: string[]; /** The field exposure */ exposure?: SchemaFieldExposure; } export declare enum PrimitiveType { UNKNOWN_PRIMITIVE_TYPE = "UNKNOWN_PRIMITIVE_TYPE", TEXT = "TEXT", BOOLEAN = "BOOLEAN", NUMBER = "NUMBER" } export declare enum SimpleType { UNKNOWN_SIMPLE_TYPE = "UNKNOWN_SIMPLE_TYPE", MONEY = "MONEY", LINK = "LINK", BACKOFFICE_LINK = "BACKOFFICE_LINK", LIVESITE_LINK = "LIVESITE_LINK", MULTILINGUAL = "MULTILINGUAL", IMAGE_LINK = "IMAGE_LINK", GUID = "GUID", EMAIL = "EMAIL", PHONE = "PHONE", CONTACT_ID = "CONTACT_ID" } export interface Primitive { primitiveType?: PrimitiveType; } export interface Simple { simpleType?: SimpleType; } export interface _Date { /** Default: false, set this to true if the date is normally a future date, like: Invoice expiration date, Membership renewal date */ allowNegativeOffset?: boolean | null; } export interface SchemaFieldType extends SchemaFieldTypeFieldTypeOneOf { primitive?: Primitive; simple?: Simple; /** * The field value must conform to the following JSON structure { "timestamp": string, "timeZone": string }, where the timestamp is ISO format UTC, and the time zone is the full name * Example: { "timestamp": "2021-03-22T11:41:47.992Z", timeZone: "Asia/Jerusalem" } */ date?: _Date; } /** @oneof */ export interface SchemaFieldTypeFieldTypeOneOf { primitive?: Primitive; simple?: Simple; /** * The field value must conform to the following JSON structure { "timestamp": string, "timeZone": string }, where the timestamp is ISO format UTC, and the time zone is the full name * Example: { "timestamp": "2021-03-22T11:41:47.992Z", timeZone: "Asia/Jerusalem" } */ date?: _Date; } export declare enum SchemaFieldExposure { UNKNOWN_EXPOSURE = "UNKNOWN_EXPOSURE", /** Not sent to the action provider */ SETUP = "SETUP", /** Sent to the action provider and usually hidden from user */ HIDDEN = "HIDDEN", /** Sent to the action provider and usually shown to user */ EXPOSED = "EXPOSED" } /** represents Invoices integration policies */ export interface InvoicesActionsComponentData { /** partial payment restriction on invoice */ partialPayment?: PartialPaymentRestriction; } /** Possible Partial Payment Policy Values */ export declare enum PartialPaymentRestriction { UNDEFINED = "UNDEFINED", /** Allow Partial Payment */ ALLOW = "ALLOW", /** Disallow Partial Payment */ DISALLOW = "DISALLOW" } /** Experimental-WIP: Specifies the app module configuration of business manager module */ export interface DashboardApplicationData { /** List of bundles to be loaded for your module */ bundles?: Bundle[]; /** Your module id as defined in business-manager-api */ id?: string | null; /** List of available page components that your module is registering */ pageComponents?: PageDashboardApplicationComponent[]; /** The default component to load when another app navigates to your module */ defaultPageComponentId?: string | null; /** Config section that will be provided to your lazy component and component along with all other properties from business-manager, if your config object will contain topology parameter, you'll be able to benefit from statics override machanism */ config?: AppConfiguration; /** Allows an application to declare that when it's opened inside the business-manager without a deeplink the business-manager home should be shown. It currently only affects opening the app from Editor/ADI */ useHomeAsLandingPage?: boolean | null; /** If there are some experiments that define if this page should be enabled, list of experiment lists with OR relationship between them, experiments should be in business manager scope */ enabledByExperiments?: ExperimentGroupWrapper[]; /** If this module should load in absence of any pages, by default this won't run */ loadWithoutPages?: boolean | null; /** List of hosted component of the application */ components?: HostedComponent[]; } /** Specifes business manager module file bundle */ export interface Bundle { /** The JavaScript file to load */ file?: string; /** If there are some experiments that define if this page should be enabled, list of experiment lists with OR relationship between them, experiments should be in business manager scope */ enabledByExperiments?: ExperimentGroupWrapper[]; /** A alternative debug file for debugging issues */ debugFile?: string | null; } /** Specifies a list of experiments that have AND relationship between them, and OR relationship between each list */ export interface ExperimentGroupWrapper { /** list of experiments with AND relationship between them, for false value use ! before experiment spec */ experimentsGroup?: string[]; } /** Specifies page components for a business manager module */ export interface PageDashboardApplicationComponent { /** The id of the page */ id?: string; /** The route of the page, the part of the url after /dashboard/{msid}/ (must be unique in the specific application) */ route?: string; /** The name you used to register this component to the ModuleRegistry (must be unique across apps) */ name?: string; /** If there are some experiments that define if this page should be enabled, list of experiment lists with OR relationship between them, experiments should be in business manager scope. */ enabledByExperiments?: ExperimentGroupWrapper[]; /** Additional routes to the page */ routeAliases?: string[]; } /** Specifies config for topology and config data */ export interface AppConfiguration { /** A map of topology key to template url */ topology?: Record; /** Config section that will be provided to your lazy component and component along with all other properties from business-manager, if your config object will contain topology parameter */ configData?: Record; } /** Specifes business hosted component configuration */ export interface HostedComponent { /** A unique id for the component, maps between the host and name */ id?: string; /** The component name used in registerComponentWithModuleParams components can be shared by using the same name but a unique id */ name?: string; /** Permissions required for the component, this is not strictly enforced */ requiredPermission?: string; /** Represents the collection of components where the component will be hosted, get this value from the host provider. */ hostContainerId?: HostContainerId; /** If there are some experiments that define if this page should be enabled, list of experiment lists with OR relationship between them, experiments should be in business manager scope */ enabledByExperiments?: ExperimentGroupWrapper[]; /** A URI used to send component error events */ errorReporting?: ErrorReporting; } export declare enum HostContainerId { BUSINESS_MANAGER = "BUSINESS_MANAGER", BUSINESS_DASHBOARD_HOST = "BUSINESS_DASHBOARD_HOST", SIDEBAR_FOOTER = "SIDEBAR_FOOTER" } /** Contact Labels Extensions */ export interface ContactLabelsComponentData { /** Whether apps can create labels in this namespace. */ allowAppDefinedLabels?: boolean | null; /** * Required permissions to manage app-defined labels. * Only apps with these permission will be able to create labels in this namespace. * Relevant if `allow_app_defined_labels` is `true`. */ permission?: string | null; /** Predefined labels that exist on all sites that install the app. */ predefinedLabels?: PredefinedLabel[]; } export interface PredefinedLabel { /** * Unique key. Can contain letters, dashes, or underscores. * For example, `"secondary-hobby"`. */ key?: string; /** * Display name. * For example, `"Secondary Hobby"`. */ displayName?: string; } /** A component to be rendered within Widget Slots */ export interface WidgetPluginComponentData { /** ID of the widget used for the plugin component. */ referenceComponentId?: string; /** APIs implemented by the Plugin's widget. */ pluginInterfaces?: PluginInterface[]; /** Marketing information about the plugin. */ marketData?: PluginMarketData; /** List of placements where the plugin is allowed to be installed. */ placements?: PluginPlacement[]; /** Widget plugin installation settings. */ installation?: PluginInstallationSettings; } /** Marketing information about the plugin. */ export interface PluginMarketData { /** Plugin name. */ name?: string; /** Plugin description. */ description?: string; /** Plugin logo. 35x35px in JPG or PNG format. */ logoUrl?: string | null; } /** Combination of IDs that uniquely identify a slot in the app component. */ export interface PluginPlacement { /** Slot app definition ID. */ appDefinitionId?: string; /** Slot app component ID. */ widgetId?: string; /** Slot ID. */ slotId?: string; } export interface PluginInstallationSettings { /** Shared installation settings for unified components */ base?: BaseInstallation; } export interface CrossSellConfig { /** uri for call implementor, could be one of `grpc://`, `velo://`, `https://` */ baseUri?: string; } /** Local Delivery component */ export interface LocalDeliveryComponentData { /** * URL for the Delivery provider registration web page. * The App Instance and Account Id query parameters are attached to the registration URL * so that you can identify your account when accessing the vendor api. [learn more](https://devforum.wix.com/en/article/app-instance) */ registrationUrl?: string; /** * The base URL for all the local delivery api calls. * Description of end points and schema can be find in the local delivery documentation. */ apiBaseUri?: string; } /** Configuration for the payment service SPI implementor */ export interface PaymentServiceProviderConfig { /** Payment service provider to display on Accept payments tab in Business manager */ title?: string; /** SPI base url */ baseUrl?: string; /** Available payment methods */ paymentMethods?: PaymentMethod[]; /** Provider authentication methods */ credentialsFields?: PaymentServiceProviderCredentialsField[]; } export interface PaymentMethod extends PaymentMethodMethodOneOf { /** Information about hosted page payment method */ hostedPage?: HostedPage; } /** @oneof */ export interface PaymentMethodMethodOneOf { /** Information about hosted page payment method */ hostedPage?: HostedPage; } export interface HostedPage { /** The payment method title to be will be displayed on accept payments tab in business manager as well as on the checkout */ title?: string; /** Url to images in different formats and colors */ logos?: Logos; /** Billing address fields that buyer needs to fill in order to process payment with the specified payment method */ billingAddressMandatoryFields?: MandatoryField[]; } export interface Logos { /** white theme logos */ white?: Color; /** colored theme logos */ colored?: Color; } export interface Color { /** URL to SVG image */ svg?: string; /** URL to PNG image */ png?: string; } export declare enum MandatoryField { ZIPCODE = "ZIPCODE", CITY = "CITY", STATE = "STATE", ADDRESS = "ADDRESS", COUNTRY_CODE = "COUNTRY_CODE", EMAIL = "EMAIL", PHONE = "PHONE", FIRST_NAME = "FIRST_NAME", LAST_NAME = "LAST_NAME", STREET = "STREET", HOUSE_NUMBER = "HOUSE_NUMBER", TAX_IDENTIFIER = "TAX_IDENTIFIER" } export interface PaymentServiceProviderCredentialsField extends PaymentServiceProviderCredentialsFieldFieldOneOf { /** text field */ simpleField?: SimpleField; /** checkbox field */ checkboxField?: CheckboxField; /** dropdown field */ dropdownField?: DropdownField; } /** @oneof */ export interface PaymentServiceProviderCredentialsFieldFieldOneOf { /** text field */ simpleField?: SimpleField; /** checkbox field */ checkboxField?: CheckboxField; /** dropdown field */ dropdownField?: DropdownField; } export interface SimpleField { /** field name */ name?: string; /** field label */ label?: string; } export interface CheckboxField { /** field name */ name?: string; /** field label */ label?: string; /** field tooltip */ tooltip?: string | null; } export interface DropdownField { /** field name */ name?: string; /** field label */ label?: string; /** specific options */ options?: DropdownFieldOption[]; } export interface DropdownFieldOption { /** option key */ key?: string; /** option value */ value?: string; } export interface MembershipsSPIConfig { /** The URL of the SPI implementation */ deploymentUri?: string; catalogAppDefIds?: string[]; } export interface LineItemsEnricherConfig { /** the base URI where all the methods are deployed. */ baseUri?: string; } export interface ShippingRatesConfig { /** * Base URI where the endpoints are called. * Wix eCommerce appends the endpoint path to the base URI. * For example, to call the Get Shipping Rates endpoint at `https://my-shipping-provider.com/v1/getRates`, * the base URI you provide here is `https://my-shipping-provider.com/`. */ deploymentUri?: string; /** Human-readable name of the shipping provider. */ name?: string; /** Description of the shipping provider. */ description?: string | null; /** URL to more info about the shipping provider. */ learnMoreUrl?: string | null; /** URL to reach the shipping provider app's dashboard. */ dashboardUrl?: string | null; /** Whether to require the site owner to define a fallback/default rate. Set to `true` if you do not provide rates as part of the integration. */ fallbackDefinitionMandatory?: boolean; /** * Thumbnail image of the shipping rates provider. Displayed in the shipping settings section in the Dashboard. * The URL must be of an image uploaded to the [Wix Media Manager](https://support.wix.com/en/article/wix-media-uploading-media-to-the-media-manager). */ thumbnailUrl?: string | null; } export interface ShippingLabelCarrierSpiConfig { /** the base URI where all the methods are deployed */ baseUri?: string; /** the countries supported to send from */ originCountries?: string[]; /** the countries supported to send to */ destinationCountries?: string[]; /** the currency of the labels */ currency?: string; /** the measurement system of he labels (Metric or Imperial) */ measurementSystem?: MeasurementSystem; /** does carrier support insurance */ isInsuranceSupported?: boolean; /** preset carrier packages */ packageTypes?: PackageType[]; } export declare enum MeasurementSystem { Metric = "Metric", Imperial = "Imperial" } export interface PackageType { /** carrier id that can be used to get quotes and purchase */ id?: string; /** display name of the package (translated) */ name?: string; /** description (translated) */ description?: string; /** the dimensions of the package */ dimension?: PackageDimension; /** image of the package (Optional) */ image?: Image; } export interface PackageDimension { /** width of the package */ width?: number; /** length of the package */ length?: number; /** height of the package (Optional) */ height?: number | null; } export interface Image { /** WixMedia image ID. */ id?: string; /** Image URL. */ url?: string; /** * Original image height. * @readonly */ height?: number; /** * Original image width. * @readonly */ width?: number; /** Image alt text. Optional. */ altText?: string | null; /** Image filename. Optional. */ filename?: string | null; } /** Restaurants POS component */ export interface RestaurantsPOSComponentData { /** * URL for the Restaurants POS registration web page. * The app instance and account ID query parameters are appended to the registration URL so that you can identify an account when accessing the vendor api. * [Learn more](https://devforum.wix.com/en/article/app-instance). */ registrationUrl?: string; /** Base URL for all the Restaurants POS API calls. */ apiBaseUri?: string; /** Configuration parameters defining the behavoiur of the catalog sync. */ catalogSyncConfiguration?: CatalogSyncConfiguration; } export interface CatalogSyncConfiguration { /** If menu, section, or dish availability will be updated on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction). */ entityAvailabilityUpdated?: Default; /** Whether fulfillment methods will be defined on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction). */ fulfillmentMethodsDefinition?: Default; /** If dish images will be updated on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction). */ dishImagesUpdated?: Default; /** If sorting (Menu/Category/Dish/Options) will be done on the POS side (API order) or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction). */ entitySortingControl?: Default; /** If labels will be updated on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction). */ dishLabelsUpdated?: Default; /** If min/max amount of choices is to be set on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction). */ dishOptionsMinMaxUpdated?: Default; /** If dish in/out of stock will be retrieved from POS or updated on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction). */ dishInStockUpdated?: Default; } export declare enum Default { WIX = "WIX", POS = "POS" } export interface ShippingProviderConfig { /** URI configuration of the deployment */ deploymentUri?: SpiBaseUri; /** User-friendly name of the shipping provider */ shippingCompanyName?: string; /** Cost of making a shipment */ shippingPrice?: number; } export interface SpiBaseUri { /** * Base URI where the methods are called. Wix appends the path to the `baseUri`. * For example, to call the Get Shipping Rates method at `https://my-shipping-provider.com/v1/getRates`, the base URI you provide here is `https://my-shipping-provider.com/`. */ baseUri?: string; /** Alternate, custom URIs to replace the default URIs for specific service plugin methods. */ alternativeUris?: AlternativeUri[]; } export interface AlternativeUri { /** * Name of the method to create a custom URI for. * * For `methodName`, use the name of the method in PascalCase. * For example, for Get Shipping Rates use `GetShippingRates`. */ methodName?: string; /** * Custom URI that Wix uses to call your server for this method. The path-suffix documented in the method will not be appended to this URI. * Must be a secured endpoint beginning with `https://`. For example, `https://www.my-shipping-provider.com/my-shipping-rates`. */ absoluteUri?: string; } export interface AlertEnricherSpiConfiguration { deploymentUri?: string; } /** A component holding schema of Data Extensions */ export interface DataExtensionsComponentData { /** FQDN of the entity that the application extends */ fqdn?: string; /** Schema of the extended fields in JSON Schema compatible format */ schema?: Record | null; /** Extension point for this schema. empty string or "ROOT" means regular top level schema */ extensionPoint?: string; } export interface GenericHooksConfig { /** Hook definitions */ hooks?: GenericHookConfig[]; } export declare enum HookType { UNDEFINED = "UNDEFINED", BEFORE_BLOCKING = "BEFORE_BLOCKING", BEFORE = "BEFORE", AFTER = "AFTER" } export interface GenericHookConfig { /** FQN of proto service */ serviceFqn?: string; /** Name of RPC inside given proto service */ methodName?: string; /** An URI, which uniquely identifies the hook for invocation */ uri?: string; /** Type of hook */ hookType?: HookType; } export interface ActionProviderSPIConfig { /** URL to action provider service for this action */ baseUri?: string; /** Action service plugin configuration */ actionConfig?: ActionSPIConfig; } export interface ActionSPIConfig { /** Identifier for this action - human-readable action key - unique per app def ID */ actionKey?: string; /** * The action expects the following input * The schema is described according to the JSON Schema standard: https://json-schema.org/ * * Example - Add Label to Contact Action input schema: * { * "$schema": "https://json-schema.org/draft/2020-12/schema", * "type": "object", * "title": "Add label to contact input schema", * "description": "The schema of the JSON that is sent when invoking this add label to contact action", * "default": {}, * "examples": [ * { * "contactId": "a647eb32-c5f4-11ec-9d64-0242ac120002", * "labelId": "1e8b5e5e-dba2-11ec-9d64-0242ac120002" * } * ], * "required": [ * "contactId", * "labelId" * ], * "properties": { * "contactId": { * "$id": "#/properties/contactId", * "type": "string", * "format": "uuid", * "title": "Contact Id", * "description": "The ID of the contact to apply the label to", * "default": "", * "identityType": "contact" // can be contact/visitor/user, limited to 1 type per identity. * }, * "labelId": { * "$id": "#/properties/labelId", * "type": "string", * "format": "uuid", * "title": "Label Id", * "description": "The ID of the label to apply", * "default": "", * } * } * } */ inputSchema?: Record | null; /** * The output of the action, which will be added to the payload after execution. * The schema is described according to the JSON Schema standard: https://json-schema.org/ * * Example - Output of create task action * { * "$schema": "https://json-schema.org/draft/2020-12/schema", * "type": "object", * "title": "Create task action schema", * "description": "The schema of the JSON that is sent when invoking this create task action", * "default": {}, * "examples": [ * { * "taskId": "a647eb32-c5f4-11ec-9d64-0242ac120002", * } * ], * "required": [ * "taskId" * ], * "properties": { * "taskId": { * "$id": "#/properties/taskId", * "type": "string", * "format": "uuid", * "title": "Contact Id", * "description": "The ID of the task created", * "default": "", * } * } * } */ outputSchema?: Record | null; /** Actions display name - human-readable field. Ex. - "Send SMS" */ displayName?: string | null; description?: string | null; /** Specifies which optional methods were implemented */ implementedMethods?: ActionSPIConfigImplementedMethods; /** * Indicates whether we should wait for the action to complete before executing the next actions or finish and * expect a callback in the actionCompleted method */ executionType?: ExecutionType; /** Chosen interface for action */ interfaceConfiguration?: InterfaceConfiguration; /** Icon representing the action in the UI */ icon?: WixCommonImage; /** The action configuration source information */ source?: Source; } export declare enum InterfaceConfigurationType { UNKNOWN_TYPE = "UNKNOWN_TYPE", WIDGET_COMPONENT = "WIDGET_COMPONENT", GENERIC = "GENERIC" } export interface WidgetComponentOptions { /** Name of provided component */ componentName?: string; } export interface GenericOptions { /** UI schema */ uiSchema?: Record | null; } export declare enum SourceType { UNKNOWN_SOURCE_TYPE = "UNKNOWN_SOURCE_TYPE", /** The input/output schemas are constructed by developers in Dev Center using the self-service flow */ DEV_CENTER = "DEV_CENTER", /** The input/output schemas are derived from an existing Wix API through the API-to-Action feature */ WIX_API = "WIX_API" } export interface WixApiOptions { /** Service entity fqdn */ serviceEntityFqdn?: string; /** The service providing the API */ serviceName?: string; /** The method name */ methodName?: string; } export interface ActionSPIConfigImplementedMethods { /** Implements ValidateConfiguration */ validateConfiguration?: boolean; /** Implements DuplicateInputMapping */ duplicateInputMapping?: boolean; /** Implements GenerateApplicationAutomationInputMapping */ generateApplicationAutomationInputMapping?: boolean; /** Implements GetQuotaInfo */ getQuotaInfo?: boolean; /** Implements OnBeforeSave */ onBeforeSave?: boolean; /** Implements OnReset */ onReset?: boolean; /** implements generateActionInputMappingFromTemplate */ generateActionInputMappingFromTemplate?: boolean; /** implements OnRemove */ onRemove?: boolean; /** Implements GetDynamicInputSchema */ getDynamicInputSchema?: boolean; /** Implements MergeInputMappings */ mergeInputMappings?: boolean; /** Implements GetDynamicOutputSchema */ getDynamicOutputSchema?: boolean; } export declare enum ExecutionType { UNKNOWN_EXECUTION_TYPE = "UNKNOWN_EXECUTION_TYPE", SYNC = "SYNC", ASYNC = "ASYNC" } export interface Metadata { /** Show action only to advanced mode users (Wix staff) */ hidden?: boolean; } export interface InterfaceConfiguration extends InterfaceConfigurationOptionsOneOf { widgetComponentOptions?: WidgetComponentOptions; genericOptions?: GenericOptions; /** Type of chosen interface */ type?: InterfaceConfigurationType; } /** @oneof */ export interface InterfaceConfigurationOptionsOneOf { widgetComponentOptions?: WidgetComponentOptions; genericOptions?: GenericOptions; } export interface Source extends SourceOptionsOneOf { /** Wix API options */ wixApiOptions?: WixApiOptions; /** the source type */ type?: SourceType; } /** @oneof */ export interface SourceOptionsOneOf { /** Wix API options */ wixApiOptions?: WixApiOptions; } export interface CatalogSPIConfig { /** Base URI which Wix eCommerce will call to access Catalog service plugin endpoints. For example, to call the Get Catalog Items endpoint at `https://my-external-catalog.com/get-catalog-items`, the base URI you provide here is `https://my-external-catalog.com`. */ deploymentUri?: string; /** Configuration details for discounts applied to all items in the catalog. */ allItemsDiscount?: DiscountConfig; /** Configuration details for discounts applied to specific items in the catalog. */ specificItemsDiscount?: DiscountConfig; } export interface DiscountConfig { /** * Whether the discount is enabled. * * Default: `false`. */ enabled?: boolean; /** Translation key for text to display to the site owner. */ translationKey?: string; } /** A container (slot) that can be extended by other applications (e.g. widget slot or context menu slot) */ export interface BackOfficeExtensionContainer { /** Information about the type of slot. */ extendable?: Extendable; /** Default route for the container. */ defaultRoute?: string | null; /** A container (slot) common properties. */ slotData?: SlotData; } /** Extensibility properties used by containers (slots) */ export interface Extendable { /** Type of component that this slot accepts. */ extendedBy?: ExtendingComponentType; } /** Which component types can be extended in containers */ export declare enum ExtendingComponentType { INVALID = "INVALID", BACK_OFFICE_MENU_ITEM = "BACK_OFFICE_MENU_ITEM", BACK_OFFICE_EXTENSION_WIDGET = "BACK_OFFICE_EXTENSION_WIDGET" } /** List of back-office hosting platforms */ export declare enum BackOfficeHostingPlatforms { NO_HOSTING_PLATFORM = "NO_HOSTING_PLATFORM", /** Site Dashboard (The Wix Dashboard) */ BUSINESS_MANAGER = "BUSINESS_MANAGER", /** User Account Dashboard */ ACCOUNT_MANAGER = "ACCOUNT_MANAGER", /** Internal: Dev center */ DEV_CENTER = "DEV_CENTER", /** Enterprise dashboard (available to enterprise accounts only) */ ENTERPRISE = "ENTERPRISE", /** Partners dashboard (available to partners accounts only) */ PARTNERS_DASHBOARD = "PARTNERS_DASHBOARD", /** Employee only financial support dashboard */ FINANCIALS_INTERNAL_BO = "FINANCIALS_INTERNAL_BO", /** FED Guild POC dashboard */ FED_GUILD_POC = "FED_GUILD_POC", /** Studio dashboard */ STUDIO_DASHBOARD = "STUDIO_DASHBOARD", /** Channels dashboard (available to channels accounts only) */ CHANNELS = "CHANNELS", /** Wix internal dashboard for data tools (proffesional data consumers, i.e Business Analysts, Data Engineers...) */ DATA_TOOLS = "DATA_TOOLS", /** Internal back-office for payment service provider management */ PSP_BACKOFFICE = "PSP_BACKOFFICE", /** Rise.ai account dashboard */ RISE_PLATFORM_ACCOUNT_DASHBOARD = "RISE_PLATFORM_ACCOUNT_DASHBOARD", /** Enterprise demo dashboard (available to possible enterprise accounts for demo purposes) */ DEMO_DASHBOARD_ENTERPRISE = "DEMO_DASHBOARD_ENTERPRISE", /** A new AI scheduling assistant product dashboard (codename: "Nownia") */ AI_SCHEDULING_ASSISTANT_DASHBOARD = "AI_SCHEDULING_ASSISTANT_DASHBOARD", /** Employee only getting paid cluster dashboard */ GETTING_PAID = "GETTING_PAID", /** Wix internal dashboard for data (non proffesional data consumers, i.e any Wix Employee that has a need for BI data) */ DATA = "DATA" } /** Definitions of common slots properties */ export interface SlotData extends SlotDataSlotTypeOneOf { /** Widget-specific slot. */ widgetOptions?: WidgetSlot; /** Menu-specific slot. */ menuOptions?: MenuSlot; /** Slot display name. */ displayName?: string | null; /** Slot description. */ description?: string | null; /** Parameters for the slot. */ slotParams?: SlotParams; /** HTTP links to a markdown files. */ mdHttpLinks?: string[]; type?: SlotDataType; } /** @oneof */ export interface SlotDataSlotTypeOneOf { /** Widget-specific slot. */ widgetOptions?: WidgetSlot; /** Menu-specific slot. */ menuOptions?: MenuSlot; } export interface DtsDefinitionReference extends DtsDefinitionReferenceDtsDefinitionOneOf { dtsHttpLinkOptions?: DtsHttpLink; dtsContentOptions?: DtsContent; type?: DtsDefinitionType; } /** @oneof */ export interface DtsDefinitionReferenceDtsDefinitionOneOf { dtsHttpLinkOptions?: DtsHttpLink; dtsContentOptions?: DtsContent; } export declare enum DtsDefinitionType { UNKNOWN = "UNKNOWN", DTS_HTTP_LINK = "DTS_HTTP_LINK", DTS_CONTENT = "DTS_CONTENT" } export interface DtsHttpLink { /** HTTP link to the bundled d.ts file. */ bundledDtsHttpLink?: string; } export interface DtsContent { /** d.ts file content. */ bundledDtsContent?: string; } export interface BlocksData { /** Maximum allowed dimensions. */ maxDimensionsPixels?: Dimension; /** Minimum allowed dimensions. */ minDimensionsPixels?: Dimension; } export interface Dimension { /** Width of the component (max: 9999). */ width?: number | null; /** Height of the component (max: 9999). */ height?: number | null; } export interface SlotParams { /** DTS reference for the slot parameters. */ slotParamsDtsReference?: DtsDefinitionReference; /** Named export to use. */ namedExport?: string | null; } export declare enum SlotDataType { UNKNOWN = "UNKNOWN", WIDGET = "WIDGET", MENU = "MENU" } export interface WidgetSlot { /** Blocks specific data. */ blocksData?: BlocksData; } export interface MenuSlot { } /** * A component that enables extending Wix Dashboard Functionality, as defined by ExtendingComponentType. * Currently this supports extending menus and extending widget slots (for Wix apps that expose such menus and slots) */ export interface BackOfficeExtension extends BackOfficeExtensionExtensionOneOf { /** Information about a widget extension. */ widget?: LegacyBackOfficeExtensionWidget; /** Information about a menu item extension. */ menuItem?: LegacyBackOfficeMenuItem; /** ID of the slot that hosts the extension. */ extends?: string; /** Extension title. This is how the extension is referred to in the Wix Dev Center. */ title?: string; /** Extension description. This is how the extension is described in the Wix Dev Center. */ description?: string | null; /** Type of extension. */ extensionType?: ExtendingComponentType; /** * Platform that hosts the extension. * * Must be `"BUSINESS_MANAGER"`. */ hostingPlatform?: BackOfficeHostingPlatforms; } /** @oneof */ export interface BackOfficeExtensionExtensionOneOf { /** Information about a widget extension. */ widget?: LegacyBackOfficeExtensionWidget; /** Information about a menu item extension. */ menuItem?: LegacyBackOfficeMenuItem; } /** The schema of a widget extending a slot exposed in a page in the Wix Dashboard */ export interface LegacyBackOfficeExtensionWidget extends LegacyBackOfficeExtensionWidgetAssetOneOf { /** Iframe URL that hosts the widget's content. */ iframeUrl?: string; /** * Initial width of the widget while loading, in pixels. * Width may be adjusted dynamically based on the content of the widget or limited by the size of the widget's container. */ width?: number | null; /** * Initial height of the widget while loading, in pixels. * Height may be adjusted dynamically based on the content of the widget or limited by the size of the widget's container. */ height?: number | null; } /** @oneof */ export interface LegacyBackOfficeExtensionWidgetAssetOneOf { /** Iframe URL that hosts the widget's content. */ iframeUrl?: string; } /** Internal: Specifications for loading an asset via JS in the back office */ export interface BackOfficeScriptAsset { /** The JavaScript file to load */ url?: string; /** Namespacing of the component in the Webpack Module Federation registry */ containerId?: string; /** Key name for the retrieval of the component */ exportedName?: string; /** Optional: What type should by used on