@loczer/storefront-sdk 0.152.0 → 0.153.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/dist/StorefrontProvider.d.ts +677 -1139
  2. package/dist/StorefrontProvider.d.ts.map +1 -0
  3. package/dist/components/AboutSection/index.d.ts.map +1 -0
  4. package/dist/components/AboutSection/index.js +6 -6
  5. package/dist/components/AddressAutocompleteInput/index.d.ts.map +1 -0
  6. package/dist/components/BikeProductCard/index.d.ts.map +1 -0
  7. package/dist/components/BookingBikeVariantDialog/index.d.ts +12 -2
  8. package/dist/components/BookingBikeVariantDialog/index.d.ts.map +1 -0
  9. package/dist/components/BookingFlowSteps/index.d.ts.map +1 -0
  10. package/dist/components/BookingPeriodSelector/BookingPeriodContext.d.ts +9 -0
  11. package/dist/components/BookingPeriodSelector/BookingPeriodContext.d.ts.map +1 -0
  12. package/dist/components/BookingPeriodSelector/components/BookingEndDateField.d.ts +2 -0
  13. package/dist/components/BookingPeriodSelector/components/BookingEndDateField.d.ts.map +1 -0
  14. package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.d.ts +2 -0
  15. package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.d.ts.map +1 -0
  16. package/dist/components/BookingPeriodSelector/components/BookingPeriodFieldErrorMessage.d.ts +7 -0
  17. package/dist/components/BookingPeriodSelector/components/BookingPeriodFieldErrorMessage.d.ts.map +1 -0
  18. package/dist/components/BookingPeriodSelector/components/BookingStartDateField.d.ts +2 -0
  19. package/dist/components/BookingPeriodSelector/components/BookingStartDateField.d.ts.map +1 -0
  20. package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.d.ts +2 -0
  21. package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.d.ts.map +1 -0
  22. package/dist/components/BookingPeriodSelector/components/internal/ModalDayPickerField.d.ts +24 -0
  23. package/dist/components/BookingPeriodSelector/components/internal/ModalDayPickerField.d.ts.map +1 -0
  24. package/dist/components/BookingPeriodSelector/components/internal/ModalHourPickerField.d.ts +22 -0
  25. package/dist/components/BookingPeriodSelector/components/internal/ModalHourPickerField.d.ts.map +1 -0
  26. package/dist/components/BookingPeriodSelector/index.d.ts.map +1 -0
  27. package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts +102 -0
  28. package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts.map +1 -0
  29. package/dist/components/ContactSection/index.d.ts.map +1 -0
  30. package/dist/components/ContactSection/index.js +5 -5
  31. package/dist/components/ContractSaleDocument/AcceptanceModal.d.ts +8 -0
  32. package/dist/components/ContractSaleDocument/AcceptanceModal.d.ts.map +1 -0
  33. package/dist/components/ContractSaleDocument/Invoice.d.ts +13 -0
  34. package/dist/components/ContractSaleDocument/Invoice.d.ts.map +1 -0
  35. package/dist/components/ContractSaleDocument/InvoiceDetails.d.ts +18 -0
  36. package/dist/components/ContractSaleDocument/InvoiceDetails.d.ts.map +1 -0
  37. package/dist/components/ContractSaleDocument/Page.d.ts +8 -0
  38. package/dist/components/ContractSaleDocument/Page.d.ts.map +1 -0
  39. package/dist/components/ContractSaleDocument/PageFooter.d.ts +11 -0
  40. package/dist/components/ContractSaleDocument/PageFooter.d.ts.map +1 -0
  41. package/dist/components/ContractSaleDocument/PageHeader.d.ts +11 -0
  42. package/dist/components/ContractSaleDocument/PageHeader.d.ts.map +1 -0
  43. package/dist/components/ContractSaleDocument/SignatureModal.d.ts +9 -0
  44. package/dist/components/ContractSaleDocument/SignatureModal.d.ts.map +1 -0
  45. package/dist/components/ContractSaleDocument/TermsAndConditionsContent.d.ts +12 -0
  46. package/dist/components/ContractSaleDocument/TermsAndConditionsContent.d.ts.map +1 -0
  47. package/dist/components/ContractSaleDocument/ThumbnailSidebar.d.ts +12 -0
  48. package/dist/components/ContractSaleDocument/ThumbnailSidebar.d.ts.map +1 -0
  49. package/dist/components/ContractSaleDocument/index.d.ts.map +1 -0
  50. package/dist/components/ContractSaleDocument/language.d.ts +7 -0
  51. package/dist/components/ContractSaleDocument/language.d.ts.map +1 -0
  52. package/dist/components/DelayedReveal/index.d.ts.map +1 -0
  53. package/dist/components/DeliveryAddressSelector/index.d.ts.map +1 -0
  54. package/dist/components/Footer/BusinessHours.d.ts +17 -0
  55. package/dist/components/Footer/BusinessHours.d.ts.map +1 -0
  56. package/dist/components/Footer/businessHoursUtils.d.ts +14 -0
  57. package/dist/components/Footer/businessHoursUtils.d.ts.map +1 -0
  58. package/dist/components/Footer/index.d.ts.map +1 -0
  59. package/dist/components/FulfillmentSection/index.d.ts.map +1 -0
  60. package/dist/components/Header/index.d.ts.map +1 -0
  61. package/dist/components/Layout/index.d.ts.map +1 -0
  62. package/dist/components/Map/createMarkerElement.d.ts +2 -0
  63. package/dist/components/Map/createMarkerElement.d.ts.map +1 -0
  64. package/dist/components/Map/index.d.ts +101 -1
  65. package/dist/components/Map/index.d.ts.map +1 -0
  66. package/dist/components/Map/index.js +4 -3
  67. package/dist/components/PlatformFooter/index.d.ts.map +1 -0
  68. package/dist/components/PlaygroundDevFloatingButton/index.d.ts.map +1 -0
  69. package/dist/components/PoweredByLoczerBadge/index.d.ts.map +1 -0
  70. package/dist/components/ProductPriceBadge/index.d.ts.map +1 -0
  71. package/dist/components/ProductWarningNotice/index.d.ts.map +1 -0
  72. package/dist/components/StepSectionTitle/index.d.ts.map +1 -0
  73. package/dist/components/StorefrontCartPanel/index.d.ts.map +1 -0
  74. package/dist/components/StorefrontPopupMessages/index.d.ts.map +1 -0
  75. package/dist/components/TestimonialsSection/index.d.ts.map +1 -0
  76. package/dist/components/WhatsAppFloatingButton/WhatsAppFloatingButton.d.ts +5 -0
  77. package/dist/components/WhatsAppFloatingButton/WhatsAppFloatingButton.d.ts.map +1 -0
  78. package/dist/components/WhatsAppFloatingButton/index.d.ts.map +1 -0
  79. package/dist/components/WhatsAppFloatingButton/useWhatsAppFloatingButton.d.ts +11 -0
  80. package/dist/components/WhatsAppFloatingButton/useWhatsAppFloatingButton.d.ts.map +1 -0
  81. package/dist/components/payment/MollieCardFieldsForm.d.ts +11 -0
  82. package/dist/components/payment/MollieCardFieldsForm.d.ts.map +1 -0
  83. package/dist/components/payment/StripeCardFieldsForm.d.ts +16 -0
  84. package/dist/components/payment/StripeCardFieldsForm.d.ts.map +1 -0
  85. package/dist/components/payment/index.d.ts.map +1 -0
  86. package/dist/data/accessories.d.ts.map +1 -0
  87. package/dist/data/bikes.d.ts.map +1 -0
  88. package/dist/data/config.d.ts.map +1 -0
  89. package/dist/i18n/I18nProvider.d.ts.map +1 -0
  90. package/dist/i18n/en.d.ts.map +1 -0
  91. package/dist/i18n/fr.d.ts.map +1 -0
  92. package/dist/index.d.ts +5212 -0
  93. package/dist/lib/apiCall.d.ts.map +1 -0
  94. package/dist/lib/booking-period-time-slots.d.ts.map +1 -0
  95. package/dist/lib/booking-period.d.ts.map +1 -0
  96. package/dist/lib/booking.d.ts.map +1 -0
  97. package/dist/lib/cart.d.ts.map +1 -0
  98. package/dist/lib/cartSummary.d.ts.map +1 -0
  99. package/dist/lib/checkoutPaymentDecision.d.ts.map +1 -0
  100. package/dist/lib/checkoutPaymentSession.d.ts.map +1 -0
  101. package/dist/lib/checkoutSubmit.d.ts.map +1 -0
  102. package/dist/lib/checkoutVerifyCoupon.d.ts.map +1 -0
  103. package/dist/lib/contactForm.d.ts.map +1 -0
  104. package/dist/lib/contractSaleDocument.d.ts.map +1 -0
  105. package/dist/lib/contractSaleDocumentApi.d.ts.map +1 -0
  106. package/dist/lib/isAutomationRuntime.d.ts.map +1 -0
  107. package/dist/lib/mollieComponentStyles.d.ts.map +1 -0
  108. package/dist/lib/playgroundDevSettings.d.ts.map +1 -0
  109. package/dist/lib/pricing.d.ts.map +1 -0
  110. package/dist/lib/productImageStyles.d.ts.map +1 -0
  111. package/dist/lib/productVariants.d.ts.map +1 -0
  112. package/dist/lib/products.d.ts.map +1 -0
  113. package/dist/lib/richAddress.d.ts.map +1 -0
  114. package/dist/lib/securePaymentLink.d.ts.map +1 -0
  115. package/dist/lib/storefrontAvailability.d.ts.map +1 -0
  116. package/dist/lib/storefrontImage.d.ts.map +1 -0
  117. package/dist/lib/storefrontProducts.d.ts.map +1 -0
  118. package/dist/lib/storefrontReviews.d.ts.map +1 -0
  119. package/dist/lib/storefrontTimeSlots.d.ts.map +1 -0
  120. package/dist/lib/utils.d.ts.map +1 -0
  121. package/dist/lib/whatsapp.d.ts.map +1 -0
  122. package/dist/localization.d.ts +9 -13
  123. package/dist/localization.d.ts.map +1 -0
  124. package/dist/pages/BookingPage.d.ts.map +1 -0
  125. package/dist/pages/CheckoutPage.d.ts.map +1 -0
  126. package/dist/pages/CheckoutPaymentPage.d.ts.map +1 -0
  127. package/dist/pages/CheckoutSuccessPage.d.ts.map +1 -0
  128. package/dist/pages/ContractSaleDocumentPage.d.ts.map +1 -0
  129. package/dist/pages/ErrorPage.d.ts.map +1 -0
  130. package/dist/pages/HomePage.d.ts.map +1 -0
  131. package/dist/pages/NotFoundPage.d.ts.map +1 -0
  132. package/dist/pages/PaymentLinkPage.d.ts.map +1 -0
  133. package/dist/pages/PaymentLinkSuccessPage.d.ts.map +1 -0
  134. package/dist/pages/ProductPage.d.ts.map +1 -0
  135. package/dist/pages/checkout/components/CheckoutCouponCard.d.ts +15 -0
  136. package/dist/pages/checkout/components/CheckoutCouponCard.d.ts.map +1 -0
  137. package/dist/pages/checkout/components/CheckoutDetailsCard.d.ts +9 -0
  138. package/dist/pages/checkout/components/CheckoutDetailsCard.d.ts.map +1 -0
  139. package/dist/pages/checkout/components/CheckoutPaymentCard.d.ts +22 -0
  140. package/dist/pages/checkout/components/CheckoutPaymentCard.d.ts.map +1 -0
  141. package/dist/pages/checkout/components/CheckoutPaymentSummaryCard.d.ts +23 -0
  142. package/dist/pages/checkout/components/CheckoutPaymentSummaryCard.d.ts.map +1 -0
  143. package/dist/pages/checkout/components/CheckoutSummaryColumn.d.ts +7 -0
  144. package/dist/pages/checkout/components/CheckoutSummaryColumn.d.ts.map +1 -0
  145. package/dist/pages/checkout/components/MollieCheckoutForm.d.ts +9 -0
  146. package/dist/pages/checkout/components/MollieCheckoutForm.d.ts.map +1 -0
  147. package/dist/pages/checkout/components/StripeCheckoutForm.d.ts +8 -0
  148. package/dist/pages/checkout/components/StripeCheckoutForm.d.ts.map +1 -0
  149. package/dist/pages/checkout/types.d.ts +14 -0
  150. package/dist/pages/checkout/types.d.ts.map +1 -0
  151. package/dist/routes.d.ts +3 -6
  152. package/dist/routes.d.ts.map +1 -0
  153. package/dist/static/strings.d.ts +2 -0
  154. package/dist/static/strings.d.ts.map +1 -0
  155. package/dist/storefrontSchemas.d.ts +565 -596
  156. package/dist/storefrontSchemas.d.ts.map +1 -0
  157. package/dist/ui/badge.d.ts.map +1 -0
  158. package/dist/ui/button.d.ts.map +1 -0
  159. package/dist/ui/card.d.ts.map +1 -0
  160. package/dist/ui/form.d.ts.map +1 -0
  161. package/dist/ui/input.d.ts.map +1 -0
  162. package/dist/ui/label.d.ts.map +1 -0
  163. package/dist/ui/radio-group.d.ts.map +1 -0
  164. package/dist/ui/select.d.ts.map +1 -0
  165. package/dist/ui/slot.d.ts.map +1 -0
  166. package/dist/ui/textarea.d.ts.map +1 -0
  167. package/dist/ui/tooltip.d.ts.map +1 -0
  168. package/package.json +4 -2
  169. package/dist/BookingPage.d.ts +0 -6
  170. package/dist/CheckoutPage.d.ts +0 -6
  171. package/dist/CheckoutPaymentPage.d.ts +0 -6
  172. package/dist/CheckoutSuccessPage.d.ts +0 -6
  173. package/dist/ContractSaleDocumentPage.d.ts +0 -116
  174. package/dist/ErrorPage.d.ts +0 -6
  175. package/dist/HomePage.d.ts +0 -6
  176. package/dist/I18nProvider.d.ts +0 -23
  177. package/dist/NotFoundPage.d.ts +0 -6
  178. package/dist/PaymentLinkPage.d.ts +0 -40
  179. package/dist/PaymentLinkSuccessPage.d.ts +0 -40
  180. package/dist/ProductPage.d.ts +0 -6
  181. package/dist/accessories.d.ts +0 -42
  182. package/dist/apiCall.d.ts +0 -7
  183. package/dist/badge.d.ts +0 -14
  184. package/dist/bikes.d.ts +0 -107
  185. package/dist/booking-period-time-slots.d.ts +0 -264
  186. package/dist/booking-period.d.ts +0 -193
  187. package/dist/booking.d.ts +0 -402
  188. package/dist/button.d.ts +0 -16
  189. package/dist/card.d.ts +0 -18
  190. package/dist/cart.d.ts +0 -30
  191. package/dist/cartSummary.d.ts +0 -205
  192. package/dist/checkoutPaymentDecision.d.ts +0 -48
  193. package/dist/checkoutPaymentSession.d.ts +0 -65
  194. package/dist/checkoutSubmit.d.ts +0 -97
  195. package/dist/checkoutVerifyCoupon.d.ts +0 -45
  196. package/dist/config.d.ts +0 -19
  197. package/dist/contactForm.d.ts +0 -22
  198. package/dist/contractSaleDocument.d.ts +0 -242
  199. package/dist/contractSaleDocumentApi.d.ts +0 -481
  200. package/dist/en.d.ts +0 -369
  201. package/dist/form.d.ts +0 -44
  202. package/dist/fr.d.ts +0 -369
  203. package/dist/input.d.ts +0 -5
  204. package/dist/isAutomationRuntime.d.ts +0 -3
  205. package/dist/label.d.ts +0 -7
  206. package/dist/mollieComponentStyles.d.ts +0 -3
  207. package/dist/playgroundDevSettings.d.ts +0 -19
  208. package/dist/pricing.d.ts +0 -35
  209. package/dist/productImageStyles.d.ts +0 -25
  210. package/dist/productVariants.d.ts +0 -16
  211. package/dist/products.d.ts +0 -224
  212. package/dist/radio-group.d.ts +0 -14
  213. package/dist/richAddress.d.ts +0 -24
  214. package/dist/securePaymentLink.d.ts +0 -125
  215. package/dist/select.d.ts +0 -41
  216. package/dist/slot.d.ts +0 -15
  217. package/dist/storefrontAvailability.d.ts +0 -107
  218. package/dist/storefrontImage.d.ts +0 -16
  219. package/dist/storefrontProducts.d.ts +0 -400
  220. package/dist/storefrontReviews.d.ts +0 -84
  221. package/dist/storefrontTimeSlots.d.ts +0 -53
  222. package/dist/textarea.d.ts +0 -5
  223. package/dist/tooltip.d.ts +0 -43
  224. package/dist/utils.d.ts +0 -23
  225. package/dist/whatsapp.d.ts +0 -326
