@instockng/api-client 1.0.2 → 1.0.4

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 (172) hide show
  1. package/dist/apps/backend/src/generated/zod/index.d.ts +1114 -0
  2. package/dist/apps/backend/src/generated/zod/index.js +670 -0
  3. package/dist/apps/backend/src/http-app.d.ts +40 -0
  4. package/dist/apps/backend/src/http-app.js +106 -0
  5. package/dist/apps/backend/src/lib/brand-response.d.ts +14 -0
  6. package/dist/apps/backend/src/lib/brand-response.js +8 -0
  7. package/dist/apps/backend/src/lib/cart-helpers.d.ts +280 -0
  8. package/dist/apps/backend/src/lib/cart-helpers.js +93 -0
  9. package/dist/apps/backend/src/lib/cart-recovery.d.ts +30 -0
  10. package/dist/apps/backend/src/lib/cart-recovery.js +147 -0
  11. package/dist/apps/backend/src/lib/cart-response.d.ts +121 -0
  12. package/dist/apps/backend/src/lib/cart-response.js +150 -0
  13. package/dist/apps/backend/src/lib/clerk.d.ts +18 -0
  14. package/dist/apps/backend/src/lib/clerk.js +167 -0
  15. package/dist/apps/backend/src/lib/delivery-zone-response.d.ts +62 -0
  16. package/dist/apps/backend/src/lib/delivery-zone-response.js +24 -0
  17. package/dist/apps/backend/src/lib/discount-code-response.d.ts +42 -0
  18. package/dist/apps/backend/src/lib/discount-code-response.js +19 -0
  19. package/dist/apps/backend/src/lib/discount.d.ts +20 -0
  20. package/dist/apps/backend/src/lib/discount.js +35 -0
  21. package/dist/apps/backend/src/lib/inventory.d.ts +26 -0
  22. package/dist/apps/backend/src/lib/inventory.js +160 -0
  23. package/dist/apps/backend/src/lib/meta-capi.d.ts +48 -0
  24. package/dist/apps/backend/src/lib/meta-capi.js +120 -0
  25. package/dist/apps/backend/src/lib/openapi.d.ts +36 -0
  26. package/dist/apps/backend/src/lib/openapi.js +69 -0
  27. package/dist/apps/backend/src/lib/order-recovery.d.ts +367 -0
  28. package/dist/apps/backend/src/lib/order-recovery.js +373 -0
  29. package/dist/apps/backend/src/lib/order-response.d.ts +136 -0
  30. package/dist/apps/backend/src/lib/order-response.js +61 -0
  31. package/dist/apps/backend/src/lib/pricing.d.ts +39 -0
  32. package/dist/apps/backend/src/lib/pricing.js +62 -0
  33. package/dist/apps/backend/src/lib/prisma.d.ts +9 -0
  34. package/dist/apps/backend/src/lib/prisma.js +30 -0
  35. package/dist/apps/backend/src/lib/product-response.d.ts +82 -0
  36. package/dist/apps/backend/src/lib/product-response.js +29 -0
  37. package/dist/apps/backend/src/lib/utils.d.ts +32 -0
  38. package/dist/apps/backend/src/lib/utils.js +63 -0
  39. package/dist/apps/backend/src/middleware/clerk-auth.d.ts +8 -0
  40. package/dist/apps/backend/src/middleware/clerk-auth.js +89 -0
  41. package/dist/apps/backend/src/middleware/cors.d.ts +8 -0
  42. package/dist/apps/backend/src/middleware/cors.js +11 -0
  43. package/dist/apps/backend/src/notifications/producers/meta-capi-producer.d.ts +55 -0
  44. package/dist/apps/backend/src/notifications/producers/meta-capi-producer.js +125 -0
  45. package/dist/apps/backend/src/notifications/producers/order-notification.d.ts +9 -0
  46. package/dist/apps/backend/src/notifications/producers/order-notification.js +18 -0
  47. package/dist/apps/backend/src/notifications/producers/prospect-recovery-notification.d.ts +10 -0
  48. package/dist/apps/backend/src/notifications/producers/prospect-recovery-notification.js +11 -0
  49. package/dist/apps/backend/src/routes/admin/abandoned-carts.d.ts +605 -0
  50. package/dist/apps/backend/src/routes/admin/abandoned-carts.js +194 -0
  51. package/dist/apps/backend/src/routes/admin/brands.d.ts +175 -0
  52. package/dist/apps/backend/src/routes/admin/brands.js +118 -0
  53. package/dist/apps/backend/src/routes/admin/customers.d.ts +306 -0
  54. package/dist/apps/backend/src/routes/admin/customers.js +39 -0
  55. package/dist/apps/backend/src/routes/admin/delivery-zones.d.ts +438 -0
  56. package/dist/apps/backend/src/routes/admin/delivery-zones.js +300 -0
  57. package/dist/apps/backend/src/routes/admin/discount-codes.d.ts +478 -0
  58. package/dist/apps/backend/src/routes/admin/discount-codes.js +418 -0
  59. package/dist/apps/backend/src/routes/admin/inventory.d.ts +273 -0
  60. package/dist/apps/backend/src/routes/admin/inventory.js +189 -0
  61. package/dist/apps/backend/src/routes/admin/orders.d.ts +1478 -0
  62. package/dist/apps/backend/src/routes/admin/orders.js +503 -0
  63. package/dist/apps/backend/src/routes/admin/products.d.ts +860 -0
  64. package/dist/apps/backend/src/routes/admin/products.js +107 -0
  65. package/dist/apps/backend/src/routes/admin/stats.d.ts +288 -0
  66. package/dist/apps/backend/src/routes/admin/stats.js +55 -0
  67. package/dist/apps/backend/src/routes/admin/variants.d.ts +239 -0
  68. package/dist/apps/backend/src/routes/admin/variants.js +173 -0
  69. package/dist/apps/backend/src/routes/admin/warehouses.d.ts +373 -0
  70. package/dist/apps/backend/src/routes/admin/warehouses.js +123 -0
  71. package/dist/apps/backend/src/routes/public/brands.d.ts +40 -0
  72. package/dist/apps/backend/src/routes/public/brands.js +38 -0
  73. package/dist/apps/backend/src/routes/public/carts.d.ts +2655 -0
  74. package/dist/apps/backend/src/routes/public/carts.js +631 -0
  75. package/dist/apps/backend/src/routes/public/delivery-zones.d.ts +35 -0
  76. package/dist/apps/backend/src/routes/public/delivery-zones.js +62 -0
  77. package/dist/apps/backend/src/routes/public/orders.d.ts +323 -0
  78. package/dist/apps/backend/src/routes/public/orders.js +160 -0
  79. package/dist/apps/backend/src/routes/public/products.d.ts +449 -0
  80. package/dist/apps/backend/src/routes/public/products.js +133 -0
  81. package/dist/apps/backend/src/types/index.d.ts +42 -0
  82. package/dist/apps/backend/src/types/index.js +2 -0
  83. package/dist/apps/backend/src/validators/brand.d.ts +17 -0
  84. package/dist/apps/backend/src/validators/brand.js +15 -0
  85. package/dist/apps/backend/src/validators/delivery-zone.d.ts +31 -0
  86. package/dist/apps/backend/src/validators/delivery-zone.js +51 -0
  87. package/dist/apps/backend/src/validators/discount-code.d.ts +74 -0
  88. package/dist/apps/backend/src/validators/discount-code.js +50 -0
  89. package/dist/apps/backend/src/validators/inventory.d.ts +20 -0
  90. package/dist/apps/backend/src/validators/inventory.js +15 -0
  91. package/dist/apps/backend/src/validators/order.d.ts +87 -0
  92. package/dist/apps/backend/src/validators/order.js +61 -0
  93. package/dist/apps/backend/src/validators/product.d.ts +18 -0
  94. package/dist/apps/backend/src/validators/product.js +19 -0
  95. package/dist/apps/backend/src/validators/variant.d.ts +19 -0
  96. package/dist/apps/backend/src/validators/variant.js +19 -0
  97. package/dist/apps/backend/src/validators/warehouse.d.ts +15 -0
  98. package/dist/apps/backend/src/validators/warehouse.js +15 -0
  99. package/dist/fetchers/carts.d.ts +751 -755
  100. package/dist/fetchers/carts.js +4 -2
  101. package/dist/hooks/public/carts.d.ts +753 -755
  102. package/dist/hooks/public/carts.js +2 -2
  103. package/dist/packages/api-client/src/backend-types.d.ts +10 -0
  104. package/dist/packages/api-client/src/backend-types.js +10 -0
  105. package/dist/packages/api-client/src/client.d.ts +20 -0
  106. package/dist/packages/api-client/src/client.js +40 -0
  107. package/dist/packages/api-client/src/fetchers/brands.d.ts +25 -0
  108. package/dist/packages/api-client/src/fetchers/brands.js +26 -0
  109. package/dist/packages/api-client/src/fetchers/carts.d.ts +2335 -0
  110. package/dist/packages/api-client/src/fetchers/carts.js +169 -0
  111. package/dist/packages/api-client/src/fetchers/delivery-zones.d.ts +28 -0
  112. package/dist/packages/api-client/src/fetchers/delivery-zones.js +26 -0
  113. package/dist/packages/api-client/src/fetchers/index.d.ts +22 -0
  114. package/dist/packages/api-client/src/fetchers/index.js +22 -0
  115. package/dist/packages/api-client/src/fetchers/orders.d.ts +283 -0
  116. package/dist/packages/api-client/src/fetchers/orders.js +44 -0
  117. package/dist/packages/api-client/src/fetchers/products.d.ts +386 -0
  118. package/dist/packages/api-client/src/fetchers/products.js +42 -0
  119. package/dist/packages/api-client/src/hooks/admin/abandoned-carts.d.ts +535 -0
  120. package/dist/packages/api-client/src/hooks/admin/abandoned-carts.js +79 -0
  121. package/dist/packages/api-client/src/hooks/admin/brands.d.ts +79 -0
  122. package/dist/packages/api-client/src/hooks/admin/brands.js +103 -0
  123. package/dist/packages/api-client/src/hooks/admin/customers.d.ts +278 -0
  124. package/dist/packages/api-client/src/hooks/admin/customers.js +25 -0
  125. package/dist/packages/api-client/src/hooks/admin/delivery-zones.d.ts +270 -0
  126. package/dist/packages/api-client/src/hooks/admin/delivery-zones.js +168 -0
  127. package/dist/packages/api-client/src/hooks/admin/discount-codes.d.ts +299 -0
  128. package/dist/packages/api-client/src/hooks/admin/discount-codes.js +157 -0
  129. package/dist/packages/api-client/src/hooks/admin/index.d.ts +16 -0
  130. package/dist/packages/api-client/src/hooks/admin/index.js +16 -0
  131. package/dist/packages/api-client/src/hooks/admin/inventory.d.ts +224 -0
  132. package/dist/packages/api-client/src/hooks/admin/inventory.js +102 -0
  133. package/dist/packages/api-client/src/hooks/admin/orders.d.ts +1380 -0
  134. package/dist/packages/api-client/src/hooks/admin/orders.js +169 -0
  135. package/dist/packages/api-client/src/hooks/admin/products.d.ts +374 -0
  136. package/dist/packages/api-client/src/hooks/admin/products.js +84 -0
  137. package/dist/packages/api-client/src/hooks/admin/stats.d.ts +277 -0
  138. package/dist/packages/api-client/src/hooks/admin/stats.js +24 -0
  139. package/dist/packages/api-client/src/hooks/admin/variants.d.ts +115 -0
  140. package/dist/packages/api-client/src/hooks/admin/variants.js +121 -0
  141. package/dist/packages/api-client/src/hooks/admin/warehouses.d.ts +277 -0
  142. package/dist/packages/api-client/src/hooks/admin/warehouses.js +103 -0
  143. package/dist/packages/api-client/src/hooks/public/brands.d.ts +33 -0
  144. package/dist/packages/api-client/src/hooks/public/brands.js +30 -0
  145. package/dist/packages/api-client/src/hooks/public/carts.d.ts +2405 -0
  146. package/dist/packages/api-client/src/hooks/public/carts.js +213 -0
  147. package/dist/packages/api-client/src/hooks/public/delivery-zones.d.ts +34 -0
  148. package/dist/packages/api-client/src/hooks/public/delivery-zones.js +28 -0
  149. package/dist/packages/api-client/src/hooks/public/index.d.ts +10 -0
  150. package/dist/packages/api-client/src/hooks/public/index.js +10 -0
  151. package/dist/packages/api-client/src/hooks/public/orders.d.ts +302 -0
  152. package/dist/packages/api-client/src/hooks/public/orders.js +50 -0
  153. package/dist/packages/api-client/src/hooks/public/products.d.ts +398 -0
  154. package/dist/packages/api-client/src/hooks/public/products.js +47 -0
  155. package/dist/packages/api-client/src/hooks/use-query-unwrapped.d.ts +20 -0
  156. package/dist/packages/api-client/src/hooks/use-query-unwrapped.js +22 -0
  157. package/dist/packages/api-client/src/hooks/useApiConfig.d.ts +11 -0
  158. package/dist/packages/api-client/src/hooks/useApiConfig.js +14 -0
  159. package/dist/packages/api-client/src/index.d.ts +20 -0
  160. package/dist/packages/api-client/src/index.js +25 -0
  161. package/dist/packages/api-client/src/provider.d.ts +33 -0
  162. package/dist/packages/api-client/src/provider.js +52 -0
  163. package/dist/packages/api-client/src/rpc-client.d.ts +9035 -0
  164. package/dist/packages/api-client/src/rpc-client.js +78 -0
  165. package/dist/packages/api-client/src/rpc-types.d.ts +76 -0
  166. package/dist/packages/api-client/src/rpc-types.js +7 -0
  167. package/dist/packages/api-client/src/types.d.ts +33 -0
  168. package/dist/packages/api-client/src/types.js +16 -0
  169. package/dist/packages/api-client/src/utils/query-keys.d.ts +106 -0
  170. package/dist/packages/api-client/src/utils/query-keys.js +108 -0
  171. package/dist/rpc-client.d.ts +685 -693
  172. package/package.json +2 -2
