@instockng/api-client 1.0.0 → 1.0.2

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 (90) hide show
  1. package/dist/backend-types.d.ts +10 -0
  2. package/dist/backend-types.js +10 -0
  3. package/dist/client.d.ts +20 -0
  4. package/dist/client.js +40 -0
  5. package/dist/fetchers/brands.d.ts +25 -0
  6. package/dist/fetchers/brands.js +26 -0
  7. package/dist/fetchers/carts.d.ts +2339 -0
  8. package/dist/fetchers/carts.js +167 -0
  9. package/dist/fetchers/delivery-zones.d.ts +28 -0
  10. package/{src/fetchers/delivery-zones.ts → dist/fetchers/delivery-zones.js} +9 -12
  11. package/{src/fetchers/index.ts → dist/fetchers/index.d.ts} +1 -1
  12. package/dist/fetchers/index.js +22 -0
  13. package/dist/fetchers/orders.d.ts +283 -0
  14. package/dist/fetchers/orders.js +44 -0
  15. package/dist/fetchers/products.d.ts +386 -0
  16. package/dist/fetchers/products.js +42 -0
  17. package/dist/hooks/admin/abandoned-carts.d.ts +535 -0
  18. package/dist/hooks/admin/abandoned-carts.js +79 -0
  19. package/dist/hooks/admin/brands.d.ts +79 -0
  20. package/dist/hooks/admin/brands.js +103 -0
  21. package/dist/hooks/admin/customers.d.ts +278 -0
  22. package/dist/hooks/admin/customers.js +25 -0
  23. package/dist/hooks/admin/delivery-zones.d.ts +270 -0
  24. package/dist/hooks/admin/delivery-zones.js +168 -0
  25. package/dist/hooks/admin/discount-codes.d.ts +299 -0
  26. package/dist/hooks/admin/discount-codes.js +157 -0
  27. package/{src/hooks/admin/index.ts → dist/hooks/admin/index.d.ts} +0 -1
  28. package/dist/hooks/admin/index.js +16 -0
  29. package/dist/hooks/admin/inventory.d.ts +224 -0
  30. package/dist/hooks/admin/inventory.js +102 -0
  31. package/dist/hooks/admin/orders.d.ts +1380 -0
  32. package/dist/hooks/admin/orders.js +169 -0
  33. package/dist/hooks/admin/products.d.ts +374 -0
  34. package/dist/hooks/admin/products.js +84 -0
  35. package/dist/hooks/admin/stats.d.ts +277 -0
  36. package/dist/hooks/admin/stats.js +24 -0
  37. package/dist/hooks/admin/variants.d.ts +115 -0
  38. package/dist/hooks/admin/variants.js +121 -0
  39. package/dist/hooks/admin/warehouses.d.ts +277 -0
  40. package/dist/hooks/admin/warehouses.js +103 -0
  41. package/dist/hooks/public/brands.d.ts +33 -0
  42. package/dist/hooks/public/brands.js +30 -0
  43. package/dist/hooks/public/carts.d.ts +2407 -0
  44. package/dist/hooks/public/carts.js +213 -0
  45. package/dist/hooks/public/delivery-zones.d.ts +34 -0
  46. package/{src/hooks/public/delivery-zones.ts → dist/hooks/public/delivery-zones.js} +6 -12
  47. package/{src/hooks/public/index.ts → dist/hooks/public/index.d.ts} +1 -1
  48. package/dist/hooks/public/index.js +10 -0
  49. package/dist/hooks/public/orders.d.ts +302 -0
  50. package/{src/hooks/public/orders.ts → dist/hooks/public/orders.js} +12 -28
  51. package/dist/hooks/public/products.d.ts +398 -0
  52. package/{src/hooks/public/products.ts → dist/hooks/public/products.js} +12 -22
  53. package/dist/hooks/use-query-unwrapped.d.ts +20 -0
  54. package/dist/hooks/use-query-unwrapped.js +22 -0
  55. package/dist/hooks/useApiConfig.d.ts +11 -0
  56. package/dist/hooks/useApiConfig.js +14 -0
  57. package/dist/index.d.ts +20 -0
  58. package/{src/index.ts → dist/index.js} +0 -17
  59. package/dist/provider.d.ts +33 -0
  60. package/dist/provider.js +52 -0
  61. package/dist/rpc-client.d.ts +9043 -0
  62. package/dist/rpc-client.js +78 -0
  63. package/{src/rpc-types.ts → dist/rpc-types.d.ts} +35 -80
  64. package/dist/rpc-types.js +7 -0
  65. package/{src/types.ts → dist/types.d.ts} +0 -6
  66. package/dist/types.js +16 -0
  67. package/dist/utils/query-keys.d.ts +106 -0
  68. package/dist/utils/query-keys.js +108 -0
  69. package/package.json +24 -13
  70. package/src/client.ts +0 -57
  71. package/src/fetchers/carts.ts +0 -202
  72. package/src/fetchers/orders.ts +0 -48
  73. package/src/fetchers/products.ts +0 -46
  74. package/src/hooks/admin/abandoned-carts.ts +0 -102
  75. package/src/hooks/admin/brands.ts +0 -134
  76. package/src/hooks/admin/customers.ts +0 -31
  77. package/src/hooks/admin/delivery-zones.ts +0 -236
  78. package/src/hooks/admin/discount-codes.ts +0 -222
  79. package/src/hooks/admin/inventory.ts +0 -137
  80. package/src/hooks/admin/orders.ts +0 -229
  81. package/src/hooks/admin/products.ts +0 -116
  82. package/src/hooks/admin/stats.ts +0 -30
  83. package/src/hooks/admin/variants.ts +0 -173
  84. package/src/hooks/admin/warehouses.ts +0 -143
  85. package/src/hooks/public/carts.ts +0 -298
  86. package/src/hooks/use-query-unwrapped.ts +0 -30
  87. package/src/hooks/useApiConfig.ts +0 -22
  88. package/src/provider.tsx +0 -89
  89. package/src/rpc-client.ts +0 -106
  90. package/src/utils/query-keys.ts +0 -121
