@riverbankcms/sdk 0.96.0 → 0.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/README.md +20 -1
  2. package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
  6. package/dist/_dts/api/src/billing.d.ts +2 -0
  7. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
  8. package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
  9. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
  10. package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
  11. package/dist/_dts/api/src/endpoints.d.ts +88 -0
  12. package/dist/_dts/api/src/index.d.ts +3 -2
  13. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  14. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
  15. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  16. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
  17. package/dist/_dts/api/src/siteOperations.d.ts +65 -1
  18. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
  19. package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
  20. package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
  21. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
  22. package/dist/_dts/blocks/src/PageRenderer.d.ts +8 -1
  23. package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
  24. package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
  27. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
  28. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
  30. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  31. package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
  32. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  33. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  34. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  35. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
  37. package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
  38. package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
  39. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  41. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  42. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  43. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
  44. package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
  45. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
  46. package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
  47. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  48. package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
  50. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
  52. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
  58. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
  63. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
  65. package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
  66. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
  67. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  68. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
  70. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +18 -2
  71. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
  72. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  73. package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
  74. package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
  75. package/dist/_dts/core/src/branded.d.ts +8 -0
  76. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +767 -20
  77. package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
  78. package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
  79. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
  80. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
  81. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
  82. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
  83. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
  84. package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
  85. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
  86. package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
  87. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
  88. package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
  89. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
  90. package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
  91. package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
  92. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
  93. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
  94. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
  95. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
  96. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
  97. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
  98. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
  99. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
  100. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
  101. package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
  102. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
  103. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
  104. package/dist/_dts/sdk/src/client/index.d.ts +6 -0
  105. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
  106. package/dist/_dts/sdk/src/client/types.d.ts +18 -2
  107. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  108. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  109. package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
  110. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
  111. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
  112. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
  113. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  114. package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
  115. package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
  116. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  117. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  118. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
  119. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
  120. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +58 -1
  121. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
  122. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
  123. package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
  124. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
  125. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
  126. package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
  127. package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
  128. package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
  129. package/dist/_dts/sdk/src/test/env.d.ts +4 -0
  130. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  131. package/dist/_dts/sdk/src/version.d.ts +1 -1
  132. package/dist/_dts/site-commands/src/commands.d.ts +3 -3
  133. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  134. package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
  135. package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
  136. package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
  137. package/dist/{chunk-VHIMXQ7Z.mjs → chunk-4HXF2QLH.mjs} +2 -2
  138. package/dist/{chunk-VTPPVAOL.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
  139. package/dist/{chunk-4TLTV7OB.mjs → chunk-PM7HGDHM.mjs} +2 -2
  140. package/dist/{chunk-XMATDBXO.mjs → chunk-XO34WBBP.mjs} +2139 -1348
  141. package/dist/{chunk-EL55VV6Q.mjs → chunk-YGTTEVUM.mjs} +31 -10
  142. package/dist/{chunk-7ED5UNHL.mjs → chunk-YWTCCOSF.mjs} +117 -0
  143. package/dist/cli/index.mjs +2690 -1503
  144. package/dist/cli/init-docs/content/cli-reference.md +29 -1
  145. package/dist/cli/init-docs/content/getting-started.md +8 -0
  146. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
  147. package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
  148. package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
  149. package/dist/client/{accordion-GUNXIIZR.mjs → accordion-QSUEYL4L.mjs} +2 -2
  150. package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-QYGAHPDP.mjs} +376 -302
  151. package/dist/client/bookings.mjs +795 -429
  152. package/dist/client/{carousel-4QSX2JPC.mjs → carousel-SM2LEWAU.mjs} +3 -3
  153. package/dist/client/{cart-JKN6C4ZB.mjs → cart-3N3SFKNQ.mjs} +7 -7
  154. package/dist/client/{checkout-YY6YMITW.mjs → checkout-YFAYPKPZ.mjs} +7 -7
  155. package/dist/client/{chunk-SY543WZ3.mjs → chunk-5DLGREUB.mjs} +1 -1
  156. package/dist/client/{chunk-A3YN7M3G.mjs → chunk-CLZ7NBSP.mjs} +147 -75
  157. package/dist/client/{chunk-GWCRCJLB.mjs → chunk-CYJ3MUFP.mjs} +18 -6
  158. package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
  159. package/dist/client/{chunk-CPKMJVBD.mjs → chunk-HPEQ4YWW.mjs} +83 -109
  160. package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
  161. package/dist/client/{chunk-TNGL2WJF.mjs → chunk-IOAHWAQG.mjs} +18 -0
  162. package/dist/client/{chunk-6H27K6AA.mjs → chunk-JTKBF3W2.mjs} +10 -4
  163. package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
  164. package/dist/client/{chunk-BFCJZODD.mjs → chunk-R32M5HFS.mjs} +6 -6
  165. package/dist/client/{chunk-VJROUYOQ.mjs → chunk-WEVT46PX.mjs} +3 -3
  166. package/dist/client/{chunk-H7A6PUGM.mjs → chunk-ZU65LTI3.mjs} +1 -1
  167. package/dist/client/client.mjs +5052 -4083
  168. package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
  169. package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
  170. package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
  171. package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
  172. package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-TB623B6R.mjs} +9 -9
  173. package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
  174. package/dist/client/{form-VKRTFUNQ.mjs → form-Y4U4IAXE.mjs} +3 -3
  175. package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-QSOVV5P7.mjs} +3 -3
  176. package/dist/client/hooks.mjs +1776 -1355
  177. package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-QYCAHH7H.mjs} +3 -3
  178. package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
  179. package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-FYDMU2CE.mjs} +7 -7
  180. package/dist/client/{productList-RX6ZJ7BL.mjs → productList-D76CGACQ.mjs} +7 -7
  181. package/dist/client/rendering/client.mjs +2990 -2470
  182. package/dist/client/rendering/islands.mjs +19 -19
  183. package/dist/client/rendering.mjs +3236 -2236
  184. package/dist/client/{shop-BHN5AKY6.mjs → shop-SOUACT5N.mjs} +7 -7
  185. package/dist/preview-next/before-render.mjs +117 -0
  186. package/dist/preview-next/client/runtime.mjs +5 -5
  187. package/dist/preview-next/middleware.mjs +117 -0
  188. package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
  189. package/dist/server/components.mjs +3115 -2484
  190. package/dist/server/config-template-validation.mjs +6 -2
  191. package/dist/server/config-validation.mjs +1961 -1580
  192. package/dist/server/config.mjs +1961 -1580
  193. package/dist/server/data.mjs +1762 -1352
  194. package/dist/server/index.mjs +266 -33
  195. package/dist/server/next/middleware.mjs +2 -2
  196. package/dist/server/next.mjs +3399 -2504
  197. package/dist/server/page-converter.mjs +1553 -1295
  198. package/dist/server/prebuild-loader.mjs +42 -23
  199. package/dist/server/prebuild.mjs +1 -1
  200. package/dist/server/rendering/server.mjs +3151 -2489
  201. package/dist/server/rendering.mjs +3363 -2555
  202. package/dist/server/routing.mjs +1877 -1388
  203. package/dist/server/server.mjs +2057 -1402
  204. package/dist/server/theme-bridge.mjs +597 -505
  205. package/dist/server/theme.mjs +5 -4
  206. package/dist/styles/index.css +499 -490
  207. package/package.json +6 -4
  208. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