@@ -0,0 +1,2405 @@
1
+ /**
2
+ * Type-safe RPC hooks for cart operations
3
+ *
4
+ * These hooks use Hono RPC client with types directly from the backend,
5
+ * providing end-to-end type safety without code generation.
6
+ */
7
+ import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
8
+ import { fetchCart, updateCart, createCart, addCartItem, updateCartItem, removeCartItem, applyDiscount, removeDiscount, checkoutCart } from '../../fetchers/carts';
9
+ /**
10
+ * Hook to get cart by ID using RPC
11
+ *
12
+ * @param cartId - Cart UUID
13
+ * @param options - React Query options
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * const { data: cart, isLoading } = useGetCart('cart-123');
18
+ * console.log(cart?.cart.brand.name); // Fully typed!
19
+ * ```
20
+ */
21
+ export declare function useGetCart(cartId: string, options?: Omit<UseQueryOptions<Awaited<ReturnType<typeof fetchCart>>, Error>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
22
+ id: string;
23
+ brand: {
24
+ createdAt: string;
25
+ updatedAt: string;
26
+ deletedAt: string;
27
+ name: string;
28
+ id: string;
29
+ slug: string;
30
+ logoUrl: string | null;
31
+ siteUrl: string;
32
+ domain: string;
33
+ metaPixelId: string | null;
34
+ };
35
+ customerPhone: string;
36
+ customerEmail: string;
37
+ customerFirstName: string;
38
+ customerLastName: string;
39
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
40
+ deliveryZone: {
41
+ id: string;
42
+ name: string;
43
+ };
44
+ recoveryAttempts: number;
45
+ lastRecoveryAttemptAt: string;
46
+ recoveryDiscountCode: {
47
+ id: string;
48
+ createdAt: string;
49
+ updatedAt: string;
50
+ deletedAt: string;
51
+ brandId: string | null;
52
+ isActive: boolean;
53
+ code: string;
54
+ type: string;
55
+ value: string;
56
+ minPurchase: string;
57
+ maxDiscount: string;
58
+ usageLimit: number | null;
59
+ usageCount: number;
60
+ perCustomerLimit: number | null;
61
+ validFrom: string;
62
+ validUntil: string;
63
+ isAutoApply: boolean;
64
+ description: string | null;
65
+ category: string;
66
+ createdBy: string | null;
67
+ };
68
+ items: {
69
+ id: string;
70
+ variant: {
71
+ price: number;
72
+ product: {
73
+ name: string;
74
+ id: string;
75
+ slug: string;
76
+ createdAt: string;
77
+ updatedAt: string;
78
+ deletedAt: string;
79
+ brandId: string;
80
+ isActive: boolean;
81
+ description: string | null;
82
+ thumbnailUrl: string | null;
83
+ quantityDiscounts: string | number | boolean | {
84
+ [x: string]: string | number | boolean | /*elided*/ any | {
85
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
86
+ length: number;
87
+ toString: never;
88
+ toLocaleString: never;
89
+ pop: never;
90
+ push: never;
91
+ concat: never;
92
+ join: never;
93
+ reverse: never;
94
+ shift: never;
95
+ slice: never;
96
+ sort: never;
97
+ splice: never;
98
+ unshift: never;
99
+ indexOf: never;
100
+ lastIndexOf: never;
101
+ every: never;
102
+ some: never;
103
+ forEach: never;
104
+ map: never;
105
+ filter: never;
106
+ reduce: never;
107
+ reduceRight: never;
108
+ find: never;
109
+ findIndex: never;
110
+ fill: never;
111
+ copyWithin: never;
112
+ entries: never;
113
+ keys: never;
114
+ values: never;
115
+ includes: never;
116
+ flatMap: never;
117
+ flat: never;
118
+ [Symbol.iterator]: never;
119
+ readonly [Symbol.unscopables]: {
120
+ [x: number]: boolean;
121
+ length?: boolean;
122
+ toString?: boolean;
123
+ toLocaleString?: boolean;
124
+ pop?: boolean;
125
+ push?: boolean;
126
+ concat?: boolean;
127
+ join?: boolean;
128
+ reverse?: boolean;
129
+ shift?: boolean;
130
+ slice?: boolean;
131
+ sort?: boolean;
132
+ splice?: boolean;
133
+ unshift?: boolean;
134
+ indexOf?: boolean;
135
+ lastIndexOf?: boolean;
136
+ every?: boolean;
137
+ some?: boolean;
138
+ forEach?: boolean;
139
+ map?: boolean;
140
+ filter?: boolean;
141
+ reduce?: boolean;
142
+ reduceRight?: boolean;
143
+ find?: boolean;
144
+ findIndex?: boolean;
145
+ fill?: boolean;
146
+ copyWithin?: boolean;
147
+ entries?: boolean;
148
+ keys?: boolean;
149
+ values?: boolean;
150
+ includes?: boolean;
151
+ flatMap?: boolean;
152
+ flat?: boolean;
153
+ };
154
+ };
155
+ } | {
156
+ [x: number]: string | number | boolean | {
157
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
158
+ } | /*elided*/ any;
159
+ length: number;
160
+ toString: never;
161
+ toLocaleString: never;
162
+ pop: never;
163
+ push: never;
164
+ concat: never;
165
+ join: never;
166
+ reverse: never;
167
+ shift: never;
168
+ slice: never;
169
+ sort: never;
170
+ splice: never;
171
+ unshift: never;
172
+ indexOf: never;
173
+ lastIndexOf: never;
174
+ every: never;
175
+ some: never;
176
+ forEach: never;
177
+ map: never;
178
+ filter: never;
179
+ reduce: never;
180
+ reduceRight: never;
181
+ find: never;
182
+ findIndex: never;
183
+ fill: never;
184
+ copyWithin: never;
185
+ entries: never;
186
+ keys: never;
187
+ values: never;
188
+ includes: never;
189
+ flatMap: never;
190
+ flat: never;
191
+ [Symbol.iterator]: never;
192
+ readonly [Symbol.unscopables]: {
193
+ [x: number]: boolean;
194
+ length?: boolean;
195
+ toString?: boolean;
196
+ toLocaleString?: boolean;
197
+ pop?: boolean;
198
+ push?: boolean;
199
+ concat?: boolean;
200
+ join?: boolean;
201
+ reverse?: boolean;
202
+ shift?: boolean;
203
+ slice?: boolean;
204
+ sort?: boolean;
205
+ splice?: boolean;
206
+ unshift?: boolean;
207
+ indexOf?: boolean;
208
+ lastIndexOf?: boolean;
209
+ every?: boolean;
210
+ some?: boolean;
211
+ forEach?: boolean;
212
+ map?: boolean;
213
+ filter?: boolean;
214
+ reduce?: boolean;
215
+ reduceRight?: boolean;
216
+ find?: boolean;
217
+ findIndex?: boolean;
218
+ fill?: boolean;
219
+ copyWithin?: boolean;
220
+ entries?: boolean;
221
+ keys?: boolean;
222
+ values?: boolean;
223
+ includes?: boolean;
224
+ flatMap?: boolean;
225
+ flat?: boolean;
226
+ };
227
+ };
228
+ };
229
+ name: string | null;
230
+ id: string;
231
+ createdAt: string;
232
+ updatedAt: string;
233
+ deletedAt: string;
234
+ isActive: boolean;
235
+ thumbnailUrl: string | null;
236
+ productId: string;
237
+ sku: string;
238
+ trackInventory: boolean;
239
+ lowStockThreshold: number | null;
240
+ };
241
+ quantity: number;
242
+ basePrice: number;
243
+ discountPercent: number;
244
+ finalPrice: number;
245
+ subtotal: number;
246
+ }[];
247
+ pricing: {
248
+ subtotal: number;
249
+ deliveryCharge: number;
250
+ discount: {
251
+ code: string;
252
+ type: "percentage" | "fixed";
253
+ value: number;
254
+ amount: number;
255
+ description: string | null;
256
+ };
257
+ total: number;
258
+ };
259
+ createdAt: string;
260
+ updatedAt: string;
261
+ expiresAt: string;
262
+ convertedToOrderId: string;
263
+ wasRecovered: boolean;
264
+ recoveryUrl: string;
265
+ }, Error>;
266
+ /**
267
+ * Hook to update cart using RPC
268
+ *
269
+ * @param cartId - Cart UUID
270
+ * @param options - React Query mutation options
271
+ *
272
+ * @example
273
+ * ```tsx
274
+ * const updateCart = useUpdateCart('cart-123');
275
+ * updateCart.mutate({
276
+ * customerEmail: 'user@example.com',
277
+ * deliveryZoneId: 'zone-123'
278
+ * });
279
+ * ```
280
+ */
281
+ export declare function useUpdateCart(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof updateCart>>, Error, Parameters<typeof updateCart>[1]>): import("@tanstack/react-query").UseMutationResult<{
282
+ id: string;
283
+ brand: {
284
+ createdAt: string;
285
+ updatedAt: string;
286
+ deletedAt: string;
287
+ name: string;
288
+ id: string;
289
+ slug: string;
290
+ logoUrl: string | null;
291
+ siteUrl: string;
292
+ domain: string;
293
+ metaPixelId: string | null;
294
+ };
295
+ customerPhone: string;
296
+ customerEmail: string;
297
+ customerFirstName: string;
298
+ customerLastName: string;
299
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
300
+ deliveryZone: {
301
+ id: string;
302
+ name: string;
303
+ };
304
+ recoveryAttempts: number;
305
+ lastRecoveryAttemptAt: string;
306
+ recoveryDiscountCode: {
307
+ id: string;
308
+ createdAt: string;
309
+ updatedAt: string;
310
+ deletedAt: string;
311
+ brandId: string | null;
312
+ isActive: boolean;
313
+ code: string;
314
+ type: string;
315
+ value: string;
316
+ minPurchase: string;
317
+ maxDiscount: string;
318
+ usageLimit: number | null;
319
+ usageCount: number;
320
+ perCustomerLimit: number | null;
321
+ validFrom: string;
322
+ validUntil: string;
323
+ isAutoApply: boolean;
324
+ description: string | null;
325
+ category: string;
326
+ createdBy: string | null;
327
+ };
328
+ items: {
329
+ id: string;
330
+ variant: {
331
+ price: number;
332
+ product: {
333
+ name: string;
334
+ id: string;
335
+ slug: string;
336
+ createdAt: string;
337
+ updatedAt: string;
338
+ deletedAt: string;
339
+ brandId: string;
340
+ isActive: boolean;
341
+ description: string | null;
342
+ thumbnailUrl: string | null;
343
+ quantityDiscounts: string | number | boolean | {
344
+ [x: string]: string | number | boolean | /*elided*/ any | {
345
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
346
+ length: number;
347
+ toString: never;
348
+ toLocaleString: never;
349
+ pop: never;
350
+ push: never;
351
+ concat: never;
352
+ join: never;
353
+ reverse: never;
354
+ shift: never;
355
+ slice: never;
356
+ sort: never;
357
+ splice: never;
358
+ unshift: never;
359
+ indexOf: never;
360
+ lastIndexOf: never;
361
+ every: never;
362
+ some: never;
363
+ forEach: never;
364
+ map: never;
365
+ filter: never;
366
+ reduce: never;
367
+ reduceRight: never;
368
+ find: never;
369
+ findIndex: never;
370
+ fill: never;
371
+ copyWithin: never;
372
+ entries: never;
373
+ keys: never;
374
+ values: never;
375
+ includes: never;
376
+ flatMap: never;
377
+ flat: never;
378
+ [Symbol.iterator]: never;
379
+ readonly [Symbol.unscopables]: {
380
+ [x: number]: boolean;
381
+ length?: boolean;
382
+ toString?: boolean;
383
+ toLocaleString?: boolean;
384
+ pop?: boolean;
385
+ push?: boolean;
386
+ concat?: boolean;
387
+ join?: boolean;
388
+ reverse?: boolean;
389
+ shift?: boolean;
390
+ slice?: boolean;
391
+ sort?: boolean;
392
+ splice?: boolean;
393
+ unshift?: boolean;
394
+ indexOf?: boolean;
395
+ lastIndexOf?: boolean;
396
+ every?: boolean;
397
+ some?: boolean;
398
+ forEach?: boolean;
399
+ map?: boolean;
400
+ filter?: boolean;
401
+ reduce?: boolean;
402
+ reduceRight?: boolean;
403
+ find?: boolean;
404
+ findIndex?: boolean;
405
+ fill?: boolean;
406
+ copyWithin?: boolean;
407
+ entries?: boolean;
408
+ keys?: boolean;
409
+ values?: boolean;
410
+ includes?: boolean;
411
+ flatMap?: boolean;
412
+ flat?: boolean;
413
+ };
414
+ };
415
+ } | {
416
+ [x: number]: string | number | boolean | {
417
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
418
+ } | /*elided*/ any;
419
+ length: number;
420
+ toString: never;
421
+ toLocaleString: never;
422
+ pop: never;
423
+ push: never;
424
+ concat: never;
425
+ join: never;
426
+ reverse: never;
427
+ shift: never;
428
+ slice: never;
429
+ sort: never;
430
+ splice: never;
431
+ unshift: never;
432
+ indexOf: never;
433
+ lastIndexOf: never;
434
+ every: never;
435
+ some: never;
436
+ forEach: never;
437
+ map: never;
438
+ filter: never;
439
+ reduce: never;
440
+ reduceRight: never;
441
+ find: never;
442
+ findIndex: never;
443
+ fill: never;
444
+ copyWithin: never;
445
+ entries: never;
446
+ keys: never;
447
+ values: never;
448
+ includes: never;
449
+ flatMap: never;
450
+ flat: never;
451
+ [Symbol.iterator]: never;
452
+ readonly [Symbol.unscopables]: {
453
+ [x: number]: boolean;
454
+ length?: boolean;
455
+ toString?: boolean;
456
+ toLocaleString?: boolean;
457
+ pop?: boolean;
458
+ push?: boolean;
459
+ concat?: boolean;
460
+ join?: boolean;
461
+ reverse?: boolean;
462
+ shift?: boolean;
463
+ slice?: boolean;
464
+ sort?: boolean;
465
+ splice?: boolean;
466
+ unshift?: boolean;
467
+ indexOf?: boolean;
468
+ lastIndexOf?: boolean;
469
+ every?: boolean;
470
+ some?: boolean;
471
+ forEach?: boolean;
472
+ map?: boolean;
473
+ filter?: boolean;
474
+ reduce?: boolean;
475
+ reduceRight?: boolean;
476
+ find?: boolean;
477
+ findIndex?: boolean;
478
+ fill?: boolean;
479
+ copyWithin?: boolean;
480
+ entries?: boolean;
481
+ keys?: boolean;
482
+ values?: boolean;
483
+ includes?: boolean;
484
+ flatMap?: boolean;
485
+ flat?: boolean;
486
+ };
487
+ };
488
+ };
489
+ name: string | null;
490
+ id: string;
491
+ createdAt: string;
492
+ updatedAt: string;
493
+ deletedAt: string;
494
+ isActive: boolean;
495
+ thumbnailUrl: string | null;
496
+ productId: string;
497
+ sku: string;
498
+ trackInventory: boolean;
499
+ lowStockThreshold: number | null;
500
+ };
501
+ quantity: number;
502
+ basePrice: number;
503
+ discountPercent: number;
504
+ finalPrice: number;
505
+ subtotal: number;
506
+ }[];
507
+ pricing: {
508
+ subtotal: number;
509
+ deliveryCharge: number;
510
+ discount: {
511
+ code: string;
512
+ type: "percentage" | "fixed";
513
+ value: number;
514
+ amount: number;
515
+ description: string | null;
516
+ };
517
+ total: number;
518
+ };
519
+ createdAt: string;
520
+ updatedAt: string;
521
+ expiresAt: string;
522
+ convertedToOrderId: string;
523
+ wasRecovered: boolean;
524
+ recoveryUrl: string;
525
+ } | {
526
+ error: {
527
+ code: string;
528
+ message: string;
529
+ };
530
+ }, Error, {
531
+ customerPhone?: string | null;
532
+ customerEmail?: string | null;
533
+ customerFirstName?: string | null;
534
+ customerLastName?: string | null;
535
+ deliveryZoneId?: string | null;
536
+ ifUnmodifiedSince?: string;
537
+ }, unknown>;
538
+ /**
539
+ * Hook to create a new cart using RPC
540
+ *
541
+ * @param options - React Query mutation options
542
+ *
543
+ * @example
544
+ * ```tsx
545
+ * const createCart = useCreateCart();
546
+ * createCart.mutate('my-brand');
547
+ * ```
548
+ */
549
+ export declare function useCreateCart(options?: UseMutationOptions<Awaited<ReturnType<typeof createCart>>, Error, string>): import("@tanstack/react-query").UseMutationResult<{
550
+ id: string;
551
+ brand: {
552
+ createdAt: string;
553
+ updatedAt: string;
554
+ deletedAt: string;
555
+ name: string;
556
+ id: string;
557
+ slug: string;
558
+ logoUrl: string | null;
559
+ siteUrl: string;
560
+ domain: string;
561
+ metaPixelId: string | null;
562
+ };
563
+ customerPhone: string;
564
+ customerEmail: string;
565
+ customerFirstName: string;
566
+ customerLastName: string;
567
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
568
+ deliveryZone: {
569
+ id: string;
570
+ name: string;
571
+ };
572
+ recoveryAttempts: number;
573
+ lastRecoveryAttemptAt: string;
574
+ recoveryDiscountCode: {
575
+ id: string;
576
+ createdAt: string;
577
+ updatedAt: string;
578
+ deletedAt: string;
579
+ brandId: string | null;
580
+ isActive: boolean;
581
+ code: string;
582
+ type: string;
583
+ value: string;
584
+ minPurchase: string;
585
+ maxDiscount: string;
586
+ usageLimit: number | null;
587
+ usageCount: number;
588
+ perCustomerLimit: number | null;
589
+ validFrom: string;
590
+ validUntil: string;
591
+ isAutoApply: boolean;
592
+ description: string | null;
593
+ category: string;
594
+ createdBy: string | null;
595
+ };
596
+ items: {
597
+ id: string;
598
+ variant: {
599
+ price: number;
600
+ product: {
601
+ name: string;
602
+ id: string;
603
+ slug: string;
604
+ createdAt: string;
605
+ updatedAt: string;
606
+ deletedAt: string;
607
+ brandId: string;
608
+ isActive: boolean;
609
+ description: string | null;
610
+ thumbnailUrl: string | null;
611
+ quantityDiscounts: string | number | boolean | {
612
+ [x: string]: string | number | boolean | /*elided*/ any | {
613
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
614
+ length: number;
615
+ toString: never;
616
+ toLocaleString: never;
617
+ pop: never;
618
+ push: never;
619
+ concat: never;
620
+ join: never;
621
+ reverse: never;
622
+ shift: never;
623
+ slice: never;
624
+ sort: never;
625
+ splice: never;
626
+ unshift: never;
627
+ indexOf: never;
628
+ lastIndexOf: never;
629
+ every: never;
630
+ some: never;
631
+ forEach: never;
632
+ map: never;
633
+ filter: never;
634
+ reduce: never;
635
+ reduceRight: never;
636
+ find: never;
637
+ findIndex: never;
638
+ fill: never;
639
+ copyWithin: never;
640
+ entries: never;
641
+ keys: never;
642
+ values: never;
643
+ includes: never;
644
+ flatMap: never;
645
+ flat: never;
646
+ [Symbol.iterator]: never;
647
+ readonly [Symbol.unscopables]: {
648
+ [x: number]: boolean;
649
+ length?: boolean;
650
+ toString?: boolean;
651
+ toLocaleString?: boolean;
652
+ pop?: boolean;
653
+ push?: boolean;
654
+ concat?: boolean;
655
+ join?: boolean;
656
+ reverse?: boolean;
657
+ shift?: boolean;
658
+ slice?: boolean;
659
+ sort?: boolean;
660
+ splice?: boolean;
661
+ unshift?: boolean;
662
+ indexOf?: boolean;
663
+ lastIndexOf?: boolean;
664
+ every?: boolean;
665
+ some?: boolean;
666
+ forEach?: boolean;
667
+ map?: boolean;
668
+ filter?: boolean;
669
+ reduce?: boolean;
670
+ reduceRight?: boolean;
671
+ find?: boolean;
672
+ findIndex?: boolean;
673
+ fill?: boolean;
674
+ copyWithin?: boolean;
675
+ entries?: boolean;
676
+ keys?: boolean;
677
+ values?: boolean;
678
+ includes?: boolean;
679
+ flatMap?: boolean;
680
+ flat?: boolean;
681
+ };
682
+ };
683
+ } | {
684
+ [x: number]: string | number | boolean | {
685
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
686
+ } | /*elided*/ any;
687
+ length: number;
688
+ toString: never;
689
+ toLocaleString: never;
690
+ pop: never;
691
+ push: never;
692
+ concat: never;
693
+ join: never;
694
+ reverse: never;
695
+ shift: never;
696
+ slice: never;
697
+ sort: never;
698
+ splice: never;
699
+ unshift: never;
700
+ indexOf: never;
701
+ lastIndexOf: never;
702
+ every: never;
703
+ some: never;
704
+ forEach: never;
705
+ map: never;
706
+ filter: never;
707
+ reduce: never;
708
+ reduceRight: never;
709
+ find: never;
710
+ findIndex: never;
711
+ fill: never;
712
+ copyWithin: never;
713
+ entries: never;
714
+ keys: never;
715
+ values: never;
716
+ includes: never;
717
+ flatMap: never;
718
+ flat: never;
719
+ [Symbol.iterator]: never;
720
+ readonly [Symbol.unscopables]: {
721
+ [x: number]: boolean;
722
+ length?: boolean;
723
+ toString?: boolean;
724
+ toLocaleString?: boolean;
725
+ pop?: boolean;
726
+ push?: boolean;
727
+ concat?: boolean;
728
+ join?: boolean;
729
+ reverse?: boolean;
730
+ shift?: boolean;
731
+ slice?: boolean;
732
+ sort?: boolean;
733
+ splice?: boolean;
734
+ unshift?: boolean;
735
+ indexOf?: boolean;
736
+ lastIndexOf?: boolean;
737
+ every?: boolean;
738
+ some?: boolean;
739
+ forEach?: boolean;
740
+ map?: boolean;
741
+ filter?: boolean;
742
+ reduce?: boolean;
743
+ reduceRight?: boolean;
744
+ find?: boolean;
745
+ findIndex?: boolean;
746
+ fill?: boolean;
747
+ copyWithin?: boolean;
748
+ entries?: boolean;
749
+ keys?: boolean;
750
+ values?: boolean;
751
+ includes?: boolean;
752
+ flatMap?: boolean;
753
+ flat?: boolean;
754
+ };
755
+ };
756
+ };
757
+ name: string | null;
758
+ id: string;
759
+ createdAt: string;
760
+ updatedAt: string;
761
+ deletedAt: string;
762
+ isActive: boolean;
763
+ thumbnailUrl: string | null;
764
+ productId: string;
765
+ sku: string;
766
+ trackInventory: boolean;
767
+ lowStockThreshold: number | null;
768
+ };
769
+ quantity: number;
770
+ basePrice: number;
771
+ discountPercent: number;
772
+ finalPrice: number;
773
+ subtotal: number;
774
+ }[];
775
+ pricing: {
776
+ subtotal: number;
777
+ deliveryCharge: number;
778
+ discount: {
779
+ code: string;
780
+ type: "percentage" | "fixed";
781
+ value: number;
782
+ amount: number;
783
+ description: string | null;
784
+ };
785
+ total: number;
786
+ };
787
+ createdAt: string;
788
+ updatedAt: string;
789
+ expiresAt: string;
790
+ convertedToOrderId: string;
791
+ wasRecovered: boolean;
792
+ recoveryUrl: string;
793
+ }, Error, string, unknown>;
794
+ /**
795
+ * Hook to apply discount code to cart using RPC
796
+ *
797
+ * @param cartId - Cart UUID
798
+ * @param options - React Query mutation options
799
+ *
800
+ * @example
801
+ * ```tsx
802
+ * const applyDiscount = useApplyDiscount('cart-123');
803
+ * applyDiscount.mutate({ code: 'SAVE10' });
804
+ * ```
805
+ */
806
+ export declare function useApplyDiscount(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof applyDiscount>>, Error, {
807
+ code: string;
808
+ }>): import("@tanstack/react-query").UseMutationResult<{
809
+ id: string;
810
+ brand: {
811
+ createdAt: string;
812
+ updatedAt: string;
813
+ deletedAt: string;
814
+ name: string;
815
+ id: string;
816
+ slug: string;
817
+ logoUrl: string | null;
818
+ siteUrl: string;
819
+ domain: string;
820
+ metaPixelId: string | null;
821
+ };
822
+ customerPhone: string;
823
+ customerEmail: string;
824
+ customerFirstName: string;
825
+ customerLastName: string;
826
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
827
+ deliveryZone: {
828
+ id: string;
829
+ name: string;
830
+ };
831
+ recoveryAttempts: number;
832
+ lastRecoveryAttemptAt: string;
833
+ recoveryDiscountCode: {
834
+ id: string;
835
+ createdAt: string;
836
+ updatedAt: string;
837
+ deletedAt: string;
838
+ brandId: string | null;
839
+ isActive: boolean;
840
+ code: string;
841
+ type: string;
842
+ value: string;
843
+ minPurchase: string;
844
+ maxDiscount: string;
845
+ usageLimit: number | null;
846
+ usageCount: number;
847
+ perCustomerLimit: number | null;
848
+ validFrom: string;
849
+ validUntil: string;
850
+ isAutoApply: boolean;
851
+ description: string | null;
852
+ category: string;
853
+ createdBy: string | null;
854
+ };
855
+ items: {
856
+ id: string;
857
+ variant: {
858
+ price: number;
859
+ product: {
860
+ name: string;
861
+ id: string;
862
+ slug: string;
863
+ createdAt: string;
864
+ updatedAt: string;
865
+ deletedAt: string;
866
+ brandId: string;
867
+ isActive: boolean;
868
+ description: string | null;
869
+ thumbnailUrl: string | null;
870
+ quantityDiscounts: string | number | boolean | {
871
+ [x: string]: string | number | boolean | /*elided*/ any | {
872
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
873
+ length: number;
874
+ toString: never;
875
+ toLocaleString: never;
876
+ pop: never;
877
+ push: never;
878
+ concat: never;
879
+ join: never;
880
+ reverse: never;
881
+ shift: never;
882
+ slice: never;
883
+ sort: never;
884
+ splice: never;
885
+ unshift: never;
886
+ indexOf: never;
887
+ lastIndexOf: never;
888
+ every: never;
889
+ some: never;
890
+ forEach: never;
891
+ map: never;
892
+ filter: never;
893
+ reduce: never;
894
+ reduceRight: never;
895
+ find: never;
896
+ findIndex: never;
897
+ fill: never;
898
+ copyWithin: never;
899
+ entries: never;
900
+ keys: never;
901
+ values: never;
902
+ includes: never;
903
+ flatMap: never;
904
+ flat: never;
905
+ [Symbol.iterator]: never;
906
+ readonly [Symbol.unscopables]: {
907
+ [x: number]: boolean;
908
+ length?: boolean;
909
+ toString?: boolean;
910
+ toLocaleString?: boolean;
911
+ pop?: boolean;
912
+ push?: boolean;
913
+ concat?: boolean;
914
+ join?: boolean;
915
+ reverse?: boolean;
916
+ shift?: boolean;
917
+ slice?: boolean;
918
+ sort?: boolean;
919
+ splice?: boolean;
920
+ unshift?: boolean;
921
+ indexOf?: boolean;
922
+ lastIndexOf?: boolean;
923
+ every?: boolean;
924
+ some?: boolean;
925
+ forEach?: boolean;
926
+ map?: boolean;
927
+ filter?: boolean;
928
+ reduce?: boolean;
929
+ reduceRight?: boolean;
930
+ find?: boolean;
931
+ findIndex?: boolean;
932
+ fill?: boolean;
933
+ copyWithin?: boolean;
934
+ entries?: boolean;
935
+ keys?: boolean;
936
+ values?: boolean;
937
+ includes?: boolean;
938
+ flatMap?: boolean;
939
+ flat?: boolean;
940
+ };
941
+ };
942
+ } | {
943
+ [x: number]: string | number | boolean | {
944
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
945
+ } | /*elided*/ any;
946
+ length: number;
947
+ toString: never;
948
+ toLocaleString: never;
949
+ pop: never;
950
+ push: never;
951
+ concat: never;
952
+ join: never;
953
+ reverse: never;
954
+ shift: never;
955
+ slice: never;
956
+ sort: never;
957
+ splice: never;
958
+ unshift: never;
959
+ indexOf: never;
960
+ lastIndexOf: never;
961
+ every: never;
962
+ some: never;
963
+ forEach: never;
964
+ map: never;
965
+ filter: never;
966
+ reduce: never;
967
+ reduceRight: never;
968
+ find: never;
969
+ findIndex: never;
970
+ fill: never;
971
+ copyWithin: never;
972
+ entries: never;
973
+ keys: never;
974
+ values: never;
975
+ includes: never;
976
+ flatMap: never;
977
+ flat: never;
978
+ [Symbol.iterator]: never;
979
+ readonly [Symbol.unscopables]: {
980
+ [x: number]: boolean;
981
+ length?: boolean;
982
+ toString?: boolean;
983
+ toLocaleString?: boolean;
984
+ pop?: boolean;
985
+ push?: boolean;
986
+ concat?: boolean;
987
+ join?: boolean;
988
+ reverse?: boolean;
989
+ shift?: boolean;
990
+ slice?: boolean;
991
+ sort?: boolean;
992
+ splice?: boolean;
993
+ unshift?: boolean;
994
+ indexOf?: boolean;
995
+ lastIndexOf?: boolean;
996
+ every?: boolean;
997
+ some?: boolean;
998
+ forEach?: boolean;
999
+ map?: boolean;
1000
+ filter?: boolean;
1001
+ reduce?: boolean;
1002
+ reduceRight?: boolean;
1003
+ find?: boolean;
1004
+ findIndex?: boolean;
1005
+ fill?: boolean;
1006
+ copyWithin?: boolean;
1007
+ entries?: boolean;
1008
+ keys?: boolean;
1009
+ values?: boolean;
1010
+ includes?: boolean;
1011
+ flatMap?: boolean;
1012
+ flat?: boolean;
1013
+ };
1014
+ };
1015
+ };
1016
+ name: string | null;
1017
+ id: string;
1018
+ createdAt: string;
1019
+ updatedAt: string;
1020
+ deletedAt: string;
1021
+ isActive: boolean;
1022
+ thumbnailUrl: string | null;
1023
+ productId: string;
1024
+ sku: string;
1025
+ trackInventory: boolean;
1026
+ lowStockThreshold: number | null;
1027
+ };
1028
+ quantity: number;
1029
+ basePrice: number;
1030
+ discountPercent: number;
1031
+ finalPrice: number;
1032
+ subtotal: number;
1033
+ }[];
1034
+ pricing: {
1035
+ subtotal: number;
1036
+ deliveryCharge: number;
1037
+ discount: {
1038
+ code: string;
1039
+ type: "percentage" | "fixed";
1040
+ value: number;
1041
+ amount: number;
1042
+ description: string | null;
1043
+ };
1044
+ total: number;
1045
+ };
1046
+ createdAt: string;
1047
+ updatedAt: string;
1048
+ expiresAt: string;
1049
+ convertedToOrderId: string;
1050
+ wasRecovered: boolean;
1051
+ recoveryUrl: string;
1052
+ } | {
1053
+ error: {
1054
+ code: string;
1055
+ message: string;
1056
+ };
1057
+ }, Error, {
1058
+ code: string;
1059
+ }, unknown>;
1060
+ /**
1061
+ * Hook to remove discount code from cart using RPC
1062
+ *
1063
+ * @param cartId - Cart UUID
1064
+ * @param options - React Query mutation options
1065
+ *
1066
+ * @example
1067
+ * ```tsx
1068
+ * const removeDiscount = useRemoveDiscount('cart-123');
1069
+ * removeDiscount.mutate();
1070
+ * ```
1071
+ */
1072
+ export declare function useRemoveDiscount(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof removeDiscount>>, Error, void>): import("@tanstack/react-query").UseMutationResult<{
1073
+ id: string;
1074
+ brand: {
1075
+ createdAt: string;
1076
+ updatedAt: string;
1077
+ deletedAt: string;
1078
+ name: string;
1079
+ id: string;
1080
+ slug: string;
1081
+ logoUrl: string | null;
1082
+ siteUrl: string;
1083
+ domain: string;
1084
+ metaPixelId: string | null;
1085
+ };
1086
+ customerPhone: string;
1087
+ customerEmail: string;
1088
+ customerFirstName: string;
1089
+ customerLastName: string;
1090
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
1091
+ deliveryZone: {
1092
+ id: string;
1093
+ name: string;
1094
+ };
1095
+ recoveryAttempts: number;
1096
+ lastRecoveryAttemptAt: string;
1097
+ recoveryDiscountCode: {
1098
+ id: string;
1099
+ createdAt: string;
1100
+ updatedAt: string;
1101
+ deletedAt: string;
1102
+ brandId: string | null;
1103
+ isActive: boolean;
1104
+ code: string;
1105
+ type: string;
1106
+ value: string;
1107
+ minPurchase: string;
1108
+ maxDiscount: string;
1109
+ usageLimit: number | null;
1110
+ usageCount: number;
1111
+ perCustomerLimit: number | null;
1112
+ validFrom: string;
1113
+ validUntil: string;
1114
+ isAutoApply: boolean;
1115
+ description: string | null;
1116
+ category: string;
1117
+ createdBy: string | null;
1118
+ };
1119
+ items: {
1120
+ id: string;
1121
+ variant: {
1122
+ price: number;
1123
+ product: {
1124
+ name: string;
1125
+ id: string;
1126
+ slug: string;
1127
+ createdAt: string;
1128
+ updatedAt: string;
1129
+ deletedAt: string;
1130
+ brandId: string;
1131
+ isActive: boolean;
1132
+ description: string | null;
1133
+ thumbnailUrl: string | null;
1134
+ quantityDiscounts: string | number | boolean | {
1135
+ [x: string]: string | number | boolean | /*elided*/ any | {
1136
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1137
+ length: number;
1138
+ toString: never;
1139
+ toLocaleString: never;
1140
+ pop: never;
1141
+ push: never;
1142
+ concat: never;
1143
+ join: never;
1144
+ reverse: never;
1145
+ shift: never;
1146
+ slice: never;
1147
+ sort: never;
1148
+ splice: never;
1149
+ unshift: never;
1150
+ indexOf: never;
1151
+ lastIndexOf: never;
1152
+ every: never;
1153
+ some: never;
1154
+ forEach: never;
1155
+ map: never;
1156
+ filter: never;
1157
+ reduce: never;
1158
+ reduceRight: never;
1159
+ find: never;
1160
+ findIndex: never;
1161
+ fill: never;
1162
+ copyWithin: never;
1163
+ entries: never;
1164
+ keys: never;
1165
+ values: never;
1166
+ includes: never;
1167
+ flatMap: never;
1168
+ flat: never;
1169
+ [Symbol.iterator]: never;
1170
+ readonly [Symbol.unscopables]: {
1171
+ [x: number]: boolean;
1172
+ length?: boolean;
1173
+ toString?: boolean;
1174
+ toLocaleString?: boolean;
1175
+ pop?: boolean;
1176
+ push?: boolean;
1177
+ concat?: boolean;
1178
+ join?: boolean;
1179
+ reverse?: boolean;
1180
+ shift?: boolean;
1181
+ slice?: boolean;
1182
+ sort?: boolean;
1183
+ splice?: boolean;
1184
+ unshift?: boolean;
1185
+ indexOf?: boolean;
1186
+ lastIndexOf?: boolean;
1187
+ every?: boolean;
1188
+ some?: boolean;
1189
+ forEach?: boolean;
1190
+ map?: boolean;
1191
+ filter?: boolean;
1192
+ reduce?: boolean;
1193
+ reduceRight?: boolean;
1194
+ find?: boolean;
1195
+ findIndex?: boolean;
1196
+ fill?: boolean;
1197
+ copyWithin?: boolean;
1198
+ entries?: boolean;
1199
+ keys?: boolean;
1200
+ values?: boolean;
1201
+ includes?: boolean;
1202
+ flatMap?: boolean;
1203
+ flat?: boolean;
1204
+ };
1205
+ };
1206
+ } | {
1207
+ [x: number]: string | number | boolean | {
1208
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1209
+ } | /*elided*/ any;
1210
+ length: number;
1211
+ toString: never;
1212
+ toLocaleString: never;
1213
+ pop: never;
1214
+ push: never;
1215
+ concat: never;
1216
+ join: never;
1217
+ reverse: never;
1218
+ shift: never;
1219
+ slice: never;
1220
+ sort: never;
1221
+ splice: never;
1222
+ unshift: never;
1223
+ indexOf: never;
1224
+ lastIndexOf: never;
1225
+ every: never;
1226
+ some: never;
1227
+ forEach: never;
1228
+ map: never;
1229
+ filter: never;
1230
+ reduce: never;
1231
+ reduceRight: never;
1232
+ find: never;
1233
+ findIndex: never;
1234
+ fill: never;
1235
+ copyWithin: never;
1236
+ entries: never;
1237
+ keys: never;
1238
+ values: never;
1239
+ includes: never;
1240
+ flatMap: never;
1241
+ flat: never;
1242
+ [Symbol.iterator]: never;
1243
+ readonly [Symbol.unscopables]: {
1244
+ [x: number]: boolean;
1245
+ length?: boolean;
1246
+ toString?: boolean;
1247
+ toLocaleString?: boolean;
1248
+ pop?: boolean;
1249
+ push?: boolean;
1250
+ concat?: boolean;
1251
+ join?: boolean;
1252
+ reverse?: boolean;
1253
+ shift?: boolean;
1254
+ slice?: boolean;
1255
+ sort?: boolean;
1256
+ splice?: boolean;
1257
+ unshift?: boolean;
1258
+ indexOf?: boolean;
1259
+ lastIndexOf?: boolean;
1260
+ every?: boolean;
1261
+ some?: boolean;
1262
+ forEach?: boolean;
1263
+ map?: boolean;
1264
+ filter?: boolean;
1265
+ reduce?: boolean;
1266
+ reduceRight?: boolean;
1267
+ find?: boolean;
1268
+ findIndex?: boolean;
1269
+ fill?: boolean;
1270
+ copyWithin?: boolean;
1271
+ entries?: boolean;
1272
+ keys?: boolean;
1273
+ values?: boolean;
1274
+ includes?: boolean;
1275
+ flatMap?: boolean;
1276
+ flat?: boolean;
1277
+ };
1278
+ };
1279
+ };
1280
+ name: string | null;
1281
+ id: string;
1282
+ createdAt: string;
1283
+ updatedAt: string;
1284
+ deletedAt: string;
1285
+ isActive: boolean;
1286
+ thumbnailUrl: string | null;
1287
+ productId: string;
1288
+ sku: string;
1289
+ trackInventory: boolean;
1290
+ lowStockThreshold: number | null;
1291
+ };
1292
+ quantity: number;
1293
+ basePrice: number;
1294
+ discountPercent: number;
1295
+ finalPrice: number;
1296
+ subtotal: number;
1297
+ }[];
1298
+ pricing: {
1299
+ subtotal: number;
1300
+ deliveryCharge: number;
1301
+ discount: {
1302
+ code: string;
1303
+ type: "percentage" | "fixed";
1304
+ value: number;
1305
+ amount: number;
1306
+ description: string | null;
1307
+ };
1308
+ total: number;
1309
+ };
1310
+ createdAt: string;
1311
+ updatedAt: string;
1312
+ expiresAt: string;
1313
+ convertedToOrderId: string;
1314
+ wasRecovered: boolean;
1315
+ recoveryUrl: string;
1316
+ } | {
1317
+ error: {
1318
+ code: string;
1319
+ message: string;
1320
+ };
1321
+ }, Error, void, unknown>;
1322
+ /**
1323
+ * Hook to add item to cart using RPC
1324
+ *
1325
+ * @param cartId - Cart UUID
1326
+ * @param options - React Query mutation options
1327
+ *
1328
+ * @example
1329
+ * ```tsx
1330
+ * const addItem = useAddCartItem('cart-123');
1331
+ * addItem.mutate({ sku: 'PROD-001', quantity: 2, fbc: '_fbc_cookie', fbp: '_fbp_cookie' });
1332
+ * ```
1333
+ */
1334
+ export declare function useAddCartItem(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof addCartItem>>, Error, {
1335
+ sku: string;
1336
+ quantity: number;
1337
+ fbc?: string;
1338
+ fbp?: string;
1339
+ }>): import("@tanstack/react-query").UseMutationResult<{
1340
+ id: string;
1341
+ brand: {
1342
+ createdAt: string;
1343
+ updatedAt: string;
1344
+ deletedAt: string;
1345
+ name: string;
1346
+ id: string;
1347
+ slug: string;
1348
+ logoUrl: string | null;
1349
+ siteUrl: string;
1350
+ domain: string;
1351
+ metaPixelId: string | null;
1352
+ };
1353
+ customerPhone: string;
1354
+ customerEmail: string;
1355
+ customerFirstName: string;
1356
+ customerLastName: string;
1357
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
1358
+ deliveryZone: {
1359
+ id: string;
1360
+ name: string;
1361
+ };
1362
+ recoveryAttempts: number;
1363
+ lastRecoveryAttemptAt: string;
1364
+ recoveryDiscountCode: {
1365
+ id: string;
1366
+ createdAt: string;
1367
+ updatedAt: string;
1368
+ deletedAt: string;
1369
+ brandId: string | null;
1370
+ isActive: boolean;
1371
+ code: string;
1372
+ type: string;
1373
+ value: string;
1374
+ minPurchase: string;
1375
+ maxDiscount: string;
1376
+ usageLimit: number | null;
1377
+ usageCount: number;
1378
+ perCustomerLimit: number | null;
1379
+ validFrom: string;
1380
+ validUntil: string;
1381
+ isAutoApply: boolean;
1382
+ description: string | null;
1383
+ category: string;
1384
+ createdBy: string | null;
1385
+ };
1386
+ items: {
1387
+ id: string;
1388
+ variant: {
1389
+ price: number;
1390
+ product: {
1391
+ name: string;
1392
+ id: string;
1393
+ slug: string;
1394
+ createdAt: string;
1395
+ updatedAt: string;
1396
+ deletedAt: string;
1397
+ brandId: string;
1398
+ isActive: boolean;
1399
+ description: string | null;
1400
+ thumbnailUrl: string | null;
1401
+ quantityDiscounts: string | number | boolean | {
1402
+ [x: string]: string | number | boolean | /*elided*/ any | {
1403
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1404
+ length: number;
1405
+ toString: never;
1406
+ toLocaleString: never;
1407
+ pop: never;
1408
+ push: never;
1409
+ concat: never;
1410
+ join: never;
1411
+ reverse: never;
1412
+ shift: never;
1413
+ slice: never;
1414
+ sort: never;
1415
+ splice: never;
1416
+ unshift: never;
1417
+ indexOf: never;
1418
+ lastIndexOf: never;
1419
+ every: never;
1420
+ some: never;
1421
+ forEach: never;
1422
+ map: never;
1423
+ filter: never;
1424
+ reduce: never;
1425
+ reduceRight: never;
1426
+ find: never;
1427
+ findIndex: never;
1428
+ fill: never;
1429
+ copyWithin: never;
1430
+ entries: never;
1431
+ keys: never;
1432
+ values: never;
1433
+ includes: never;
1434
+ flatMap: never;
1435
+ flat: never;
1436
+ [Symbol.iterator]: never;
1437
+ readonly [Symbol.unscopables]: {
1438
+ [x: number]: boolean;
1439
+ length?: boolean;
1440
+ toString?: boolean;
1441
+ toLocaleString?: boolean;
1442
+ pop?: boolean;
1443
+ push?: boolean;
1444
+ concat?: boolean;
1445
+ join?: boolean;
1446
+ reverse?: boolean;
1447
+ shift?: boolean;
1448
+ slice?: boolean;
1449
+ sort?: boolean;
1450
+ splice?: boolean;
1451
+ unshift?: boolean;
1452
+ indexOf?: boolean;
1453
+ lastIndexOf?: boolean;
1454
+ every?: boolean;
1455
+ some?: boolean;
1456
+ forEach?: boolean;
1457
+ map?: boolean;
1458
+ filter?: boolean;
1459
+ reduce?: boolean;
1460
+ reduceRight?: boolean;
1461
+ find?: boolean;
1462
+ findIndex?: boolean;
1463
+ fill?: boolean;
1464
+ copyWithin?: boolean;
1465
+ entries?: boolean;
1466
+ keys?: boolean;
1467
+ values?: boolean;
1468
+ includes?: boolean;
1469
+ flatMap?: boolean;
1470
+ flat?: boolean;
1471
+ };
1472
+ };
1473
+ } | {
1474
+ [x: number]: string | number | boolean | {
1475
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1476
+ } | /*elided*/ any;
1477
+ length: number;
1478
+ toString: never;
1479
+ toLocaleString: never;
1480
+ pop: never;
1481
+ push: never;
1482
+ concat: never;
1483
+ join: never;
1484
+ reverse: never;
1485
+ shift: never;
1486
+ slice: never;
1487
+ sort: never;
1488
+ splice: never;
1489
+ unshift: never;
1490
+ indexOf: never;
1491
+ lastIndexOf: never;
1492
+ every: never;
1493
+ some: never;
1494
+ forEach: never;
1495
+ map: never;
1496
+ filter: never;
1497
+ reduce: never;
1498
+ reduceRight: never;
1499
+ find: never;
1500
+ findIndex: never;
1501
+ fill: never;
1502
+ copyWithin: never;
1503
+ entries: never;
1504
+ keys: never;
1505
+ values: never;
1506
+ includes: never;
1507
+ flatMap: never;
1508
+ flat: never;
1509
+ [Symbol.iterator]: never;
1510
+ readonly [Symbol.unscopables]: {
1511
+ [x: number]: boolean;
1512
+ length?: boolean;
1513
+ toString?: boolean;
1514
+ toLocaleString?: boolean;
1515
+ pop?: boolean;
1516
+ push?: boolean;
1517
+ concat?: boolean;
1518
+ join?: boolean;
1519
+ reverse?: boolean;
1520
+ shift?: boolean;
1521
+ slice?: boolean;
1522
+ sort?: boolean;
1523
+ splice?: boolean;
1524
+ unshift?: boolean;
1525
+ indexOf?: boolean;
1526
+ lastIndexOf?: boolean;
1527
+ every?: boolean;
1528
+ some?: boolean;
1529
+ forEach?: boolean;
1530
+ map?: boolean;
1531
+ filter?: boolean;
1532
+ reduce?: boolean;
1533
+ reduceRight?: boolean;
1534
+ find?: boolean;
1535
+ findIndex?: boolean;
1536
+ fill?: boolean;
1537
+ copyWithin?: boolean;
1538
+ entries?: boolean;
1539
+ keys?: boolean;
1540
+ values?: boolean;
1541
+ includes?: boolean;
1542
+ flatMap?: boolean;
1543
+ flat?: boolean;
1544
+ };
1545
+ };
1546
+ };
1547
+ name: string | null;
1548
+ id: string;
1549
+ createdAt: string;
1550
+ updatedAt: string;
1551
+ deletedAt: string;
1552
+ isActive: boolean;
1553
+ thumbnailUrl: string | null;
1554
+ productId: string;
1555
+ sku: string;
1556
+ trackInventory: boolean;
1557
+ lowStockThreshold: number | null;
1558
+ };
1559
+ quantity: number;
1560
+ basePrice: number;
1561
+ discountPercent: number;
1562
+ finalPrice: number;
1563
+ subtotal: number;
1564
+ }[];
1565
+ pricing: {
1566
+ subtotal: number;
1567
+ deliveryCharge: number;
1568
+ discount: {
1569
+ code: string;
1570
+ type: "percentage" | "fixed";
1571
+ value: number;
1572
+ amount: number;
1573
+ description: string | null;
1574
+ };
1575
+ total: number;
1576
+ };
1577
+ createdAt: string;
1578
+ updatedAt: string;
1579
+ expiresAt: string;
1580
+ convertedToOrderId: string;
1581
+ wasRecovered: boolean;
1582
+ recoveryUrl: string;
1583
+ } | {
1584
+ error: {
1585
+ code: string;
1586
+ message: string;
1587
+ };
1588
+ }, Error, {
1589
+ sku: string;
1590
+ quantity: number;
1591
+ fbc?: string;
1592
+ fbp?: string;
1593
+ }, unknown>;
1594
+ /**
1595
+ * Hook to update cart item quantity using RPC
1596
+ *
1597
+ * @param cartId - Cart UUID
1598
+ * @param options - React Query mutation options
1599
+ *
1600
+ * @example
1601
+ * ```tsx
1602
+ * const updateItem = useUpdateCartItem('cart-123');
1603
+ * updateItem.mutate({ itemId: 'item-456', quantity: 3 });
1604
+ * ```
1605
+ */
1606
+ export declare function useUpdateCartItem(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof updateCartItem>>, Error, {
1607
+ itemId: string;
1608
+ quantity: number;
1609
+ }>): import("@tanstack/react-query").UseMutationResult<{
1610
+ id: string;
1611
+ brand: {
1612
+ createdAt: string;
1613
+ updatedAt: string;
1614
+ deletedAt: string;
1615
+ name: string;
1616
+ id: string;
1617
+ slug: string;
1618
+ logoUrl: string | null;
1619
+ siteUrl: string;
1620
+ domain: string;
1621
+ metaPixelId: string | null;
1622
+ };
1623
+ customerPhone: string;
1624
+ customerEmail: string;
1625
+ customerFirstName: string;
1626
+ customerLastName: string;
1627
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
1628
+ deliveryZone: {
1629
+ id: string;
1630
+ name: string;
1631
+ };
1632
+ recoveryAttempts: number;
1633
+ lastRecoveryAttemptAt: string;
1634
+ recoveryDiscountCode: {
1635
+ id: string;
1636
+ createdAt: string;
1637
+ updatedAt: string;
1638
+ deletedAt: string;
1639
+ brandId: string | null;
1640
+ isActive: boolean;
1641
+ code: string;
1642
+ type: string;
1643
+ value: string;
1644
+ minPurchase: string;
1645
+ maxDiscount: string;
1646
+ usageLimit: number | null;
1647
+ usageCount: number;
1648
+ perCustomerLimit: number | null;
1649
+ validFrom: string;
1650
+ validUntil: string;
1651
+ isAutoApply: boolean;
1652
+ description: string | null;
1653
+ category: string;
1654
+ createdBy: string | null;
1655
+ };
1656
+ items: {
1657
+ id: string;
1658
+ variant: {
1659
+ price: number;
1660
+ product: {
1661
+ name: string;
1662
+ id: string;
1663
+ slug: string;
1664
+ createdAt: string;
1665
+ updatedAt: string;
1666
+ deletedAt: string;
1667
+ brandId: string;
1668
+ isActive: boolean;
1669
+ description: string | null;
1670
+ thumbnailUrl: string | null;
1671
+ quantityDiscounts: string | number | boolean | {
1672
+ [x: string]: string | number | boolean | /*elided*/ any | {
1673
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1674
+ length: number;
1675
+ toString: never;
1676
+ toLocaleString: never;
1677
+ pop: never;
1678
+ push: never;
1679
+ concat: never;
1680
+ join: never;
1681
+ reverse: never;
1682
+ shift: never;
1683
+ slice: never;
1684
+ sort: never;
1685
+ splice: never;
1686
+ unshift: never;
1687
+ indexOf: never;
1688
+ lastIndexOf: never;
1689
+ every: never;
1690
+ some: never;
1691
+ forEach: never;
1692
+ map: never;
1693
+ filter: never;
1694
+ reduce: never;
1695
+ reduceRight: never;
1696
+ find: never;
1697
+ findIndex: never;
1698
+ fill: never;
1699
+ copyWithin: never;
1700
+ entries: never;
1701
+ keys: never;
1702
+ values: never;
1703
+ includes: never;
1704
+ flatMap: never;
1705
+ flat: never;
1706
+ [Symbol.iterator]: never;
1707
+ readonly [Symbol.unscopables]: {
1708
+ [x: number]: boolean;
1709
+ length?: boolean;
1710
+ toString?: boolean;
1711
+ toLocaleString?: boolean;
1712
+ pop?: boolean;
1713
+ push?: boolean;
1714
+ concat?: boolean;
1715
+ join?: boolean;
1716
+ reverse?: boolean;
1717
+ shift?: boolean;
1718
+ slice?: boolean;
1719
+ sort?: boolean;
1720
+ splice?: boolean;
1721
+ unshift?: boolean;
1722
+ indexOf?: boolean;
1723
+ lastIndexOf?: boolean;
1724
+ every?: boolean;
1725
+ some?: boolean;
1726
+ forEach?: boolean;
1727
+ map?: boolean;
1728
+ filter?: boolean;
1729
+ reduce?: boolean;
1730
+ reduceRight?: boolean;
1731
+ find?: boolean;
1732
+ findIndex?: boolean;
1733
+ fill?: boolean;
1734
+ copyWithin?: boolean;
1735
+ entries?: boolean;
1736
+ keys?: boolean;
1737
+ values?: boolean;
1738
+ includes?: boolean;
1739
+ flatMap?: boolean;
1740
+ flat?: boolean;
1741
+ };
1742
+ };
1743
+ } | {
1744
+ [x: number]: string | number | boolean | {
1745
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1746
+ } | /*elided*/ any;
1747
+ length: number;
1748
+ toString: never;
1749
+ toLocaleString: never;
1750
+ pop: never;
1751
+ push: never;
1752
+ concat: never;
1753
+ join: never;
1754
+ reverse: never;
1755
+ shift: never;
1756
+ slice: never;
1757
+ sort: never;
1758
+ splice: never;
1759
+ unshift: never;
1760
+ indexOf: never;
1761
+ lastIndexOf: never;
1762
+ every: never;
1763
+ some: never;
1764
+ forEach: never;
1765
+ map: never;
1766
+ filter: never;
1767
+ reduce: never;
1768
+ reduceRight: never;
1769
+ find: never;
1770
+ findIndex: never;
1771
+ fill: never;
1772
+ copyWithin: never;
1773
+ entries: never;
1774
+ keys: never;
1775
+ values: never;
1776
+ includes: never;
1777
+ flatMap: never;
1778
+ flat: never;
1779
+ [Symbol.iterator]: never;
1780
+ readonly [Symbol.unscopables]: {
1781
+ [x: number]: boolean;
1782
+ length?: boolean;
1783
+ toString?: boolean;
1784
+ toLocaleString?: boolean;
1785
+ pop?: boolean;
1786
+ push?: boolean;
1787
+ concat?: boolean;
1788
+ join?: boolean;
1789
+ reverse?: boolean;
1790
+ shift?: boolean;
1791
+ slice?: boolean;
1792
+ sort?: boolean;
1793
+ splice?: boolean;
1794
+ unshift?: boolean;
1795
+ indexOf?: boolean;
1796
+ lastIndexOf?: boolean;
1797
+ every?: boolean;
1798
+ some?: boolean;
1799
+ forEach?: boolean;
1800
+ map?: boolean;
1801
+ filter?: boolean;
1802
+ reduce?: boolean;
1803
+ reduceRight?: boolean;
1804
+ find?: boolean;
1805
+ findIndex?: boolean;
1806
+ fill?: boolean;
1807
+ copyWithin?: boolean;
1808
+ entries?: boolean;
1809
+ keys?: boolean;
1810
+ values?: boolean;
1811
+ includes?: boolean;
1812
+ flatMap?: boolean;
1813
+ flat?: boolean;
1814
+ };
1815
+ };
1816
+ };
1817
+ name: string | null;
1818
+ id: string;
1819
+ createdAt: string;
1820
+ updatedAt: string;
1821
+ deletedAt: string;
1822
+ isActive: boolean;
1823
+ thumbnailUrl: string | null;
1824
+ productId: string;
1825
+ sku: string;
1826
+ trackInventory: boolean;
1827
+ lowStockThreshold: number | null;
1828
+ };
1829
+ quantity: number;
1830
+ basePrice: number;
1831
+ discountPercent: number;
1832
+ finalPrice: number;
1833
+ subtotal: number;
1834
+ }[];
1835
+ pricing: {
1836
+ subtotal: number;
1837
+ deliveryCharge: number;
1838
+ discount: {
1839
+ code: string;
1840
+ type: "percentage" | "fixed";
1841
+ value: number;
1842
+ amount: number;
1843
+ description: string | null;
1844
+ };
1845
+ total: number;
1846
+ };
1847
+ createdAt: string;
1848
+ updatedAt: string;
1849
+ expiresAt: string;
1850
+ convertedToOrderId: string;
1851
+ wasRecovered: boolean;
1852
+ recoveryUrl: string;
1853
+ }, Error, {
1854
+ itemId: string;
1855
+ quantity: number;
1856
+ }, unknown>;
1857
+ /**
1858
+ * Hook to remove item from cart using RPC
1859
+ *
1860
+ * @param cartId - Cart UUID
1861
+ * @param options - React Query mutation options
1862
+ *
1863
+ * @example
1864
+ * ```tsx
1865
+ * const removeItem = useRemoveCartItem('cart-123');
1866
+ * removeItem.mutate('item-456'); // Pass itemId in mutate call
1867
+ * ```
1868
+ */
1869
+ export declare function useRemoveCartItem(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof removeCartItem>>, Error, string>): import("@tanstack/react-query").UseMutationResult<{
1870
+ id: string;
1871
+ brand: {
1872
+ createdAt: string;
1873
+ updatedAt: string;
1874
+ deletedAt: string;
1875
+ name: string;
1876
+ id: string;
1877
+ slug: string;
1878
+ logoUrl: string | null;
1879
+ siteUrl: string;
1880
+ domain: string;
1881
+ metaPixelId: string | null;
1882
+ };
1883
+ customerPhone: string;
1884
+ customerEmail: string;
1885
+ customerFirstName: string;
1886
+ customerLastName: string;
1887
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
1888
+ deliveryZone: {
1889
+ id: string;
1890
+ name: string;
1891
+ };
1892
+ recoveryAttempts: number;
1893
+ lastRecoveryAttemptAt: string;
1894
+ recoveryDiscountCode: {
1895
+ id: string;
1896
+ createdAt: string;
1897
+ updatedAt: string;
1898
+ deletedAt: string;
1899
+ brandId: string | null;
1900
+ isActive: boolean;
1901
+ code: string;
1902
+ type: string;
1903
+ value: string;
1904
+ minPurchase: string;
1905
+ maxDiscount: string;
1906
+ usageLimit: number | null;
1907
+ usageCount: number;
1908
+ perCustomerLimit: number | null;
1909
+ validFrom: string;
1910
+ validUntil: string;
1911
+ isAutoApply: boolean;
1912
+ description: string | null;
1913
+ category: string;
1914
+ createdBy: string | null;
1915
+ };
1916
+ items: {
1917
+ id: string;
1918
+ variant: {
1919
+ price: number;
1920
+ product: {
1921
+ name: string;
1922
+ id: string;
1923
+ slug: string;
1924
+ createdAt: string;
1925
+ updatedAt: string;
1926
+ deletedAt: string;
1927
+ brandId: string;
1928
+ isActive: boolean;
1929
+ description: string | null;
1930
+ thumbnailUrl: string | null;
1931
+ quantityDiscounts: string | number | boolean | {
1932
+ [x: string]: string | number | boolean | /*elided*/ any | {
1933
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1934
+ length: number;
1935
+ toString: never;
1936
+ toLocaleString: never;
1937
+ pop: never;
1938
+ push: never;
1939
+ concat: never;
1940
+ join: never;
1941
+ reverse: never;
1942
+ shift: never;
1943
+ slice: never;
1944
+ sort: never;
1945
+ splice: never;
1946
+ unshift: never;
1947
+ indexOf: never;
1948
+ lastIndexOf: never;
1949
+ every: never;
1950
+ some: never;
1951
+ forEach: never;
1952
+ map: never;
1953
+ filter: never;
1954
+ reduce: never;
1955
+ reduceRight: never;
1956
+ find: never;
1957
+ findIndex: never;
1958
+ fill: never;
1959
+ copyWithin: never;
1960
+ entries: never;
1961
+ keys: never;
1962
+ values: never;
1963
+ includes: never;
1964
+ flatMap: never;
1965
+ flat: never;
1966
+ [Symbol.iterator]: never;
1967
+ readonly [Symbol.unscopables]: {
1968
+ [x: number]: boolean;
1969
+ length?: boolean;
1970
+ toString?: boolean;
1971
+ toLocaleString?: boolean;
1972
+ pop?: boolean;
1973
+ push?: boolean;
1974
+ concat?: boolean;
1975
+ join?: boolean;
1976
+ reverse?: boolean;
1977
+ shift?: boolean;
1978
+ slice?: boolean;
1979
+ sort?: boolean;
1980
+ splice?: boolean;
1981
+ unshift?: boolean;
1982
+ indexOf?: boolean;
1983
+ lastIndexOf?: boolean;
1984
+ every?: boolean;
1985
+ some?: boolean;
1986
+ forEach?: boolean;
1987
+ map?: boolean;
1988
+ filter?: boolean;
1989
+ reduce?: boolean;
1990
+ reduceRight?: boolean;
1991
+ find?: boolean;
1992
+ findIndex?: boolean;
1993
+ fill?: boolean;
1994
+ copyWithin?: boolean;
1995
+ entries?: boolean;
1996
+ keys?: boolean;
1997
+ values?: boolean;
1998
+ includes?: boolean;
1999
+ flatMap?: boolean;
2000
+ flat?: boolean;
2001
+ };
2002
+ };
2003
+ } | {
2004
+ [x: number]: string | number | boolean | {
2005
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2006
+ } | /*elided*/ any;
2007
+ length: number;
2008
+ toString: never;
2009
+ toLocaleString: never;
2010
+ pop: never;
2011
+ push: never;
2012
+ concat: never;
2013
+ join: never;
2014
+ reverse: never;
2015
+ shift: never;
2016
+ slice: never;
2017
+ sort: never;
2018
+ splice: never;
2019
+ unshift: never;
2020
+ indexOf: never;
2021
+ lastIndexOf: never;
2022
+ every: never;
2023
+ some: never;
2024
+ forEach: never;
2025
+ map: never;
2026
+ filter: never;
2027
+ reduce: never;
2028
+ reduceRight: never;
2029
+ find: never;
2030
+ findIndex: never;
2031
+ fill: never;
2032
+ copyWithin: never;
2033
+ entries: never;
2034
+ keys: never;
2035
+ values: never;
2036
+ includes: never;
2037
+ flatMap: never;
2038
+ flat: never;
2039
+ [Symbol.iterator]: never;
2040
+ readonly [Symbol.unscopables]: {
2041
+ [x: number]: boolean;
2042
+ length?: boolean;
2043
+ toString?: boolean;
2044
+ toLocaleString?: boolean;
2045
+ pop?: boolean;
2046
+ push?: boolean;
2047
+ concat?: boolean;
2048
+ join?: boolean;
2049
+ reverse?: boolean;
2050
+ shift?: boolean;
2051
+ slice?: boolean;
2052
+ sort?: boolean;
2053
+ splice?: boolean;
2054
+ unshift?: boolean;
2055
+ indexOf?: boolean;
2056
+ lastIndexOf?: boolean;
2057
+ every?: boolean;
2058
+ some?: boolean;
2059
+ forEach?: boolean;
2060
+ map?: boolean;
2061
+ filter?: boolean;
2062
+ reduce?: boolean;
2063
+ reduceRight?: boolean;
2064
+ find?: boolean;
2065
+ findIndex?: boolean;
2066
+ fill?: boolean;
2067
+ copyWithin?: boolean;
2068
+ entries?: boolean;
2069
+ keys?: boolean;
2070
+ values?: boolean;
2071
+ includes?: boolean;
2072
+ flatMap?: boolean;
2073
+ flat?: boolean;
2074
+ };
2075
+ };
2076
+ };
2077
+ name: string | null;
2078
+ id: string;
2079
+ createdAt: string;
2080
+ updatedAt: string;
2081
+ deletedAt: string;
2082
+ isActive: boolean;
2083
+ thumbnailUrl: string | null;
2084
+ productId: string;
2085
+ sku: string;
2086
+ trackInventory: boolean;
2087
+ lowStockThreshold: number | null;
2088
+ };
2089
+ quantity: number;
2090
+ basePrice: number;
2091
+ discountPercent: number;
2092
+ finalPrice: number;
2093
+ subtotal: number;
2094
+ }[];
2095
+ pricing: {
2096
+ subtotal: number;
2097
+ deliveryCharge: number;
2098
+ discount: {
2099
+ code: string;
2100
+ type: "percentage" | "fixed";
2101
+ value: number;
2102
+ amount: number;
2103
+ description: string | null;
2104
+ };
2105
+ total: number;
2106
+ };
2107
+ createdAt: string;
2108
+ updatedAt: string;
2109
+ expiresAt: string;
2110
+ convertedToOrderId: string;
2111
+ wasRecovered: boolean;
2112
+ recoveryUrl: string;
2113
+ }, Error, string, unknown>;
2114
+ /**
2115
+ * Hook to checkout a cart and create an order using RPC
2116
+ *
2117
+ * @param cartId - Cart UUID
2118
+ * @param options - React Query mutation options
2119
+ *
2120
+ * @example
2121
+ * ```tsx
2122
+ * const checkout = useCheckoutCart('cart-123');
2123
+ * checkout.mutate({
2124
+ * firstName: 'John',
2125
+ * lastName: 'Doe',
2126
+ * email: 'john@example.com',
2127
+ * phone: '+1234567890',
2128
+ * address: '123 Main St',
2129
+ * city: 'New York',
2130
+ * deliveryZoneId: 'zone-123',
2131
+ * paymentMethod: 'cod'
2132
+ * });
2133
+ * ```
2134
+ */
2135
+ export declare function useCheckoutCart(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof checkoutCart>>, Error, Parameters<typeof checkoutCart>[1]>): import("@tanstack/react-query").UseMutationResult<{
2136
+ subtotal: number;
2137
+ deliveryCharge: number;
2138
+ totalPrice: number;
2139
+ discountAmount: number;
2140
+ createdAt: string;
2141
+ updatedAt: string;
2142
+ deletedAt: string;
2143
+ prospectSince: string;
2144
+ lastRecoveryAttemptAt: string;
2145
+ brand: {
2146
+ createdAt: string;
2147
+ updatedAt: string;
2148
+ deletedAt: string;
2149
+ name: string;
2150
+ id: string;
2151
+ slug: string;
2152
+ logoUrl: string | null;
2153
+ siteUrl: string;
2154
+ domain: string;
2155
+ metaPixelId: string | null;
2156
+ };
2157
+ deliveryZone: {
2158
+ deliveryCost: number;
2159
+ freeShippingThreshold: number;
2160
+ createdAt: string;
2161
+ updatedAt: string;
2162
+ deletedAt: string;
2163
+ state: {
2164
+ createdAt: string;
2165
+ updatedAt: string;
2166
+ deletedAt: string;
2167
+ name: string;
2168
+ id: string;
2169
+ isActive: boolean;
2170
+ };
2171
+ name: string;
2172
+ id: string;
2173
+ brandId: string | null;
2174
+ stateId: string;
2175
+ allowCOD: boolean;
2176
+ allowOnline: boolean;
2177
+ waybillOnly: boolean;
2178
+ estimatedDays: number | null;
2179
+ isActive: boolean;
2180
+ };
2181
+ items: {
2182
+ priceAtPurchase: number;
2183
+ variant: {
2184
+ price: number;
2185
+ createdAt: string;
2186
+ updatedAt: string;
2187
+ deletedAt: string;
2188
+ product: {
2189
+ createdAt: string;
2190
+ updatedAt: string;
2191
+ deletedAt: string;
2192
+ name: string;
2193
+ id: string;
2194
+ slug: string;
2195
+ brandId: string;
2196
+ isActive: boolean;
2197
+ description: string | null;
2198
+ thumbnailUrl: string | null;
2199
+ quantityDiscounts: string | number | boolean | {
2200
+ [x: string]: string | number | boolean | /*elided*/ any | {
2201
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2202
+ length: number;
2203
+ toString: never;
2204
+ toLocaleString: never;
2205
+ pop: never;
2206
+ push: never;
2207
+ concat: never;
2208
+ join: never;
2209
+ reverse: never;
2210
+ shift: never;
2211
+ slice: never;
2212
+ sort: never;
2213
+ splice: never;
2214
+ unshift: never;
2215
+ indexOf: never;
2216
+ lastIndexOf: never;
2217
+ every: never;
2218
+ some: never;
2219
+ forEach: never;
2220
+ map: never;
2221
+ filter: never;
2222
+ reduce: never;
2223
+ reduceRight: never;
2224
+ find: never;
2225
+ findIndex: never;
2226
+ fill: never;
2227
+ copyWithin: never;
2228
+ entries: never;
2229
+ keys: never;
2230
+ values: never;
2231
+ includes: never;
2232
+ flatMap: never;
2233
+ flat: never;
2234
+ [Symbol.iterator]: never;
2235
+ readonly [Symbol.unscopables]: {
2236
+ [x: number]: boolean;
2237
+ length?: boolean;
2238
+ toString?: boolean;
2239
+ toLocaleString?: boolean;
2240
+ pop?: boolean;
2241
+ push?: boolean;
2242
+ concat?: boolean;
2243
+ join?: boolean;
2244
+ reverse?: boolean;
2245
+ shift?: boolean;
2246
+ slice?: boolean;
2247
+ sort?: boolean;
2248
+ splice?: boolean;
2249
+ unshift?: boolean;
2250
+ indexOf?: boolean;
2251
+ lastIndexOf?: boolean;
2252
+ every?: boolean;
2253
+ some?: boolean;
2254
+ forEach?: boolean;
2255
+ map?: boolean;
2256
+ filter?: boolean;
2257
+ reduce?: boolean;
2258
+ reduceRight?: boolean;
2259
+ find?: boolean;
2260
+ findIndex?: boolean;
2261
+ fill?: boolean;
2262
+ copyWithin?: boolean;
2263
+ entries?: boolean;
2264
+ keys?: boolean;
2265
+ values?: boolean;
2266
+ includes?: boolean;
2267
+ flatMap?: boolean;
2268
+ flat?: boolean;
2269
+ };
2270
+ };
2271
+ } | {
2272
+ [x: number]: string | number | boolean | {
2273
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2274
+ } | /*elided*/ any;
2275
+ length: number;
2276
+ toString: never;
2277
+ toLocaleString: never;
2278
+ pop: never;
2279
+ push: never;
2280
+ concat: never;
2281
+ join: never;
2282
+ reverse: never;
2283
+ shift: never;
2284
+ slice: never;
2285
+ sort: never;
2286
+ splice: never;
2287
+ unshift: never;
2288
+ indexOf: never;
2289
+ lastIndexOf: never;
2290
+ every: never;
2291
+ some: never;
2292
+ forEach: never;
2293
+ map: never;
2294
+ filter: never;
2295
+ reduce: never;
2296
+ reduceRight: never;
2297
+ find: never;
2298
+ findIndex: never;
2299
+ fill: never;
2300
+ copyWithin: never;
2301
+ entries: never;
2302
+ keys: never;
2303
+ values: never;
2304
+ includes: never;
2305
+ flatMap: never;
2306
+ flat: never;
2307
+ [Symbol.iterator]: never;
2308
+ readonly [Symbol.unscopables]: {
2309
+ [x: number]: boolean;
2310
+ length?: boolean;
2311
+ toString?: boolean;
2312
+ toLocaleString?: boolean;
2313
+ pop?: boolean;
2314
+ push?: boolean;
2315
+ concat?: boolean;
2316
+ join?: boolean;
2317
+ reverse?: boolean;
2318
+ shift?: boolean;
2319
+ slice?: boolean;
2320
+ sort?: boolean;
2321
+ splice?: boolean;
2322
+ unshift?: boolean;
2323
+ indexOf?: boolean;
2324
+ lastIndexOf?: boolean;
2325
+ every?: boolean;
2326
+ some?: boolean;
2327
+ forEach?: boolean;
2328
+ map?: boolean;
2329
+ filter?: boolean;
2330
+ reduce?: boolean;
2331
+ reduceRight?: boolean;
2332
+ find?: boolean;
2333
+ findIndex?: boolean;
2334
+ fill?: boolean;
2335
+ copyWithin?: boolean;
2336
+ entries?: boolean;
2337
+ keys?: boolean;
2338
+ values?: boolean;
2339
+ includes?: boolean;
2340
+ flatMap?: boolean;
2341
+ flat?: boolean;
2342
+ };
2343
+ };
2344
+ };
2345
+ name: string | null;
2346
+ id: string;
2347
+ isActive: boolean;
2348
+ thumbnailUrl: string | null;
2349
+ productId: string;
2350
+ sku: string;
2351
+ trackInventory: boolean;
2352
+ lowStockThreshold: number | null;
2353
+ };
2354
+ warehouse: {
2355
+ createdAt: string;
2356
+ updatedAt: string;
2357
+ deletedAt: string;
2358
+ name: string;
2359
+ id: string;
2360
+ isActive: boolean;
2361
+ address: string | null;
2362
+ city: string | null;
2363
+ state: string | null;
2364
+ };
2365
+ id: string;
2366
+ orderId: string;
2367
+ variantId: string;
2368
+ warehouseId: string | null;
2369
+ quantity: number;
2370
+ }[];
2371
+ id: string;
2372
+ email: string | null;
2373
+ brandId: string;
2374
+ deliveryZoneId: string;
2375
+ recoveryAttempts: number;
2376
+ recoveryDiscountCodeId: string | null;
2377
+ wasRecovered: boolean;
2378
+ estimatedDays: number | null;
2379
+ orderNumber: number;
2380
+ firstName: string;
2381
+ lastName: string;
2382
+ phone: string;
2383
+ address: string;
2384
+ city: string;
2385
+ discountCodeId: string | null;
2386
+ paymentMethod: import("@prisma/client").$Enums.PaymentMethod;
2387
+ paystackReference: string | null;
2388
+ status: import("@prisma/client").$Enums.OrderStatus;
2389
+ cancellationReason: string | null;
2390
+ prospectReason: import("@prisma/client").$Enums.ProspectReason | null;
2391
+ userActionToken: string;
2392
+ }, Error, {
2393
+ firstName: string;
2394
+ lastName: string;
2395
+ phone?: string;
2396
+ email?: string;
2397
+ address: string;
2398
+ city: string;
2399
+ deliveryZoneId: string;
2400
+ paymentMethod: "cod" | "online";
2401
+ paystackReference?: string;
2402
+ ifUnmodifiedSince?: string;
2403
+ fbc?: string;
2404
+ fbp?: string;
2405
+ }, unknown>;