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