@riverbankcms/sdk 0.151.0 → 0.152.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 (226) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/{EventEmbeddedCheckoutStep-BBHbM22D.mjs → EventEmbeddedCheckoutStep-DVQXWFm6.mjs} +10 -9
  3. package/dist/{PreviewEditorSidebar-BHplI9HE.mjs → PreviewEditorSidebar-Dr4NJi3Q.mjs} +4 -3
  4. package/dist/{PreviewEditorUI-DuyN8nsD.mjs → PreviewEditorUI-DSZXQbyh.mjs} +5 -4
  5. package/dist/{SdkPreviewModeRuntime-CR5ypwxJ.mjs → SdkPreviewModeRuntime-Dl4GyMc3.mjs} +124 -53
  6. package/dist/{SiteChromeCustomizeContext-D5t6joF_.mjs → SiteChromeCustomizeContext-DgBe-FlM.mjs} +20418 -32298
  7. package/dist/ThemedButton-B8ViBnLK.mjs +16350 -0
  8. package/dist/_dts/api/src/bookingOperations.d.ts +5 -3
  9. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +4 -0
  10. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  11. package/dist/_dts/api/src/index.d.ts +1 -1
  12. package/dist/_dts/api/src/navigation/types.d.ts +7 -0
  13. package/dist/_dts/api/src/navigation.d.ts +1 -1
  14. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +10 -1
  15. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  16. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  17. package/dist/_dts/blocks/src/index.d.ts +1 -0
  18. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +1 -0
  19. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +1 -1
  20. package/dist/_dts/blocks/src/primitives/content/utils/sanitizeHref.d.ts +1 -1
  21. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +4 -4
  22. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +16 -0
  23. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +5 -0
  24. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -0
  25. package/dist/_dts/blocks/src/system/helpers/normalizeMailingListBlockContent.d.ts +2 -0
  26. package/dist/_dts/blocks/src/system/registry.d.ts +14 -2
  27. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -5
  28. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +2 -0
  29. package/dist/_dts/blocks/src/system/runtime/api/schemas/events.d.ts +971 -0
  30. package/dist/_dts/blocks/src/system/runtime/api/schemas/waitlist-claims.d.ts +42 -0
  31. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +10 -2
  32. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +10 -136
  33. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
  34. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
  35. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSubmission.state.d.ts +2 -0
  36. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +3 -1
  37. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +23 -0
  39. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +6 -2
  40. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.hooks.d.ts +6 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.state.d.ts +7 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/BookingEntryViews.d.ts +42 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +4 -1
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +19 -9
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +4 -2
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -9
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.d.ts +4 -2
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.d.ts +5 -4
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/GuestDetailsSection.d.ts +1 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +2 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SingleTicketEntitlementNote.d.ts +11 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +2 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingCardDisplay.d.ts +31 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingEntry.d.ts +154 -0
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingFocus.d.ts +12 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -2
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
  60. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +9 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/finishedBooking.d.ts +77 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +0 -1
  63. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/offeringNoun.d.ts +12 -0
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +2 -1
  65. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +33 -1
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +11 -0
  67. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDisplay.d.ts +31 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDraft.state.d.ts +60 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
  70. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +58 -10
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +17 -0
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +23 -7
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useBookingBarFacts.d.ts +12 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationRecoveryRequest.d.ts +3 -0
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +4 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +4 -11
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +1563 -31
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +2 -12
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +147 -4
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +50 -2
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +6 -5
  83. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +85 -15
  84. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +53 -8
  85. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/MonthLookView.d.ts +10 -3
  86. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +16 -0
  87. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptionCopy.d.ts +5 -1
  88. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +37 -1
  89. package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +9 -2
  90. package/dist/_dts/blocks/src/system/runtime/shared/components/PaymentChoiceRows.d.ts +28 -0
  91. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +6 -8
  92. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -2
  93. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  94. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +9 -12
  95. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +15 -0
  96. package/dist/_dts/blocks/src/system/runtime/shared/utils/themePortalRoot.d.ts +10 -15
  97. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
  98. package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +3 -1
  99. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +2 -0
  100. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +6 -0
  101. package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +14 -14
  102. package/dist/_dts/commerce/src/purchase/confirmationPayment.d.ts +65 -0
  103. package/dist/_dts/commerce/src/purchase/confirmationPaymentSchema.d.ts +66 -0
  104. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  105. package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +8 -0
  106. package/dist/_dts/content-model/src/templates/defaults.d.ts +2 -2
  107. package/dist/_dts/core/src/appointment-booking-terms.d.ts +20 -0
  108. package/dist/_dts/core/src/booking-payment-schemas.d.ts +70 -0
  109. package/dist/_dts/core/src/branded.d.ts +0 -2
  110. package/dist/_dts/core/src/demo-claim-access.d.ts +1 -1
  111. package/dist/_dts/core/src/demo-claim-readiness.d.ts +18 -0
  112. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +1 -1
  113. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +1 -1
  114. package/dist/_dts/core/src/index.d.ts +4 -0
  115. package/dist/_dts/core/src/mailing-list-targeting-availability.d.ts +68 -0
  116. package/dist/_dts/core/src/mailing-list-targeting.d.ts +2 -0
  117. package/dist/_dts/core/src/ticket-quantity.d.ts +13 -0
  118. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +51 -32
  119. package/dist/_dts/editor/src/chrome/chromeLayers.d.ts +7 -0
  120. package/dist/_dts/editor/src/index.d.ts +1 -0
  121. package/dist/_dts/editor-blocks/src/widgets/link/LinkAddressInput.d.ts +8 -0
  122. package/dist/_dts/editor-blocks/src/widgets/link/LinkContentList.d.ts +12 -0
  123. package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +5 -1
  124. package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +3 -3
  125. package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +8 -2
  126. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +4 -3
  127. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
  128. package/dist/_dts/editor-blocks/src/widgets/link/draft.d.ts +44 -0
  129. package/dist/_dts/editor-blocks/src/widgets/link/presentation.d.ts +13 -0
  130. package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +14 -0
  131. package/dist/_dts/editor-blocks/src/widgets/link/useRoutableContent.d.ts +2 -0
  132. package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +5 -4
  133. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +1 -1
  134. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +13 -8
  135. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -3
  136. package/dist/_dts/media-core/src/index.d.ts +1 -0
  137. package/dist/_dts/media-core/src/storageObjectKey.d.ts +12 -0
  138. package/dist/_dts/media-react/src/hooks/useSupabaseMediaUploader.d.ts +1 -1
  139. package/dist/_dts/media-react/src/internal/supabaseResumableUpload.d.ts +13 -0
  140. package/dist/_dts/preview-next/src/client/preview/previewModeRootAttribute.d.ts +11 -0
  141. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +0 -1
  142. package/dist/_dts/sdk/src/rendering/image.d.ts +10 -0
  143. package/dist/_dts/sdk/src/rendering/index.d.ts +3 -1
  144. package/dist/_dts/sdk/src/rendering/link.d.ts +9 -0
  145. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  146. package/dist/_dts/sdk/src/version.d.ts +1 -1
  147. package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +3 -3
  148. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  149. package/dist/client/BookingMailingListNote-CBuMKN0w.mjs +386 -0
  150. package/dist/client/{CardListItem-ZDLYh6dL.mjs → CardListItem-Dc9XTXhB.mjs} +3 -4
  151. package/dist/client/CheckIcon-CpyXr-Kg.mjs +35 -0
  152. package/dist/client/{CheckboxChoice-M-3HycLw.mjs → CheckboxChoice-CIqx_o0E.mjs} +1 -1
  153. package/dist/client/{DemoBookingPortalAccess-BMtvPTWE.mjs → DemoBookingPortalAccess-D3VQ_kLj.mjs} +85 -85
  154. package/dist/client/{EventCombined.client-DUm_DOxW.mjs → EventCombined.client-BHGEKise.mjs} +8 -9
  155. package/dist/client/{EventEmbeddedCheckoutStep-DsNNzgRm.mjs → EventEmbeddedCheckoutStep-Bo1Cm23R.mjs} +11 -10
  156. package/dist/client/{EventListing.client-DjNYGUVm.mjs → EventListing.client-D5OQgVPr.mjs} +2 -2
  157. package/dist/client/{LeafletStaticMap-DuFiOHq_.mjs → LeafletStaticMap-CLL5cWrr.mjs} +1 -1
  158. package/dist/client/{ModalShell-CqkBvBIC.mjs → ModalShell-BXzucfR6.mjs} +83 -12
  159. package/dist/client/{RichText-LjPCUGGi.mjs → RichText-BoDmnopf.mjs} +6 -3
  160. package/dist/client/{ThemedButton-DZKjtaDD.mjs → ThemedButton-Ciltp0IK.mjs} +2 -2
  161. package/dist/client/{accordion-Qe--SILD.mjs → accordion-DOkRS64-.mjs} +1 -1
  162. package/dist/client/aspectTransforms-D-TnDdq4.mjs +93 -0
  163. package/dist/client/{bookingForm-3BCl4g_f.mjs → bookingForm-wlMVwo9h.mjs} +289 -149
  164. package/dist/client/bookings.mjs +12212 -10832
  165. package/dist/client/{carousel-h2YjKOS2.mjs → carousel-CGWk-Z0u.mjs} +2 -2
  166. package/dist/client/{carousel.client-BLrd4hmY.mjs → carousel.client-kX5mN1Eg.mjs} +46 -41
  167. package/dist/client/{cart-5NeiigVd.mjs → cart-OBBPlaH4.mjs} +3 -3
  168. package/dist/client/{checkout-G4UWjOEw.mjs → checkout-Bmw2WjQX.mjs} +3 -3
  169. package/dist/client/client.mjs +9541 -6039
  170. package/dist/client/{colorStyles-DTunOThj.mjs → colorStyles-ECDNPE_P.mjs} +23 -86
  171. package/dist/client/{context-GK4-AVAh.mjs → context-BI77UFAn.mjs} +275 -10
  172. package/dist/client/{eventCalendar-Prw3Yo_L.mjs → eventCalendar-qkej2Edn.mjs} +19 -17
  173. package/dist/client/{eventCombined-BUugi6__.mjs → eventCombined-DApKHvat.mjs} +4 -4
  174. package/dist/client/{eventDetails-CBHUda-R.mjs → eventDetails-BQyUDPH0.mjs} +3 -4
  175. package/dist/client/{eventListing-CQeG45Dg.mjs → eventListing-CeAnshlZ.mjs} +4 -4
  176. package/dist/client/{eventRegistration-Dif3p3oJ.mjs → eventRegistration-C3A3NyBO.mjs} +2209 -2144
  177. package/dist/client/{form-Cf0WMtfG.mjs → form-DW8rU7jO.mjs} +6 -6
  178. package/dist/client/{headerSection-Bqdr3JWp.mjs → headerSection-CkIhsoNm.mjs} +9 -9
  179. package/dist/client/hooks.mjs +1289 -380
  180. package/dist/client/{locationMap-BVvPou4O.mjs → locationMap-D4O8wbli.mjs} +4 -4
  181. package/dist/client/{media-47fcnhzD.mjs → media-C5K_0xPd.mjs} +2 -2
  182. package/dist/client/{newsletterForm-Cx-1dnic.mjs → newsletterForm-B7IxSPuz.mjs} +5 -5
  183. package/dist/client/{productDetail-DaUMaJYk.mjs → productDetail-Bqxpwy5N.mjs} +3 -3
  184. package/dist/client/{productList-BKQlWEKE.mjs → productList-u9Lz8V15.mjs} +3 -3
  185. package/dist/client/{propsDecoder-DO5iXphQ.mjs → propsDecoder-Bf1jucUp.mjs} +17333 -14489
  186. package/dist/client/rendering/client.mjs +58216 -55133
  187. package/dist/client/rendering/islands.mjs +19 -19
  188. package/dist/client/rendering.mjs +9099 -5636
  189. package/dist/client/{routeIslandApiConfig-BNm0Z3-g.mjs → routeIslandApiConfig-BgP-aPMl.mjs} +1 -1
  190. package/dist/client/{shop-D7ytcFBC.mjs → shop-B_eykR-_.mjs} +16 -14
  191. package/dist/client/{shop-commerce-D68-hHy2.mjs → shop-commerce-CT0APkFV.mjs} +9 -9
  192. package/dist/client/{shop-commerce-store-Cu7X2lyu.mjs → shop-commerce-store-DcvZxdEK.mjs} +1 -1
  193. package/dist/client/{shopShared-D12rxE69.mjs → shopShared-BVJOiUiJ.mjs} +5 -5
  194. package/dist/client/themePortalRoot-DS92SRVZ.mjs +47 -0
  195. package/dist/client/{TerminalPanel-DOTSUCO0.mjs → useDiscountCodeUi-DPmYDunz.mjs} +60 -77
  196. package/dist/client/{useEventPagination-jgKa67KV.mjs → useEventPagination-8-U55vH5.mjs} +7 -8
  197. package/dist/preview-next/before-render.mjs +7 -0
  198. package/dist/preview-next/client/runtime.mjs +3 -3
  199. package/dist/preview-next/keepAlive.mjs +7 -0
  200. package/dist/preview-next/middleware.mjs +7 -0
  201. package/dist/{sdk-runtime-4cCWO_3i.mjs → sdk-runtime-C5jPdSrk.mjs} +1 -1
  202. package/dist/server/components.mjs +3138 -1373
  203. package/dist/server/config-validation.mjs +1395 -486
  204. package/dist/server/config.mjs +1395 -486
  205. package/dist/server/data.mjs +1289 -380
  206. package/dist/server/index.mjs +8 -1
  207. package/dist/server/next.mjs +3362 -1538
  208. package/dist/server/page-converter.mjs +1357 -453
  209. package/dist/server/prebuild.mjs +1 -1
  210. package/dist/server/rendering/server.mjs +2335 -1044
  211. package/dist/server/rendering.mjs +3152 -1370
  212. package/dist/server/routing.mjs +1437 -490
  213. package/dist/server/server.mjs +1297 -381
  214. package/dist/server/theme-bridge.mjs +1135 -795
  215. package/dist/{spinner-tSdG9YvG.mjs → spinner-B-ab2rJp.mjs} +1 -1
  216. package/dist/styles/index.css +1088 -721
  217. package/package.json +1 -1
  218. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/OrderSummary.d.ts +0 -15
  219. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +0 -22
  220. package/dist/_dts/blocks/src/system/runtime/shared/components/SelectableOptionCard.d.ts +0 -30
  221. package/dist/client/BookingMailingListNote-DlDSs5Vm.mjs +0 -567
  222. package/dist/client/pricing-CMD0kADd.mjs +0 -314
  223. package/dist/client/result-DRW7JWXz.mjs +0 -30
  224. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
  225. package/dist/client/themePortalRoot-AGs4cE7t.mjs +0 -30
  226. package/dist/spinner-BL3kW9Uh.mjs +0 -803
