@voyant-travel/storefront-react 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.
Files changed (136) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +17 -0
  3. package/dist/client.d.ts +16 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +78 -0
  6. package/dist/components/storefront-settings-page.d.ts +5 -0
  7. package/dist/components/storefront-settings-page.d.ts.map +1 -0
  8. package/dist/components/storefront-settings-page.js +39 -0
  9. package/dist/customer-portal/client.d.ts +16 -0
  10. package/dist/customer-portal/client.d.ts.map +1 -0
  11. package/dist/customer-portal/client.js +78 -0
  12. package/dist/customer-portal/hooks/index.d.ts +12 -0
  13. package/dist/customer-portal/hooks/index.d.ts.map +1 -0
  14. package/dist/customer-portal/hooks/index.js +11 -0
  15. package/dist/customer-portal/hooks/use-customer-portal-booking-billing-contact.d.ts +18 -0
  16. package/dist/customer-portal/hooks/use-customer-portal-booking-billing-contact.d.ts.map +1 -0
  17. package/dist/customer-portal/hooks/use-customer-portal-booking-billing-contact.js +12 -0
  18. package/dist/customer-portal/hooks/use-customer-portal-booking-documents.d.ts +16 -0
  19. package/dist/customer-portal/hooks/use-customer-portal-booking-documents.d.ts.map +1 -0
  20. package/dist/customer-portal/hooks/use-customer-portal-booking-documents.js +12 -0
  21. package/dist/customer-portal/hooks/use-customer-portal-booking.d.ts +109 -0
  22. package/dist/customer-portal/hooks/use-customer-portal-booking.d.ts.map +1 -0
  23. package/dist/customer-portal/hooks/use-customer-portal-booking.js +12 -0
  24. package/dist/customer-portal/hooks/use-customer-portal-bookings.d.ts +22 -0
  25. package/dist/customer-portal/hooks/use-customer-portal-bookings.d.ts.map +1 -0
  26. package/dist/customer-portal/hooks/use-customer-portal-bookings.js +12 -0
  27. package/dist/customer-portal/hooks/use-customer-portal-companions.d.ts +42 -0
  28. package/dist/customer-portal/hooks/use-customer-portal-companions.d.ts.map +1 -0
  29. package/dist/customer-portal/hooks/use-customer-portal-companions.js +12 -0
  30. package/dist/customer-portal/hooks/use-customer-portal-contact-exists.d.ts +12 -0
  31. package/dist/customer-portal/hooks/use-customer-portal-contact-exists.d.ts.map +1 -0
  32. package/dist/customer-portal/hooks/use-customer-portal-contact-exists.js +12 -0
  33. package/dist/customer-portal/hooks/use-customer-portal-mutation.d.ts +419 -0
  34. package/dist/customer-portal/hooks/use-customer-portal-mutation.d.ts.map +1 -0
  35. package/dist/customer-portal/hooks/use-customer-portal-mutation.js +62 -0
  36. package/dist/customer-portal/hooks/use-customer-portal-phone-contact-exists.d.ts +13 -0
  37. package/dist/customer-portal/hooks/use-customer-portal-phone-contact-exists.d.ts.map +1 -0
  38. package/dist/customer-portal/hooks/use-customer-portal-phone-contact-exists.js +12 -0
  39. package/dist/customer-portal/hooks/use-customer-portal-profile-document-mutation.d.ts +69 -0
  40. package/dist/customer-portal/hooks/use-customer-portal-profile-document-mutation.d.ts.map +1 -0
  41. package/dist/customer-portal/hooks/use-customer-portal-profile-document-mutation.js +28 -0
  42. package/dist/customer-portal/hooks/use-customer-portal-profile-documents.d.ts +20 -0
  43. package/dist/customer-portal/hooks/use-customer-portal-profile-documents.d.ts.map +1 -0
  44. package/dist/customer-portal/hooks/use-customer-portal-profile-documents.js +12 -0
  45. package/dist/customer-portal/hooks/use-customer-portal-profile.d.ts +61 -0
  46. package/dist/customer-portal/hooks/use-customer-portal-profile.d.ts.map +1 -0
  47. package/dist/customer-portal/hooks/use-customer-portal-profile.js +12 -0
  48. package/dist/customer-portal/index.d.ts +9 -0
  49. package/dist/customer-portal/index.d.ts.map +1 -0
  50. package/dist/customer-portal/index.js +7 -0
  51. package/dist/customer-portal/operations.d.ts +595 -0
  52. package/dist/customer-portal/operations.d.ts.map +1 -0
  53. package/dist/customer-portal/operations.js +84 -0
  54. package/dist/customer-portal/provider.d.ts +2 -0
  55. package/dist/customer-portal/provider.d.ts.map +1 -0
  56. package/dist/customer-portal/provider.js +1 -0
  57. package/dist/customer-portal/query-keys.d.ts +21 -0
  58. package/dist/customer-portal/query-keys.d.ts.map +1 -0
  59. package/dist/customer-portal/query-keys.js +14 -0
  60. package/dist/customer-portal/query-options.d.ts +1148 -0
  61. package/dist/customer-portal/query-options.d.ts.map +1 -0
  62. package/dist/customer-portal/query-options.js +58 -0
  63. package/dist/customer-portal/schemas.d.ts +751 -0
  64. package/dist/customer-portal/schemas.d.ts.map +1 -0
  65. package/dist/customer-portal/schemas.js +21 -0
  66. package/dist/hooks/index.d.ts +12 -0
  67. package/dist/hooks/index.d.ts.map +1 -0
  68. package/dist/hooks/index.js +11 -0
  69. package/dist/hooks/use-admin-storefront-settings.d.ts +290 -0
  70. package/dist/hooks/use-admin-storefront-settings.d.ts.map +1 -0
  71. package/dist/hooks/use-admin-storefront-settings.js +29 -0
  72. package/dist/hooks/use-storefront-departure-itinerary.d.ts +23 -0
  73. package/dist/hooks/use-storefront-departure-itinerary.d.ts.map +1 -0
  74. package/dist/hooks/use-storefront-departure-itinerary.js +12 -0
  75. package/dist/hooks/use-storefront-departure-price-preview-mutation.d.ts +244 -0
  76. package/dist/hooks/use-storefront-departure-price-preview-mutation.d.ts.map +1 -0
  77. package/dist/hooks/use-storefront-departure-price-preview-mutation.js +15 -0
  78. package/dist/hooks/use-storefront-departure.d.ts +51 -0
  79. package/dist/hooks/use-storefront-departure.d.ts.map +1 -0
  80. package/dist/hooks/use-storefront-departure.js +12 -0
  81. package/dist/hooks/use-storefront-offer-apply-mutation.d.ts +68 -0
  82. package/dist/hooks/use-storefront-offer-apply-mutation.d.ts.map +1 -0
  83. package/dist/hooks/use-storefront-offer-apply-mutation.js +15 -0
  84. package/dist/hooks/use-storefront-offer-redeem-mutation.d.ts +69 -0
  85. package/dist/hooks/use-storefront-offer-redeem-mutation.d.ts.map +1 -0
  86. package/dist/hooks/use-storefront-offer-redeem-mutation.js +12 -0
  87. package/dist/hooks/use-storefront-offer.d.ts +26 -0
  88. package/dist/hooks/use-storefront-offer.d.ts.map +1 -0
  89. package/dist/hooks/use-storefront-offer.js +12 -0
  90. package/dist/hooks/use-storefront-product-departures.d.ts +55 -0
  91. package/dist/hooks/use-storefront-product-departures.d.ts.map +1 -0
  92. package/dist/hooks/use-storefront-product-departures.js +12 -0
  93. package/dist/hooks/use-storefront-product-extensions.d.ts +47 -0
  94. package/dist/hooks/use-storefront-product-extensions.d.ts.map +1 -0
  95. package/dist/hooks/use-storefront-product-extensions.js +12 -0
  96. package/dist/hooks/use-storefront-product-offers.d.ts +26 -0
  97. package/dist/hooks/use-storefront-product-offers.d.ts.map +1 -0
  98. package/dist/hooks/use-storefront-product-offers.js +12 -0
  99. package/dist/hooks/use-storefront-settings.d.ts +101 -0
  100. package/dist/hooks/use-storefront-settings.d.ts.map +1 -0
  101. package/dist/hooks/use-storefront-settings.js +12 -0
  102. package/dist/index.d.ts +8 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +7 -0
  105. package/dist/internal/storefront-settings-form.d.ts +50 -0
  106. package/dist/internal/storefront-settings-form.d.ts.map +1 -0
  107. package/dist/internal/storefront-settings-form.js +246 -0
  108. package/dist/internal/storefront-settings-payment-section.d.ts +12 -0
  109. package/dist/internal/storefront-settings-payment-section.d.ts.map +1 -0
  110. package/dist/internal/storefront-settings-payment-section.js +14 -0
  111. package/dist/internal/storefront-settings-sections.d.ts +23 -0
  112. package/dist/internal/storefront-settings-sections.d.ts.map +1 -0
  113. package/dist/internal/storefront-settings-sections.js +32 -0
  114. package/dist/operations.d.ts +827 -0
  115. package/dist/operations.d.ts.map +1 -0
  116. package/dist/operations.js +46 -0
  117. package/dist/operations.test.d.ts +2 -0
  118. package/dist/operations.test.d.ts.map +1 -0
  119. package/dist/operations.test.js +77 -0
  120. package/dist/provider.d.ts +2 -0
  121. package/dist/provider.d.ts.map +1 -0
  122. package/dist/provider.js +1 -0
  123. package/dist/query-keys.d.ts +32 -0
  124. package/dist/query-keys.d.ts.map +1 -0
  125. package/dist/query-keys.js +15 -0
  126. package/dist/query-options.d.ts +1648 -0
  127. package/dist/query-options.d.ts.map +1 -0
  128. package/dist/query-options.js +52 -0
  129. package/dist/schemas.d.ts +576 -0
  130. package/dist/schemas.d.ts.map +1 -0
  131. package/dist/schemas.js +11 -0
  132. package/dist/ui.d.ts +2 -0
  133. package/dist/ui.d.ts.map +1 -0
  134. package/dist/ui.js +1 -0
  135. package/package.json +133 -0
  136. package/src/styles.css +1 -0