@@ -0,0 +1,2407 @@
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
+ error: {
1074
+ code: string;
1075
+ message: string;
1076
+ };
1077
+ } | {
1078
+ cart: {
1079
+ id: string;
1080
+ brand: {
1081
+ createdAt: string;
1082
+ updatedAt: string;
1083
+ deletedAt: string;
1084
+ name: string;
1085
+ id: string;
1086
+ slug: string;
1087
+ logoUrl: string | null;
1088
+ siteUrl: string;
1089
+ domain: string;
1090
+ metaPixelId: string | null;
1091
+ };
1092
+ customerPhone: string;
1093
+ customerEmail: string;
1094
+ customerFirstName: string;
1095
+ customerLastName: string;
1096
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
1097
+ deliveryZone: {
1098
+ id: string;
1099
+ name: string;
1100
+ };
1101
+ recoveryAttempts: number;
1102
+ lastRecoveryAttemptAt: string;
1103
+ recoveryDiscountCode: {
1104
+ id: string;
1105
+ createdAt: string;
1106
+ updatedAt: string;
1107
+ deletedAt: string;
1108
+ brandId: string | null;
1109
+ isActive: boolean;
1110
+ code: string;
1111
+ type: string;
1112
+ value: string;
1113
+ minPurchase: string;
1114
+ maxDiscount: string;
1115
+ usageLimit: number | null;
1116
+ usageCount: number;
1117
+ perCustomerLimit: number | null;
1118
+ validFrom: string;
1119
+ validUntil: string;
1120
+ isAutoApply: boolean;
1121
+ description: string | null;
1122
+ category: string;
1123
+ createdBy: string | null;
1124
+ };
1125
+ items: {
1126
+ id: string;
1127
+ variant: {
1128
+ price: number;
1129
+ product: {
1130
+ name: string;
1131
+ id: string;
1132
+ slug: string;
1133
+ createdAt: string;
1134
+ updatedAt: string;
1135
+ deletedAt: string;
1136
+ brandId: string;
1137
+ isActive: boolean;
1138
+ description: string | null;
1139
+ thumbnailUrl: string | null;
1140
+ quantityDiscounts: string | number | boolean | {
1141
+ [x: string]: string | number | boolean | /*elided*/ any | {
1142
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1143
+ length: number;
1144
+ toString: never;
1145
+ toLocaleString: never;
1146
+ pop: never;
1147
+ push: never;
1148
+ concat: never;
1149
+ join: never;
1150
+ reverse: never;
1151
+ shift: never;
1152
+ slice: never;
1153
+ sort: never;
1154
+ splice: never;
1155
+ unshift: never;
1156
+ indexOf: never;
1157
+ lastIndexOf: never;
1158
+ every: never;
1159
+ some: never;
1160
+ forEach: never;
1161
+ map: never;
1162
+ filter: never;
1163
+ reduce: never;
1164
+ reduceRight: never;
1165
+ find: never;
1166
+ findIndex: never;
1167
+ fill: never;
1168
+ copyWithin: never;
1169
+ entries: never;
1170
+ keys: never;
1171
+ values: never;
1172
+ includes: never;
1173
+ flatMap: never;
1174
+ flat: never;
1175
+ [Symbol.iterator]: never;
1176
+ readonly [Symbol.unscopables]: {
1177
+ [x: number]: boolean;
1178
+ length?: boolean;
1179
+ toString?: boolean;
1180
+ toLocaleString?: boolean;
1181
+ pop?: boolean;
1182
+ push?: boolean;
1183
+ concat?: boolean;
1184
+ join?: boolean;
1185
+ reverse?: boolean;
1186
+ shift?: boolean;
1187
+ slice?: boolean;
1188
+ sort?: boolean;
1189
+ splice?: boolean;
1190
+ unshift?: boolean;
1191
+ indexOf?: boolean;
1192
+ lastIndexOf?: boolean;
1193
+ every?: boolean;
1194
+ some?: boolean;
1195
+ forEach?: boolean;
1196
+ map?: boolean;
1197
+ filter?: boolean;
1198
+ reduce?: boolean;
1199
+ reduceRight?: boolean;
1200
+ find?: boolean;
1201
+ findIndex?: boolean;
1202
+ fill?: boolean;
1203
+ copyWithin?: boolean;
1204
+ entries?: boolean;
1205
+ keys?: boolean;
1206
+ values?: boolean;
1207
+ includes?: boolean;
1208
+ flatMap?: boolean;
1209
+ flat?: boolean;
1210
+ };
1211
+ };
1212
+ } | {
1213
+ [x: number]: string | number | boolean | {
1214
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1215
+ } | /*elided*/ any;
1216
+ length: number;
1217
+ toString: never;
1218
+ toLocaleString: never;
1219
+ pop: never;
1220
+ push: never;
1221
+ concat: never;
1222
+ join: never;
1223
+ reverse: never;
1224
+ shift: never;
1225
+ slice: never;
1226
+ sort: never;
1227
+ splice: never;
1228
+ unshift: never;
1229
+ indexOf: never;
1230
+ lastIndexOf: never;
1231
+ every: never;
1232
+ some: never;
1233
+ forEach: never;
1234
+ map: never;
1235
+ filter: never;
1236
+ reduce: never;
1237
+ reduceRight: never;
1238
+ find: never;
1239
+ findIndex: never;
1240
+ fill: never;
1241
+ copyWithin: never;
1242
+ entries: never;
1243
+ keys: never;
1244
+ values: never;
1245
+ includes: never;
1246
+ flatMap: never;
1247
+ flat: never;
1248
+ [Symbol.iterator]: never;
1249
+ readonly [Symbol.unscopables]: {
1250
+ [x: number]: boolean;
1251
+ length?: boolean;
1252
+ toString?: boolean;
1253
+ toLocaleString?: boolean;
1254
+ pop?: boolean;
1255
+ push?: boolean;
1256
+ concat?: boolean;
1257
+ join?: boolean;
1258
+ reverse?: boolean;
1259
+ shift?: boolean;
1260
+ slice?: boolean;
1261
+ sort?: boolean;
1262
+ splice?: boolean;
1263
+ unshift?: boolean;
1264
+ indexOf?: boolean;
1265
+ lastIndexOf?: boolean;
1266
+ every?: boolean;
1267
+ some?: boolean;
1268
+ forEach?: boolean;
1269
+ map?: boolean;
1270
+ filter?: boolean;
1271
+ reduce?: boolean;
1272
+ reduceRight?: boolean;
1273
+ find?: boolean;
1274
+ findIndex?: boolean;
1275
+ fill?: boolean;
1276
+ copyWithin?: boolean;
1277
+ entries?: boolean;
1278
+ keys?: boolean;
1279
+ values?: boolean;
1280
+ includes?: boolean;
1281
+ flatMap?: boolean;
1282
+ flat?: boolean;
1283
+ };
1284
+ };
1285
+ };
1286
+ name: string | null;
1287
+ id: string;
1288
+ createdAt: string;
1289
+ updatedAt: string;
1290
+ deletedAt: string;
1291
+ isActive: boolean;
1292
+ thumbnailUrl: string | null;
1293
+ productId: string;
1294
+ sku: string;
1295
+ trackInventory: boolean;
1296
+ lowStockThreshold: number | null;
1297
+ };
1298
+ quantity: number;
1299
+ basePrice: number;
1300
+ discountPercent: number;
1301
+ finalPrice: number;
1302
+ subtotal: number;
1303
+ }[];
1304
+ pricing: {
1305
+ subtotal: number;
1306
+ deliveryCharge: number;
1307
+ discount: {
1308
+ code: string;
1309
+ type: "percentage" | "fixed";
1310
+ value: number;
1311
+ amount: number;
1312
+ description: string | null;
1313
+ };
1314
+ total: number;
1315
+ };
1316
+ createdAt: string;
1317
+ updatedAt: string;
1318
+ expiresAt: string;
1319
+ convertedToOrderId: string;
1320
+ wasRecovered: boolean;
1321
+ recoveryUrl: string;
1322
+ };
1323
+ }, Error, void, unknown>;
1324
+ /**
1325
+ * Hook to add item to cart using RPC
1326
+ *
1327
+ * @param cartId - Cart UUID
1328
+ * @param options - React Query mutation options
1329
+ *
1330
+ * @example
1331
+ * ```tsx
1332
+ * const addItem = useAddCartItem('cart-123');
1333
+ * addItem.mutate({ sku: 'PROD-001', quantity: 2 });
1334
+ * ```
1335
+ */
1336
+ export declare function useAddCartItem(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof addCartItem>>, Error, {
1337
+ sku: string;
1338
+ quantity: number;
1339
+ }>): import("@tanstack/react-query").UseMutationResult<{
1340
+ error: {
1341
+ code: string;
1342
+ message: string;
1343
+ };
1344
+ } | {
1345
+ cart: {
1346
+ id: string;
1347
+ brand: {
1348
+ createdAt: string;
1349
+ updatedAt: string;
1350
+ deletedAt: string;
1351
+ name: string;
1352
+ id: string;
1353
+ slug: string;
1354
+ logoUrl: string | null;
1355
+ siteUrl: string;
1356
+ domain: string;
1357
+ metaPixelId: string | null;
1358
+ };
1359
+ customerPhone: string;
1360
+ customerEmail: string;
1361
+ customerFirstName: string;
1362
+ customerLastName: string;
1363
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
1364
+ deliveryZone: {
1365
+ id: string;
1366
+ name: string;
1367
+ };
1368
+ recoveryAttempts: number;
1369
+ lastRecoveryAttemptAt: string;
1370
+ recoveryDiscountCode: {
1371
+ id: string;
1372
+ createdAt: string;
1373
+ updatedAt: string;
1374
+ deletedAt: string;
1375
+ brandId: string | null;
1376
+ isActive: boolean;
1377
+ code: string;
1378
+ type: string;
1379
+ value: string;
1380
+ minPurchase: string;
1381
+ maxDiscount: string;
1382
+ usageLimit: number | null;
1383
+ usageCount: number;
1384
+ perCustomerLimit: number | null;
1385
+ validFrom: string;
1386
+ validUntil: string;
1387
+ isAutoApply: boolean;
1388
+ description: string | null;
1389
+ category: string;
1390
+ createdBy: string | null;
1391
+ };
1392
+ items: {
1393
+ id: string;
1394
+ variant: {
1395
+ price: number;
1396
+ product: {
1397
+ name: string;
1398
+ id: string;
1399
+ slug: string;
1400
+ createdAt: string;
1401
+ updatedAt: string;
1402
+ deletedAt: string;
1403
+ brandId: string;
1404
+ isActive: boolean;
1405
+ description: string | null;
1406
+ thumbnailUrl: string | null;
1407
+ quantityDiscounts: string | number | boolean | {
1408
+ [x: string]: string | number | boolean | /*elided*/ any | {
1409
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1410
+ length: number;
1411
+ toString: never;
1412
+ toLocaleString: never;
1413
+ pop: never;
1414
+ push: never;
1415
+ concat: never;
1416
+ join: never;
1417
+ reverse: never;
1418
+ shift: never;
1419
+ slice: never;
1420
+ sort: never;
1421
+ splice: never;
1422
+ unshift: never;
1423
+ indexOf: never;
1424
+ lastIndexOf: never;
1425
+ every: never;
1426
+ some: never;
1427
+ forEach: never;
1428
+ map: never;
1429
+ filter: never;
1430
+ reduce: never;
1431
+ reduceRight: never;
1432
+ find: never;
1433
+ findIndex: never;
1434
+ fill: never;
1435
+ copyWithin: never;
1436
+ entries: never;
1437
+ keys: never;
1438
+ values: never;
1439
+ includes: never;
1440
+ flatMap: never;
1441
+ flat: never;
1442
+ [Symbol.iterator]: never;
1443
+ readonly [Symbol.unscopables]: {
1444
+ [x: number]: boolean;
1445
+ length?: boolean;
1446
+ toString?: boolean;
1447
+ toLocaleString?: boolean;
1448
+ pop?: boolean;
1449
+ push?: boolean;
1450
+ concat?: boolean;
1451
+ join?: boolean;
1452
+ reverse?: boolean;
1453
+ shift?: boolean;
1454
+ slice?: boolean;
1455
+ sort?: boolean;
1456
+ splice?: boolean;
1457
+ unshift?: boolean;
1458
+ indexOf?: boolean;
1459
+ lastIndexOf?: boolean;
1460
+ every?: boolean;
1461
+ some?: boolean;
1462
+ forEach?: boolean;
1463
+ map?: boolean;
1464
+ filter?: boolean;
1465
+ reduce?: boolean;
1466
+ reduceRight?: boolean;
1467
+ find?: boolean;
1468
+ findIndex?: boolean;
1469
+ fill?: boolean;
1470
+ copyWithin?: boolean;
1471
+ entries?: boolean;
1472
+ keys?: boolean;
1473
+ values?: boolean;
1474
+ includes?: boolean;
1475
+ flatMap?: boolean;
1476
+ flat?: boolean;
1477
+ };
1478
+ };
1479
+ } | {
1480
+ [x: number]: string | number | boolean | {
1481
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1482
+ } | /*elided*/ any;
1483
+ length: number;
1484
+ toString: never;
1485
+ toLocaleString: never;
1486
+ pop: never;
1487
+ push: never;
1488
+ concat: never;
1489
+ join: never;
1490
+ reverse: never;
1491
+ shift: never;
1492
+ slice: never;
1493
+ sort: never;
1494
+ splice: never;
1495
+ unshift: never;
1496
+ indexOf: never;
1497
+ lastIndexOf: never;
1498
+ every: never;
1499
+ some: never;
1500
+ forEach: never;
1501
+ map: never;
1502
+ filter: never;
1503
+ reduce: never;
1504
+ reduceRight: never;
1505
+ find: never;
1506
+ findIndex: never;
1507
+ fill: never;
1508
+ copyWithin: never;
1509
+ entries: never;
1510
+ keys: never;
1511
+ values: never;
1512
+ includes: never;
1513
+ flatMap: never;
1514
+ flat: never;
1515
+ [Symbol.iterator]: never;
1516
+ readonly [Symbol.unscopables]: {
1517
+ [x: number]: boolean;
1518
+ length?: boolean;
1519
+ toString?: boolean;
1520
+ toLocaleString?: boolean;
1521
+ pop?: boolean;
1522
+ push?: boolean;
1523
+ concat?: boolean;
1524
+ join?: boolean;
1525
+ reverse?: boolean;
1526
+ shift?: boolean;
1527
+ slice?: boolean;
1528
+ sort?: boolean;
1529
+ splice?: boolean;
1530
+ unshift?: boolean;
1531
+ indexOf?: boolean;
1532
+ lastIndexOf?: boolean;
1533
+ every?: boolean;
1534
+ some?: boolean;
1535
+ forEach?: boolean;
1536
+ map?: boolean;
1537
+ filter?: boolean;
1538
+ reduce?: boolean;
1539
+ reduceRight?: boolean;
1540
+ find?: boolean;
1541
+ findIndex?: boolean;
1542
+ fill?: boolean;
1543
+ copyWithin?: boolean;
1544
+ entries?: boolean;
1545
+ keys?: boolean;
1546
+ values?: boolean;
1547
+ includes?: boolean;
1548
+ flatMap?: boolean;
1549
+ flat?: boolean;
1550
+ };
1551
+ };
1552
+ };
1553
+ name: string | null;
1554
+ id: string;
1555
+ createdAt: string;
1556
+ updatedAt: string;
1557
+ deletedAt: string;
1558
+ isActive: boolean;
1559
+ thumbnailUrl: string | null;
1560
+ productId: string;
1561
+ sku: string;
1562
+ trackInventory: boolean;
1563
+ lowStockThreshold: number | null;
1564
+ };
1565
+ quantity: number;
1566
+ basePrice: number;
1567
+ discountPercent: number;
1568
+ finalPrice: number;
1569
+ subtotal: number;
1570
+ }[];
1571
+ pricing: {
1572
+ subtotal: number;
1573
+ deliveryCharge: number;
1574
+ discount: {
1575
+ code: string;
1576
+ type: "percentage" | "fixed";
1577
+ value: number;
1578
+ amount: number;
1579
+ description: string | null;
1580
+ };
1581
+ total: number;
1582
+ };
1583
+ createdAt: string;
1584
+ updatedAt: string;
1585
+ expiresAt: string;
1586
+ convertedToOrderId: string;
1587
+ wasRecovered: boolean;
1588
+ recoveryUrl: string;
1589
+ };
1590
+ }, Error, {
1591
+ sku: string;
1592
+ quantity: number;
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
+ cart: {
1611
+ id: string;
1612
+ brand: {
1613
+ createdAt: string;
1614
+ updatedAt: string;
1615
+ deletedAt: string;
1616
+ name: string;
1617
+ id: string;
1618
+ slug: string;
1619
+ logoUrl: string | null;
1620
+ siteUrl: string;
1621
+ domain: string;
1622
+ metaPixelId: string | null;
1623
+ };
1624
+ customerPhone: string;
1625
+ customerEmail: string;
1626
+ customerFirstName: string;
1627
+ customerLastName: string;
1628
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
1629
+ deliveryZone: {
1630
+ id: string;
1631
+ name: string;
1632
+ };
1633
+ recoveryAttempts: number;
1634
+ lastRecoveryAttemptAt: string;
1635
+ recoveryDiscountCode: {
1636
+ id: string;
1637
+ createdAt: string;
1638
+ updatedAt: string;
1639
+ deletedAt: string;
1640
+ brandId: string | null;
1641
+ isActive: boolean;
1642
+ code: string;
1643
+ type: string;
1644
+ value: string;
1645
+ minPurchase: string;
1646
+ maxDiscount: string;
1647
+ usageLimit: number | null;
1648
+ usageCount: number;
1649
+ perCustomerLimit: number | null;
1650
+ validFrom: string;
1651
+ validUntil: string;
1652
+ isAutoApply: boolean;
1653
+ description: string | null;
1654
+ category: string;
1655
+ createdBy: string | null;
1656
+ };
1657
+ items: {
1658
+ id: string;
1659
+ variant: {
1660
+ price: number;
1661
+ product: {
1662
+ name: string;
1663
+ id: string;
1664
+ slug: string;
1665
+ createdAt: string;
1666
+ updatedAt: string;
1667
+ deletedAt: string;
1668
+ brandId: string;
1669
+ isActive: boolean;
1670
+ description: string | null;
1671
+ thumbnailUrl: string | null;
1672
+ quantityDiscounts: string | number | boolean | {
1673
+ [x: string]: string | number | boolean | /*elided*/ any | {
1674
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1675
+ length: number;
1676
+ toString: never;
1677
+ toLocaleString: never;
1678
+ pop: never;
1679
+ push: never;
1680
+ concat: never;
1681
+ join: never;
1682
+ reverse: never;
1683
+ shift: never;
1684
+ slice: never;
1685
+ sort: never;
1686
+ splice: never;
1687
+ unshift: never;
1688
+ indexOf: never;
1689
+ lastIndexOf: never;
1690
+ every: never;
1691
+ some: never;
1692
+ forEach: never;
1693
+ map: never;
1694
+ filter: never;
1695
+ reduce: never;
1696
+ reduceRight: never;
1697
+ find: never;
1698
+ findIndex: never;
1699
+ fill: never;
1700
+ copyWithin: never;
1701
+ entries: never;
1702
+ keys: never;
1703
+ values: never;
1704
+ includes: never;
1705
+ flatMap: never;
1706
+ flat: never;
1707
+ [Symbol.iterator]: never;
1708
+ readonly [Symbol.unscopables]: {
1709
+ [x: number]: boolean;
1710
+ length?: boolean;
1711
+ toString?: boolean;
1712
+ toLocaleString?: boolean;
1713
+ pop?: boolean;
1714
+ push?: boolean;
1715
+ concat?: boolean;
1716
+ join?: boolean;
1717
+ reverse?: boolean;
1718
+ shift?: boolean;
1719
+ slice?: boolean;
1720
+ sort?: boolean;
1721
+ splice?: boolean;
1722
+ unshift?: boolean;
1723
+ indexOf?: boolean;
1724
+ lastIndexOf?: boolean;
1725
+ every?: boolean;
1726
+ some?: boolean;
1727
+ forEach?: boolean;
1728
+ map?: boolean;
1729
+ filter?: boolean;
1730
+ reduce?: boolean;
1731
+ reduceRight?: boolean;
1732
+ find?: boolean;
1733
+ findIndex?: boolean;
1734
+ fill?: boolean;
1735
+ copyWithin?: boolean;
1736
+ entries?: boolean;
1737
+ keys?: boolean;
1738
+ values?: boolean;
1739
+ includes?: boolean;
1740
+ flatMap?: boolean;
1741
+ flat?: boolean;
1742
+ };
1743
+ };
1744
+ } | {
1745
+ [x: number]: string | number | boolean | {
1746
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1747
+ } | /*elided*/ any;
1748
+ length: number;
1749
+ toString: never;
1750
+ toLocaleString: never;
1751
+ pop: never;
1752
+ push: never;
1753
+ concat: never;
1754
+ join: never;
1755
+ reverse: never;
1756
+ shift: never;
1757
+ slice: never;
1758
+ sort: never;
1759
+ splice: never;
1760
+ unshift: never;
1761
+ indexOf: never;
1762
+ lastIndexOf: never;
1763
+ every: never;
1764
+ some: never;
1765
+ forEach: never;
1766
+ map: never;
1767
+ filter: never;
1768
+ reduce: never;
1769
+ reduceRight: never;
1770
+ find: never;
1771
+ findIndex: never;
1772
+ fill: never;
1773
+ copyWithin: never;
1774
+ entries: never;
1775
+ keys: never;
1776
+ values: never;
1777
+ includes: never;
1778
+ flatMap: never;
1779
+ flat: never;
1780
+ [Symbol.iterator]: never;
1781
+ readonly [Symbol.unscopables]: {
1782
+ [x: number]: boolean;
1783
+ length?: boolean;
1784
+ toString?: boolean;
1785
+ toLocaleString?: boolean;
1786
+ pop?: boolean;
1787
+ push?: boolean;
1788
+ concat?: boolean;
1789
+ join?: boolean;
1790
+ reverse?: boolean;
1791
+ shift?: boolean;
1792
+ slice?: boolean;
1793
+ sort?: boolean;
1794
+ splice?: boolean;
1795
+ unshift?: boolean;
1796
+ indexOf?: boolean;
1797
+ lastIndexOf?: boolean;
1798
+ every?: boolean;
1799
+ some?: boolean;
1800
+ forEach?: boolean;
1801
+ map?: boolean;
1802
+ filter?: boolean;
1803
+ reduce?: boolean;
1804
+ reduceRight?: boolean;
1805
+ find?: boolean;
1806
+ findIndex?: boolean;
1807
+ fill?: boolean;
1808
+ copyWithin?: boolean;
1809
+ entries?: boolean;
1810
+ keys?: boolean;
1811
+ values?: boolean;
1812
+ includes?: boolean;
1813
+ flatMap?: boolean;
1814
+ flat?: boolean;
1815
+ };
1816
+ };
1817
+ };
1818
+ name: string | null;
1819
+ id: string;
1820
+ createdAt: string;
1821
+ updatedAt: string;
1822
+ deletedAt: string;
1823
+ isActive: boolean;
1824
+ thumbnailUrl: string | null;
1825
+ productId: string;
1826
+ sku: string;
1827
+ trackInventory: boolean;
1828
+ lowStockThreshold: number | null;
1829
+ };
1830
+ quantity: number;
1831
+ basePrice: number;
1832
+ discountPercent: number;
1833
+ finalPrice: number;
1834
+ subtotal: number;
1835
+ }[];
1836
+ pricing: {
1837
+ subtotal: number;
1838
+ deliveryCharge: number;
1839
+ discount: {
1840
+ code: string;
1841
+ type: "percentage" | "fixed";
1842
+ value: number;
1843
+ amount: number;
1844
+ description: string | null;
1845
+ };
1846
+ total: number;
1847
+ };
1848
+ createdAt: string;
1849
+ updatedAt: string;
1850
+ expiresAt: string;
1851
+ convertedToOrderId: string;
1852
+ wasRecovered: boolean;
1853
+ recoveryUrl: string;
1854
+ };
1855
+ }, Error, {
1856
+ itemId: string;
1857
+ quantity: number;
1858
+ }, unknown>;
1859
+ /**
1860
+ * Hook to remove item from cart using RPC
1861
+ *
1862
+ * @param cartId - Cart UUID
1863
+ * @param options - React Query mutation options
1864
+ *
1865
+ * @example
1866
+ * ```tsx
1867
+ * const removeItem = useRemoveCartItem('cart-123');
1868
+ * removeItem.mutate('item-456'); // Pass itemId in mutate call
1869
+ * ```
1870
+ */
1871
+ export declare function useRemoveCartItem(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof removeCartItem>>, Error, string>): import("@tanstack/react-query").UseMutationResult<{
1872
+ cart: {
1873
+ id: string;
1874
+ brand: {
1875
+ createdAt: string;
1876
+ updatedAt: string;
1877
+ deletedAt: string;
1878
+ name: string;
1879
+ id: string;
1880
+ slug: string;
1881
+ logoUrl: string | null;
1882
+ siteUrl: string;
1883
+ domain: string;
1884
+ metaPixelId: string | null;
1885
+ };
1886
+ customerPhone: string;
1887
+ customerEmail: string;
1888
+ customerFirstName: string;
1889
+ customerLastName: string;
1890
+ availablePaymentMethods: import("@prisma/client").$Enums.PaymentMethod[];
1891
+ deliveryZone: {
1892
+ id: string;
1893
+ name: string;
1894
+ };
1895
+ recoveryAttempts: number;
1896
+ lastRecoveryAttemptAt: string;
1897
+ recoveryDiscountCode: {
1898
+ id: string;
1899
+ createdAt: string;
1900
+ updatedAt: string;
1901
+ deletedAt: string;
1902
+ brandId: string | null;
1903
+ isActive: boolean;
1904
+ code: string;
1905
+ type: string;
1906
+ value: string;
1907
+ minPurchase: string;
1908
+ maxDiscount: string;
1909
+ usageLimit: number | null;
1910
+ usageCount: number;
1911
+ perCustomerLimit: number | null;
1912
+ validFrom: string;
1913
+ validUntil: string;
1914
+ isAutoApply: boolean;
1915
+ description: string | null;
1916
+ category: string;
1917
+ createdBy: string | null;
1918
+ };
1919
+ items: {
1920
+ id: string;
1921
+ variant: {
1922
+ price: number;
1923
+ product: {
1924
+ name: string;
1925
+ id: string;
1926
+ slug: string;
1927
+ createdAt: string;
1928
+ updatedAt: string;
1929
+ deletedAt: string;
1930
+ brandId: string;
1931
+ isActive: boolean;
1932
+ description: string | null;
1933
+ thumbnailUrl: string | null;
1934
+ quantityDiscounts: string | number | boolean | {
1935
+ [x: string]: string | number | boolean | /*elided*/ any | {
1936
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
1937
+ length: number;
1938
+ toString: never;
1939
+ toLocaleString: never;
1940
+ pop: never;
1941
+ push: never;
1942
+ concat: never;
1943
+ join: never;
1944
+ reverse: never;
1945
+ shift: never;
1946
+ slice: never;
1947
+ sort: never;
1948
+ splice: never;
1949
+ unshift: never;
1950
+ indexOf: never;
1951
+ lastIndexOf: never;
1952
+ every: never;
1953
+ some: never;
1954
+ forEach: never;
1955
+ map: never;
1956
+ filter: never;
1957
+ reduce: never;
1958
+ reduceRight: never;
1959
+ find: never;
1960
+ findIndex: never;
1961
+ fill: never;
1962
+ copyWithin: never;
1963
+ entries: never;
1964
+ keys: never;
1965
+ values: never;
1966
+ includes: never;
1967
+ flatMap: never;
1968
+ flat: never;
1969
+ [Symbol.iterator]: never;
1970
+ readonly [Symbol.unscopables]: {
1971
+ [x: number]: boolean;
1972
+ length?: boolean;
1973
+ toString?: boolean;
1974
+ toLocaleString?: boolean;
1975
+ pop?: boolean;
1976
+ push?: boolean;
1977
+ concat?: boolean;
1978
+ join?: boolean;
1979
+ reverse?: boolean;
1980
+ shift?: boolean;
1981
+ slice?: boolean;
1982
+ sort?: boolean;
1983
+ splice?: boolean;
1984
+ unshift?: boolean;
1985
+ indexOf?: boolean;
1986
+ lastIndexOf?: boolean;
1987
+ every?: boolean;
1988
+ some?: boolean;
1989
+ forEach?: boolean;
1990
+ map?: boolean;
1991
+ filter?: boolean;
1992
+ reduce?: boolean;
1993
+ reduceRight?: boolean;
1994
+ find?: boolean;
1995
+ findIndex?: boolean;
1996
+ fill?: boolean;
1997
+ copyWithin?: boolean;
1998
+ entries?: boolean;
1999
+ keys?: boolean;
2000
+ values?: boolean;
2001
+ includes?: boolean;
2002
+ flatMap?: boolean;
2003
+ flat?: boolean;
2004
+ };
2005
+ };
2006
+ } | {
2007
+ [x: number]: string | number | boolean | {
2008
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2009
+ } | /*elided*/ any;
2010
+ length: number;
2011
+ toString: never;
2012
+ toLocaleString: never;
2013
+ pop: never;
2014
+ push: never;
2015
+ concat: never;
2016
+ join: never;
2017
+ reverse: never;
2018
+ shift: never;
2019
+ slice: never;
2020
+ sort: never;
2021
+ splice: never;
2022
+ unshift: never;
2023
+ indexOf: never;
2024
+ lastIndexOf: never;
2025
+ every: never;
2026
+ some: never;
2027
+ forEach: never;
2028
+ map: never;
2029
+ filter: never;
2030
+ reduce: never;
2031
+ reduceRight: never;
2032
+ find: never;
2033
+ findIndex: never;
2034
+ fill: never;
2035
+ copyWithin: never;
2036
+ entries: never;
2037
+ keys: never;
2038
+ values: never;
2039
+ includes: never;
2040
+ flatMap: never;
2041
+ flat: never;
2042
+ [Symbol.iterator]: never;
2043
+ readonly [Symbol.unscopables]: {
2044
+ [x: number]: boolean;
2045
+ length?: boolean;
2046
+ toString?: boolean;
2047
+ toLocaleString?: boolean;
2048
+ pop?: boolean;
2049
+ push?: boolean;
2050
+ concat?: boolean;
2051
+ join?: boolean;
2052
+ reverse?: boolean;
2053
+ shift?: boolean;
2054
+ slice?: boolean;
2055
+ sort?: boolean;
2056
+ splice?: boolean;
2057
+ unshift?: boolean;
2058
+ indexOf?: boolean;
2059
+ lastIndexOf?: boolean;
2060
+ every?: boolean;
2061
+ some?: boolean;
2062
+ forEach?: boolean;
2063
+ map?: boolean;
2064
+ filter?: boolean;
2065
+ reduce?: boolean;
2066
+ reduceRight?: boolean;
2067
+ find?: boolean;
2068
+ findIndex?: boolean;
2069
+ fill?: boolean;
2070
+ copyWithin?: boolean;
2071
+ entries?: boolean;
2072
+ keys?: boolean;
2073
+ values?: boolean;
2074
+ includes?: boolean;
2075
+ flatMap?: boolean;
2076
+ flat?: boolean;
2077
+ };
2078
+ };
2079
+ };
2080
+ name: string | null;
2081
+ id: string;
2082
+ createdAt: string;
2083
+ updatedAt: string;
2084
+ deletedAt: string;
2085
+ isActive: boolean;
2086
+ thumbnailUrl: string | null;
2087
+ productId: string;
2088
+ sku: string;
2089
+ trackInventory: boolean;
2090
+ lowStockThreshold: number | null;
2091
+ };
2092
+ quantity: number;
2093
+ basePrice: number;
2094
+ discountPercent: number;
2095
+ finalPrice: number;
2096
+ subtotal: number;
2097
+ }[];
2098
+ pricing: {
2099
+ subtotal: number;
2100
+ deliveryCharge: number;
2101
+ discount: {
2102
+ code: string;
2103
+ type: "percentage" | "fixed";
2104
+ value: number;
2105
+ amount: number;
2106
+ description: string | null;
2107
+ };
2108
+ total: number;
2109
+ };
2110
+ createdAt: string;
2111
+ updatedAt: string;
2112
+ expiresAt: string;
2113
+ convertedToOrderId: string;
2114
+ wasRecovered: boolean;
2115
+ recoveryUrl: string;
2116
+ };
2117
+ }, Error, string, unknown>;
2118
+ /**
2119
+ * Hook to checkout a cart and create an order using RPC
2120
+ *
2121
+ * @param cartId - Cart UUID
2122
+ * @param options - React Query mutation options
2123
+ *
2124
+ * @example
2125
+ * ```tsx
2126
+ * const checkout = useCheckoutCart('cart-123');
2127
+ * checkout.mutate({
2128
+ * firstName: 'John',
2129
+ * lastName: 'Doe',
2130
+ * email: 'john@example.com',
2131
+ * phone: '+1234567890',
2132
+ * address: '123 Main St',
2133
+ * city: 'New York',
2134
+ * deliveryZoneId: 'zone-123',
2135
+ * paymentMethod: 'cod'
2136
+ * });
2137
+ * ```
2138
+ */
2139
+ export declare function useCheckoutCart(cartId: string, options?: UseMutationOptions<Awaited<ReturnType<typeof checkoutCart>>, Error, Parameters<typeof checkoutCart>[1]>): import("@tanstack/react-query").UseMutationResult<{
2140
+ subtotal: number;
2141
+ deliveryCharge: number;
2142
+ totalPrice: number;
2143
+ discountAmount: number;
2144
+ createdAt: string;
2145
+ updatedAt: string;
2146
+ deletedAt: string;
2147
+ prospectSince: string;
2148
+ lastRecoveryAttemptAt: string;
2149
+ brand: {
2150
+ createdAt: string;
2151
+ updatedAt: string;
2152
+ deletedAt: string;
2153
+ name: string;
2154
+ id: string;
2155
+ slug: string;
2156
+ logoUrl: string | null;
2157
+ siteUrl: string;
2158
+ domain: string;
2159
+ metaPixelId: string | null;
2160
+ };
2161
+ deliveryZone: {
2162
+ deliveryCost: number;
2163
+ freeShippingThreshold: number;
2164
+ createdAt: string;
2165
+ updatedAt: string;
2166
+ deletedAt: string;
2167
+ state: {
2168
+ createdAt: string;
2169
+ updatedAt: string;
2170
+ deletedAt: string;
2171
+ name: string;
2172
+ id: string;
2173
+ isActive: boolean;
2174
+ };
2175
+ name: string;
2176
+ id: string;
2177
+ brandId: string | null;
2178
+ stateId: string;
2179
+ allowCOD: boolean;
2180
+ allowOnline: boolean;
2181
+ waybillOnly: boolean;
2182
+ estimatedDays: number | null;
2183
+ isActive: boolean;
2184
+ };
2185
+ items: {
2186
+ priceAtPurchase: number;
2187
+ variant: {
2188
+ price: number;
2189
+ createdAt: string;
2190
+ updatedAt: string;
2191
+ deletedAt: string;
2192
+ product: {
2193
+ createdAt: string;
2194
+ updatedAt: string;
2195
+ deletedAt: string;
2196
+ name: string;
2197
+ id: string;
2198
+ slug: string;
2199
+ brandId: string;
2200
+ isActive: boolean;
2201
+ description: string | null;
2202
+ thumbnailUrl: string | null;
2203
+ quantityDiscounts: string | number | boolean | {
2204
+ [x: string]: string | number | boolean | /*elided*/ any | {
2205
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2206
+ length: number;
2207
+ toString: never;
2208
+ toLocaleString: never;
2209
+ pop: never;
2210
+ push: never;
2211
+ concat: never;
2212
+ join: never;
2213
+ reverse: never;
2214
+ shift: never;
2215
+ slice: never;
2216
+ sort: never;
2217
+ splice: never;
2218
+ unshift: never;
2219
+ indexOf: never;
2220
+ lastIndexOf: never;
2221
+ every: never;
2222
+ some: never;
2223
+ forEach: never;
2224
+ map: never;
2225
+ filter: never;
2226
+ reduce: never;
2227
+ reduceRight: never;
2228
+ find: never;
2229
+ findIndex: never;
2230
+ fill: never;
2231
+ copyWithin: never;
2232
+ entries: never;
2233
+ keys: never;
2234
+ values: never;
2235
+ includes: never;
2236
+ flatMap: never;
2237
+ flat: never;
2238
+ [Symbol.iterator]: never;
2239
+ readonly [Symbol.unscopables]: {
2240
+ [x: number]: boolean;
2241
+ length?: boolean;
2242
+ toString?: boolean;
2243
+ toLocaleString?: boolean;
2244
+ pop?: boolean;
2245
+ push?: boolean;
2246
+ concat?: boolean;
2247
+ join?: boolean;
2248
+ reverse?: boolean;
2249
+ shift?: boolean;
2250
+ slice?: boolean;
2251
+ sort?: boolean;
2252
+ splice?: boolean;
2253
+ unshift?: boolean;
2254
+ indexOf?: boolean;
2255
+ lastIndexOf?: boolean;
2256
+ every?: boolean;
2257
+ some?: boolean;
2258
+ forEach?: boolean;
2259
+ map?: boolean;
2260
+ filter?: boolean;
2261
+ reduce?: boolean;
2262
+ reduceRight?: boolean;
2263
+ find?: boolean;
2264
+ findIndex?: boolean;
2265
+ fill?: boolean;
2266
+ copyWithin?: boolean;
2267
+ entries?: boolean;
2268
+ keys?: boolean;
2269
+ values?: boolean;
2270
+ includes?: boolean;
2271
+ flatMap?: boolean;
2272
+ flat?: boolean;
2273
+ };
2274
+ };
2275
+ } | {
2276
+ [x: number]: string | number | boolean | {
2277
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2278
+ } | /*elided*/ any;
2279
+ length: number;
2280
+ toString: never;
2281
+ toLocaleString: never;
2282
+ pop: never;
2283
+ push: never;
2284
+ concat: never;
2285
+ join: never;
2286
+ reverse: never;
2287
+ shift: never;
2288
+ slice: never;
2289
+ sort: never;
2290
+ splice: never;
2291
+ unshift: never;
2292
+ indexOf: never;
2293
+ lastIndexOf: never;
2294
+ every: never;
2295
+ some: never;
2296
+ forEach: never;
2297
+ map: never;
2298
+ filter: never;
2299
+ reduce: never;
2300
+ reduceRight: never;
2301
+ find: never;
2302
+ findIndex: never;
2303
+ fill: never;
2304
+ copyWithin: never;
2305
+ entries: never;
2306
+ keys: never;
2307
+ values: never;
2308
+ includes: never;
2309
+ flatMap: never;
2310
+ flat: never;
2311
+ [Symbol.iterator]: never;
2312
+ readonly [Symbol.unscopables]: {
2313
+ [x: number]: boolean;
2314
+ length?: boolean;
2315
+ toString?: boolean;
2316
+ toLocaleString?: boolean;
2317
+ pop?: boolean;
2318
+ push?: boolean;
2319
+ concat?: boolean;
2320
+ join?: boolean;
2321
+ reverse?: boolean;
2322
+ shift?: boolean;
2323
+ slice?: boolean;
2324
+ sort?: boolean;
2325
+ splice?: boolean;
2326
+ unshift?: boolean;
2327
+ indexOf?: boolean;
2328
+ lastIndexOf?: boolean;
2329
+ every?: boolean;
2330
+ some?: boolean;
2331
+ forEach?: boolean;
2332
+ map?: boolean;
2333
+ filter?: boolean;
2334
+ reduce?: boolean;
2335
+ reduceRight?: boolean;
2336
+ find?: boolean;
2337
+ findIndex?: boolean;
2338
+ fill?: boolean;
2339
+ copyWithin?: boolean;
2340
+ entries?: boolean;
2341
+ keys?: boolean;
2342
+ values?: boolean;
2343
+ includes?: boolean;
2344
+ flatMap?: boolean;
2345
+ flat?: boolean;
2346
+ };
2347
+ };
2348
+ };
2349
+ name: string | null;
2350
+ id: string;
2351
+ isActive: boolean;
2352
+ thumbnailUrl: string | null;
2353
+ productId: string;
2354
+ sku: string;
2355
+ trackInventory: boolean;
2356
+ lowStockThreshold: number | null;
2357
+ };
2358
+ warehouse: {
2359
+ createdAt: string;
2360
+ updatedAt: string;
2361
+ deletedAt: string;
2362
+ name: string;
2363
+ id: string;
2364
+ isActive: boolean;
2365
+ address: string | null;
2366
+ city: string | null;
2367
+ state: string | null;
2368
+ };
2369
+ id: string;
2370
+ orderId: string;
2371
+ variantId: string;
2372
+ warehouseId: string | null;
2373
+ quantity: number;
2374
+ }[];
2375
+ id: string;
2376
+ email: string | null;
2377
+ brandId: string;
2378
+ deliveryZoneId: string;
2379
+ recoveryAttempts: number;
2380
+ recoveryDiscountCodeId: string | null;
2381
+ wasRecovered: boolean;
2382
+ estimatedDays: number | null;
2383
+ orderNumber: number;
2384
+ firstName: string;
2385
+ lastName: string;
2386
+ phone: string;
2387
+ address: string;
2388
+ city: string;
2389
+ discountCodeId: string | null;
2390
+ paymentMethod: import("@prisma/client").$Enums.PaymentMethod;
2391
+ paystackReference: string | null;
2392
+ status: import("@prisma/client").$Enums.OrderStatus;
2393
+ cancellationReason: string | null;
2394
+ prospectReason: import("@prisma/client").$Enums.ProspectReason | null;
2395
+ userActionToken: string;
2396
+ }, Error, {
2397
+ firstName: string;
2398
+ lastName: string;
2399
+ phone?: string;
2400
+ email?: string;
2401
+ address: string;
2402
+ city: string;
2403
+ deliveryZoneId: string;
2404
+ paymentMethod: "cod" | "online";
2405
+ paystackReference?: string;
2406
+ ifUnmodifiedSince?: string;
2407
+ }, unknown>;