@@ -1,11 +1,16 @@
1
+ import type { EventSourceRecovery } from './eventSourceRecovery';
1
2
  import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
2
3
  import type { EventTicketSelectionLine, EventRegistrationClientProps, EligibilityData, FormData, Guest, GuestErrors, PaymentSelection, PublicEvent, RegistrationEvent, RegistrationResult, RegistrationStep } from './types';
3
4
  import { usePortalAuth, useEligibility, useExistingEventRegistration } from './hooks';
4
- import { useWaitlistClaim } from '../../shared/useWaitlistClaim';
5
+ import { useWaitlistClaimCredential, useWaitlistClaimForRequest } from '../../shared/useWaitlistClaim';
6
+ import { type StateUpdate } from './registrationDraft.state';
5
7
  import { useEventRegistrationStripeReturn } from './useEventRegistrationStripeReturn';
6
8
  import { useEventRegistrationSubmit } from './useEventRegistrationSubmit';
7
9
  import { useDiscountCodeUi } from './useDiscountCodeUi';
8
10
  import { useBookingNowIso } from '../../hooks/useBookingNowIso';
11
+ import { type RegistrationFlowState } from './registrationStateMachine';
12
+ import { type RegistrationAdmission } from './registrationCompletion';
13
+ import { type RegistrationPresentation } from './wizardSteps';
9
14
  export type EventRegistrationDetailsCompleteResult = Readonly<{
10
15
  ok: true;
11
16
  outcome: 'payment-step' | 'submitted';
@@ -18,7 +23,7 @@ export type UseEventRegistrationWizardOptions = Readonly<{
18
23
  anchorId: string;
19
24
  occurrenceContext: EventRegistrationClientProps['occurrenceContext'];
20
25
  subject?: EventRegistrationClientProps['subject'];
21
- events: PublicEvent[];
26
+ eventSource: EventSourceRecovery<PublicEvent>;
22
27
  maxTicketsNum: number;
23
28
  mailingList?: EventRegistrationClientProps['mailingList'];
24
29
  siteName?: string;
@@ -27,13 +32,16 @@ export type EventRegistrationWizardDeps = Readonly<{
27
32
  usePortalAuth: typeof usePortalAuth;
28
33
  useEligibility: typeof useEligibility;
29
34
  useExistingEventRegistration: typeof useExistingEventRegistration;
30
- useWaitlistClaim: typeof useWaitlistClaim;
35
+ useWaitlistClaim: typeof useWaitlistClaimForRequest;
36
+ useWaitlistClaimCredential: typeof useWaitlistClaimCredential;
31
37
  useEventRegistrationStripeReturn: typeof useEventRegistrationStripeReturn;
32
38
  useEventRegistrationSubmit: typeof useEventRegistrationSubmit;
33
39
  useDiscountCodeUi: typeof useDiscountCodeUi;
34
40
  useBookingNowIso: typeof useBookingNowIso;
35
41
  }>;
36
42
  export declare function useEventRegistrationWizard(options: UseEventRegistrationWizardOptions): {
43
+ step: "success";
44
+ registrationResult: RegistrationResult;
37
45
  api: import("../../api").BoundBlockApiClient;
38
46
  nowIso: string;
39
47
  directPaymentOptions: readonly import("./eventPaymentOptions").EventRegistrationDirectPaymentOption[];
@@ -61,22 +69,23 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
61
69
  selectedEventId: string | null;
62
70
  }> | null;
63
71
  subject: import("./eventScope").EventRegistrationPageSurfaceSubject | null | undefined;
64
- events: PublicEvent[];
72
+ events: readonly PublicEvent[];
65
73
  maxTicketsNum: number;
66
74
  scopedEvents: RegistrationEvent[];
67
75
  preSelectedEvent: RegistrationEvent | null;
68
76
  hasPreSelectedContext: boolean;
69
- step: RegistrationStep;
70
- setStep: (next: RegistrationStep) => void;
71
- admission: import("./registrationCompletion").RegistrationAdmission;
77
+ presentation: RegistrationPresentation;
78
+ flow: RegistrationFlowState;
79
+ setStep: (next: Exclude<RegistrationStep, "success">) => void;
80
+ admission: RegistrationAdmission;
72
81
  ticketContinuation: import("./registrationCompletion").RegistrationTicketContinuation;
73
82
  handleTicketsComplete: () => import("./event-registration.headless.contract").EventRegistrationFlowActionResult;
74
83
  selectedEvent: RegistrationEvent | null;
75
- setSelectedEvent: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>>[0]) => void;
84
+ setSelectedEvent: (value: Parameters<(value: StateUpdate<RegistrationEvent | null>) => void>[0]) => void;
76
85
  ticketsCount: number;
77
- setTicketsCount: (value: Parameters<(nextTicketsCount: number) => void>[0]) => void;
86
+ setTicketsCount: (value: Parameters<(ticketsCount: number) => void>[0]) => void;
78
87
  selectedAttendanceMode: "in_person" | "online" | null;
79
- setSelectedAttendanceMode: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>>[0]) => void;
88
+ setSelectedAttendanceMode: (value: Parameters<(value: StateUpdate<"in_person" | "online" | null>) => void>[0]) => void;
80
89
  ticketSelections: Readonly<{
81
90
  pricingOptionId: string | null;
82
91
  quantity: number;
@@ -87,7 +96,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
87
96
  }>[];
88
97
  setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
89
98
  selectedSlidingAmountInput: string;
90
- setSelectedSlidingAmountInput: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<string>>>[0]) => void;
99
+ setSelectedSlidingAmountInput: (value: Parameters<(value: StateUpdate<string>) => void>[0]) => void;
91
100
  selectedSlidingAmount: number | null;
