@instockng/api-client 1.0.0 → 1.0.1

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