@voyantjs/storefront-sdk 0.31.3

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.
@@ -0,0 +1,1280 @@
1
+ import { type VoyantStorefrontClientOptions } from "./client.js";
2
+ import { canRunBookingEngineAction, createBookingEngineSnapshot, deriveBookingEngineState } from "./engine-state.js";
3
+ import { bootstrapCheckoutCollection, confirmPublicBookingSession, createPublicBookingSession, expirePublicBookingSession, getPublicBookingOverview, getStorefrontOfferBySlug, getStorefrontProductAvailability, initiateCheckoutCollection, listStorefrontProductDepartures, listStorefrontProductExtensions, listStorefrontProductOffers, previewCheckoutCollection, previewStorefrontDeparturePrice, repricePublicBookingSession, updatePublicBookingSession, updatePublicBookingSessionState } from "./operations.js";
4
+ export type { StorefrontQueryParamValue, StorefrontRequestOptions, VoyantStorefrontClientOptions, VoyantStorefrontFetcher, } from "./client.js";
5
+ export { defaultStorefrontFetcher, storefrontFetchWithValidation, VoyantStorefrontApiError, withStorefrontQueryParams, } from "./client.js";
6
+ export type { BookingEngineAction, BookingEngineSnapshot, BookingEngineState, } from "./engine-state.js";
7
+ export { bookingEngineActions, bookingEngineStates, canRunBookingEngineAction, createBookingEngineSnapshot, deriveBookingEngineState, getAllowedBookingEngineActions, } from "./engine-state.js";
8
+ export * from "./operations.js";
9
+ export * from "./schemas.js";
10
+ export declare function createVoyantStorefrontClient(options: VoyantStorefrontClientOptions): {
11
+ storefront: {
12
+ getSettings: () => Promise<{
13
+ branding: {
14
+ logoUrl: string | null;
15
+ supportedLanguages: string[];
16
+ };
17
+ support: {
18
+ email: string | null;
19
+ phone: string | null;
20
+ };
21
+ legal: {
22
+ termsUrl: string | null;
23
+ privacyUrl: string | null;
24
+ defaultContractTemplateId: string | null;
25
+ };
26
+ forms: {
27
+ billing: {
28
+ fields: {
29
+ key: string;
30
+ label: string;
31
+ type: "email" | "date" | "text" | "tel" | "textarea" | "select" | "checkbox" | "country";
32
+ required: boolean;
33
+ placeholder: string | null;
34
+ description: string | null;
35
+ autocomplete: string | null;
36
+ options: {
37
+ value: string;
38
+ label: string;
39
+ }[];
40
+ }[];
41
+ };
42
+ travelers: {
43
+ fields: {
44
+ key: string;
45
+ label: string;
46
+ type: "email" | "date" | "text" | "tel" | "textarea" | "select" | "checkbox" | "country";
47
+ required: boolean;
48
+ placeholder: string | null;
49
+ description: string | null;
50
+ autocomplete: string | null;
51
+ options: {
52
+ value: string;
53
+ label: string;
54
+ }[];
55
+ }[];
56
+ };
57
+ };
58
+ payment: {
59
+ defaultMethod: "card" | "bank_transfer" | "invoice" | "voucher" | "cash" | null;
60
+ methods: {
61
+ code: "card" | "bank_transfer" | "invoice" | "voucher" | "cash";
62
+ label: string;
63
+ description: string | null;
64
+ enabled: boolean;
65
+ }[];
66
+ };
67
+ }>;
68
+ getDeparture: (departureId: string) => Promise<{
69
+ id: string;
70
+ productId: string;
71
+ itineraryId: string;
72
+ optionId: string | null;
73
+ dateLocal: string | null;
74
+ startAt: string | null;
75
+ endAt: string | null;
76
+ timezone: string;
77
+ startTime: {
78
+ id: string;
79
+ label: string | null;
80
+ startTimeLocal: string;
81
+ durationMinutes: number | null;
82
+ } | null;
83
+ meetingPoint: string | null;
84
+ capacity: number | null;
85
+ remaining: number | null;
86
+ departureStatus: "cancelled" | "open" | "closed" | "sold_out" | "on_request";
87
+ nights: number | null;
88
+ days: number | null;
89
+ ratePlans: {
90
+ id: string;
91
+ active: boolean;
92
+ name: string;
93
+ pricingModel: string;
94
+ basePrices: {
95
+ amount: number;
96
+ currencyCode: string;
97
+ }[];
98
+ roomPrices: {
99
+ amount: number;
100
+ currencyCode: string;
101
+ roomType: {
102
+ id: string;
103
+ name: string;
104
+ occupancy: {
105
+ adultsMin: number;
106
+ adultsMax: number;
107
+ childrenMax: number;
108
+ };
109
+ };
110
+ }[];
111
+ }[];
112
+ }>;
113
+ listProductDepartures: (productId: string, query?: Parameters<typeof listStorefrontProductDepartures>[2]) => Promise<{
114
+ data: {
115
+ id: string;
116
+ productId: string;
117
+ itineraryId: string;
118
+ optionId: string | null;
119
+ dateLocal: string | null;
120
+ startAt: string | null;
121
+ endAt: string | null;
122
+ timezone: string;
123
+ startTime: {
124
+ id: string;
125
+ label: string | null;
126
+ startTimeLocal: string;
127
+ durationMinutes: number | null;
128
+ } | null;
129
+ meetingPoint: string | null;
130
+ capacity: number | null;
131
+ remaining: number | null;
132
+ departureStatus: "cancelled" | "open" | "closed" | "sold_out" | "on_request";
133
+ nights: number | null;
134
+ days: number | null;
135
+ ratePlans: {
136
+ id: string;
137
+ active: boolean;
138
+ name: string;
139
+ pricingModel: string;
140
+ basePrices: {
141
+ amount: number;
142
+ currencyCode: string;
143
+ }[];
144
+ roomPrices: {
145
+ amount: number;
146
+ currencyCode: string;
147
+ roomType: {
148
+ id: string;
149
+ name: string;
150
+ occupancy: {
151
+ adultsMin: number;
152
+ adultsMax: number;
153
+ childrenMax: number;
154
+ };
155
+ };
156
+ }[];
157
+ }[];
158
+ }[];
159
+ total: number;
160
+ limit: number;
161
+ offset: number;
162
+ }>;
163
+ getProductAvailability: (productId: string, query?: Parameters<typeof getStorefrontProductAvailability>[2]) => Promise<{
164
+ productId: string;
165
+ availabilityState: "cancelled" | "closed" | "sold_out" | "on_request" | "available" | "past_cutoff" | "too_early" | "unavailable";
166
+ counts: {
167
+ total: number;
168
+ open: number;
169
+ closed: number;
170
+ soldOut: number;
171
+ cancelled: number;
172
+ onRequest: number;
173
+ pastCutoff: number;
174
+ tooEarly: number;
175
+ available: number;
176
+ };
177
+ departures: {
178
+ id: string;
179
+ productId: string;
180
+ optionId: string | null;
181
+ dateLocal: string | null;
182
+ startAt: string | null;
183
+ endAt: string | null;
184
+ timezone: string;
185
+ status: "cancelled" | "open" | "closed" | "sold_out" | "on_request";
186
+ availabilityState: "cancelled" | "closed" | "sold_out" | "on_request" | "available" | "past_cutoff" | "too_early" | "unavailable";
187
+ capacity: number | null;
188
+ remaining: number | null;
189
+ pastCutoff: boolean;
190
+ tooEarly: boolean;
191
+ }[];
192
+ total: number;
193
+ limit: number;
194
+ offset: number;
195
+ }>;
196
+ previewDeparturePrice: (departureId: string, input: Parameters<typeof previewStorefrontDeparturePrice>[2], requestOptions?: Parameters<typeof previewStorefrontDeparturePrice>[3]) => Promise<{
197
+ departureId: string;
198
+ productId: string;
199
+ optionId: string | null;
200
+ currencyCode: string;
201
+ basePrice: number;
202
+ taxAmount: number;
203
+ total: number;
204
+ notes: string | null;
205
+ lineItems: {
206
+ name: string;
207
+ total: number;
208
+ quantity: number;
209
+ unitPrice: number;
210
+ }[];
211
+ }>;
212
+ listProductExtensions: (productId: string, query?: Parameters<typeof listStorefrontProductExtensions>[2]) => Promise<{
213
+ extensions: {
214
+ id: string;
215
+ name: string;
216
+ label: string;
217
+ required: boolean;
218
+ selectable: boolean;
219
+ hasOptions: boolean;
220
+ refProductId: string | null;
221
+ thumb: string | null;
222
+ pricePerPerson: number | null;
223
+ currencyCode: string;
224
+ pricingMode: "on_request" | "included" | "per_person" | "per_booking" | "quantity_based" | "free";
225
+ defaultQuantity: number | null;
226
+ minQuantity: number | null;
227
+ maxQuantity: number | null;
228
+ }[];
229
+ items: {
230
+ id: string;
231
+ name: string;
232
+ label: string;
233
+ required: boolean;
234
+ selectable: boolean;
235
+ hasOptions: boolean;
236
+ refProductId: string | null;
237
+ thumb: string | null;
238
+ pricePerPerson: number | null;
239
+ currencyCode: string;
240
+ pricingMode: "on_request" | "included" | "per_person" | "per_booking" | "quantity_based" | "free";
241
+ defaultQuantity: number | null;
242
+ minQuantity: number | null;
243
+ maxQuantity: number | null;
244
+ }[];
245
+ details: Record<string, {
246
+ description: string | null;
247
+ media: {
248
+ url: string;
249
+ alt: string | null;
250
+ }[];
251
+ }>;
252
+ currencyCode: string;
253
+ }>;
254
+ getDepartureItinerary: (productId: string, departureId: string) => Promise<{
255
+ id: string;
256
+ itineraryId: string;
257
+ days: {
258
+ id: string;
259
+ title: string;
260
+ description: string | null;
261
+ thumbnail: {
262
+ url: string;
263
+ } | null;
264
+ segments: {
265
+ id: string;
266
+ title: string;
267
+ description: string | null;
268
+ }[];
269
+ }[];
270
+ }>;
271
+ listProductOffers: (productId: string, query?: Parameters<typeof listStorefrontProductOffers>[2]) => Promise<{
272
+ id: string;
273
+ name: string;
274
+ slug: string | null;
275
+ description: string | null;
276
+ discountType: "percentage" | "fixed_amount";
277
+ discountValue: string;
278
+ currency: string | null;
279
+ applicableProductIds: string[];
280
+ applicableDepartureIds: string[];
281
+ validFrom: string | null;
282
+ validTo: string | null;
283
+ minTravelers: number | null;
284
+ imageMobileUrl: string | null;
285
+ imageDesktopUrl: string | null;
286
+ stackable: boolean;
287
+ createdAt: string;
288
+ updatedAt: string;
289
+ }[]>;
290
+ getOfferBySlug: (slug: string, query?: Parameters<typeof getStorefrontOfferBySlug>[2]) => Promise<{
291
+ id: string;
292
+ name: string;
293
+ slug: string | null;
294
+ description: string | null;
295
+ discountType: "percentage" | "fixed_amount";
296
+ discountValue: string;
297
+ currency: string | null;
298
+ applicableProductIds: string[];
299
+ applicableDepartureIds: string[];
300
+ validFrom: string | null;
301
+ validTo: string | null;
302
+ minTravelers: number | null;
303
+ imageMobileUrl: string | null;
304
+ imageDesktopUrl: string | null;
305
+ stackable: boolean;
306
+ createdAt: string;
307
+ updatedAt: string;
308
+ }>;
309
+ };
310
+ booking: {
311
+ createSession: (input: Parameters<typeof createPublicBookingSession>[1], requestOptions?: Parameters<typeof createPublicBookingSession>[2]) => Promise<{
312
+ sessionId: string;
313
+ bookingNumber: string;
314
+ status: "draft" | "confirmed" | "completed" | "expired" | "cancelled" | "on_hold" | "awaiting_payment" | "in_progress";
315
+ externalBookingRef: string | null;
316
+ communicationLanguage: string | null;
317
+ sellCurrency: string;
318
+ sellAmountCents: number | null;
319
+ startDate: string | null;
320
+ endDate: string | null;
321
+ pax: number | null;
322
+ holdExpiresAt: string | null;
323
+ confirmedAt: string | null;
324
+ expiredAt: string | null;
325
+ cancelledAt: string | null;
326
+ completedAt: string | null;
327
+ travelers: {
328
+ id: string;
329
+ participantType: "traveler" | "occupant" | "other";
330
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
331
+ firstName: string;
332
+ lastName: string;
333
+ email: string | null;
334
+ phone: string | null;
335
+ preferredLanguage: string | null;
336
+ specialRequests: string | null;
337
+ isPrimary: boolean;
338
+ notes: string | null;
339
+ }[];
340
+ items: {
341
+ id: string;
342
+ title: string;
343
+ description: string | null;
344
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
345
+ status: "draft" | "confirmed" | "expired" | "cancelled" | "on_hold" | "fulfilled";
346
+ serviceDate: string | null;
347
+ startsAt: string | null;
348
+ endsAt: string | null;
349
+ quantity: number;
350
+ sellCurrency: string;
351
+ unitSellAmountCents: number | null;
352
+ totalSellAmountCents: number | null;
353
+ costCurrency: string | null;
354
+ unitCostAmountCents: number | null;
355
+ totalCostAmountCents: number | null;
356
+ notes: string | null;
357
+ productId: string | null;
358
+ optionId: string | null;
359
+ optionUnitId: string | null;
360
+ pricingCategoryId: string | null;
361
+ travelerLinks: {
362
+ id: string;
363
+ travelerId: string;
364
+ role: "traveler" | "occupant" | "other" | "beneficiary";
365
+ isPrimary: boolean;
366
+ }[];
367
+ }[];
368
+ allocations: {
369
+ id: string;
370
+ bookingItemId: string | null;
371
+ productId: string | null;
372
+ optionId: string | null;
373
+ optionUnitId: string | null;
374
+ pricingCategoryId: string | null;
375
+ availabilitySlotId: string | null;
376
+ quantity: number;
377
+ allocationType: "unit" | "pickup" | "resource";
378
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
379
+ holdExpiresAt: string | null;
380
+ confirmedAt: string | null;
381
+ releasedAt: string | null;
382
+ }[];
383
+ checklist: {
384
+ hasTravelers: boolean;
385
+ hasPrimaryTraveler: boolean;
386
+ hasItems: boolean;
387
+ hasAllocations: boolean;
388
+ readyForConfirmation: boolean;
389
+ };
390
+ state: {
391
+ sessionId: string;
392
+ stateKey: "wizard";
393
+ currentStep: string | null;
394
+ completedSteps: string[];
395
+ payload: Record<string, unknown>;
396
+ version: number;
397
+ createdAt: string;
398
+ updatedAt: string;
399
+ } | null;
400
+ }>;
401
+ getSession: (sessionId: string) => Promise<{
402
+ sessionId: string;
403
+ bookingNumber: string;
404
+ status: "draft" | "confirmed" | "completed" | "expired" | "cancelled" | "on_hold" | "awaiting_payment" | "in_progress";
405
+ externalBookingRef: string | null;
406
+ communicationLanguage: string | null;
407
+ sellCurrency: string;
408
+ sellAmountCents: number | null;
409
+ startDate: string | null;
410
+ endDate: string | null;
411
+ pax: number | null;
412
+ holdExpiresAt: string | null;
413
+ confirmedAt: string | null;
414
+ expiredAt: string | null;
415
+ cancelledAt: string | null;
416
+ completedAt: string | null;
417
+ travelers: {
418
+ id: string;
419
+ participantType: "traveler" | "occupant" | "other";
420
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
421
+ firstName: string;
422
+ lastName: string;
423
+ email: string | null;
424
+ phone: string | null;
425
+ preferredLanguage: string | null;
426
+ specialRequests: string | null;
427
+ isPrimary: boolean;
428
+ notes: string | null;
429
+ }[];
430
+ items: {
431
+ id: string;
432
+ title: string;
433
+ description: string | null;
434
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
435
+ status: "draft" | "confirmed" | "expired" | "cancelled" | "on_hold" | "fulfilled";
436
+ serviceDate: string | null;
437
+ startsAt: string | null;
438
+ endsAt: string | null;
439
+ quantity: number;
440
+ sellCurrency: string;
441
+ unitSellAmountCents: number | null;
442
+ totalSellAmountCents: number | null;
443
+ costCurrency: string | null;
444
+ unitCostAmountCents: number | null;
445
+ totalCostAmountCents: number | null;
446
+ notes: string | null;
447
+ productId: string | null;
448
+ optionId: string | null;
449
+ optionUnitId: string | null;
450
+ pricingCategoryId: string | null;
451
+ travelerLinks: {
452
+ id: string;
453
+ travelerId: string;
454
+ role: "traveler" | "occupant" | "other" | "beneficiary";
455
+ isPrimary: boolean;
456
+ }[];
457
+ }[];
458
+ allocations: {
459
+ id: string;
460
+ bookingItemId: string | null;
461
+ productId: string | null;
462
+ optionId: string | null;
463
+ optionUnitId: string | null;
464
+ pricingCategoryId: string | null;
465
+ availabilitySlotId: string | null;
466
+ quantity: number;
467
+ allocationType: "unit" | "pickup" | "resource";
468
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
469
+ holdExpiresAt: string | null;
470
+ confirmedAt: string | null;
471
+ releasedAt: string | null;
472
+ }[];
473
+ checklist: {
474
+ hasTravelers: boolean;
475
+ hasPrimaryTraveler: boolean;
476
+ hasItems: boolean;
477
+ hasAllocations: boolean;
478
+ readyForConfirmation: boolean;
479
+ };
480
+ state: {
481
+ sessionId: string;
482
+ stateKey: "wizard";
483
+ currentStep: string | null;
484
+ completedSteps: string[];
485
+ payload: Record<string, unknown>;
486
+ version: number;
487
+ createdAt: string;
488
+ updatedAt: string;
489
+ } | null;
490
+ }>;
491
+ updateSession: (sessionId: string, input: Parameters<typeof updatePublicBookingSession>[2], requestOptions?: Parameters<typeof updatePublicBookingSession>[3]) => Promise<{
492
+ sessionId: string;
493
+ bookingNumber: string;
494
+ status: "draft" | "confirmed" | "completed" | "expired" | "cancelled" | "on_hold" | "awaiting_payment" | "in_progress";
495
+ externalBookingRef: string | null;
496
+ communicationLanguage: string | null;
497
+ sellCurrency: string;
498
+ sellAmountCents: number | null;
499
+ startDate: string | null;
500
+ endDate: string | null;
501
+ pax: number | null;
502
+ holdExpiresAt: string | null;
503
+ confirmedAt: string | null;
504
+ expiredAt: string | null;
505
+ cancelledAt: string | null;
506
+ completedAt: string | null;
507
+ travelers: {
508
+ id: string;
509
+ participantType: "traveler" | "occupant" | "other";
510
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
511
+ firstName: string;
512
+ lastName: string;
513
+ email: string | null;
514
+ phone: string | null;
515
+ preferredLanguage: string | null;
516
+ specialRequests: string | null;
517
+ isPrimary: boolean;
518
+ notes: string | null;
519
+ }[];
520
+ items: {
521
+ id: string;
522
+ title: string;
523
+ description: string | null;
524
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
525
+ status: "draft" | "confirmed" | "expired" | "cancelled" | "on_hold" | "fulfilled";
526
+ serviceDate: string | null;
527
+ startsAt: string | null;
528
+ endsAt: string | null;
529
+ quantity: number;
530
+ sellCurrency: string;
531
+ unitSellAmountCents: number | null;
532
+ totalSellAmountCents: number | null;
533
+ costCurrency: string | null;
534
+ unitCostAmountCents: number | null;
535
+ totalCostAmountCents: number | null;
536
+ notes: string | null;
537
+ productId: string | null;
538
+ optionId: string | null;
539
+ optionUnitId: string | null;
540
+ pricingCategoryId: string | null;
541
+ travelerLinks: {
542
+ id: string;
543
+ travelerId: string;
544
+ role: "traveler" | "occupant" | "other" | "beneficiary";
545
+ isPrimary: boolean;
546
+ }[];
547
+ }[];
548
+ allocations: {
549
+ id: string;
550
+ bookingItemId: string | null;
551
+ productId: string | null;
552
+ optionId: string | null;
553
+ optionUnitId: string | null;
554
+ pricingCategoryId: string | null;
555
+ availabilitySlotId: string | null;
556
+ quantity: number;
557
+ allocationType: "unit" | "pickup" | "resource";
558
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
559
+ holdExpiresAt: string | null;
560
+ confirmedAt: string | null;
561
+ releasedAt: string | null;
562
+ }[];
563
+ checklist: {
564
+ hasTravelers: boolean;
565
+ hasPrimaryTraveler: boolean;
566
+ hasItems: boolean;
567
+ hasAllocations: boolean;
568
+ readyForConfirmation: boolean;
569
+ };
570
+ state: {
571
+ sessionId: string;
572
+ stateKey: "wizard";
573
+ currentStep: string | null;
574
+ completedSteps: string[];
575
+ payload: Record<string, unknown>;
576
+ version: number;
577
+ createdAt: string;
578
+ updatedAt: string;
579
+ } | null;
580
+ }>;
581
+ getSessionState: (sessionId: string) => Promise<{
582
+ sessionId: string;
583
+ stateKey: "wizard";
584
+ currentStep: string | null;
585
+ completedSteps: string[];
586
+ payload: Record<string, unknown>;
587
+ version: number;
588
+ createdAt: string;
589
+ updatedAt: string;
590
+ }>;
591
+ updateSessionState: (sessionId: string, input: Parameters<typeof updatePublicBookingSessionState>[2], requestOptions?: Parameters<typeof updatePublicBookingSessionState>[3]) => Promise<{
592
+ sessionId: string;
593
+ stateKey: "wizard";
594
+ currentStep: string | null;
595
+ completedSteps: string[];
596
+ payload: Record<string, unknown>;
597
+ version: number;
598
+ createdAt: string;
599
+ updatedAt: string;
600
+ }>;
601
+ reprice: (sessionId: string, input: Parameters<typeof repricePublicBookingSession>[2], requestOptions?: Parameters<typeof repricePublicBookingSession>[3]) => Promise<{
602
+ pricing: {
603
+ sessionId: string;
604
+ catalogId: string | null;
605
+ currencyCode: string;
606
+ totalSellAmountCents: number;
607
+ items: {
608
+ itemId: string;
609
+ title: string;
610
+ productId: string | null;
611
+ optionId: string | null;
612
+ optionUnitId: string | null;
613
+ optionUnitName: string | null;
614
+ optionUnitType: string | null;
615
+ pricingCategoryId: string | null;
616
+ quantity: number;
617
+ pricingMode: string;
618
+ unitSellAmountCents: number | null;
619
+ totalSellAmountCents: number | null;
620
+ warnings: string[];
621
+ }[];
622
+ warnings: string[];
623
+ appliedToSession: boolean;
624
+ };
625
+ session: {
626
+ sessionId: string;
627
+ bookingNumber: string;
628
+ status: "draft" | "confirmed" | "completed" | "expired" | "cancelled" | "on_hold" | "awaiting_payment" | "in_progress";
629
+ externalBookingRef: string | null;
630
+ communicationLanguage: string | null;
631
+ sellCurrency: string;
632
+ sellAmountCents: number | null;
633
+ startDate: string | null;
634
+ endDate: string | null;
635
+ pax: number | null;
636
+ holdExpiresAt: string | null;
637
+ confirmedAt: string | null;
638
+ expiredAt: string | null;
639
+ cancelledAt: string | null;
640
+ completedAt: string | null;
641
+ travelers: {
642
+ id: string;
643
+ participantType: "traveler" | "occupant" | "other";
644
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
645
+ firstName: string;
646
+ lastName: string;
647
+ email: string | null;
648
+ phone: string | null;
649
+ preferredLanguage: string | null;
650
+ specialRequests: string | null;
651
+ isPrimary: boolean;
652
+ notes: string | null;
653
+ }[];
654
+ items: {
655
+ id: string;
656
+ title: string;
657
+ description: string | null;
658
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
659
+ status: "draft" | "confirmed" | "expired" | "cancelled" | "on_hold" | "fulfilled";
660
+ serviceDate: string | null;
661
+ startsAt: string | null;
662
+ endsAt: string | null;
663
+ quantity: number;
664
+ sellCurrency: string;
665
+ unitSellAmountCents: number | null;
666
+ totalSellAmountCents: number | null;
667
+ costCurrency: string | null;
668
+ unitCostAmountCents: number | null;
669
+ totalCostAmountCents: number | null;
670
+ notes: string | null;
671
+ productId: string | null;
672
+ optionId: string | null;
673
+ optionUnitId: string | null;
674
+ pricingCategoryId: string | null;
675
+ travelerLinks: {
676
+ id: string;
677
+ travelerId: string;
678
+ role: "traveler" | "occupant" | "other" | "beneficiary";
679
+ isPrimary: boolean;
680
+ }[];
681
+ }[];
682
+ allocations: {
683
+ id: string;
684
+ bookingItemId: string | null;
685
+ productId: string | null;
686
+ optionId: string | null;
687
+ optionUnitId: string | null;
688
+ pricingCategoryId: string | null;
689
+ availabilitySlotId: string | null;
690
+ quantity: number;
691
+ allocationType: "unit" | "pickup" | "resource";
692
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
693
+ holdExpiresAt: string | null;
694
+ confirmedAt: string | null;
695
+ releasedAt: string | null;
696
+ }[];
697
+ checklist: {
698
+ hasTravelers: boolean;
699
+ hasPrimaryTraveler: boolean;
700
+ hasItems: boolean;
701
+ hasAllocations: boolean;
702
+ readyForConfirmation: boolean;
703
+ };
704
+ state: {
705
+ sessionId: string;
706
+ stateKey: "wizard";
707
+ currentStep: string | null;
708
+ completedSteps: string[];
709
+ payload: Record<string, unknown>;
710
+ version: number;
711
+ createdAt: string;
712
+ updatedAt: string;
713
+ } | null;
714
+ } | null;
715
+ }>;
716
+ confirm: (sessionId: string, input?: Parameters<typeof confirmPublicBookingSession>[2], requestOptions?: Parameters<typeof confirmPublicBookingSession>[3]) => Promise<{
717
+ sessionId: string;
718
+ bookingNumber: string;
719
+ status: "draft" | "confirmed" | "completed" | "expired" | "cancelled" | "on_hold" | "awaiting_payment" | "in_progress";
720
+ externalBookingRef: string | null;
721
+ communicationLanguage: string | null;
722
+ sellCurrency: string;
723
+ sellAmountCents: number | null;
724
+ startDate: string | null;
725
+ endDate: string | null;
726
+ pax: number | null;
727
+ holdExpiresAt: string | null;
728
+ confirmedAt: string | null;
729
+ expiredAt: string | null;
730
+ cancelledAt: string | null;
731
+ completedAt: string | null;
732
+ travelers: {
733
+ id: string;
734
+ participantType: "traveler" | "occupant" | "other";
735
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
736
+ firstName: string;
737
+ lastName: string;
738
+ email: string | null;
739
+ phone: string | null;
740
+ preferredLanguage: string | null;
741
+ specialRequests: string | null;
742
+ isPrimary: boolean;
743
+ notes: string | null;
744
+ }[];
745
+ items: {
746
+ id: string;
747
+ title: string;
748
+ description: string | null;
749
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
750
+ status: "draft" | "confirmed" | "expired" | "cancelled" | "on_hold" | "fulfilled";
751
+ serviceDate: string | null;
752
+ startsAt: string | null;
753
+ endsAt: string | null;
754
+ quantity: number;
755
+ sellCurrency: string;
756
+ unitSellAmountCents: number | null;
757
+ totalSellAmountCents: number | null;
758
+ costCurrency: string | null;
759
+ unitCostAmountCents: number | null;
760
+ totalCostAmountCents: number | null;
761
+ notes: string | null;
762
+ productId: string | null;
763
+ optionId: string | null;
764
+ optionUnitId: string | null;
765
+ pricingCategoryId: string | null;
766
+ travelerLinks: {
767
+ id: string;
768
+ travelerId: string;
769
+ role: "traveler" | "occupant" | "other" | "beneficiary";
770
+ isPrimary: boolean;
771
+ }[];
772
+ }[];
773
+ allocations: {
774
+ id: string;
775
+ bookingItemId: string | null;
776
+ productId: string | null;
777
+ optionId: string | null;
778
+ optionUnitId: string | null;
779
+ pricingCategoryId: string | null;
780
+ availabilitySlotId: string | null;
781
+ quantity: number;
782
+ allocationType: "unit" | "pickup" | "resource";
783
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
784
+ holdExpiresAt: string | null;
785
+ confirmedAt: string | null;
786
+ releasedAt: string | null;
787
+ }[];
788
+ checklist: {
789
+ hasTravelers: boolean;
790
+ hasPrimaryTraveler: boolean;
791
+ hasItems: boolean;
792
+ hasAllocations: boolean;
793
+ readyForConfirmation: boolean;
794
+ };
795
+ state: {
796
+ sessionId: string;
797
+ stateKey: "wizard";
798
+ currentStep: string | null;
799
+ completedSteps: string[];
800
+ payload: Record<string, unknown>;
801
+ version: number;
802
+ createdAt: string;
803
+ updatedAt: string;
804
+ } | null;
805
+ }>;
806
+ expire: (sessionId: string, input?: Parameters<typeof expirePublicBookingSession>[2], requestOptions?: Parameters<typeof expirePublicBookingSession>[3]) => Promise<{
807
+ sessionId: string;
808
+ bookingNumber: string;
809
+ status: "draft" | "confirmed" | "completed" | "expired" | "cancelled" | "on_hold" | "awaiting_payment" | "in_progress";
810
+ externalBookingRef: string | null;
811
+ communicationLanguage: string | null;
812
+ sellCurrency: string;
813
+ sellAmountCents: number | null;
814
+ startDate: string | null;
815
+ endDate: string | null;
816
+ pax: number | null;
817
+ holdExpiresAt: string | null;
818
+ confirmedAt: string | null;
819
+ expiredAt: string | null;
820
+ cancelledAt: string | null;
821
+ completedAt: string | null;
822
+ travelers: {
823
+ id: string;
824
+ participantType: "traveler" | "occupant" | "other";
825
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
826
+ firstName: string;
827
+ lastName: string;
828
+ email: string | null;
829
+ phone: string | null;
830
+ preferredLanguage: string | null;
831
+ specialRequests: string | null;
832
+ isPrimary: boolean;
833
+ notes: string | null;
834
+ }[];
835
+ items: {
836
+ id: string;
837
+ title: string;
838
+ description: string | null;
839
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
840
+ status: "draft" | "confirmed" | "expired" | "cancelled" | "on_hold" | "fulfilled";
841
+ serviceDate: string | null;
842
+ startsAt: string | null;
843
+ endsAt: string | null;
844
+ quantity: number;
845
+ sellCurrency: string;
846
+ unitSellAmountCents: number | null;
847
+ totalSellAmountCents: number | null;
848
+ costCurrency: string | null;
849
+ unitCostAmountCents: number | null;
850
+ totalCostAmountCents: number | null;
851
+ notes: string | null;
852
+ productId: string | null;
853
+ optionId: string | null;
854
+ optionUnitId: string | null;
855
+ pricingCategoryId: string | null;
856
+ travelerLinks: {
857
+ id: string;
858
+ travelerId: string;
859
+ role: "traveler" | "occupant" | "other" | "beneficiary";
860
+ isPrimary: boolean;
861
+ }[];
862
+ }[];
863
+ allocations: {
864
+ id: string;
865
+ bookingItemId: string | null;
866
+ productId: string | null;
867
+ optionId: string | null;
868
+ optionUnitId: string | null;
869
+ pricingCategoryId: string | null;
870
+ availabilitySlotId: string | null;
871
+ quantity: number;
872
+ allocationType: "unit" | "pickup" | "resource";
873
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
874
+ holdExpiresAt: string | null;
875
+ confirmedAt: string | null;
876
+ releasedAt: string | null;
877
+ }[];
878
+ checklist: {
879
+ hasTravelers: boolean;
880
+ hasPrimaryTraveler: boolean;
881
+ hasItems: boolean;
882
+ hasAllocations: boolean;
883
+ readyForConfirmation: boolean;
884
+ };
885
+ state: {
886
+ sessionId: string;
887
+ stateKey: "wizard";
888
+ currentStep: string | null;
889
+ completedSteps: string[];
890
+ payload: Record<string, unknown>;
891
+ version: number;
892
+ createdAt: string;
893
+ updatedAt: string;
894
+ } | null;
895
+ }>;
896
+ getOverview: (query: Parameters<typeof getPublicBookingOverview>[1]) => Promise<{
897
+ bookingId: string;
898
+ bookingNumber: string;
899
+ status: "draft" | "confirmed" | "completed" | "expired" | "cancelled" | "on_hold" | "awaiting_payment" | "in_progress";
900
+ sellCurrency: string;
901
+ sellAmountCents: number | null;
902
+ startDate: string | null;
903
+ endDate: string | null;
904
+ pax: number | null;
905
+ confirmedAt: string | null;
906
+ cancelledAt: string | null;
907
+ completedAt: string | null;
908
+ travelers: {
909
+ id: string;
910
+ participantType: "traveler" | "occupant" | "other";
911
+ firstName: string;
912
+ lastName: string;
913
+ isPrimary: boolean;
914
+ }[];
915
+ items: {
916
+ id: string;
917
+ title: string;
918
+ description: string | null;
919
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
920
+ status: "draft" | "confirmed" | "expired" | "cancelled" | "on_hold" | "fulfilled";
921
+ serviceDate: string | null;
922
+ startsAt: string | null;
923
+ endsAt: string | null;
924
+ quantity: number;
925
+ sellCurrency: string;
926
+ unitSellAmountCents: number | null;
927
+ totalSellAmountCents: number | null;
928
+ costCurrency: string | null;
929
+ unitCostAmountCents: number | null;
930
+ totalCostAmountCents: number | null;
931
+ notes: string | null;
932
+ productId: string | null;
933
+ optionId: string | null;
934
+ optionUnitId: string | null;
935
+ pricingCategoryId: string | null;
936
+ travelerLinks: {
937
+ id: string;
938
+ travelerId: string;
939
+ role: "traveler" | "occupant" | "other" | "beneficiary";
940
+ isPrimary: boolean;
941
+ }[];
942
+ }[];
943
+ documents: {
944
+ id: string;
945
+ travelerId: string | null;
946
+ type: "other" | "visa" | "insurance" | "health" | "passport_copy";
947
+ fileName: string;
948
+ fileUrl: string;
949
+ }[];
950
+ fulfillments: {
951
+ id: string;
952
+ bookingItemId: string | null;
953
+ travelerId: string | null;
954
+ fulfillmentType: "other" | "voucher" | "ticket" | "pdf" | "qr_code" | "barcode" | "mobile";
955
+ deliveryChannel: "other" | "email" | "wallet" | "download" | "api";
956
+ status: "pending" | "issued" | "reissued" | "revoked" | "failed";
957
+ artifactUrl: string | null;
958
+ }[];
959
+ }>;
960
+ deriveState: typeof deriveBookingEngineState;
961
+ createSnapshot: typeof createBookingEngineSnapshot;
962
+ canRunAction: typeof canRunBookingEngineAction;
963
+ };
964
+ checkout: {
965
+ previewCollection: (bookingId: string, input: Parameters<typeof previewCheckoutCollection>[2], requestOptions?: Parameters<typeof previewCheckoutCollection>[3]) => Promise<{
966
+ bookingId: string;
967
+ method: "card" | "bank_transfer";
968
+ stage: "manual" | "initial" | "reminder";
969
+ paymentSessionTarget: "schedule" | "invoice" | null;
970
+ documentType: "invoice" | "proforma" | null;
971
+ willCreateDefaultPaymentPlan: boolean;
972
+ selectedSchedule: {
973
+ id: string;
974
+ bookingId: string;
975
+ bookingItemId: string | null;
976
+ scheduleType: string;
977
+ status: string;
978
+ dueDate: string;
979
+ currency: string;
980
+ amountCents: number;
981
+ notes: string | null;
982
+ } | null;
983
+ selectedInvoice: {
984
+ id: string;
985
+ invoiceNumber: string;
986
+ invoiceType: string;
987
+ bookingId: string;
988
+ personId: string | null;
989
+ organizationId: string | null;
990
+ status: string;
991
+ currency: string;
992
+ totalCents: number;
993
+ paidCents: number;
994
+ balanceDueCents: number;
995
+ issueDate: string;
996
+ dueDate: string;
997
+ notes: string | null;
998
+ createdAt: string;
999
+ updatedAt: string;
1000
+ } | null;
1001
+ amountCents: number;
1002
+ currency: string;
1003
+ recommendedAction: "none" | "create_bank_transfer_document" | "create_payment_session" | "create_invoice_then_payment_session";
1004
+ }>;
1005
+ initiateCollection: (bookingId: string, input: Parameters<typeof initiateCheckoutCollection>[2], requestOptions?: Parameters<typeof initiateCheckoutCollection>[3]) => Promise<{
1006
+ plan: {
1007
+ bookingId: string;
1008
+ method: "card" | "bank_transfer";
1009
+ stage: "manual" | "initial" | "reminder";
1010
+ paymentSessionTarget: "schedule" | "invoice" | null;
1011
+ documentType: "invoice" | "proforma" | null;
1012
+ willCreateDefaultPaymentPlan: boolean;
1013
+ selectedSchedule: {
1014
+ id: string;
1015
+ bookingId: string;
1016
+ bookingItemId: string | null;
1017
+ scheduleType: string;
1018
+ status: string;
1019
+ dueDate: string;
1020
+ currency: string;
1021
+ amountCents: number;
1022
+ notes: string | null;
1023
+ } | null;
1024
+ selectedInvoice: {
1025
+ id: string;
1026
+ invoiceNumber: string;
1027
+ invoiceType: string;
1028
+ bookingId: string;
1029
+ personId: string | null;
1030
+ organizationId: string | null;
1031
+ status: string;
1032
+ currency: string;
1033
+ totalCents: number;
1034
+ paidCents: number;
1035
+ balanceDueCents: number;
1036
+ issueDate: string;
1037
+ dueDate: string;
1038
+ notes: string | null;
1039
+ createdAt: string;
1040
+ updatedAt: string;
1041
+ } | null;
1042
+ amountCents: number;
1043
+ currency: string;
1044
+ recommendedAction: "none" | "create_bank_transfer_document" | "create_payment_session" | "create_invoice_then_payment_session";
1045
+ };
1046
+ invoice: {
1047
+ id: string;
1048
+ invoiceNumber: string;
1049
+ invoiceType: string;
1050
+ bookingId: string;
1051
+ personId: string | null;
1052
+ organizationId: string | null;
1053
+ status: string;
1054
+ currency: string;
1055
+ totalCents: number;
1056
+ paidCents: number;
1057
+ balanceDueCents: number;
1058
+ issueDate: string;
1059
+ dueDate: string;
1060
+ notes: string | null;
1061
+ createdAt: string;
1062
+ updatedAt: string;
1063
+ } | null;
1064
+ paymentSession: {
1065
+ id: string;
1066
+ targetType: "other" | "invoice" | "booking" | "order" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
1067
+ targetId: string | null;
1068
+ bookingId: string | null;
1069
+ invoiceId: string | null;
1070
+ bookingPaymentScheduleId: string | null;
1071
+ bookingGuaranteeId: string | null;
1072
+ status: "expired" | "cancelled" | "pending" | "failed" | "requires_redirect" | "processing" | "authorized" | "paid";
1073
+ provider: string | null;
1074
+ providerSessionId: string | null;
1075
+ providerPaymentId: string | null;
1076
+ externalReference: string | null;
1077
+ clientReference: string | null;
1078
+ currency: string;
1079
+ amountCents: number;
1080
+ paymentMethod: "other" | "bank_transfer" | "credit_card" | "voucher" | "debit_card" | "cash" | "cheque" | "wallet" | "direct_bill" | null;
1081
+ payerEmail: string | null;
1082
+ payerName: string | null;
1083
+ redirectUrl: string | null;
1084
+ returnUrl: string | null;
1085
+ cancelUrl: string | null;
1086
+ expiresAt: string | null;
1087
+ completedAt: string | null;
1088
+ failureCode: string | null;
1089
+ failureMessage: string | null;
1090
+ notes: string | null;
1091
+ } | null;
1092
+ invoiceNotification: {
1093
+ id: string;
1094
+ templateSlug: string | null;
1095
+ channel: "email" | "sms";
1096
+ provider: string;
1097
+ status: "cancelled" | "pending" | "failed" | "sent";
1098
+ toAddress: string;
1099
+ subject: string | null;
1100
+ sentAt: string | null;
1101
+ failedAt: string | null;
1102
+ errorMessage: string | null;
1103
+ } | null;
1104
+ paymentSessionNotification: {
1105
+ id: string;
1106
+ templateSlug: string | null;
1107
+ channel: "email" | "sms";
1108
+ provider: string;
1109
+ status: "cancelled" | "pending" | "failed" | "sent";
1110
+ toAddress: string;
1111
+ subject: string | null;
1112
+ sentAt: string | null;
1113
+ failedAt: string | null;
1114
+ errorMessage: string | null;
1115
+ } | null;
1116
+ bankTransferInstructions: {
1117
+ provider: string | null;
1118
+ invoiceId: string;
1119
+ invoiceNumber: string;
1120
+ documentType: "invoice" | "proforma";
1121
+ amountCents: number;
1122
+ currency: string;
1123
+ dueDate: string | null;
1124
+ beneficiary: string;
1125
+ iban: string;
1126
+ bankName: string | null;
1127
+ notes: string | null;
1128
+ } | null;
1129
+ providerStart: {
1130
+ provider: string;
1131
+ paymentSessionId: string;
1132
+ redirectUrl: string | null;
1133
+ externalReference: string | null;
1134
+ providerSessionId: string | null;
1135
+ providerPaymentId: string | null;
1136
+ response: Record<string, unknown> | null;
1137
+ } | null;
1138
+ }>;
1139
+ bootstrapCollection: (input: Parameters<typeof bootstrapCheckoutCollection>[1], requestOptions?: Parameters<typeof bootstrapCheckoutCollection>[2]) => Promise<{
1140
+ plan: {
1141
+ bookingId: string;
1142
+ method: "card" | "bank_transfer";
1143
+ stage: "manual" | "initial" | "reminder";
1144
+ paymentSessionTarget: "schedule" | "invoice" | null;
1145
+ documentType: "invoice" | "proforma" | null;
1146
+ willCreateDefaultPaymentPlan: boolean;
1147
+ selectedSchedule: {
1148
+ id: string;
1149
+ bookingId: string;
1150
+ bookingItemId: string | null;
1151
+ scheduleType: string;
1152
+ status: string;
1153
+ dueDate: string;
1154
+ currency: string;
1155
+ amountCents: number;
1156
+ notes: string | null;
1157
+ } | null;
1158
+ selectedInvoice: {
1159
+ id: string;
1160
+ invoiceNumber: string;
1161
+ invoiceType: string;
1162
+ bookingId: string;
1163
+ personId: string | null;
1164
+ organizationId: string | null;
1165
+ status: string;
1166
+ currency: string;
1167
+ totalCents: number;
1168
+ paidCents: number;
1169
+ balanceDueCents: number;
1170
+ issueDate: string;
1171
+ dueDate: string;
1172
+ notes: string | null;
1173
+ createdAt: string;
1174
+ updatedAt: string;
1175
+ } | null;
1176
+ amountCents: number;
1177
+ currency: string;
1178
+ recommendedAction: "none" | "create_bank_transfer_document" | "create_payment_session" | "create_invoice_then_payment_session";
1179
+ };
1180
+ invoice: {
1181
+ id: string;
1182
+ invoiceNumber: string;
1183
+ invoiceType: string;
1184
+ bookingId: string;
1185
+ personId: string | null;
1186
+ organizationId: string | null;
1187
+ status: string;
1188
+ currency: string;
1189
+ totalCents: number;
1190
+ paidCents: number;
1191
+ balanceDueCents: number;
1192
+ issueDate: string;
1193
+ dueDate: string;
1194
+ notes: string | null;
1195
+ createdAt: string;
1196
+ updatedAt: string;
1197
+ } | null;
1198
+ paymentSession: {
1199
+ id: string;
1200
+ targetType: "other" | "invoice" | "booking" | "order" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
1201
+ targetId: string | null;
1202
+ bookingId: string | null;
1203
+ invoiceId: string | null;
1204
+ bookingPaymentScheduleId: string | null;
1205
+ bookingGuaranteeId: string | null;
1206
+ status: "expired" | "cancelled" | "pending" | "failed" | "requires_redirect" | "processing" | "authorized" | "paid";
1207
+ provider: string | null;
1208
+ providerSessionId: string | null;
1209
+ providerPaymentId: string | null;
1210
+ externalReference: string | null;
1211
+ clientReference: string | null;
1212
+ currency: string;
1213
+ amountCents: number;
1214
+ paymentMethod: "other" | "bank_transfer" | "credit_card" | "voucher" | "debit_card" | "cash" | "cheque" | "wallet" | "direct_bill" | null;
1215
+ payerEmail: string | null;
1216
+ payerName: string | null;
1217
+ redirectUrl: string | null;
1218
+ returnUrl: string | null;
1219
+ cancelUrl: string | null;
1220
+ expiresAt: string | null;
1221
+ completedAt: string | null;
1222
+ failureCode: string | null;
1223
+ failureMessage: string | null;
1224
+ notes: string | null;
1225
+ } | null;
1226
+ invoiceNotification: {
1227
+ id: string;
1228
+ templateSlug: string | null;
1229
+ channel: "email" | "sms";
1230
+ provider: string;
1231
+ status: "cancelled" | "pending" | "failed" | "sent";
1232
+ toAddress: string;
1233
+ subject: string | null;
1234
+ sentAt: string | null;
1235
+ failedAt: string | null;
1236
+ errorMessage: string | null;
1237
+ } | null;
1238
+ paymentSessionNotification: {
1239
+ id: string;
1240
+ templateSlug: string | null;
1241
+ channel: "email" | "sms";
1242
+ provider: string;
1243
+ status: "cancelled" | "pending" | "failed" | "sent";
1244
+ toAddress: string;
1245
+ subject: string | null;
1246
+ sentAt: string | null;
1247
+ failedAt: string | null;
1248
+ errorMessage: string | null;
1249
+ } | null;
1250
+ bankTransferInstructions: {
1251
+ provider: string | null;
1252
+ invoiceId: string;
1253
+ invoiceNumber: string;
1254
+ documentType: "invoice" | "proforma";
1255
+ amountCents: number;
1256
+ currency: string;
1257
+ dueDate: string | null;
1258
+ beneficiary: string;
1259
+ iban: string;
1260
+ bankName: string | null;
1261
+ notes: string | null;
1262
+ } | null;
1263
+ providerStart: {
1264
+ provider: string;
1265
+ paymentSessionId: string;
1266
+ redirectUrl: string | null;
1267
+ externalReference: string | null;
1268
+ providerSessionId: string | null;
1269
+ providerPaymentId: string | null;
1270
+ response: Record<string, unknown> | null;
1271
+ } | null;
1272
+ bookingId: string;
1273
+ sessionId: string;
1274
+ sourceType: "session" | "booking";
1275
+ intent: "custom" | "deposit" | "balance";
1276
+ }>;
1277
+ };
1278
+ };
1279
+ export type VoyantStorefrontClient = ReturnType<typeof createVoyantStorefrontClient>;
1280
+ //# sourceMappingURL=index.d.ts.map