92
101
  selectedEventSlidingScale: Readonly<{
93
102
  minAmount: number;
@@ -112,14 +121,13 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
112
121
  mailingListSignup: Readonly<{
113
122
  siteName: string;
114
123
  }> | null;
115
- setFormData: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<FormData>>>[0]) => void;
124
+ setFormData: (value: Parameters<(value: StateUpdate<FormData>) => void>[0]) => void;
116
125
  errors: Partial<Record<keyof FormData, string>>;
117
126
  guests: Guest[];
118
- setGuests: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<Guest[]>>>[0]) => void;
127
+ setGuests: (value: Parameters<(value: StateUpdate<Guest[]>) => void>[0]) => void;
119
128
  guestErrors: GuestErrors;
120
129
  guestSectionShake: boolean;
121
130
  handleGuestShakeEnd: () => void;
122
- registrationResult: RegistrationResult | null;
123
131
  errorMessage: string;
124
132
  errorAction: EventRegistrationErrorAction;
125
133
  altchaSolution: string | null;
@@ -139,7 +147,480 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
139
147
  productName?: string;
140
148
  }> | null;
141
149
  isMembershipFastTrack: boolean;
142
- waitlistClaim: import("../../shared/useWaitlistClaim").UseWaitlistClaimResult;
150
+ waitlistClaim: import("./registrationDraft.state").WaitlistInvitation | Readonly<{
151
+ kind: "none";
152
+ }>;
153
+ eligibility: EligibilityData | null;
154
+ registrationOptionsState: import("./hooks.state").EligibilityLookupState;
155
+ eligibilityLoading: boolean;
156
+ eligibilityError: string | null;
157
+ existingRegistration: import("../../api").CustomerEventRegistration | null;
158
+ existingRegistrationLoading: boolean;
159
+ existingRegistrationState: import("./hooks.state").ExistingRegistrationLookupState;
160
+ registrationState: Readonly<{
161
+ kind: "none";
162
+ }> | Readonly<{
163
+ kind: "booked";
164
+ }> | Readonly<{
165
+ kind: "pending_payment";
166
+ }> | Readonly<{
167
+ kind: "waitlisted";
168
+ }>;
169
+ hasEligibility: boolean;
170
+ hasMembershipEligibility: boolean;
171
+ requireGuestDetails: boolean;
172
+ discountCode: string;
173
+ setDiscountCode: (value: string) => void;
174
+ discountUiOpen: boolean;
175
+ setDiscountUiOpen: (isOpen: boolean) => void;
176
+ discountsAvailable: boolean;
177
+ manualCodeEntryAllowed: boolean;
178
+ autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;
179
+ discountsAvailableLoading: boolean;
180
+ discountContext: import("../../api").DiscountContext | null;
181
+ shouldShowDiscountToggle: boolean;
182
+ verification: {
183
+ retry: () => void;
184
+ retryReturn: () => void;
185
+ status: "idle" | "polling" | "completed" | "failed" | "timeout";
186
+ result: {
187
+ kind: "checkout";
188
+ subject: {
189
+ scope: "occurrence";
190
+ submissionId: string;
191
+ attendeeId: string;
192
+ } | {
193
+ scope: "wholeSeries";
194
+ submissionId: string;
195
+ };
196
+ outcome: {
197
+ kind: "resolved";
198
+ outcome: {
199
+ kind: "detailsAvailable";
200
+ identity: {
201
+ submissionId: string;
202
+ seriesId: string;
203
+ attendanceMode: "in_person" | "online";
204
+ scope: "occurrence";
205
+ attendeeId: string;
206
+ occurrenceId: string;
207
+ } | {
208
+ submissionId: string;
209
+ seriesId: string;
210
+ attendanceMode: "in_person" | "online";
211
+ scope: "wholeSeries";
212
+ registrationId: string;
213
+ };
214
+ ticketLines: readonly [{
215
+ label: string;
216
+ quantity: number;
217
+ }, ...{
218
+ label: string;
219
+ quantity: number;
220
+ }[]];
221
+ payment: {
222
+ kind: "free";
223
+ balance: {
224
+ kind: "settled";
225
+ };
226
+ } | {
227
+ kind: "waived";
228
+ balance: {
229
+ kind: "settled";
230
+ };
231
+ } | {
232
+ kind: "pass";
233
+ passName: string | null;
234
+ passCreditsUsed: number | null;
235
+ balance: {
236
+ kind: "settled";
237
+ };
238
+ } | {
239
+ kind: "membership";
240
+ membershipName: string | null;
241
+ balance: {
242
+ kind: "settled";
243
+ };
244
+ } | {
245
+ kind: "manual_due";
246
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
247
+ balance: {
248
+ kind: "due";
249
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
250
+ dueAt: string | null;
251
+ };
252
+ } | {
253
+ balance: {
254
+ kind: "due";
255
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
256
+ dueAt: string | null;
257
+ };
258
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
259
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
260
+ kind: "managed_balance_due";
261
+ } | {
262
+ paymentMethod: "mixed" | "manual" | "stripe" | "store_credit";
263
+ balance: {
264
+ kind: "settled";
265
+ } | {
266
+ kind: "due";
267
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
268
+ dueAt: string | null;
269
+ };
270
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
271
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
272
+ kind: "monetary";
273
+ };
274
+ } | {
275
+ kind: "detailsUnavailable";
276
+ identity: {
277
+ submissionId: string;
278
+ seriesId: string;
279
+ attendanceMode: "in_person" | "online";
280
+ scope: "occurrence";
281
+ attendeeId: string;
282
+ occurrenceId: string;
283
+ } | {
284
+ submissionId: string;
285
+ seriesId: string;
286
+ attendanceMode: "in_person" | "online";
287
+ scope: "wholeSeries";
288
+ registrationId: string;
289
+ };
290
+ };
291
+ } | {
292
+ kind: "abandoned";
293
+ } | {
294
+ kind: "reconciliationRequired";
295
+ } | {
296
+ kind: "paymentProcessing";
297
+ recoverableUntil?: string | undefined;
298
+ } | {
299
+ kind: "paymentAvailable";
300
+ checkout: {
301
+ kind: "embedded";
302
+ sessionId: string;
303
+ clientSecret: string;
304
+ livemode: boolean;
305
+ expiresAt: string;
306
+ browser: {
307
+ kind: "connect";
308
+ publishableKey: string;
309
+ accountId: string;
310
+ } | {
311
+ kind: "direct";
312
+ publishableKey: string;
313
+ };
314
+ };
315
+ recoverableUntil?: string | undefined;
316
+ } | {
317
+ kind: "paymentRetryAvailable";
318
+ place: "released" | "held";
319
+ } | {
320
+ kind: "paymentCheckUnavailable";
321
+ recoverableUntil?: string | undefined;
322
+ } | {
323
+ kind: "paymentAssistanceRequired";
324
+ };
325
+ } | {
326
+ kind: "notFound";
327
+ } | {
328
+ kind: "reconciliationRequired";
329
+ } | null;
330
+ error: Error | null;
331
+ };
332
+ paymentController: {
333
+ backToBooking: () => Promise<void>;
334
+ continuePayment: () => void;
335
+ returnToPayment: () => void;
336
+ returnToBooking: () => void;
337
+ retryingHeldPlace: boolean;
338
+ check: () => void;
339
+ retryPaymentLoad: () => void;
340
+ verification: {
341
+ retry: () => void;
342
+ retryReturn: () => void;
343
+ status: "idle" | "polling" | "completed" | "failed" | "timeout";
344
+ result: {
345
+ kind: "checkout";
346
+ subject: {
347
+ scope: "occurrence";
348
+ submissionId: string;
349
+ attendeeId: string;
350
+ } | {
351
+ scope: "wholeSeries";
352
+ submissionId: string;
353
+ };
354
+ outcome: {
355
+ kind: "resolved";
356
+ outcome: {
357
+ kind: "detailsAvailable";
358
+ identity: {
359
+ submissionId: string;
360
+ seriesId: string;
361
+ attendanceMode: "in_person" | "online";
362
+ scope: "occurrence";
363
+ attendeeId: string;
364
+ occurrenceId: string;
365
+ } | {
366
+ submissionId: string;
367
+ seriesId: string;
368
+ attendanceMode: "in_person" | "online";
369
+ scope: "wholeSeries";
370
+ registrationId: string;
371
+ };
372
+ ticketLines: readonly [{
373
+ label: string;
374
+ quantity: number;
375
+ }, ...{
376
+ label: string;
377
+ quantity: number;
378
+ }[]];
379
+ payment: {
380
+ kind: "free";
381
+ balance: {
382
+ kind: "settled";
383
+ };
384
+ } | {
385
+ kind: "waived";
386
+ balance: {
387
+ kind: "settled";
388
+ };
389
+ } | {
390
+ kind: "pass";
391
+ passName: string | null;
392
+ passCreditsUsed: number | null;
393
+ balance: {
394
+ kind: "settled";
395
+ };
396
+ } | {
397
+ kind: "membership";
398
+ membershipName: string | null;
399
+ balance: {
400
+ kind: "settled";
401
+ };
402
+ } | {
403
+ kind: "manual_due";
404
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
405
+ balance: {
406
+ kind: "due";
407
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
408
+ dueAt: string | null;
409
+ };
410
+ } | {
411
+ balance: {
412
+ kind: "due";
413
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
414
+ dueAt: string | null;
415
+ };
416
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
417
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
418
+ kind: "managed_balance_due";
419
+ } | {
420
+ paymentMethod: "mixed" | "manual" | "stripe" | "store_credit";
421
+ balance: {
422
+ kind: "settled";
423
+ } | {
424
+ kind: "due";
425
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
426
+ dueAt: string | null;
427
+ };
428
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
429
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
430
+ kind: "monetary";
431
+ };
432
+ } | {
433
+ kind: "detailsUnavailable";
434
+ identity: {
435
+ submissionId: string;
436
+ seriesId: string;
437
+ attendanceMode: "in_person" | "online";
438
+ scope: "occurrence";
439
+ attendeeId: string;
440
+ occurrenceId: string;
441
+ } | {
442
+ submissionId: string;
443
+ seriesId: string;
444
+ attendanceMode: "in_person" | "online";
445
+ scope: "wholeSeries";
446
+ registrationId: string;
447
+ };
448
+ };
449
+ } | {
450
+ kind: "abandoned";
451
+ } | {
452
+ kind: "reconciliationRequired";
453
+ } | {
454
+ kind: "paymentProcessing";
455
+ recoverableUntil?: string | undefined;
456
+ } | {
457
+ kind: "paymentAvailable";
458
+ checkout: {
459
+ kind: "embedded";
460
+ sessionId: string;
461
+ clientSecret: string;
462
+ livemode: boolean;
463
+ expiresAt: string;
464
+ browser: {
465
+ kind: "connect";
466
+ publishableKey: string;
467
+ accountId: string;
468
+ } | {
469
+ kind: "direct";
470
+ publishableKey: string;
471
+ };
472
+ };
473
+ recoverableUntil?: string | undefined;
474
+ } | {
475
+ kind: "paymentRetryAvailable";
476
+ place: "released" | "held";
477
+ } | {
478
+ kind: "paymentCheckUnavailable";
479
+ recoverableUntil?: string | undefined;
480
+ } | {
481
+ kind: "paymentAssistanceRequired";
482
+ };
483
+ } | {
484
+ kind: "notFound";
485
+ } | {
486
+ kind: "reconciliationRequired";
487
+ } | null;
488
+ error: Error | null;
489
+ };
490
+ state: import("./types").EventPaymentState;
491
+ recovery: import("./types").PaymentStatusRecoveryState | null;
492
+ showRecovery: (next: import("./types").PaymentStatusRecoveryState | null) => void;
493
+ restoreMailingListNote: (value: import("./types").PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
494
+ openPayment: (checkout: import("../../api/types").EventEmbeddedCheckout, subject: import("../../api/types").EventRegistrationPaymentSubject, mailingListSignupNote?: import("./types").PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
495
+ verify: (request: import("../../api").EventCheckoutReturnRequest, resumePayment?: boolean) => void;
496
+ };
497
+ paymentStatusRecovery: import("./types").PaymentStatusRecoveryState | null;
498
+ handleCheckPaymentStatus: () => void;
499
+ handleContinueExistingPayment: () => void;
500
+ handleReturnToPayment: () => void;
501
+ handleReturnToBooking: () => void;
502
+ checkingNextStep: boolean;
503
+ handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
504
+ handlePaymentSelect: () => Promise<void>;
505
+ handleUseCardInsteadOfPass: () => void;
506
+ handleUsePassInstead: () => void;
507
+ handleBookForSomeoneElse: () => void;
508
+ handleBookAnother: () => void;
509
+ handleSubmit: (method: import("./PaymentSelectionStep").PaymentMethod, passId?: string | undefined, membershipId?: string | undefined, selection?: PaymentSelection | undefined) => ReturnType<import("./useEventRegistrationSubmit").EventRegistrationSubmit>;
510
+ handleEventSelect: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
511
+ handleEventChoose: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
512
+ handleRetry: () => void;
513
+ } | {
514
+ step: "error" | "submitting" | "payment" | "select-event" | "select-tickets" | "enter-details" | "select-payment" | "verifying-payment" | "verifying-timeout" | "payment-status" | "payment-failed";
515
+ registrationResult: null;
516
+ api: import("../../api").BoundBlockApiClient;
517
+ nowIso: string;
518
+ directPaymentOptions: readonly import("./eventPaymentOptions").EventRegistrationDirectPaymentOption[];
519
+ paymentDecision: {
520
+ selection: PaymentSelection;
521
+ directPaymentSelectionState: import("./eventPaymentOptions").EventRegistrationDirectPaymentSelectionState;
522
+ selectedDirectOption: import("./eventPaymentOptions").EventRegistrationDirectPaymentOption | null;
523
+ preview: import("./siteCreditPreview").EventRegistrationSiteCreditPreview;
524
+ stepState: import("./types").PaymentStepState;
525
+ directPaymentOptions: readonly import("./eventPaymentOptions").EventRegistrationDirectPaymentOption[];
526
+ canShowDirectPaymentOptions: boolean;
527
+ };
528
+ anchorId: string;
529
+ occurrenceContext: {
530
+ id: string;
531
+ seriesId: string;
532
+ startsAt: string;
533
+ endsAt: string;
534
+ timeZone: string;
535
+ capacityOverride?: number | null | undefined;
536
+ overrides?: Record<string, unknown> | null | undefined;
537
+ } | null | undefined;
538
+ registrationTarget: Readonly<{
539
+ subject: import("./types").RegistrationSubject;
540
+ selectedEventId: string | null;
541
+ }> | null;
542
+ subject: import("./eventScope").EventRegistrationPageSurfaceSubject | null | undefined;
543
+ events: readonly PublicEvent[];
544
+ maxTicketsNum: number;
545
+ scopedEvents: RegistrationEvent[];
546
+ preSelectedEvent: RegistrationEvent | null;
547
+ hasPreSelectedContext: boolean;
548
+ presentation: RegistrationPresentation;
549
+ flow: RegistrationFlowState;
550
+ setStep: (next: Exclude<RegistrationStep, "success">) => void;
551
+ admission: RegistrationAdmission;
552
+ ticketContinuation: import("./registrationCompletion").RegistrationTicketContinuation;
553
+ handleTicketsComplete: () => import("./event-registration.headless.contract").EventRegistrationFlowActionResult;
554
+ selectedEvent: RegistrationEvent | null;
555
+ setSelectedEvent: (value: Parameters<(value: StateUpdate<RegistrationEvent | null>) => void>[0]) => void;
556
+ ticketsCount: number;
557
+ setTicketsCount: (value: Parameters<(ticketsCount: number) => void>[0]) => void;
558
+ selectedAttendanceMode: "in_person" | "online" | null;
559
+ setSelectedAttendanceMode: (value: Parameters<(value: StateUpdate<"in_person" | "online" | null>) => void>[0]) => void;
560
+ ticketSelections: Readonly<{
561
+ pricingOptionId: string | null;
562
+ quantity: number;
563
+ }>[];
564
+ selectedTicketLines: Readonly<{
565
+ pricingOptionId: string | null;
566
+ quantity: number;
567
+ }>[];
568
+ setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
569
+ selectedSlidingAmountInput: string;
570
+ setSelectedSlidingAmountInput: (value: Parameters<(value: StateUpdate<string>) => void>[0]) => void;
571
+ selectedSlidingAmount: number | null;
572
+ selectedEventSlidingScale: Readonly<{
573
+ minAmount: number;
574
+ maxAmount: number;
575
+ suggestedAmount: number | null;
576
+ }> | null;
577
+ slidingScaleSelectionMessage: string | null;
578
+ selectedTicketType: import("../../..").EventRegistrationPricingOption | null;
579
+ ticketSelectionSummaryLines: readonly {
580
+ pricingOptionId: string | null;
581
+ label: string;
582
+ quantity: number;
583
+ unitPriceCents: number;
584
+ subtotalCents: number;
585
+ }[];
586
+ ticketSelectionSubtotalCents: number | null;
587
+ visibleTicketTypes: import("../../..").EventRegistrationPricingOption[];
588
+ ticketTypeSelectionRequired: boolean;
589
+ hasValidTicketSelection: boolean;
590
+ eventRequiresPayment: boolean;
591
+ formData: FormData;
592
+ mailingListSignup: Readonly<{
593
+ siteName: string;
594
+ }> | null;
595
+ setFormData: (value: Parameters<(value: StateUpdate<FormData>) => void>[0]) => void;
596
+ errors: Partial<Record<keyof FormData, string>>;
597
+ guests: Guest[];
598
+ setGuests: (value: Parameters<(value: StateUpdate<Guest[]>) => void>[0]) => void;
599
+ guestErrors: GuestErrors;
600
+ guestSectionShake: boolean;
601
+ handleGuestShakeEnd: () => void;
602
+ errorMessage: string;
603
+ errorAction: EventRegistrationErrorAction;
604
+ altchaSolution: string | null;
605
+ setAltchaSolution: import("react").Dispatch<import("react").SetStateAction<string | null>>;
606
+ portalAuthState: import("./hooks").PortalAuthState;
607
+ portalProfile: import("./hooks").PortalProfile | null;
608
+ portalCreditState: import("./hooks").PortalCreditState;
609
+ showMagicLinkModal: boolean;
610
+ setShowMagicLinkModal: import("react").Dispatch<import("react").SetStateAction<boolean>>;
611
+ handleLogout: () => void;
612
+ paymentStepState: import("./types").PaymentStepState;
613
+ handlePaymentSelectionChange: (value: Parameters<(selection: PaymentSelection) => void>[0]) => void;
614
+ paymentSelection: PaymentSelection;
615
+ declinedPass: Readonly<{
616
+ method: "pass";
617
+ passId: string;
618
+ productName?: string;
619
+ }> | null;
620
+ isMembershipFastTrack: boolean;
621
+ waitlistClaim: import("./registrationDraft.state").WaitlistInvitation | Readonly<{
622
+ kind: "none";
623
+ }>;
143
624
  eligibility: EligibilityData | null;
144
625
  registrationOptionsState: import("./hooks.state").EligibilityLookupState;
145
626
  eligibilityLoading: boolean;
@@ -173,7 +654,150 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
173
654
  retry: () => void;
174
655
  retryReturn: () => void;
175
656
  status: "idle" | "polling" | "completed" | "failed" | "timeout";
176
- result: import("../../api").EventCheckoutReturnResponse | null;
657
+ result: {
658
+ kind: "checkout";
659
+ subject: {
660
+ scope: "occurrence";
661
+ submissionId: string;
662
+ attendeeId: string;
663
+ } | {
664
+ scope: "wholeSeries";
665
+ submissionId: string;
666
+ };
667
+ outcome: {
668
+ kind: "resolved";
669
+ outcome: {
670
+ kind: "detailsAvailable";
671
+ identity: {
672
+ submissionId: string;
673
+ seriesId: string;
674
+ attendanceMode: "in_person" | "online";
675
+ scope: "occurrence";
676
+ attendeeId: string;
677
+ occurrenceId: string;
678
+ } | {
679
+ submissionId: string;
680
+ seriesId: string;
681
+ attendanceMode: "in_person" | "online";
682
+ scope: "wholeSeries";
683
+ registrationId: string;
684
+ };
685
+ ticketLines: readonly [{
686
+ label: string;
687
+ quantity: number;
688
+ }, ...{
689
+ label: string;
690
+ quantity: number;
691
+ }[]];
692
+ payment: {
693
+ kind: "free";
694
+ balance: {
695
+ kind: "settled";
696
+ };
697
+ } | {
698
+ kind: "waived";
699
+ balance: {
700
+ kind: "settled";
701
+ };
702
+ } | {
703
+ kind: "pass";
704
+ passName: string | null;
705
+ passCreditsUsed: number | null;
706
+ balance: {
707
+ kind: "settled";
708
+ };
709
+ } | {
710
+ kind: "membership";
711
+ membershipName: string | null;
712
+ balance: {
713
+ kind: "settled";
714
+ };
715
+ } | {
716
+ kind: "manual_due";
717
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
718
+ balance: {
719
+ kind: "due";
720
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
721
+ dueAt: string | null;
722
+ };
723
+ } | {
724
+ balance: {
725
+ kind: "due";
726
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
727
+ dueAt: string | null;
728
+ };
729
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
730
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
731
+ kind: "managed_balance_due";
732
+ } | {
733
+ paymentMethod: "mixed" | "manual" | "stripe" | "store_credit";
734
+ balance: {
735
+ kind: "settled";
736
+ } | {
737
+ kind: "due";
738
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
739
+ dueAt: string | null;
740
+ };
741
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
742
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
743
+ kind: "monetary";
744
+ };
745
+ } | {
746
+ kind: "detailsUnavailable";
747
+ identity: {
748
+ submissionId: string;
749
+ seriesId: string;
750
+ attendanceMode: "in_person" | "online";
751
+ scope: "occurrence";
752
+ attendeeId: string;
753
+ occurrenceId: string;
754
+ } | {
755
+ submissionId: string;
756
+ seriesId: string;
757
+ attendanceMode: "in_person" | "online";
758
+ scope: "wholeSeries";
759
+ registrationId: string;
760
+ };
761
+ };
762
+ } | {
763
+ kind: "abandoned";
764
+ } | {
765
+ kind: "reconciliationRequired";
766
+ } | {
767
+ kind: "paymentProcessing";
768
+ recoverableUntil?: string | undefined;
769
+ } | {
770
+ kind: "paymentAvailable";
771
+ checkout: {
772
+ kind: "embedded";
773
+ sessionId: string;
774
+ clientSecret: string;
775
+ livemode: boolean;
776
+ expiresAt: string;
777
+ browser: {
778
+ kind: "connect";
779
+ publishableKey: string;
780
+ accountId: string;
781
+ } | {
782
+ kind: "direct";
783
+ publishableKey: string;
784
+ };
785
+ };
786
+ recoverableUntil?: string | undefined;
787
+ } | {
788
+ kind: "paymentRetryAvailable";
789
+ place: "released" | "held";
790
+ } | {
791
+ kind: "paymentCheckUnavailable";
792
+ recoverableUntil?: string | undefined;
793
+ } | {
794
+ kind: "paymentAssistanceRequired";
795
+ };
796
+ } | {
797
+ kind: "notFound";
798
+ } | {
799
+ kind: "reconciliationRequired";
800
+ } | null;
177
801
  error: Error | null;
178
802
  };
179
803
  paymentController: {
@@ -188,7 +812,150 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
188
812
  retry: () => void;
189
813
  retryReturn: () => void;
190
814
  status: "idle" | "polling" | "completed" | "failed" | "timeout";
191
- result: import("../../api").EventCheckoutReturnResponse | null;
815
+ result: {
816
+ kind: "checkout";
817
+ subject: {
818
+ scope: "occurrence";
819
+ submissionId: string;
820
+ attendeeId: string;
821
+ } | {
822
+ scope: "wholeSeries";
823
+ submissionId: string;
824
+ };
825
+ outcome: {
826
+ kind: "resolved";
827
+ outcome: {
828
+ kind: "detailsAvailable";
829
+ identity: {
830
+ submissionId: string;
831
+ seriesId: string;
832
+ attendanceMode: "in_person" | "online";
833
+ scope: "occurrence";
834
+ attendeeId: string;
835
+ occurrenceId: string;
836
+ } | {
837
+ submissionId: string;
838
+ seriesId: string;
839
+ attendanceMode: "in_person" | "online";
840
+ scope: "wholeSeries";
841
+ registrationId: string;
842
+ };
843
+ ticketLines: readonly [{
844
+ label: string;
845
+ quantity: number;
846
+ }, ...{
847
+ label: string;
848
+ quantity: number;
849
+ }[]];
850
+ payment: {
851
+ kind: "free";
852
+ balance: {
853
+ kind: "settled";
854
+ };
855
+ } | {
856
+ kind: "waived";
857
+ balance: {
858
+ kind: "settled";
859
+ };
860
+ } | {
861
+ kind: "pass";
862
+ passName: string | null;
863
+ passCreditsUsed: number | null;
864
+ balance: {
865
+ kind: "settled";
866
+ };
867
+ } | {
868
+ kind: "membership";
869
+ membershipName: string | null;
870
+ balance: {
871
+ kind: "settled";
872
+ };
873
+ } | {
874
+ kind: "manual_due";
875
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
876
+ balance: {
877
+ kind: "due";
878
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
879
+ dueAt: string | null;
880
+ };
881
+ } | {
882
+ balance: {
883
+ kind: "due";
884
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
885
+ dueAt: string | null;
886
+ };
887
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
888
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
889
+ kind: "managed_balance_due";
890
+ } | {
891
+ paymentMethod: "mixed" | "manual" | "stripe" | "store_credit";
892
+ balance: {
893
+ kind: "settled";
894
+ } | {
895
+ kind: "due";
896
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
897
+ dueAt: string | null;
898
+ };
899
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
900
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
901
+ kind: "monetary";
902
+ };
903
+ } | {
904
+ kind: "detailsUnavailable";
905
+ identity: {
906
+ submissionId: string;
907
+ seriesId: string;
908
+ attendanceMode: "in_person" | "online";
909
+ scope: "occurrence";
910
+ attendeeId: string;
911
+ occurrenceId: string;
912
+ } | {
913
+ submissionId: string;
914
+ seriesId: string;
915
+ attendanceMode: "in_person" | "online";
916
+ scope: "wholeSeries";
917
+ registrationId: string;
918
+ };
919
+ };
920
+ } | {
921
+ kind: "abandoned";
922
+ } | {
923
+ kind: "reconciliationRequired";
924
+ } | {
925
+ kind: "paymentProcessing";
926
+ recoverableUntil?: string | undefined;
927
+ } | {
928
+ kind: "paymentAvailable";
929
+ checkout: {
930
+ kind: "embedded";
931
+ sessionId: string;
932
+ clientSecret: string;
933
+ livemode: boolean;
934
+ expiresAt: string;
935
+ browser: {
936
+ kind: "connect";
937
+ publishableKey: string;
938
+ accountId: string;
939
+ } | {
940
+ kind: "direct";
941
+ publishableKey: string;
942
+ };
943
+ };
944
+ recoverableUntil?: string | undefined;
945
+ } | {
946
+ kind: "paymentRetryAvailable";
947
+ place: "released" | "held";
948
+ } | {
949
+ kind: "paymentCheckUnavailable";
950
+ recoverableUntil?: string | undefined;
951
+ } | {
952
+ kind: "paymentAssistanceRequired";
953
+ };
954
+ } | {
955
+ kind: "notFound";
956
+ } | {
957
+ kind: "reconciliationRequired";
958
+ } | null;
192
959
  error: Error | null;
193
960
  };
194
961
  state: import("./types").EventPaymentState;
@@ -209,11 +976,15 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
209
976
  handleUseCardInsteadOfPass: () => void;
210
977
  handleUsePassInstead: () => void;
211
978
  handleBookForSomeoneElse: () => void;
979
+ handleBookAnother: () => void;
212
980
  handleSubmit: (method: import("./PaymentSelectionStep").PaymentMethod, passId?: string | undefined, membershipId?: string | undefined, selection?: PaymentSelection | undefined) => ReturnType<import("./useEventRegistrationSubmit").EventRegistrationSubmit>;
213
981
  handleEventSelect: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
982
+ handleEventChoose: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
214
983
  handleRetry: () => void;
215
984
  };