@@ -0,0 +1,827 @@
1
+ import { type FetchWithValidationOptions } from "./client.js";
2
+ import { type StorefrontDepartureListQuery, type StorefrontDeparturePricePreviewInput, type StorefrontOfferApplyInput, type StorefrontOfferRedeemInput, type StorefrontProductExtensionsQuery, type StorefrontPromotionalOfferListQuery, type StorefrontSettingsPatchInput } from "./schemas.js";
3
+ export declare function getStorefrontSettings(client: FetchWithValidationOptions): Promise<{
4
+ data: {
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" | "name" | "code";
30
+ };
31
+ forms: {
32
+ billing: {
33
+ fields: {
34
+ key: string;
35
+ label: string;
36
+ type: "select" | "textarea" | "text" | "date" | "email" | "tel" | "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: "select" | "textarea" | "text" | "date" | "email" | "tel" | "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: "card" | "bank_transfer" | "cash" | "voucher" | "invoice" | null;
65
+ methods: {
66
+ code: "card" | "bank_transfer" | "cash" | "voucher" | "invoice";
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
+ }>;
100
+ export declare function getAdminStorefrontSettings(client: FetchWithValidationOptions): Promise<{
101
+ data: {
102
+ branding: {
103
+ logoUrl: string | null;
104
+ faviconUrl: string | null;
105
+ brandMarkUrl: string | null;
106
+ primaryColor: string | null;
107
+ accentColor: string | null;
108
+ supportedLanguages: string[];
109
+ };
110
+ support: {
111
+ email: string | null;
112
+ phone: string | null;
113
+ links: {
114
+ label: string;
115
+ url: string;
116
+ }[];
117
+ };
118
+ legal: {
119
+ termsUrl: string | null;
120
+ privacyUrl: string | null;
121
+ cancellationUrl: string | null;
122
+ defaultContractTemplateId: string | null;
123
+ };
124
+ localization: {
125
+ defaultLocale: string | null;
126
+ currencyDisplay: "symbol" | "name" | "code";
127
+ };
128
+ forms: {
129
+ billing: {
130
+ fields: {
131
+ key: string;
132
+ label: string;
133
+ type: "select" | "textarea" | "text" | "date" | "email" | "tel" | "checkbox" | "country";
134
+ required: boolean;
135
+ placeholder: string | null;
136
+ description: string | null;
137
+ autocomplete: string | null;
138
+ options: {
139
+ value: string;
140
+ label: string;
141
+ }[];
142
+ }[];
143
+ };
144
+ travelers: {
145
+ fields: {
146
+ key: string;
147
+ label: string;
148
+ type: "select" | "textarea" | "text" | "date" | "email" | "tel" | "checkbox" | "country";
149
+ required: boolean;
150
+ placeholder: string | null;
151
+ description: string | null;
152
+ autocomplete: string | null;
153
+ options: {
154
+ value: string;
155
+ label: string;
156
+ }[];
157
+ }[];
158
+ };
159
+ };
160
+ payment: {
161
+ defaultMethod: "card" | "bank_transfer" | "cash" | "voucher" | "invoice" | null;
162
+ methods: {
163
+ code: "card" | "bank_transfer" | "cash" | "voucher" | "invoice";
164
+ label: string;
165
+ description: string | null;
166
+ enabled: boolean;
167
+ }[];
168
+ structure: "split" | "full";
169
+ schedule: {
170
+ percent: number;
171
+ dueInDays: number;
172
+ dueCondition: "after_booking" | "before_departure";
173
+ }[];
174
+ defaultSchedule: {
175
+ depositPercent: number | null;
176
+ balanceDueDaysBeforeDeparture: number | null;
177
+ } | null;
178
+ bankTransfer: {
179
+ dueDays: number | null;
180
+ account: {
181
+ provider: string | null;
182
+ currency: string | null;
183
+ iban: string;
184
+ beneficiary: string;
185
+ bank: string;
186
+ } | null;
187
+ accountHolder: string | null;
188
+ bankName: string | null;
189
+ iban: string | null;
190
+ bic: string | null;
191
+ paymentReference: string | null;
192
+ instructions: string | null;
193
+ } | null;
194
+ };
195
+ };
196
+ }>;
197
+ export declare function updateAdminStorefrontSettings(client: FetchWithValidationOptions, input: StorefrontSettingsPatchInput): Promise<{
198
+ data: {
199
+ branding: {
200
+ logoUrl: string | null;
201
+ faviconUrl: string | null;
202
+ brandMarkUrl: string | null;
203
+ primaryColor: string | null;
204
+ accentColor: string | null;
205
+ supportedLanguages: string[];
206
+ };
207
+ support: {
208
+ email: string | null;
209
+ phone: string | null;
210
+ links: {
211
+ label: string;
212
+ url: string;
213
+ }[];
214
+ };
215
+ legal: {
216
+ termsUrl: string | null;
217
+ privacyUrl: string | null;
218
+ cancellationUrl: string | null;
219
+ defaultContractTemplateId: string | null;
220
+ };
221
+ localization: {
222
+ defaultLocale: string | null;
223
+ currencyDisplay: "symbol" | "name" | "code";
224
+ };
225
+ forms: {
226
+ billing: {
227
+ fields: {
228
+ key: string;
229
+ label: string;
230
+ type: "select" | "textarea" | "text" | "date" | "email" | "tel" | "checkbox" | "country";
231
+ required: boolean;
232
+ placeholder: string | null;
233
+ description: string | null;
234
+ autocomplete: string | null;
235
+ options: {
236
+ value: string;
237
+ label: string;
238
+ }[];
239
+ }[];
240
+ };
241
+ travelers: {
242
+ fields: {
243
+ key: string;
244
+ label: string;
245
+ type: "select" | "textarea" | "text" | "date" | "email" | "tel" | "checkbox" | "country";
246
+ required: boolean;
247
+ placeholder: string | null;
248
+ description: string | null;
249
+ autocomplete: string | null;
250
+ options: {
251
+ value: string;
252
+ label: string;
253
+ }[];
254
+ }[];
255
+ };
256
+ };
257
+ payment: {
258
+ defaultMethod: "card" | "bank_transfer" | "cash" | "voucher" | "invoice" | null;
259
+ methods: {
260
+ code: "card" | "bank_transfer" | "cash" | "voucher" | "invoice";
261
+ label: string;
262
+ description: string | null;
263
+ enabled: boolean;
264
+ }[];
265
+ structure: "split" | "full";
266
+ schedule: {
267
+ percent: number;
268
+ dueInDays: number;
269
+ dueCondition: "after_booking" | "before_departure";
270
+ }[];
271
+ defaultSchedule: {
272
+ depositPercent: number | null;
273
+ balanceDueDaysBeforeDeparture: number | null;
274
+ } | null;
275
+ bankTransfer: {
276
+ dueDays: number | null;
277
+ account: {
278
+ provider: string | null;
279
+ currency: string | null;
280
+ iban: string;
281
+ beneficiary: string;
282
+ bank: string;
283
+ } | null;
284
+ accountHolder: string | null;
285
+ bankName: string | null;
286
+ iban: string | null;
287
+ bic: string | null;
288
+ paymentReference: string | null;
289
+ instructions: string | null;
290
+ } | null;
291
+ };
292
+ };
293
+ }>;
294
+ export declare function getStorefrontDeparture(client: FetchWithValidationOptions, departureId: string): Promise<{
295
+ data: {
296
+ id: string;
297
+ productId: string;
298
+ itineraryId: string;
299
+ optionId: string | null;
300
+ dateLocal: string | null;
301
+ startAt: string | null;
302
+ endAt: string | null;
303
+ timezone: string;
304
+ startTime: {
305
+ id: string;
306
+ label: string | null;
307
+ startTimeLocal: string;
308
+ durationMinutes: number | null;
309
+ } | null;
310
+ meetingPoint: string | null;
311
+ capacity: number | null;
312
+ remaining: number | null;
313
+ departureStatus: "cancelled" | "on_request" | "open" | "closed" | "sold_out";
314
+ nights: number | null;
315
+ days: number | null;
316
+ ratePlans: {
317
+ id: string;
318
+ active: boolean;
319
+ name: string;
320
+ pricingModel: string;
321
+ basePrices: {
322
+ amount: number;
323
+ currencyCode: string;
324
+ }[];
325
+ roomPrices: {
326
+ amount: number;
327
+ currencyCode: string;
328
+ roomType: {
329
+ id: string;
330
+ name: string;
331
+ occupancy: {
332
+ adultsMin: number;
333
+ adultsMax: number;
334
+ childrenMax: number;
335
+ };
336
+ };
337
+ }[];
338
+ }[];
339
+ };
340
+ }>;
341
+ export declare function listStorefrontProductDepartures(client: FetchWithValidationOptions, productId: string, query?: StorefrontDepartureListQuery): Promise<{
342
+ data: {
343
+ id: string;
344
+ productId: string;
345
+ itineraryId: string;
346
+ optionId: string | null;
347
+ dateLocal: string | null;
348
+ startAt: string | null;
349
+ endAt: string | null;
350
+ timezone: string;
351
+ startTime: {
352
+ id: string;
353
+ label: string | null;
354
+ startTimeLocal: string;
355
+ durationMinutes: number | null;
356
+ } | null;
357
+ meetingPoint: string | null;
358
+ capacity: number | null;
359
+ remaining: number | null;
360
+ departureStatus: "cancelled" | "on_request" | "open" | "closed" | "sold_out";
361
+ nights: number | null;
362
+ days: number | null;
363
+ ratePlans: {
364
+ id: string;
365
+ active: boolean;
366
+ name: string;
367
+ pricingModel: string;
368
+ basePrices: {
369
+ amount: number;
370
+ currencyCode: string;
371
+ }[];
372
+ roomPrices: {
373
+ amount: number;
374
+ currencyCode: string;
375
+ roomType: {
376
+ id: string;
377
+ name: string;
378
+ occupancy: {
379
+ adultsMin: number;
380
+ adultsMax: number;
381
+ childrenMax: number;
382
+ };
383
+ };
384
+ }[];
385
+ }[];
386
+ }[];
387
+ total: number;
388
+ limit: number;
389
+ offset: number;
390
+ }>;
391
+ export declare function previewStorefrontDeparturePrice(client: FetchWithValidationOptions, departureId: string, input: StorefrontDeparturePricePreviewInput): Promise<{
392
+ data: {
393
+ departureId: string;
394
+ productId: string;
395
+ optionId: string | null;
396
+ currencyCode: string;
397
+ basePrice: number;
398
+ taxAmount: number;
399
+ total: number;
400
+ notes: string | null;
401
+ lineItems: {
402
+ name: string;
403
+ total: number;
404
+ quantity: number;
405
+ unitPrice: number;
406
+ }[];
407
+ allocation: {
408
+ slot: {
409
+ id: string;
410
+ productId: string;
411
+ optionId: string | null;
412
+ dateLocal: string | null;
413
+ startAt: string | null;
414
+ endAt: string | null;
415
+ timezone: string;
416
+ status: "cancelled" | "on_request" | "open" | "closed" | "sold_out";
417
+ availabilityState: "cancelled" | "available" | "unavailable" | "on_request" | "closed" | "sold_out" | "past_cutoff" | "too_early";
418
+ capacity: number | null;
419
+ remaining: number | null;
420
+ pastCutoff: boolean;
421
+ tooEarly: boolean;
422
+ };
423
+ pax: {
424
+ adults: number;
425
+ children: number;
426
+ infants: number;
427
+ total: number;
428
+ };
429
+ requestedUnits: {
430
+ unitId: string | null;
431
+ requestRef: string | null;
432
+ name: string;
433
+ unitType: string | null;
434
+ quantity: number;
435
+ pricingMode: string | null;
436
+ unitPrice: number;
437
+ total: number;
438
+ currencyCode: string;
439
+ tierId: string | null;
440
+ }[];
441
+ rooms: {
442
+ unitId: string;
443
+ name: string;
444
+ occupancy: number;
445
+ quantity: number;
446
+ pax: number;
447
+ pricingMode: string | null;
448
+ unitPrice: number;
449
+ total: number;
450
+ currencyCode: string;
451
+ tierId: string | null;
452
+ }[];
453
+ };
454
+ units: {
455
+ unitId: string | null;
456
+ requestRef: string | null;
457
+ name: string;
458
+ unitType: string | null;
459
+ quantity: number;
460
+ pricingMode: string | null;
461
+ unitPrice: number;
462
+ total: number;
463
+ currencyCode: string;
464
+ tierId: string | null;
465
+ }[];
466
+ rooms: {
467
+ unitId: string;
468
+ name: string;
469
+ occupancy: number;
470
+ quantity: number;
471
+ pax: number;
472
+ pricingMode: string | null;
473
+ unitPrice: number;
474
+ total: number;
475
+ currencyCode: string;
476
+ tierId: string | null;
477
+ }[];
478
+ extras: {
479
+ extraId: string;
480
+ name: string;
481
+ required: boolean;
482
+ selectable: boolean;
483
+ selected: boolean;
484
+ pricingMode: "included" | "per_person" | "per_booking" | "quantity_based" | "on_request" | "free";
485
+ quantity: number;
486
+ unitPrice: number;
487
+ total: number;
488
+ currencyCode: string;
489
+ }[];
490
+ offers: {
491
+ available: {
492
+ offer: {
493
+ id: string;
494
+ name: string;
495
+ slug: string | null;
496
+ description: string | null;
497
+ discountType: "percentage" | "fixed_amount";
498
+ discountValue: string;
499
+ currency: string | null;
500
+ applicableProductIds: string[];
501
+ applicableDepartureIds: string[];
502
+ validFrom: string | null;
503
+ validTo: string | null;
504
+ minTravelers: number | null;
505
+ imageMobileUrl: string | null;
506
+ imageDesktopUrl: string | null;
507
+ stackable: boolean;
508
+ createdAt: string;
509
+ updatedAt: string;
510
+ };
511
+ status: "applied" | "not_applicable" | "conflict";
512
+ reason: "currency" | "conflict" | "min_pax" | "eligibility" | "no_discount" | null;
513
+ selected: boolean;
514
+ discountAppliedCents: number;
515
+ discountedPriceCents: number;
516
+ }[];
517
+ requested: {
518
+ kind: "code" | "slug";
519
+ value: string;
520
+ result: {
521
+ status: "applied" | "not_applicable" | "conflict" | "invalid";
522
+ 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;
523
+ offer: {
524
+ id: string;
525
+ name: string;
526
+ slug: string | null;
527
+ description: string | null;
528
+ discountType: "percentage" | "fixed_amount";
529
+ discountValue: string;
530
+ currency: string | null;
531
+ applicableProductIds: string[];
532
+ applicableDepartureIds: string[];
533
+ validFrom: string | null;
534
+ validTo: string | null;
535
+ minTravelers: number | null;
536
+ imageMobileUrl: string | null;
537
+ imageDesktopUrl: string | null;
538
+ stackable: boolean;
539
+ createdAt: string;
540
+ updatedAt: string;
541
+ } | null;
542
+ target: {
543
+ bookingId: string | null;
544
+ sessionId: string | null;
545
+ productId: string;
546
+ departureId: string | null;
547
+ };
548
+ pricing: {
549
+ basePriceCents: number;
550
+ currency: string;
551
+ discountAppliedCents: number;
552
+ discountedPriceCents: number;
553
+ };
554
+ appliedOffers: {
555
+ offerId: string;
556
+ offerName: string;
557
+ discountAppliedCents: number;
558
+ discountedPriceCents: number;
559
+ currency: string;
560
+ discountKind: "percentage" | "fixed_amount";
561
+ discountPercent: number | null;
562
+ discountAmountCents: number | null;
563
+ appliedCode: string | null;
564
+ stackable: boolean;
565
+ }[];
566
+ conflict: {
567
+ policy: "best_discount_wins" | "stackable_compose";
568
+ autoAppliedOfferIds: string[];
569
+ manualOfferId: string | null;
570
+ selectedOfferIds: string[];
571
+ message: string;
572
+ } | null;
573
+ } | null;
574
+ }[];
575
+ applied: {
576
+ offerId: string;
577
+ offerName: string;
578
+ discountAppliedCents: number;
579
+ discountedPriceCents: number;
580
+ currency: string;
581
+ discountKind: "percentage" | "fixed_amount";
582
+ discountPercent: number | null;
583
+ discountAmountCents: number | null;
584
+ appliedCode: string | null;
585
+ stackable: boolean;
586
+ }[];
587
+ conflict: {
588
+ policy: "best_discount_wins" | "stackable_compose";
589
+ autoAppliedOfferIds: string[];
590
+ manualOfferId: string | null;
591
+ selectedOfferIds: string[];
592
+ message: string;
593
+ } | null;
594
+ discountTotal: number;
595
+ discountTotalCents: number;
596
+ totalAfterDiscount: number;
597
+ currencyCode: string;
598
+ };
599
+ totals: {
600
+ currencyCode: string;
601
+ base: number;
602
+ extras: number;
603
+ subtotal: number;
604
+ discount: number;
605
+ tax: number;
606
+ total: number;
607
+ perPerson: number;
608
+ perBooking: number;
609
+ };
610
+ };
611
+ }>;
612
+ export declare function listStorefrontProductExtensions(client: FetchWithValidationOptions, productId: string, query?: StorefrontProductExtensionsQuery): Promise<{
613
+ extensions: {
614
+ id: string;
615
+ name: string;
616
+ label: string;
617
+ required: boolean;
618
+ selectable: boolean;
619
+ hasOptions: boolean;
620
+ refProductId: string | null;
621
+ thumb: string | null;
622
+ pricePerPerson: number | null;
623
+ currencyCode: string;
624
+ pricingMode: "included" | "per_person" | "per_booking" | "quantity_based" | "on_request" | "free";
625
+ defaultQuantity: number | null;
626
+ minQuantity: number | null;
627
+ maxQuantity: number | null;
628
+ }[];
629
+ items: {
630
+ id: string;
631
+ name: string;
632
+ label: string;
633
+ required: boolean;
634
+ selectable: boolean;
635
+ hasOptions: boolean;
636
+ refProductId: string | null;
637
+ thumb: string | null;
638
+ pricePerPerson: number | null;
639
+ currencyCode: string;
640
+ pricingMode: "included" | "per_person" | "per_booking" | "quantity_based" | "on_request" | "free";
641
+ defaultQuantity: number | null;
642
+ minQuantity: number | null;
643
+ maxQuantity: number | null;
644
+ }[];
645
+ details: Record<string, {
646
+ description: string | null;
647
+ media: {
648
+ url: string;
649
+ alt: string | null;
650
+ }[];
651
+ }>;
652
+ currencyCode: string;
653
+ }>;
654
+ export declare function getStorefrontDepartureItinerary(client: FetchWithValidationOptions, productId: string, departureId: string): Promise<{
655
+ data: {
656
+ id: string;
657
+ itineraryId: string;
658
+ days: {
659
+ id: string;
660
+ title: string;
661
+ description: string | null;
662
+ thumbnail: {
663
+ url: string;
664
+ } | null;
665
+ segments: {
666
+ id: string;
667
+ title: string;
668
+ description: string | null;
669
+ }[];
670
+ }[];
671
+ };
672
+ }>;
673
+ export declare function listStorefrontProductOffers(client: FetchWithValidationOptions, productId: string, query?: StorefrontPromotionalOfferListQuery): Promise<{
674
+ data: {
675
+ id: string;
676
+ name: string;
677
+ slug: string | null;
678
+ description: string | null;
679
+ discountType: "percentage" | "fixed_amount";
680
+ discountValue: string;
681
+ currency: string | null;
682
+ applicableProductIds: string[];
683
+ applicableDepartureIds: string[];
684
+ validFrom: string | null;
685
+ validTo: string | null;
686
+ minTravelers: number | null;
687
+ imageMobileUrl: string | null;
688
+ imageDesktopUrl: string | null;
689
+ stackable: boolean;
690
+ createdAt: string;
691
+ updatedAt: string;
692
+ }[];
693
+ }>;
694
+ export declare function getStorefrontOfferBySlug(client: FetchWithValidationOptions, slug: string, query?: Pick<StorefrontPromotionalOfferListQuery, "locale">): Promise<{
695
+ data: {
696
+ id: string;
697
+ name: string;
698
+ slug: string | null;
699
+ description: string | null;
700
+ discountType: "percentage" | "fixed_amount";
701
+ discountValue: string;
702
+ currency: string | null;
703
+ applicableProductIds: string[];
704
+ applicableDepartureIds: string[];
705
+ validFrom: string | null;
706
+ validTo: string | null;
707
+ minTravelers: number | null;
708
+ imageMobileUrl: string | null;
709
+ imageDesktopUrl: string | null;
710
+ stackable: boolean;
711
+ createdAt: string;
712
+ updatedAt: string;
713
+ };
714
+ }>;
715
+ export declare function applyStorefrontOffer(client: FetchWithValidationOptions, slug: string, input: StorefrontOfferApplyInput): Promise<{
716
+ data: {
717
+ status: "applied" | "not_applicable" | "conflict" | "invalid";
718
+ 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;
719
+ offer: {
720
+ id: string;
721
+ name: string;
722
+ slug: string | null;
723
+ description: string | null;
724
+ discountType: "percentage" | "fixed_amount";
725
+ discountValue: string;
726
+ currency: string | null;
727
+ applicableProductIds: string[];
728
+ applicableDepartureIds: string[];
729
+ validFrom: string | null;
730
+ validTo: string | null;
731
+ minTravelers: number | null;
732
+ imageMobileUrl: string | null;
733
+ imageDesktopUrl: string | null;
734
+ stackable: boolean;
735
+ createdAt: string;
736
+ updatedAt: string;
737
+ } | null;
738
+ target: {
739
+ bookingId: string | null;
740
+ sessionId: string | null;
741
+ productId: string;
742
+ departureId: string | null;
743
+ };
744
+ pricing: {
745
+ basePriceCents: number;
746
+ currency: string;
747
+ discountAppliedCents: number;
748
+ discountedPriceCents: number;
749
+ };
750
+ appliedOffers: {
751
+ offerId: string;
752
+ offerName: string;
753
+ discountAppliedCents: number;
754
+ discountedPriceCents: number;
755
+ currency: string;
756
+ discountKind: "percentage" | "fixed_amount";
757
+ discountPercent: number | null;
758
+ discountAmountCents: number | null;
759
+ appliedCode: string | null;
760
+ stackable: boolean;
761
+ }[];
762
+ conflict: {
763
+ policy: "best_discount_wins" | "stackable_compose";
764
+ autoAppliedOfferIds: string[];
765
+ manualOfferId: string | null;
766
+ selectedOfferIds: string[];
767
+ message: string;
768
+ } | null;
769
+ };
770
+ }>;
771
+ export declare function redeemStorefrontOffer(client: FetchWithValidationOptions, input: StorefrontOfferRedeemInput): Promise<{
772
+ data: {
773
+ status: "applied" | "not_applicable" | "conflict" | "invalid";
774
+ 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;
775
+ offer: {
776
+ id: string;
777
+ name: string;
778
+ slug: string | null;
779
+ description: string | null;
780
+ discountType: "percentage" | "fixed_amount";
781
+ discountValue: string;
782
+ currency: string | null;
783
+ applicableProductIds: string[];
784
+ applicableDepartureIds: string[];
785
+ validFrom: string | null;
786
+ validTo: string | null;
787
+ minTravelers: number | null;
788
+ imageMobileUrl: string | null;
789
+ imageDesktopUrl: string | null;
790
+ stackable: boolean;
791
+ createdAt: string;
792
+ updatedAt: string;
793
+ } | null;
794
+ target: {
795
+ bookingId: string | null;
796
+ sessionId: string | null;
797
+ productId: string;
798
+ departureId: string | null;
799
+ };
800
+ pricing: {
801
+ basePriceCents: number;
802
+ currency: string;
803
+ discountAppliedCents: number;
804
+ discountedPriceCents: number;
805
+ };
806
+ appliedOffers: {
807
+ offerId: string;
808
+ offerName: string;
809
+ discountAppliedCents: number;
810
+ discountedPriceCents: number;
811
+ currency: string;
812
+ discountKind: "percentage" | "fixed_amount";
813
+ discountPercent: number | null;
814
+ discountAmountCents: number | null;
815
+ appliedCode: string | null;
816
+ stackable: boolean;
817
+ }[];
818
+ conflict: {
819
+ policy: "best_discount_wins" | "stackable_compose";
820
+ autoAppliedOfferIds: string[];
821
+ manualOfferId: string | null;
822
+ selectedOfferIds: string[];
823
+ message: string;
824
+ } | null;
825
+ };
826
+ }>;
827
+ //# sourceMappingURL=operations.d.ts.map