/** Component data */ 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; /** * Load a WOOI directly in the Editor DOM. * Learn More: https://dev.wix.com/docs/fed-guild/articles/viewer/platform/intro/get-started/guidelines * @internal */ widgetOutOfIframeData?: WidgetOutOfIframeComponentData; /** * Load a POOI directly in the Editor DOM. * Learn More: https://dev.wix.com/docs/fed-guild/articles/viewer/platform/intro/get-started/guidelines * @internal */ pageOutOfIframeData?: PageOutOfIframeComponentData; /** * Load a collection of native Editor components directly in the Editor DOM. * Learn More: https://dev.wix.com/docs/fed-guild/articles/editor-platform/welcome-to-the-editor-platform * @internal */ platformComponentData?: PlatfromComponentData; /** * 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; /** * Use Wix Blocks to create a widget component. Wix Blocks will open in a new tab. * Learn More: https://bo.wix.com/wix-docs/rest/drafts/wix-blocks-server---app-builder * @internal */ studioComponentData?: StudioComponentData; /** * A widget component in the Wix Blocks. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/wix-blocks * @internal */ studioWidgetComponentData?: StudioWidgetComponentData; /** * A component that indicates the existence of an importable code package in a Wix Blocks application. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/wix-blocks-code-package * @internal */ codePackageComponentData?: CodePackageComponentData; /** * Load a collection of native components directly in the Business Manager. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/dashboard-platfrom/dashboard-platfrom-component-data-object * @internal */ dashboardPlatformComponentData?: DashboardPlatfromComponentData; /** * 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 draggable component in the Editor using an HTML custom element. * Learn More: https://devforum.wix.com/kb/en/article/create-a-custom-element * @internal */ webComponentData?: WebComponentData; /** * Extend app with internal Wix extension. * @internal */ extensionData?: ExtensionData; /** @internal */ snippetSolutionsData?: SnippetSolutionData; /** * Extend a site’s CMS to store and manage custom data. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/data-collections/about-data-collections-extensions */ dataComponent?: DataComponent; /** @internal */ dcConfigData?: DCConfigData; /** * Serve a file from the user’s site domain. * Learn More: https://devforum.wix.com/en/article/serving-staic-files-from-the-installed-sites-domain * @internal */ staticFileComponentData?: StaticFileComponentData; /** @internal */ appConfig?: AppConfig; /** * Create a multi-page dashboard in the Business Manager. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/multiple-dashboards * @internal */ multipleDashboardsComponentData?: MultipleDashboardsComponentData; /** * Payments gateway extension description * @internal */ paymentsGateway?: PaymentsGatewayComponentData; /** * Extend an app with automation capabilities using CRM Automations * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/automation-trigger * @internal */ automationTrigger?: AutomationTrigger; /** * Any restrictions on invoices actions * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/invoices-actions * @internal */ invoicesActionsComponentData?: InvoicesActionsComponentData; /** * Experimental-WIP: Business manager app_config, configures a module and its page components in business manager. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/dashboard-application * @internal */ dashboardApplicationData?: DashboardApplicationData; /** * Contact Labels Components * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/contact-labels * @internal */ contactLabels?: ContactLabelsComponentData; /** * 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; /** * Cross Sell Integration * @internal */ crossSell?: CrossSellConfig; /** * Experimental-WIP: Local Delivery extension description. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/local-delivery * @internal */ localDelivery?: LocalDeliveryComponentData; /** * WIP: Velo payment provider SPI * @internal */ paymentProvider?: PaymentServiceProviderConfig; /** * Memberships SPI for ECOM platform * @internal */ ecomMemberships?: MembershipsSPIConfig; /** * Line Items Enricher SPI for ECOM platform * @internal */ ecomLineItemsEnricher?: LineItemsEnricherConfig; /** * Provide custom shipping rates to a site's cart and checkout. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/shipping-rates-integration-service-plugin/introduction */ ecomShippingRates?: ShippingRatesConfig; /** * Shipping Label Carrier SPI * @internal */ shippingLabelCarrier?: ShippingLabelCarrierSpiConfig; /** * Restaurants POS service plugin * @internal */ restaurantsPos?: RestaurantsPOSComponentData; /** * A fictional Shipping SPI that is used by developers to complete SPI training * https://github.com/wix-academy/spi-in-scala-path * @internal */ fictionalShippingProvider?: ShippingProviderConfig; /** * Alert Enricher Integration * @internal */ alertEnricher?: AlertEnricherSpiConfiguration; /** Extend a Wix entity with custom fields for your app */ dataExtensions?: DataExtensionsComponentData; /** * A common component type for all Generic Hooks * @internal */ genericHooks?: GenericHooksConfig; /** * WIP: automations action provider * @internal */ automationsActionProvider?: ActionProviderSPIConfig; /** * 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; /** * Add a space to a Wix Dashboard page that can be extended with a widget or menu item. * @internal */ backOfficeExtensionContainer?: BackOfficeExtensionContainer; /** * Create a widget or menu item that will be rendered within a Wix Dashboard page. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-plugins/about-dashboard-plugin-extensions * @internal */ backOfficeExtension?: BackOfficeExtension; /** * WIP: automations trigger provider * @internal */ automationsTriggerProvider?: TriggerProviderSPIConfig; /** * WIP - SPI for execution before identity creation in the new IAM platform * @internal */ identityPreRegistration?: PreRegisterConfig; /** * Premium products upgrades/downgrades * @internal */ premiumProductsPaths?: ProductsPathsConfig; /** * ECOM custom scopes provider - define scopes of catalog items based custom attributes * @internal */ ecomCustomScope?: CustomScopeConfig; /** * Implement gift card benefits such as balance retrieval, redemption, and voiding transactions. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/gift-cards-service-plugin/introduction */ giftCardsProvider?: GiftCardProviderConfig; /** * Dealer External Filter SPI * @internal */ dealerExternalFilterProvider?: ExternalFilterProviderConfig; /** * Recommendations provider SPI * @internal */ ecomRecommendationsProvider?: RecommendationsProviderConfig; /** * Dropshipping Provider SPI for Ecom Platform * @internal */ ecomDropshippingProvider?: DropshippingProviderSPIConfig; /** * Invoices SPI * @internal */ invoicesProvider?: InvoicesConfig; /** * 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; /** * Ecom custom discount trigger service plugin - define custom triggers to apply discount rules * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/custom-discount-triggers-integration-service-plugin/introduction * @internal */ ecomDiscountsTrigger?: CustomTriggerConfig; /** * Multilingual content provider for site translator to read and update translations * @internal */ multilingualContentProvider?: ContentProviderConfig; /** * Application Automation * @internal */ applicationAutomation?: ApplicationAutomationComponent; /** * Experimental-WIP: A back office page category * @internal */ backOfficeSidebarCategory?: BackOfficeSidebarCategory; /** * 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; /** * Provide custom additional fees that are added to 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; /** * Send notifications to your app users * @internal */ pingUserNotification?: PingNotificationComponentData; /** Bookings Pricing Provider SPI */ bookingsPricingProvider?: BookingsPricingProviderConfig; /** * Authenticator SPI * @internal */ identityAuthenticator?: AuthenticatorConfig; /** * WIP - SPI for authenticating via external IDP in the new IAM platform * @internal */ identityIdpConnector?: IDPConnectionConfig; /** * Items Selector * @internal */ itemsSelectionProvider?: ItemsSelectionProviderConfig; /** * Portfolio synced projects provider * @internal */ portfolioSyncedProjectsProvider?: SyncedProjectsProviderConfig; /** * Communication Channel * @internal */ communicationChannel?: CommunicationChannelConfiguration; /** * WIP - SPI to run after the login process * @internal */ identityPostLogin?: PostLoginConfig; /** * Create a component that can be easily placed in or opened from a Wix app page. * @internal */ backOfficeWidget?: BackOfficeWidget; /** * Social Marketing Design SPI * @internal */ socialMarketingDesign?: SocialMarketingDesignSPIConfig; /** * Forms Submissions SPI * @internal */ formsSubmissionsProvider?: FormSubmissionSpiConfig; /** * Wix Offering * @internal */ wixOffering?: WixOfferingComponentData; /** * Components translation test component * @internal */ devCenterTestingComponent?: DevCenterTestingComponentData; /** * Components Validator SPI * @internal */ componentsValidatorProvider?: ComponentsValidatorConfig; /** * Components Translations additional fields config * @internal */ componentsTranslationsAdditionalFieldsProvider?: ComponentTranslationAdditionalFieldsConfig; /** * Forms Schema SPI * @internal */ formsSchemaProvider?: FormSchemaSpiConfig; /** * Bookings External Calendar Provider * @internal */ bookingsExternalCalendarProvider?: ProviderConfig; /** * Default Tax Category Config * Learn More: https://bo.wix.com/wix-docs/rest/drafts/platform-tax * @internal */ ecomDefaultTaxationCategory?: DefaultTaxGroupProviderConfig; /** * Viewer Dynamic Site Structure Config * @internal */ viewerDynamicSiteStructureProvider?: DynamicSiteStructureProviderConfig; /** * Send notifications to your app users of users * @internal */ pingUouNotification?: PingNotificationComponentData; /** * Holds data for authenticating Headless Applications * @internal */ headlessOauth?: HeadlessOAuth; /** * Tax Calculator Structure Config * Learn More: https://bo.wix.com/wix-docs/rest/drafts/platform-tax * @internal */ ecomTaxCalculatorSpi?: TaxCalculatorSpiConfig; /** * Comments Moderation Provider Config * @internal * @deprecated Comments Moderation Provider Config * @replacedBy comments_filter_provider */ commentsModerationProvider?: CommentModerationProviderConfig; /** * GridApp files transformer config * @internal */ gridAppFilesTransformer?: GridAppFilesTransformerConfig; /** * Holds benefit programs policy provider configuration * @internal */ benefitProgramsPolicyProvider?: PolicyConfig; /** * Apply custom charges to a site based on usage of your app's services. * Learn More: https://dev.wix.com/docs/rest/api-reference/app-management/apps/custom-charges-spi/introduction */ premiumCustomCharges?: CustomChargesConfig; /** * Validate items in a site's cart and checkout based on custom logic. * Learn More: https://dev.wix.com/docs/rest/api-reference/wix-e-commerce/validations-integration-spi/introduction */ ecomValidations?: ValidationsSPIConfig; /** * Component Reference Data SPI * @internal */ componentReferenceDataProvider?: ComponentReferenceDataConfig; /** * Wix Reviews SPI * @internal */ wixReviewsProductCatalog?: ReviewsProductCatalogProviderConfig; /** * Promote Social Marketing Designs Provider Configuration * @internal */ socialMarketingDesignsProvider?: SocialMarketingDesignsProviderConfig; /** * Promote Google Business Profile Provider Configuration * @internal */ googleBusinessProfileFeatureProvider?: GbpFeatureConfig; /** * Comments Filter Provider Config * @internal */ commentsFilterProvider?: CommentFilterProviderConfig; /** * Tax ID Validator SPI Config * @internal */ billingTaxIdValidator?: TaxIdValidatorConfig; /** * Ping Settings Group Data * @internal */ pingSettingsGroup?: PingSettingsGroupComponentData; /** * Forms Spam Submissions SPI * @internal */ formsSpamSubmissionsProvider?: FormSpamSubmissionSpiConfig; /** * 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; /** * Integrate your service with Wix's payment process to allow merchants to request and use your services on their Wix sites. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/payment-settings-integration-service-plugin/introduction */ ecomPaymentSettings?: PaymentSettingsSPIConfig; /** * Group multiple notifications into one preference toggle. * Learn More: https://dev.wix.com/docs/build-apps/build-your-app/user-notifications/add-notification-topics * @internal */ notificationTopic?: NotificationTopic; /** * Notification Preference SPI * @internal */ notificationPreferencesFilterProvider?: NotificationPreferencesFilterConfig; /** * Bookings Resource Types provider SPI config * @internal */ bookingsResourceTypesProvider?: BookingsResourceTypesProviderConfig; /** * Pricing Plans form configuration * @internal */ pricingPlansFormConfiguration?: PricingPlansFormConfiguration; /** * Create a notification to alert your app users about important updates and events. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/notifications/about-notification-extensions * @internal */ userNotification?: UserNotification; /** * Contact Notification * @internal */ contactNotification?: ContactNotification; /** * 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; /** * Availability Time Slots Configuration Provider SPI * @internal */ availabilityTimeSlotsConfigurationProvider?: AvailabilityTimeSlotsProviderConfig; /** * Proposal Editor Provider SPI config * @internal */ proposalEditorProvider?: ProposalEditorProviderConfig; /** * Custom Table Reservations Provider SPI config * @internal */ customTableReservationsProvider?: CustomReservationsApprovalConfig; /** * Comments Context provider * @internal */ commentsContextProvider?: CommentsContextProviderConfig; /** * Forms Spam Submission Reports SPI * @internal */ formsSpamSubmissionReportsProvider?: FormSpamSubmissionReportSpiConfig; /** * Automation Velo Action Spi Provider * @internal */ automationsVeloActionProvider?: VeloActionConfig; /** * Calendar Event Type Provider * @internal */ calendarEventTypeProvider?: EventTypeProviderConfig; /** * Reserved - previously was `service_availability_policy_provider` * @internal */ reserved?: ServiceAvailabilityPolicyProviderConfig; /** * Create an SMS message for a pre-installed automation, in order to translate it. * @internal */ smsActionMessage?: SmsActionMessage; /** * Booking Policy Provider SPI * @internal */ bookingPolicyProvider?: BookingPolicyProviderConfig; /** * Multi Service Booking Policy Provider SPI * @internal */ multiServiceBookingPolicyProvider?: MultiServiceBookingPolicyProviderConfig; /** * Forms Submissions Extension SPI * @internal */ formsSubmissionsExtensionProvider?: FormSubmissionSpiExtensionConfig; /** * AI Assistant SPI * @internal */ aiAssistant?: AssistantSpiConfig; /** * Multilingual translation schema * Learn More: https://dev.wix.com/docs/api-reference/business-management/multilingual/translation/translation-schema/schema-object */ multilingualTranslationSchema?: MultilingualTranslationSchema; /** * Tax Groups Provider Service Plugin * @internal */ taxGroupsProvider?: TaxGroupsProviderConfig; /** * Tax Calculation Provider Service Plugin * @internal */ taxCalculationProvider?: TaxCalculationConfig; /** Create a reusable modal that can be utilized across multiple pages within your app and in other applications. */ backOfficeModal?: BackOfficeModal; /** * Deployment Pipeline Provider SPI * @internal */ deploymentPipelineProvider?: DeploymentPipelineProviderConfig; /** * 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; /** * Create a widget that will be rendered within a Wix Dashboard page. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-plugins/about-dashboard-plugin-extensions * @internal */ backOfficeExtensionWidget?: BackOfficeExtensionWidget; /** * Create a menu item that will be rendered within a Wix Dashboard page. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-plugins/dashboard-menu-plugins/dashboard-menu-plugin-extensions * @internal */ backOfficeExtensionMenuItem?: BackOfficeExtensionMenuItem; /** * Form Template * @internal */ formTemplate?: FormTemplate; /** * Notification Content * @internal */ notificationContent?: NotificationContent; /** * Broadcast List * @internal */ broadcastList?: BroadcastList; /** * Partners Payouts * @internal */ partnersPayouts?: PayoutsProviderConfig; /** * Wix Reviews Entity Catalog Provider SPI * @internal */ wixReviewsEntityCatalog?: ReviewsEntityCatalogProviderConfig; /** * Velo Publish Pipeline Task Provider SPI * @internal */ veloPublishPipelineTaskProvider?: VeloPublishPipelineTaskProviderConfig; /** * Function shop POC SPI * @internal */ functionsShopPriceProvider?: FunctionsShopPriceSpiConfig; /** * Connect your service plugins to Functions so users can define their own custom logic. * Learn More: https://github.com/wix-private/functions-client/blob/master/README.md * @internal */ function?: _Function; /** * Ecom Checkout Content * @internal */ ecomCheckoutContent?: CheckoutContentSPIConfig; /** * Communication Channel * @internal */ communicationChannelProvider?: V2CommunicationChannelConfiguration; /** * Webhook * @internal */ webhook?: WebhookComponentData; /** * An extension that holds topology data. * @internal */ topology?: TopologyComponentData; /** * Loyalty Custom Rewards POC * @internal */ loyaltyCustomRewards?: CustomRewardProviderConfig; /** * Create a predefined template that users can use when creating flows in Functions. * Learn More: https://github.com/wix-private/functions-client/blob/master/docs/function-templates.md * @internal */ functionRecipe?: FunctionRecipe; /** * external url to the back office * @internal */ backOfficeExternalUrl?: BackOfficeExternalUrl; /** * Authentication factor * @internal */ identityFactor?: FactorConfig; /** * ecom discounts * @internal */ ecomDiscounts?: DiscountsSPIConfig; /** * Blocks Velo custom css - for CSS editing in Blocks * @internal */ veloCustomCss?: VeloCustomCss; /** * Dealer Adaptive Component Provider SPI * @internal */ dealerAdaptiveComponentProvider?: AdaptiveComponentProviderConfig; /** * Wix AI Assistant Action SPI * @internal */ aiAssistantAction?: ActionSpiConfig; /** * Integrate any external inventory with the Wix eCommerce platform. * Learn More: https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/catalogs/inventory-service-plugin/introduction */ ecomInventory?: InventorySpiConfig; /** * Add a monitoring configuration to your app. * Learn More: https://dev.wix.com/docs/build-apps/manage-your-app/observability/monitor-your-app-with-sentry * @internal */ monitoring?: Monitoring; /** * PAPI SPI * @internal */ papiProvider?: PluginConfig; /** * Add a lightbox that displays a widget in a popup over a site page. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-lightboxes/about-site-lightbox-extensions * @internal */ unifiedLightbox?: UnifiedLightbox; /** * Forms Schema Extension SPI * @internal */ formsExtensionProvider?: FormSpiExtensionConfig; /** Multilingual translation schema group */ multilingualTranslationSchemaGroup?: SchemaGroup; /** * Panel data * @internal */ panel?: Panel; /** * Premium Purchase Validations SPI * @internal */ premiumPurchaseValidations?: PurchaseValidationsConfig; /** * Any Cookies, localStorage, sessionStorage or IndexDB items the app is using in the site or their domain * @internal */ browserStorage?: BrowserStorage; /** * Map this app to SDK module * @internal */ sdkDefinition?: SdkDefinition; /** * Add a space to a Page or Widget that can be extended with a widget plugin. * @internal */ siteWidgetSlot?: SiteWidgetSlot; /** * Calendar Event Validation Provider * @internal */ calendarEventValidationProvider?: EventValidationProviderConfig; /** @internal */ clientSideService?: ClientSideService; /** * Billing Settings SPI * @internal */ billingSettings?: BillingSettingsConfig; /** * Patterns Wizard * @internal */ patternsWizard?: PatternsWizard; /** * Application Profile SPI * @internal */ applicationProfile?: ApplicationProfileProviderConfig; /** * Create an TextToSpeech message for a pre-installed automation, in order to translate it. * @internal */ textToSpeechActionMessage?: TextToSpeechActionMessage; /** * Audience Provider * @internal */ audienceProvider?: AudienceProviderConfig; /** * Pricing Plans Price * @internal */ pricingPlansPrice?: PriceSPIConfig; /** * Pricing Plans Start Date Limits SPI * @internal */ pricingPlanStartDateLimits?: StartDateLimitsSPIConfig; /** * Pricing Plans Start Date Rules SPI * @internal */ pricingPlanStartDateRules?: StartDateRulesSPIConfig; /** * Events ticket reservations SPI * @internal */ eventsTicketReservations?: TicketReservationsSpiConfig; /** * WIP: Dispute Service Plugin * @internal */ paymentsDisputeServicePlugin?: DisputeServicePluginConfig; /** * Pricing Plans Fees * @internal */ pricingPlansFees?: FeesSPIConfig; /** * A react component with native and custom editor abilities * @internal */ editorReactComponent?: EditorReactComponent; /** @internal */ suppliersHubMarketplace?: MarketplaceSPIConfig; /** * Form Schema Dynamic Values * @internal */ formSchemaDynamicValues?: FormSchemaDynamicValuesSpiConfig; /** * Blog paywall SPI * @internal */ blogPaywallProvider?: BlogPaywallProviderConfig; /** * Loyalty Custom Rewards V2 * @internal */ loyaltyCustomRewardsV2?: RewardProviderConfig; /** * Restriction service plugin for editing products managed by third-party fulfillment apps, such as dropshipping or print-on-demand services * Learn More: https://dev.wix.com/docs/rest/business-solutions/stores/service-plugins/product-restrictions-v3/introduction */ storesProductRestrictions?: ProductRestrictionsConfig; /** * Form Submission Moderation SPI * @internal */ formSubmissionModeration?: FormSubmissionModerationSpiConfig; /** * Event badges SPI * @internal */ eventsEventBadges?: EventBadgesSpiConfig; /** * Billing Operation SPI * @internal */ billingOperation?: OperationExecutorConfig; /** * customization to the back office * @internal */ backOfficeCustomization?: BackOfficeCustomization; /** * Dev Center components enricher SPI * @internal */ componentEnricherProvider?: ComponentEnricherConfig; /** * Restricted customization to the back office * @internal */ backOfficeRestrictedCustomization?: BackOfficeRestrictedCustomization; /** * Editor app previews POC * @internal */ editorAppPreviewsPoc?: AppPreviewProviderConfig; /** * Legends Persona Configuration SPI * @internal */ legendsPersonaConfiguration?: LegendsSpiConfig; /** * Wix Hosting App Deployment Provider SPI * @internal */ wixHostingAppDeploymentProvider?: AppDeploymentProviderConfig; /** * A component to store the Velo BaaS deployment data * @internal */ backendWorker?: BackendWorker; /** * Event Time Slots Configuration Provider SPI * @internal */ eventTimeSlotsConfigurationProvider?: EventTimeSlotsProviderConfig; /** * Wix Hosting App Environment Provider SPI * @internal */ wixHostingAppEnvironmentProvider?: AppEnvironmentProviderConfig; /** * SDK exports for existing app relavent SDK * @internal */ sdkExports?: SDKExports; /** * A Javascript service for Apps and React Components that will be run in the viewer (client and server side rendering) and in the editor * @internal */ viewerService?: ViewerService; /** * Wix Payments Provider Account Service Plugin * @internal */ wixPaymentsProviderAccountServicePlugin?: ProviderAccountServicePluginConfig; /** * contacts segments v2 filter provider SPI * @internal */ contactsSegmentsV2FilterProvider?: ProviderConfigMessage; /** * Wix Analytics product catalog provider SPI * @internal */ analyticsProductCatalog?: ProductCatalogProviderConfig; /** * Wix Partner Store SPI * @internal */ siteMigration?: SiteMigrationSpiConfig; /** * Restaurnts POS Provider Settings SPI * @internal */ restaurantsPosProviderSettingsServicePlugin?: PosProviderSettingsServicePluginConfig; /** * Wix Vibe instructions * @internal */ wixVibeCodingInstructions?: WixVibeCodingInstructions; /** * Tax Exempt Groups Provider Service Plugin * @internal */ taxExemptGroupsProvider?: TaxExemptGroupsProviderConfig; /** * Bookings Automations Configuration Provider SPI * @internal */ bookingAutomationsConfiguration?: BookingAutomationsConfig; /** * Bookings Platform Configuration Component * @internal */ bookingsPlatformConfiguration?: BookingsPlatformConfig; /** * Bookings Validation Provider SPI - validates bookings for external providers * @internal */ bookingsValidationProvider?: BookingsValidationProviderConfig; /** * Wix Vibe UI Component * @internal */ wixVibeComponent?: WixVibeComponent; /** * Wixel SPI * @internal */ wixel?: WixelSPIConfig; /** Bookings Staff Sorting Provider SPI */ staffSortingProvider?: StaffSortingProviderConfig; /** * Function Ecom Discount Trigger Eligibility Provider SPI * @internal */ functionEcomDiscountTriggerEligibilityProvider?: FunctionEcomDiscountTriggerEligibilityProviderConfig; /** * Functions Assistant Tools SPI * @internal */ functionsAssistantTools?: FunctionAssistantToolProviderConfig; /** * Chunked Site Map Provider SPI for apps that serve large amount of site map entries * @internal */ siteMapInfoProvider?: SiteMapProviderConfig; /** @internal */ wixAiGatewayCallback?: WixAiGatewaySpiConfig; /** * URL mapper provider SPI * @internal */ urlMapperProvider?: UrlMapperProviderConfig; /** * Provider suppression plugin * @internal */ providerSuppressionServicePlugin?: ProviderSuppressionServicePluginConfig; /** * collect form data for checkout items * @internal */ ecomForms?: FormsSPIConfig; /** * Editor Context Provider * @internal */ editorContextProvider?: EditorContextProvider; /** * Editor Function Library * @internal */ editorFunctionLibrary?: EditorFunctionLibrary; /** * Use routers to reuse pages design across multiple data items with dynamic URLs * @internal */ appRouter?: AppRouter; /** * Wixel Binding SPI * @internal */ wixelBinding?: BindingsSPIConfig; /** * Suppliers Hub Marketplace Provider V2 * @internal */ shubMarketplaceProvider?: MarketplaceProviderConfig; /** * Booking Action URLs Provider SPI * @internal */ bookingActionUrlsProvider?: BookingActionUrlsProviderConfig; /** * Calendar Conferencing Provider SPI * @internal */ calendarConferencingProvider?: ConferencingProviderConfig; /** * Validate cancel action provider SPI * @internal */ bassValidateCancelAction?: CancelSubscriptionsConfig; /** * Wixel viewer router provider SPI * @internal */ wixelViewerRouterProvider?: ViewerRouterSPIConfig; /** * Premium Action SPI * @internal */ premiumAction?: PremiumActionConfig; /** * Automation Template * @internal */ automationTemplate?: AutomationTemplateComponent; /** * Agent Maker Approval Provider SPI * @internal */ agentMakerApprovalProvider?: ApprovalProviderConfig; /** * Service Tags Configuration SPI - declares valid tags for bookings services * @internal */ serviceTagsConfiguration?: ServiceTagsConfig; /** * Loyalty Points Adjustment SPI - allows Functions to adjust loyalty points before assignment * @internal */ loyaltyPointsAdjustment?: PointsAdjustmentProviderConfig; /** * Loyalty Earn Points Limit SPI * @internal */ loyaltyEarnPointsLimit?: EarnPointsLimitProviderConfig; /** * Realtime Permissions Provider SPI - integrate with Wix to control who can receive messages on your Wix Realtime channels, by providing a custom permissions check that authorizes whether a subscriber is allowed to subscribe to your app's channels. * Learn More: https://dev.wix.com/docs/sdk/core-modules/realtime/extensions/realtime-permissions-provider/check-subscriber-permissions */ realtimePermissionsProvider?: RealtimePermissionsProviderConfig; /** * Calendar Search Provider SPI — allows entities to participate in Calendar search * @internal */ calendarSearchProvider?: CalendarSearchProviderConfig; /** * EditorInstallation — declares what to install when the parent app is installed in the editor * @internal */ editorInstallation?: EditorInstallation; /** * App-level actions surfaced in the App Manager menu. * @internal */ appActions?: AppActions; /** * Rollout Step Executor SPI — declares per-implementer config for services that execute one step of a multi-site rollout on one site. * @internal */ rolloutStepExecutor?: RolloutStepExecutorConfig; /** * Bookings Platform Premium Validation SPI configuration. * @internal */ bookingsPlatformPremiumValidation?: BookingsPlatformPremiumValidationProviderConfig; /** * Global CSS — URL pointing to the site's CSS content. * @internal */ globalCss?: GlobalCssConfig; /** * Connector Config — declares how the app connects to a third-party provider, including its identity and authentication method. * @internal */ connectorConfig?: ConnectorConfig; /** * Channel Data Provider SPI — lets a channel integrator provide business data (name, type, address) for a connected channel account. * @internal */ channelDataProvider?: ChannelDataProviderConfig; } /** @oneof */ /** @internal */ 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; /** * Load a WOOI directly in the Editor DOM. * Learn More: https://dev.wix.com/docs/fed-guild/articles/viewer/platform/intro/get-started/guidelines * @internal */ widgetOutOfIframeData?: WidgetOutOfIframeComponentData; /** * Load a POOI directly in the Editor DOM. * Learn More: https://dev.wix.com/docs/fed-guild/articles/viewer/platform/intro/get-started/guidelines * @internal */ pageOutOfIframeData?: PageOutOfIframeComponentData; /** * Load a collection of native Editor components directly in the Editor DOM. * Learn More: https://dev.wix.com/docs/fed-guild/articles/editor-platform/welcome-to-the-editor-platform * @internal */ platformComponentData?: PlatfromComponentData; /** * 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; /** * Use Wix Blocks to create a widget component. Wix Blocks will open in a new tab. * Learn More: https://bo.wix.com/wix-docs/rest/drafts/wix-blocks-server---app-builder * @internal */ studioComponentData?: StudioComponentData; /** * A widget component in the Wix Blocks. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/wix-blocks * @internal */ studioWidgetComponentData?: StudioWidgetComponentData; /** * A component that indicates the existence of an importable code package in a Wix Blocks application. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/wix-blocks-code-package * @internal */ codePackageComponentData?: CodePackageComponentData; /** * Load a collection of native components directly in the Business Manager. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/dashboard-platfrom/dashboard-platfrom-component-data-object * @internal */ dashboardPlatformComponentData?: DashboardPlatfromComponentData; /** * 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 draggable component in the Editor using an HTML custom element. * Learn More: https://devforum.wix.com/kb/en/article/create-a-custom-element * @internal */ webComponentData?: WebComponentData; /** * Extend app with internal Wix extension. * @internal */ extensionData?: ExtensionData; /** @internal */ snippetSolutionsData?: SnippetSolutionData; /** * Extend a site’s CMS to store and manage custom data. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/data-collections/about-data-collections-extensions */ dataComponent?: DataComponent; /** @internal */ dcConfigData?: DCConfigData; /** * Serve a file from the user’s site domain. * Learn More: https://devforum.wix.com/en/article/serving-staic-files-from-the-installed-sites-domain * @internal */ staticFileComponentData?: StaticFileComponentData; /** @internal */ appConfig?: AppConfig; /** * Create a multi-page dashboard in the Business Manager. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/multiple-dashboards * @internal */ multipleDashboardsComponentData?: MultipleDashboardsComponentData; /** * Payments gateway extension description * @internal */ paymentsGateway?: PaymentsGatewayComponentData; /** * Extend an app with automation capabilities using CRM Automations * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/automation-trigger * @internal */ automationTrigger?: AutomationTrigger; /** * Any restrictions on invoices actions * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/invoices-actions * @internal */ invoicesActionsComponentData?: InvoicesActionsComponentData; /** * Experimental-WIP: Business manager app_config, configures a module and its page components in business manager. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/dashboard-application * @internal */ dashboardApplicationData?: DashboardApplicationData; /** * Contact Labels Components * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/contact-labels * @internal */ contactLabels?: ContactLabelsComponentData; /** * 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; /** * Cross Sell Integration * @internal */ crossSell?: CrossSellConfig; /** * Experimental-WIP: Local Delivery extension description. * Learn More: https://bo.wix.com/wix-docs/rnd/dev-center/components-catalog/local-delivery * @internal */ localDelivery?: LocalDeliveryComponentData; /** * WIP: Velo payment provider SPI * @internal */ paymentProvider?: PaymentServiceProviderConfig; /** * Memberships SPI for ECOM platform * @internal */ ecomMemberships?: MembershipsSPIConfig; /** * Line Items Enricher SPI for ECOM platform * @internal */ ecomLineItemsEnricher?: LineItemsEnricherConfig; /** * Provide custom shipping rates to a site's cart and checkout. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/shipping-rates-integration-service-plugin/introduction */ ecomShippingRates?: ShippingRatesConfig; /** * Shipping Label Carrier SPI * @internal */ shippingLabelCarrier?: ShippingLabelCarrierSpiConfig; /** * Restaurants POS service plugin * @internal */ restaurantsPos?: RestaurantsPOSComponentData; /** * A fictional Shipping SPI that is used by developers to complete SPI training * https://github.com/wix-academy/spi-in-scala-path * @internal */ fictionalShippingProvider?: ShippingProviderConfig; /** * Alert Enricher Integration * @internal */ alertEnricher?: AlertEnricherSpiConfiguration; /** Extend a Wix entity with custom fields for your app */ dataExtensions?: DataExtensionsComponentData; /** * A common component type for all Generic Hooks * @internal */ genericHooks?: GenericHooksConfig; /** * WIP: automations action provider * @internal */ automationsActionProvider?: ActionProviderSPIConfig; /** * 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; /** * Add a space to a Wix Dashboard page that can be extended with a widget or menu item. * @internal */ backOfficeExtensionContainer?: BackOfficeExtensionContainer; /** * Create a widget or menu item that will be rendered within a Wix Dashboard page. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-plugins/about-dashboard-plugin-extensions * @internal */ backOfficeExtension?: BackOfficeExtension; /** * WIP: automations trigger provider * @internal */ automationsTriggerProvider?: TriggerProviderSPIConfig; /** * WIP - SPI for execution before identity creation in the new IAM platform * @internal */ identityPreRegistration?: PreRegisterConfig; /** * Premium products upgrades/downgrades * @internal */ premiumProductsPaths?: ProductsPathsConfig; /** * ECOM custom scopes provider - define scopes of catalog items based custom attributes * @internal */ ecomCustomScope?: CustomScopeConfig; /** * Implement gift card benefits such as balance retrieval, redemption, and voiding transactions. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/gift-cards-service-plugin/introduction */ giftCardsProvider?: GiftCardProviderConfig; /** * Dealer External Filter SPI * @internal */ dealerExternalFilterProvider?: ExternalFilterProviderConfig; /** * Recommendations provider SPI * @internal */ ecomRecommendationsProvider?: RecommendationsProviderConfig; /** * Dropshipping Provider SPI for Ecom Platform * @internal */ ecomDropshippingProvider?: DropshippingProviderSPIConfig; /** * Invoices SPI * @internal */ invoicesProvider?: InvoicesConfig; /** * 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; /** * Ecom custom discount trigger service plugin - define custom triggers to apply discount rules * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/custom-discount-triggers-integration-service-plugin/introduction * @internal */ ecomDiscountsTrigger?: CustomTriggerConfig; /** * Multilingual content provider for site translator to read and update translations * @internal */ multilingualContentProvider?: ContentProviderConfig; /** * Application Automation * @internal */ applicationAutomation?: ApplicationAutomationComponent; /** * Experimental-WIP: A back office page category * @internal */ backOfficeSidebarCategory?: BackOfficeSidebarCategory; /** * 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; /** * Provide custom additional fees that are added to 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; /** * Send notifications to your app users * @internal */ pingUserNotification?: PingNotificationComponentData; /** Bookings Pricing Provider SPI */ bookingsPricingProvider?: BookingsPricingProviderConfig; /** * Authenticator SPI * @internal */ identityAuthenticator?: AuthenticatorConfig; /** * WIP - SPI for authenticating via external IDP in the new IAM platform * @internal */ identityIdpConnector?: IDPConnectionConfig; /** * Items Selector * @internal */ itemsSelectionProvider?: ItemsSelectionProviderConfig; /** * Portfolio synced projects provider * @internal */ portfolioSyncedProjectsProvider?: SyncedProjectsProviderConfig; /** * Communication Channel * @internal */ communicationChannel?: CommunicationChannelConfiguration; /** * WIP - SPI to run after the login process * @internal */ identityPostLogin?: PostLoginConfig; /** * Create a component that can be easily placed in or opened from a Wix app page. * @internal */ backOfficeWidget?: BackOfficeWidget; /** * Social Marketing Design SPI * @internal */ socialMarketingDesign?: SocialMarketingDesignSPIConfig; /** * Forms Submissions SPI * @internal */ formsSubmissionsProvider?: FormSubmissionSpiConfig; /** * Wix Offering * @internal */ wixOffering?: WixOfferingComponentData; /** * Components translation test component * @internal */ devCenterTestingComponent?: DevCenterTestingComponentData; /** * Components Validator SPI * @internal */ componentsValidatorProvider?: ComponentsValidatorConfig; /** * Components Translations additional fields config * @internal */ componentsTranslationsAdditionalFieldsProvider?: ComponentTranslationAdditionalFieldsConfig; /** * Forms Schema SPI * @internal */ formsSchemaProvider?: FormSchemaSpiConfig; /** * Bookings External Calendar Provider * @internal */ bookingsExternalCalendarProvider?: ProviderConfig; /** * Default Tax Category Config * Learn More: https://bo.wix.com/wix-docs/rest/drafts/platform-tax * @internal */ ecomDefaultTaxationCategory?: DefaultTaxGroupProviderConfig; /** * Viewer Dynamic Site Structure Config * @internal */ viewerDynamicSiteStructureProvider?: DynamicSiteStructureProviderConfig; /** * Send notifications to your app users of users * @internal */ pingUouNotification?: PingNotificationComponentData; /** * Holds data for authenticating Headless Applications * @internal */ headlessOauth?: HeadlessOAuth; /** * Tax Calculator Structure Config * Learn More: https://bo.wix.com/wix-docs/rest/drafts/platform-tax * @internal */ ecomTaxCalculatorSpi?: TaxCalculatorSpiConfig; /** * Comments Moderation Provider Config * @internal * @deprecated Comments Moderation Provider Config * @replacedBy comments_filter_provider */ commentsModerationProvider?: CommentModerationProviderConfig; /** * GridApp files transformer config * @internal */ gridAppFilesTransformer?: GridAppFilesTransformerConfig; /** * Holds benefit programs policy provider configuration * @internal */ benefitProgramsPolicyProvider?: PolicyConfig; /** * Apply custom charges to a site based on usage of your app's services. * Learn More: https://dev.wix.com/docs/rest/api-reference/app-management/apps/custom-charges-spi/introduction */ premiumCustomCharges?: CustomChargesConfig; /** * Validate items in a site's cart and checkout based on custom logic. * Learn More: https://dev.wix.com/docs/rest/api-reference/wix-e-commerce/validations-integration-spi/introduction */ ecomValidations?: ValidationsSPIConfig; /** * Component Reference Data SPI * @internal */ componentReferenceDataProvider?: ComponentReferenceDataConfig; /** * Wix Reviews SPI * @internal */ wixReviewsProductCatalog?: ReviewsProductCatalogProviderConfig; /** * Promote Social Marketing Designs Provider Configuration * @internal */ socialMarketingDesignsProvider?: SocialMarketingDesignsProviderConfig; /** * Promote Google Business Profile Provider Configuration * @internal */ googleBusinessProfileFeatureProvider?: GbpFeatureConfig; /** * Comments Filter Provider Config * @internal */ commentsFilterProvider?: CommentFilterProviderConfig; /** * Tax ID Validator SPI Config * @internal */ billingTaxIdValidator?: TaxIdValidatorConfig; /** * Ping Settings Group Data * @internal */ pingSettingsGroup?: PingSettingsGroupComponentData; /** * Forms Spam Submissions SPI * @internal */ formsSpamSubmissionsProvider?: FormSpamSubmissionSpiConfig; /** * 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; /** * Integrate your service with Wix's payment process to allow merchants to request and use your services on their Wix sites. * Learn More: https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/payment-settings-integration-service-plugin/introduction */ ecomPaymentSettings?: PaymentSettingsSPIConfig; /** * Group multiple notifications into one preference toggle. * Learn More: https://dev.wix.com/docs/build-apps/build-your-app/user-notifications/add-notification-topics * @internal */ notificationTopic?: NotificationTopic; /** * Notification Preference SPI * @internal */ notificationPreferencesFilterProvider?: NotificationPreferencesFilterConfig; /** * Bookings Resource Types provider SPI config * @internal */ bookingsResourceTypesProvider?: BookingsResourceTypesProviderConfig; /** * Pricing Plans form configuration * @internal */ pricingPlansFormConfiguration?: PricingPlansFormConfiguration; /** * Create a notification to alert your app users about important updates and events. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/notifications/about-notification-extensions * @internal */ userNotification?: UserNotification; /** * Contact Notification * @internal */ contactNotification?: ContactNotification; /** * 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; /** * Availability Time Slots Configuration Provider SPI * @internal */ availabilityTimeSlotsConfigurationProvider?: AvailabilityTimeSlotsProviderConfig; /** * Proposal Editor Provider SPI config * @internal */ proposalEditorProvider?: ProposalEditorProviderConfig; /** * Custom Table Reservations Provider SPI config * @internal */ customTableReservationsProvider?: CustomReservationsApprovalConfig; /** * Comments Context provider * @internal */ commentsContextProvider?: CommentsContextProviderConfig; /** * Forms Spam Submission Reports SPI * @internal */ formsSpamSubmissionReportsProvider?: FormSpamSubmissionReportSpiConfig; /** * Automation Velo Action Spi Provider * @internal */ automationsVeloActionProvider?: VeloActionConfig; /** * Calendar Event Type Provider * @internal */ calendarEventTypeProvider?: EventTypeProviderConfig; /** * Reserved - previously was `service_availability_policy_provider` * @internal */ reserved?: ServiceAvailabilityPolicyProviderConfig; /** * Create an SMS message for a pre-installed automation, in order to translate it. * @internal */ smsActionMessage?: SmsActionMessage; /** * Booking Policy Provider SPI * @internal */ bookingPolicyProvider?: BookingPolicyProviderConfig; /** * Multi Service Booking Policy Provider SPI * @internal */ multiServiceBookingPolicyProvider?: MultiServiceBookingPolicyProviderConfig; /** * Forms Submissions Extension SPI * @internal */ formsSubmissionsExtensionProvider?: FormSubmissionSpiExtensionConfig; /** * AI Assistant SPI * @internal */ aiAssistant?: AssistantSpiConfig; /** * Multilingual translation schema * Learn More: https://dev.wix.com/docs/api-reference/business-management/multilingual/translation/translation-schema/schema-object */ multilingualTranslationSchema?: MultilingualTranslationSchema; /** * Tax Groups Provider Service Plugin * @internal */ taxGroupsProvider?: TaxGroupsProviderConfig; /** * Tax Calculation Provider Service Plugin * @internal */ taxCalculationProvider?: TaxCalculationConfig; /** Create a reusable modal that can be utilized across multiple pages within your app and in other applications. */ backOfficeModal?: BackOfficeModal; /** * Deployment Pipeline Provider SPI * @internal */ deploymentPipelineProvider?: DeploymentPipelineProviderConfig; /** * 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; /** * Create a widget that will be rendered within a Wix Dashboard page. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-plugins/about-dashboard-plugin-extensions * @internal */ backOfficeExtensionWidget?: BackOfficeExtensionWidget; /** * Create a menu item that will be rendered within a Wix Dashboard page. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-plugins/dashboard-menu-plugins/dashboard-menu-plugin-extensions * @internal */ backOfficeExtensionMenuItem?: BackOfficeExtensionMenuItem; /** * Form Template * @internal */ formTemplate?: FormTemplate; /** * Notification Content * @internal */ notificationContent?: NotificationContent; /** * Broadcast List * @internal */ broadcastList?: BroadcastList; /** * Partners Payouts * @internal */ partnersPayouts?: PayoutsProviderConfig; /** * Wix Reviews Entity Catalog Provider SPI * @internal */ wixReviewsEntityCatalog?: ReviewsEntityCatalogProviderConfig; /** * Velo Publish Pipeline Task Provider SPI * @internal */ veloPublishPipelineTaskProvider?: VeloPublishPipelineTaskProviderConfig; /** * Function shop POC SPI * @internal */ functionsShopPriceProvider?: FunctionsShopPriceSpiConfig; /** * Connect your service plugins to Functions so users can define their own custom logic. * Learn More: https://github.com/wix-private/functions-client/blob/master/README.md * @internal */ function?: _Function; /** * Ecom Checkout Content * @internal */ ecomCheckoutContent?: CheckoutContentSPIConfig; /** * Communication Channel * @internal */ communicationChannelProvider?: V2CommunicationChannelConfiguration; /** * Webhook * @internal */ webhook?: WebhookComponentData; /** * An extension that holds topology data. * @internal */ topology?: TopologyComponentData; /** * Loyalty Custom Rewards POC * @internal */ loyaltyCustomRewards?: CustomRewardProviderConfig; /** * Create a predefined template that users can use when creating flows in Functions. * Learn More: https://github.com/wix-private/functions-client/blob/master/docs/function-templates.md * @internal */ functionRecipe?: FunctionRecipe; /** * external url to the back office * @internal */ backOfficeExternalUrl?: BackOfficeExternalUrl; /** * Authentication factor * @internal */ identityFactor?: FactorConfig; /** * ecom discounts * @internal */ ecomDiscounts?: DiscountsSPIConfig; /** * Blocks Velo custom css - for CSS editing in Blocks * @internal */ veloCustomCss?: VeloCustomCss; /** * Dealer Adaptive Component Provider SPI * @internal */ dealerAdaptiveComponentProvider?: AdaptiveComponentProviderConfig; /** * Wix AI Assistant Action SPI * @internal */ aiAssistantAction?: ActionSpiConfig; /** * Integrate any external inventory with the Wix eCommerce platform. * Learn More: https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/catalogs/inventory-service-plugin/introduction */ ecomInventory?: InventorySpiConfig; /** * Add a monitoring configuration to your app. * Learn More: https://dev.wix.com/docs/build-apps/manage-your-app/observability/monitor-your-app-with-sentry * @internal */ monitoring?: Monitoring; /** * PAPI SPI * @internal */ papiProvider?: PluginConfig; /** * Add a lightbox that displays a widget in a popup over a site page. * Learn More: https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-lightboxes/about-site-lightbox-extensions * @internal */ unifiedLightbox?: UnifiedLightbox; /** * Forms Schema Extension SPI * @internal */ formsExtensionProvider?: FormSpiExtensionConfig; /** Multilingual translation schema group */ multilingualTranslationSchemaGroup?: SchemaGroup; /** * Panel data * @internal */ panel?: Panel; /** * Premium Purchase Validations SPI * @internal */ premiumPurchaseValidations?: PurchaseValidationsConfig; /** * Any Cookies, localStorage, sessionStorage or IndexDB items the app is using in the site or their domain * @internal */ browserStorage?: BrowserStorage; /** * Map this app to SDK module * @internal */ sdkDefinition?: SdkDefinition; /** * Add a space to a Page or Widget that can be extended with a widget plugin. * @internal */ siteWidgetSlot?: SiteWidgetSlot; /** * Calendar Event Validation Provider * @internal */ calendarEventValidationProvider?: EventValidationProviderConfig; /** @internal */ clientSideService?: ClientSideService; /** * Billing Settings SPI * @internal */ billingSettings?: BillingSettingsConfig; /** * Patterns Wizard * @internal */ patternsWizard?: PatternsWizard; /** * Application Profile SPI * @internal */ applicationProfile?: ApplicationProfileProviderConfig; /** * Create an TextToSpeech message for a pre-installed automation, in order to translate it. * @internal */ textToSpeechActionMessage?: TextToSpeechActionMessage; /** * Audience Provider * @internal */ audienceProvider?: AudienceProviderConfig; /** * Pricing Plans Price * @internal */ pricingPlansPrice?: PriceSPIConfig; /** * Pricing Plans Start Date Limits SPI * @internal */ pricingPlanStartDateLimits?: StartDateLimitsSPIConfig; /** * Pricing Plans Start Date Rules SPI * @internal */ pricingPlanStartDateRules?: StartDateRulesSPIConfig; /** * Events ticket reservations SPI * @internal */ eventsTicketReservations?: TicketReservationsSpiConfig; /** * WIP: Dispute Service Plugin * @internal */ paymentsDisputeServicePlugin?: DisputeServicePluginConfig; /** * Pricing Plans Fees * @internal */ pricingPlansFees?: FeesSPIConfig; /** * A react component with native and custom editor abilities * @internal */ editorReactComponent?: EditorReactComponent; /** @internal */ suppliersHubMarketplace?: MarketplaceSPIConfig; /** * Form Schema Dynamic Values * @internal */ formSchemaDynamicValues?: FormSchemaDynamicValuesSpiConfig; /** * Blog paywall SPI * @internal */ blogPaywallProvider?: BlogPaywallProviderConfig; /** * Loyalty Custom Rewards V2 * @internal */ loyaltyCustomRewardsV2?: RewardProviderConfig; /** * Restriction service plugin for editing products managed by third-party fulfillment apps, such as dropshipping or print-on-demand services * Learn More: https://dev.wix.com/docs/rest/business-solutions/stores/service-plugins/product-restrictions-v3/introduction */ storesProductRestrictions?: ProductRestrictionsConfig; /** * Form Submission Moderation SPI * @internal */ formSubmissionModeration?: FormSubmissionModerationSpiConfig; /** * Event badges SPI * @internal */ eventsEventBadges?: EventBadgesSpiConfig; /** * Billing Operation SPI * @internal */ billingOperation?: OperationExecutorConfig; /** * customization to the back office * @internal */ backOfficeCustomization?: BackOfficeCustomization; /** * Dev Center components enricher SPI * @internal */ componentEnricherProvider?: ComponentEnricherConfig; /** * Restricted customization to the back office * @internal */ backOfficeRestrictedCustomization?: BackOfficeRestrictedCustomization; /** * Editor app previews POC * @internal */ editorAppPreviewsPoc?: AppPreviewProviderConfig; /** * Legends Persona Configuration SPI * @internal */ legendsPersonaConfiguration?: LegendsSpiConfig; /** * Wix Hosting App Deployment Provider SPI * @internal */ wixHostingAppDeploymentProvider?: AppDeploymentProviderConfig; /** * A component to store the Velo BaaS deployment data * @internal */ backendWorker?: BackendWorker; /** * Event Time Slots Configuration Provider SPI * @internal */ eventTimeSlotsConfigurationProvider?: EventTimeSlotsProviderConfig; /** * Wix Hosting App Environment Provider SPI * @internal */ wixHostingAppEnvironmentProvider?: AppEnvironmentProviderConfig; /** * SDK exports for existing app relavent SDK * @internal */ sdkExports?: SDKExports; /** * A Javascript service for Apps and React Components that will be run in the viewer (client and server side rendering) and in the editor * @internal */ viewerService?: ViewerService; /** * Wix Payments Provider Account Service Plugin * @internal */ wixPaymentsProviderAccountServicePlugin?: ProviderAccountServicePluginConfig; /** * contacts segments v2 filter provider SPI * @internal */ contactsSegmentsV2FilterProvider?: ProviderConfigMessage; /** * Wix Analytics product catalog provider SPI * @internal */ analyticsProductCatalog?: ProductCatalogProviderConfig; /** * Wix Partner Store SPI * @internal */ siteMigration?: SiteMigrationSpiConfig; /** * Restaurnts POS Provider Settings SPI * @internal */ restaurantsPosProviderSettingsServicePlugin?: PosProviderSettingsServicePluginConfig; /** * Wix Vibe instructions * @internal */ wixVibeCodingInstructions?: WixVibeCodingInstructions; /** * Tax Exempt Groups Provider Service Plugin * @internal */ taxExemptGroupsProvider?: TaxExemptGroupsProviderConfig; /** * Bookings Automations Configuration Provider SPI * @internal */ bookingAutomationsConfiguration?: BookingAutomationsConfig; /** * Bookings Platform Configuration Component * @internal */ bookingsPlatformConfiguration?: BookingsPlatformConfig; /** * Bookings Validation Provider SPI - validates bookings for external providers * @internal */ bookingsValidationProvider?: BookingsValidationProviderConfig; /** * Wix Vibe UI Component * @internal */ wixVibeComponent?: WixVibeComponent; /** * Wixel SPI * @internal */ wixel?: WixelSPIConfig; /** Bookings Staff Sorting Provider SPI */ staffSortingProvider?: StaffSortingProviderConfig; /** * Function Ecom Discount Trigger Eligibility Provider SPI * @internal */ functionEcomDiscountTriggerEligibilityProvider?: FunctionEcomDiscountTriggerEligibilityProviderConfig; /** * Functions Assistant Tools SPI * @internal */ functionsAssistantTools?: FunctionAssistantToolProviderConfig; /** * Chunked Site Map Provider SPI for apps that serve large amount of site map entries * @internal */ siteMapInfoProvider?: SiteMapProviderConfig; /** @internal */ wixAiGatewayCallback?: WixAiGatewaySpiConfig; /** * URL mapper provider SPI * @internal */ urlMapperProvider?: UrlMapperProviderConfig; /** * Provider suppression plugin * @internal */ providerSuppressionServicePlugin?: ProviderSuppressionServicePluginConfig; /** * collect form data for checkout items * @internal */ ecomForms?: FormsSPIConfig; /** * Editor Context Provider * @internal */ editorContextProvider?: EditorContextProvider; /** * Editor Function Library * @internal */ editorFunctionLibrary?: EditorFunctionLibrary; /** * Use routers to reuse pages design across multiple data items with dynamic URLs * @internal */ appRouter?: AppRouter; /** * Wixel Binding SPI * @internal */ wixelBinding?: BindingsSPIConfig; /** * Suppliers Hub Marketplace Provider V2 * @internal */ shubMarketplaceProvider?: MarketplaceProviderConfig; /** * Booking Action URLs Provider SPI * @internal */ bookingActionUrlsProvider?: BookingActionUrlsProviderConfig; /** * Calendar Conferencing Provider SPI * @internal */ calendarConferencingProvider?: ConferencingProviderConfig; /** * Validate cancel action provider SPI * @internal */ bassValidateCancelAction?: CancelSubscriptionsConfig; /** * Wixel viewer router provider SPI * @internal */ wixelViewerRouterProvider?: ViewerRouterSPIConfig; /** * Premium Action SPI * @internal */ premiumAction?: PremiumActionConfig; /** * Automation Template * @internal */ automationTemplate?: AutomationTemplateComponent; /** * Agent Maker Approval Provider SPI * @internal */ agentMakerApprovalProvider?: ApprovalProviderConfig; /** * Service Tags Configuration SPI - declares valid tags for bookings services * @internal */ serviceTagsConfiguration?: ServiceTagsConfig; /** * Loyalty Points Adjustment SPI - allows Functions to adjust loyalty points before assignment * @internal */ loyaltyPointsAdjustment?: PointsAdjustmentProviderConfig; /** * Loyalty Earn Points Limit SPI * @internal */ loyaltyEarnPointsLimit?: EarnPointsLimitProviderConfig; /** * Realtime Permissions Provider SPI - integrate with Wix to control who can receive messages on your Wix Realtime channels, by providing a custom permissions check that authorizes whether a subscriber is allowed to subscribe to your app's channels. * Learn More: https://dev.wix.com/docs/sdk/core-modules/realtime/extensions/realtime-permissions-provider/check-subscriber-permissions */ realtimePermissionsProvider?: RealtimePermissionsProviderConfig; /** * Calendar Search Provider SPI — allows entities to participate in Calendar search * @internal */ calendarSearchProvider?: CalendarSearchProviderConfig; /** * EditorInstallation — declares what to install when the parent app is installed in the editor * @internal */ editorInstallation?: EditorInstallation; /** * App-level actions surfaced in the App Manager menu. * @internal */ appActions?: AppActions; /** * Rollout Step Executor SPI — declares per-implementer config for services that execute one step of a multi-site rollout on one site. * @internal */ rolloutStepExecutor?: RolloutStepExecutorConfig; /** * Bookings Platform Premium Validation SPI configuration. * @internal */ bookingsPlatformPremiumValidation?: BookingsPlatformPremiumValidationProviderConfig; /** * Global CSS — URL pointing to the site's CSS content. * @internal */ globalCss?: GlobalCssConfig; /** * Connector Config — declares how the app connects to a third-party provider, including its identity and authentication method. * @internal */ connectorConfig?: ConnectorConfig; /** * Channel Data Provider SPI — lets a channel integrator provide business data (name, type, address) for a connected channel account. * @internal */ channelDataProvider?: ChannelDataProviderConfig; } /** An iframe to be displayed on the user’s site */ 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?: WidgetWidthTypeWithLiterals; /** * Widget width size * @max 9999 */ width?: number | null; /** * Widget width height * @max 9999 */ height?: number | null; /** * A public link to the widget endpoint * @format WEB_URL */ 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 * @min 1 * @max 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; /** * The component-type as will be written in Document Management. * @internal * @maxLength 512 */ componentType?: string | null; /** * The type of the referenced schema e.g. `wysiwyg.viewer.components.tpapps.TPAWidget`. * @internal * @maxLength 512 */ refType?: string | null; /** * if true, ssr will not cache pages that contain this widget * @internal */ ssrCacheExcluded?: boolean; /** * if true, when site member is logged in and this widget is in the page - ssr will not cache it * @internal * @deprecated if true, when site member is logged in and this widget is in the page - ssr will not cache it * @replacedBy site_members_ssr_caching * @targetRemovalDate 2025-12-31 */ siteMembersSsrCacheExcluded?: boolean; /** * Controls SSR caching behavior when site members are logged in * @internal */ siteMembersSsrCaching?: SiteMembersSsrCachingWithLiterals; /** * Controls MPA Navigation behavior for this widget * @internal */ mpaNavigation?: MpaNavigationWithLiterals; /** Add widget to site home page (supported only in server installation currently) */ addToHomePage?: boolean; } /** Allow users to resize and move the widget, or pin it to a specific position on all pages of the site. */ /** @internal */ interface FixedPositionOptions { /** Vertical widget position in the browser window */ widgetVertical?: WidgetVerticalWithLiterals; /** Horizontal widget position in the browser window */ widgetHorizontal?: WidgetHorizontalWithLiterals; } /** Vertical widget position in the browser window */ /** @internal */ declare enum WidgetVertical { NONE_VERTICAL = "NONE_VERTICAL", TOP = "TOP", CENTER_VERTICAL = "CENTER_VERTICAL", BOTTOM = "BOTTOM" } /** @enumType */ /** @internal */ type WidgetVerticalWithLiterals = WidgetVertical | 'NONE_VERTICAL' | 'TOP' | 'CENTER_VERTICAL' | 'BOTTOM'; /** Horizontal widget position in the browser window */ /** @internal */ declare enum WidgetHorizontal { NONE_HORIZONTAL = "NONE_HORIZONTAL", LEFT = "LEFT", CENTER_HORIZONTAL = "CENTER_HORIZONTAL", RIGHT = "RIGHT" } /** @enumType */ /** @internal */ type WidgetHorizontalWithLiterals = WidgetHorizontal | 'NONE_HORIZONTAL' | 'LEFT' | 'CENTER_HORIZONTAL' | 'RIGHT'; /** Widget will automatically be stretched to this width after installing it */ /** @internal */ declare enum WidgetWidthType { NONE_TYPE = "NONE_TYPE", /** A custom width for the widget */ CUSTOM = "CUSTOM", /** Full width of the browser window */ FULL = "FULL" } /** @enumType */ /** @internal */ type WidgetWidthTypeWithLiterals = WidgetWidthType | 'NONE_TYPE' | 'CUSTOM' | 'FULL'; /** @internal */ interface WidgetDisplay { name?: string; /** * short description about the widget * @maxLength 300 */ 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; } /** @internal */ interface Position { region?: RegionWithLiterals; } /** @internal */ declare enum Region { no_region = "no_region", header = "header", pageContainer = "pageContainer", footer = "footer" } /** @enumType */ /** @internal */ type RegionWithLiterals = Region | 'no_region' | 'header' | 'pageContainer' | 'footer'; /** @internal */ 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; } /** @internal */ interface IsStretched { desktop?: boolean | null; tablet?: boolean | null; mobile?: boolean | null; } /** @internal */ interface Margins { desktop?: DisplayProperties; tablet?: DisplayProperties; mobile?: DisplayProperties; } /** @internal */ interface DisplayProperties { top?: DisplayValue; right?: DisplayValue; bottom?: DisplayValue; left?: DisplayValue; } /** @internal */ interface DisplayValue { type?: UnitTypeWithLiterals; value?: number | null; } /** @internal */ declare enum UnitType { NO_UNIT = "NO_UNIT", AUTO = "AUTO", PX = "PX", VH = "VH", VW = "VW", PERCENTAGE = "PERCENTAGE" } /** @enumType */ /** @internal */ type UnitTypeWithLiterals = UnitType | 'NO_UNIT' | 'AUTO' | 'PX' | 'VH' | 'VW' | 'PERCENTAGE'; /** @internal */ interface Docking { desktop?: DockingProperties; tablet?: DockingProperties; mobile?: DockingProperties; } /** @internal */ interface DockingProperties { horizontal?: HorizontalDockingWithLiterals; vertical?: VerticalDockingWithLiterals; } /** @internal */ declare enum HorizontalDocking { NO_HDOCKING = "NO_HDOCKING", LEFT_DOCKING = "LEFT_DOCKING", HCENTER = "HCENTER", RIGHT_DOCKING = "RIGHT_DOCKING" } /** @enumType */ /** @internal */ type HorizontalDockingWithLiterals = HorizontalDocking | 'NO_HDOCKING' | 'LEFT_DOCKING' | 'HCENTER' | 'RIGHT_DOCKING'; /** @internal */ declare enum VerticalDocking { NO_VDOCKING = "NO_VDOCKING", TOP_DOCKING = "TOP_DOCKING", VCENTER = "VCENTER", BOTTOM_DOCKING = "BOTTOM_DOCKING" } /** @enumType */ /** @internal */ type VerticalDockingWithLiterals = VerticalDocking | 'NO_VDOCKING' | 'TOP_DOCKING' | 'VCENTER' | 'BOTTOM_DOCKING'; /** @internal */ interface Height { desktop?: DisplayValue; tablet?: DisplayValue; mobile?: DisplayValue; } /** @internal */ interface ApiWidth { desktop?: DisplayValue; tablet?: DisplayValue; mobile?: DisplayValue; } /** SSR caching configuration for site members */ /** @internal */ declare enum SiteMembersSsrCaching { UNKNOWN_SITE_MEMBERS_SSR_CACHING = "UNKNOWN_SITE_MEMBERS_SSR_CACHING", /** SSR caching is allowed when site members are logged in */ CACHING_ALLOWED = "CACHING_ALLOWED", /** SSR caching is not allowed when site members are logged in */ CACHING_NOT_ALLOWED = "CACHING_NOT_ALLOWED" } /** @enumType */ /** @internal */ type SiteMembersSsrCachingWithLiterals = SiteMembersSsrCaching | 'UNKNOWN_SITE_MEMBERS_SSR_CACHING' | 'CACHING_ALLOWED' | 'CACHING_NOT_ALLOWED'; /** MPA Navigation configuration */ /** @internal */ declare enum MpaNavigation { DEFAULT = "DEFAULT", /** MPA Navigation is enabled for this component */ ALLOWED = "ALLOWED", /** MPA Navigation is disabled for this component */ NOT_ALLOWED = "NOT_ALLOWED" } /** @enumType */ /** @internal */ type MpaNavigationWithLiterals = MpaNavigation | 'DEFAULT' | 'ALLOWED' | 'NOT_ALLOWED'; /** An iframe to be displayed as a full page on the user’s site */ 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 * @format WEB_URL */ 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 * @min 1 * @max 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; /** * The component-type as will be written in Document Management. * @internal * @maxLength 512 */ componentType?: string | null; /** * The type of the referenced schema e.g. `wysiwyg.viewer.components.tpapps.TPASection`. * @internal * @maxLength 512 */ refType?: string | null; /** * if true, ssr will not cache pages that contain this page widget * @internal */ ssrCacheExcluded?: boolean; /** * if true, when site member is logged in this page - ssr will not cache it * @internal * @deprecated if true, when site member is logged in this page - ssr will not cache it * @replacedBy site_members_ssr_caching * @targetRemovalDate 2025-12-31 */ siteMembersSsrCacheExcluded?: boolean; /** * Controls SSR caching behavior when site members are logged in * @internal */ siteMembersSsrCaching?: SiteMembersSsrCachingWithLiterals; /** * Controls MPA Navigation behavior for this page * @internal */ mpaNavigation?: MpaNavigationWithLiterals; /** * short description about the page * @maxLength 300 */ shortDescription?: string | null; /** When true, this page is displayed as full page on desktop only */ fullPageDesktopOnly?: boolean | null; /** When true, this page is used as a landing page on mobile */ landingPageInMobile?: boolean | null; } /** @internal */ interface Padding { desktop?: DisplayProperties; tablet?: DisplayProperties; mobile?: DisplayProperties; } /** @internal */ interface PageReplaceOptions extends PageReplaceOptionsOptionsOneOf { replacingOptions?: ReplacingOptions; replaceableOptions?: ReplaceableOptions; type?: ReplacementTypeWithLiterals; } /** @oneof */ /** @internal */ interface PageReplaceOptionsOptionsOneOf { replacingOptions?: ReplacingOptions; replaceableOptions?: ReplaceableOptions; } /** @internal */ interface PageReplace { /** * The app id of the page the app can replace * @format GUID */ appId?: string; /** * The page id the app can replace * @format GUID */ pageId?: string; } /** @internal */ declare enum ReplacementType { UNKNOWN_REPLACEMENT = "UNKNOWN_REPLACEMENT", REPLACING = "REPLACING", REPLACEABLE = "REPLACEABLE" } /** @enumType */ /** @internal */ type ReplacementTypeWithLiterals = ReplacementType | 'UNKNOWN_REPLACEMENT' | 'REPLACING' | 'REPLACEABLE'; /** @internal */ interface ReplacingOptions { /** describe the page and application id that this page will replace. */ pageReplace?: PageReplace; } /** @internal */ 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 */ /** @internal */ interface WidgetOutOfIframeComponentData { /** * Iframe URL that hosts the widget's content. * @format WEB_URL */ componentUrl?: string; /** * Iframe controller URL. * @format WEB_URL */ controllerUrl?: string | null; /** Information about the widget. */ widgetData?: WidgetComponentData; /** * Out of iframe SSR URL. * @format WEB_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. * @format WEB_URL */ noCssComponentUrl?: string | null; /** Whether to support different style param values for different breakpoints. */ cssPerBreakpoint?: boolean | null; /** * builderConfig static url. * @format WEB_URL */ builderConfigUrl?: string | null; /** * The component-type as will be written in Document Management. * @internal * @maxLength 512 */ componentType?: string | null; /** * The type of the referenced schema e.g. `wysiwyg.viewer.components.tpapps.TPAWidget`. * @internal * @maxLength 512 */ refType?: string | null; /** * Builder config URL template. `<%=serviceUrl('your_artifact_id', 'builder_url_bundle_file')%>` * @maxLength 512 */ builderConfigUrlTemplate?: string | null; /** Whether to render the component in the Editor as React (true) or as an iframe (false) */ ooiInEditor?: boolean | null; /** * if true, render the OOI instead * @internal */ migratingToOoi?: boolean | null; } /** Out Of Iframes additional info */ /** @internal */ 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?: ApiSlot[]; /** if true, ssr will not cache pages that contain this widget */ ssrCacheExcluded?: boolean; /** Should use loadable-components */ isLoadable?: boolean; /** * The list of slot ids available * @internal * @format GUID * @maxSize 100 */ slotIds?: string[]; /** * Specifying the visibility level and maturity stage * @internal */ exposureAndMaturity?: ExtensionExposure; /** * if true, when site member is logged in and this widget is in the page - ssr will not cache it * @deprecated if true, when site member is logged in and this widget is in the page - ssr will not cache it * @replacedBy site_members_ssr_caching * @targetRemovalDate 2025-12-31 */ siteMembersSsrCacheExcluded?: boolean; /** * Controls SSR caching behavior when site members are logged in * @deprecated Controls SSR caching behavior when site members are logged in * @targetRemovalDate 2026-03-01 */ siteMembersSsrCaching?: SiteMembersSsrCachingWithLiterals; } /** An editor settings configuration */ /** @internal */ interface SettingsUrl { /** * The URL for the setting panel * @format WEB_URL */ 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 */ /** @internal */ 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. */ /** @internal */ interface ErrorReportingArtifact { /** * The full artifact id of the project which errors are associated with (Example: com.wixpress.my-artifact) * @minLength 1 * @maxLength 255 */ fullArtifactId?: string; /** * The project version which errors are associated with (Example: Falcon fingerprint) * @minLength 1 * @maxLength 255 */ version?: string; } /** Definition of slot */ /** @internal */ interface ApiSlot { /** 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?: PluginInterfaceWithLiterals[]; /** Id of the slot component (a.k.a. Velo role) */ slotId?: string; } /** The types of public APIs exposed by the Plugin */ /** @internal */ 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" } /** @enumType */ /** @internal */ type PluginInterfaceWithLiterals = PluginInterface | 'NONE_INTERFACE' | 'REVIEWS' | 'RATINGS_SUMMARY' | 'RATINGS_SUMMARY_OOI_LIST' | 'BOOKINGS_SERVICE' | 'BOOKINGS_FORM' | 'BASE' | 'EVENT' | 'PRODUCT' | 'CHECKOUT' | 'CATEGORY' | 'BOOKINGS_CALENDAR' | 'CART'; /** @internal */ interface ExtensionExposure { /** * The exposure of the component * @internal */ exposure?: ExtensionExposureExposureWithLiterals; /** Determines if the component is production ready */ maturity?: MaturityWithLiterals; } /** @internal */ declare enum ExtensionExposureExposure { /** Unexposed. to be used by dev team only */ PRIVATE = "PRIVATE", /** Exposed internally */ INTERNAL = "INTERNAL", /** Exposed to the world */ PUBLIC = "PUBLIC" } /** @enumType */ /** @internal */ type ExtensionExposureExposureWithLiterals = ExtensionExposureExposure | 'PRIVATE' | 'INTERNAL' | 'PUBLIC'; /** @internal */ 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" } /** @enumType */ /** @internal */ type MaturityWithLiterals = Maturity | 'ALPHA' | 'BETA' | 'GA' | 'NOT_IMPLEMENTED'; /** A page out of iframe component that loads directly in the Editor DOM */ /** @internal */ interface PageOutOfIframeComponentData { /** * Out of iframe component URL. * @format WEB_URL */ componentUrl?: string; /** * Out of iframe controller URL. * @format WEB_URL */ controllerUrl?: string | null; /** Page data. */ pageData?: PageComponentData; /** * Out of iframe SSR URL. * @format WEB_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. * @format WEB_URL */ noCssComponentUrl?: string | null; /** Whether to enable support for different style param values for different breakpoints. */ cssPerBreakpoint?: boolean | null; /** * builderConfig static url. * @format WEB_URL */ builderConfigUrl?: string | null; /** * The component-type as will be written in Document Management. * @internal * @maxLength 512 */ componentType?: string | null; /** * The type of the referenced schema e.g. `wysiwyg.viewer.components.tpapps.TPASection`. * @internal * @maxLength 512 */ refType?: string | null; /** * Builder config URL template. `<%=serviceUrl('your_artifact_id', 'builder_url_bundle_file')%>` * @maxLength 512 */ builderConfigUrlTemplate?: string | null; /** Whether to render the component in the Editor as React (true) or as an iframe (false) */ ooiInEditor?: boolean | null; /** * if true, render the OOI instead * @internal */ migratingToOoi?: boolean | null; } /** Create a collection of native Editor components that loads directly in the Editor DOM */ /** @internal */ interface PlatfromComponentData { /** * Path to a Javascript file that Editor runs on app install * @format WEB_URL */ 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. * @format WEB_URL */ 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 * @format WEB_URL */ 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 * @format WEB_URL */ 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; /** * Should be <%=serviceUrl('your_artifact_id', 'editor_script_url_bundle_file')%>, this will later be resolved to the right version in the context of the request, meaning, URL/Cookie overrides, Rollout version, Employee Preview version and override the version of editor_script_url. * @internal */ editorScriptUrlTemplate?: string | null; /** 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?: HTTPMethodWithLiterals; } /** Add interim support for HTTP methods before a bigger rewrite for Routers as a component */ /** @internal */ declare enum HTTPMethod { UNKNOWN_METHOD = "UNKNOWN_METHOD", GET = "GET", POST = "POST" } /** @enumType */ /** @internal */ type HTTPMethodWithLiterals = HTTPMethod | 'UNKNOWN_METHOD' | 'GET' | 'POST'; /** * An iframe that opens in the user’s Wix Dashboard, * or add a link to open the page directly in your platform. */ interface DashboardComponentData { /** * The dashboard url. * @format WEB_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 * @maxLength 300 */ settingsPageUrl?: string | null; /** @maxLength 300 */ 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 */ interface WorkerComponentData { /** * A public link to the worker endpoint * @format WEB_URL */ 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 */ /** @internal */ 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 * @format GUID */ wixCodeInstanceId?: string; /** * Id of the grid in wixCode FS where the widgets code is located. used in order to access the widgets code * @format GUID */ 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. */ /** @internal */ 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; /** * Optional, static artifact short name, used for BoB application to indicate the relation between the widget and its static artifact * @internal */ relatedArtifact?: string | null; /** 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; /** * if true, ssr will not cache pages that contain this widget * @internal */ ssrCacheExcluded?: boolean; /** * The builder component model by shared logic of unified components. Required in oder to create a builder component * @internal */ componentModel?: ComponentModel; /** * Optional: The URL of the widget's code bundle * @format WEB_URL */ widgetBundleUrl?: string | null; /** * The list of slot ids available * @internal * @format GUID * @maxSize 100 */ slotIds?: string[]; /** * Specifying the visibility level and maturity stage * @internal */ exposureAndMaturity?: ExtensionExposure; /** * if true, when site member is logged in and this widget is in the page - ssr will not cache it * @internal * @deprecated if true, when site member is logged in and this widget is in the page - ssr will not cache it * @replacedBy site_members_ssr_caching * @targetRemovalDate 2025-12-31 */ siteMembersSsrCacheExcluded?: boolean; /** * Controls SSR caching behavior when site members are logged in * @internal */ siteMembersSsrCaching?: SiteMembersSsrCachingWithLiterals; /** * Controls MPA Navigation behavior for this studio widget * @internal */ mpaNavigation?: MpaNavigationWithLiterals; } /** A variation of a blocks widget */ /** @internal */ 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; } /** @internal */ 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 */ /** @internal */ 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 */ /** @internal */ interface NestedWidgets { /** * ids of all recursively nested widgets from the same Blocks app * @format GUID */ internal?: string[]; } /** Preset Info */ /** @internal */ 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 */ /** @internal */ 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. */ /** @internal */ 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?: InstallPageWithLiterals; /** 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 */ /** @internal */ 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 */ /** @internal */ 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" } /** @enumType */ /** @internal */ type InstallPageWithLiterals = InstallPage | 'NO_PAGE' | 'CURRENT' | 'PAGE' | 'LIGHTBOX'; /** Defines the main preset per breakpoint for the widget. */ /** @internal */ 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 */ /** @internal */ 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; } /** @internal */ 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; } /** @internal */ interface EditorPresence { /** Properties that describe the presence of each of the widget's presets */ presetsEditorPresence?: PresetEditorPresence[]; } /** @internal */ 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; } /** @internal */ 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 URL expiration date (when relevant). * @internal * @readonly */ urlExpirationDate?: Date | null; /** * Image filename. * @readonly */ filename?: string | null; /** * Image size in bytes. * @internal * @readonly * @format DECIMAL_VALUE */ sizeInBytes?: string | null; /** * Focal point of the image. * @internal */ focalPoint?: FocalPoint; } /** @internal */ 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; } /** @internal */ interface BaseInfo { /** * The name of the component * @minLength 1 * @maxLength 30 */ name?: string; /** The internal id of the component by the own app */ id?: string; /** * The description of the component by the own app * @maxLength 130 */ description?: string; /** Reference to help articles about the widget */ helpResources?: HelpResources; } /** @internal */ interface HelpResources { /** * The Wix Answers' article related to the component (chosen by own app) * @format GUID */ articleId?: string; } /** @internal */ interface WidgetInstallationSettings extends WidgetInstallationSettingsTargetContainerOneOf { /** Which static container should the widget be installed at */ staticContainer?: StaticContainerWithLiterals; /** * Deprecated, autoAdd should be mapped to static_container HOMEPAGE, essential should be mapped to container. Shared installation settings for unified components * @deprecated Deprecated, autoAdd should be mapped to static_container HOMEPAGE, essential should be mapped to container. Shared installation settings for unified components * @replacedBy static_container * @targetRemovalDate 2026-02-26 */ base?: BaseInstallation; /** * Deprecated, default_preset should be mapped to presets, region is not relevant. Widget installation settings for unified components * @deprecated Deprecated, default_preset should be mapped to presets, region is not relevant. Widget installation settings for unified components * @replacedBy presets * @targetRemovalDate 2026-02-26 */ widget?: WidgetInstallation; /** Default presets per breakpoint with which the widget should be installed */ presets?: DefaultPresets; } /** @oneof */ /** @internal */ interface WidgetInstallationSettingsTargetContainerOneOf { /** Which static container should the widget be installed at */ staticContainer?: StaticContainerWithLiterals; } /** @internal */ 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; } /** @internal */ interface WidgetInstallation { /** Preset should be selected defaultly with installation */ defaultPreset?: MainPresets; /** Region of widget */ region?: RegionTypeWithLiterals; } /** @internal */ declare enum RegionType { HEADER = "HEADER", BODY = "BODY", FOOTER = "FOOTER" } /** @enumType */ /** @internal */ type RegionTypeWithLiterals = RegionType | 'HEADER' | 'BODY' | 'FOOTER'; /** @internal */ interface DefaultPresets { /** * Default preset ID in small (mobile) breakpoint * @minLength 1 * @maxLength 50 */ small?: string | null; /** * Deprecated, use default - Default preset ID in large (desktop) breakpoint * @minLength 1 * @maxLength 50 * @deprecated Deprecated, use default - Default preset ID in large (desktop) breakpoint * @replacedBy default * @targetRemovalDate 2025-12-02 */ large?: string | null; /** * Default preset ID * @minLength 1 * @maxLength 50 */ default?: string | null; } /** @internal */ declare enum StaticContainer { UNKNOWN_CONTAINER = "UNKNOWN_CONTAINER", /** Widget should be installed in the homepage */ HOMEPAGE = "HOMEPAGE", /** Show widget on all pages */ GLOBAL_PAGE = "GLOBAL_PAGE" } /** @enumType */ /** @internal */ type StaticContainerWithLiterals = StaticContainer | 'UNKNOWN_CONTAINER' | 'HOMEPAGE' | 'GLOBAL_PAGE'; /** @internal */ interface ComponentModel { /** The component type of the builder component. */ componentType?: string; /** * The component URL of the builder component * @format WEB_URL */ componentUrl?: string; } /** A component that indicates the existence of an importable code package in a Wix Blocks application. */ /** @internal */ interface CodePackageComponentData { /** * The GUID to access the package code in the Velo/Wix Code system * @format GUID */ 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 */ /** @internal */ interface DashboardPlatfromComponentData { /** * Path to a Javascript file that Dashboard runs on app install * @format WEB_URL */ scriptUrl?: string; } /** Inject third party scripts into the user’s site */ 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?: EmbeddedScriptPagesWithLiterals; /** Where in the HTML this should be embedded */ placement?: EmbeddedScriptPlacementWithLiterals; /** 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?: EmbedCategoryWithLiterals; /** * 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. * @maxSize 50 */ dependencies?: WixDependency[]; } /** Category of pages this will be embedded on (single, many, none) */ /** @internal */ 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" } /** @enumType */ /** @internal */ type EmbeddedScriptPagesWithLiterals = EmbeddedScriptPages | 'NONE_PAGES' | 'ONCE' | 'SPECIFIC_PAGES'; /** Where that embed will be rendered */ /** @internal */ 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" } /** @enumType */ /** @internal */ type EmbeddedScriptPlacementWithLiterals = EmbeddedScriptPlacement | 'NONE_PLACEMENT' | 'HEAD' | 'BODY_START' | 'BODY_END'; /** Embed category defined for Privacy regulation compliance in EU and CCPA in the US */ /** @internal */ 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" } /** @enumType */ /** @internal */ type EmbedCategoryWithLiterals = EmbedCategory | 'UNKNOWN' | 'ESSENTIAL' | 'FUNCTIONAL' | 'ANALYTICS' | 'ADVERTISING'; /** @internal */ interface WixDependency { /** * The fully qualified package name from npm, example: @wix/frontend-location * @minLength 2 * @maxLength 100 */ 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 */ /** @internal */ 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 * @format WEB_URL */ 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 * @format WEB_URL */ 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?: WebComponentDataElementTypeWithLiterals; /** Boolean to make this component be available for free sites */ allowedForFreeSite?: boolean; /** * A public link to the SEO endpoint * @format WEB_URL */ 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?: ScriptTypeWithLiterals; /** 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; /** When true, avoid adding widgets when this component is installed/used. */ avoidAddingWidgets?: boolean; } /** Web component size */ /** @internal */ interface Size { /** * Height in pixels * @max 9999 */ height?: number; /** * Width in pixels * @max 9999 */ width?: number; } /** Graphic Floating Properties Panel settings */ /** @internal */ interface Settings { activeTab?: string; /** @format WEB_URL */ fetchInitialData?: string | null; tabs?: Tab[]; } /** Setting tab definition */ /** @internal */ interface Tab { label?: string; items?: Container[]; /** hidden tab will not be visible in editor and dev center preview */ hidden?: boolean; } /** UI Container in page */ /** @internal */ 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 */ /** @internal */ 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 */ /** @internal */ interface Main { items?: MainPropsData[]; } /** MainPropsData */ /** @internal */ interface MainPropsData { dashboardButton?: DashboardButton; richTextWithIllustrationVertical?: RichTextWithIllustrationVertical; } /** DashboardButton main 2 */ /** @internal */ interface DashboardButton { title?: string; label?: string; } /** RichTextWithIllustrationVertical main 1 */ /** @internal */ interface RichTextWithIllustrationVertical { key?: string; label?: string; text?: string; } /** Section 2 */ /** @internal */ interface Section { label?: string; } /** DrillInListItem 3 */ /** @internal */ interface DrillInListItem { items?: DrillItem[]; label?: string; } /** DrillItem */ /** @internal */ 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 */ /** @internal */ 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 */ /** @internal */ interface RadioButtonLabeled { key?: string; title?: string; value?: string; options?: string[]; description?: string; conditions?: Condition[]; } /** @internal */ interface Condition { value?: string; state?: SingleKeyCondition[]; } /** @internal */ interface SingleKeyCondition { key?: string; value?: string; visible?: boolean; } /** ColorSelectLabeled 13 */ /** @internal */ interface ColorSelectLabeled extends ColorSelectLabeledDataOneOf { customColor?: ColorDefinition; templateColor?: TemplateDefaultColorWithLiterals; title?: string; key?: string; /** @deprecated */ color?: string; defaultData?: ColorDefinition; description?: string; } /** @oneof */ /** @internal */ interface ColorSelectLabeledDataOneOf { customColor?: ColorDefinition; templateColor?: TemplateDefaultColorWithLiterals; } /** @internal */ interface ColorDefinition { value?: string; opacity?: string; } /** @internal */ 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" } /** @enumType */ /** @internal */ type TemplateDefaultColorWithLiterals = TemplateDefaultColor | 'BACKGROUND' | 'SECONDARY_TEXTS' | 'MAIN_TEXT_AND_ICONS' | 'BORDERS_AND_DIVIDERS' | 'BUTTONS_AND_LINKS'; /** Thumbnails 4 */ /** @internal */ interface Thumbnails { key?: string; title?: string; value?: string; options?: ThumbnailData[]; size?: ThumbnailsSizeWithLiterals; description?: string; conditions?: Condition[]; } /** Structure for thumbnail */ /** @internal */ interface ThumbnailData { value?: string; /** @format WEB_URL */ src?: string | null; /** @format WEB_URL */ selectedSrc?: string | null; /** @format WEB_URL */ onHoverSrc?: string | null; label?: string; } /** @internal */ declare enum ThumbnailsSize { SMALL = "SMALL", MEDIUM = "MEDIUM", LARGE = "LARGE", XLARGE = "XLARGE" } /** @enumType */ /** @internal */ type ThumbnailsSizeWithLiterals = ThumbnailsSize | 'SMALL' | 'MEDIUM' | 'LARGE' | 'XLARGE'; /** SliderLabeled 5 */ /** @internal */ interface SliderLabeled { key?: string; title?: string; size?: string; placeholder?: string; description?: string; minSize?: number; maxSize?: number; } /** DropDownLabeled 6 */ /** @internal */ interface DropDownLabeled { key?: string; title?: string; value?: string; options?: string[]; description?: string; conditions?: Condition[]; } /** ToggleLabeled 7 */ /** @internal */ interface ToggleLabeled { key?: string; title?: string; value?: boolean; description?: string; conditions?: Condition[]; } /** * Elements ========= * BarAlignment 8 */ /** @internal */ interface BarAlignment { /** @deprecated */ selected?: BarAlignmentSelectedWithLiterals; key?: string; title?: string; description?: string; value?: BarAlignmentSelectedWithLiterals; conditions?: Condition[]; } /** Bar alignment selected value */ /** @internal */ declare enum BarAlignmentSelected { ALIGN_LEFT = "ALIGN_LEFT", ALIGN_CENTER = "ALIGN_CENTER", ALIGN_RIGHT = "ALIGN_RIGHT" } /** @enumType */ /** @internal */ type BarAlignmentSelectedWithLiterals = BarAlignmentSelected | 'ALIGN_LEFT' | 'ALIGN_CENTER' | 'ALIGN_RIGHT'; /** TextInputLabeled 9 */ /** @internal */ interface TextInputLabeled { key?: string; title?: string; placeholder?: string; value?: string; description?: string; } /** 11 */ /** @internal */ interface FontFamilyWithColorPicker { key?: string; title?: string; description?: string; value?: FontDefinition; defaultValue?: FontDefinition; } /** defintion and enums */ /** @internal */ interface FontDefinition { font?: string; color?: ColorDefinition; } /** TextStyle 14 */ /** @internal */ interface TextStyle extends TextStyleDefaultColorOneOf { customColor?: ColorDefinition; templateColor?: TemplateDefaultColorWithLiterals; key?: string; title?: string; description?: string; defaultTextStyle?: DefaultTextStyleWithLiterals; } /** @oneof */ /** @internal */ interface TextStyleDefaultColorOneOf { customColor?: ColorDefinition; templateColor?: TemplateDefaultColorWithLiterals; } /** @internal */ declare enum DefaultTextStyle { TITLE = "TITLE", PARAGRAPH = "PARAGRAPH", LOWER_HIERARCHY_TEXTS = "LOWER_HIERARCHY_TEXTS" } /** @enumType */ /** @internal */ type DefaultTextStyleWithLiterals = DefaultTextStyle | 'TITLE' | 'PARAGRAPH' | 'LOWER_HIERARCHY_TEXTS'; /** 10 */ /** @internal */ interface ResetButton { label?: string; } /** @internal */ declare enum WebComponentDataElementType { WIDGET = "WIDGET", PAGE = "PAGE" } /** @enumType */ /** @internal */ type WebComponentDataElementTypeWithLiterals = WebComponentDataElementType | 'WIDGET' | 'PAGE'; /** @internal */ interface WidgetDetails { name?: string | null; icon?: string | null; description?: string | null; } /** @internal */ declare enum ScriptType { NO_SCRIPT_TYPE = "NO_SCRIPT_TYPE", MODULE = "MODULE" } /** @enumType */ /** @internal */ type ScriptTypeWithLiterals = ScriptType | 'NO_SCRIPT_TYPE' | 'MODULE'; /** @internal */ interface WidgetBehavior { /** Toggle whether the widget is removable from the page. */ removable?: boolean; /** Toggle whether the widget is duplicatable from the page. */ duplicatable?: boolean; } /** @internal */ 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" } /** @enumType */ /** @internal */ type ExtensionTypeWithLiterals = ExtensionType | 'NONE_EXTENSION' | 'PAYMENTS_GATEWAY_EXTENSION' | 'COUPONS_EXTENSION' | 'DROPSHIPPING_EXTENSION' | 'FULFILMENT_EXTENSION' | 'DROPSHIPPING_SUPPLIER_EXTENSION' | 'FULFILLMENT_CENTER_EXTENSION' | 'RESTAURANTS_POS_EXTENSION' | 'ART_STORE_EXTENSION' | 'ASCEND_AUTOMATION_EXTENSION' | 'CONTACT_LABELS_EXTENSION'; /** @internal */ interface SnippetSolutionData { code?: string; instructions?: string; } /** An extension for adding data collections to a site when the app is installed. */ interface DataComponent { /** * Token used by Wix to add collections to a site during app installation. For internal use only. * @internal * @format GUID */ collectionsToken?: string | null; /** * Data collections automatically added to a site when the app is installed. * @maxSize 100 */ collections?: Collection[]; } /** @internal */ interface Field extends FieldTypeOptionsOneOf { /** Metadata for a reference field. */ referenceOptions?: ReferenceOptions; /** Metadata for a multi-reference field. */ multiReferenceOptions?: MultiReferenceOptions; /** Metadata for an object field. */ objectOptions?: ObjectOptions; /** Metadata for an array field. */ arrayOptions?: ArrayOptions; /** * Required. Unique identifier for the field. For example, `firstName`. * @minLength 1 * @maxLength 1000 */ key?: string; /** * Field's display name when displayed in the CMS. For example, `First Name`. * @minLength 1 * @maxLength 1000 */ displayName?: string | null; /** * Required. Field's data type. * * Learn more about [data types in Wix Data](https://dev.wix.com/docs/rest/business-solutions/cms/data-types-in-wix-data). */ type?: FieldTypeWithLiterals; /** Whether the field is encrypted. */ encrypted?: boolean; /** * Field description. * @maxLength 16000 */ description?: string | null; } /** @oneof */ /** @internal */ interface FieldTypeOptionsOneOf { /** Metadata for a reference field. */ referenceOptions?: ReferenceOptions; /** Metadata for a multi-reference field. */ multiReferenceOptions?: MultiReferenceOptions; /** Metadata for an object field. */ objectOptions?: ObjectOptions; /** Metadata for an array field. */ arrayOptions?: ArrayOptions; } /** @internal */ declare enum FieldType { UNKNOWN_FIELD_TYPE = "UNKNOWN_FIELD_TYPE", /** Plain-text string. */ TEXT = "TEXT", /** Number. */ NUMBER = "NUMBER", /** Date string in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DD`. */ DATE = "DATE", /** [JavaScript Date object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) (SDK) or an object in the following format: `"someFieldKey": { "$date": "YYYY-MM-DDTHH:mm:ss.sssZ"}`. */ DATETIME = "DATETIME", /** Web URL or a [Media Manager](https://dev.wix.com/docs/rest/assets/media/media-manager/introduction) URL. */ IMAGE = "IMAGE", /** Boolean `true` or `false` value. */ BOOLEAN = "BOOLEAN", /** Web URL or a [Media Manager](https://dev.wix.com/docs/rest/assets/media/media-manager/introduction) URL. */ DOCUMENT = "DOCUMENT", /** URL in one of the following formats: `http://`, `https://`, `ftp://`, `mailto:`, `sms:`, `tel:`. */ URL = "URL", /** [Rich-text](https://dev.wix.com/docs/rest/articles/getting-started/rich-text) string that may contain a subset of HTML tags. */ RICH_TEXT = "RICH_TEXT", /** Web URL or a [Media Manager](https://dev.wix.com/docs/rest/assets/media/media-manager/introduction) URL. */ VIDEO = "VIDEO", /** Any field type. */ ANY = "ANY", /** Array of strings. */ ARRAY_STRING = "ARRAY_STRING", /** Array of documents: web or [Media Manager](https://dev.wix.com/docs/rest/assets/media/media-manager/introduction) URLs. */ ARRAY_DOCUMENT = "ARRAY_DOCUMENT", /** Web URL or a [Media Manager](https://dev.wix.com/docs/rest/assets/media/media-manager/introduction) URL. */ AUDIO = "AUDIO", /** Time string in `hh:mm:ss.SSS` format. */ TIME = "TIME", /** Language codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) format. These may include country codes in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#officially_assigned_code_elements) format. */ LANGUAGE = "LANGUAGE", /** [Rich content](https://dev.wix.com/docs/ricos/getting-started/introduction). */ RICH_CONTENT = "RICH_CONTENT", /** Array of web or [Media Manager](https://dev.wix.com/docs/rest/assets/media/media-manager/introduction) URLs. */ MEDIA_GALLERY = "MEDIA_GALLERY", /** Physical [address object](https://dev.wix.com/docs/api-reference/business-solutions/cms/data-types-in-wix-data#address-object). */ ADDRESS = "ADDRESS", /** * Reference to another item in another collection. See [Query Referenced Data Items](https://dev.wix.com/docs/api-reference/business-solutions/cms/data-items/query-referenced-data-items) to learn about item references. * * If you select this type, then you must pass the `referencedCollectionId` field as well. */ REFERENCE = "REFERENCE", /** References to multiple items in another collection. See [Query Referenced Data Items](https://dev.wix.com/docs/api-reference/business-solutions/cms/data-items/query-referenced-data-items) to learn about item references. */ MULTI_REFERENCE = "MULTI_REFERENCE", /** JSON object. */ OBJECT = "OBJECT", /** Array. */ ARRAY = "ARRAY" } /** @enumType */ /** @internal */ type FieldTypeWithLiterals = FieldType | 'UNKNOWN_FIELD_TYPE' | 'TEXT' | 'NUMBER' | 'DATE' | 'DATETIME' | 'IMAGE' | 'BOOLEAN' | 'DOCUMENT' | 'URL' | 'RICH_TEXT' | 'VIDEO' | 'ANY' | 'ARRAY_STRING' | 'ARRAY_DOCUMENT' | 'AUDIO' | 'TIME' | 'LANGUAGE' | 'RICH_CONTENT' | 'MEDIA_GALLERY' | 'ADDRESS' | 'REFERENCE' | 'MULTI_REFERENCE' | 'OBJECT' | 'ARRAY'; /** @internal */ interface ObjectOptions { /** * Fields within the object. * @maxSize 1000 */ fields?: ObjectField[]; } /** @internal */ interface ArrayOptions extends ArrayOptionsElementTypeOptionsOneOf { /** Metadata for an object field. */ objectOptions?: ObjectOptions; /** Metadata for an array field. */ arrayOptions?: ArrayOptions; /** Element's data type. */ elementType?: FieldTypeWithLiterals; } /** @oneof */ /** @internal */ interface ArrayOptionsElementTypeOptionsOneOf { /** Metadata for an object field. */ objectOptions?: ObjectOptions; /** Metadata for an array field. */ arrayOptions?: ArrayOptions; } /** @internal */ interface ObjectField extends ObjectFieldTypeOptionsOneOf { /** Metadata for an object field. */ objectOptions?: ObjectOptions; /** Metadata for an array field. */ arrayOptions?: ArrayOptions; /** * Field ID. * @minLength 1 * @maxLength 1000 */ key?: string; /** * Display name for the field. * @minLength 1 * @maxLength 1000 */ displayName?: string | null; /** * Field type. * * Learn more about [data types in Wix Data](https://dev.wix.com/docs/rest/business-solutions/cms/data-types-in-wix-data). */ type?: FieldTypeWithLiterals; } /** @oneof */ /** @internal */ interface ObjectFieldTypeOptionsOneOf { /** Metadata for an object field. */ objectOptions?: ObjectOptions; /** Metadata for an array field. */ arrayOptions?: ArrayOptions; } /** @internal */ interface ReferenceOptions { /** * Referenced collection ID. * @minLength 1 * @maxLength 256 */ referencedCollectionId?: string; } /** @internal */ interface MultiReferenceOptions { /** * Referenced collection ID. * @minLength 1 * @maxLength 256 */ referencedCollectionId?: string; } /** Data permissions defined by access level for each action. */ /** @internal */ interface DataPermissions { /** Required. Access level required to read data items. */ itemRead?: AccessLevelWithLiterals; /** Required. Access level required to insert data items. */ itemInsert?: AccessLevelWithLiterals; /** Required. Access level required to update data items. */ itemUpdate?: AccessLevelWithLiterals; /** Required. Access level required to remove data items. */ itemRemove?: AccessLevelWithLiterals; } /** * Describes who can perform certain action. * Each level includes all levels below it (except UNDEFINED). */ /** @internal */ declare enum AccessLevel { /** Not set. */ UNDEFINED = "UNDEFINED", /** Anyone, including site visitors. */ ANYONE = "ANYONE", /** Any signed-in user, including site members and collaborators. */ SITE_MEMBER = "SITE_MEMBER", /** Any signed-in user, but site members only have access to their own items. */ SITE_MEMBER_AUTHOR = "SITE_MEMBER_AUTHOR", /** Site collaborator that has a role with CMS access permission. */ CMS_EDITOR = "CMS_EDITOR", /** CMS administrators and users or roles granted special access. */ PRIVILEGED = "PRIVILEGED" } /** @enumType */ /** @internal */ type AccessLevelWithLiterals = AccessLevel | 'UNDEFINED' | 'ANYONE' | 'SITE_MEMBER' | 'SITE_MEMBER_AUTHOR' | 'CMS_EDITOR' | 'PRIVILEGED'; /** @internal */ interface Index { /** * Fields for which the index is defined. * * Max: 3 fields (for a unique index: 1 field) * @minSize 1 * @maxSize 3 */ fields?: IndexField[]; /** * Whether the index enforces uniqueness of values in the field for which it is defined. * If `true`, the index can have only one field. * * Default: `false` */ unique?: boolean; } /** * Order determines how values are ordered in the index. This is important when * ordering and/or range querying by indexed fields. */ /** @internal */ declare enum Order { ASC = "ASC", DESC = "DESC" } /** @enumType */ /** @internal */ type OrderWithLiterals = Order | 'ASC' | 'DESC'; /** @internal */ interface IndexField { /** * Path of the field to index. For example: `title` or `options.price`. * @minLength 1 * @maxLength 128 */ path?: string; /** * Sort order for the index. Base on how the data is regularly queried. * * Default: `ASC` */ order?: OrderWithLiterals; } /** @internal */ interface Collection { /** * Required. Collection ID suffix. The app namespace is automatically prepended in the CMS. * For example, the full ID for `my-products-1` becomes `@company/app-name/my-products-1`. * @maxLength 256 */ idSuffix?: string; /** * Collection's display name as shown in the CMS. For example, `My First Collection`. * @minLength 1 * @maxLength 1000 */ displayName?: string | null; /** * Field whose value the CMS displays to represent the collection item when referenced in a different collection. * @minLength 1 * @maxLength 1000 */ displayField?: string | null; /** * Required. Collection's field structure. * @minSize 1 * @maxSize 1000 */ fields?: Field[]; /** Required. Levels of permission for accessing and modifying data, defined by the lowest role needed to perform each action. */ dataPermissions?: DataPermissions; /** * Indexes defined for the collection. An index is a map of a collection's data, organized according to specific fields to increase query speed. * @maxSize 3 */ indexes?: Index[]; /** * Optional initial data to populate the collection with. * @maxSize 1000 */ initialData?: Record[] | null; } /** @internal */ interface DCConfigData { isVisualApp?: boolean; } /** @internal */ interface StaticFileComponentData { /** @format WEB_URL */ url?: string; } /** @internal */ interface AppConfig { siteConfig?: SiteConfig; namespace?: string; } /** @internal */ interface SiteConfig { /** * todo: WEB_URL * @maxLength 1000 */ siteStructureApi?: string | null; } /** * Business Manager sidebar category that contains sidebar links. * each link in the category opens in the business manager in an iframe. */ /** @internal */ interface MultipleDashboardsComponentData { /** items inside the category */ items?: DashboardItem[]; } /** * a single dashboard page, * represented in Business Manager as sidebar link that opens in an iframe */ /** @internal */ 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 */ /** @internal */ interface PaymentsGatewayComponentData { /** * The shop url * @format WEB_URL */ shopUrl?: string; } /** @internal */ interface AutomationTrigger { /** * The name that will be passed with trigger report event to activate an Automation. * @maxLength 80 */ name?: string; /** * The name displayed to the user. * @maxLength 80 */ displayName?: string; /** The schema of the payload that will be passed with trigger when activating an Automation. */ schemaConfig?: SchemaConfig; /** * Email template to be shown when user choose this trigger and email action. * @internal */ emailTemplateName?: string | null; deploymentUri?: string; revision?: number; } /** @internal */ 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. * @format WEB_URL */ dynamicSchemaUrl?: string | null; } /** @internal */ 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?: SchemaFieldExposureWithLiterals; } /** @internal */ declare enum PrimitiveType { UNKNOWN_PRIMITIVE_TYPE = "UNKNOWN_PRIMITIVE_TYPE", TEXT = "TEXT", BOOLEAN = "BOOLEAN", NUMBER = "NUMBER" } /** @enumType */ /** @internal */ type PrimitiveTypeWithLiterals = PrimitiveType | 'UNKNOWN_PRIMITIVE_TYPE' | 'TEXT' | 'BOOLEAN' | 'NUMBER'; /** @internal */ 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" } /** @enumType */ /** @internal */ type SimpleTypeWithLiterals = SimpleType | 'UNKNOWN_SIMPLE_TYPE' | 'MONEY' | 'LINK' | 'BACKOFFICE_LINK' | 'LIVESITE_LINK' | 'MULTILINGUAL' | 'IMAGE_LINK' | 'GUID' | 'EMAIL' | 'PHONE' | 'CONTACT_ID'; /** @internal */ interface Primitive { primitiveType?: PrimitiveTypeWithLiterals; } /** @internal */ interface Simple { simpleType?: SimpleTypeWithLiterals; } /** @internal */ 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; } /** @internal */ 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 */ /** @internal */ 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; } /** @internal */ 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" } /** @enumType */ /** @internal */ type SchemaFieldExposureWithLiterals = SchemaFieldExposure | 'UNKNOWN_EXPOSURE' | 'SETUP' | 'HIDDEN' | 'EXPOSED'; /** represents Invoices integration policies */ /** @internal */ interface InvoicesActionsComponentData { /** partial payment restriction on invoice */ partialPayment?: PartialPaymentRestrictionWithLiterals; } /** Possible Partial Payment Policy Values */ /** @internal */ declare enum PartialPaymentRestriction { UNDEFINED = "UNDEFINED", /** Allow Partial Payment */ ALLOW = "ALLOW", /** Disallow Partial Payment */ DISALLOW = "DISALLOW" } /** @enumType */ /** @internal */ type PartialPaymentRestrictionWithLiterals = PartialPaymentRestriction | 'UNDEFINED' | 'ALLOW' | 'DISALLOW'; /** Experimental-WIP: Specifies the app module configuration of business manager module */ /** @internal */ interface DashboardApplicationData { /** * List of bundles to be loaded for your module * @minSize 1 */ bundles?: Bundle[]; /** * Your module id as defined in business-manager-api * @minLength 2 * @maxLength 64 */ 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 */ /** @internal */ interface Bundle { /** * The JavaScript file to load * @format WEB_URL */ 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 * @format WEB_URL */ debugFile?: string | null; } /** Specifies a list of experiments that have AND relationship between them, and OR relationship between each list */ /** @internal */ interface ExperimentGroupWrapper { /** * list of experiments with AND relationship between them, for false value use ! before experiment spec * @minSize 1 */ experimentsGroup?: string[]; } /** Specifies page components for a business manager module */ /** @internal */ interface PageDashboardApplicationComponent { /** * The id of the page * @minLength 1 */ id?: string; /** * The route of the page, the part of the url after /dashboard/{msid}/ (must be unique in the specific application) * @minLength 1 */ route?: string; /** * The name you used to register this component to the ModuleRegistry (must be unique across apps) * @minLength 1 */ 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 */ /** @internal */ 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 */ /** @internal */ interface HostedComponent { /** * A unique id for the component, maps between the host and name * @minLength 1 */ id?: string; /** * The component name used in registerComponentWithModuleParams components can be shared by using the same name but a unique id * @minLength 1 */ 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?: HostContainerIdWithLiterals; /** 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; } /** @internal */ declare enum HostContainerId { BUSINESS_MANAGER = "BUSINESS_MANAGER", BUSINESS_DASHBOARD_HOST = "BUSINESS_DASHBOARD_HOST", SIDEBAR_FOOTER = "SIDEBAR_FOOTER" } /** @enumType */ /** @internal */ type HostContainerIdWithLiterals = HostContainerId | 'BUSINESS_MANAGER' | 'BUSINESS_DASHBOARD_HOST' | 'SIDEBAR_FOOTER'; /** Contact Labels Extensions */ /** @internal */ 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[]; } /** @internal */ interface PredefinedLabel { /** * Unique key. Can contain letters, dashes, or underscores. * For example, `"secondary-hobby"`. * @minLength 1 * @maxLength 50 */ key?: string; /** * Display name. * For example, `"Secondary Hobby"`. * @minLength 1 * @maxLength 180 */ displayName?: string; } /** A component to be rendered within Widget Slots */ interface WidgetPluginComponentData { /** * ID of the widget used for the plugin component. * @format GUID */ referenceComponentId?: string; /** APIs implemented by the Plugin's widget. */ pluginInterfaces?: PluginInterfaceWithLiterals[]; /** 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; /** * List of placements where the plugin is allowed to be installed. * @internal * @format GUID * @maxSize 100 */ placementsSlotIds?: string[]; } /** Marketing information about the plugin. */ /** @internal */ interface PluginMarketData { /** * Plugin name. * @minLength 1 * @maxLength 50 */ name?: string; /** * Plugin description. * @maxLength 130 */ description?: string; /** * Plugin logo. 35x35px in JPG or PNG format. * @format WEB_URL */ logoUrl?: string | null; } /** Combination of IDs that uniquely identify a slot in the app component. */ /** @internal */ interface PluginPlacement { /** * Slot app definition ID. * @format GUID */ appDefinitionId?: string; /** * Slot app component ID. * @format GUID */ widgetId?: string; /** * Slot ID. * @minLength 1 */ slotId?: string; } /** @internal */ interface PluginInstallationSettings { /** Shared installation settings for unified components */ base?: BaseInstallation; } /** @internal */ interface CrossSellConfig { /** uri for call implementor, could be one of `grpc://`, `velo://`, `https://` */ baseUri?: string; } /** Local Delivery component */ /** @internal */ 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) * @format WEB_URL */ 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 */ /** @internal */ interface PaymentServiceProviderConfig { /** * Payment service provider to display on Accept payments tab in Business manager * @minLength 1 */ title?: string; /** SPI base url */ baseUrl?: string; /** Available payment methods */ paymentMethods?: PaymentMethod[]; /** Provider authentication methods */ credentialsFields?: PaymentServiceProviderCredentialsField[]; } /** @internal */ interface PaymentMethod extends PaymentMethodMethodOneOf { /** Information about hosted page payment method */ hostedPage?: HostedPage; } /** @oneof */ /** @internal */ interface PaymentMethodMethodOneOf { /** Information about hosted page payment method */ hostedPage?: HostedPage; } /** @internal */ interface HostedPage { /** * The payment method title to be will be displayed on accept payments tab in business manager as well as on the checkout * @minLength 1 */ 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?: MandatoryFieldWithLiterals[]; } /** @internal */ interface Logos { /** white theme logos */ white?: Color; /** colored theme logos */ colored?: Color; } /** @internal */ interface Color { /** * URL to SVG image * @format WEB_URL */ svg?: string; /** * URL to PNG image * @format WEB_URL */ png?: string; } /** @internal */ 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" } /** @enumType */ /** @internal */ type MandatoryFieldWithLiterals = MandatoryField | 'ZIPCODE' | 'CITY' | 'STATE' | 'ADDRESS' | 'COUNTRY_CODE' | 'EMAIL' | 'PHONE' | 'FIRST_NAME' | 'LAST_NAME' | 'STREET' | 'HOUSE_NUMBER' | 'TAX_IDENTIFIER'; /** @internal */ interface PaymentServiceProviderCredentialsField extends PaymentServiceProviderCredentialsFieldFieldOneOf { /** text field */ simpleField?: SimpleField; /** checkbox field */ checkboxField?: CheckboxField; /** dropdown field */ dropdownField?: DropdownField; } /** @oneof */ /** @internal */ interface PaymentServiceProviderCredentialsFieldFieldOneOf { /** text field */ simpleField?: SimpleField; /** checkbox field */ checkboxField?: CheckboxField; /** dropdown field */ dropdownField?: DropdownField; } /** @internal */ interface SimpleField { /** * field name * @minLength 1 */ name?: string; /** * field label * @minLength 1 */ label?: string; } /** @internal */ interface CheckboxField { /** * field name * @minLength 1 */ name?: string; /** * field label * @minLength 1 */ label?: string; /** field tooltip */ tooltip?: string | null; } /** @internal */ interface DropdownField { /** * field name * @minLength 1 */ name?: string; /** * field label * @minLength 1 */ label?: string; /** specific options */ options?: DropdownFieldOption[]; } /** @internal */ interface DropdownFieldOption { /** * option key * @minLength 1 */ key?: string; /** * option value * @minLength 1 */ value?: string; } /** @internal */ interface MembershipsSPIConfig { /** The URL of the SPI implementation */ deploymentUri?: string; /** * @minSize 1 * @maxSize 300 */ catalogAppDefIds?: string[]; /** Set to true once your app implements the updated redemption methods (`ListExistingMemberships`, `ListPurchasablePlans`, `EnhanceAndValidateSelection`) */ toggleUpdatedMethodsEnabled?: boolean; } /** @internal */ interface LineItemsEnricherConfig { /** the base URI where all the methods are deployed. */ baseUri?: string; } 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/`. * @minLength 1 */ deploymentUri?: string; /** * Human-readable name of the shipping provider. * @minLength 1 * @maxLength 64 */ name?: string; /** * Description of the shipping provider. * @maxLength 200 */ description?: string | null; /** * URL to more info about the shipping provider. * @maxLength 200 */ learnMoreUrl?: string | null; /** * URL to reach the shipping provider app's dashboard. * @minLength 1 * @maxLength 2048 * @format WEB_URL */ 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). * @format WEB_URL */ thumbnailUrl?: string | null; /** * feature toggle initialized with default value = false. should be true if implemented by spi provider * @internal */ toggleGetDashboardTableEnabled?: boolean; /** * Feature toggle initialized with default value = false. should be true if implemented by spi provider * This flag controls if the spi provider supports the update status api. * @internal */ toggleUpdateActiveStatusEnabled?: boolean; } /** @internal */ interface ShippingLabelCarrierSpiConfig { /** the base URI where all the methods are deployed */ baseUri?: string; /** * the countries supported to send from * @format COUNTRY * @minSize 1 * @maxSize 300 */ originCountries?: string[]; /** * the countries supported to send to * @format COUNTRY * @minSize 1 * @maxSize 300 */ destinationCountries?: string[]; /** * the currency of the labels * @format CURRENCY */ currency?: string; /** the measurement system of he labels (Metric or Imperial) */ measurementSystem?: MeasurementSystemWithLiterals; /** does carrier support insurance */ isInsuranceSupported?: boolean; /** * preset carrier packages * @minSize 1 * @maxSize 20 */ packageTypes?: PackageType[]; } /** @internal */ declare enum MeasurementSystem { Metric = "Metric", Imperial = "Imperial" } /** @enumType */ /** @internal */ type MeasurementSystemWithLiterals = MeasurementSystem | 'Metric' | 'Imperial'; /** @internal */ interface PackageType { /** * carrier id that can be used to get quotes and purchase * @maxLength 30 */ id?: string; /** * display name of the package (translated) * @maxLength 100 */ name?: string; /** * description (translated) * @maxLength 200 */ description?: string; /** the dimensions of the package */ dimension?: PackageDimension; /** image of the package (Optional) */ image?: V1Image; } /** @internal */ interface PackageDimension { /** * width of the package * @max 120 */ width?: number; /** * length of the package * @max 120 */ length?: number; /** * height of the package (Optional) * @max 120 */ height?: number | null; } /** @internal */ interface V1Image { /** 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 URL expiration date (when relevant). Optional * @internal */ urlExpirationDate?: Date | null; /** Image filename. Optional. */ filename?: string | null; /** * Image size in bytes. Optional. * @internal * @format DECIMAL_VALUE */ sizeInBytes?: string | null; } /** Restaurants POS component */ /** @internal */ 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). * @format WEB_URL */ registrationUrl?: string; /** Base URL for all the Restaurants POS API calls. */ apiBaseUri?: string; /** Configuration parameters defining the behavoiur of the catalog sync. */ catalogSyncConfiguration?: CatalogSyncConfiguration; } /** @internal */ 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?: DefaultWithLiterals; /** 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?: DefaultWithLiterals; /** 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?: DefaultWithLiterals; /** 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?: DefaultWithLiterals; /** 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?: DefaultWithLiterals; /** 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?: DefaultWithLiterals; /** 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?: DefaultWithLiterals; } /** @internal */ declare enum Default { WIX = "WIX", POS = "POS" } /** @enumType */ /** @internal */ type DefaultWithLiterals = Default | 'WIX' | 'POS'; /** @internal */ 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; } /** Base URI configuration for a service plugin. Wix uses these URIs to call your service plugin methods. */ /** @internal */ interface SpiBaseUri { /** * Base URI for your service plugin. Wix appends each method's path to this URI. * * For example, to receive requests at `https://my-app.com/v1/my-method`, set this field to `https://my-app.com/`. * @minLength 6 * @maxLength 2048 */ baseUri?: string; /** Alternative URIs for specific methods. Use these to override the default URI for individual methods. */ alternativeUris?: AlternativeUri[]; } /** Custom URI for the specified service plugin method. */ /** @internal */ interface AlternativeUri { /** * Name of the method to call at the absolute URI, in PascalCase. For example, to call [Get Shipping Rates](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/shipping-rates/shipping-rates-integration-service-plugin/get-shipping-rates) on an alternative URI, specify `GetShippingRates`. * @minLength 3 * @maxLength 128 */ methodName?: string; /** * Absolute URI that Wix calls for this method. Wix doesn't append any path to this URI. * * The URI must begin with `https://`, such as `https://my-app.com/v1/my-custom-method`. * @minLength 6 * @maxLength 2048 */ absoluteUri?: string; } /** @internal */ interface AlertEnricherSpiConfiguration { deploymentUri?: string; } /** A component holding schema of Data Extensions */ interface DataExtensionsComponentData { /** * Deprecated, use fqdn and schema instead. * @internal * @deprecated */ schemas?: Record; /** 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 * @maxLength 20 */ extensionPoint?: string; } /** @internal */ interface GenericHooksConfig { /** * Hook definitions * @maxSize 100 */ hooks?: GenericHookConfig[]; } /** @internal */ declare enum HookType { UNDEFINED = "UNDEFINED", BEFORE_BLOCKING = "BEFORE_BLOCKING", BEFORE = "BEFORE", AFTER = "AFTER" } /** @enumType */ /** @internal */ type HookTypeWithLiterals = HookType | 'UNDEFINED' | 'BEFORE_BLOCKING' | 'BEFORE' | 'AFTER'; /** @internal */ 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 * @format WEB_URL */ uri?: string; /** Type of hook */ hookType?: HookTypeWithLiterals; } /** @internal */ interface ActionProviderSPIConfig { /** URL to action provider service for this action */ baseUri?: string; /** Action service plugin configuration */ actionConfig?: ActionSPIConfig; } /** @internal */ interface ActionSPIConfig { /** * Identifier for this action - human-readable action key - unique per app def ID * @minLength 5 * @maxLength 50 */ 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" * @minLength 5 * @maxLength 80 */ 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. * @deprecated 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. * @targetRemovalDate 2025-03-10 */ executionType?: ExecutionTypeWithLiterals; /** @internal */ metadata?: Metadata; /** Chosen interface for action. */ interfaceConfiguration?: ActionSPIConfigInterfaceConfiguration; /** Icon representing the action in the UI */ icon?: WixCommonImage; /** * The action configuration source information * @internal */ source?: Source; /** * action id * @format GUID */ id?: string | null; /** Whether this action supports synchronous invocation. */ supportsSyncInvocation?: boolean; } /** @internal */ declare enum ActionSPIConfigInterfaceConfigurationType { UNKNOWN_TYPE = "UNKNOWN_TYPE", WIDGET_COMPONENT = "WIDGET_COMPONENT", GENERIC = "GENERIC" } /** @enumType */ /** @internal */ type ActionSPIConfigInterfaceConfigurationTypeWithLiterals = ActionSPIConfigInterfaceConfigurationType | 'UNKNOWN_TYPE' | 'WIDGET_COMPONENT' | 'GENERIC'; /** @internal */ interface WidgetComponentOptions { /** * Name of provided component * @minLength 1 * @maxLength 80 */ componentName?: string; } /** @internal */ interface GenericOptions { /** UI schema */ uiSchema?: Record | null; } /** @internal */ declare enum IntegrationType { UNKNOWN_INTEGRATION_TYPE = "UNKNOWN_INTEGRATION_TYPE", /** Integration with Wix API methods */ WIX_API = "WIX_API", /** Integration with external APIs via OpenAPI specifications */ OPEN_API = "OPEN_API" } /** @enumType */ /** @internal */ type IntegrationTypeWithLiterals = IntegrationType | 'UNKNOWN_INTEGRATION_TYPE' | 'WIX_API' | 'OPEN_API'; /** OpenAPI integration configuration */ /** @internal */ interface OpenApiOptions { /** * URL to the OpenAPI specification file * @minLength 1 * @maxLength 2000 * @format WEB_URL */ openApiSpecUrl?: string; /** * Optional: Link to additional documentation for the external API * @maxLength 2000 * @format WEB_URL */ documentationUrl?: string | null; /** * Optional: Human-readable explanation or prompt describing the integration * @maxLength 5000 */ explanation?: string | null; } /** @internal */ 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", /** The action invokes external API methods based on configuration */ INTEGRATION = "INTEGRATION" } /** @enumType */ /** @internal */ type SourceTypeWithLiterals = SourceType | 'UNKNOWN_SOURCE_TYPE' | 'DEV_CENTER' | 'WIX_API' | 'INTEGRATION'; /** @internal */ interface WixApiOptions { /** * Service entity fqdn * @minLength 1 * @maxLength 100 */ serviceEntityFqdn?: string; /** * The service providing the API * @minLength 1 * @maxLength 200 */ serviceName?: string; /** * The method name * @minLength 1 * @maxLength 200 */ methodName?: string; } /** @internal */ interface IntegrationOptions extends IntegrationOptionsOptionsOneOf { /** Required when integration_type = OPEN_API */ openApiOptions?: OpenApiOptions; /** The integration type */ integrationType?: IntegrationTypeWithLiterals; } /** @oneof */ /** @internal */ interface IntegrationOptionsOptionsOneOf { /** Required when integration_type = OPEN_API */ openApiOptions?: OpenApiOptions; } /** disable-flynt renamed-field-breaking-change */ /** @internal */ 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; /** Implements GenerateInputMappingFromIntent */ generateInputMappingFromIntent?: boolean; } /** @internal */ declare enum ExecutionType { UNKNOWN_EXECUTION_TYPE = "UNKNOWN_EXECUTION_TYPE", SYNC = "SYNC", ASYNC = "ASYNC" } /** @enumType */ /** @internal */ type ExecutionTypeWithLiterals = ExecutionType | 'UNKNOWN_EXECUTION_TYPE' | 'SYNC' | 'ASYNC'; /** @internal */ interface Metadata { /** Show action only to advanced mode users (Wix staff) */ hidden?: boolean; } /** @internal */ interface ActionSPIConfigInterfaceConfiguration extends ActionSPIConfigInterfaceConfigurationOptionsOneOf { /** @internal */ widgetComponentOptions?: WidgetComponentOptions; genericOptions?: GenericOptions; /** Type of chosen interface. */ type?: ActionSPIConfigInterfaceConfigurationTypeWithLiterals; } /** @oneof */ /** @internal */ interface ActionSPIConfigInterfaceConfigurationOptionsOneOf { /** @internal */ widgetComponentOptions?: WidgetComponentOptions; genericOptions?: GenericOptions; } /** @internal */ interface Source extends SourceOptionsOneOf { /** Wix API options */ wixApiOptions?: WixApiOptions; /** Integration options */ integrationOptions?: IntegrationOptions; /** the source type */ type?: SourceTypeWithLiterals; } /** @oneof */ /** @internal */ interface SourceOptionsOneOf { /** Wix API options */ wixApiOptions?: WixApiOptions; /** Integration options */ integrationOptions?: IntegrationOptions; } 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; } /** @internal */ interface DiscountConfig { /** * Whether the discount is enabled. * * Default: `false`. */ enabled?: boolean; /** * Translation key for text to display to the site owner. * @minLength 5 * @maxLength 100 */ translationKey?: string; } /** A container (slot) that can be extended by other applications (e.g. widget slot or context menu slot) */ /** @internal */ interface BackOfficeExtensionContainer { /** Information about the type of slot. */ extendable?: Extendable; /** * Platform that hosts the modal. * * Must be `"BUSINESS_MANAGER"`. * @internal */ hostingPlatform?: BackOfficeHostingPlatformsWithLiterals; /** * Default route for the container. * @maxLength 400 */ defaultRoute?: string | null; /** A container (slot) common properties. */ slotData?: SlotData; /** Context consumed by AI-powered features */ aiContext?: AiContext; } /** Extensibility properties used by containers (slots) */ /** @internal */ interface Extendable { /** Type of component that this slot accepts. */ extendedBy?: ExtendingComponentTypeWithLiterals; } /** Which component types can be extended in containers */ /** @internal */ declare enum ExtendingComponentType { INVALID = "INVALID", BACK_OFFICE_MENU_ITEM = "BACK_OFFICE_MENU_ITEM", BACK_OFFICE_EXTENSION_WIDGET = "BACK_OFFICE_EXTENSION_WIDGET" } /** @enumType */ /** @internal */ type ExtendingComponentTypeWithLiterals = ExtendingComponentType | 'INVALID' | 'BACK_OFFICE_MENU_ITEM' | 'BACK_OFFICE_EXTENSION_WIDGET'; /** List of back-office hosting platforms */ /** @internal */ 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", /** Dashboard for viral forms/lite events/etc */ LITE_DASHBOARD = "LITE_DASHBOARD", /** Picasso AI application POC */ PICASSO_EDITOR = "PICASSO_EDITOR", /** Base44 Host Dashboard POC */ BASE44_DASHBOARD_POC = "BASE44_DASHBOARD_POC", /** Wixel Editor */ WIXEL_EDITOR = "WIXEL_EDITOR", /** Base44 Platform */ BASE44_PLATFORM = "BASE44_PLATFORM", /** Payments by Wix Back Office */ PAYMENTS_BO = "PAYMENTS_BO", /** Symphony Giza host */ SYMPHONY = "SYMPHONY", /** BMR Giza host */ BMR = "BMR" } /** @enumType */ /** @internal */ type BackOfficeHostingPlatformsWithLiterals = BackOfficeHostingPlatforms | 'NO_HOSTING_PLATFORM' | 'BUSINESS_MANAGER' | 'ACCOUNT_MANAGER' | 'DEV_CENTER' | 'ENTERPRISE' | 'PARTNERS_DASHBOARD' | 'FINANCIALS_INTERNAL_BO' | 'FED_GUILD_POC' | 'STUDIO_DASHBOARD' | 'CHANNELS' | 'DATA_TOOLS' | 'PSP_BACKOFFICE' | 'RISE_PLATFORM_ACCOUNT_DASHBOARD' | 'DEMO_DASHBOARD_ENTERPRISE' | 'AI_SCHEDULING_ASSISTANT_DASHBOARD' | 'GETTING_PAID' | 'DATA' | 'LITE_DASHBOARD' | 'PICASSO_EDITOR' | 'BASE44_DASHBOARD_POC' | 'WIXEL_EDITOR' | 'BASE44_PLATFORM' | 'PAYMENTS_BO' | 'SYMPHONY' | 'BMR'; /** Definitions of common slots properties */ /** @internal */ interface SlotData extends SlotDataSlotTypeOneOf { /** Widget-specific slot. */ widgetOptions?: WidgetSlot; /** Menu-specific slot. */ menuOptions?: MenuSlot; /** * Slot display name. * @maxLength 400 */ displayName?: string | null; /** * Slot description. * @maxLength 400 */ description?: string | null; /** Parameters for the slot. */ slotParams?: SlotParams; /** * HTTP links to a markdown files. * @maxSize 100 * @format WEB_URL */ mdHttpLinks?: string[]; type?: SlotDataTypeWithLiterals; /** * Specifying the visibility level and maturity stage * @internal */ exposureAndMaturity?: ExtensionExposure; } /** @oneof */ /** @internal */ interface SlotDataSlotTypeOneOf { /** Widget-specific slot. */ widgetOptions?: WidgetSlot; /** Menu-specific slot. */ menuOptions?: MenuSlot; } /** @internal */ interface DtsDefinitionReference extends DtsDefinitionReferenceDtsDefinitionOneOf { dtsHttpLinkOptions?: DtsHttpLink; dtsContentOptions?: DtsContent; type?: DtsDefinitionTypeWithLiterals; } /** @oneof */ /** @internal */ interface DtsDefinitionReferenceDtsDefinitionOneOf { dtsHttpLinkOptions?: DtsHttpLink; dtsContentOptions?: DtsContent; } /** @internal */ declare enum DtsDefinitionType { UNKNOWN = "UNKNOWN", DTS_HTTP_LINK = "DTS_HTTP_LINK", DTS_CONTENT = "DTS_CONTENT" } /** @enumType */ /** @internal */ type DtsDefinitionTypeWithLiterals = DtsDefinitionType | 'UNKNOWN' | 'DTS_HTTP_LINK' | 'DTS_CONTENT'; /** @internal */ interface DtsHttpLink { /** * HTTP link to the bundled d.ts file. * @maxLength 400 */ bundledDtsHttpLink?: string; } /** @internal */ interface DtsContent { /** * d.ts file content. * @maxLength 2000 */ bundledDtsContent?: string; } /** @internal */ interface BlocksData { /** Maximum allowed dimensions. */ maxDimensionsPixels?: Dimension; /** Minimum allowed dimensions. */ minDimensionsPixels?: Dimension; /** * Slot placeholder component ID in the document. * @maxLength 50 */ compRefId?: string | null; } /** @internal */ interface Dimension { /** * Width of the component (max: 9999). * @max 9999 */ width?: number | null; /** * Height of the component (max: 9999). * @max 9999 */ height?: number | null; } /** @internal */ interface SlotParams { /** DTS reference for the slot parameters. */ slotParamsDtsReference?: DtsDefinitionReference; /** * Named export to use. * @maxLength 400 */ namedExport?: string | null; } /** @internal */ declare enum SlotDataType { UNKNOWN = "UNKNOWN", WIDGET = "WIDGET", MENU = "MENU" } /** @enumType */ /** @internal */ type SlotDataTypeWithLiterals = SlotDataType | 'UNKNOWN' | 'WIDGET' | 'MENU'; /** @internal */ interface WidgetSlot { /** Blocks specific data. */ blocksData?: BlocksData; } /** @internal */ interface MenuSlot { } /** @internal */ interface AiContext { /** * @minLength 20 * @maxLength 10000 */ description?: string | null; } /** * 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) */ /** @internal */ 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. * @format GUID */ 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?: ExtendingComponentTypeWithLiterals; /** * Platform that hosts the extension. * * Must be `"BUSINESS_MANAGER"`. */ hostingPlatform?: BackOfficeHostingPlatformsWithLiterals; /** * Required permission to view the extension. * @internal */ requiredPermission?: string; /** * Sentry error reporting DSN (internal) * @internal */ errorReporting?: ErrorReporting; /** Context consumed by AI-powered features */ aiContext?: AiContext; } /** @oneof */ /** @internal */ 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 */ /** @internal */ interface LegacyBackOfficeExtensionWidget extends LegacyBackOfficeExtensionWidgetAssetOneOf { /** * Iframe URL that hosts the widget's content. * @format WEB_URL */ iframeUrl?: string; /** * Wix script asset to use in this widget * @internal */ scriptAsset?: BackOfficeScriptAsset; /** * 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. * @max 9999 */ 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. * @max 9999 */ height?: number | null; } /** @oneof */ /** @internal */ interface LegacyBackOfficeExtensionWidgetAssetOneOf { /** * Iframe URL that hosts the widget's content. * @format WEB_URL */ iframeUrl?: string; /** * Wix script asset to use in this widget * @internal */ scriptAsset?: BackOfficeScriptAsset; } /** Internal: Specifications for loading an asset via JS in the back office */ /** @internal */ interface BackOfficeScriptAsset { /** * The JavaScript file to load * @format WEB_URL */ url?: string; /** * Namespacing of the component in the Webpack Module Federation registry * @minLength 1 */ containerId?: string; /** * Key name for the retrieval of the component * @minLength 1 */ exportedName?: string; /** Optional: What type should by used on