216
985
  export declare function useEventRegistrationWizardWithDeps(options: UseEventRegistrationWizardOptions, deps: EventRegistrationWizardDeps): {
986
+ step: "success";
987
+ registrationResult: RegistrationResult;
217
988
  api: import("../../api").BoundBlockApiClient;
218
989
  nowIso: string;
219
990
  directPaymentOptions: readonly import("./eventPaymentOptions").EventRegistrationDirectPaymentOption[];
@@ -241,22 +1012,23 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
241
1012
  selectedEventId: string | null;
242
1013
  }> | null;
243
1014
  subject: import("./eventScope").EventRegistrationPageSurfaceSubject | null | undefined;
244
- events: PublicEvent[];
1015
+ events: readonly PublicEvent[];
245
1016
  maxTicketsNum: number;
246
1017
  scopedEvents: RegistrationEvent[];
247
1018
  preSelectedEvent: RegistrationEvent | null;
248
1019
  hasPreSelectedContext: boolean;
249
- step: RegistrationStep;
250
- setStep: (next: RegistrationStep) => void;
251
- admission: import("./registrationCompletion").RegistrationAdmission;
1020
+ presentation: RegistrationPresentation;
1021
+ flow: RegistrationFlowState;
1022
+ setStep: (next: Exclude<RegistrationStep, "success">) => void;
1023
+ admission: RegistrationAdmission;
252
1024
  ticketContinuation: import("./registrationCompletion").RegistrationTicketContinuation;