@@ -1,1139 +1,677 @@
1
- import { JSX } from 'react/jsx-runtime';
2
- import { LoaderArgs } from '@rpcbase/client';
3
- import { z } from 'zod';
4
-
5
- declare type AccessoryProduct = StorefrontPublicAccessoryProduct & {
6
- kind: "accessory";
7
- };
8
-
9
- declare type BikeProduct = Omit<StorefrontPublicBikeProduct, "kind"> & {
10
- kind: "bike" | "e-bike";
11
- };
12
-
13
- export declare const loader: ({ ctx, params }: LoaderArgs) => Promise<{
14
- storeSlug: string;
15
- storefrontConfiguration: {
16
- storeSlug: string;
17
- shop: {
18
- id: string;
19
- name: string;
20
- slug?: string | undefined;
21
- timeZone?: string | undefined;
22
- url?: string | undefined;
23
- googleMapsLink?: string | undefined;
24
- googleRequestReviewsLink?: string | undefined;
25
- emailAddress?: string | undefined;
26
- contactPhone1?: string | undefined;
27
- contactPhone2?: string | undefined;
28
- address?: string | undefined;
29
- city?: string | undefined;
30
- country?: string | undefined;
31
- gpsCoordinates?: [number, number] | undefined;
32
- };
33
- settings: {
34
- status: "unpublished" | "published";
35
- checkoutMode: "auto_approve_when_possible" | "manual_approval_required";
36
- availabilityDisplay: {
37
- defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
38
- defaultFewRemainingThreshold?: number | undefined;
39
- };
40
- enabled: boolean;
41
- fulfillmentModes: ("pickup" | "delivery")[];
42
- deliveryDisabledReason: string;
43
- sameDayCutoff: string;
44
- };
45
- bookingEngine: {
46
- availabilityDisplay: {
47
- defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
48
- defaultFewRemainingThreshold?: number | undefined;
49
- };
50
- holdSettings: {
51
- enabled: boolean;
52
- defaultTtlMinutes: number;
53
- };
54
- pricing: {
55
- baseUnit: "hour" | "half_day" | "day" | "week" | "month";
56
- rentalUnits: {
57
- unit: "hour" | "half_day" | "day" | "week" | "month";
58
- durationHours: number;
59
- label?: Record<string, {
60
- [x: string]: unknown;
61
- value: string;
62
- updatedAt: Date;
63
- autoTranslated?: boolean | undefined;
64
- }> | undefined;
65
- }[];
66
- halfDay?: {
67
- enabled: boolean;
68
- boundaryHour: number;
69
- } | undefined;
70
- };
71
- bookingDeposit: {
72
- enabled: boolean;
73
- percentage: number;
74
- optimizeDepositAmount: boolean;
75
- };
76
- securityDeposit: {
77
- mode: "optional" | "required" | "disabled";
78
- };
79
- shop: {
80
- timeZone: string;
81
- openingHours: {
82
- name: string;
83
- startDate: string;
84
- endDate: string;
85
- openingHours: {
86
- day: 0 | 1 | 2 | 3 | 4 | 5 | 6;
87
- openingSlots: {
88
- start: string;
89
- end: string;
90
- }[];
91
- }[];
92
- }[];
93
- openingHoursOverrides?: {
94
- date: string;
95
- openingSlots: {
96
- start: string;
97
- end: string;
98
- }[];
99
- }[] | undefined;
100
- extraTimeSlots?: {
101
- minutesAfterClose: number;
102
- extraAmount: number;
103
- }[] | undefined;
104
- };
105
- currency: "EUR" | "USD" | "GBP" | "CHF";
106
- checkout: {
107
- mode: "auto_approve_when_possible" | "manual_approval_required";
108
- dynamicOptions?: {
109
- fulfillmentModes?: ("pickup" | "delivery")[] | undefined;
110
- sameDayCutoff?: string | undefined;
111
- } | undefined;
112
- };
113
- };
114
- workspace?: {
115
- name?: string | undefined;
116
- workspaceLanguage?: "fr" | "en" | undefined;
117
- languages?: string[] | undefined;
118
- } | undefined;
119
- content?: {
120
- galleryImageIds: string[];
121
- whatsappPhone1Enabled: boolean;
122
- whatsappPhone2Enabled: boolean;
123
- showWhatsappFloatingButton: boolean;
124
- modalMessages: {
125
- id: string;
126
- enabled: boolean;
127
- showOnEachVisit: boolean;
128
- startDate: string | null;
129
- endDate: string | null;
130
- imageIds: string[];
131
- title?: Record<string, {
132
- [x: string]: unknown;
133
- value: string;
134
- updatedAt: Date;
135
- autoTranslated?: boolean | undefined;
136
- }> | undefined;
137
- subtitle?: Record<string, {
138
- [x: string]: unknown;
139
- value: string;
140
- updatedAt: Date;
141
- autoTranslated?: boolean | undefined;
142
- }> | undefined;
143
- message?: Record<string, {
144
- version: 1;
145
- json: string;
146
- html: string;
147
- text: string;
148
- }> | undefined;
149
- }[];
150
- faq: {
151
- general: {
152
- id: string;
153
- question: Record<string, {
154
- [x: string]: unknown;
155
- value: string;
156
- updatedAt: Date;
157
- autoTranslated?: boolean | undefined;
158
- }>;
159
- answer: Record<string, {
160
- [x: string]: unknown;
161
- value: string;
162
- updatedAt: Date;
163
- autoTranslated?: boolean | undefined;
164
- }>;
165
- }[];
166
- deliveries: {
167
- id: string;
168
- question: Record<string, {
169
- [x: string]: unknown;
170
- value: string;
171
- updatedAt: Date;
172
- autoTranslated?: boolean | undefined;
173
- }>;
174
- answer: Record<string, {
175
- [x: string]: unknown;
176
- value: string;
177
- updatedAt: Date;
178
- autoTranslated?: boolean | undefined;
179
- }>;
180
- }[];
181
- booking: {
182
- id: string;
183
- question: Record<string, {
184
- [x: string]: unknown;
185
- value: string;
186
- updatedAt: Date;
187
- autoTranslated?: boolean | undefined;
188
- }>;
189
- answer: Record<string, {
190
- [x: string]: unknown;
191
- value: string;
192
- updatedAt: Date;
193
- autoTranslated?: boolean | undefined;
194
- }>;
195
- }[];
196
- };
197
- tagline?: Record<string, {
198
- [x: string]: unknown;
199
- value: string;
200
- updatedAt: Date;
201
- autoTranslated?: boolean | undefined;
202
- }> | undefined;
203
- logoSquareImageId?: string | undefined;
204
- logoWideImageId?: string | undefined;
205
- topBannerMessage?: Record<string, {
206
- [x: string]: unknown;
207
- value: string;
208
- updatedAt: Date;
209
- autoTranslated?: boolean | undefined;
210
- }> | undefined;
211
- about?: Record<string, {
212
- version: 1;
213
- json: string;
214
- html: string;
215
- text: string;
216
- }> | undefined;
217
- whatsappMessage?: Record<string, {
218
- [x: string]: unknown;
219
- value: string;
220
- updatedAt: Date;
221
- autoTranslated?: boolean | undefined;
222
- }> | undefined;
223
- } | undefined;
224
- modules?: {
225
- reviews?: {
226
- enabled: boolean;
227
- showRecentReviewsOnStorefront: boolean;
228
- } | undefined;
229
- } | undefined;
230
- };
231
- bikes: BikeProduct[];
232
- accessories: AccessoryProduct[];
233
- language: StorefrontI18nLanguage;
234
- }>;
235
-
236
- declare type StorefrontConfiguration = z.infer<typeof storefrontConfigurationSchema>;
237
-
238
- declare const storefrontConfigurationSchema: z.ZodObject<{
239
- storeSlug: z.ZodString;
240
- workspace: z.ZodOptional<z.ZodObject<{
241
- name: z.ZodOptional<z.ZodString>;
242
- workspaceLanguage: z.ZodOptional<z.ZodEnum<{
243
- fr: "fr";
244
- en: "en";
245
- }>>;
246
- languages: z.ZodOptional<z.ZodArray<z.ZodString>>;
247
- }, z.core.$strip>>;
248
- shop: z.ZodObject<{
249
- id: z.ZodString;
250
- slug: z.ZodOptional<z.ZodString>;
251
- name: z.ZodString;
252
- timeZone: z.ZodOptional<z.ZodString>;
253
- url: z.ZodOptional<z.ZodString>;
254
- googleMapsLink: z.ZodOptional<z.ZodString>;
255
- googleRequestReviewsLink: z.ZodOptional<z.ZodString>;
256
- emailAddress: z.ZodOptional<z.ZodString>;
257
- contactPhone1: z.ZodOptional<z.ZodString>;
258
- contactPhone2: z.ZodOptional<z.ZodString>;
259
- address: z.ZodOptional<z.ZodString>;
260
- city: z.ZodOptional<z.ZodString>;
261
- country: z.ZodOptional<z.ZodString>;
262
- gpsCoordinates: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
263
- }, z.core.$strip>;
264
- settings: z.ZodObject<{
265
- status: z.ZodEnum<{
266
- unpublished: "unpublished";
267
- published: "published";
268
- }>;
269
- checkoutMode: z.ZodEnum<{
270
- auto_approve_when_possible: "auto_approve_when_possible";
271
- manual_approval_required: "manual_approval_required";
272
- }>;
273
- availabilityDisplay: z.ZodObject<{
274
- defaultMode: z.ZodEnum<{
275
- soldOutOnly: "soldOutOnly";
276
- soldOutAndFewRemaining: "soldOutAndFewRemaining";
277
- fewRemaining: "fewRemaining";
278
- fewRemainingCounts: "fewRemainingCounts";
279
- remainingCounts: "remainingCounts";
280
- }>;
281
- defaultFewRemainingThreshold: z.ZodOptional<z.ZodNumber>;
282
- }, z.core.$strip>;
283
- enabled: z.ZodBoolean;
284
- fulfillmentModes: z.ZodArray<z.ZodEnum<{
285
- pickup: "pickup";
286
- delivery: "delivery";
287
- }>>;
288
- deliveryDisabledReason: z.ZodDefault<z.ZodString>;
289
- sameDayCutoff: z.ZodString;
290
- }, z.core.$strip>;
291
- bookingEngine: z.ZodType<{
292
- availabilityDisplay: {
293
- defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
294
- defaultFewRemainingThreshold?: number | undefined;
295
- };
296
- holdSettings: {
297
- enabled: boolean;
298
- defaultTtlMinutes: number;
299
- };
300
- pricing: {
301
- baseUnit: "hour" | "half_day" | "day" | "week" | "month";
302
- rentalUnits: {
303
- unit: "hour" | "half_day" | "day" | "week" | "month";
304
- durationHours: number;
305
- label?: Record<string, {
306
- [x: string]: unknown;
307
- value: string;
308
- updatedAt: Date;
309
- autoTranslated?: boolean | undefined;
310
- }> | undefined;
311
- }[];
312
- halfDay?: {
313
- enabled: boolean;
314
- boundaryHour: number;
315
- } | undefined;
316
- };
317
- bookingDeposit: {
318
- enabled: boolean;
319
- percentage: number;
320
- optimizeDepositAmount: boolean;
321
- };
322
- securityDeposit: {
323
- mode: "optional" | "required" | "disabled";
324
- };
325
- shop: {
326
- timeZone: string;
327
- openingHours: {
328
- name: string;
329
- startDate: string;
330
- endDate: string;
331
- openingHours: {
332
- day: 0 | 1 | 2 | 3 | 4 | 5 | 6;
333
- openingSlots: {
334
- start: string;
335
- end: string;
336
- }[];
337
- }[];
338
- }[];
339
- openingHoursOverrides?: {
340
- date: string;
341
- openingSlots: {
342
- start: string;
343
- end: string;
344
- }[];
345
- }[] | undefined;
346
- extraTimeSlots?: {
347
- minutesAfterClose: number;
348
- extraAmount: number;
349
- }[] | undefined;
350
- };
351
- currency: "EUR" | "USD" | "GBP" | "CHF";
352
- checkout: {
353
- mode: "auto_approve_when_possible" | "manual_approval_required";
354
- dynamicOptions?: {
355
- fulfillmentModes?: ("pickup" | "delivery")[] | undefined;
356
- sameDayCutoff?: string | undefined;
357
- } | undefined;
358
- };
359
- }, unknown, z.core.$ZodTypeInternals<{
360
- availabilityDisplay: {
361
- defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
362
- defaultFewRemainingThreshold?: number | undefined;
363
- };
364
- holdSettings: {
365
- enabled: boolean;
366
- defaultTtlMinutes: number;
367
- };
368
- pricing: {
369
- baseUnit: "hour" | "half_day" | "day" | "week" | "month";
370
- rentalUnits: {
371
- unit: "hour" | "half_day" | "day" | "week" | "month";
372
- durationHours: number;
373
- label?: Record<string, {
374
- [x: string]: unknown;
375
- value: string;
376
- updatedAt: Date;
377
- autoTranslated?: boolean | undefined;
378
- }> | undefined;
379
- }[];
380
- halfDay?: {
381
- enabled: boolean;
382
- boundaryHour: number;
383
- } | undefined;
384
- };
385
- bookingDeposit: {
386
- enabled: boolean;
387
- percentage: number;
388
- optimizeDepositAmount: boolean;
389
- };
390
- securityDeposit: {
391
- mode: "optional" | "required" | "disabled";
392
- };
393
- shop: {
394
- timeZone: string;
395
- openingHours: {
396
- name: string;
397
- startDate: string;
398
- endDate: string;
399
- openingHours: {
400
- day: 0 | 1 | 2 | 3 | 4 | 5 | 6;
401
- openingSlots: {
402
- start: string;
403
- end: string;
404
- }[];
405
- }[];
406
- }[];
407
- openingHoursOverrides?: {
408
- date: string;
409
- openingSlots: {
410
- start: string;
411
- end: string;
412
- }[];
413
- }[] | undefined;
414
- extraTimeSlots?: {
415
- minutesAfterClose: number;
416
- extraAmount: number;
417
- }[] | undefined;
418
- };
419
- currency: "EUR" | "USD" | "GBP" | "CHF";
420
- checkout: {
421
- mode: "auto_approve_when_possible" | "manual_approval_required";
422
- dynamicOptions?: {
423
- fulfillmentModes?: ("pickup" | "delivery")[] | undefined;
424
- sameDayCutoff?: string | undefined;
425
- } | undefined;
426
- };
427
- }, unknown>>;
428
- content: z.ZodOptional<z.ZodObject<{
429
- tagline: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
430
- value: z.ZodString;
431
- updatedAt: z.ZodCoercedDate<unknown>;
432
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
433
- }, z.core.$loose>>>;
434
- logoSquareImageId: z.ZodOptional<z.ZodString>;
435
- logoWideImageId: z.ZodOptional<z.ZodString>;
436
- galleryImageIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
437
- topBannerMessage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
438
- value: z.ZodString;
439
- updatedAt: z.ZodCoercedDate<unknown>;
440
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
441
- }, z.core.$loose>>>;
442
- about: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
443
- version: z.ZodLiteral<1>;
444
- json: z.ZodString;
445
- html: z.ZodString;
446
- text: z.ZodString;
447
- }, z.core.$strict>>>;
448
- whatsappPhone1Enabled: z.ZodDefault<z.ZodBoolean>;
449
- whatsappPhone2Enabled: z.ZodDefault<z.ZodBoolean>;
450
- whatsappMessage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
451
- value: z.ZodString;
452
- updatedAt: z.ZodCoercedDate<unknown>;
453
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
454
- }, z.core.$loose>>>;
455
- showWhatsappFloatingButton: z.ZodDefault<z.ZodBoolean>;
456
- modalMessages: z.ZodDefault<z.ZodArray<z.ZodObject<{
457
- id: z.ZodString;
458
- enabled: z.ZodDefault<z.ZodBoolean>;
459
- showOnEachVisit: z.ZodDefault<z.ZodBoolean>;
460
- startDate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
461
- endDate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
462
- title: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
463
- value: z.ZodString;
464
- updatedAt: z.ZodCoercedDate<unknown>;
465
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
466
- }, z.core.$loose>>>;
467
- subtitle: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
468
- value: z.ZodString;
469
- updatedAt: z.ZodCoercedDate<unknown>;
470
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
471
- }, z.core.$loose>>>;
472
- message: z.ZodOptional<z.ZodPreprocess<z.ZodRecord<z.ZodString, z.ZodObject<{
473
- version: z.ZodLiteral<1>;
474
- json: z.ZodString;
475
- html: z.ZodString;
476
- text: z.ZodString;
477
- }, z.core.$strict>>>>;
478
- imageIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
479
- }, z.core.$strip>>>;
480
- faq: z.ZodDefault<z.ZodObject<{
481
- general: z.ZodDefault<z.ZodArray<z.ZodObject<{
482
- id: z.ZodString;
483
- question: z.ZodRecord<z.ZodString, z.ZodObject<{
484
- value: z.ZodString;
485
- updatedAt: z.ZodCoercedDate<unknown>;
486
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
487
- }, z.core.$loose>>;
488
- answer: z.ZodRecord<z.ZodString, z.ZodObject<{
489
- value: z.ZodString;
490
- updatedAt: z.ZodCoercedDate<unknown>;
491
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
492
- }, z.core.$loose>>;
493
- }, z.core.$strip>>>;
494
- deliveries: z.ZodDefault<z.ZodArray<z.ZodObject<{
495
- id: z.ZodString;
496
- question: z.ZodRecord<z.ZodString, z.ZodObject<{
497
- value: z.ZodString;
498
- updatedAt: z.ZodCoercedDate<unknown>;
499
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
500
- }, z.core.$loose>>;
501
- answer: z.ZodRecord<z.ZodString, z.ZodObject<{
502
- value: z.ZodString;
503
- updatedAt: z.ZodCoercedDate<unknown>;
504
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
505
- }, z.core.$loose>>;
506
- }, z.core.$strip>>>;
507
- booking: z.ZodDefault<z.ZodArray<z.ZodObject<{
508
- id: z.ZodString;
509
- question: z.ZodRecord<z.ZodString, z.ZodObject<{
510
- value: z.ZodString;
511
- updatedAt: z.ZodCoercedDate<unknown>;
512
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
513
- }, z.core.$loose>>;
514
- answer: z.ZodRecord<z.ZodString, z.ZodObject<{
515
- value: z.ZodString;
516
- updatedAt: z.ZodCoercedDate<unknown>;
517
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
518
- }, z.core.$loose>>;
519
- }, z.core.$strip>>>;
520
- }, z.core.$strip>>;
521
- }, z.core.$strip>>;
522
- modules: z.ZodOptional<z.ZodObject<{
523
- reviews: z.ZodOptional<z.ZodObject<{
524
- enabled: z.ZodBoolean;
525
- showRecentReviewsOnStorefront: z.ZodBoolean;
526
- }, z.core.$strip>>;
527
- }, z.core.$strip>>;
528
- }, z.core.$strip>;
529
-
530
- declare type StorefrontContextValue = {
531
- storeSlug: string;
532
- storefrontConfiguration: StorefrontConfiguration;
533
- bikes: BikeProduct[];
534
- accessories: AccessoryProduct[];
535
- mapboxToken?: string;
536
- language: StorefrontI18nLanguage;
537
- };
538
-
539
- declare type StorefrontI18nLanguage = "en" | "fr";
540
-
541
- declare function StorefrontProvider(): JSX.Element;
542
- export default StorefrontProvider;
543
-
544
- declare type StorefrontPublicAccessoryProduct = z.infer<typeof storefrontPublicAccessoryProductSchema>;
545
-
546
- declare const storefrontPublicAccessoryProductSchema: z.ZodObject<{
547
- id: z.ZodString;
548
- checkoutProductId: z.ZodOptional<z.ZodString>;
549
- representedVariantId: z.ZodOptional<z.ZodString>;
550
- slug: z.ZodString;
551
- name: z.ZodRecord<z.ZodString, z.ZodObject<{
552
- value: z.ZodString;
553
- updatedAt: z.ZodCoercedDate<unknown>;
554
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
555
- }, z.core.$loose>>;
556
- description: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
557
- value: z.ZodString;
558
- updatedAt: z.ZodCoercedDate<unknown>;
559
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
560
- }, z.core.$loose>>>;
561
- warning: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
562
- value: z.ZodString;
563
- updatedAt: z.ZodCoercedDate<unknown>;
564
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
565
- }, z.core.$loose>>>;
566
- images: z.ZodOptional<z.ZodArray<z.ZodString>>;
567
- primaryImageStyle: z.ZodOptional<z.ZodObject<{
568
- bgMode: z.ZodEnum<{
569
- transparent: "transparent";
570
- solid: "solid";
571
- complex: "complex";
572
- }>;
573
- bgColor: z.ZodOptional<z.ZodString>;
574
- needsLightBorder: z.ZodDefault<z.ZodBoolean>;
575
- confidence: z.ZodOptional<z.ZodNumber>;
576
- analyzerVersion: z.ZodOptional<z.ZodNumber>;
577
- }, z.core.$strip>>;
578
- prices: z.ZodArray<z.ZodObject<{
579
- value: z.ZodNumber;
580
- unit: z.ZodEnum<{
581
- hour: "hour";
582
- half_day: "half_day";
583
- day: "day";
584
- week: "week";
585
- month: "month";
586
- }>;
587
- quantity: z.ZodNumber;
588
- currency: z.ZodOptional<z.ZodString>;
589
- }, z.core.$strip>>;
590
- features: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodObject<{
591
- value: z.ZodString;
592
- updatedAt: z.ZodCoercedDate<unknown>;
593
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
594
- }, z.core.$loose>>>>;
595
- productVariants: z.ZodArray<z.ZodObject<{
596
- id: z.ZodString;
597
- computedName: z.ZodString;
598
- attributes: z.ZodDefault<z.ZodArray<z.ZodObject<{
599
- key: z.ZodString;
600
- label: z.ZodOptional<z.ZodString>;
601
- value: z.ZodString;
602
- }, z.core.$strip>>>;
603
- identifiers: z.ZodDefault<z.ZodArray<z.ZodObject<{
604
- kind: z.ZodString;
605
- value: z.ZodString;
606
- }, z.core.$strip>>>;
607
- }, z.core.$strip>>;
608
- storefrontDisplayMode: z.ZodDefault<z.ZodEnum<{
609
- variant_selector: "variant_selector";
610
- variants_as_products: "variants_as_products";
611
- }>>;
612
- }, z.core.$strip>;
613
-
614
- declare type StorefrontPublicBikeProduct = z.infer<typeof storefrontPublicBikeProductSchema>;
615
-
616
- declare const storefrontPublicBikeProductSchema: z.ZodObject<{
617
- id: z.ZodString;
618
- checkoutProductId: z.ZodOptional<z.ZodString>;
619
- representedVariantId: z.ZodOptional<z.ZodString>;
620
- slug: z.ZodString;
621
- kind: z.ZodOptional<z.ZodEnum<{
622
- bike: "bike";
623
- "e-bike": "e-bike";
624
- }>>;
625
- name: z.ZodRecord<z.ZodString, z.ZodObject<{
626
- value: z.ZodString;
627
- updatedAt: z.ZodCoercedDate<unknown>;
628
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
629
- }, z.core.$loose>>;
630
- description: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
631
- value: z.ZodString;
632
- updatedAt: z.ZodCoercedDate<unknown>;
633
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
634
- }, z.core.$loose>>>;
635
- warning: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
636
- value: z.ZodString;
637
- updatedAt: z.ZodCoercedDate<unknown>;
638
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
639
- }, z.core.$loose>>>;
640
- images: z.ZodOptional<z.ZodArray<z.ZodString>>;
641
- primaryImageStyle: z.ZodOptional<z.ZodObject<{
642
- bgMode: z.ZodEnum<{
643
- transparent: "transparent";
644
- solid: "solid";
645
- complex: "complex";
646
- }>;
647
- bgColor: z.ZodOptional<z.ZodString>;
648
- needsLightBorder: z.ZodDefault<z.ZodBoolean>;
649
- confidence: z.ZodOptional<z.ZodNumber>;
650
- analyzerVersion: z.ZodOptional<z.ZodNumber>;
651
- }, z.core.$strip>>;
652
- prices: z.ZodOptional<z.ZodArray<z.ZodObject<{
653
- value: z.ZodNumber;
654
- unit: z.ZodEnum<{
655
- hour: "hour";
656
- half_day: "half_day";
657
- day: "day";
658
- week: "week";
659
- month: "month";
660
- }>;
661
- quantity: z.ZodNumber;
662
- currency: z.ZodOptional<z.ZodString>;
663
- }, z.core.$strip>>>;
664
- features: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodObject<{
665
- value: z.ZodString;
666
- updatedAt: z.ZodCoercedDate<unknown>;
667
- autoTranslated: z.ZodOptional<z.ZodBoolean>;
668
- }, z.core.$loose>>>>;
669
- productVariants: z.ZodArray<z.ZodObject<{
670
- id: z.ZodString;
671
- computedName: z.ZodString;
672
- attributes: z.ZodDefault<z.ZodArray<z.ZodObject<{
673
- key: z.ZodString;
674
- label: z.ZodOptional<z.ZodString>;
675
- value: z.ZodString;
676
- }, z.core.$strip>>>;
677
- identifiers: z.ZodDefault<z.ZodArray<z.ZodObject<{
678
- kind: z.ZodString;
679
- value: z.ZodString;
680
- }, z.core.$strip>>>;
681
- }, z.core.$strip>>;
682
- storefrontDisplayMode: z.ZodDefault<z.ZodEnum<{
683
- variant_selector: "variant_selector";
684
- variants_as_products: "variants_as_products";
685
- }>>;
686
- availabilityStatus: z.ZodOptional<z.ZodEnum<{
687
- AVAILABLE: "AVAILABLE";
688
- LOW_STOCK: "LOW_STOCK";
689
- OUT_OF_STOCK: "OUT_OF_STOCK";
690
- }>>;
691
- }, z.core.$strip>;
692
-
693
- export declare function useOptionalStorefront(): StorefrontContextValue | undefined;
694
-
695
- export declare function useStorefront(): StorefrontContextValue;
696
-
697
- export declare function useStorefrontConfig(): {
698
- config: {
699
- storeSlug: string;
700
- shop: {
701
- id: string;
702
- name: string;
703
- slug?: string | undefined;
704
- timeZone?: string | undefined;
705
- url?: string | undefined;
706
- googleMapsLink?: string | undefined;
707
- googleRequestReviewsLink?: string | undefined;
708
- emailAddress?: string | undefined;
709
- contactPhone1?: string | undefined;
710
- contactPhone2?: string | undefined;
711
- address?: string | undefined;
712
- city?: string | undefined;
713
- country?: string | undefined;
714
- gpsCoordinates?: [number, number] | undefined;
715
- };
716
- settings: {
717
- status: "unpublished" | "published";
718
- checkoutMode: "auto_approve_when_possible" | "manual_approval_required";
719
- availabilityDisplay: {
720
- defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
721
- defaultFewRemainingThreshold?: number | undefined;
722
- };
723
- enabled: boolean;
724
- fulfillmentModes: ("pickup" | "delivery")[];
725
- deliveryDisabledReason: string;
726
- sameDayCutoff: string;
727
- };
728
- bookingEngine: {
729
- availabilityDisplay: {
730
- defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
731
- defaultFewRemainingThreshold?: number | undefined;
732
- };
733
- holdSettings: {
734
- enabled: boolean;
735
- defaultTtlMinutes: number;
736
- };
737
- pricing: {
738
- baseUnit: "hour" | "half_day" | "day" | "week" | "month";
739
- rentalUnits: {
740
- unit: "hour" | "half_day" | "day" | "week" | "month";
741
- durationHours: number;
742
- label?: Record<string, {
743
- [x: string]: unknown;
744
- value: string;
745
- updatedAt: Date;
746
- autoTranslated?: boolean | undefined;
747
- }> | undefined;
748
- }[];
749
- halfDay?: {
750
- enabled: boolean;
751
- boundaryHour: number;
752
- } | undefined;
753
- };
754
- bookingDeposit: {
755
- enabled: boolean;
756
- percentage: number;
757
- optimizeDepositAmount: boolean;
758
- };
759
- securityDeposit: {
760
- mode: "optional" | "required" | "disabled";
761
- };
762
- shop: {
763
- timeZone: string;
764
- openingHours: {
765
- name: string;
766
- startDate: string;
767
- endDate: string;
768
- openingHours: {
769
- day: 0 | 1 | 2 | 3 | 4 | 5 | 6;
770
- openingSlots: {
771
- start: string;
772
- end: string;
773
- }[];
774
- }[];
775
- }[];
776
- openingHoursOverrides?: {
777
- date: string;
778
- openingSlots: {
779
- start: string;
780
- end: string;
781
- }[];
782
- }[] | undefined;
783
- extraTimeSlots?: {
784
- minutesAfterClose: number;
785
- extraAmount: number;
786
- }[] | undefined;
787
- };
788
- currency: "EUR" | "USD" | "GBP" | "CHF";
789
- checkout: {
790
- mode: "auto_approve_when_possible" | "manual_approval_required";
791
- dynamicOptions?: {
792
- fulfillmentModes?: ("pickup" | "delivery")[] | undefined;
793
- sameDayCutoff?: string | undefined;
794
- } | undefined;
795
- };
796
- };
797
- workspace?: {
798
- name?: string | undefined;
799
- workspaceLanguage?: "fr" | "en" | undefined;
800
- languages?: string[] | undefined;
801
- } | undefined;
802
- content?: {
803
- galleryImageIds: string[];
804
- whatsappPhone1Enabled: boolean;
805
- whatsappPhone2Enabled: boolean;
806
- showWhatsappFloatingButton: boolean;
807
- modalMessages: {
808
- id: string;
809
- enabled: boolean;
810
- showOnEachVisit: boolean;
811
- startDate: string | null;
812
- endDate: string | null;
813
- imageIds: string[];
814
- title?: Record<string, {
815
- [x: string]: unknown;
816
- value: string;
817
- updatedAt: Date;
818
- autoTranslated?: boolean | undefined;
819
- }> | undefined;
820
- subtitle?: Record<string, {
821
- [x: string]: unknown;
822
- value: string;
823
- updatedAt: Date;
824
- autoTranslated?: boolean | undefined;
825
- }> | undefined;
826
- message?: Record<string, {
827
- version: 1;
828
- json: string;
829
- html: string;
830
- text: string;
831
- }> | undefined;
832
- }[];
833
- faq: {
834
- general: {
835
- id: string;
836
- question: Record<string, {
837
- [x: string]: unknown;
838
- value: string;
839
- updatedAt: Date;
840
- autoTranslated?: boolean | undefined;
841
- }>;
842
- answer: Record<string, {
843
- [x: string]: unknown;
844
- value: string;
845
- updatedAt: Date;
846
- autoTranslated?: boolean | undefined;
847
- }>;
848
- }[];
849
- deliveries: {
850
- id: string;
851
- question: Record<string, {
852
- [x: string]: unknown;
853
- value: string;
854
- updatedAt: Date;
855
- autoTranslated?: boolean | undefined;
856
- }>;
857
- answer: Record<string, {
858
- [x: string]: unknown;
859
- value: string;
860
- updatedAt: Date;
861
- autoTranslated?: boolean | undefined;
862
- }>;
863
- }[];
864
- booking: {
865
- id: string;
866
- question: Record<string, {
867
- [x: string]: unknown;
868
- value: string;
869
- updatedAt: Date;
870
- autoTranslated?: boolean | undefined;
871
- }>;
872
- answer: Record<string, {
873
- [x: string]: unknown;
874
- value: string;
875
- updatedAt: Date;
876
- autoTranslated?: boolean | undefined;
877
- }>;
878
- }[];
879
- };
880
- tagline?: Record<string, {
881
- [x: string]: unknown;
882
- value: string;
883
- updatedAt: Date;
884
- autoTranslated?: boolean | undefined;
885
- }> | undefined;
886
- logoSquareImageId?: string | undefined;
887
- logoWideImageId?: string | undefined;
888
- topBannerMessage?: Record<string, {
889
- [x: string]: unknown;
890
- value: string;
891
- updatedAt: Date;
892
- autoTranslated?: boolean | undefined;
893
- }> | undefined;
894
- about?: Record<string, {
895
- version: 1;
896
- json: string;
897
- html: string;
898
- text: string;
899
- }> | undefined;
900
- whatsappMessage?: Record<string, {
901
- [x: string]: unknown;
902
- value: string;
903
- updatedAt: Date;
904
- autoTranslated?: boolean | undefined;
905
- }> | undefined;
906
- } | undefined;
907
- modules?: {
908
- reviews?: {
909
- enabled: boolean;
910
- showRecentReviewsOnStorefront: boolean;
911
- } | undefined;
912
- } | undefined;
913
- };
914
- storefrontConfiguration: {
915
- storeSlug: string;
916
- shop: {
917
- id: string;
918
- name: string;
919
- slug?: string | undefined;
920
- timeZone?: string | undefined;
921
- url?: string | undefined;
922
- googleMapsLink?: string | undefined;
923
- googleRequestReviewsLink?: string | undefined;
924
- emailAddress?: string | undefined;
925
- contactPhone1?: string | undefined;
926
- contactPhone2?: string | undefined;
927
- address?: string | undefined;
928
- city?: string | undefined;
929
- country?: string | undefined;
930
- gpsCoordinates?: [number, number] | undefined;
931
- };
932
- settings: {
933
- status: "unpublished" | "published";
934
- checkoutMode: "auto_approve_when_possible" | "manual_approval_required";
935
- availabilityDisplay: {
936
- defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
937
- defaultFewRemainingThreshold?: number | undefined;
938
- };
939
- enabled: boolean;
940
- fulfillmentModes: ("pickup" | "delivery")[];
941
- deliveryDisabledReason: string;
942
- sameDayCutoff: string;
943
- };
944
- bookingEngine: {
945
- availabilityDisplay: {
946
- defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
947
- defaultFewRemainingThreshold?: number | undefined;
948
- };
949
- holdSettings: {
950
- enabled: boolean;
951
- defaultTtlMinutes: number;
952
- };
953
- pricing: {
954
- baseUnit: "hour" | "half_day" | "day" | "week" | "month";
955
- rentalUnits: {
956
- unit: "hour" | "half_day" | "day" | "week" | "month";
957
- durationHours: number;
958
- label?: Record<string, {
959
- [x: string]: unknown;
960
- value: string;
961
- updatedAt: Date;
962
- autoTranslated?: boolean | undefined;
963
- }> | undefined;
964
- }[];
965
- halfDay?: {
966
- enabled: boolean;
967
- boundaryHour: number;
968
- } | undefined;
969
- };
970
- bookingDeposit: {
971
- enabled: boolean;
972
- percentage: number;
973
- optimizeDepositAmount: boolean;
974
- };
975
- securityDeposit: {
976
- mode: "optional" | "required" | "disabled";
977
- };
978
- shop: {
979
- timeZone: string;
980
- openingHours: {
981
- name: string;
982
- startDate: string;
983
- endDate: string;
984
- openingHours: {
985
- day: 0 | 1 | 2 | 3 | 4 | 5 | 6;
986
- openingSlots: {
987
- start: string;
988
- end: string;
989
- }[];
990
- }[];
991
- }[];
992
- openingHoursOverrides?: {
993
- date: string;
994
- openingSlots: {
995
- start: string;
996
- end: string;
997
- }[];
998
- }[] | undefined;
999
- extraTimeSlots?: {
1000
- minutesAfterClose: number;
1001
- extraAmount: number;
1002
- }[] | undefined;
1003
- };
1004
- currency: "EUR" | "USD" | "GBP" | "CHF";
1005
- checkout: {
1006
- mode: "auto_approve_when_possible" | "manual_approval_required";
1007
- dynamicOptions?: {
1008
- fulfillmentModes?: ("pickup" | "delivery")[] | undefined;
1009
- sameDayCutoff?: string | undefined;
1010
- } | undefined;
1011
- };
1012
- };
1013
- workspace?: {
1014
- name?: string | undefined;
1015
- workspaceLanguage?: "fr" | "en" | undefined;
1016
- languages?: string[] | undefined;
1017
- } | undefined;
1018
- content?: {
1019
- galleryImageIds: string[];
1020
- whatsappPhone1Enabled: boolean;
1021
- whatsappPhone2Enabled: boolean;
1022
- showWhatsappFloatingButton: boolean;
1023
- modalMessages: {
1024
- id: string;
1025
- enabled: boolean;
1026
- showOnEachVisit: boolean;
1027
- startDate: string | null;
1028
- endDate: string | null;
1029
- imageIds: string[];
1030
- title?: Record<string, {
1031
- [x: string]: unknown;
1032
- value: string;
1033
- updatedAt: Date;
1034
- autoTranslated?: boolean | undefined;
1035
- }> | undefined;
1036
- subtitle?: Record<string, {
1037
- [x: string]: unknown;
1038
- value: string;
1039
- updatedAt: Date;
1040
- autoTranslated?: boolean | undefined;
1041
- }> | undefined;
1042
- message?: Record<string, {
1043
- version: 1;
1044
- json: string;
1045
- html: string;
1046
- text: string;
1047
- }> | undefined;
1048
- }[];
1049
- faq: {
1050
- general: {
1051
- id: string;
1052
- question: Record<string, {
1053
- [x: string]: unknown;
1054
- value: string;
1055
- updatedAt: Date;
1056
- autoTranslated?: boolean | undefined;
1057
- }>;
1058
- answer: Record<string, {
1059
- [x: string]: unknown;
1060
- value: string;
1061
- updatedAt: Date;
1062
- autoTranslated?: boolean | undefined;
1063
- }>;
1064
- }[];
1065
- deliveries: {
1066
- id: string;
1067
- question: Record<string, {
1068
- [x: string]: unknown;
1069
- value: string;
1070
- updatedAt: Date;
1071
- autoTranslated?: boolean | undefined;
1072
- }>;
1073
- answer: Record<string, {
1074
- [x: string]: unknown;
1075
- value: string;
1076
- updatedAt: Date;
1077
- autoTranslated?: boolean | undefined;
1078
- }>;
1079
- }[];
1080
- booking: {
1081
- id: string;
1082
- question: Record<string, {
1083
- [x: string]: unknown;
1084
- value: string;
1085
- updatedAt: Date;
1086
- autoTranslated?: boolean | undefined;
1087
- }>;
1088
- answer: Record<string, {
1089
- [x: string]: unknown;
1090
- value: string;
1091
- updatedAt: Date;
1092
- autoTranslated?: boolean | undefined;
1093
- }>;
1094
- }[];
1095
- };
1096
- tagline?: Record<string, {
1097
- [x: string]: unknown;
1098
- value: string;
1099
- updatedAt: Date;
1100
- autoTranslated?: boolean | undefined;
1101
- }> | undefined;
1102
- logoSquareImageId?: string | undefined;
1103
- logoWideImageId?: string | undefined;
1104
- topBannerMessage?: Record<string, {
1105
- [x: string]: unknown;
1106
- value: string;
1107
- updatedAt: Date;
1108
- autoTranslated?: boolean | undefined;
1109
- }> | undefined;
1110
- about?: Record<string, {
1111
- version: 1;
1112
- json: string;
1113
- html: string;
1114
- text: string;
1115
- }> | undefined;
1116
- whatsappMessage?: Record<string, {
1117
- [x: string]: unknown;
1118
- value: string;
1119
- updatedAt: Date;
1120
- autoTranslated?: boolean | undefined;
1121
- }> | undefined;
1122
- } | undefined;
1123
- modules?: {
1124
- reviews?: {
1125
- enabled: boolean;
1126
- showRecentReviewsOnStorefront: boolean;
1127
- } | undefined;
1128
- } | undefined;
1129
- };
1130
- };
1131
-
1132
- export declare function useStorefrontProducts(): {
1133
- bikes: BikeProduct[];
1134
- accessories: AccessoryProduct[];
1135
- };
1136
-
1137
- export declare function useStorefrontWorkspaceLanguage(): StorefrontI18nLanguage;
1138
-
1139
- export { }
1
+ import { StorefrontI18nLanguage } from './i18n/I18nProvider';
2
+ import { StorefrontConfiguration } from './storefrontSchemas';
3
+ import { AccessoryProduct, BikeProduct } from './lib/products';
4
+ type StorefrontContextValue = {
5
+ storeSlug: string;
6
+ storefrontConfiguration: StorefrontConfiguration;
7
+ bikes: BikeProduct[];
8
+ accessories: AccessoryProduct[];
9
+ mapboxToken?: string;
10
+ language: StorefrontI18nLanguage;
11
+ };
12
+ export declare const loader: ({ ctx, params }: import('@rpcbase/client').LoaderArgs) => Promise<{
13
+ storeSlug: string;
14
+ storefrontConfiguration: {
15
+ storeSlug: string;
16
+ shop: {
17
+ id: string;
18
+ name: string;
19
+ slug?: string | undefined;
20
+ timeZone?: string | undefined;
21
+ url?: string | undefined;
22
+ googleMapsLink?: string | undefined;
23
+ googleRequestReviewsLink?: string | undefined;
24
+ emailAddress?: string | undefined;
25
+ contactPhone1?: string | undefined;
26
+ contactPhone2?: string | undefined;
27
+ address?: string | undefined;
28
+ city?: string | undefined;
29
+ country?: string | undefined;
30
+ gpsCoordinates?: [number, number] | undefined;
31
+ };
32
+ settings: {
33
+ status: "unpublished" | "published";
34
+ checkoutMode: "auto_approve_when_possible" | "manual_approval_required";
35
+ availabilityDisplay: {
36
+ defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
37
+ defaultFewRemainingThreshold?: number | undefined;
38
+ };
39
+ enabled: boolean;
40
+ fulfillmentModes: ("pickup" | "delivery")[];
41
+ deliveryDisabledReason: string;
42
+ sameDayCutoff: string;
43
+ };
44
+ bookingEngine: {
45
+ availabilityDisplay: {
46
+ defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
47
+ defaultFewRemainingThreshold?: number | undefined;
48
+ };
49
+ holdSettings: {
50
+ enabled: boolean;
51
+ defaultTtlMinutes: number;
52
+ };
53
+ pricing: {
54
+ baseUnit: "hour" | "half_day" | "day" | "week" | "month";
55
+ rentalUnits: {
56
+ unit: "hour" | "half_day" | "day" | "week" | "month";
57
+ durationHours: number;
58
+ label?: Record<string, {
59
+ [x: string]: unknown;
60
+ value: string;
61
+ updatedAt: Date;
62
+ autoTranslated?: boolean | undefined;
63
+ }> | undefined;
64
+ }[];
65
+ halfDay?: {
66
+ enabled: boolean;
67
+ boundaryHour: number;
68
+ } | undefined;
69
+ };
70
+ bookingDeposit: {
71
+ enabled: boolean;
72
+ percentage: number;
73
+ optimizeDepositAmount: boolean;
74
+ };
75
+ securityDeposit: {
76
+ mode: "optional" | "required" | "disabled";
77
+ };
78
+ shop: {
79
+ timeZone: string;
80
+ openingHours: {
81
+ name: string;
82
+ startDate: string;
83
+ endDate: string;
84
+ openingHours: {
85
+ day: 0 | 1 | 2 | 3 | 4 | 5 | 6;
86
+ openingSlots: {
87
+ start: string;
88
+ end: string;
89
+ }[];
90
+ }[];
91
+ }[];
92
+ openingHoursOverrides?: {
93
+ date: string;
94
+ openingSlots: {
95
+ start: string;
96
+ end: string;
97
+ }[];
98
+ }[] | undefined;
99
+ extraTimeSlots?: {
100
+ minutesAfterClose: number;
101
+ extraAmount: number;
102
+ }[] | undefined;
103
+ };
104
+ currency: "EUR" | "USD" | "GBP" | "CHF";
105
+ checkout: {
106
+ mode: "auto_approve_when_possible" | "manual_approval_required";
107
+ dynamicOptions?: {
108
+ fulfillmentModes?: ("pickup" | "delivery")[] | undefined;
109
+ sameDayCutoff?: string | undefined;
110
+ } | undefined;
111
+ };
112
+ };
113
+ workspace?: {
114
+ name?: string | undefined;
115
+ workspaceLanguage?: "fr" | "en" | undefined;
116
+ languages?: string[] | undefined;
117
+ } | undefined;
118
+ content?: {
119
+ galleryImageIds: string[];
120
+ whatsappPhone1Enabled: boolean;
121
+ whatsappPhone2Enabled: boolean;
122
+ showWhatsappFloatingButton: boolean;
123
+ modalMessages: {
124
+ id: string;
125
+ enabled: boolean;
126
+ showOnEachVisit: boolean;
127
+ startDate: string | null;
128
+ endDate: string | null;
129
+ imageIds: string[];
130
+ title?: Record<string, {
131
+ [x: string]: unknown;
132
+ value: string;
133
+ updatedAt: Date;
134
+ autoTranslated?: boolean | undefined;
135
+ }> | undefined;
136
+ subtitle?: Record<string, {
137
+ [x: string]: unknown;
138
+ value: string;
139
+ updatedAt: Date;
140
+ autoTranslated?: boolean | undefined;
141
+ }> | undefined;
142
+ message?: Record<string, {
143
+ version: 1;
144
+ json: string;
145
+ html: string;
146
+ text: string;
147
+ }> | undefined;
148
+ }[];
149
+ faq: {
150
+ general: {
151
+ id: string;
152
+ question: Record<string, {
153
+ [x: string]: unknown;
154
+ value: string;
155
+ updatedAt: Date;
156
+ autoTranslated?: boolean | undefined;
157
+ }>;
158
+ answer: Record<string, {
159
+ [x: string]: unknown;
160
+ value: string;
161
+ updatedAt: Date;
162
+ autoTranslated?: boolean | undefined;
163
+ }>;
164
+ }[];
165
+ deliveries: {
166
+ id: string;
167
+ question: Record<string, {
168
+ [x: string]: unknown;
169
+ value: string;
170
+ updatedAt: Date;
171
+ autoTranslated?: boolean | undefined;
172
+ }>;
173
+ answer: Record<string, {
174
+ [x: string]: unknown;
175
+ value: string;
176
+ updatedAt: Date;
177
+ autoTranslated?: boolean | undefined;
178
+ }>;
179
+ }[];
180
+ booking: {
181
+ id: string;
182
+ question: Record<string, {
183
+ [x: string]: unknown;
184
+ value: string;
185
+ updatedAt: Date;
186
+ autoTranslated?: boolean | undefined;
187
+ }>;
188
+ answer: Record<string, {
189
+ [x: string]: unknown;
190
+ value: string;
191
+ updatedAt: Date;
192
+ autoTranslated?: boolean | undefined;
193
+ }>;
194
+ }[];
195
+ };
196
+ tagline?: Record<string, {
197
+ [x: string]: unknown;
198
+ value: string;
199
+ updatedAt: Date;
200
+ autoTranslated?: boolean | undefined;
201
+ }> | undefined;
202
+ logoSquareImageId?: string | undefined;
203
+ logoWideImageId?: string | undefined;
204
+ topBannerMessage?: Record<string, {
205
+ [x: string]: unknown;
206
+ value: string;
207
+ updatedAt: Date;
208
+ autoTranslated?: boolean | undefined;
209
+ }> | undefined;
210
+ about?: Record<string, {
211
+ version: 1;
212
+ json: string;
213
+ html: string;
214
+ text: string;
215
+ }> | undefined;
216
+ whatsappMessage?: Record<string, {
217
+ [x: string]: unknown;
218
+ value: string;
219
+ updatedAt: Date;
220
+ autoTranslated?: boolean | undefined;
221
+ }> | undefined;
222
+ } | undefined;
223
+ modules?: {
224
+ reviews?: {
225
+ enabled: boolean;
226
+ showRecentReviewsOnStorefront: boolean;
227
+ } | undefined;
228
+ } | undefined;
229
+ };
230
+ bikes: BikeProduct[];
231
+ accessories: AccessoryProduct[];
232
+ language: StorefrontI18nLanguage;
233
+ }>;
234
+ export default function StorefrontProvider(): import("react/jsx-runtime").JSX.Element;
235
+ export declare function useStorefront(): StorefrontContextValue;
236
+ export declare function useOptionalStorefront(): StorefrontContextValue | undefined;
237
+ export declare function useStorefrontConfig(): {
238
+ config: {
239
+ storeSlug: string;
240
+ shop: {
241
+ id: string;
242
+ name: string;
243
+ slug?: string | undefined;
244
+ timeZone?: string | undefined;
245
+ url?: string | undefined;
246
+ googleMapsLink?: string | undefined;
247
+ googleRequestReviewsLink?: string | undefined;
248
+ emailAddress?: string | undefined;
249
+ contactPhone1?: string | undefined;
250
+ contactPhone2?: string | undefined;
251
+ address?: string | undefined;
252
+ city?: string | undefined;
253
+ country?: string | undefined;
254
+ gpsCoordinates?: [number, number] | undefined;
255
+ };
256
+ settings: {
257
+ status: "unpublished" | "published";
258
+ checkoutMode: "auto_approve_when_possible" | "manual_approval_required";
259
+ availabilityDisplay: {
260
+ defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
261
+ defaultFewRemainingThreshold?: number | undefined;
262
+ };
263
+ enabled: boolean;
264
+ fulfillmentModes: ("pickup" | "delivery")[];
265
+ deliveryDisabledReason: string;
266
+ sameDayCutoff: string;
267
+ };
268
+ bookingEngine: {
269
+ availabilityDisplay: {
270
+ defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
271
+ defaultFewRemainingThreshold?: number | undefined;
272
+ };
273
+ holdSettings: {
274
+ enabled: boolean;
275
+ defaultTtlMinutes: number;
276
+ };
277
+ pricing: {
278
+ baseUnit: "hour" | "half_day" | "day" | "week" | "month";
279
+ rentalUnits: {
280
+ unit: "hour" | "half_day" | "day" | "week" | "month";
281
+ durationHours: number;
282
+ label?: Record<string, {
283
+ [x: string]: unknown;
284
+ value: string;
285
+ updatedAt: Date;
286
+ autoTranslated?: boolean | undefined;
287
+ }> | undefined;
288
+ }[];
289
+ halfDay?: {
290
+ enabled: boolean;
291
+ boundaryHour: number;
292
+ } | undefined;
293
+ };
294
+ bookingDeposit: {
295
+ enabled: boolean;
296
+ percentage: number;
297
+ optimizeDepositAmount: boolean;
298
+ };
299
+ securityDeposit: {
300
+ mode: "optional" | "required" | "disabled";
301
+ };
302
+ shop: {
303
+ timeZone: string;
304
+ openingHours: {
305
+ name: string;
306
+ startDate: string;
307
+ endDate: string;
308
+ openingHours: {
309
+ day: 0 | 1 | 2 | 3 | 4 | 5 | 6;
310
+ openingSlots: {
311
+ start: string;
312
+ end: string;
313
+ }[];
314
+ }[];
315
+ }[];
316
+ openingHoursOverrides?: {
317
+ date: string;
318
+ openingSlots: {
319
+ start: string;
320
+ end: string;
321
+ }[];
322
+ }[] | undefined;
323
+ extraTimeSlots?: {
324
+ minutesAfterClose: number;
325
+ extraAmount: number;
326
+ }[] | undefined;
327
+ };
328
+ currency: "EUR" | "USD" | "GBP" | "CHF";
329
+ checkout: {
330
+ mode: "auto_approve_when_possible" | "manual_approval_required";
331
+ dynamicOptions?: {
332
+ fulfillmentModes?: ("pickup" | "delivery")[] | undefined;
333
+ sameDayCutoff?: string | undefined;
334
+ } | undefined;
335
+ };
336
+ };
337
+ workspace?: {
338
+ name?: string | undefined;
339
+ workspaceLanguage?: "fr" | "en" | undefined;
340
+ languages?: string[] | undefined;
341
+ } | undefined;
342
+ content?: {
343
+ galleryImageIds: string[];
344
+ whatsappPhone1Enabled: boolean;
345
+ whatsappPhone2Enabled: boolean;
346
+ showWhatsappFloatingButton: boolean;
347
+ modalMessages: {
348
+ id: string;
349
+ enabled: boolean;
350
+ showOnEachVisit: boolean;
351
+ startDate: string | null;
352
+ endDate: string | null;
353
+ imageIds: string[];
354
+ title?: Record<string, {
355
+ [x: string]: unknown;
356
+ value: string;
357
+ updatedAt: Date;
358
+ autoTranslated?: boolean | undefined;
359
+ }> | undefined;
360
+ subtitle?: Record<string, {
361
+ [x: string]: unknown;
362
+ value: string;
363
+ updatedAt: Date;
364
+ autoTranslated?: boolean | undefined;
365
+ }> | undefined;
366
+ message?: Record<string, {
367
+ version: 1;
368
+ json: string;
369
+ html: string;
370
+ text: string;
371
+ }> | undefined;
372
+ }[];
373
+ faq: {
374
+ general: {
375
+ id: string;
376
+ question: Record<string, {
377
+ [x: string]: unknown;
378
+ value: string;
379
+ updatedAt: Date;
380
+ autoTranslated?: boolean | undefined;
381
+ }>;
382
+ answer: Record<string, {
383
+ [x: string]: unknown;
384
+ value: string;
385
+ updatedAt: Date;
386
+ autoTranslated?: boolean | undefined;
387
+ }>;
388
+ }[];
389
+ deliveries: {
390
+ id: string;
391
+ question: Record<string, {
392
+ [x: string]: unknown;
393
+ value: string;
394
+ updatedAt: Date;
395
+ autoTranslated?: boolean | undefined;
396
+ }>;
397
+ answer: Record<string, {
398
+ [x: string]: unknown;
399
+ value: string;
400
+ updatedAt: Date;
401
+ autoTranslated?: boolean | undefined;
402
+ }>;
403
+ }[];
404
+ booking: {
405
+ id: string;
406
+ question: Record<string, {
407
+ [x: string]: unknown;
408
+ value: string;
409
+ updatedAt: Date;
410
+ autoTranslated?: boolean | undefined;
411
+ }>;
412
+ answer: Record<string, {
413
+ [x: string]: unknown;
414
+ value: string;
415
+ updatedAt: Date;
416
+ autoTranslated?: boolean | undefined;
417
+ }>;
418
+ }[];
419
+ };
420
+ tagline?: Record<string, {
421
+ [x: string]: unknown;
422
+ value: string;
423
+ updatedAt: Date;
424
+ autoTranslated?: boolean | undefined;
425
+ }> | undefined;
426
+ logoSquareImageId?: string | undefined;
427
+ logoWideImageId?: string | undefined;
428
+ topBannerMessage?: Record<string, {
429
+ [x: string]: unknown;
430
+ value: string;
431
+ updatedAt: Date;
432
+ autoTranslated?: boolean | undefined;
433
+ }> | undefined;
434
+ about?: Record<string, {
435
+ version: 1;
436
+ json: string;
437
+ html: string;
438
+ text: string;
439
+ }> | undefined;
440
+ whatsappMessage?: Record<string, {
441
+ [x: string]: unknown;
442
+ value: string;
443
+ updatedAt: Date;
444
+ autoTranslated?: boolean | undefined;
445
+ }> | undefined;
446
+ } | undefined;
447
+ modules?: {
448
+ reviews?: {
449
+ enabled: boolean;
450
+ showRecentReviewsOnStorefront: boolean;
451
+ } | undefined;
452
+ } | undefined;
453
+ };
454
+ storefrontConfiguration: {
455
+ storeSlug: string;
456
+ shop: {
457
+ id: string;
458
+ name: string;
459
+ slug?: string | undefined;
460
+ timeZone?: string | undefined;
461
+ url?: string | undefined;
462
+ googleMapsLink?: string | undefined;
463
+ googleRequestReviewsLink?: string | undefined;
464
+ emailAddress?: string | undefined;
465
+ contactPhone1?: string | undefined;
466
+ contactPhone2?: string | undefined;
467
+ address?: string | undefined;
468
+ city?: string | undefined;
469
+ country?: string | undefined;
470
+ gpsCoordinates?: [number, number] | undefined;
471
+ };
472
+ settings: {
473
+ status: "unpublished" | "published";
474
+ checkoutMode: "auto_approve_when_possible" | "manual_approval_required";
475
+ availabilityDisplay: {
476
+ defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
477
+ defaultFewRemainingThreshold?: number | undefined;
478
+ };
479
+ enabled: boolean;
480
+ fulfillmentModes: ("pickup" | "delivery")[];
481
+ deliveryDisabledReason: string;
482
+ sameDayCutoff: string;
483
+ };
484
+ bookingEngine: {
485
+ availabilityDisplay: {
486
+ defaultMode: "soldOutOnly" | "soldOutAndFewRemaining" | "fewRemaining" | "fewRemainingCounts" | "remainingCounts";
487
+ defaultFewRemainingThreshold?: number | undefined;
488
+ };
489
+ holdSettings: {
490
+ enabled: boolean;
491
+ defaultTtlMinutes: number;
492
+ };
493
+ pricing: {
494
+ baseUnit: "hour" | "half_day" | "day" | "week" | "month";
495
+ rentalUnits: {
496
+ unit: "hour" | "half_day" | "day" | "week" | "month";
497
+ durationHours: number;
498
+ label?: Record<string, {
499
+ [x: string]: unknown;
500
+ value: string;
501
+ updatedAt: Date;
502
+ autoTranslated?: boolean | undefined;
503
+ }> | undefined;
504
+ }[];
505
+ halfDay?: {
506
+ enabled: boolean;
507
+ boundaryHour: number;
508
+ } | undefined;
509
+ };
510
+ bookingDeposit: {
511
+ enabled: boolean;
512
+ percentage: number;
513
+ optimizeDepositAmount: boolean;
514
+ };
515
+ securityDeposit: {
516
+ mode: "optional" | "required" | "disabled";
517
+ };
518
+ shop: {
519
+ timeZone: string;
520
+ openingHours: {
521
+ name: string;
522
+ startDate: string;
523
+ endDate: string;
524
+ openingHours: {
525
+ day: 0 | 1 | 2 | 3 | 4 | 5 | 6;
526
+ openingSlots: {
527
+ start: string;
528
+ end: string;
529
+ }[];
530
+ }[];
531
+ }[];
532
+ openingHoursOverrides?: {
533
+ date: string;
534
+ openingSlots: {
535
+ start: string;
536
+ end: string;
537
+ }[];
538
+ }[] | undefined;
539
+ extraTimeSlots?: {
540
+ minutesAfterClose: number;
541
+ extraAmount: number;
542
+ }[] | undefined;
543
+ };
544
+ currency: "EUR" | "USD" | "GBP" | "CHF";
545
+ checkout: {
546
+ mode: "auto_approve_when_possible" | "manual_approval_required";
547
+ dynamicOptions?: {
548
+ fulfillmentModes?: ("pickup" | "delivery")[] | undefined;
549
+ sameDayCutoff?: string | undefined;
550
+ } | undefined;
551
+ };
552
+ };
553
+ workspace?: {
554
+ name?: string | undefined;
555
+ workspaceLanguage?: "fr" | "en" | undefined;
556
+ languages?: string[] | undefined;
557
+ } | undefined;
558
+ content?: {
559
+ galleryImageIds: string[];
560
+ whatsappPhone1Enabled: boolean;
561
+ whatsappPhone2Enabled: boolean;
562
+ showWhatsappFloatingButton: boolean;
563
+ modalMessages: {
564
+ id: string;
565
+ enabled: boolean;
566
+ showOnEachVisit: boolean;
567
+ startDate: string | null;
568
+ endDate: string | null;
569
+ imageIds: string[];
570
+ title?: Record<string, {
571
+ [x: string]: unknown;
572
+ value: string;
573
+ updatedAt: Date;
574
+ autoTranslated?: boolean | undefined;
575
+ }> | undefined;
576
+ subtitle?: Record<string, {
577
+ [x: string]: unknown;
578
+ value: string;
579
+ updatedAt: Date;
580
+ autoTranslated?: boolean | undefined;
581
+ }> | undefined;
582
+ message?: Record<string, {
583
+ version: 1;
584
+ json: string;
585
+ html: string;
586
+ text: string;
587
+ }> | undefined;
588
+ }[];
589
+ faq: {
590
+ general: {
591
+ id: string;
592
+ question: Record<string, {
593
+ [x: string]: unknown;
594
+ value: string;
595
+ updatedAt: Date;
596
+ autoTranslated?: boolean | undefined;
597
+ }>;
598
+ answer: Record<string, {
599
+ [x: string]: unknown;
600
+ value: string;
601
+ updatedAt: Date;
602
+ autoTranslated?: boolean | undefined;
603
+ }>;
604
+ }[];
605
+ deliveries: {
606
+ id: string;
607
+ question: Record<string, {
608
+ [x: string]: unknown;
609
+ value: string;
610
+ updatedAt: Date;
611
+ autoTranslated?: boolean | undefined;
612
+ }>;
613
+ answer: Record<string, {
614
+ [x: string]: unknown;
615
+ value: string;
616
+ updatedAt: Date;
617
+ autoTranslated?: boolean | undefined;
618
+ }>;
619
+ }[];
620
+ booking: {
621
+ id: string;
622
+ question: Record<string, {
623
+ [x: string]: unknown;
624
+ value: string;
625
+ updatedAt: Date;
626
+ autoTranslated?: boolean | undefined;
627
+ }>;
628
+ answer: Record<string, {
629
+ [x: string]: unknown;
630
+ value: string;
631
+ updatedAt: Date;
632
+ autoTranslated?: boolean | undefined;
633
+ }>;
634
+ }[];
635
+ };
636
+ tagline?: Record<string, {
637
+ [x: string]: unknown;
638
+ value: string;
639
+ updatedAt: Date;
640
+ autoTranslated?: boolean | undefined;
641
+ }> | undefined;
642
+ logoSquareImageId?: string | undefined;
643
+ logoWideImageId?: string | undefined;
644
+ topBannerMessage?: Record<string, {
645
+ [x: string]: unknown;
646
+ value: string;
647
+ updatedAt: Date;
648
+ autoTranslated?: boolean | undefined;
649
+ }> | undefined;
650
+ about?: Record<string, {
651
+ version: 1;
652
+ json: string;
653
+ html: string;
654
+ text: string;
655
+ }> | undefined;
656
+ whatsappMessage?: Record<string, {
657
+ [x: string]: unknown;
658
+ value: string;
659
+ updatedAt: Date;
660
+ autoTranslated?: boolean | undefined;
661
+ }> | undefined;
662
+ } | undefined;
663
+ modules?: {
664
+ reviews?: {
665
+ enabled: boolean;
666
+ showRecentReviewsOnStorefront: boolean;
667
+ } | undefined;
668
+ } | undefined;
669
+ };
670
+ };
671
+ export declare function useStorefrontWorkspaceLanguage(): StorefrontI18nLanguage;
672
+ export declare function useStorefrontProducts(): {
673
+ bikes: BikeProduct[];
674
+ accessories: AccessoryProduct[];
675
+ };
676
+ export {};
677
+ //# sourceMappingURL=StorefrontProvider.d.ts.map