@@ -452,6 +452,228 @@ export type AppointmentServiceResponse = {
452
452
  export type ListAppointmentServicesResponse = {
453
453
  services: AppointmentService[];
454
454
  };
455
+ export declare const APPOINTMENT_RESERVATION_STATUS_VALUES: readonly ["active", "paused", "ended"];
456
+ export type AppointmentReservationStatus = (typeof APPOINTMENT_RESERVATION_STATUS_VALUES)[number];
457
+ export type AppointmentReservationPaymentMode = Readonly<{
458
+ kind: "manual";
459
+ }> | Readonly<{
460
+ kind: "online_request";
461
+ sendOffsetMinutes: number;
462
+ }>;
463
+ export type AppointmentReservation = {
464
+ id: string;
465
+ siteId: string;
466
+ customerId: string;
467
+ resourceId: string;
468
+ serviceId: string;
469
+ weekday: 0 | 1 | 2 | 3 | 4 | 5 | 6;
470
+ localStartTime: string;
471
+ timezone: string;
472
+ startsOn: string;
473
+ endsOn: string | null;
474
+ status: AppointmentReservationStatus;
475
+ paymentMode: AppointmentReservationPaymentMode;
476
+ durationMinutes: number;
477
+ prepMinutes: number;
478
+ cleanupMinutes: number;
479
+ };
480
+ export type AppointmentReservationListItem = AppointmentReservation & {
481
+ updatedAt: string;
482
+ customerName: string;
483
+ customerEmail: string;
484
+ serviceName: string;
485
+ serviceColor: string | null;
486
+ resourceName: string;
487
+ resourceColor: string | null;
488
+ };
489
+ export type ListAppointmentReservationsRequest = {
490
+ customerId?: string;
491
+ resourceId?: string;
492
+ serviceId?: string;
493
+ status?: AppointmentReservationStatus;
494
+ startDate?: string;
495
+ endDate?: string;
496
+ };
497
+ export type CreateAppointmentReservationRequest = {
498
+ customerId: string;
499
+ resourceId: string;
500
+ serviceId: string;
501
+ weekday: 0 | 1 | 2 | 3 | 4 | 5 | 6;
502
+ localStartTime: string;
503
+ timezone: string;
504
+ startsOn: string;
505
+ endsOn?: string | null;
506
+ paymentMode?: AppointmentReservationPaymentMode;
507
+ };
508
+ export type UpdateAppointmentReservationRequest = Partial<Omit<CreateAppointmentReservationRequest, "paymentMode">> & {
509
+ expectedUpdatedAt: string;
510
+ paymentMode?: AppointmentReservationPaymentMode;
511
+ };
512
+ export type AppointmentReservationLifecycleRequest = {
513
+ expectedUpdatedAt: string;
514
+ };
515
+ export type EndAppointmentReservationRequest = {
516
+ endsOn: string;
517
+ } & AppointmentReservationLifecycleRequest;
518
+ export type AppointmentReservationResponse = {
519
+ reservation: AppointmentReservation;
520
+ };
521
+ export type ListAppointmentReservationsResponse = {
522
+ reservations: AppointmentReservationListItem[];
523
+ };
524
+ export type AppointmentReservationRunPlanningMode = Readonly<{
525
+ kind: "occurrence_count";
526
+ startsOn: string;
527
+ occurrenceCount: number;
528
+ }> | Readonly<{
529
+ kind: "date_range";
530
+ startsOn: string;
531
+ endsOn: string;
532
+ }>;
533
+ export type PreviewAppointmentReservationRunRequest = {
534
+ mode: AppointmentReservationRunPlanningMode;
535
+ skippedOccurrenceKeys?: string[];
536
+ expectedReservationUpdatedAt?: string;
537
+ };
538
+ export type CreateAppointmentReservationRunRequest = {
539
+ mode: AppointmentReservationRunPlanningMode;
540
+ skippedOccurrenceKeys?: string[];
541
+ selectedOccurrenceKeys: string[];
542
+ expectedReservationUpdatedAt: string;
543
+ idempotencyKey: string;
544
+ };
545
+ export type AppointmentReservationRunOccurrence = {
546
+ occurrenceKey: string;
547
+ localDate: string;
548
+ startAt: string;
549
+ endAt: string;
550
+ occupiedStartAt: string;
551
+ occupiedEndAt: string;
552
+ };
553
+ export type AppointmentReservationRunGlobalConflict = Readonly<{
554
+ kind: "archived_customer";
555
+ customerId: string;
556
+ }> | Readonly<{
557
+ kind: "archived_resource";
558
+ resourceId: string;
559
+ }> | Readonly<{
560
+ kind: "archived_service";
561
+ serviceId: string;
562
+ }> | Readonly<{
563
+ kind: "stale_reservation";
564
+ expectedUpdatedAt: string;
565
+ actualUpdatedAt: string;
566
+ }>;
567
+ export type AppointmentReservationRunOccurrenceConflict = Readonly<{
568
+ kind: "appointment";
569
+ appointmentId: string;
570
+ startAt: string;
571
+ endAt: string;
572
+ }> | Readonly<{
573
+ kind: "reservation";
574
+ reservationId: string;
575
+ occurrenceKey: string;
576
+ startAt: string;
577
+ endAt: string;
578
+ }> | Readonly<{
579
+ kind: "blackout";
580
+ blackoutId: string | null;
581
+ startAt: string;
582
+ endAt: string;
583
+ }> | Readonly<{
584
+ kind: "external_busy";
585
+ externalBusyKey: string | null;
586
+ startAt: string;
587
+ endAt: string;
588
+ }>;
589
+ export type AppointmentReservationRunPlannedOccurrence = Readonly<{
590
+ kind: "ready";
591
+ occurrence: AppointmentReservationRunOccurrence;
592
+ }> | Readonly<{
593
+ kind: "skipped";
594
+ occurrence: AppointmentReservationRunOccurrence;
595
+ }> | Readonly<{
596
+ kind: "conflict";
597
+ occurrence: AppointmentReservationRunOccurrence;
598
+ conflicts: AppointmentReservationRunOccurrenceConflict[];
599
+ }>;
600
+ type AppointmentReservationRunPlanBase = {
601
+ reservationId: string;
602
+ reservationUpdatedAt: string;
603
+ selectedOccurrenceKeys: string[];
604
+ occurrences: AppointmentReservationRunPlannedOccurrence[];
605
+ readyOccurrences: Extract<AppointmentReservationRunPlannedOccurrence, {
606
+ kind: "ready";
607
+ }>[];
608
+ skippedOccurrences: Extract<AppointmentReservationRunPlannedOccurrence, {
609
+ kind: "skipped";
610
+ }>[];
611
+ conflictOccurrences: Extract<AppointmentReservationRunPlannedOccurrence, {
612
+ kind: "conflict";
613
+ }>[];
614
+ };
615
+ export type AppointmentReservationRunPlan = (AppointmentReservationRunPlanBase & {
616
+ kind: "empty";
617
+ canConfirm: false;
618
+ conflictOccurrences: [];
619
+ globalConflicts: [];
620
+ }) | (AppointmentReservationRunPlanBase & {
621
+ kind: "incomplete";
622
+ canConfirm: false;
623
+ requestedOccurrenceCount: number;
624
+ conflictOccurrences: [];
625
+ globalConflicts: [];
626
+ }) | (AppointmentReservationRunPlanBase & {
627
+ kind: "ready";
628
+ canConfirm: true;
629
+ conflictOccurrences: [];
630
+ globalConflicts: [];
631
+ }) | (AppointmentReservationRunPlanBase & {
632
+ kind: "has_conflicts";
633
+ canConfirm: false;
634
+ conflictOccurrences: Extract<AppointmentReservationRunPlannedOccurrence, {
635
+ kind: "conflict";
636
+ }>[];
637
+ globalConflicts: [];
638
+ }) | (AppointmentReservationRunPlanBase & {
639
+ kind: "blocked";
640
+ canConfirm: false;
641
+ globalConflicts: AppointmentReservationRunGlobalConflict[];
642
+ });
643
+ export type PreviewAppointmentReservationRunResponse = {
644
+ plan: AppointmentReservationRunPlan;
645
+ };
646
+ export type AppointmentReservationRunEffectStatus = Readonly<{
647
+ kind: "succeeded";
648
+ }> | Readonly<{
649
+ kind: "skipped";
650
+ reason: "calendar_unavailable" | "manual_payment_mode" | "missing_appointment_resource" | "missing_run_appointments" | "missing_customer_email" | "missing_site_owner" | "payment_request_scheduler_deferred" | "run_reused";
651
+ message?: string;
652
+ }> | Readonly<{
653
+ kind: "failed";
654
+ message: string;
655
+ }>;
656
+ export type AppointmentReservationRunAppointmentEffects = Readonly<{
657
+ appointmentId: string;
658
+ calendar: AppointmentReservationRunEffectStatus;
659
+ paymentRequest: AppointmentReservationRunEffectStatus;
660
+ }>;
661
+ export type AppointmentReservationRunPostCommitEffects = Readonly<{
662
+ completedAt: string;
663
+ summaryEmail: AppointmentReservationRunEffectStatus;
664
+ appointments: readonly AppointmentReservationRunAppointmentEffects[];
665
+ }>;
666
+ export type CreateAppointmentReservationRunResponse = {
667
+ run: {
668
+ id: string;
669
+ reservationId: string;
670
+ selectedOccurrenceKeys: string[];
671
+ status: "committed" | "completed_with_effect_failures";
672
+ reused: boolean;
673
+ };
674
+ appointmentIds: string[];
675
+ effects: AppointmentReservationRunPostCommitEffects;
676
+ };
455
677
  export type DeleteServiceResponse = {
456
678
  success: boolean;
457
679
  };
@@ -492,6 +714,30 @@ export type PublicBookingAvailableDatesResponse = {
492
714
  export type PublicBookingAvailableSlotsResponse = {
493
715
  slots: TimeSlot[];
494
716
  };
717
+ export type PublicWeeklySlotAvailabilityQuery = {
718
+ siteId: string;
719
+ serviceId: string;
720
+ resourceId?: string;
721
+ horizonWeeks?: number;
722
+ timezone?: string;
723
+ };
724
+ export type PublicWeeklySlotAvailabilityOption = {
725
+ id: string;
726
+ resourceId: string;
727
+ weekday: number;
728
+ weekdayLabel: string;
729
+ startTime: string;
730
+ endTime: string;
731
+ nextDate: string;
732
+ availableWeeks: number;
733
+ };
734
+ export type PublicWeeklySlotAvailabilityResponse = {
735
+ slots: PublicWeeklySlotAvailabilityOption[];
736
+ horizonWeeks: number;
737
+ timezone: string;
738
+ startDate: string;
739
+ endDate: string;
740
+ };
495
741
  export type PublicCreateBookingAppointmentRequest = {
496
742
  formId: string;
497
743
  serviceId: string;
@@ -4,7 +4,7 @@ import type { DeleteAccountRequest, DeleteAccountResponse } from "./accessAdmin"
4
4
  import type { AiPlaygroundApplyRequest, AiPlaygroundApplyResponse } from "./aiPlayground";
5
5
  import type { BillingCheckoutRequest, BillingCheckoutResponse, BillingStatusResponse, BillingSummaryResponse, SiteBillingCheckoutResponse, SiteBillingCostResponse } from "./billing";
6
6
  import type { CreateSiteFontUploadUrlRequest, CreateSiteFontUploadUrlResponse, DeleteSiteFontFileRequest, DeleteSiteFontFileResponse, ExportBackupRequest, FontRecord, GetSiteFontResponse, ListPublicSiteFontsResponse, ListSiteFontsResponse, UpdateSiteFontRequest, UpdateSiteFontResponse, UploadSiteFontRequest, UploadSiteFontResponse } from "./siteAssets";
7
- import type { AdminSiteCostResponse, AdminScheduleBillingComponentEndRequest, AdminScheduleBillingComponentEndResponse, AdminUpdateSiteCostRequest, AdminUpdateSiteCostResponse, CancelFlexibleBalanceBookingDueToNonPaymentRequest, CancelShopOrderItemRequest, CancelShopOrderItemResponse, CancelShopOrderRequest, CancelShopOrderResponse, CreateShopOrderPaymentLinkResponse, CreateOrderShipmentRequest, CreateOrderShipmentResponse, EditShopOrderAddressRequest, FlexibleBalanceAdminActionResponse, PortalAppointmentWithDetails, RefundShopOrderResponse, ReopenFlexibleBalanceBookingAfterNonPaymentCancellationRequest, SendShopOrderPaymentReminderResponse, SettleShopOrderPaymentRequest, SettleShopOrderPaymentResponse, ShopOrderDigitalFulfillmentRequest } from "./siteOperations";
7
+ import type { AdminSiteCostResponse, AdminResolveSiteBillingManualReviewRequest, AdminResolveSiteBillingManualReviewResponse, AdminScheduleBillingComponentEndRequest, AdminScheduleBillingComponentEndResponse, AdminUpdateSiteCostRequest, AdminUpdateSiteCostResponse, CancelFlexibleBalanceBookingDueToNonPaymentRequest, CancelShopOrderItemRequest, CancelShopOrderItemResponse, CancelShopOrderRequest, CancelShopOrderResponse, CreateShopOrderPaymentLinkResponse, CreateOrderShipmentRequest, CreateOrderShipmentResponse, EditShopOrderAddressRequest, FlexibleBalanceAdminActionResponse, PortalAppointmentWithDetails, RefundShopOrderResponse, ReopenFlexibleBalanceBookingAfterNonPaymentCancellationRequest, SendShopOrderPaymentReminderResponse, SettleShopOrderPaymentRequest, SettleShopOrderPaymentResponse, ShopOrderDigitalFulfillmentRequest } from "./siteOperations";
8
8
  export type DemoClaimBlueprintSlug = 'lotus-studio' | 'healing-hands' | 'isobel-studio' | 'clayfield';
9
9
  /**
10
10
  * Commerce and portal endpoints cover billing/account actions, portal customer flows,
@@ -68,6 +68,10 @@ export type CommercePortalAPIEndpoints = {
68
68
  siteId: string;
69
69
  componentId: string;
70
70
  }, AdminScheduleBillingComponentEndResponse>;
71
+ adminResolveSiteBillingManualReview: APIEndpoint<AdminResolveSiteBillingManualReviewRequest, {
72
+ siteId: string;
73
+ reviewId: string;
74
+ }, AdminResolveSiteBillingManualReviewResponse>;
71
75
  portalGetProfile: APIEndpoint<never, never, PortalMeResponse>;
72
76
  portalUpdateProfile: APIEndpoint<PortalMeUpdateRequest, never, PortalMeResponse>;
73
77
  portalGetCredit: APIEndpoint<never, never, PortalCreditResponse>;
@@ -1,12 +1,12 @@
1
- import type { Block, SdkCustomBlock, SdkCustomBlockInput, SiteFont, Theme } from "../../blocks/src/index";
2
- import type { CamelizeKeys, DbRow } from "../../db/src/index";
3
- import type { ContentTypeRoutingInfo, PublicContentTypeMeta } from "./contentTypes";
4
- import type { SiteRuntimePrivacyPolicy } from "./privacyPolicy";
5
- import type { SitePagePayload } from "./sitePages";
6
- import type { RiverbankSiteConfig } from "./sdkContracts";
7
- import type { SiteAnalyticsSettingsPayload } from "./siteAnalytics";
8
- import type { SiteLayoutResolvedPayload } from "./siteSettings";
9
- import type { BookingEngine, CanonicalBookingBehaviour } from "./bookingVerticals";
1
+ import type { Block, SdkCustomBlock, SdkCustomBlockInput, SiteFont, Theme } from '../../blocks/src/index';
2
+ import type { CamelizeKeys, DbRow } from '../../db/src/index';
3
+ import type { ContentTypeRoutingInfo, PublicContentTypeMeta } from './contentTypes';
4
+ import type { SiteRuntimePrivacyPolicy } from './privacyPolicy';
5
+ import type { SitePagePayload } from './sitePages';
6
+ import type { RiverbankSiteConfig } from './sdkContracts';
7
+ import type { SiteAnalyticsSettingsPayload } from './siteAnalytics';
8
+ import type { SiteLayoutResolvedPayload } from './siteSettings';
9
+ import type { BookingEngine, CanonicalBookingBehaviour } from './bookingVerticals';
10
10
  export type SiteBookingOfferingPresetSummary = Readonly<{
11
11
  id: string;
12
12
  canonicalBehaviour: CanonicalBookingBehaviour;
@@ -29,7 +29,7 @@ export type ContentRouteRecord = {
29
29
  draftTitle: string;
30
30
  draftPath: string;
31
31
  draftSlug: string | null;
32
- draftStatus: "draft" | "scheduled" | "published" | "archived";
32
+ draftStatus: 'draft' | 'scheduled' | 'published' | 'archived';
33
33
  draftMetaTitle?: string | null;
34
34
  draftMetaDescription?: string | null;
35
35
  draftUpdatedAt?: string | null;
@@ -42,10 +42,10 @@ export type ContentRouteRecord = {
42
42
  scheduledPublishAt?: string | null;
43
43
  scheduledPublishFailedAt?: string | null;
44
44
  scheduledPublishLastError?: string | null;
45
- status?: "draft" | "scheduled" | "published" | "archived";
45
+ status?: 'draft' | 'scheduled' | 'published' | 'archived';
46
46
  ogImageId?: string | null;
47
47
  };
48
- export type ContentEntryStatus = "draft" | "scheduled" | "published" | "archived";
48
+ export type ContentEntryStatus = 'draft' | 'scheduled' | 'published' | 'archived';
49
49
  export type ContentEntryRecord = {
50
50
  id: string;
51
51
  siteId: string;
@@ -79,11 +79,11 @@ export type FormSummary = {
79
79
  slug: string;
80
80
  updatedAt: string | null;
81
81
  };
82
- export type FormRecord = CamelizeKeys<DbRow<"forms">>;
83
- export type PublicFormRecord = Pick<FormRecord, "id" | "siteId" | "name" | "slug" | "schemaJson" | "settingsJson" | "createdAt" | "updatedAt">;
84
- export type FormSubmissionRecord = CamelizeKeys<DbRow<"form_submissions">>;
85
- export type FormSubmissionRectificationAnnotationRecord = CamelizeKeys<DbRow<"form_submission_rectification_annotations">>;
86
- export type FormSubmissionRectificationAnnotation = Pick<FormSubmissionRectificationAnnotationRecord, "id" | "formSubmissionId" | "fieldId" | "fieldLabel" | "originalValueSummary" | "correctedValue" | "note" | "actorUserId" | "supersedesAnnotationId" | "createdAt">;
82
+ export type FormRecord = CamelizeKeys<DbRow<'forms'>>;
83
+ export type PublicFormRecord = Pick<FormRecord, 'id' | 'siteId' | 'name' | 'slug' | 'schemaJson' | 'settingsJson' | 'createdAt' | 'updatedAt'>;
84
+ export type FormSubmissionRecord = CamelizeKeys<DbRow<'form_submissions'>>;
85
+ export type FormSubmissionRectificationAnnotationRecord = CamelizeKeys<DbRow<'form_submission_rectification_annotations'>>;
86
+ export type FormSubmissionRectificationAnnotation = Pick<FormSubmissionRectificationAnnotationRecord, 'id' | 'formSubmissionId' | 'fieldId' | 'fieldLabel' | 'originalValueSummary' | 'correctedValue' | 'note' | 'actorUserId' | 'supersedesAnnotationId' | 'createdAt'>;
87
87
  export type FormSubmissionWithRectificationAnnotations = FormSubmissionRecord & Readonly<{
88
88
  rectificationAnnotations: FormSubmissionRectificationAnnotation[];
89
89
  }>;
@@ -102,8 +102,8 @@ export type ExportFormSubmissionsCsvQuery = {
102
102
  limit?: number;
103
103
  };
104
104
  export type ExportFormSubmissionsCsvResponse = Blob;
105
- export type ThemePreferencesRecord = CamelizeKeys<DbRow<"site_theme_preferences">>;
106
- export type ThemeRow = CamelizeKeys<DbRow<"themes">>;
105
+ export type ThemePreferencesRecord = CamelizeKeys<DbRow<'site_theme_preferences'>>;
106
+ export type ThemeRow = CamelizeKeys<DbRow<'themes'>>;
107
107
  export type ThemeGenerationTurn = {
108
108
  message: string;
109
109
  themes: Theme[];
@@ -122,7 +122,7 @@ export type RunSdkWorkflowResponse<TContent = Record<string, unknown>> = {
122
122
  workflow: {
123
123
  runId: string;
124
124
  id: string;
125
- status: "running" | "succeeded";
125
+ status: 'running' | 'succeeded';
126
126
  summary?: string | null;
127
127
  };
128
128
  entry: WorkflowTargetEntrySnapshot<TContent>;
@@ -130,12 +130,12 @@ export type RunSdkWorkflowResponse<TContent = Record<string, unknown>> = {
130
130
  export type WorkflowTargetEntrySnapshot<TContent = Record<string, unknown>> = WorkflowContentEntryTargetSnapshot<TContent> | WorkflowPageTargetSnapshot;
131
131
  export type WorkflowContentEntryTargetSnapshot<TContent = Record<string, unknown>> = {
132
132
  id: string;
133
- kind: "content-entry";
133
+ kind: 'content-entry';
134
134
  routeId: string | null;
135
135
  draftContent: TContent;
136
136
  publishedContent: TContent | null;
137
137
  };
138
- export type WorkflowPageStatus = "draft" | "scheduled" | "published" | "archived";
138
+ export type WorkflowPageStatus = 'draft' | 'scheduled' | 'published' | 'archived';
139
139
  export type WorkflowPageDraftContent = {
140
140
  draftTitle: string;
141
141
  draftSlug: string | null;
@@ -158,7 +158,7 @@ export type WorkflowPagePublishedContent = {
158
158
  };
159
159
  export type WorkflowPageTargetSnapshot = {
160
160
  id: string;
161
- kind: "page";
161
+ kind: 'page';
162
162
  routeId: string;
163
163
  draftContent: WorkflowPageDraftContent;
164
164
  publishedContent: WorkflowPagePublishedContent | null;
@@ -167,7 +167,7 @@ export type WorkflowRunStatusResponse = {
167
167
  run: {
168
168
  id: string;
169
169
  workflowId: string;
170
- status: "created" | "running" | "succeeded" | "failed" | "cancelled";
170
+ status: 'created' | 'running' | 'succeeded' | 'failed' | 'cancelled';
171
171
  summary: string | null;
172
172
  error: string | null;
173
173
  externalJobId: string | null;
@@ -175,7 +175,7 @@ export type WorkflowRunStatusResponse = {
175
175
  };
176
176
  };
177
177
  export type SdkWorkflowRunStatusCallbackRequest = {
178
- status: "running" | "succeeded" | "failed" | "cancelled";
178
+ status: 'running' | 'succeeded' | 'failed' | 'cancelled';
179
179
  summary?: string | null;
180
180
  error?: string | null;
181
181
  externalJobId?: string | null;
@@ -325,8 +325,8 @@ export type PageDraftRecord = {
325
325
  title: string;
326
326
  slug: string | null;
327
327
  };
328
- export type NavigationMenuRecord = CamelizeKeys<DbRow<"navigation_menus">>;
329
- export type NavigationItemRecord = CamelizeKeys<DbRow<"navigation_items">>;
328
+ export type NavigationMenuRecord = CamelizeKeys<DbRow<'navigation_menus'>>;
329
+ export type NavigationItemRecord = CamelizeKeys<DbRow<'navigation_items'>>;
330
330
  export type NavigationMenuWithItems = NavigationMenuRecord & {
331
331
  items: NavigationItemRecord[];
332
332
  };
@@ -340,7 +340,7 @@ export type SiteBySlugResponse = {
340
340
  launched_at: string | null;
341
341
  maintenance_mode_enabled?: boolean | undefined;
342
342
  maintenance_mode_message?: unknown;
343
- deployment_mode?: "managed" | "headless_cms" | "headless_full" | null | undefined;
343
+ deployment_mode?: 'managed' | 'headless_cms' | 'headless_full' | null | undefined;
344
344
  is_sdk_site?: boolean | null | undefined;
345
345
  };
346
346
  favicon?: {
@@ -441,7 +441,7 @@ export type EntryPageContentSlot = Readonly<{
441
441
  blocks: readonly BlockListItem[];
442
442
  }>;
443
443
  export type EntryPageContentSlotWarning = Readonly<{
444
- kind: "orphaned-slot-hidden";
444
+ kind: 'orphaned-slot-hidden';
445
445
  slotKey: string;
446
446
  message: string;
447
447
  }>;
@@ -458,9 +458,9 @@ export type ContentEntryOrPageResponse<TContent = Record<string, unknown>> = Con
458
458
  entry: PageRecord;
459
459
  };
460
460
  export type ScheduledContentEntryOrPageResponse<TContent = Record<string, unknown>> = ({
461
- kind: "content";
461
+ kind: 'content';
462
462
  } & ContentEntryDetailResponse<TContent>) | {
463
- kind: "page";
463
+ kind: 'page';
464
464
  entry: PageRecord;
465
465
  };
466
466
  export type PublishedContentEntryOrPageResponse<TContent = Record<string, unknown>> = ContentEntryDetailResponse<TContent> | {
@@ -484,7 +484,7 @@ export type PublishedContentEntryPreviewResponse = {
484
484
  };
485
485
  export type PublishedPostPreview = PublishedContentEntryPreview;
486
486
  export type PublishedPostPreviewResponse = PublishedContentEntryPreviewResponse;
487
- export type ContentEntryListStage = "published" | "preview";
487
+ export type ContentEntryListStage = 'published' | 'preview';
488
488
  /**
489
489
  * Normalized media shape for entry images in API responses.
490
490
  * Contains only the essential fields needed for display.
@@ -556,6 +556,26 @@ export type SdkEntrySlotContent = {
556
556
  slotKey: string;
557
557
  blocks: SdkEntrySlotBlockContent[];
558
558
  };
559
+ export type SdkSurfaceSlotBlockContent = {
560
+ id: string;
561
+ blockId: string;
562
+ surfaceSlotId: string;
563
+ identifier: string | null;
564
+ kind: string;
565
+ purpose: string;
566
+ orderIndex: number;
567
+ content: Record<string, unknown>;
568
+ draftContent: unknown;
569
+ publishedContent: unknown;
570
+ draftContentId: string | null;
571
+ publishedContentId: string | null;
572
+ };
573
+ export type SdkSurfaceSlotContent = {
574
+ surfaceSlotId: string;
575
+ pageSurfaceId: string;
576
+ slotKey: string;
577
+ blocks: SdkSurfaceSlotBlockContent[];
578
+ };
559
579
  export type SdkTemplateAddon = {
560
580
  addonKey: string;
561
581
  enabled: boolean;
@@ -565,7 +585,7 @@ export type SdkTemplateBlock = {
565
585
  id: string;
566
586
  orderIndex: number;
567
587
  blockKind: string;
568
- scope: "template" | "entry";
588
+ scope: 'template' | 'entry';
569
589
  content: Record<string, unknown> | null;
570
590
  bindings: Record<string, unknown> | null;
571
591
  dataDependencies: Record<string, unknown> | null;
@@ -649,25 +669,74 @@ export type SdkRuntimeEntryResponse = {
649
669
  contentTypeSchema: Record<string, unknown> | null;
650
670
  mediaAssets?: SdkRuntimeMediaAsset[];
651
671
  };
672
+ export type SdkRuntimePageSurfaceSubject = Readonly<{
673
+ kind: 'eventSeries';
674
+ eventSeriesId: string;
675
+ }>;
676
+ export type SdkRuntimePageSurfaceContentSource = Readonly<{
677
+ kind: 'pageSurface';
678
+ contentTypeId: string;
679
+ contentTypeKey: string;
680
+ templateKey: string | null;
681
+ }>;
682
+ export type SdkRuntimePageSurface = {
683
+ id: string;
684
+ routeId: string;
685
+ readinessState: 'shippable';
686
+ subject: SdkRuntimePageSurfaceSubject;
687
+ title: string;
688
+ slug: string | null;
689
+ path: string | null;
690
+ status: string;
691
+ publishAt: string | null;
692
+ content: Record<string, unknown>;
693
+ draftContent: Record<string, unknown> | null;
694
+ publishedContent: Record<string, unknown> | null;
695
+ metaTitle: string | null;
696
+ draftMetaTitle: string | null;
697
+ metaDescription: string | null;
698
+ draftMetaDescription: string | null;
699
+ ogImageId: string | null;
700
+ ogImageUrl: string | null;
701
+ canonicalUrl: string | null;
702
+ createdAt: string;
703
+ updatedAt: string;
704
+ contentSource: SdkRuntimePageSurfaceContentSource;
705
+ };
706
+ export type SdkRuntimePageSurfaceResponse = {
707
+ pageSurface: SdkRuntimePageSurface;
708
+ templates: SdkTemplate[];
709
+ surfaceSlots?: SdkSurfaceSlotContent[];
710
+ contentTypeSchema: Record<string, unknown> | null;
711
+ mediaAssets?: SdkRuntimeMediaAsset[];
712
+ };
652
713
  export type SdkRuntimeContentByPathResponse = (SdkRuntimePageResponse & {
653
- type?: "page";
714
+ type?: 'page';
654
715
  }) | (SdkRuntimeEntryResponse & {
655
- type: "entry";
716
+ type: 'entry';
717
+ }) | (SdkRuntimePageSurfaceResponse & {
718
+ type: 'pageSurface';
656
719
  });
657
720
  export type RedirectHttpStatus = 301 | 302 | 307 | 308;
658
721
  export type SdkRouteOutcomeResponse = {
659
- type: "content";
722
+ type: 'content';
660
723
  content: SdkRuntimeContentByPathResponse;
661
724
  } | {
662
- type: "redirect";
725
+ type: 'redirect';
663
726
  destination: string;
664
727
  status: RedirectHttpStatus;
665
728
  } | {
666
- type: "notFound";
729
+ type: 'notFound';
667
730
  } | {
668
- type: "loadFailed";
731
+ type: 'loadFailed';
669
732
  message: string;
670
733
  };
734
+ export type SdkRouteNonContentDecisionResponse = Exclude<SdkRouteOutcomeResponse, {
735
+ type: "content";
736
+ }>;
737
+ export type SdkRouteDecisionResponse = {
738
+ type: "contentExists";
739
+ } | SdkRouteNonContentDecisionResponse;
671
740
  export type BlockWithContentResponse = {
672
741
  id: string;
673
742
  kind: string;
@@ -683,7 +752,7 @@ export type ContentDataResponse = {
683
752
  page: SitePagePayload;
684
753
  type?: never;
685
754
  } | {
686
- type: "entry";
755
+ type: 'entry';
687
756
  entry: ContentEntryRecord & {
688
757
  title: string;
689
758
  slug: string | null;