253
1025
  handleTicketsComplete: () => import("./event-registration.headless.contract").EventRegistrationFlowActionResult;
254
1026
  selectedEvent: RegistrationEvent | null;
255
- setSelectedEvent: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>>[0]) => void;
1027
+ setSelectedEvent: (value: Parameters<(value: StateUpdate<RegistrationEvent | null>) => void>[0]) => void;
256
1028
  ticketsCount: number;
257
- setTicketsCount: (value: Parameters<(nextTicketsCount: number) => void>[0]) => void;
1029
+ setTicketsCount: (value: Parameters<(ticketsCount: number) => void>[0]) => void;
258
1030
  selectedAttendanceMode: "in_person" | "online" | null;
259
- setSelectedAttendanceMode: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>>[0]) => void;
1031
+ setSelectedAttendanceMode: (value: Parameters<(value: StateUpdate<"in_person" | "online" | null>) => void>[0]) => void;
260
1032
  ticketSelections: Readonly<{
261
1033
  pricingOptionId: string | null;
262
1034
  quantity: number;
@@ -267,7 +1039,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
267
1039
  }>[];
268
1040
  setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
269
1041
  selectedSlidingAmountInput: string;
270
- setSelectedSlidingAmountInput: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<string>>>[0]) => void;
1042
+ setSelectedSlidingAmountInput: (value: Parameters<(value: StateUpdate<string>) => void>[0]) => void;
271
1043
  selectedSlidingAmount: number | null;
