@voyant-travel/storefront-sdk 0.120.1

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,1805 @@
1
+ import { type StorefrontRequestOptions, type VoyantStorefrontClientOptions } from "./client.js";
2
+ import { type BootstrapCheckoutCollectionInput, type InitiateCheckoutCollectionInput, type PreviewCheckoutCollectionInput, type PublicBookingOverviewLookupQuery, type PublicBookingSessionMutationInput, type PublicBookingSessionRepriceInput, type PublicCreateBookingSessionInput, type PublicUpdateBookingSessionInput, type PublicUpsertBookingSessionStateInput, type StorefrontBookingSessionBootstrapInput, type StorefrontDepartureListQuery, type StorefrontDeparturePricePreviewInput, type StorefrontLeadIntakeInput, type StorefrontNewsletterSubscribeInput, type StorefrontProductAvailabilitySummaryQuery, type StorefrontProductExtensionsQuery, type StorefrontPromotionalOfferListQuery } from "./schemas.js";
3
+ type ResolvedClientOptions = Required<Pick<VoyantStorefrontClientOptions, "baseUrl" | "fetcher">> & Pick<VoyantStorefrontClientOptions, "headers">;
4
+ export declare function getStorefrontSettings(client: ResolvedClientOptions): Promise<{
5
+ branding: {
6
+ logoUrl: string | null;
7
+ faviconUrl: string | null;
8
+ brandMarkUrl: string | null;
9
+ primaryColor: string | null;
10
+ accentColor: string | null;
11
+ supportedLanguages: string[];
12
+ };
13
+ support: {
14
+ email: string | null;
15
+ phone: string | null;
16
+ links: {
17
+ label: string;
18
+ url: string;
19
+ }[];
20
+ };
21
+ legal: {
22
+ termsUrl: string | null;
23
+ privacyUrl: string | null;
24
+ cancellationUrl: string | null;
25
+ defaultContractTemplateId: string | null;
26
+ };
27
+ localization: {
28
+ defaultLocale: string | null;
29
+ currencyDisplay: "symbol" | "code" | "name";
30
+ };
31
+ forms: {
32
+ billing: {
33
+ fields: {
34
+ key: string;
35
+ label: string;
36
+ type: "email" | "date" | "text" | "tel" | "textarea" | "select" | "checkbox" | "country";
37
+ required: boolean;
38
+ placeholder: string | null;
39
+ description: string | null;
40
+ autocomplete: string | null;
41
+ options: {
42
+ value: string;
43
+ label: string;
44
+ }[];
45
+ }[];
46
+ };
47
+ travelers: {
48
+ fields: {
49
+ key: string;
50
+ label: string;
51
+ type: "email" | "date" | "text" | "tel" | "textarea" | "select" | "checkbox" | "country";
52
+ required: boolean;
53
+ placeholder: string | null;
54
+ description: string | null;
55
+ autocomplete: string | null;
56
+ options: {
57
+ value: string;
58
+ label: string;
59
+ }[];
60
+ }[];
61
+ };
62
+ };
63
+ payment: {
64
+ defaultMethod: "voucher" | "card" | "bank_transfer" | "invoice" | "cash" | null;
65
+ methods: {
66
+ code: "voucher" | "card" | "bank_transfer" | "invoice" | "cash";
67
+ label: string;
68
+ description: string | null;
69
+ enabled: boolean;
70
+ }[];
71
+ structure: "split" | "full";
72
+ schedule: {
73
+ percent: number;
74
+ dueInDays: number;
75
+ dueCondition: "after_booking" | "before_departure";
76
+ }[];
77
+ defaultSchedule: {
78
+ depositPercent: number | null;
79
+ balanceDueDaysBeforeDeparture: number | null;
80
+ } | null;
81
+ bankTransfer: {
82
+ dueDays: number | null;
83
+ account: {
84
+ provider: string | null;
85
+ currency: string | null;
86
+ iban: string;
87
+ beneficiary: string;
88
+ bank: string;
89
+ } | null;
90
+ accountHolder: string | null;
91
+ bankName: string | null;
92
+ iban: string | null;
93
+ bic: string | null;
94
+ paymentReference: string | null;
95
+ instructions: string | null;
96
+ } | null;
97
+ };
98
+ }>;
99
+ export declare function createStorefrontLead(client: ResolvedClientOptions, input: StorefrontLeadIntakeInput, options?: StorefrontRequestOptions): Promise<{
100
+ id: string;
101
+ personId: string;
102
+ kind: "wishlist" | "notify" | "inquiry" | "request_offer" | "referral";
103
+ source: "phone" | "booking" | "form" | "admin" | "abandoned_cart" | "website";
104
+ status: "expired" | "new" | "contacted" | "qualified" | "converted" | "lost";
105
+ duplicate: boolean;
106
+ }>;
107
+ export declare function subscribeStorefrontNewsletter(client: ResolvedClientOptions, input: StorefrontNewsletterSubscribeInput, options?: StorefrontRequestOptions): Promise<{
108
+ id: string;
109
+ personId: string;
110
+ kind: "wishlist" | "notify" | "inquiry" | "request_offer" | "referral";
111
+ source: "phone" | "booking" | "form" | "admin" | "abandoned_cart" | "website";
112
+ status: "expired" | "new" | "contacted" | "qualified" | "converted" | "lost";
113
+ duplicate: boolean;
114
+ doubleOptIn: "not_configured" | "requested";
115
+ }>;
116
+ export declare function getStorefrontDeparture(client: ResolvedClientOptions, departureId: string): Promise<{
117
+ id: string;
118
+ productId: string;
119
+ itineraryId: string;
120
+ optionId: string | null;
121
+ dateLocal: string | null;
122
+ startAt: string | null;
123
+ endAt: string | null;
124
+ timezone: string;
125
+ startTime: {
126
+ id: string;
127
+ label: string | null;
128
+ startTimeLocal: string;
129
+ durationMinutes: number | null;
130
+ } | null;
131
+ meetingPoint: string | null;
132
+ capacity: number | null;
133
+ remaining: number | null;
134
+ departureStatus: "cancelled" | "open" | "closed" | "sold_out" | "on_request";
135
+ nights: number | null;
136
+ days: number | null;
137
+ ratePlans: {
138
+ id: string;
139
+ active: boolean;
140
+ name: string;
141
+ pricingModel: string;
142
+ basePrices: {
143
+ amount: number;
144
+ currencyCode: string;
145
+ }[];
146
+ roomPrices: {
147
+ amount: number;
148
+ currencyCode: string;
149
+ roomType: {
150
+ id: string;
151
+ name: string;
152
+ occupancy: {
153
+ adultsMin: number;
154
+ adultsMax: number;
155
+ childrenMax: number;
156
+ };
157
+ };
158
+ }[];
159
+ }[];
160
+ }>;
161
+ export declare function listStorefrontProductDepartures(client: ResolvedClientOptions, productId: string, query?: StorefrontDepartureListQuery): Promise<{
162
+ data: {
163
+ id: string;
164
+ productId: string;
165
+ itineraryId: string;
166
+ optionId: string | null;
167
+ dateLocal: string | null;
168
+ startAt: string | null;
169
+ endAt: string | null;
170
+ timezone: string;
171
+ startTime: {
172
+ id: string;
173
+ label: string | null;
174
+ startTimeLocal: string;
175
+ durationMinutes: number | null;
176
+ } | null;
177
+ meetingPoint: string | null;
178
+ capacity: number | null;
179
+ remaining: number | null;
180
+ departureStatus: "cancelled" | "open" | "closed" | "sold_out" | "on_request";
181
+ nights: number | null;
182
+ days: number | null;
183
+ ratePlans: {
184
+ id: string;
185
+ active: boolean;
186
+ name: string;
187
+ pricingModel: string;
188
+ basePrices: {
189
+ amount: number;
190
+ currencyCode: string;
191
+ }[];
192
+ roomPrices: {
193
+ amount: number;
194
+ currencyCode: string;
195
+ roomType: {
196
+ id: string;
197
+ name: string;
198
+ occupancy: {
199
+ adultsMin: number;
200
+ adultsMax: number;
201
+ childrenMax: number;
202
+ };
203
+ };
204
+ }[];
205
+ }[];
206
+ }[];
207
+ total: number;
208
+ limit: number;
209
+ offset: number;
210
+ }>;
211
+ export declare function getStorefrontProductAvailability(client: ResolvedClientOptions, productId: string, query?: StorefrontProductAvailabilitySummaryQuery): Promise<{
212
+ productId: string;
213
+ availabilityState: "cancelled" | "closed" | "sold_out" | "on_request" | "available" | "past_cutoff" | "too_early" | "unavailable";
214
+ counts: {
215
+ total: number;
216
+ open: number;
217
+ closed: number;
218
+ soldOut: number;
219
+ cancelled: number;
220
+ onRequest: number;
221
+ pastCutoff: number;
222
+ tooEarly: number;
223
+ available: number;
224
+ };
225
+ departures: {
226
+ id: string;
227
+ productId: string;
228
+ optionId: string | null;
229
+ dateLocal: string | null;
230
+ startAt: string | null;
231
+ endAt: string | null;
232
+ timezone: string;
233
+ status: "cancelled" | "open" | "closed" | "sold_out" | "on_request";
234
+ availabilityState: "cancelled" | "closed" | "sold_out" | "on_request" | "available" | "past_cutoff" | "too_early" | "unavailable";
235
+ capacity: number | null;
236
+ remaining: number | null;
237
+ pastCutoff: boolean;
238
+ tooEarly: boolean;
239
+ }[];
240
+ total: number;
241
+ limit: number;
242
+ offset: number;
243
+ }>;
244
+ export declare function previewStorefrontDeparturePrice(client: ResolvedClientOptions, departureId: string, input: StorefrontDeparturePricePreviewInput, options?: StorefrontRequestOptions): Promise<{
245
+ departureId: string;
246
+ productId: string;
247
+ optionId: string | null;
248
+ currencyCode: string;
249
+ basePrice: number;
250
+ taxAmount: number;
251
+ total: number;
252
+ notes: string | null;
253
+ lineItems: {
254
+ name: string;
255
+ total: number;
256
+ quantity: number;
257
+ unitPrice: number;
258
+ }[];
259
+ allocation: {
260
+ slot: {
261
+ id: string;
262
+ productId: string;
263
+ optionId: string | null;
264
+ dateLocal: string | null;
265
+ startAt: string | null;
266
+ endAt: string | null;
267
+ timezone: string;
268
+ status: "cancelled" | "open" | "closed" | "sold_out" | "on_request";
269
+ availabilityState: "cancelled" | "closed" | "sold_out" | "on_request" | "available" | "past_cutoff" | "too_early" | "unavailable";
270
+ capacity: number | null;
271
+ remaining: number | null;
272
+ pastCutoff: boolean;
273
+ tooEarly: boolean;
274
+ };
275
+ pax: {
276
+ adults: number;
277
+ children: number;
278
+ infants: number;
279
+ total: number;
280
+ };
281
+ requestedUnits: {
282
+ unitId: string | null;
283
+ requestRef: string | null;
284
+ name: string;
285
+ unitType: string | null;
286
+ quantity: number;
287
+ pricingMode: string | null;
288
+ unitPrice: number;
289
+ total: number;
290
+ currencyCode: string;
291
+ tierId: string | null;
292
+ }[];
293
+ rooms: {
294
+ unitId: string;
295
+ name: string;
296
+ occupancy: number;
297
+ quantity: number;
298
+ pax: number;
299
+ pricingMode: string | null;
300
+ unitPrice: number;
301
+ total: number;
302
+ currencyCode: string;
303
+ tierId: string | null;
304
+ }[];
305
+ };
306
+ units: {
307
+ unitId: string | null;
308
+ requestRef: string | null;
309
+ name: string;
310
+ unitType: string | null;
311
+ quantity: number;
312
+ pricingMode: string | null;
313
+ unitPrice: number;
314
+ total: number;
315
+ currencyCode: string;
316
+ tierId: string | null;
317
+ }[];
318
+ rooms: {
319
+ unitId: string;
320
+ name: string;
321
+ occupancy: number;
322
+ quantity: number;
323
+ pax: number;
324
+ pricingMode: string | null;
325
+ unitPrice: number;
326
+ total: number;
327
+ currencyCode: string;
328
+ tierId: string | null;
329
+ }[];
330
+ extras: {
331
+ extraId: string;
332
+ name: string;
333
+ required: boolean;
334
+ selectable: boolean;
335
+ selected: boolean;
336
+ pricingMode: "on_request" | "included" | "per_person" | "per_booking" | "quantity_based" | "free";
337
+ quantity: number;
338
+ unitPrice: number;
339
+ total: number;
340
+ currencyCode: string;
341
+ }[];
342
+ offers: {
343
+ available: {
344
+ offer: {
345
+ id: string;
346
+ name: string;
347
+ slug: string | null;
348
+ description: string | null;
349
+ discountType: "percentage" | "fixed_amount";
350
+ discountValue: string;
351
+ currency: string | null;
352
+ applicableProductIds: string[];
353
+ applicableDepartureIds: string[];
354
+ validFrom: string | null;
355
+ validTo: string | null;
356
+ minTravelers: number | null;
357
+ imageMobileUrl: string | null;
358
+ imageDesktopUrl: string | null;
359
+ stackable: boolean;
360
+ createdAt: string;
361
+ updatedAt: string;
362
+ };
363
+ status: "applied" | "not_applicable" | "conflict";
364
+ reason: "currency" | "conflict" | "min_pax" | "eligibility" | "no_discount" | null;
365
+ selected: boolean;
366
+ discountAppliedCents: number;
367
+ discountedPriceCents: number;
368
+ }[];
369
+ requested: {
370
+ kind: "code" | "slug";
371
+ value: string;
372
+ result: {
373
+ status: "applied" | "not_applicable" | "conflict" | "invalid";
374
+ reason: "currency" | "scope" | "conflict" | "min_pax" | "eligibility" | "no_discount" | "offer_not_found" | "offer_expired" | "offer_not_yet_valid" | "code_not_found" | "code_required" | "code_expired" | "code_not_yet_valid" | "booking_mismatch" | "session_mismatch" | null;
375
+ offer: {
376
+ id: string;
377
+ name: string;
378
+ slug: string | null;
379
+ description: string | null;
380
+ discountType: "percentage" | "fixed_amount";
381
+ discountValue: string;
382
+ currency: string | null;
383
+ applicableProductIds: string[];
384
+ applicableDepartureIds: string[];
385
+ validFrom: string | null;
386
+ validTo: string | null;
387
+ minTravelers: number | null;
388
+ imageMobileUrl: string | null;
389
+ imageDesktopUrl: string | null;
390
+ stackable: boolean;
391
+ createdAt: string;
392
+ updatedAt: string;
393
+ } | null;
394
+ target: {
395
+ bookingId: string | null;
396
+ sessionId: string | null;
397
+ productId: string;
398
+ departureId: string | null;
399
+ };
400
+ pricing: {
401
+ basePriceCents: number;
402
+ currency: string;
403
+ discountAppliedCents: number;
404
+ discountedPriceCents: number;
405
+ };
406
+ appliedOffers: {
407
+ offerId: string;
408
+ offerName: string;
409
+ discountAppliedCents: number;
410
+ discountedPriceCents: number;
411
+ currency: string;
412
+ discountKind: "percentage" | "fixed_amount";
413
+ discountPercent: number | null;
414
+ discountAmountCents: number | null;
415
+ appliedCode: string | null;
416
+ stackable: boolean;
417
+ }[];
418
+ conflict: {
419
+ policy: "best_discount_wins" | "stackable_compose";
420
+ autoAppliedOfferIds: string[];
421
+ manualOfferId: string | null;
422
+ selectedOfferIds: string[];
423
+ message: string;
424
+ } | null;
425
+ } | null;
426
+ }[];
427
+ applied: {
428
+ offerId: string;
429
+ offerName: string;
430
+ discountAppliedCents: number;
431
+ discountedPriceCents: number;
432
+ currency: string;
433
+ discountKind: "percentage" | "fixed_amount";
434
+ discountPercent: number | null;
435
+ discountAmountCents: number | null;
436
+ appliedCode: string | null;
437
+ stackable: boolean;
438
+ }[];
439
+ conflict: {
440
+ policy: "best_discount_wins" | "stackable_compose";
441
+ autoAppliedOfferIds: string[];
442
+ manualOfferId: string | null;
443
+ selectedOfferIds: string[];
444
+ message: string;
445
+ } | null;
446
+ discountTotal: number;
447
+ discountTotalCents: number;
448
+ totalAfterDiscount: number;
449
+ currencyCode: string;
450
+ };
451
+ totals: {
452
+ currencyCode: string;
453
+ base: number;
454
+ extras: number;
455
+ subtotal: number;
456
+ discount: number;
457
+ tax: number;
458
+ total: number;
459
+ perPerson: number;
460
+ perBooking: number;
461
+ };
462
+ }>;
463
+ export declare function listStorefrontProductExtensions(client: ResolvedClientOptions, productId: string, query?: StorefrontProductExtensionsQuery): Promise<{
464
+ extensions: {
465
+ id: string;
466
+ name: string;
467
+ label: string;
468
+ required: boolean;
469
+ selectable: boolean;
470
+ hasOptions: boolean;
471
+ refProductId: string | null;
472
+ thumb: string | null;
473
+ pricePerPerson: number | null;
474
+ currencyCode: string;
475
+ pricingMode: "on_request" | "included" | "per_person" | "per_booking" | "quantity_based" | "free";
476
+ defaultQuantity: number | null;
477
+ minQuantity: number | null;
478
+ maxQuantity: number | null;
479
+ }[];
480
+ items: {
481
+ id: string;
482
+ name: string;
483
+ label: string;
484
+ required: boolean;
485
+ selectable: boolean;
486
+ hasOptions: boolean;
487
+ refProductId: string | null;
488
+ thumb: string | null;
489
+ pricePerPerson: number | null;
490
+ currencyCode: string;
491
+ pricingMode: "on_request" | "included" | "per_person" | "per_booking" | "quantity_based" | "free";
492
+ defaultQuantity: number | null;
493
+ minQuantity: number | null;
494
+ maxQuantity: number | null;
495
+ }[];
496
+ details: Record<string, {
497
+ description: string | null;
498
+ media: {
499
+ url: string;
500
+ alt: string | null;
501
+ }[];
502
+ }>;
503
+ currencyCode: string;
504
+ }>;
505
+ export declare function getStorefrontDepartureItinerary(client: ResolvedClientOptions, productId: string, departureId: string): Promise<{
506
+ id: string;
507
+ itineraryId: string;
508
+ days: {
509
+ id: string;
510
+ title: string;
511
+ description: string | null;
512
+ thumbnail: {
513
+ url: string;
514
+ } | null;
515
+ segments: {
516
+ id: string;
517
+ title: string;
518
+ description: string | null;
519
+ }[];
520
+ }[];
521
+ }>;
522
+ export declare function listStorefrontProductOffers(client: ResolvedClientOptions, productId: string, query?: StorefrontPromotionalOfferListQuery): Promise<{
523
+ id: string;
524
+ name: string;
525
+ slug: string | null;
526
+ description: string | null;
527
+ discountType: "percentage" | "fixed_amount";
528
+ discountValue: string;
529
+ currency: string | null;
530
+ applicableProductIds: string[];
531
+ applicableDepartureIds: string[];
532
+ validFrom: string | null;
533
+ validTo: string | null;
534
+ minTravelers: number | null;
535
+ imageMobileUrl: string | null;
536
+ imageDesktopUrl: string | null;
537
+ stackable: boolean;
538
+ createdAt: string;
539
+ updatedAt: string;
540
+ }[]>;
541
+ export declare function getStorefrontOfferBySlug(client: ResolvedClientOptions, slug: string, query?: Pick<StorefrontPromotionalOfferListQuery, "locale">): Promise<{
542
+ id: string;
543
+ name: string;
544
+ slug: string | null;
545
+ description: string | null;
546
+ discountType: "percentage" | "fixed_amount";
547
+ discountValue: string;
548
+ currency: string | null;
549
+ applicableProductIds: string[];
550
+ applicableDepartureIds: string[];
551
+ validFrom: string | null;
552
+ validTo: string | null;
553
+ minTravelers: number | null;
554
+ imageMobileUrl: string | null;
555
+ imageDesktopUrl: string | null;
556
+ stackable: boolean;
557
+ createdAt: string;
558
+ updatedAt: string;
559
+ }>;
560
+ export declare function createPublicBookingSession(client: ResolvedClientOptions, input: PublicCreateBookingSessionInput, options?: StorefrontRequestOptions): Promise<{
561
+ sessionId: string;
562
+ bookingNumber: string;
563
+ status: "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress" | "completed" | "expired" | "cancelled";
564
+ externalBookingRef: string | null;
565
+ communicationLanguage: string | null;
566
+ sellCurrency: string;
567
+ sellAmountCents: number | null;
568
+ startDate: string | null;
569
+ endDate: string | null;
570
+ pax: number | null;
571
+ holdExpiresAt: string | null;
572
+ confirmedAt: string | null;
573
+ expiredAt: string | null;
574
+ cancelledAt: string | null;
575
+ completedAt: string | null;
576
+ travelers: {
577
+ id: string;
578
+ participantType: "traveler" | "occupant" | "other";
579
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
580
+ firstName: string;
581
+ lastName: string;
582
+ email: string | null;
583
+ phone: string | null;
584
+ preferredLanguage: string | null;
585
+ specialRequests: string | null;
586
+ isPrimary: boolean;
587
+ notes: string | null;
588
+ }[];
589
+ items: {
590
+ id: string;
591
+ title: string;
592
+ description: string | null;
593
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
594
+ status: "draft" | "on_hold" | "confirmed" | "expired" | "cancelled" | "fulfilled";
595
+ serviceDate: string | null;
596
+ startsAt: string | null;
597
+ endsAt: string | null;
598
+ quantity: number;
599
+ sellCurrency: string;
600
+ unitSellAmountCents: number | null;
601
+ totalSellAmountCents: number | null;
602
+ costCurrency: string | null;
603
+ unitCostAmountCents: number | null;
604
+ totalCostAmountCents: number | null;
605
+ notes: string | null;
606
+ productId: string | null;
607
+ optionId: string | null;
608
+ optionUnitId: string | null;
609
+ pricingCategoryId: string | null;
610
+ travelerLinks: {
611
+ id: string;
612
+ travelerId: string;
613
+ role: "traveler" | "occupant" | "other" | "beneficiary";
614
+ isPrimary: boolean;
615
+ }[];
616
+ }[];
617
+ allocations: {
618
+ id: string;
619
+ bookingItemId: string | null;
620
+ productId: string | null;
621
+ optionId: string | null;
622
+ optionUnitId: string | null;
623
+ pricingCategoryId: string | null;
624
+ availabilitySlotId: string | null;
625
+ quantity: number;
626
+ allocationType: "unit" | "pickup" | "resource";
627
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
628
+ holdExpiresAt: string | null;
629
+ confirmedAt: string | null;
630
+ releasedAt: string | null;
631
+ }[];
632
+ checklist: {
633
+ hasTravelers: boolean;
634
+ hasPrimaryTraveler: boolean;
635
+ hasItems: boolean;
636
+ hasAllocations: boolean;
637
+ readyForConfirmation: boolean;
638
+ };
639
+ state: {
640
+ sessionId: string;
641
+ stateKey: "wizard";
642
+ currentStep: string | null;
643
+ completedSteps: string[];
644
+ payload: Record<string, unknown>;
645
+ version: number;
646
+ createdAt: string;
647
+ updatedAt: string;
648
+ } | null;
649
+ checkoutCapability?: {
650
+ token: string;
651
+ expiresAt: string;
652
+ actions: ("session:read" | "session:update" | "session:reprice" | "session:finalize" | "payment:read" | "payment:start")[];
653
+ } | undefined;
654
+ }>;
655
+ export declare function bootstrapBookingSession(client: ResolvedClientOptions, input: StorefrontBookingSessionBootstrapInput, options?: StorefrontRequestOptions): Promise<{
656
+ paymentPlan: {
657
+ source: "storefront_default";
658
+ depositKind: "none" | "percent" | "fixed_cents";
659
+ depositPercent: number | null;
660
+ depositAmountCents: number | null;
661
+ requiresFullPayment: boolean;
662
+ };
663
+ paymentSchedule: {
664
+ id: string;
665
+ scheduleType: "other" | "deposit" | "balance" | "installment" | "hold";
666
+ status: "expired" | "cancelled" | "pending" | "paid" | "due" | "waived";
667
+ dueDate: string;
668
+ currency: string;
669
+ amountCents: number;
670
+ notes: string | null;
671
+ }[];
672
+ repricing: {
673
+ originalQuote: {
674
+ currencyCode: string;
675
+ totalSellAmountCents: number;
676
+ quotedAt?: string | null | undefined;
677
+ expiresAt?: string | null | undefined;
678
+ };
679
+ current: {
680
+ sessionId: string;
681
+ catalogId: string | null;
682
+ currencyCode: string;
683
+ totalSellAmountCents: number;
684
+ items: {
685
+ itemId: string;
686
+ title: string;
687
+ productId: string | null;
688
+ optionId: string | null;
689
+ optionUnitId: string | null;
690
+ optionUnitName: string | null;
691
+ optionUnitType: string | null;
692
+ pricingCategoryId: string | null;
693
+ quantity: number;
694
+ pricingMode: string;
695
+ unitSellAmountCents: number | null;
696
+ totalSellAmountCents: number | null;
697
+ warnings: string[];
698
+ }[];
699
+ warnings: string[];
700
+ appliedToSession: boolean;
701
+ };
702
+ deltaAmountCents: number;
703
+ staleQuote: boolean;
704
+ };
705
+ availability: {
706
+ departureId: string;
707
+ slotId: string;
708
+ productId: string;
709
+ optionId: string | null;
710
+ dateLocal: string | null;
711
+ startsAt: string | null;
712
+ endsAt: string | null;
713
+ timezone: string;
714
+ status: "cancelled" | "open" | "closed" | "sold_out" | "on_request";
715
+ capacity: number | null;
716
+ remaining: number | null;
717
+ };
718
+ allocation: {
719
+ id: string;
720
+ bookingItemId: string | null;
721
+ productId: string | null;
722
+ optionId: string | null;
723
+ optionUnitId: string | null;
724
+ pricingCategoryId: string | null;
725
+ availabilitySlotId: string | null;
726
+ quantity: number;
727
+ allocationType: "unit" | "pickup" | "resource";
728
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
729
+ holdExpiresAt: string | null;
730
+ confirmedAt: string | null;
731
+ releasedAt: string | null;
732
+ }[];
733
+ currency: string;
734
+ session: {
735
+ sessionId: string;
736
+ bookingNumber: string;
737
+ status: "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress" | "completed" | "expired" | "cancelled";
738
+ externalBookingRef: string | null;
739
+ communicationLanguage: string | null;
740
+ sellCurrency: string;
741
+ sellAmountCents: number | null;
742
+ startDate: string | null;
743
+ endDate: string | null;
744
+ pax: number | null;
745
+ holdExpiresAt: string | null;
746
+ confirmedAt: string | null;
747
+ expiredAt: string | null;
748
+ cancelledAt: string | null;
749
+ completedAt: string | null;
750
+ travelers: {
751
+ id: string;
752
+ participantType: "traveler" | "occupant" | "other";
753
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
754
+ firstName: string;
755
+ lastName: string;
756
+ email: string | null;
757
+ phone: string | null;
758
+ preferredLanguage: string | null;
759
+ specialRequests: string | null;
760
+ isPrimary: boolean;
761
+ notes: string | null;
762
+ }[];
763
+ items: {
764
+ id: string;
765
+ title: string;
766
+ description: string | null;
767
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
768
+ status: "draft" | "on_hold" | "confirmed" | "expired" | "cancelled" | "fulfilled";
769
+ serviceDate: string | null;
770
+ startsAt: string | null;
771
+ endsAt: string | null;
772
+ quantity: number;
773
+ sellCurrency: string;
774
+ unitSellAmountCents: number | null;
775
+ totalSellAmountCents: number | null;
776
+ costCurrency: string | null;
777
+ unitCostAmountCents: number | null;
778
+ totalCostAmountCents: number | null;
779
+ notes: string | null;
780
+ productId: string | null;
781
+ optionId: string | null;
782
+ optionUnitId: string | null;
783
+ pricingCategoryId: string | null;
784
+ travelerLinks: {
785
+ id: string;
786
+ travelerId: string;
787
+ role: "traveler" | "occupant" | "other" | "beneficiary";
788
+ isPrimary: boolean;
789
+ }[];
790
+ }[];
791
+ allocations: {
792
+ id: string;
793
+ bookingItemId: string | null;
794
+ productId: string | null;
795
+ optionId: string | null;
796
+ optionUnitId: string | null;
797
+ pricingCategoryId: string | null;
798
+ availabilitySlotId: string | null;
799
+ quantity: number;
800
+ allocationType: "unit" | "pickup" | "resource";
801
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
802
+ holdExpiresAt: string | null;
803
+ confirmedAt: string | null;
804
+ releasedAt: string | null;
805
+ }[];
806
+ checklist: {
807
+ hasTravelers: boolean;
808
+ hasPrimaryTraveler: boolean;
809
+ hasItems: boolean;
810
+ hasAllocations: boolean;
811
+ readyForConfirmation: boolean;
812
+ };
813
+ state: {
814
+ sessionId: string;
815
+ stateKey: "wizard";
816
+ currentStep: string | null;
817
+ completedSteps: string[];
818
+ payload: Record<string, unknown>;
819
+ version: number;
820
+ createdAt: string;
821
+ updatedAt: string;
822
+ } | null;
823
+ checkoutCapability: {
824
+ token: string;
825
+ expiresAt: string;
826
+ actions: ("session:read" | "session:update" | "session:reprice" | "session:finalize" | "payment:read" | "payment:start")[];
827
+ };
828
+ };
829
+ }>;
830
+ export declare function getPublicBookingSession(client: ResolvedClientOptions, sessionId: string): Promise<{
831
+ sessionId: string;
832
+ bookingNumber: string;
833
+ status: "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress" | "completed" | "expired" | "cancelled";
834
+ externalBookingRef: string | null;
835
+ communicationLanguage: string | null;
836
+ sellCurrency: string;
837
+ sellAmountCents: number | null;
838
+ startDate: string | null;
839
+ endDate: string | null;
840
+ pax: number | null;
841
+ holdExpiresAt: string | null;
842
+ confirmedAt: string | null;
843
+ expiredAt: string | null;
844
+ cancelledAt: string | null;
845
+ completedAt: string | null;
846
+ travelers: {
847
+ id: string;
848
+ participantType: "traveler" | "occupant" | "other";
849
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
850
+ firstName: string;
851
+ lastName: string;
852
+ email: string | null;
853
+ phone: string | null;
854
+ preferredLanguage: string | null;
855
+ specialRequests: string | null;
856
+ isPrimary: boolean;
857
+ notes: string | null;
858
+ }[];
859
+ items: {
860
+ id: string;
861
+ title: string;
862
+ description: string | null;
863
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
864
+ status: "draft" | "on_hold" | "confirmed" | "expired" | "cancelled" | "fulfilled";
865
+ serviceDate: string | null;
866
+ startsAt: string | null;
867
+ endsAt: string | null;
868
+ quantity: number;
869
+ sellCurrency: string;
870
+ unitSellAmountCents: number | null;
871
+ totalSellAmountCents: number | null;
872
+ costCurrency: string | null;
873
+ unitCostAmountCents: number | null;
874
+ totalCostAmountCents: number | null;
875
+ notes: string | null;
876
+ productId: string | null;
877
+ optionId: string | null;
878
+ optionUnitId: string | null;
879
+ pricingCategoryId: string | null;
880
+ travelerLinks: {
881
+ id: string;
882
+ travelerId: string;
883
+ role: "traveler" | "occupant" | "other" | "beneficiary";
884
+ isPrimary: boolean;
885
+ }[];
886
+ }[];
887
+ allocations: {
888
+ id: string;
889
+ bookingItemId: string | null;
890
+ productId: string | null;
891
+ optionId: string | null;
892
+ optionUnitId: string | null;
893
+ pricingCategoryId: string | null;
894
+ availabilitySlotId: string | null;
895
+ quantity: number;
896
+ allocationType: "unit" | "pickup" | "resource";
897
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
898
+ holdExpiresAt: string | null;
899
+ confirmedAt: string | null;
900
+ releasedAt: string | null;
901
+ }[];
902
+ checklist: {
903
+ hasTravelers: boolean;
904
+ hasPrimaryTraveler: boolean;
905
+ hasItems: boolean;
906
+ hasAllocations: boolean;
907
+ readyForConfirmation: boolean;
908
+ };
909
+ state: {
910
+ sessionId: string;
911
+ stateKey: "wizard";
912
+ currentStep: string | null;
913
+ completedSteps: string[];
914
+ payload: Record<string, unknown>;
915
+ version: number;
916
+ createdAt: string;
917
+ updatedAt: string;
918
+ } | null;
919
+ checkoutCapability?: {
920
+ token: string;
921
+ expiresAt: string;
922
+ actions: ("session:read" | "session:update" | "session:reprice" | "session:finalize" | "payment:read" | "payment:start")[];
923
+ } | undefined;
924
+ }>;
925
+ export declare function updatePublicBookingSession(client: ResolvedClientOptions, sessionId: string, input: PublicUpdateBookingSessionInput, options?: StorefrontRequestOptions): Promise<{
926
+ sessionId: string;
927
+ bookingNumber: string;
928
+ status: "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress" | "completed" | "expired" | "cancelled";
929
+ externalBookingRef: string | null;
930
+ communicationLanguage: string | null;
931
+ sellCurrency: string;
932
+ sellAmountCents: number | null;
933
+ startDate: string | null;
934
+ endDate: string | null;
935
+ pax: number | null;
936
+ holdExpiresAt: string | null;
937
+ confirmedAt: string | null;
938
+ expiredAt: string | null;
939
+ cancelledAt: string | null;
940
+ completedAt: string | null;
941
+ travelers: {
942
+ id: string;
943
+ participantType: "traveler" | "occupant" | "other";
944
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
945
+ firstName: string;
946
+ lastName: string;
947
+ email: string | null;
948
+ phone: string | null;
949
+ preferredLanguage: string | null;
950
+ specialRequests: string | null;
951
+ isPrimary: boolean;
952
+ notes: string | null;
953
+ }[];
954
+ items: {
955
+ id: string;
956
+ title: string;
957
+ description: string | null;
958
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
959
+ status: "draft" | "on_hold" | "confirmed" | "expired" | "cancelled" | "fulfilled";
960
+ serviceDate: string | null;
961
+ startsAt: string | null;
962
+ endsAt: string | null;
963
+ quantity: number;
964
+ sellCurrency: string;
965
+ unitSellAmountCents: number | null;
966
+ totalSellAmountCents: number | null;
967
+ costCurrency: string | null;
968
+ unitCostAmountCents: number | null;
969
+ totalCostAmountCents: number | null;
970
+ notes: string | null;
971
+ productId: string | null;
972
+ optionId: string | null;
973
+ optionUnitId: string | null;
974
+ pricingCategoryId: string | null;
975
+ travelerLinks: {
976
+ id: string;
977
+ travelerId: string;
978
+ role: "traveler" | "occupant" | "other" | "beneficiary";
979
+ isPrimary: boolean;
980
+ }[];
981
+ }[];
982
+ allocations: {
983
+ id: string;
984
+ bookingItemId: string | null;
985
+ productId: string | null;
986
+ optionId: string | null;
987
+ optionUnitId: string | null;
988
+ pricingCategoryId: string | null;
989
+ availabilitySlotId: string | null;
990
+ quantity: number;
991
+ allocationType: "unit" | "pickup" | "resource";
992
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
993
+ holdExpiresAt: string | null;
994
+ confirmedAt: string | null;
995
+ releasedAt: string | null;
996
+ }[];
997
+ checklist: {
998
+ hasTravelers: boolean;
999
+ hasPrimaryTraveler: boolean;
1000
+ hasItems: boolean;
1001
+ hasAllocations: boolean;
1002
+ readyForConfirmation: boolean;
1003
+ };
1004
+ state: {
1005
+ sessionId: string;
1006
+ stateKey: "wizard";
1007
+ currentStep: string | null;
1008
+ completedSteps: string[];
1009
+ payload: Record<string, unknown>;
1010
+ version: number;
1011
+ createdAt: string;
1012
+ updatedAt: string;
1013
+ } | null;
1014
+ checkoutCapability?: {
1015
+ token: string;
1016
+ expiresAt: string;
1017
+ actions: ("session:read" | "session:update" | "session:reprice" | "session:finalize" | "payment:read" | "payment:start")[];
1018
+ } | undefined;
1019
+ }>;
1020
+ export declare function getPublicBookingSessionState(client: ResolvedClientOptions, sessionId: string): Promise<{
1021
+ sessionId: string;
1022
+ stateKey: "wizard";
1023
+ currentStep: string | null;
1024
+ completedSteps: string[];
1025
+ payload: Record<string, unknown>;
1026
+ version: number;
1027
+ createdAt: string;
1028
+ updatedAt: string;
1029
+ }>;
1030
+ export declare function updatePublicBookingSessionState(client: ResolvedClientOptions, sessionId: string, input: PublicUpsertBookingSessionStateInput, options?: StorefrontRequestOptions): Promise<{
1031
+ sessionId: string;
1032
+ stateKey: "wizard";
1033
+ currentStep: string | null;
1034
+ completedSteps: string[];
1035
+ payload: Record<string, unknown>;
1036
+ version: number;
1037
+ createdAt: string;
1038
+ updatedAt: string;
1039
+ }>;
1040
+ export declare function repricePublicBookingSession(client: ResolvedClientOptions, sessionId: string, input: PublicBookingSessionRepriceInput, options?: StorefrontRequestOptions): Promise<{
1041
+ pricing: {
1042
+ sessionId: string;
1043
+ catalogId: string | null;
1044
+ currencyCode: string;
1045
+ totalSellAmountCents: number;
1046
+ items: {
1047
+ itemId: string;
1048
+ title: string;
1049
+ productId: string | null;
1050
+ optionId: string | null;
1051
+ optionUnitId: string | null;
1052
+ optionUnitName: string | null;
1053
+ optionUnitType: string | null;
1054
+ pricingCategoryId: string | null;
1055
+ quantity: number;
1056
+ pricingMode: string;
1057
+ unitSellAmountCents: number | null;
1058
+ totalSellAmountCents: number | null;
1059
+ warnings: string[];
1060
+ }[];
1061
+ warnings: string[];
1062
+ appliedToSession: boolean;
1063
+ };
1064
+ session: {
1065
+ sessionId: string;
1066
+ bookingNumber: string;
1067
+ status: "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress" | "completed" | "expired" | "cancelled";
1068
+ externalBookingRef: string | null;
1069
+ communicationLanguage: string | null;
1070
+ sellCurrency: string;
1071
+ sellAmountCents: number | null;
1072
+ startDate: string | null;
1073
+ endDate: string | null;
1074
+ pax: number | null;
1075
+ holdExpiresAt: string | null;
1076
+ confirmedAt: string | null;
1077
+ expiredAt: string | null;
1078
+ cancelledAt: string | null;
1079
+ completedAt: string | null;
1080
+ travelers: {
1081
+ id: string;
1082
+ participantType: "traveler" | "occupant" | "other";
1083
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
1084
+ firstName: string;
1085
+ lastName: string;
1086
+ email: string | null;
1087
+ phone: string | null;
1088
+ preferredLanguage: string | null;
1089
+ specialRequests: string | null;
1090
+ isPrimary: boolean;
1091
+ notes: string | null;
1092
+ }[];
1093
+ items: {
1094
+ id: string;
1095
+ title: string;
1096
+ description: string | null;
1097
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
1098
+ status: "draft" | "on_hold" | "confirmed" | "expired" | "cancelled" | "fulfilled";
1099
+ serviceDate: string | null;
1100
+ startsAt: string | null;
1101
+ endsAt: string | null;
1102
+ quantity: number;
1103
+ sellCurrency: string;
1104
+ unitSellAmountCents: number | null;
1105
+ totalSellAmountCents: number | null;
1106
+ costCurrency: string | null;
1107
+ unitCostAmountCents: number | null;
1108
+ totalCostAmountCents: number | null;
1109
+ notes: string | null;
1110
+ productId: string | null;
1111
+ optionId: string | null;
1112
+ optionUnitId: string | null;
1113
+ pricingCategoryId: string | null;
1114
+ travelerLinks: {
1115
+ id: string;
1116
+ travelerId: string;
1117
+ role: "traveler" | "occupant" | "other" | "beneficiary";
1118
+ isPrimary: boolean;
1119
+ }[];
1120
+ }[];
1121
+ allocations: {
1122
+ id: string;
1123
+ bookingItemId: string | null;
1124
+ productId: string | null;
1125
+ optionId: string | null;
1126
+ optionUnitId: string | null;
1127
+ pricingCategoryId: string | null;
1128
+ availabilitySlotId: string | null;
1129
+ quantity: number;
1130
+ allocationType: "unit" | "pickup" | "resource";
1131
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
1132
+ holdExpiresAt: string | null;
1133
+ confirmedAt: string | null;
1134
+ releasedAt: string | null;
1135
+ }[];
1136
+ checklist: {
1137
+ hasTravelers: boolean;
1138
+ hasPrimaryTraveler: boolean;
1139
+ hasItems: boolean;
1140
+ hasAllocations: boolean;
1141
+ readyForConfirmation: boolean;
1142
+ };
1143
+ state: {
1144
+ sessionId: string;
1145
+ stateKey: "wizard";
1146
+ currentStep: string | null;
1147
+ completedSteps: string[];
1148
+ payload: Record<string, unknown>;
1149
+ version: number;
1150
+ createdAt: string;
1151
+ updatedAt: string;
1152
+ } | null;
1153
+ checkoutCapability?: {
1154
+ token: string;
1155
+ expiresAt: string;
1156
+ actions: ("session:read" | "session:update" | "session:reprice" | "session:finalize" | "payment:read" | "payment:start")[];
1157
+ } | undefined;
1158
+ } | null;
1159
+ }>;
1160
+ export declare function confirmPublicBookingSession(client: ResolvedClientOptions, sessionId: string, input?: PublicBookingSessionMutationInput, options?: StorefrontRequestOptions): Promise<{
1161
+ sessionId: string;
1162
+ bookingNumber: string;
1163
+ status: "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress" | "completed" | "expired" | "cancelled";
1164
+ externalBookingRef: string | null;
1165
+ communicationLanguage: string | null;
1166
+ sellCurrency: string;
1167
+ sellAmountCents: number | null;
1168
+ startDate: string | null;
1169
+ endDate: string | null;
1170
+ pax: number | null;
1171
+ holdExpiresAt: string | null;
1172
+ confirmedAt: string | null;
1173
+ expiredAt: string | null;
1174
+ cancelledAt: string | null;
1175
+ completedAt: string | null;
1176
+ travelers: {
1177
+ id: string;
1178
+ participantType: "traveler" | "occupant" | "other";
1179
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
1180
+ firstName: string;
1181
+ lastName: string;
1182
+ email: string | null;
1183
+ phone: string | null;
1184
+ preferredLanguage: string | null;
1185
+ specialRequests: string | null;
1186
+ isPrimary: boolean;
1187
+ notes: string | null;
1188
+ }[];
1189
+ items: {
1190
+ id: string;
1191
+ title: string;
1192
+ description: string | null;
1193
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
1194
+ status: "draft" | "on_hold" | "confirmed" | "expired" | "cancelled" | "fulfilled";
1195
+ serviceDate: string | null;
1196
+ startsAt: string | null;
1197
+ endsAt: string | null;
1198
+ quantity: number;
1199
+ sellCurrency: string;
1200
+ unitSellAmountCents: number | null;
1201
+ totalSellAmountCents: number | null;
1202
+ costCurrency: string | null;
1203
+ unitCostAmountCents: number | null;
1204
+ totalCostAmountCents: number | null;
1205
+ notes: string | null;
1206
+ productId: string | null;
1207
+ optionId: string | null;
1208
+ optionUnitId: string | null;
1209
+ pricingCategoryId: string | null;
1210
+ travelerLinks: {
1211
+ id: string;
1212
+ travelerId: string;
1213
+ role: "traveler" | "occupant" | "other" | "beneficiary";
1214
+ isPrimary: boolean;
1215
+ }[];
1216
+ }[];
1217
+ allocations: {
1218
+ id: string;
1219
+ bookingItemId: string | null;
1220
+ productId: string | null;
1221
+ optionId: string | null;
1222
+ optionUnitId: string | null;
1223
+ pricingCategoryId: string | null;
1224
+ availabilitySlotId: string | null;
1225
+ quantity: number;
1226
+ allocationType: "unit" | "pickup" | "resource";
1227
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
1228
+ holdExpiresAt: string | null;
1229
+ confirmedAt: string | null;
1230
+ releasedAt: string | null;
1231
+ }[];
1232
+ checklist: {
1233
+ hasTravelers: boolean;
1234
+ hasPrimaryTraveler: boolean;
1235
+ hasItems: boolean;
1236
+ hasAllocations: boolean;
1237
+ readyForConfirmation: boolean;
1238
+ };
1239
+ state: {
1240
+ sessionId: string;
1241
+ stateKey: "wizard";
1242
+ currentStep: string | null;
1243
+ completedSteps: string[];
1244
+ payload: Record<string, unknown>;
1245
+ version: number;
1246
+ createdAt: string;
1247
+ updatedAt: string;
1248
+ } | null;
1249
+ checkoutCapability?: {
1250
+ token: string;
1251
+ expiresAt: string;
1252
+ actions: ("session:read" | "session:update" | "session:reprice" | "session:finalize" | "payment:read" | "payment:start")[];
1253
+ } | undefined;
1254
+ }>;
1255
+ export declare function expirePublicBookingSession(client: ResolvedClientOptions, sessionId: string, input?: PublicBookingSessionMutationInput, options?: StorefrontRequestOptions): Promise<{
1256
+ sessionId: string;
1257
+ bookingNumber: string;
1258
+ status: "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress" | "completed" | "expired" | "cancelled";
1259
+ externalBookingRef: string | null;
1260
+ communicationLanguage: string | null;
1261
+ sellCurrency: string;
1262
+ sellAmountCents: number | null;
1263
+ startDate: string | null;
1264
+ endDate: string | null;
1265
+ pax: number | null;
1266
+ holdExpiresAt: string | null;
1267
+ confirmedAt: string | null;
1268
+ expiredAt: string | null;
1269
+ cancelledAt: string | null;
1270
+ completedAt: string | null;
1271
+ travelers: {
1272
+ id: string;
1273
+ participantType: "traveler" | "occupant" | "other";
1274
+ travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
1275
+ firstName: string;
1276
+ lastName: string;
1277
+ email: string | null;
1278
+ phone: string | null;
1279
+ preferredLanguage: string | null;
1280
+ specialRequests: string | null;
1281
+ isPrimary: boolean;
1282
+ notes: string | null;
1283
+ }[];
1284
+ items: {
1285
+ id: string;
1286
+ title: string;
1287
+ description: string | null;
1288
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
1289
+ status: "draft" | "on_hold" | "confirmed" | "expired" | "cancelled" | "fulfilled";
1290
+ serviceDate: string | null;
1291
+ startsAt: string | null;
1292
+ endsAt: string | null;
1293
+ quantity: number;
1294
+ sellCurrency: string;
1295
+ unitSellAmountCents: number | null;
1296
+ totalSellAmountCents: number | null;
1297
+ costCurrency: string | null;
1298
+ unitCostAmountCents: number | null;
1299
+ totalCostAmountCents: number | null;
1300
+ notes: string | null;
1301
+ productId: string | null;
1302
+ optionId: string | null;
1303
+ optionUnitId: string | null;
1304
+ pricingCategoryId: string | null;
1305
+ travelerLinks: {
1306
+ id: string;
1307
+ travelerId: string;
1308
+ role: "traveler" | "occupant" | "other" | "beneficiary";
1309
+ isPrimary: boolean;
1310
+ }[];
1311
+ }[];
1312
+ allocations: {
1313
+ id: string;
1314
+ bookingItemId: string | null;
1315
+ productId: string | null;
1316
+ optionId: string | null;
1317
+ optionUnitId: string | null;
1318
+ pricingCategoryId: string | null;
1319
+ availabilitySlotId: string | null;
1320
+ quantity: number;
1321
+ allocationType: "unit" | "pickup" | "resource";
1322
+ status: "confirmed" | "expired" | "cancelled" | "fulfilled" | "held" | "released";
1323
+ holdExpiresAt: string | null;
1324
+ confirmedAt: string | null;
1325
+ releasedAt: string | null;
1326
+ }[];
1327
+ checklist: {
1328
+ hasTravelers: boolean;
1329
+ hasPrimaryTraveler: boolean;
1330
+ hasItems: boolean;
1331
+ hasAllocations: boolean;
1332
+ readyForConfirmation: boolean;
1333
+ };
1334
+ state: {
1335
+ sessionId: string;
1336
+ stateKey: "wizard";
1337
+ currentStep: string | null;
1338
+ completedSteps: string[];
1339
+ payload: Record<string, unknown>;
1340
+ version: number;
1341
+ createdAt: string;
1342
+ updatedAt: string;
1343
+ } | null;
1344
+ checkoutCapability?: {
1345
+ token: string;
1346
+ expiresAt: string;
1347
+ actions: ("session:read" | "session:update" | "session:reprice" | "session:finalize" | "payment:read" | "payment:start")[];
1348
+ } | undefined;
1349
+ }>;
1350
+ export declare function getPublicBookingOverview(client: ResolvedClientOptions, query: PublicBookingOverviewLookupQuery): Promise<{
1351
+ bookingId: string;
1352
+ bookingNumber: string;
1353
+ status: "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress" | "completed" | "expired" | "cancelled";
1354
+ sellCurrency: string;
1355
+ sellAmountCents: number | null;
1356
+ startDate: string | null;
1357
+ endDate: string | null;
1358
+ pax: number | null;
1359
+ confirmedAt: string | null;
1360
+ cancelledAt: string | null;
1361
+ completedAt: string | null;
1362
+ travelers: {
1363
+ id: string;
1364
+ participantType: "traveler" | "occupant" | "other";
1365
+ firstName: string;
1366
+ lastName: string;
1367
+ isPrimary: boolean;
1368
+ }[];
1369
+ items: {
1370
+ id: string;
1371
+ title: string;
1372
+ description: string | null;
1373
+ itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
1374
+ status: "draft" | "on_hold" | "confirmed" | "expired" | "cancelled" | "fulfilled";
1375
+ serviceDate: string | null;
1376
+ startsAt: string | null;
1377
+ endsAt: string | null;
1378
+ quantity: number;
1379
+ sellCurrency: string;
1380
+ unitSellAmountCents: number | null;
1381
+ totalSellAmountCents: number | null;
1382
+ costCurrency: string | null;
1383
+ unitCostAmountCents: number | null;
1384
+ totalCostAmountCents: number | null;
1385
+ notes: string | null;
1386
+ productId: string | null;
1387
+ optionId: string | null;
1388
+ optionUnitId: string | null;
1389
+ pricingCategoryId: string | null;
1390
+ travelerLinks: {
1391
+ id: string;
1392
+ travelerId: string;
1393
+ role: "traveler" | "occupant" | "other" | "beneficiary";
1394
+ isPrimary: boolean;
1395
+ }[];
1396
+ }[];
1397
+ documents: {
1398
+ id: string;
1399
+ travelerId: string | null;
1400
+ type: "other" | "visa" | "insurance" | "health" | "passport_copy";
1401
+ fileName: string;
1402
+ fileUrl: string;
1403
+ }[];
1404
+ fulfillments: {
1405
+ id: string;
1406
+ bookingItemId: string | null;
1407
+ travelerId: string | null;
1408
+ fulfillmentType: "other" | "voucher" | "ticket" | "pdf" | "qr_code" | "barcode" | "mobile";
1409
+ deliveryChannel: "other" | "email" | "download" | "api" | "wallet";
1410
+ status: "pending" | "issued" | "reissued" | "revoked" | "failed";
1411
+ artifactUrl: string | null;
1412
+ }[];
1413
+ }>;
1414
+ export declare function previewCheckoutCollection(client: ResolvedClientOptions, bookingId: string, input: PreviewCheckoutCollectionInput, options?: StorefrontRequestOptions): Promise<{
1415
+ bookingId: string;
1416
+ method: "card" | "bank_transfer";
1417
+ stage: "initial" | "reminder" | "manual";
1418
+ paymentSessionTarget: "schedule" | "invoice" | null;
1419
+ documentType: "invoice" | "proforma" | null;
1420
+ willCreateDefaultPaymentPlan: boolean;
1421
+ selectedSchedule: {
1422
+ id: string;
1423
+ bookingId: string;
1424
+ bookingItemId: string | null;
1425
+ scheduleType: string;
1426
+ status: string;
1427
+ dueDate: string;
1428
+ currency: string;
1429
+ amountCents: number;
1430
+ notes: string | null;
1431
+ } | null;
1432
+ selectedInvoice: {
1433
+ id: string;
1434
+ invoiceNumber: string;
1435
+ invoiceType: string;
1436
+ bookingId: string;
1437
+ personId: string | null;
1438
+ organizationId: string | null;
1439
+ status: string;
1440
+ currency: string;
1441
+ totalCents: number;
1442
+ paidCents: number;
1443
+ balanceDueCents: number;
1444
+ issueDate: string;
1445
+ dueDate: string;
1446
+ notes: string | null;
1447
+ createdAt: string;
1448
+ updatedAt: string;
1449
+ } | null;
1450
+ amountCents: number;
1451
+ currency: string;
1452
+ recommendedAction: "none" | "create_bank_transfer_document" | "create_payment_session" | "create_invoice_then_payment_session";
1453
+ }>;
1454
+ export declare function initiateCheckoutCollection(client: ResolvedClientOptions, bookingId: string, input: InitiateCheckoutCollectionInput, options?: StorefrontRequestOptions): Promise<{
1455
+ plan: {
1456
+ bookingId: string;
1457
+ method: "card" | "bank_transfer";
1458
+ stage: "initial" | "reminder" | "manual";
1459
+ paymentSessionTarget: "schedule" | "invoice" | null;
1460
+ documentType: "invoice" | "proforma" | null;
1461
+ willCreateDefaultPaymentPlan: boolean;
1462
+ selectedSchedule: {
1463
+ id: string;
1464
+ bookingId: string;
1465
+ bookingItemId: string | null;
1466
+ scheduleType: string;
1467
+ status: string;
1468
+ dueDate: string;
1469
+ currency: string;
1470
+ amountCents: number;
1471
+ notes: string | null;
1472
+ } | null;
1473
+ selectedInvoice: {
1474
+ id: string;
1475
+ invoiceNumber: string;
1476
+ invoiceType: string;
1477
+ bookingId: string;
1478
+ personId: string | null;
1479
+ organizationId: string | null;
1480
+ status: string;
1481
+ currency: string;
1482
+ totalCents: number;
1483
+ paidCents: number;
1484
+ balanceDueCents: number;
1485
+ issueDate: string;
1486
+ dueDate: string;
1487
+ notes: string | null;
1488
+ createdAt: string;
1489
+ updatedAt: string;
1490
+ } | null;
1491
+ amountCents: number;
1492
+ currency: string;
1493
+ recommendedAction: "none" | "create_bank_transfer_document" | "create_payment_session" | "create_invoice_then_payment_session";
1494
+ };
1495
+ invoice: {
1496
+ id: string;
1497
+ invoiceNumber: string;
1498
+ invoiceType: string;
1499
+ bookingId: string;
1500
+ personId: string | null;
1501
+ organizationId: string | null;
1502
+ status: string;
1503
+ currency: string;
1504
+ totalCents: number;
1505
+ paidCents: number;
1506
+ balanceDueCents: number;
1507
+ issueDate: string;
1508
+ dueDate: string;
1509
+ notes: string | null;
1510
+ createdAt: string;
1511
+ updatedAt: string;
1512
+ } | null;
1513
+ paymentSession: {
1514
+ legacyOrderId: string | null;
1515
+ target: {
1516
+ type: "booking";
1517
+ bookingId: string;
1518
+ } | {
1519
+ type: "invoice";
1520
+ invoiceId: string;
1521
+ } | {
1522
+ type: "booking_payment_schedule";
1523
+ bookingPaymentScheduleId: string;
1524
+ } | {
1525
+ type: "booking_guarantee";
1526
+ bookingGuaranteeId: string;
1527
+ } | {
1528
+ type: "flight_order";
1529
+ flightOrderId: string;
1530
+ } | {
1531
+ type: "program";
1532
+ programId: string;
1533
+ } | {
1534
+ type: "supplier_settlement";
1535
+ supplierSettlementId: string;
1536
+ } | {
1537
+ type: "channel_settlement";
1538
+ channelSettlementId: string;
1539
+ } | {
1540
+ type: "provider_reference";
1541
+ provider: string;
1542
+ reference: string;
1543
+ } | {
1544
+ type: "legacy_order";
1545
+ legacyOrderId: string;
1546
+ } | null;
1547
+ provenance: {
1548
+ source: "other" | "operator" | "storefront" | "customer_portal" | "payment_provider" | "supplier_channel" | "migration";
1549
+ provider?: string | null | undefined;
1550
+ reference?: string | null | undefined;
1551
+ idempotencyKey?: string | null | undefined;
1552
+ } | null;
1553
+ id: string;
1554
+ targetType: "other" | "invoice" | "booking" | "booking_payment_schedule" | "booking_guarantee" | "flight_order" | "order";
1555
+ targetId: string | null;
1556
+ bookingId: string | null;
1557
+ invoiceId: string | null;
1558
+ bookingPaymentScheduleId: string | null;
1559
+ bookingGuaranteeId: string | null;
1560
+ status: "expired" | "cancelled" | "pending" | "failed" | "requires_redirect" | "processing" | "authorized" | "paid";
1561
+ provider: string | null;
1562
+ providerSessionId: string | null;
1563
+ providerPaymentId: string | null;
1564
+ externalReference: string | null;
1565
+ clientReference: string | null;
1566
+ currency: string;
1567
+ amountCents: number;
1568
+ paymentMethod: "other" | "voucher" | "wallet" | "bank_transfer" | "credit_card" | "debit_card" | "cash" | "cheque" | "direct_bill" | null;
1569
+ payerEmail: string | null;
1570
+ payerName: string | null;
1571
+ redirectUrl: string | null;
1572
+ returnUrl: string | null;
1573
+ cancelUrl: string | null;
1574
+ expiresAt: string | null;
1575
+ completedAt: string | null;
1576
+ failureCode: string | null;
1577
+ failureMessage: string | null;
1578
+ notes: string | null;
1579
+ } | null;
1580
+ invoiceNotification: {
1581
+ id: string;
1582
+ templateSlug: string | null;
1583
+ channel: "email" | "sms";
1584
+ provider: string;
1585
+ status: "cancelled" | "pending" | "failed" | "sent";
1586
+ toAddress: string;
1587
+ subject: string | null;
1588
+ sentAt: string | null;
1589
+ failedAt: string | null;
1590
+ errorMessage: string | null;
1591
+ } | null;
1592
+ paymentSessionNotification: {
1593
+ id: string;
1594
+ templateSlug: string | null;
1595
+ channel: "email" | "sms";
1596
+ provider: string;
1597
+ status: "cancelled" | "pending" | "failed" | "sent";
1598
+ toAddress: string;
1599
+ subject: string | null;
1600
+ sentAt: string | null;
1601
+ failedAt: string | null;
1602
+ errorMessage: string | null;
1603
+ } | null;
1604
+ bankTransferInstructions: {
1605
+ provider: string | null;
1606
+ invoiceId: string;
1607
+ invoiceNumber: string;
1608
+ documentType: "invoice" | "proforma";
1609
+ amountCents: number;
1610
+ currency: string;
1611
+ dueDate: string | null;
1612
+ beneficiary: string;
1613
+ iban: string;
1614
+ bankName: string | null;
1615
+ notes: string | null;
1616
+ } | null;
1617
+ providerStart: {
1618
+ provider: string;
1619
+ paymentSessionId: string;
1620
+ redirectUrl: string | null;
1621
+ externalReference: string | null;
1622
+ providerSessionId: string | null;
1623
+ providerPaymentId: string | null;
1624
+ response: Record<string, unknown> | null;
1625
+ } | null;
1626
+ }>;
1627
+ export declare function bootstrapCheckoutCollection(client: ResolvedClientOptions, input: BootstrapCheckoutCollectionInput, options?: StorefrontRequestOptions): Promise<{
1628
+ plan: {
1629
+ bookingId: string;
1630
+ method: "card" | "bank_transfer";
1631
+ stage: "initial" | "reminder" | "manual";
1632
+ paymentSessionTarget: "schedule" | "invoice" | null;
1633
+ documentType: "invoice" | "proforma" | null;
1634
+ willCreateDefaultPaymentPlan: boolean;
1635
+ selectedSchedule: {
1636
+ id: string;
1637
+ bookingId: string;
1638
+ bookingItemId: string | null;
1639
+ scheduleType: string;
1640
+ status: string;
1641
+ dueDate: string;
1642
+ currency: string;
1643
+ amountCents: number;
1644
+ notes: string | null;
1645
+ } | null;
1646
+ selectedInvoice: {
1647
+ id: string;
1648
+ invoiceNumber: string;
1649
+ invoiceType: string;
1650
+ bookingId: string;
1651
+ personId: string | null;
1652
+ organizationId: string | null;
1653
+ status: string;
1654
+ currency: string;
1655
+ totalCents: number;
1656
+ paidCents: number;
1657
+ balanceDueCents: number;
1658
+ issueDate: string;
1659
+ dueDate: string;
1660
+ notes: string | null;
1661
+ createdAt: string;
1662
+ updatedAt: string;
1663
+ } | null;
1664
+ amountCents: number;
1665
+ currency: string;
1666
+ recommendedAction: "none" | "create_bank_transfer_document" | "create_payment_session" | "create_invoice_then_payment_session";
1667
+ };
1668
+ invoice: {
1669
+ id: string;
1670
+ invoiceNumber: string;
1671
+ invoiceType: string;
1672
+ bookingId: string;
1673
+ personId: string | null;
1674
+ organizationId: string | null;
1675
+ status: string;
1676
+ currency: string;
1677
+ totalCents: number;
1678
+ paidCents: number;
1679
+ balanceDueCents: number;
1680
+ issueDate: string;
1681
+ dueDate: string;
1682
+ notes: string | null;
1683
+ createdAt: string;
1684
+ updatedAt: string;
1685
+ } | null;
1686
+ paymentSession: {
1687
+ legacyOrderId: string | null;
1688
+ target: {
1689
+ type: "booking";
1690
+ bookingId: string;
1691
+ } | {
1692
+ type: "invoice";
1693
+ invoiceId: string;
1694
+ } | {
1695
+ type: "booking_payment_schedule";
1696
+ bookingPaymentScheduleId: string;
1697
+ } | {
1698
+ type: "booking_guarantee";
1699
+ bookingGuaranteeId: string;
1700
+ } | {
1701
+ type: "flight_order";
1702
+ flightOrderId: string;
1703
+ } | {
1704
+ type: "program";
1705
+ programId: string;
1706
+ } | {
1707
+ type: "supplier_settlement";
1708
+ supplierSettlementId: string;
1709
+ } | {
1710
+ type: "channel_settlement";
1711
+ channelSettlementId: string;
1712
+ } | {
1713
+ type: "provider_reference";
1714
+ provider: string;
1715
+ reference: string;
1716
+ } | {
1717
+ type: "legacy_order";
1718
+ legacyOrderId: string;
1719
+ } | null;
1720
+ provenance: {
1721
+ source: "other" | "operator" | "storefront" | "customer_portal" | "payment_provider" | "supplier_channel" | "migration";
1722
+ provider?: string | null | undefined;
1723
+ reference?: string | null | undefined;
1724
+ idempotencyKey?: string | null | undefined;
1725
+ } | null;
1726
+ id: string;
1727
+ targetType: "other" | "invoice" | "booking" | "booking_payment_schedule" | "booking_guarantee" | "flight_order" | "order";
1728
+ targetId: string | null;
1729
+ bookingId: string | null;
1730
+ invoiceId: string | null;
1731
+ bookingPaymentScheduleId: string | null;
1732
+ bookingGuaranteeId: string | null;
1733
+ status: "expired" | "cancelled" | "pending" | "failed" | "requires_redirect" | "processing" | "authorized" | "paid";
1734
+ provider: string | null;
1735
+ providerSessionId: string | null;
1736
+ providerPaymentId: string | null;
1737
+ externalReference: string | null;
1738
+ clientReference: string | null;
1739
+ currency: string;
1740
+ amountCents: number;
1741
+ paymentMethod: "other" | "voucher" | "wallet" | "bank_transfer" | "credit_card" | "debit_card" | "cash" | "cheque" | "direct_bill" | null;
1742
+ payerEmail: string | null;
1743
+ payerName: string | null;
1744
+ redirectUrl: string | null;
1745
+ returnUrl: string | null;
1746
+ cancelUrl: string | null;
1747
+ expiresAt: string | null;
1748
+ completedAt: string | null;
1749
+ failureCode: string | null;
1750
+ failureMessage: string | null;
1751
+ notes: string | null;
1752
+ } | null;
1753
+ invoiceNotification: {
1754
+ id: string;
1755
+ templateSlug: string | null;
1756
+ channel: "email" | "sms";
1757
+ provider: string;
1758
+ status: "cancelled" | "pending" | "failed" | "sent";
1759
+ toAddress: string;
1760
+ subject: string | null;
1761
+ sentAt: string | null;
1762
+ failedAt: string | null;
1763
+ errorMessage: string | null;
1764
+ } | null;
1765
+ paymentSessionNotification: {
1766
+ id: string;
1767
+ templateSlug: string | null;
1768
+ channel: "email" | "sms";
1769
+ provider: string;
1770
+ status: "cancelled" | "pending" | "failed" | "sent";
1771
+ toAddress: string;
1772
+ subject: string | null;
1773
+ sentAt: string | null;
1774
+ failedAt: string | null;
1775
+ errorMessage: string | null;
1776
+ } | null;
1777
+ bankTransferInstructions: {
1778
+ provider: string | null;
1779
+ invoiceId: string;
1780
+ invoiceNumber: string;
1781
+ documentType: "invoice" | "proforma";
1782
+ amountCents: number;
1783
+ currency: string;
1784
+ dueDate: string | null;
1785
+ beneficiary: string;
1786
+ iban: string;
1787
+ bankName: string | null;
1788
+ notes: string | null;
1789
+ } | null;
1790
+ providerStart: {
1791
+ provider: string;
1792
+ paymentSessionId: string;
1793
+ redirectUrl: string | null;
1794
+ externalReference: string | null;
1795
+ providerSessionId: string | null;
1796
+ providerPaymentId: string | null;
1797
+ response: Record<string, unknown> | null;
1798
+ } | null;
1799
+ bookingId: string;
1800
+ sessionId: string;
1801
+ sourceType: "session" | "booking";
1802
+ intent: "custom" | "deposit" | "balance";
1803
+ }>;
1804
+ export {};
1805
+ //# sourceMappingURL=operations.d.ts.map