272
1044
  selectedEventSlidingScale: Readonly<{
273
1045
  minAmount: number;
@@ -292,14 +1064,13 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
292
1064
  mailingListSignup: Readonly<{
293
1065
  siteName: string;
294
1066
  }> | null;
295
- setFormData: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<FormData>>>[0]) => void;
1067
+ setFormData: (value: Parameters<(value: StateUpdate<FormData>) => void>[0]) => void;
296
1068
  errors: Partial<Record<keyof FormData, string>>;
297
1069
  guests: Guest[];
298
- setGuests: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<Guest[]>>>[0]) => void;
1070
+ setGuests: (value: Parameters<(value: StateUpdate<Guest[]>) => void>[0]) => void;
299
1071
  guestErrors: GuestErrors;
300
1072
  guestSectionShake: boolean;
301
1073
  handleGuestShakeEnd: () => void;
302
- registrationResult: RegistrationResult | null;
303
1074
  errorMessage: string;
304
1075
  errorAction: EventRegistrationErrorAction;
305
1076
  altchaSolution: string | null;
@@ -319,7 +1090,480 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
319
1090
  productName?: string;
320
1091
  }> | null;
321
1092
  isMembershipFastTrack: boolean;
322
- waitlistClaim: import("../../shared/useWaitlistClaim").UseWaitlistClaimResult;
1093
+ waitlistClaim: import("./registrationDraft.state").WaitlistInvitation | Readonly<{
1094
+ kind: "none";
1095
+ }>;
1096
+ eligibility: EligibilityData | null;
1097
+ registrationOptionsState: import("./hooks.state").EligibilityLookupState;
1098
+ eligibilityLoading: boolean;
1099
+ eligibilityError: string | null;
1100
+ existingRegistration: import("../../api").CustomerEventRegistration | null;
1101
+ existingRegistrationLoading: boolean;
1102
+ existingRegistrationState: import("./hooks.state").ExistingRegistrationLookupState;
1103
+ registrationState: Readonly<{
1104
+ kind: "none";
1105
+ }> | Readonly<{
1106
+ kind: "booked";
1107
+ }> | Readonly<{
1108
+ kind: "pending_payment";
1109
+ }> | Readonly<{
1110
+ kind: "waitlisted";
1111
+ }>;
1112
+ hasEligibility: boolean;
1113
+ hasMembershipEligibility: boolean;
1114
+ requireGuestDetails: boolean;
1115
+ discountCode: string;
1116
+ setDiscountCode: (value: string) => void;
1117
+ discountUiOpen: boolean;
1118
+ setDiscountUiOpen: (isOpen: boolean) => void;
1119
+ discountsAvailable: boolean;
1120
+ manualCodeEntryAllowed: boolean;
1121
+ autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;
1122
+ discountsAvailableLoading: boolean;
1123
+ discountContext: import("../../api").DiscountContext | null;
1124
+ shouldShowDiscountToggle: boolean;
1125
+ verification: {
1126
+ retry: () => void;
1127
+ retryReturn: () => void;
1128
+ status: "idle" | "polling" | "completed" | "failed" | "timeout";
1129
+ result: {
1130
+ kind: "checkout";
1131
+ subject: {
1132
+ scope: "occurrence";
1133
+ submissionId: string;
1134
+ attendeeId: string;
1135
+ } | {
1136
+ scope: "wholeSeries";
1137
+ submissionId: string;
1138
+ };
1139
+ outcome: {
1140
+ kind: "resolved";
1141
+ outcome: {
1142
+ kind: "detailsAvailable";
1143
+ identity: {
1144
+ submissionId: string;
1145
+ seriesId: string;
1146
+ attendanceMode: "in_person" | "online";
1147
+ scope: "occurrence";
1148
+ attendeeId: string;
1149
+ occurrenceId: string;
1150
+ } | {
1151
+ submissionId: string;
1152
+ seriesId: string;
1153
+ attendanceMode: "in_person" | "online";
1154
+ scope: "wholeSeries";
1155
+ registrationId: string;
1156
+ };
1157
+ ticketLines: readonly [{
1158
+ label: string;
1159
+ quantity: number;
1160
+ }, ...{
1161
+ label: string;
1162
+ quantity: number;
1163
+ }[]];
1164
+ payment: {
1165
+ kind: "free";
1166
+ balance: {
1167
+ kind: "settled";
1168
+ };
1169
+ } | {
1170
+ kind: "waived";
1171
+ balance: {
1172
+ kind: "settled";
1173
+ };
1174
+ } | {
1175
+ kind: "pass";
1176
+ passName: string | null;
1177
+ passCreditsUsed: number | null;
1178
+ balance: {
1179
+ kind: "settled";
1180
+ };
1181
+ } | {
1182
+ kind: "membership";
1183
+ membershipName: string | null;
1184
+ balance: {
1185
+ kind: "settled";
1186
+ };
1187
+ } | {
1188
+ kind: "manual_due";
1189
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1190
+ balance: {
1191
+ kind: "due";
1192
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1193
+ dueAt: string | null;
1194
+ };
1195
+ } | {
1196
+ balance: {
1197
+ kind: "due";
1198
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1199
+ dueAt: string | null;
1200
+ };
1201
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
1202
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1203
+ kind: "managed_balance_due";
1204
+ } | {
1205
+ paymentMethod: "mixed" | "manual" | "stripe" | "store_credit";
1206
+ balance: {
1207
+ kind: "settled";
1208
+ } | {
1209
+ kind: "due";
1210
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1211
+ dueAt: string | null;
1212
+ };
1213
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
1214
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1215
+ kind: "monetary";
1216
+ };
1217
+ } | {
1218
+ kind: "detailsUnavailable";
1219
+ identity: {
1220
+ submissionId: string;
1221
+ seriesId: string;
1222
+ attendanceMode: "in_person" | "online";
1223
+ scope: "occurrence";
1224
+ attendeeId: string;
1225
+ occurrenceId: string;
1226
+ } | {
1227
+ submissionId: string;
1228
+ seriesId: string;
1229
+ attendanceMode: "in_person" | "online";
1230
+ scope: "wholeSeries";
1231
+ registrationId: string;
1232
+ };
1233
+ };
1234
+ } | {
1235
+ kind: "abandoned";
1236
+ } | {
1237
+ kind: "reconciliationRequired";
1238
+ } | {
1239
+ kind: "paymentProcessing";
1240
+ recoverableUntil?: string | undefined;
1241
+ } | {
1242
+ kind: "paymentAvailable";
1243
+ checkout: {
1244
+ kind: "embedded";
1245
+ sessionId: string;
1246
+ clientSecret: string;
1247
+ livemode: boolean;
1248
+ expiresAt: string;
1249
+ browser: {
1250
+ kind: "connect";
1251
+ publishableKey: string;
1252
+ accountId: string;
1253
+ } | {
1254
+ kind: "direct";
1255
+ publishableKey: string;
1256
+ };
1257
+ };
1258
+ recoverableUntil?: string | undefined;
1259
+ } | {
1260
+ kind: "paymentRetryAvailable";
1261
+ place: "released" | "held";
1262
+ } | {
1263
+ kind: "paymentCheckUnavailable";
1264
+ recoverableUntil?: string | undefined;
1265
+ } | {
1266
+ kind: "paymentAssistanceRequired";
1267
+ };
1268
+ } | {
1269
+ kind: "notFound";
1270
+ } | {
1271
+ kind: "reconciliationRequired";
1272
+ } | null;
1273
+ error: Error | null;
1274
+ };
1275
+ paymentController: {
1276
+ backToBooking: () => Promise<void>;
1277
+ continuePayment: () => void;
1278
+ returnToPayment: () => void;
1279
+ returnToBooking: () => void;
1280
+ retryingHeldPlace: boolean;
1281
+ check: () => void;
1282
+ retryPaymentLoad: () => void;
1283
+ verification: {
1284
+ retry: () => void;
1285
+ retryReturn: () => void;
1286
+ status: "idle" | "polling" | "completed" | "failed" | "timeout";
1287
+ result: {
1288
+ kind: "checkout";
1289
+ subject: {
1290
+ scope: "occurrence";
1291
+ submissionId: string;
1292
+ attendeeId: string;
1293
+ } | {
1294
+ scope: "wholeSeries";
1295
+ submissionId: string;
1296
+ };
1297
+ outcome: {
1298
+ kind: "resolved";
1299
+ outcome: {
1300
+ kind: "detailsAvailable";
1301
+ identity: {
1302
+ submissionId: string;
1303
+ seriesId: string;
1304
+ attendanceMode: "in_person" | "online";
1305
+ scope: "occurrence";
1306
+ attendeeId: string;
1307
+ occurrenceId: string;
1308
+ } | {
1309
+ submissionId: string;
1310
+ seriesId: string;
1311
+ attendanceMode: "in_person" | "online";
1312
+ scope: "wholeSeries";
1313
+ registrationId: string;
1314
+ };
1315
+ ticketLines: readonly [{
1316
+ label: string;
1317
+ quantity: number;
1318
+ }, ...{
1319
+ label: string;
1320
+ quantity: number;
1321
+ }[]];
1322
+ payment: {
1323
+ kind: "free";
1324
+ balance: {
1325
+ kind: "settled";
1326
+ };
1327
+ } | {
1328
+ kind: "waived";
1329
+ balance: {
1330
+ kind: "settled";
1331
+ };
1332
+ } | {
1333
+ kind: "pass";
1334
+ passName: string | null;
1335
+ passCreditsUsed: number | null;
1336
+ balance: {
1337
+ kind: "settled";
1338
+ };
1339
+ } | {
1340
+ kind: "membership";
1341
+ membershipName: string | null;
1342
+ balance: {
1343
+ kind: "settled";
1344
+ };
1345
+ } | {
1346
+ kind: "manual_due";
1347
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1348
+ balance: {
1349
+ kind: "due";
1350
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1351
+ dueAt: string | null;
1352
+ };
1353
+ } | {
1354
+ balance: {
1355
+ kind: "due";
1356
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1357
+ dueAt: string | null;
1358
+ };
1359
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
1360
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1361
+ kind: "managed_balance_due";
1362
+ } | {
1363
+ paymentMethod: "mixed" | "manual" | "stripe" | "store_credit";
1364
+ balance: {
1365
+ kind: "settled";
1366
+ } | {
1367
+ kind: "due";
1368
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1369
+ dueAt: string | null;
1370
+ };
1371
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
1372
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1373
+ kind: "monetary";
1374
+ };
1375
+ } | {
1376
+ kind: "detailsUnavailable";
1377
+ identity: {
1378
+ submissionId: string;
1379
+ seriesId: string;
1380
+ attendanceMode: "in_person" | "online";
1381
+ scope: "occurrence";
1382
+ attendeeId: string;
1383
+ occurrenceId: string;
1384
+ } | {
1385
+ submissionId: string;
1386
+ seriesId: string;
1387
+ attendanceMode: "in_person" | "online";
1388
+ scope: "wholeSeries";
1389
+ registrationId: string;
1390
+ };
1391
+ };
1392
+ } | {
1393
+ kind: "abandoned";
1394
+ } | {
1395
+ kind: "reconciliationRequired";
1396
+ } | {
1397
+ kind: "paymentProcessing";
1398
+ recoverableUntil?: string | undefined;
1399
+ } | {
1400
+ kind: "paymentAvailable";
1401
+ checkout: {
1402
+ kind: "embedded";
1403
+ sessionId: string;
1404
+ clientSecret: string;
1405
+ livemode: boolean;
1406
+ expiresAt: string;
1407
+ browser: {
1408
+ kind: "connect";
1409
+ publishableKey: string;
1410
+ accountId: string;
1411
+ } | {
1412
+ kind: "direct";
1413
+ publishableKey: string;
1414
+ };
1415
+ };
1416
+ recoverableUntil?: string | undefined;
1417
+ } | {
1418
+ kind: "paymentRetryAvailable";
1419
+ place: "released" | "held";
1420
+ } | {
1421
+ kind: "paymentCheckUnavailable";
1422
+ recoverableUntil?: string | undefined;
1423
+ } | {
1424
+ kind: "paymentAssistanceRequired";
1425
+ };
1426
+ } | {
1427
+ kind: "notFound";
1428
+ } | {
1429
+ kind: "reconciliationRequired";
1430
+ } | null;
1431
+ error: Error | null;
1432
+ };
1433
+ state: import("./types").EventPaymentState;
1434
+ recovery: import("./types").PaymentStatusRecoveryState | null;
1435
+ showRecovery: (next: import("./types").PaymentStatusRecoveryState | null) => void;
1436
+ restoreMailingListNote: (value: import("./types").PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
1437
+ openPayment: (checkout: import("../../api/types").EventEmbeddedCheckout, subject: import("../../api/types").EventRegistrationPaymentSubject, mailingListSignupNote?: import("./types").PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
1438
+ verify: (request: import("../../api").EventCheckoutReturnRequest, resumePayment?: boolean) => void;
1439
+ };
1440
+ paymentStatusRecovery: import("./types").PaymentStatusRecoveryState | null;
1441
+ handleCheckPaymentStatus: () => void;
1442
+ handleContinueExistingPayment: () => void;
1443
+ handleReturnToPayment: () => void;
1444
+ handleReturnToBooking: () => void;
1445
+ checkingNextStep: boolean;
1446
+ handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
1447
+ handlePaymentSelect: () => Promise<void>;
1448
+ handleUseCardInsteadOfPass: () => void;
1449
+ handleUsePassInstead: () => void;
1450
+ handleBookForSomeoneElse: () => void;
1451
+ handleBookAnother: () => void;
1452
+ handleSubmit: (method: import("./PaymentSelectionStep").PaymentMethod, passId?: string | undefined, membershipId?: string | undefined, selection?: PaymentSelection | undefined) => ReturnType<import("./useEventRegistrationSubmit").EventRegistrationSubmit>;
1453
+ handleEventSelect: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
1454
+ handleEventChoose: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
1455
+ handleRetry: () => void;
1456
+ } | {
1457
+ step: "error" | "submitting" | "payment" | "select-event" | "select-tickets" | "enter-details" | "select-payment" | "verifying-payment" | "verifying-timeout" | "payment-status" | "payment-failed";
1458
+ registrationResult: null;
1459
+ api: import("../../api").BoundBlockApiClient;
1460
+ nowIso: string;
1461
+ directPaymentOptions: readonly import("./eventPaymentOptions").EventRegistrationDirectPaymentOption[];
1462
+ paymentDecision: {
1463
+ selection: PaymentSelection;
1464
+ directPaymentSelectionState: import("./eventPaymentOptions").EventRegistrationDirectPaymentSelectionState;
1465
+ selectedDirectOption: import("./eventPaymentOptions").EventRegistrationDirectPaymentOption | null;
1466
+ preview: import("./siteCreditPreview").EventRegistrationSiteCreditPreview;
1467
+ stepState: import("./types").PaymentStepState;
1468
+ directPaymentOptions: readonly import("./eventPaymentOptions").EventRegistrationDirectPaymentOption[];
1469
+ canShowDirectPaymentOptions: boolean;
1470
+ };
1471
+ anchorId: string;
1472
+ occurrenceContext: {
1473
+ id: string;
1474
+ seriesId: string;
1475
+ startsAt: string;
1476
+ endsAt: string;
1477
+ timeZone: string;
1478
+ capacityOverride?: number | null | undefined;
1479
+ overrides?: Record<string, unknown> | null | undefined;
1480
+ } | null | undefined;
1481
+ registrationTarget: Readonly<{
1482
+ subject: import("./types").RegistrationSubject;
1483
+ selectedEventId: string | null;
1484
+ }> | null;
1485
+ subject: import("./eventScope").EventRegistrationPageSurfaceSubject | null | undefined;
1486
+ events: readonly PublicEvent[];
1487
+ maxTicketsNum: number;
1488
+ scopedEvents: RegistrationEvent[];
1489
+ preSelectedEvent: RegistrationEvent | null;
1490
+ hasPreSelectedContext: boolean;
1491
+ presentation: RegistrationPresentation;
1492
+ flow: RegistrationFlowState;
1493
+ setStep: (next: Exclude<RegistrationStep, "success">) => void;
1494
+ admission: RegistrationAdmission;
1495
+ ticketContinuation: import("./registrationCompletion").RegistrationTicketContinuation;
1496
+ handleTicketsComplete: () => import("./event-registration.headless.contract").EventRegistrationFlowActionResult;
1497
+ selectedEvent: RegistrationEvent | null;
1498
+ setSelectedEvent: (value: Parameters<(value: StateUpdate<RegistrationEvent | null>) => void>[0]) => void;
1499
+ ticketsCount: number;
1500
+ setTicketsCount: (value: Parameters<(ticketsCount: number) => void>[0]) => void;
1501
+ selectedAttendanceMode: "in_person" | "online" | null;
1502
+ setSelectedAttendanceMode: (value: Parameters<(value: StateUpdate<"in_person" | "online" | null>) => void>[0]) => void;
1503
+ ticketSelections: Readonly<{
1504
+ pricingOptionId: string | null;
1505
+ quantity: number;
1506
+ }>[];
1507
+ selectedTicketLines: Readonly<{
1508
+ pricingOptionId: string | null;
1509
+ quantity: number;
1510
+ }>[];
1511
+ setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
1512
+ selectedSlidingAmountInput: string;
1513
+ setSelectedSlidingAmountInput: (value: Parameters<(value: StateUpdate<string>) => void>[0]) => void;
1514
+ selectedSlidingAmount: number | null;
1515
+ selectedEventSlidingScale: Readonly<{
1516
+ minAmount: number;
1517
+ maxAmount: number;
1518
+ suggestedAmount: number | null;
1519
+ }> | null;
1520
+ slidingScaleSelectionMessage: string | null;
1521
+ selectedTicketType: import("../../..").EventRegistrationPricingOption | null;
1522
+ ticketSelectionSummaryLines: readonly {
1523
+ pricingOptionId: string | null;
1524
+ label: string;
1525
+ quantity: number;
1526
+ unitPriceCents: number;
1527
+ subtotalCents: number;
1528
+ }[];
1529
+ ticketSelectionSubtotalCents: number | null;
1530
+ visibleTicketTypes: import("../../..").EventRegistrationPricingOption[];
1531
+ ticketTypeSelectionRequired: boolean;
1532
+ hasValidTicketSelection: boolean;
1533
+ eventRequiresPayment: boolean;
1534
+ formData: FormData;
1535
+ mailingListSignup: Readonly<{
1536
+ siteName: string;
1537
+ }> | null;
1538
+ setFormData: (value: Parameters<(value: StateUpdate<FormData>) => void>[0]) => void;
1539
+ errors: Partial<Record<keyof FormData, string>>;
1540
+ guests: Guest[];
1541
+ setGuests: (value: Parameters<(value: StateUpdate<Guest[]>) => void>[0]) => void;
1542
+ guestErrors: GuestErrors;
1543
+ guestSectionShake: boolean;
1544
+ handleGuestShakeEnd: () => void;
1545
+ errorMessage: string;
1546
+ errorAction: EventRegistrationErrorAction;
1547
+ altchaSolution: string | null;
1548
+ setAltchaSolution: import("react").Dispatch<import("react").SetStateAction<string | null>>;
1549
+ portalAuthState: import("./hooks").PortalAuthState;
1550
+ portalProfile: import("./hooks").PortalProfile | null;
1551
+ portalCreditState: import("./hooks").PortalCreditState;
1552
+ showMagicLinkModal: boolean;
1553
+ setShowMagicLinkModal: import("react").Dispatch<import("react").SetStateAction<boolean>>;
1554
+ handleLogout: () => void;
1555
+ paymentStepState: import("./types").PaymentStepState;
1556
+ handlePaymentSelectionChange: (value: Parameters<(selection: PaymentSelection) => void>[0]) => void;
1557
+ paymentSelection: PaymentSelection;
1558
+ declinedPass: Readonly<{
1559
+ method: "pass";
1560
+ passId: string;
1561
+ productName?: string;
1562
+ }> | null;
1563
+ isMembershipFastTrack: boolean;
1564
+ waitlistClaim: import("./registrationDraft.state").WaitlistInvitation | Readonly<{
1565
+ kind: "none";
1566
+ }>;
323
1567
  eligibility: EligibilityData | null;
324
1568
  registrationOptionsState: import("./hooks.state").EligibilityLookupState;
325
1569
  eligibilityLoading: boolean;
@@ -353,7 +1597,150 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
353
1597
  retry: () => void;
354
1598
  retryReturn: () => void;
355
1599
  status: "idle" | "polling" | "completed" | "failed" | "timeout";
356
- result: import("../../api").EventCheckoutReturnResponse | null;
1600
+ result: {
1601
+ kind: "checkout";
1602
+ subject: {
1603
+ scope: "occurrence";
1604
+ submissionId: string;
1605
+ attendeeId: string;
1606
+ } | {
1607
+ scope: "wholeSeries";
1608
+ submissionId: string;
1609
+ };
1610
+ outcome: {
1611
+ kind: "resolved";
1612
+ outcome: {
1613
+ kind: "detailsAvailable";
1614
+ identity: {
1615
+ submissionId: string;
1616
+ seriesId: string;
1617
+ attendanceMode: "in_person" | "online";
1618
+ scope: "occurrence";
1619
+ attendeeId: string;
1620
+ occurrenceId: string;
1621
+ } | {
1622
+ submissionId: string;
1623
+ seriesId: string;
1624
+ attendanceMode: "in_person" | "online";
1625
+ scope: "wholeSeries";
1626
+ registrationId: string;
1627
+ };
1628
+ ticketLines: readonly [{
1629
+ label: string;
1630
+ quantity: number;
1631
+ }, ...{
1632
+ label: string;
1633
+ quantity: number;
1634
+ }[]];
1635
+ payment: {
1636
+ kind: "free";
1637
+ balance: {
1638
+ kind: "settled";
1639
+ };
1640
+ } | {
1641
+ kind: "waived";
1642
+ balance: {
1643
+ kind: "settled";
1644
+ };
1645
+ } | {
1646
+ kind: "pass";
1647
+ passName: string | null;
1648
+ passCreditsUsed: number | null;
1649
+ balance: {
1650
+ kind: "settled";
1651
+ };
1652
+ } | {
1653
+ kind: "membership";
1654
+ membershipName: string | null;
1655
+ balance: {
1656
+ kind: "settled";
1657
+ };
1658
+ } | {
1659
+ kind: "manual_due";
1660
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1661
+ balance: {
1662
+ kind: "due";
1663
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1664
+ dueAt: string | null;
1665
+ };
1666
+ } | {
1667
+ balance: {
1668
+ kind: "due";
1669
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1670
+ dueAt: string | null;
1671
+ };
1672
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
1673
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1674
+ kind: "managed_balance_due";
1675
+ } | {
1676
+ paymentMethod: "mixed" | "manual" | "stripe" | "store_credit";
1677
+ balance: {
1678
+ kind: "settled";
1679
+ } | {
1680
+ kind: "due";
1681
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1682
+ dueAt: string | null;
1683
+ };
1684
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
1685
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1686
+ kind: "monetary";
1687
+ };
1688
+ } | {
1689
+ kind: "detailsUnavailable";
1690
+ identity: {
1691
+ submissionId: string;
1692
+ seriesId: string;
1693
+ attendanceMode: "in_person" | "online";
1694
+ scope: "occurrence";
1695
+ attendeeId: string;
1696
+ occurrenceId: string;
1697
+ } | {
1698
+ submissionId: string;
1699
+ seriesId: string;
1700
+ attendanceMode: "in_person" | "online";
1701
+ scope: "wholeSeries";
1702
+ registrationId: string;
1703
+ };
1704
+ };
1705
+ } | {
1706
+ kind: "abandoned";
1707
+ } | {
1708
+ kind: "reconciliationRequired";
1709
+ } | {
1710
+ kind: "paymentProcessing";
1711
+ recoverableUntil?: string | undefined;
1712
+ } | {
1713
+ kind: "paymentAvailable";
1714
+ checkout: {
1715
+ kind: "embedded";
1716
+ sessionId: string;
1717
+ clientSecret: string;
1718
+ livemode: boolean;
1719
+ expiresAt: string;
1720
+ browser: {
1721
+ kind: "connect";
1722
+ publishableKey: string;
1723
+ accountId: string;
1724
+ } | {
1725
+ kind: "direct";
1726
+ publishableKey: string;
1727
+ };
1728
+ };
1729
+ recoverableUntil?: string | undefined;
1730
+ } | {
1731
+ kind: "paymentRetryAvailable";
1732
+ place: "released" | "held";
1733
+ } | {
1734
+ kind: "paymentCheckUnavailable";
1735
+ recoverableUntil?: string | undefined;
1736
+ } | {
1737
+ kind: "paymentAssistanceRequired";
1738
+ };
1739
+ } | {
1740
+ kind: "notFound";
1741
+ } | {
1742
+ kind: "reconciliationRequired";
1743
+ } | null;
357
1744
  error: Error | null;
358
1745
  };
359
1746
  paymentController: {
@@ -368,7 +1755,150 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
368
1755
  retry: () => void;
369
1756
  retryReturn: () => void;
370
1757
  status: "idle" | "polling" | "completed" | "failed" | "timeout";
371
- result: import("../../api").EventCheckoutReturnResponse | null;
1758
+ result: {
1759
+ kind: "checkout";
1760
+ subject: {
1761
+ scope: "occurrence";
1762
+ submissionId: string;
1763
+ attendeeId: string;
1764
+ } | {
1765
+ scope: "wholeSeries";
1766
+ submissionId: string;
1767
+ };
1768
+ outcome: {
1769
+ kind: "resolved";
1770
+ outcome: {
1771
+ kind: "detailsAvailable";
1772
+ identity: {
1773
+ submissionId: string;
1774
+ seriesId: string;
1775
+ attendanceMode: "in_person" | "online";
1776
+ scope: "occurrence";
1777
+ attendeeId: string;
1778
+ occurrenceId: string;
1779
+ } | {
1780
+ submissionId: string;
1781
+ seriesId: string;
1782
+ attendanceMode: "in_person" | "online";
1783
+ scope: "wholeSeries";
1784
+ registrationId: string;
1785
+ };
1786
+ ticketLines: readonly [{
1787
+ label: string;
1788
+ quantity: number;
1789
+ }, ...{
1790
+ label: string;
1791
+ quantity: number;
1792
+ }[]];
1793
+ payment: {
1794
+ kind: "free";
1795
+ balance: {
1796
+ kind: "settled";
1797
+ };
1798
+ } | {
1799
+ kind: "waived";
1800
+ balance: {
1801
+ kind: "settled";
1802
+ };
1803
+ } | {
1804
+ kind: "pass";
1805
+ passName: string | null;
1806
+ passCreditsUsed: number | null;
1807
+ balance: {
1808
+ kind: "settled";
1809
+ };
1810
+ } | {
1811
+ kind: "membership";
1812
+ membershipName: string | null;
1813
+ balance: {
1814
+ kind: "settled";
1815
+ };
1816
+ } | {
1817
+ kind: "manual_due";
1818
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1819
+ balance: {
1820
+ kind: "due";
1821
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1822
+ dueAt: string | null;
1823
+ };
1824
+ } | {
1825
+ balance: {
1826
+ kind: "due";
1827
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1828
+ dueAt: string | null;
1829
+ };
1830
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
1831
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1832
+ kind: "managed_balance_due";
1833
+ } | {
1834
+ paymentMethod: "mixed" | "manual" | "stripe" | "store_credit";
1835
+ balance: {
1836
+ kind: "settled";
1837
+ } | {
1838
+ kind: "due";
1839
+ amountCents: import("../../../../../../core/src/index").PositiveCents;
1840
+ dueAt: string | null;
1841
+ };
1842
+ amountPaidCents: import("../../../../../../core/src/index").NonNegativeCents;
1843
+ currency: import("../../../../../../commerce/src/purchase/index").CurrencyCode;
1844
+ kind: "monetary";
1845
+ };
1846
+ } | {
1847
+ kind: "detailsUnavailable";
1848
+ identity: {
1849
+ submissionId: string;
1850
+ seriesId: string;
1851
+ attendanceMode: "in_person" | "online";
1852
+ scope: "occurrence";
1853
+ attendeeId: string;
1854
+ occurrenceId: string;
1855
+ } | {
1856
+ submissionId: string;
1857
+ seriesId: string;
1858
+ attendanceMode: "in_person" | "online";
1859
+ scope: "wholeSeries";
1860
+ registrationId: string;
1861
+ };
1862
+ };
1863
+ } | {
1864
+ kind: "abandoned";
1865
+ } | {
1866
+ kind: "reconciliationRequired";
1867
+ } | {
1868
+ kind: "paymentProcessing";
1869
+ recoverableUntil?: string | undefined;
1870
+ } | {
1871
+ kind: "paymentAvailable";
1872
+ checkout: {
1873
+ kind: "embedded";
1874
+ sessionId: string;
1875
+ clientSecret: string;
1876
+ livemode: boolean;
1877
+ expiresAt: string;
1878
+ browser: {
1879
+ kind: "connect";
1880
+ publishableKey: string;
1881
+ accountId: string;
1882
+ } | {
1883
+ kind: "direct";
1884
+ publishableKey: string;
1885
+ };
1886
+ };
1887
+ recoverableUntil?: string | undefined;
1888
+ } | {
1889
+ kind: "paymentRetryAvailable";
1890
+ place: "released" | "held";
1891
+ } | {
1892
+ kind: "paymentCheckUnavailable";
1893
+ recoverableUntil?: string | undefined;
1894
+ } | {
1895
+ kind: "paymentAssistanceRequired";
1896
+ };
1897
+ } | {
1898
+ kind: "notFound";
1899
+ } | {
1900
+ kind: "reconciliationRequired";
1901
+ } | null;
372
1902
  error: Error | null;
373
1903
  };
374
1904
  state: import("./types").EventPaymentState;
@@ -389,8 +1919,10 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
389
1919
  handleUseCardInsteadOfPass: () => void;
390
1920
  handleUsePassInstead: () => void;
391
1921
  handleBookForSomeoneElse: () => void;
1922
+ handleBookAnother: () => void;
392
1923
  handleSubmit: (method: import("./PaymentSelectionStep").PaymentMethod, passId?: string | undefined, membershipId?: string | undefined, selection?: PaymentSelection | undefined) => ReturnType<import("./useEventRegistrationSubmit").EventRegistrationSubmit>;
393
1924
  handleEventSelect: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
1925
+ handleEventChoose: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
394
1926
  handleRetry: () => void;
395
1927
  };
396
1928
  export type UseEventRegistrationWizardResult = ReturnType<typeof useEventRegistrationWizard>;