@01.software/sdk 0.0.1-251008.100408

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.
@@ -0,0 +1,2396 @@
1
+ import { Sort, Where } from 'payload';
2
+ import * as _tanstack_react_query from '@tanstack/react-query';
3
+ import { QueryClient } from '@tanstack/react-query';
4
+ import { z } from 'zod';
5
+ import * as react from 'react';
6
+
7
+ /**
8
+ * This file was automatically generated by Payload.
9
+ * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
10
+ * and re-run `payload generate:types` to regenerate this file.
11
+ */
12
+ /**
13
+ * Supported timezones in IANA format.
14
+ *
15
+ * This interface was referenced by `Config`'s JSON-Schema
16
+ * via the `definition` "supportedTimezones".
17
+ */
18
+ type SupportedTimezones = 'Pacific/Midway' | 'Pacific/Niue' | 'Pacific/Honolulu' | 'Pacific/Rarotonga' | 'America/Anchorage' | 'Pacific/Gambier' | 'America/Los_Angeles' | 'America/Tijuana' | 'America/Denver' | 'America/Phoenix' | 'America/Chicago' | 'America/Guatemala' | 'America/New_York' | 'America/Bogota' | 'America/Caracas' | 'America/Santiago' | 'America/Buenos_Aires' | 'America/Sao_Paulo' | 'Atlantic/South_Georgia' | 'Atlantic/Azores' | 'Atlantic/Cape_Verde' | 'Europe/London' | 'Europe/Berlin' | 'Africa/Lagos' | 'Europe/Athens' | 'Africa/Cairo' | 'Europe/Moscow' | 'Asia/Riyadh' | 'Asia/Dubai' | 'Asia/Baku' | 'Asia/Karachi' | 'Asia/Tashkent' | 'Asia/Calcutta' | 'Asia/Dhaka' | 'Asia/Almaty' | 'Asia/Jakarta' | 'Asia/Bangkok' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Tokyo' | 'Asia/Seoul' | 'Australia/Brisbane' | 'Australia/Sydney' | 'Pacific/Guam' | 'Pacific/Noumea' | 'Pacific/Auckland' | 'Pacific/Fiji';
19
+ interface Config {
20
+ auth: {
21
+ users: UserAuthOperations;
22
+ };
23
+ blocks: {};
24
+ collections: {
25
+ users: User;
26
+ products: Product;
27
+ 'product-categories': ProductCategory;
28
+ 'product-images': ProductImage;
29
+ 'product-variants': ProductVariant;
30
+ 'product-options': ProductOption;
31
+ 'static-assets': StaticAsset;
32
+ orders: Order;
33
+ 'order-products': OrderProduct;
34
+ returns: Return;
35
+ 'return-products': ReturnProduct;
36
+ transactions: Transaction;
37
+ brands: Brand;
38
+ 'brand-logos': BrandLogo;
39
+ 'brand-og-images': BrandOgImage;
40
+ 'brand-settings': BrandSetting;
41
+ links: Link;
42
+ 'link-images': LinkImage;
43
+ playlists: Playlist;
44
+ 'playlist-images': PlaylistImage;
45
+ musics: Music;
46
+ forms: Form;
47
+ 'form-submissions': FormSubmission;
48
+ 'payload-locked-documents': PayloadLockedDocument;
49
+ 'payload-preferences': PayloadPreference;
50
+ 'payload-migrations': PayloadMigration;
51
+ };
52
+ collectionsJoins: {
53
+ products: {
54
+ relatedVariants: 'product-variants';
55
+ };
56
+ 'product-categories': {
57
+ relatedProducts: 'products';
58
+ };
59
+ 'product-variants': {
60
+ relatedOptions: 'product-options';
61
+ };
62
+ orders: {
63
+ products: 'order-products';
64
+ transactions: 'transactions';
65
+ returns: 'returns';
66
+ };
67
+ brands: {
68
+ settings: 'brand-settings';
69
+ };
70
+ playlists: {
71
+ musics: 'musics';
72
+ };
73
+ };
74
+ collectionsSelect: {
75
+ users: UsersSelect<false> | UsersSelect<true>;
76
+ products: ProductsSelect<false> | ProductsSelect<true>;
77
+ 'product-categories': ProductCategoriesSelect<false> | ProductCategoriesSelect<true>;
78
+ 'product-images': ProductImagesSelect<false> | ProductImagesSelect<true>;
79
+ 'product-variants': ProductVariantsSelect<false> | ProductVariantsSelect<true>;
80
+ 'product-options': ProductOptionsSelect<false> | ProductOptionsSelect<true>;
81
+ 'static-assets': StaticAssetsSelect<false> | StaticAssetsSelect<true>;
82
+ orders: OrdersSelect<false> | OrdersSelect<true>;
83
+ 'order-products': OrderProductsSelect<false> | OrderProductsSelect<true>;
84
+ returns: ReturnsSelect<false> | ReturnsSelect<true>;
85
+ 'return-products': ReturnProductsSelect<false> | ReturnProductsSelect<true>;
86
+ transactions: TransactionsSelect<false> | TransactionsSelect<true>;
87
+ brands: BrandsSelect<false> | BrandsSelect<true>;
88
+ 'brand-logos': BrandLogosSelect<false> | BrandLogosSelect<true>;
89
+ 'brand-og-images': BrandOgImagesSelect<false> | BrandOgImagesSelect<true>;
90
+ 'brand-settings': BrandSettingsSelect<false> | BrandSettingsSelect<true>;
91
+ links: LinksSelect<false> | LinksSelect<true>;
92
+ 'link-images': LinkImagesSelect<false> | LinkImagesSelect<true>;
93
+ playlists: PlaylistsSelect<false> | PlaylistsSelect<true>;
94
+ 'playlist-images': PlaylistImagesSelect<false> | PlaylistImagesSelect<true>;
95
+ musics: MusicsSelect<false> | MusicsSelect<true>;
96
+ forms: FormsSelect<false> | FormsSelect<true>;
97
+ 'form-submissions': FormSubmissionsSelect<false> | FormSubmissionsSelect<true>;
98
+ 'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
99
+ 'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
100
+ 'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
101
+ };
102
+ db: {
103
+ defaultIDType: number;
104
+ };
105
+ globals: {};
106
+ globalsSelect: {};
107
+ locale: null;
108
+ user: User & {
109
+ collection: 'users';
110
+ };
111
+ jobs: {
112
+ tasks: unknown;
113
+ workflows: unknown;
114
+ };
115
+ }
116
+ interface UserAuthOperations {
117
+ forgotPassword: {
118
+ email: string;
119
+ password: string;
120
+ };
121
+ login: {
122
+ email: string;
123
+ password: string;
124
+ };
125
+ registerFirstUser: {
126
+ email: string;
127
+ password: string;
128
+ };
129
+ unlock: {
130
+ email: string;
131
+ password: string;
132
+ };
133
+ }
134
+ /**
135
+ * This interface was referenced by `Config`'s JSON-Schema
136
+ * via the `definition` "users".
137
+ */
138
+ interface User {
139
+ id: number;
140
+ name?: string | null;
141
+ role?: ('admin' | 'editor' | 'viewer') | null;
142
+ brand?: (number | null) | Brand;
143
+ updatedAt: string;
144
+ createdAt: string;
145
+ email: string;
146
+ resetPasswordToken?: string | null;
147
+ resetPasswordExpiration?: string | null;
148
+ salt?: string | null;
149
+ hash?: string | null;
150
+ loginAttempts?: number | null;
151
+ lockUntil?: string | null;
152
+ sessions?: {
153
+ id: string;
154
+ createdAt?: string | null;
155
+ expiresAt: string;
156
+ }[] | null;
157
+ password?: string | null;
158
+ }
159
+ /**
160
+ * This interface was referenced by `Config`'s JSON-Schema
161
+ * via the `definition` "brands".
162
+ */
163
+ interface Brand {
164
+ id: number;
165
+ title: string;
166
+ description?: string | null;
167
+ clientKey: string;
168
+ secretKey?: string | null;
169
+ domain: string;
170
+ settings?: {
171
+ docs?: (number | BrandSetting)[];
172
+ hasNextPage?: boolean;
173
+ totalDocs?: number;
174
+ };
175
+ updatedAt: string;
176
+ createdAt: string;
177
+ }
178
+ /**
179
+ * This interface was referenced by `Config`'s JSON-Schema
180
+ * via the `definition` "brand-settings".
181
+ */
182
+ interface BrandSetting {
183
+ id: number;
184
+ brand?: (number | null) | Brand;
185
+ title: string;
186
+ description?: string | null;
187
+ keywords?: string[] | null;
188
+ /**
189
+ * 512x512
190
+ */
191
+ logo?: (number | null) | BrandLogo;
192
+ /**
193
+ * 1200x630
194
+ */
195
+ ogImage?: (number | null) | BrandOgImage;
196
+ updatedAt: string;
197
+ createdAt: string;
198
+ }
199
+ /**
200
+ * This interface was referenced by `Config`'s JSON-Schema
201
+ * via the `definition` "brand-logos".
202
+ */
203
+ interface BrandLogo {
204
+ id: number;
205
+ brand?: (number | null) | Brand;
206
+ alt?: string | null;
207
+ lqip?: string | null;
208
+ prefix?: string | null;
209
+ updatedAt: string;
210
+ createdAt: string;
211
+ url?: string | null;
212
+ thumbnailURL?: string | null;
213
+ filename?: string | null;
214
+ mimeType?: string | null;
215
+ filesize?: number | null;
216
+ width?: number | null;
217
+ height?: number | null;
218
+ focalX?: number | null;
219
+ focalY?: number | null;
220
+ sizes?: {
221
+ favicon?: {
222
+ url?: string | null;
223
+ width?: number | null;
224
+ height?: number | null;
225
+ mimeType?: string | null;
226
+ filesize?: number | null;
227
+ filename?: string | null;
228
+ };
229
+ icon?: {
230
+ url?: string | null;
231
+ width?: number | null;
232
+ height?: number | null;
233
+ mimeType?: string | null;
234
+ filesize?: number | null;
235
+ filename?: string | null;
236
+ };
237
+ thumb?: {
238
+ url?: string | null;
239
+ width?: number | null;
240
+ height?: number | null;
241
+ mimeType?: string | null;
242
+ filesize?: number | null;
243
+ filename?: string | null;
244
+ };
245
+ };
246
+ }
247
+ /**
248
+ * This interface was referenced by `Config`'s JSON-Schema
249
+ * via the `definition` "brand-og-images".
250
+ */
251
+ interface BrandOgImage {
252
+ id: number;
253
+ brand?: (number | null) | Brand;
254
+ alt?: string | null;
255
+ lqip?: string | null;
256
+ prefix?: string | null;
257
+ updatedAt: string;
258
+ createdAt: string;
259
+ url?: string | null;
260
+ thumbnailURL?: string | null;
261
+ filename?: string | null;
262
+ mimeType?: string | null;
263
+ filesize?: number | null;
264
+ width?: number | null;
265
+ height?: number | null;
266
+ focalX?: number | null;
267
+ focalY?: number | null;
268
+ sizes?: {
269
+ ogImage?: {
270
+ url?: string | null;
271
+ width?: number | null;
272
+ height?: number | null;
273
+ mimeType?: string | null;
274
+ filesize?: number | null;
275
+ filename?: string | null;
276
+ };
277
+ };
278
+ }
279
+ /**
280
+ * This interface was referenced by `Config`'s JSON-Schema
281
+ * via the `definition` "products".
282
+ */
283
+ interface Product {
284
+ id: number;
285
+ brand?: (number | null) | Brand;
286
+ status?: ('draft' | 'published' | 'archived') | null;
287
+ sku: string;
288
+ slug?: string | null;
289
+ title: string;
290
+ subTitle?: string | null;
291
+ description?: string | null;
292
+ price: number;
293
+ categories?: (number | ProductCategory)[] | null;
294
+ relatedVariants?: {
295
+ docs?: (number | ProductVariant)[];
296
+ hasNextPage?: boolean;
297
+ totalDocs?: number;
298
+ };
299
+ updatedAt: string;
300
+ createdAt: string;
301
+ }
302
+ /**
303
+ * This interface was referenced by `Config`'s JSON-Schema
304
+ * via the `definition` "product-categories".
305
+ */
306
+ interface ProductCategory {
307
+ id: number;
308
+ _order?: string | null;
309
+ brand?: (number | null) | Brand;
310
+ title?: string | null;
311
+ description?: string | null;
312
+ relatedProducts?: {
313
+ docs?: (number | Product)[];
314
+ hasNextPage?: boolean;
315
+ totalDocs?: number;
316
+ };
317
+ updatedAt: string;
318
+ createdAt: string;
319
+ }
320
+ /**
321
+ * This interface was referenced by `Config`'s JSON-Schema
322
+ * via the `definition` "product-variants".
323
+ */
324
+ interface ProductVariant {
325
+ id: number;
326
+ brand?: (number | null) | Brand;
327
+ product: number | Product;
328
+ title: string;
329
+ images: (number | ProductImage)[];
330
+ relatedOptions?: {
331
+ docs?: (number | ProductOption)[];
332
+ hasNextPage?: boolean;
333
+ totalDocs?: number;
334
+ };
335
+ updatedAt: string;
336
+ createdAt: string;
337
+ }
338
+ /**
339
+ * This interface was referenced by `Config`'s JSON-Schema
340
+ * via the `definition` "product-images".
341
+ */
342
+ interface ProductImage {
343
+ id: number;
344
+ brand?: (number | null) | Brand;
345
+ alt?: string | null;
346
+ lqip?: string | null;
347
+ prefix?: string | null;
348
+ updatedAt: string;
349
+ createdAt: string;
350
+ url?: string | null;
351
+ thumbnailURL?: string | null;
352
+ filename?: string | null;
353
+ mimeType?: string | null;
354
+ filesize?: number | null;
355
+ width?: number | null;
356
+ height?: number | null;
357
+ focalX?: number | null;
358
+ focalY?: number | null;
359
+ sizes?: {
360
+ thumb?: {
361
+ url?: string | null;
362
+ width?: number | null;
363
+ height?: number | null;
364
+ mimeType?: string | null;
365
+ filesize?: number | null;
366
+ filename?: string | null;
367
+ };
368
+ card?: {
369
+ url?: string | null;
370
+ width?: number | null;
371
+ height?: number | null;
372
+ mimeType?: string | null;
373
+ filesize?: number | null;
374
+ filename?: string | null;
375
+ };
376
+ };
377
+ }
378
+ /**
379
+ * This interface was referenced by `Config`'s JSON-Schema
380
+ * via the `definition` "product-options".
381
+ */
382
+ interface ProductOption {
383
+ id: number;
384
+ '_product-options_relatedOptions_order'?: string | null;
385
+ brand: number | Brand;
386
+ product: number | Product;
387
+ variant: number | ProductVariant;
388
+ title: string;
389
+ stock: number;
390
+ updatedAt: string;
391
+ createdAt: string;
392
+ }
393
+ /**
394
+ * This interface was referenced by `Config`'s JSON-Schema
395
+ * via the `definition` "static-assets".
396
+ */
397
+ interface StaticAsset {
398
+ id: number;
399
+ name?: string | null;
400
+ prefix?: string | null;
401
+ updatedAt: string;
402
+ createdAt: string;
403
+ url?: string | null;
404
+ thumbnailURL?: string | null;
405
+ filename?: string | null;
406
+ mimeType?: string | null;
407
+ filesize?: number | null;
408
+ width?: number | null;
409
+ height?: number | null;
410
+ focalX?: number | null;
411
+ focalY?: number | null;
412
+ }
413
+ /**
414
+ * This interface was referenced by `Config`'s JSON-Schema
415
+ * via the `definition` "orders".
416
+ */
417
+ interface Order {
418
+ id: number;
419
+ brand: number | Brand;
420
+ orderNumber: string;
421
+ status: 'pending' | 'paid' | 'failed' | 'canceled' | 'preparing' | 'shipped' | 'delivered' | 'confirmed' | 'return_requested' | 'return_processing' | 'returned';
422
+ totalAmount?: number | null;
423
+ email?: string | null;
424
+ shippingAddress: {
425
+ postalCode: string;
426
+ address1: string;
427
+ address2?: string | null;
428
+ deliveryMessage?: string | null;
429
+ recipientName: string;
430
+ phone: string;
431
+ };
432
+ products?: {
433
+ docs?: (number | OrderProduct)[];
434
+ hasNextPage?: boolean;
435
+ totalDocs?: number;
436
+ };
437
+ transactions?: {
438
+ docs?: (number | Transaction)[];
439
+ hasNextPage?: boolean;
440
+ totalDocs?: number;
441
+ };
442
+ returns?: {
443
+ docs?: (number | Return)[];
444
+ hasNextPage?: boolean;
445
+ totalDocs?: number;
446
+ };
447
+ updatedAt: string;
448
+ createdAt: string;
449
+ }
450
+ /**
451
+ * This interface was referenced by `Config`'s JSON-Schema
452
+ * via the `definition` "order-products".
453
+ */
454
+ interface OrderProduct {
455
+ id: number;
456
+ brand: number | Brand;
457
+ order: number | Order;
458
+ product: number | Product;
459
+ variant: number | ProductVariant;
460
+ option: number | ProductOption;
461
+ quantity: number;
462
+ title?: string | null;
463
+ updatedAt: string;
464
+ createdAt: string;
465
+ }
466
+ /**
467
+ * This interface was referenced by `Config`'s JSON-Schema
468
+ * via the `definition` "transactions".
469
+ */
470
+ interface Transaction {
471
+ id: number;
472
+ brand: number | Brand;
473
+ status: 'pending' | 'paid' | 'failed' | 'canceled';
474
+ order: number | Order;
475
+ paymentId?: string | null;
476
+ paymentMethod?: string | null;
477
+ receiptUrl?: string | null;
478
+ totalAmount?: number | null;
479
+ updatedAt: string;
480
+ createdAt: string;
481
+ }
482
+ /**
483
+ * This interface was referenced by `Config`'s JSON-Schema
484
+ * via the `definition` "returns".
485
+ */
486
+ interface Return {
487
+ id: number;
488
+ brand: number | Brand;
489
+ order: number | Order;
490
+ reason?: string | null;
491
+ returnProducts?: {
492
+ orderProduct: number | OrderProduct;
493
+ quantity: number;
494
+ id?: string | null;
495
+ }[] | null;
496
+ refundAmount: number;
497
+ updatedAt: string;
498
+ createdAt: string;
499
+ }
500
+ /**
501
+ * This interface was referenced by `Config`'s JSON-Schema
502
+ * via the `definition` "return-products".
503
+ */
504
+ interface ReturnProduct {
505
+ id: number;
506
+ brand: number | Brand;
507
+ order: number | Order;
508
+ status: 'requested' | 'processing' | 'approved' | 'rejected';
509
+ orderProduct: number | OrderProduct;
510
+ product: number | Product;
511
+ variant: number | ProductVariant;
512
+ option: number | ProductOption;
513
+ quantity: number;
514
+ title?: string | null;
515
+ updatedAt: string;
516
+ createdAt: string;
517
+ }
518
+ /**
519
+ * This interface was referenced by `Config`'s JSON-Schema
520
+ * via the `definition` "links".
521
+ */
522
+ interface Link {
523
+ id: number;
524
+ brand?: (number | null) | Brand;
525
+ title: string;
526
+ /**
527
+ * 512x512
528
+ */
529
+ image?: (number | null) | LinkImage;
530
+ link: string;
531
+ updatedAt: string;
532
+ createdAt: string;
533
+ }
534
+ /**
535
+ * This interface was referenced by `Config`'s JSON-Schema
536
+ * via the `definition` "link-images".
537
+ */
538
+ interface LinkImage {
539
+ id: number;
540
+ brand?: (number | null) | Brand;
541
+ alt?: string | null;
542
+ lqip?: string | null;
543
+ prefix?: string | null;
544
+ updatedAt: string;
545
+ createdAt: string;
546
+ url?: string | null;
547
+ thumbnailURL?: string | null;
548
+ filename?: string | null;
549
+ mimeType?: string | null;
550
+ filesize?: number | null;
551
+ width?: number | null;
552
+ height?: number | null;
553
+ focalX?: number | null;
554
+ focalY?: number | null;
555
+ sizes?: {
556
+ thumb?: {
557
+ url?: string | null;
558
+ width?: number | null;
559
+ height?: number | null;
560
+ mimeType?: string | null;
561
+ filesize?: number | null;
562
+ filename?: string | null;
563
+ };
564
+ };
565
+ }
566
+ /**
567
+ * This interface was referenced by `Config`'s JSON-Schema
568
+ * via the `definition` "playlists".
569
+ */
570
+ interface Playlist {
571
+ id: number;
572
+ brand?: (number | null) | Brand;
573
+ image?: (number | null) | PlaylistImage;
574
+ title: string;
575
+ description?: string | null;
576
+ musics?: {
577
+ docs?: (number | Music)[];
578
+ hasNextPage?: boolean;
579
+ totalDocs?: number;
580
+ };
581
+ updatedAt: string;
582
+ createdAt: string;
583
+ }
584
+ /**
585
+ * This interface was referenced by `Config`'s JSON-Schema
586
+ * via the `definition` "playlist-images".
587
+ */
588
+ interface PlaylistImage {
589
+ id: number;
590
+ brand?: (number | null) | Brand;
591
+ alt?: string | null;
592
+ lqip?: string | null;
593
+ prefix?: string | null;
594
+ updatedAt: string;
595
+ createdAt: string;
596
+ url?: string | null;
597
+ thumbnailURL?: string | null;
598
+ filename?: string | null;
599
+ mimeType?: string | null;
600
+ filesize?: number | null;
601
+ width?: number | null;
602
+ height?: number | null;
603
+ focalX?: number | null;
604
+ focalY?: number | null;
605
+ sizes?: {
606
+ '512'?: {
607
+ url?: string | null;
608
+ width?: number | null;
609
+ height?: number | null;
610
+ mimeType?: string | null;
611
+ filesize?: number | null;
612
+ filename?: string | null;
613
+ };
614
+ '1024'?: {
615
+ url?: string | null;
616
+ width?: number | null;
617
+ height?: number | null;
618
+ mimeType?: string | null;
619
+ filesize?: number | null;
620
+ filename?: string | null;
621
+ };
622
+ };
623
+ }
624
+ /**
625
+ * This interface was referenced by `Config`'s JSON-Schema
626
+ * via the `definition` "musics".
627
+ */
628
+ interface Music {
629
+ id: number;
630
+ _musics_musics_order?: string | null;
631
+ brand?: (number | null) | Brand;
632
+ playlist?: (number | null) | Playlist;
633
+ url: string;
634
+ title: string;
635
+ artist?: string | null;
636
+ isValid?: boolean | null;
637
+ updatedAt: string;
638
+ createdAt: string;
639
+ }
640
+ /**
641
+ * This interface was referenced by `Config`'s JSON-Schema
642
+ * via the `definition` "forms".
643
+ */
644
+ interface Form {
645
+ id: number;
646
+ brand?: (number | null) | Brand;
647
+ title: string;
648
+ fields?: ({
649
+ name: string;
650
+ label?: string | null;
651
+ width?: number | null;
652
+ required?: boolean | null;
653
+ defaultValue?: boolean | null;
654
+ id?: string | null;
655
+ blockName?: string | null;
656
+ blockType: 'checkbox';
657
+ } | {
658
+ name: string;
659
+ label?: string | null;
660
+ width?: number | null;
661
+ required?: boolean | null;
662
+ id?: string | null;
663
+ blockName?: string | null;
664
+ blockType: 'country';
665
+ } | {
666
+ name: string;
667
+ label?: string | null;
668
+ width?: number | null;
669
+ required?: boolean | null;
670
+ id?: string | null;
671
+ blockName?: string | null;
672
+ blockType: 'email';
673
+ } | {
674
+ message?: {
675
+ root: {
676
+ type: string;
677
+ children: {
678
+ type: string;
679
+ version: number;
680
+ [k: string]: unknown;
681
+ }[];
682
+ direction: ('ltr' | 'rtl') | null;
683
+ format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
684
+ indent: number;
685
+ version: number;
686
+ };
687
+ [k: string]: unknown;
688
+ } | null;
689
+ id?: string | null;
690
+ blockName?: string | null;
691
+ blockType: 'message';
692
+ } | {
693
+ name: string;
694
+ label?: string | null;
695
+ width?: number | null;
696
+ defaultValue?: number | null;
697
+ required?: boolean | null;
698
+ id?: string | null;
699
+ blockName?: string | null;
700
+ blockType: 'number';
701
+ } | {
702
+ name: string;
703
+ label?: string | null;
704
+ width?: number | null;
705
+ defaultValue?: string | null;
706
+ placeholder?: string | null;
707
+ options?: {
708
+ label: string;
709
+ value: string;
710
+ id?: string | null;
711
+ }[] | null;
712
+ required?: boolean | null;
713
+ id?: string | null;
714
+ blockName?: string | null;
715
+ blockType: 'select';
716
+ } | {
717
+ name: string;
718
+ label?: string | null;
719
+ width?: number | null;
720
+ required?: boolean | null;
721
+ id?: string | null;
722
+ blockName?: string | null;
723
+ blockType: 'state';
724
+ } | {
725
+ name: string;
726
+ label?: string | null;
727
+ width?: number | null;
728
+ defaultValue?: string | null;
729
+ required?: boolean | null;
730
+ placeholder?: string | null;
731
+ id?: string | null;
732
+ blockName?: string | null;
733
+ blockType: 'text';
734
+ } | {
735
+ name: string;
736
+ label?: string | null;
737
+ width?: number | null;
738
+ defaultValue?: string | null;
739
+ required?: boolean | null;
740
+ id?: string | null;
741
+ blockName?: string | null;
742
+ blockType: 'textarea';
743
+ })[] | null;
744
+ submitButtonLabel?: string | null;
745
+ /**
746
+ * Choose whether to display an on-page message or redirect to a different page after they submit the form.
747
+ */
748
+ confirmationType?: ('message' | 'redirect') | null;
749
+ confirmationMessage?: {
750
+ root: {
751
+ type: string;
752
+ children: {
753
+ type: string;
754
+ version: number;
755
+ [k: string]: unknown;
756
+ }[];
757
+ direction: ('ltr' | 'rtl') | null;
758
+ format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
759
+ indent: number;
760
+ version: number;
761
+ };
762
+ [k: string]: unknown;
763
+ } | null;
764
+ redirect?: {
765
+ url: string;
766
+ };
767
+ /**
768
+ * Send custom emails when the form submits. Use comma separated lists to send the same email to multiple recipients. To reference a value from this form, wrap that field's name with double curly brackets, i.e. {{firstName}}. You can use a wildcard {{*}} to output all data and {{*:table}} to format it as an HTML table in the email.
769
+ */
770
+ emails?: {
771
+ emailTo?: string | null;
772
+ cc?: string | null;
773
+ bcc?: string | null;
774
+ replyTo?: string | null;
775
+ emailFrom?: string | null;
776
+ subject: string;
777
+ /**
778
+ * Enter the message that should be sent in this email.
779
+ */
780
+ message?: {
781
+ root: {
782
+ type: string;
783
+ children: {
784
+ type: string;
785
+ version: number;
786
+ [k: string]: unknown;
787
+ }[];
788
+ direction: ('ltr' | 'rtl') | null;
789
+ format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
790
+ indent: number;
791
+ version: number;
792
+ };
793
+ [k: string]: unknown;
794
+ } | null;
795
+ id?: string | null;
796
+ }[] | null;
797
+ updatedAt: string;
798
+ createdAt: string;
799
+ }
800
+ /**
801
+ * This interface was referenced by `Config`'s JSON-Schema
802
+ * via the `definition` "form-submissions".
803
+ */
804
+ interface FormSubmission {
805
+ id: number;
806
+ form: number | Form;
807
+ submissionData?: {
808
+ field: string;
809
+ value: string;
810
+ id?: string | null;
811
+ }[] | null;
812
+ updatedAt: string;
813
+ createdAt: string;
814
+ }
815
+ /**
816
+ * This interface was referenced by `Config`'s JSON-Schema
817
+ * via the `definition` "payload-locked-documents".
818
+ */
819
+ interface PayloadLockedDocument {
820
+ id: number;
821
+ document?: ({
822
+ relationTo: 'users';
823
+ value: number | User;
824
+ } | null) | ({
825
+ relationTo: 'products';
826
+ value: number | Product;
827
+ } | null) | ({
828
+ relationTo: 'product-categories';
829
+ value: number | ProductCategory;
830
+ } | null) | ({
831
+ relationTo: 'product-images';
832
+ value: number | ProductImage;
833
+ } | null) | ({
834
+ relationTo: 'product-variants';
835
+ value: number | ProductVariant;
836
+ } | null) | ({
837
+ relationTo: 'product-options';
838
+ value: number | ProductOption;
839
+ } | null) | ({
840
+ relationTo: 'static-assets';
841
+ value: number | StaticAsset;
842
+ } | null) | ({
843
+ relationTo: 'orders';
844
+ value: number | Order;
845
+ } | null) | ({
846
+ relationTo: 'order-products';
847
+ value: number | OrderProduct;
848
+ } | null) | ({
849
+ relationTo: 'returns';
850
+ value: number | Return;
851
+ } | null) | ({
852
+ relationTo: 'return-products';
853
+ value: number | ReturnProduct;
854
+ } | null) | ({
855
+ relationTo: 'transactions';
856
+ value: number | Transaction;
857
+ } | null) | ({
858
+ relationTo: 'brands';
859
+ value: number | Brand;
860
+ } | null) | ({
861
+ relationTo: 'brand-logos';
862
+ value: number | BrandLogo;
863
+ } | null) | ({
864
+ relationTo: 'brand-og-images';
865
+ value: number | BrandOgImage;
866
+ } | null) | ({
867
+ relationTo: 'brand-settings';
868
+ value: number | BrandSetting;
869
+ } | null) | ({
870
+ relationTo: 'links';
871
+ value: number | Link;
872
+ } | null) | ({
873
+ relationTo: 'link-images';
874
+ value: number | LinkImage;
875
+ } | null) | ({
876
+ relationTo: 'playlists';
877
+ value: number | Playlist;
878
+ } | null) | ({
879
+ relationTo: 'playlist-images';
880
+ value: number | PlaylistImage;
881
+ } | null) | ({
882
+ relationTo: 'musics';
883
+ value: number | Music;
884
+ } | null) | ({
885
+ relationTo: 'forms';
886
+ value: number | Form;
887
+ } | null) | ({
888
+ relationTo: 'form-submissions';
889
+ value: number | FormSubmission;
890
+ } | null);
891
+ globalSlug?: string | null;
892
+ user: {
893
+ relationTo: 'users';
894
+ value: number | User;
895
+ };
896
+ updatedAt: string;
897
+ createdAt: string;
898
+ }
899
+ /**
900
+ * This interface was referenced by `Config`'s JSON-Schema
901
+ * via the `definition` "payload-preferences".
902
+ */
903
+ interface PayloadPreference {
904
+ id: number;
905
+ user: {
906
+ relationTo: 'users';
907
+ value: number | User;
908
+ };
909
+ key?: string | null;
910
+ value?: {
911
+ [k: string]: unknown;
912
+ } | unknown[] | string | number | boolean | null;
913
+ updatedAt: string;
914
+ createdAt: string;
915
+ }
916
+ /**
917
+ * This interface was referenced by `Config`'s JSON-Schema
918
+ * via the `definition` "payload-migrations".
919
+ */
920
+ interface PayloadMigration {
921
+ id: number;
922
+ name?: string | null;
923
+ batch?: number | null;
924
+ updatedAt: string;
925
+ createdAt: string;
926
+ }
927
+ /**
928
+ * This interface was referenced by `Config`'s JSON-Schema
929
+ * via the `definition` "users_select".
930
+ */
931
+ interface UsersSelect<T extends boolean = true> {
932
+ name?: T;
933
+ role?: T;
934
+ brand?: T;
935
+ updatedAt?: T;
936
+ createdAt?: T;
937
+ email?: T;
938
+ resetPasswordToken?: T;
939
+ resetPasswordExpiration?: T;
940
+ salt?: T;
941
+ hash?: T;
942
+ loginAttempts?: T;
943
+ lockUntil?: T;
944
+ sessions?: T | {
945
+ id?: T;
946
+ createdAt?: T;
947
+ expiresAt?: T;
948
+ };
949
+ }
950
+ /**
951
+ * This interface was referenced by `Config`'s JSON-Schema
952
+ * via the `definition` "products_select".
953
+ */
954
+ interface ProductsSelect<T extends boolean = true> {
955
+ brand?: T;
956
+ status?: T;
957
+ sku?: T;
958
+ slug?: T;
959
+ title?: T;
960
+ subTitle?: T;
961
+ description?: T;
962
+ price?: T;
963
+ categories?: T;
964
+ relatedVariants?: T;
965
+ updatedAt?: T;
966
+ createdAt?: T;
967
+ }
968
+ /**
969
+ * This interface was referenced by `Config`'s JSON-Schema
970
+ * via the `definition` "product-categories_select".
971
+ */
972
+ interface ProductCategoriesSelect<T extends boolean = true> {
973
+ _order?: T;
974
+ brand?: T;
975
+ title?: T;
976
+ description?: T;
977
+ relatedProducts?: T;
978
+ updatedAt?: T;
979
+ createdAt?: T;
980
+ }
981
+ /**
982
+ * This interface was referenced by `Config`'s JSON-Schema
983
+ * via the `definition` "product-images_select".
984
+ */
985
+ interface ProductImagesSelect<T extends boolean = true> {
986
+ brand?: T;
987
+ alt?: T;
988
+ lqip?: T;
989
+ prefix?: T;
990
+ updatedAt?: T;
991
+ createdAt?: T;
992
+ url?: T;
993
+ thumbnailURL?: T;
994
+ filename?: T;
995
+ mimeType?: T;
996
+ filesize?: T;
997
+ width?: T;
998
+ height?: T;
999
+ focalX?: T;
1000
+ focalY?: T;
1001
+ sizes?: T | {
1002
+ thumb?: T | {
1003
+ url?: T;
1004
+ width?: T;
1005
+ height?: T;
1006
+ mimeType?: T;
1007
+ filesize?: T;
1008
+ filename?: T;
1009
+ };
1010
+ card?: T | {
1011
+ url?: T;
1012
+ width?: T;
1013
+ height?: T;
1014
+ mimeType?: T;
1015
+ filesize?: T;
1016
+ filename?: T;
1017
+ };
1018
+ };
1019
+ }
1020
+ /**
1021
+ * This interface was referenced by `Config`'s JSON-Schema
1022
+ * via the `definition` "product-variants_select".
1023
+ */
1024
+ interface ProductVariantsSelect<T extends boolean = true> {
1025
+ brand?: T;
1026
+ product?: T;
1027
+ title?: T;
1028
+ images?: T;
1029
+ relatedOptions?: T;
1030
+ updatedAt?: T;
1031
+ createdAt?: T;
1032
+ }
1033
+ /**
1034
+ * This interface was referenced by `Config`'s JSON-Schema
1035
+ * via the `definition` "product-options_select".
1036
+ */
1037
+ interface ProductOptionsSelect<T extends boolean = true> {
1038
+ '_product-options_relatedOptions_order'?: T;
1039
+ brand?: T;
1040
+ product?: T;
1041
+ variant?: T;
1042
+ title?: T;
1043
+ stock?: T;
1044
+ updatedAt?: T;
1045
+ createdAt?: T;
1046
+ }
1047
+ /**
1048
+ * This interface was referenced by `Config`'s JSON-Schema
1049
+ * via the `definition` "static-assets_select".
1050
+ */
1051
+ interface StaticAssetsSelect<T extends boolean = true> {
1052
+ name?: T;
1053
+ prefix?: T;
1054
+ updatedAt?: T;
1055
+ createdAt?: T;
1056
+ url?: T;
1057
+ thumbnailURL?: T;
1058
+ filename?: T;
1059
+ mimeType?: T;
1060
+ filesize?: T;
1061
+ width?: T;
1062
+ height?: T;
1063
+ focalX?: T;
1064
+ focalY?: T;
1065
+ }
1066
+ /**
1067
+ * This interface was referenced by `Config`'s JSON-Schema
1068
+ * via the `definition` "orders_select".
1069
+ */
1070
+ interface OrdersSelect<T extends boolean = true> {
1071
+ brand?: T;
1072
+ orderNumber?: T;
1073
+ status?: T;
1074
+ totalAmount?: T;
1075
+ email?: T;
1076
+ shippingAddress?: T | {
1077
+ postalCode?: T;
1078
+ address1?: T;
1079
+ address2?: T;
1080
+ deliveryMessage?: T;
1081
+ recipientName?: T;
1082
+ phone?: T;
1083
+ };
1084
+ products?: T;
1085
+ transactions?: T;
1086
+ returns?: T;
1087
+ updatedAt?: T;
1088
+ createdAt?: T;
1089
+ }
1090
+ /**
1091
+ * This interface was referenced by `Config`'s JSON-Schema
1092
+ * via the `definition` "order-products_select".
1093
+ */
1094
+ interface OrderProductsSelect<T extends boolean = true> {
1095
+ brand?: T;
1096
+ order?: T;
1097
+ product?: T;
1098
+ variant?: T;
1099
+ option?: T;
1100
+ quantity?: T;
1101
+ title?: T;
1102
+ updatedAt?: T;
1103
+ createdAt?: T;
1104
+ }
1105
+ /**
1106
+ * This interface was referenced by `Config`'s JSON-Schema
1107
+ * via the `definition` "returns_select".
1108
+ */
1109
+ interface ReturnsSelect<T extends boolean = true> {
1110
+ brand?: T;
1111
+ order?: T;
1112
+ reason?: T;
1113
+ returnProducts?: T | {
1114
+ orderProduct?: T;
1115
+ quantity?: T;
1116
+ id?: T;
1117
+ };
1118
+ refundAmount?: T;
1119
+ updatedAt?: T;
1120
+ createdAt?: T;
1121
+ }
1122
+ /**
1123
+ * This interface was referenced by `Config`'s JSON-Schema
1124
+ * via the `definition` "return-products_select".
1125
+ */
1126
+ interface ReturnProductsSelect<T extends boolean = true> {
1127
+ brand?: T;
1128
+ order?: T;
1129
+ status?: T;
1130
+ orderProduct?: T;
1131
+ product?: T;
1132
+ variant?: T;
1133
+ option?: T;
1134
+ quantity?: T;
1135
+ title?: T;
1136
+ updatedAt?: T;
1137
+ createdAt?: T;
1138
+ }
1139
+ /**
1140
+ * This interface was referenced by `Config`'s JSON-Schema
1141
+ * via the `definition` "transactions_select".
1142
+ */
1143
+ interface TransactionsSelect<T extends boolean = true> {
1144
+ brand?: T;
1145
+ status?: T;
1146
+ order?: T;
1147
+ paymentId?: T;
1148
+ paymentMethod?: T;
1149
+ receiptUrl?: T;
1150
+ totalAmount?: T;
1151
+ updatedAt?: T;
1152
+ createdAt?: T;
1153
+ }
1154
+ /**
1155
+ * This interface was referenced by `Config`'s JSON-Schema
1156
+ * via the `definition` "brands_select".
1157
+ */
1158
+ interface BrandsSelect<T extends boolean = true> {
1159
+ title?: T;
1160
+ description?: T;
1161
+ clientKey?: T;
1162
+ secretKey?: T;
1163
+ domain?: T;
1164
+ settings?: T;
1165
+ updatedAt?: T;
1166
+ createdAt?: T;
1167
+ }
1168
+ /**
1169
+ * This interface was referenced by `Config`'s JSON-Schema
1170
+ * via the `definition` "brand-logos_select".
1171
+ */
1172
+ interface BrandLogosSelect<T extends boolean = true> {
1173
+ brand?: T;
1174
+ alt?: T;
1175
+ lqip?: T;
1176
+ prefix?: T;
1177
+ updatedAt?: T;
1178
+ createdAt?: T;
1179
+ url?: T;
1180
+ thumbnailURL?: T;
1181
+ filename?: T;
1182
+ mimeType?: T;
1183
+ filesize?: T;
1184
+ width?: T;
1185
+ height?: T;
1186
+ focalX?: T;
1187
+ focalY?: T;
1188
+ sizes?: T | {
1189
+ favicon?: T | {
1190
+ url?: T;
1191
+ width?: T;
1192
+ height?: T;
1193
+ mimeType?: T;
1194
+ filesize?: T;
1195
+ filename?: T;
1196
+ };
1197
+ icon?: T | {
1198
+ url?: T;
1199
+ width?: T;
1200
+ height?: T;
1201
+ mimeType?: T;
1202
+ filesize?: T;
1203
+ filename?: T;
1204
+ };
1205
+ thumb?: T | {
1206
+ url?: T;
1207
+ width?: T;
1208
+ height?: T;
1209
+ mimeType?: T;
1210
+ filesize?: T;
1211
+ filename?: T;
1212
+ };
1213
+ };
1214
+ }
1215
+ /**
1216
+ * This interface was referenced by `Config`'s JSON-Schema
1217
+ * via the `definition` "brand-og-images_select".
1218
+ */
1219
+ interface BrandOgImagesSelect<T extends boolean = true> {
1220
+ brand?: T;
1221
+ alt?: T;
1222
+ lqip?: T;
1223
+ prefix?: T;
1224
+ updatedAt?: T;
1225
+ createdAt?: T;
1226
+ url?: T;
1227
+ thumbnailURL?: T;
1228
+ filename?: T;
1229
+ mimeType?: T;
1230
+ filesize?: T;
1231
+ width?: T;
1232
+ height?: T;
1233
+ focalX?: T;
1234
+ focalY?: T;
1235
+ sizes?: T | {
1236
+ ogImage?: T | {
1237
+ url?: T;
1238
+ width?: T;
1239
+ height?: T;
1240
+ mimeType?: T;
1241
+ filesize?: T;
1242
+ filename?: T;
1243
+ };
1244
+ };
1245
+ }
1246
+ /**
1247
+ * This interface was referenced by `Config`'s JSON-Schema
1248
+ * via the `definition` "brand-settings_select".
1249
+ */
1250
+ interface BrandSettingsSelect<T extends boolean = true> {
1251
+ brand?: T;
1252
+ title?: T;
1253
+ description?: T;
1254
+ keywords?: T;
1255
+ logo?: T;
1256
+ ogImage?: T;
1257
+ updatedAt?: T;
1258
+ createdAt?: T;
1259
+ }
1260
+ /**
1261
+ * This interface was referenced by `Config`'s JSON-Schema
1262
+ * via the `definition` "links_select".
1263
+ */
1264
+ interface LinksSelect<T extends boolean = true> {
1265
+ brand?: T;
1266
+ title?: T;
1267
+ image?: T;
1268
+ link?: T;
1269
+ updatedAt?: T;
1270
+ createdAt?: T;
1271
+ }
1272
+ /**
1273
+ * This interface was referenced by `Config`'s JSON-Schema
1274
+ * via the `definition` "link-images_select".
1275
+ */
1276
+ interface LinkImagesSelect<T extends boolean = true> {
1277
+ brand?: T;
1278
+ alt?: T;
1279
+ lqip?: T;
1280
+ prefix?: T;
1281
+ updatedAt?: T;
1282
+ createdAt?: T;
1283
+ url?: T;
1284
+ thumbnailURL?: T;
1285
+ filename?: T;
1286
+ mimeType?: T;
1287
+ filesize?: T;
1288
+ width?: T;
1289
+ height?: T;
1290
+ focalX?: T;
1291
+ focalY?: T;
1292
+ sizes?: T | {
1293
+ thumb?: T | {
1294
+ url?: T;
1295
+ width?: T;
1296
+ height?: T;
1297
+ mimeType?: T;
1298
+ filesize?: T;
1299
+ filename?: T;
1300
+ };
1301
+ };
1302
+ }
1303
+ /**
1304
+ * This interface was referenced by `Config`'s JSON-Schema
1305
+ * via the `definition` "playlists_select".
1306
+ */
1307
+ interface PlaylistsSelect<T extends boolean = true> {
1308
+ brand?: T;
1309
+ image?: T;
1310
+ title?: T;
1311
+ description?: T;
1312
+ musics?: T;
1313
+ updatedAt?: T;
1314
+ createdAt?: T;
1315
+ }
1316
+ /**
1317
+ * This interface was referenced by `Config`'s JSON-Schema
1318
+ * via the `definition` "playlist-images_select".
1319
+ */
1320
+ interface PlaylistImagesSelect<T extends boolean = true> {
1321
+ brand?: T;
1322
+ alt?: T;
1323
+ lqip?: T;
1324
+ prefix?: T;
1325
+ updatedAt?: T;
1326
+ createdAt?: T;
1327
+ url?: T;
1328
+ thumbnailURL?: T;
1329
+ filename?: T;
1330
+ mimeType?: T;
1331
+ filesize?: T;
1332
+ width?: T;
1333
+ height?: T;
1334
+ focalX?: T;
1335
+ focalY?: T;
1336
+ sizes?: T | {
1337
+ '512'?: T | {
1338
+ url?: T;
1339
+ width?: T;
1340
+ height?: T;
1341
+ mimeType?: T;
1342
+ filesize?: T;
1343
+ filename?: T;
1344
+ };
1345
+ '1024'?: T | {
1346
+ url?: T;
1347
+ width?: T;
1348
+ height?: T;
1349
+ mimeType?: T;
1350
+ filesize?: T;
1351
+ filename?: T;
1352
+ };
1353
+ };
1354
+ }
1355
+ /**
1356
+ * This interface was referenced by `Config`'s JSON-Schema
1357
+ * via the `definition` "musics_select".
1358
+ */
1359
+ interface MusicsSelect<T extends boolean = true> {
1360
+ _musics_musics_order?: T;
1361
+ brand?: T;
1362
+ playlist?: T;
1363
+ url?: T;
1364
+ title?: T;
1365
+ artist?: T;
1366
+ isValid?: T;
1367
+ updatedAt?: T;
1368
+ createdAt?: T;
1369
+ }
1370
+ /**
1371
+ * This interface was referenced by `Config`'s JSON-Schema
1372
+ * via the `definition` "forms_select".
1373
+ */
1374
+ interface FormsSelect<T extends boolean = true> {
1375
+ brand?: T;
1376
+ title?: T;
1377
+ fields?: T | {
1378
+ checkbox?: T | {
1379
+ name?: T;
1380
+ label?: T;
1381
+ width?: T;
1382
+ required?: T;
1383
+ defaultValue?: T;
1384
+ id?: T;
1385
+ blockName?: T;
1386
+ };
1387
+ country?: T | {
1388
+ name?: T;
1389
+ label?: T;
1390
+ width?: T;
1391
+ required?: T;
1392
+ id?: T;
1393
+ blockName?: T;
1394
+ };
1395
+ email?: T | {
1396
+ name?: T;
1397
+ label?: T;
1398
+ width?: T;
1399
+ required?: T;
1400
+ id?: T;
1401
+ blockName?: T;
1402
+ };
1403
+ message?: T | {
1404
+ message?: T;
1405
+ id?: T;
1406
+ blockName?: T;
1407
+ };
1408
+ number?: T | {
1409
+ name?: T;
1410
+ label?: T;
1411
+ width?: T;
1412
+ defaultValue?: T;
1413
+ required?: T;
1414
+ id?: T;
1415
+ blockName?: T;
1416
+ };
1417
+ select?: T | {
1418
+ name?: T;
1419
+ label?: T;
1420
+ width?: T;
1421
+ defaultValue?: T;
1422
+ placeholder?: T;
1423
+ options?: T | {
1424
+ label?: T;
1425
+ value?: T;
1426
+ id?: T;
1427
+ };
1428
+ required?: T;
1429
+ id?: T;
1430
+ blockName?: T;
1431
+ };
1432
+ state?: T | {
1433
+ name?: T;
1434
+ label?: T;
1435
+ width?: T;
1436
+ required?: T;
1437
+ id?: T;
1438
+ blockName?: T;
1439
+ };
1440
+ text?: T | {
1441
+ name?: T;
1442
+ label?: T;
1443
+ width?: T;
1444
+ defaultValue?: T;
1445
+ required?: T;
1446
+ placeholder?: T;
1447
+ id?: T;
1448
+ blockName?: T;
1449
+ };
1450
+ textarea?: T | {
1451
+ name?: T;
1452
+ label?: T;
1453
+ width?: T;
1454
+ defaultValue?: T;
1455
+ required?: T;
1456
+ id?: T;
1457
+ blockName?: T;
1458
+ };
1459
+ };
1460
+ submitButtonLabel?: T;
1461
+ confirmationType?: T;
1462
+ confirmationMessage?: T;
1463
+ redirect?: T | {
1464
+ url?: T;
1465
+ };
1466
+ emails?: T | {
1467
+ emailTo?: T;
1468
+ cc?: T;
1469
+ bcc?: T;
1470
+ replyTo?: T;
1471
+ emailFrom?: T;
1472
+ subject?: T;
1473
+ message?: T;
1474
+ id?: T;
1475
+ };
1476
+ updatedAt?: T;
1477
+ createdAt?: T;
1478
+ }
1479
+ /**
1480
+ * This interface was referenced by `Config`'s JSON-Schema
1481
+ * via the `definition` "form-submissions_select".
1482
+ */
1483
+ interface FormSubmissionsSelect<T extends boolean = true> {
1484
+ form?: T;
1485
+ submissionData?: T | {
1486
+ field?: T;
1487
+ value?: T;
1488
+ id?: T;
1489
+ };
1490
+ updatedAt?: T;
1491
+ createdAt?: T;
1492
+ }
1493
+ /**
1494
+ * This interface was referenced by `Config`'s JSON-Schema
1495
+ * via the `definition` "payload-locked-documents_select".
1496
+ */
1497
+ interface PayloadLockedDocumentsSelect<T extends boolean = true> {
1498
+ document?: T;
1499
+ globalSlug?: T;
1500
+ user?: T;
1501
+ updatedAt?: T;
1502
+ createdAt?: T;
1503
+ }
1504
+ /**
1505
+ * This interface was referenced by `Config`'s JSON-Schema
1506
+ * via the `definition` "payload-preferences_select".
1507
+ */
1508
+ interface PayloadPreferencesSelect<T extends boolean = true> {
1509
+ user?: T;
1510
+ key?: T;
1511
+ value?: T;
1512
+ updatedAt?: T;
1513
+ createdAt?: T;
1514
+ }
1515
+ /**
1516
+ * This interface was referenced by `Config`'s JSON-Schema
1517
+ * via the `definition` "payload-migrations_select".
1518
+ */
1519
+ interface PayloadMigrationsSelect<T extends boolean = true> {
1520
+ name?: T;
1521
+ batch?: T;
1522
+ updatedAt?: T;
1523
+ createdAt?: T;
1524
+ }
1525
+ /**
1526
+ * This interface was referenced by `Config`'s JSON-Schema
1527
+ * via the `definition` "auth".
1528
+ */
1529
+ interface Auth {
1530
+ [k: string]: unknown;
1531
+ }
1532
+ declare module 'payload' {
1533
+ interface GeneratedTypes extends Config {
1534
+ }
1535
+ }
1536
+
1537
+ /**
1538
+ * 01Client에서 사용하는 타입 정의들
1539
+ */
1540
+
1541
+ type ClientEnvironment = 'development' | 'production' | 'test';
1542
+ interface ClientMetadata {
1543
+ version: string;
1544
+ environment: ClientEnvironment;
1545
+ userAgent?: string;
1546
+ timestamp: number;
1547
+ }
1548
+ interface ApiResponse<T = any> {
1549
+ data: T;
1550
+ success: boolean;
1551
+ message?: string;
1552
+ error?: string;
1553
+ pagination?: PaginationMeta;
1554
+ }
1555
+ interface PaginationMeta {
1556
+ page: number;
1557
+ limit: number;
1558
+ totalDocs: number;
1559
+ totalPages: number;
1560
+ hasNextPage: boolean;
1561
+ hasPrevPage: boolean;
1562
+ }
1563
+ interface QueryOptions {
1564
+ page?: number;
1565
+ limit?: number;
1566
+ sort?: Sort;
1567
+ where?: Where;
1568
+ enabled?: boolean;
1569
+ }
1570
+ interface ClientError extends Error {
1571
+ code?: string;
1572
+ status?: number;
1573
+ details?: any;
1574
+ }
1575
+ interface ClientState {
1576
+ metadata: ClientMetadata;
1577
+ isReady: boolean;
1578
+ }
1579
+ interface ClientBrowserConfig {
1580
+ clientKey: string;
1581
+ headers?: Record<string, string>;
1582
+ debug?: boolean;
1583
+ environment?: ClientEnvironment;
1584
+ }
1585
+ interface ClientServerConfig extends ClientBrowserConfig {
1586
+ secretKey: string;
1587
+ }
1588
+ type Collection = keyof Config['collections'];
1589
+ interface QueryBuilder<T extends Collection> {
1590
+ select: () => QueryBuilder<T>;
1591
+ where: (conditions: Partial<Config['collections'][T]>) => QueryBuilder<T>;
1592
+ order: (column: keyof Config['collections'][T], direction?: 'asc' | 'desc') => QueryBuilder<T>;
1593
+ limit: (count: number) => QueryBuilder<T>;
1594
+ }
1595
+
1596
+ /**
1597
+ * Fetch 요청 옵션 인터페이스
1598
+ *
1599
+ * @interface FetchOptions
1600
+ * @extends RequestInit
1601
+ */
1602
+ interface FetchOptions extends RequestInit {
1603
+ /** 클라이언트 키 (브랜드 식별용) */
1604
+ clientKey?: string;
1605
+ /** 시크릿 키 (서버 사이드 인증용) */
1606
+ secretKey?: string;
1607
+ /** 요청 타임아웃 (밀리초, 기본값: 30초) */
1608
+ timeout?: number;
1609
+ }
1610
+ /**
1611
+ * 향상된 fetch 함수
1612
+ *
1613
+ * 클라이언트 키, 시크릿 키 헤더 자동 설정 및 에러 처리를 제공합니다.
1614
+ *
1615
+ * @param url - 요청할 URL (상대 경로)
1616
+ * @param options - Fetch 옵션
1617
+ * @returns Promise<Response>
1618
+ *
1619
+ * @throws {NetworkError} 네트워크 연결 실패 시
1620
+ * @throws {TimeoutError} 요청 타임아웃 시
1621
+ *
1622
+ * @example
1623
+ * ```typescript
1624
+ * const response = await _fetch('/api/products', {
1625
+ * clientKey: 'your-client-key',
1626
+ * method: 'GET'
1627
+ * })
1628
+ * ```
1629
+ */
1630
+ declare const _fetch: (url: string, options?: FetchOptions) => Promise<Response>;
1631
+
1632
+ /**
1633
+ * API 클라이언트 기본 클래스
1634
+ *
1635
+ * 모든 API 클라이언트의 베이스 클래스로, 공통적인 HTTP 메서드들과
1636
+ * 에러 처리, 응답 파싱 기능을 제공합니다.
1637
+ */
1638
+
1639
+ /**
1640
+ * API 클라이언트 기본 클래스
1641
+ *
1642
+ * @class BaseApiClient
1643
+ */
1644
+ declare class BaseApiClient {
1645
+ protected clientKey: string;
1646
+ protected secretKey?: string;
1647
+ protected defaultOptions: FetchOptions;
1648
+ /**
1649
+ * BaseApiClient 생성자
1650
+ *
1651
+ * @param clientKey - 클라이언트 키 (필수)
1652
+ * @param secretKey - 시크릿 키 (선택, 서버 사이드에서만 사용)
1653
+ *
1654
+ * @example
1655
+ * ```typescript
1656
+ * const client = new BaseApiClient('your-client-key', 'your-secret-key')
1657
+ * ```
1658
+ */
1659
+ constructor(clientKey: string, secretKey?: string);
1660
+ /**
1661
+ * GET 요청을 수행합니다.
1662
+ *
1663
+ * @template T - 응답 데이터 타입
1664
+ * @param endpoint - API 엔드포인트
1665
+ * @param options - 쿼리 옵션 (페이지네이션, 필터링 등)
1666
+ * @returns Promise<ApiResponse<T>>
1667
+ *
1668
+ * @example
1669
+ * ```typescript
1670
+ * const response = await client.get<Product[]>('/api/products', {
1671
+ * page: 1,
1672
+ * limit: 10,
1673
+ * where: { status: 'published' }
1674
+ * })
1675
+ * ```
1676
+ */
1677
+ protected get<T = any>(endpoint: string, options?: QueryOptions): Promise<ApiResponse<T>>;
1678
+ /**
1679
+ * POST 요청을 수행합니다.
1680
+ *
1681
+ * @template T - 응답 데이터 타입
1682
+ * @param endpoint - API 엔드포인트
1683
+ * @param data - 전송할 데이터
1684
+ * @param options - 추가 fetch 옵션
1685
+ * @returns Promise<ApiResponse<T>>
1686
+ *
1687
+ * @example
1688
+ * ```typescript
1689
+ * const response = await client.post<Product>('/api/products', {
1690
+ * title: '새 제품',
1691
+ * price: 10000
1692
+ * })
1693
+ * ```
1694
+ */
1695
+ protected post<T = any>(endpoint: string, data?: any, options?: FetchOptions): Promise<ApiResponse<T>>;
1696
+ /**
1697
+ * PUT 요청을 수행합니다.
1698
+ *
1699
+ * @template T - 응답 데이터 타입
1700
+ * @param endpoint - API 엔드포인트
1701
+ * @param data - 전송할 데이터
1702
+ * @param options - 추가 fetch 옵션
1703
+ * @returns Promise<ApiResponse<T>>
1704
+ */
1705
+ protected put<T = any>(endpoint: string, data?: any, options?: FetchOptions): Promise<ApiResponse<T>>;
1706
+ /**
1707
+ * PATCH 요청을 수행합니다.
1708
+ *
1709
+ * @template T - 응답 데이터 타입
1710
+ * @param endpoint - API 엔드포인트
1711
+ * @param data - 전송할 데이터
1712
+ * @param options - 추가 fetch 옵션
1713
+ * @returns Promise<ApiResponse<T>>
1714
+ */
1715
+ protected patch<T = any>(endpoint: string, data?: any, options?: FetchOptions): Promise<ApiResponse<T>>;
1716
+ /**
1717
+ * DELETE 요청을 수행합니다.
1718
+ *
1719
+ * @template T - 응답 데이터 타입
1720
+ * @param endpoint - API 엔드포인트
1721
+ * @param options - 추가 fetch 옵션
1722
+ * @returns Promise<ApiResponse<T>>
1723
+ */
1724
+ protected delete<T = any>(endpoint: string, options?: FetchOptions): Promise<ApiResponse<T>>;
1725
+ /**
1726
+ * URL 빌드 (쿼리 파라미터 포함)
1727
+ *
1728
+ * @param endpoint - 기본 엔드포인트
1729
+ * @param options - 쿼리 옵션
1730
+ * @returns 완성된 URL
1731
+ *
1732
+ * @private
1733
+ */
1734
+ protected buildUrl(endpoint: string, options?: QueryOptions): string;
1735
+ /**
1736
+ * HTTP 응답을 파싱하여 ApiResponse 형태로 변환합니다.
1737
+ *
1738
+ * Payload CMS의 응답 형식을 자동으로 감지하고 처리합니다.
1739
+ *
1740
+ * @template T - 응답 데이터 타입
1741
+ * @param response - HTTP Response 객체
1742
+ * @returns Promise<ApiResponse<T>>
1743
+ *
1744
+ * @throws {ApiError} JSON 파싱 실패 시
1745
+ *
1746
+ * @private
1747
+ */
1748
+ protected parseResponse<T>(response: Response): Promise<ApiResponse<T>>;
1749
+ /**
1750
+ * 에러를 SDK 표준 에러 형태로 변환합니다.
1751
+ *
1752
+ * @param error - 원본 에러
1753
+ * @throws {ApiError} 변환된 에러
1754
+ *
1755
+ * @deprecated 이 메서드는 더 이상 사용되지 않습니다.
1756
+ * 에러는 _fetch 함수에서 자동으로 처리됩니다.
1757
+ *
1758
+ * @private
1759
+ */
1760
+ protected handleError(error: any): never;
1761
+ }
1762
+
1763
+ /**
1764
+ * 범용 컬렉션 API 클라이언트
1765
+ * Supabase 스타일의 from() 메서드를 구현
1766
+ */
1767
+
1768
+ declare class CollectionsApi extends BaseApiClient {
1769
+ /**
1770
+ * Supabase 스타일의 컬렉션 접근
1771
+ */
1772
+ from<T extends Collection>(collection: T): CollectionQueryBuilder<T>;
1773
+ /**
1774
+ * 내부 API 호출 메서드들
1775
+ */
1776
+ getCollection<T extends Collection>(collection: T, options?: QueryOptions): Promise<ApiResponse<Config['collections'][T][]>>;
1777
+ getDocument<T extends Collection>(collection: T, id: number | string, options?: QueryOptions): Promise<ApiResponse<Config['collections'][T]>>;
1778
+ createDocument<T extends Collection>(collection: T, data: Partial<Config['collections'][T]>): Promise<ApiResponse<Config['collections'][T]>>;
1779
+ updateDocument<T extends Collection>(collection: T, id: number | string, data: Partial<Config['collections'][T]>): Promise<ApiResponse<Config['collections'][T]>>;
1780
+ deleteDocument<T extends Collection>(collection: T, id: number | string): Promise<ApiResponse<void>>;
1781
+ }
1782
+ declare class CollectionQueryBuilder<T extends Collection> {
1783
+ private collection;
1784
+ private api;
1785
+ private queryOptions;
1786
+ constructor(collection: T, api: CollectionsApi);
1787
+ find(options?: QueryOptions): Promise<ApiResponse<Config['collections'][T][]>>;
1788
+ /**
1789
+ * 특정 ID로 문서 조회
1790
+ */
1791
+ findById(id: number | string): Promise<ApiResponse<Config['collections'][T]>>;
1792
+ /**
1793
+ * 문서 생성
1794
+ */
1795
+ create(data: Partial<Config['collections'][T]>): Promise<ApiResponse<Config['collections'][T]>>;
1796
+ /**
1797
+ * 문서 업데이트
1798
+ */
1799
+ update(id: number | string, data: Partial<Config['collections'][T]>): Promise<ApiResponse<Config['collections'][T]>>;
1800
+ /**
1801
+ * 문서 삭제
1802
+ */
1803
+ delete(id: number | string): Promise<ApiResponse<void>>;
1804
+ }
1805
+
1806
+ declare function QueryProvider({ children }: {
1807
+ children: React.ReactNode;
1808
+ }): react.JSX.Element;
1809
+
1810
+ declare function getQueryClient(): QueryClient;
1811
+
1812
+ interface UnifiedQueryOptions {
1813
+ brandKey?: string;
1814
+ brandSecret?: string;
1815
+ baseUrl?: string;
1816
+ }
1817
+ /**
1818
+ * 통합 쿼리 클라이언트
1819
+ */
1820
+ declare class UnifiedQueryClient {
1821
+ private queryClient;
1822
+ private collectionsApi;
1823
+ constructor(queryClient: QueryClient, options?: UnifiedQueryOptions);
1824
+ useCollection<T extends Collection>(collection: T, queryOptions?: QueryOptions): _tanstack_react_query.UseQueryResult<{
1825
+ users: User;
1826
+ products: Product;
1827
+ 'product-categories': ProductCategory;
1828
+ 'product-images': ProductImage;
1829
+ 'product-variants': ProductVariant;
1830
+ 'product-options': ProductOption;
1831
+ 'static-assets': StaticAsset;
1832
+ orders: Order;
1833
+ 'order-products': OrderProduct;
1834
+ returns: Return;
1835
+ 'return-products': ReturnProduct;
1836
+ transactions: Transaction;
1837
+ brands: Brand;
1838
+ 'brand-logos': BrandLogo;
1839
+ 'brand-og-images': BrandOgImage;
1840
+ 'brand-settings': BrandSetting;
1841
+ links: Link;
1842
+ 'link-images': LinkImage;
1843
+ playlists: Playlist;
1844
+ 'playlist-images': PlaylistImage;
1845
+ musics: Music;
1846
+ forms: Form;
1847
+ 'form-submissions': FormSubmission;
1848
+ 'payload-locked-documents': PayloadLockedDocument;
1849
+ 'payload-preferences': PayloadPreference;
1850
+ 'payload-migrations': PayloadMigration;
1851
+ }[T][], Error>;
1852
+ useCollectionSingle<T extends Collection>(collection: T, queryOptions?: Omit<QueryOptions, 'limit'>): _tanstack_react_query.UseQueryResult<_tanstack_react_query.NoInfer<{
1853
+ users: User;
1854
+ products: Product;
1855
+ 'product-categories': ProductCategory;
1856
+ 'product-images': ProductImage;
1857
+ 'product-variants': ProductVariant;
1858
+ 'product-options': ProductOption;
1859
+ 'static-assets': StaticAsset;
1860
+ orders: Order;
1861
+ 'order-products': OrderProduct;
1862
+ returns: Return;
1863
+ 'return-products': ReturnProduct;
1864
+ transactions: Transaction;
1865
+ brands: Brand;
1866
+ 'brand-logos': BrandLogo;
1867
+ 'brand-og-images': BrandOgImage;
1868
+ 'brand-settings': BrandSetting;
1869
+ links: Link;
1870
+ 'link-images': LinkImage;
1871
+ playlists: Playlist;
1872
+ 'playlist-images': PlaylistImage;
1873
+ musics: Music;
1874
+ forms: Form;
1875
+ 'form-submissions': FormSubmission;
1876
+ 'payload-locked-documents': PayloadLockedDocument;
1877
+ 'payload-preferences': PayloadPreference;
1878
+ 'payload-migrations': PayloadMigration;
1879
+ }[T] | null | undefined>, Error>;
1880
+ useCollectionInfinite<T extends Collection>(collection: T, queryOptions?: QueryOptions): _tanstack_react_query.UseInfiniteQueryResult<{
1881
+ users: User;
1882
+ products: Product;
1883
+ 'product-categories': ProductCategory;
1884
+ 'product-images': ProductImage;
1885
+ 'product-variants': ProductVariant;
1886
+ 'product-options': ProductOption;
1887
+ 'static-assets': StaticAsset;
1888
+ orders: Order;
1889
+ 'order-products': OrderProduct;
1890
+ returns: Return;
1891
+ 'return-products': ReturnProduct;
1892
+ transactions: Transaction;
1893
+ brands: Brand;
1894
+ 'brand-logos': BrandLogo;
1895
+ 'brand-og-images': BrandOgImage;
1896
+ 'brand-settings': BrandSetting;
1897
+ links: Link;
1898
+ 'link-images': LinkImage;
1899
+ playlists: Playlist;
1900
+ 'playlist-images': PlaylistImage;
1901
+ musics: Music;
1902
+ forms: Form;
1903
+ 'form-submissions': FormSubmission;
1904
+ 'payload-locked-documents': PayloadLockedDocument;
1905
+ 'payload-preferences': PayloadPreference;
1906
+ 'payload-migrations': PayloadMigration;
1907
+ }[T][], Error>;
1908
+ useById<T extends Collection>(collection: T, id: string | number, queryOptions?: QueryOptions): _tanstack_react_query.UseQueryResult<_tanstack_react_query.NoInfer<{
1909
+ users: User;
1910
+ products: Product;
1911
+ 'product-categories': ProductCategory;
1912
+ 'product-images': ProductImage;
1913
+ 'product-variants': ProductVariant;
1914
+ 'product-options': ProductOption;
1915
+ 'static-assets': StaticAsset;
1916
+ orders: Order;
1917
+ 'order-products': OrderProduct;
1918
+ returns: Return;
1919
+ 'return-products': ReturnProduct;
1920
+ transactions: Transaction;
1921
+ brands: Brand;
1922
+ 'brand-logos': BrandLogo;
1923
+ 'brand-og-images': BrandOgImage;
1924
+ 'brand-settings': BrandSetting;
1925
+ links: Link;
1926
+ 'link-images': LinkImage;
1927
+ playlists: Playlist;
1928
+ 'playlist-images': PlaylistImage;
1929
+ musics: Music;
1930
+ forms: Form;
1931
+ 'form-submissions': FormSubmission;
1932
+ 'payload-locked-documents': PayloadLockedDocument;
1933
+ 'payload-preferences': PayloadPreference;
1934
+ 'payload-migrations': PayloadMigration;
1935
+ }[T]>, Error>;
1936
+ useSearch<T extends Collection>(collection: T, searchQuery: string, queryOptions?: QueryOptions): _tanstack_react_query.UseInfiniteQueryResult<{
1937
+ pages: {
1938
+ users: User;
1939
+ products: Product;
1940
+ 'product-categories': ProductCategory;
1941
+ 'product-images': ProductImage;
1942
+ 'product-variants': ProductVariant;
1943
+ 'product-options': ProductOption;
1944
+ 'static-assets': StaticAsset;
1945
+ orders: Order;
1946
+ 'order-products': OrderProduct;
1947
+ returns: Return;
1948
+ 'return-products': ReturnProduct;
1949
+ transactions: Transaction;
1950
+ brands: Brand;
1951
+ 'brand-logos': BrandLogo;
1952
+ 'brand-og-images': BrandOgImage;
1953
+ 'brand-settings': BrandSetting;
1954
+ links: Link;
1955
+ 'link-images': LinkImage;
1956
+ playlists: Playlist;
1957
+ 'playlist-images': PlaylistImage;
1958
+ musics: Music;
1959
+ forms: Form;
1960
+ 'form-submissions': FormSubmission;
1961
+ 'payload-locked-documents': PayloadLockedDocument;
1962
+ 'payload-preferences': PayloadPreference;
1963
+ 'payload-migrations': PayloadMigration;
1964
+ }[T][][];
1965
+ pageParams: number[];
1966
+ items: {
1967
+ users: User;
1968
+ products: Product;
1969
+ 'product-categories': ProductCategory;
1970
+ 'product-images': ProductImage;
1971
+ 'product-variants': ProductVariant;
1972
+ 'product-options': ProductOption;
1973
+ 'static-assets': StaticAsset;
1974
+ orders: Order;
1975
+ 'order-products': OrderProduct;
1976
+ returns: Return;
1977
+ 'return-products': ReturnProduct;
1978
+ transactions: Transaction;
1979
+ brands: Brand;
1980
+ 'brand-logos': BrandLogo;
1981
+ 'brand-og-images': BrandOgImage;
1982
+ 'brand-settings': BrandSetting;
1983
+ links: Link;
1984
+ 'link-images': LinkImage;
1985
+ playlists: Playlist;
1986
+ 'playlist-images': PlaylistImage;
1987
+ musics: Music;
1988
+ forms: Form;
1989
+ 'form-submissions': FormSubmission;
1990
+ 'payload-locked-documents': PayloadLockedDocument;
1991
+ 'payload-preferences': PayloadPreference;
1992
+ 'payload-migrations': PayloadMigration;
1993
+ }[T][];
1994
+ }, Error>;
1995
+ /**
1996
+ * 컬렉션별 프리페치
1997
+ * @example await client.query.prefetchQuery('products', { where: { status: 'published' } })
1998
+ */
1999
+ prefetchQuery<T extends Collection>(collection: T, queryOptions?: QueryOptions): Promise<void>;
2000
+ /**
2001
+ * 컬렉션별 단일 쿼리 프리페치
2002
+ * @example await client.query.prefetchCollectionSingle('products', { limit: 1 })
2003
+ */
2004
+ prefetchCollectionSingle<T extends Collection>(collection: T, queryOptions?: QueryOptions): Promise<void>;
2005
+ /**
2006
+ * 컬렉션별 무한 쿼리 프리페치
2007
+ * @example await client.query.prefetchInfiniteQuery('products', { limit: 20 })
2008
+ */
2009
+ prefetchInfiniteQuery<T extends Collection>(collection: T, queryOptions?: QueryOptions): Promise<void>;
2010
+ /**
2011
+ * 캐시 조작 메서드들
2012
+ */
2013
+ invalidateQueries(collection: Collection, operation?: string): Promise<void>;
2014
+ getQueryData<T>(collection: Collection, operation: string, ...params: (string | number)[]): T | undefined;
2015
+ setQueryData<T>(collection: Collection, operation: string, data: T, ...params: (string | number)[]): _tanstack_react_query.NoInfer<T> | undefined;
2016
+ }
2017
+
2018
+ type CreateOrderParams = {
2019
+ paymentId: string;
2020
+ orderNumber: string;
2021
+ email: string;
2022
+ shippingAddress: Order['shippingAddress'];
2023
+ orderProducts: Omit<OrderProduct, 'id' | 'createdAt' | 'updatedAt' | 'order' | 'status'>[];
2024
+ totalAmount: number;
2025
+ };
2026
+
2027
+ type UpdateOrderParams = {
2028
+ paymentId: string;
2029
+ status: Order['status'];
2030
+ };
2031
+
2032
+ type UpdateTransactionParams = {
2033
+ paymentId: string;
2034
+ status: Transaction['status'];
2035
+ paymentMethod: Transaction['paymentMethod'];
2036
+ receiptUrl: Transaction['receiptUrl'];
2037
+ };
2038
+
2039
+ interface ApiClientOptions {
2040
+ clientKey: string;
2041
+ secretKey: string;
2042
+ }
2043
+ declare class ApiClient {
2044
+ private clientKey;
2045
+ private secretKey;
2046
+ constructor(options: ApiClientOptions);
2047
+ createOrder(params: CreateOrderParams): Promise<any>;
2048
+ updateOrder(params: UpdateOrderParams): Promise<any>;
2049
+ updateTransaction(params: UpdateTransactionParams): Promise<any>;
2050
+ }
2051
+
2052
+ type ClientOptions$1 = ClientServerConfig;
2053
+
2054
+ /**
2055
+ * ComClient - 01Works SDK를 위한 중앙 클라이언트
2056
+ *
2057
+ * Supabase Client와 유사한 구조로 설계된 통합 클라이언트입니다.
2058
+ * API 호출, 쿼리 관리, 유틸리티 기능을 포함합니다.
2059
+ */
2060
+ declare class ServerClient<_Database = Config> {
2061
+ /**
2062
+ * API 클라이언트 - REST API 호출을 위한 메서드들
2063
+ */
2064
+ api: ApiClient;
2065
+ /**
2066
+ * 통합 Query 클라이언트 - 새로운 인터페이스
2067
+ */
2068
+ query: UnifiedQueryClient;
2069
+ /**
2070
+ * 범용 컬렉션 API 클라이언트 (Supabase 스타일)
2071
+ */
2072
+ collections: CollectionsApi;
2073
+ /**
2074
+ * React Query 클라이언트
2075
+ */
2076
+ queryClient: QueryClient;
2077
+ protected state: ClientState;
2078
+ protected config: ClientServerConfig;
2079
+ protected fetch: typeof _fetch;
2080
+ /**
2081
+ * 새로운 01Client 인스턴스를 생성합니다.
2082
+ *
2083
+ * @param options - 클라이언트 설정 옵션
2084
+ */
2085
+ constructor(options: ClientOptions$1);
2086
+ /**
2087
+ * 브랜드 설정을 가져옵니다.
2088
+ */
2089
+ getSettings(): Promise<BrandSetting | null | undefined>;
2090
+ /**
2091
+ * Collection에 대한 쿼리 빌더를 생성합니다. (Supabase 스타일)
2092
+ */
2093
+ from<T extends Collection>(collection: T): CollectionQueryBuilder<T>;
2094
+ /**
2095
+ * 클라이언트 상태 반환
2096
+ */
2097
+ getState(): ClientState;
2098
+ /**
2099
+ * 클라이언트 설정 반환
2100
+ */
2101
+ getConfig(): ClientServerConfig;
2102
+ /**
2103
+ * 클라이언트 정보 반환 (호환성)
2104
+ */
2105
+ getClientInfo(): {
2106
+ clientKey: string;
2107
+ version: string;
2108
+ environment: ClientEnvironment | undefined;
2109
+ };
2110
+ /**
2111
+ * 클라이언트 정리
2112
+ */
2113
+ destroy(): void;
2114
+ }
2115
+ /**
2116
+ * 01Client 인스턴스를 생성하는 헬퍼 함수
2117
+ */
2118
+ declare const createServerClient: (options: ClientOptions$1) => ServerClient;
2119
+
2120
+ type ClientOptions = ClientBrowserConfig;
2121
+
2122
+ /**
2123
+ * 01Works SDK를 위한 브라우저 클라이언트
2124
+ *
2125
+ * Supabase Client와 유사한 구조로 설계된 통합 클라이언트입니다.
2126
+ * 브라우저 환경에서 API 호출, 쿼리 관리, 유틸리티 기능을 제공합니다.
2127
+ *
2128
+ * @template _Database - 데이터베이스 스키마 타입 (기본값: Config)
2129
+ *
2130
+ * @example
2131
+ * ```typescript
2132
+ * import { createBrowserClient } from '@your-org/sdk'
2133
+ *
2134
+ * const client = createBrowserClient({
2135
+ * clientKey: 'your-client-key'
2136
+ * })
2137
+ *
2138
+ * // 제품 목록 조회
2139
+ * const products = await client.from('products').find({
2140
+ * where: { status: 'published' }
2141
+ * })
2142
+ *
2143
+ * // React Query 훅 사용
2144
+ * const { data } = client.query.useCollection('products')
2145
+ * ```
2146
+ */
2147
+ declare class BrowserClient<_Database = Config> {
2148
+ /**
2149
+ * 통합 Query 클라이언트
2150
+ *
2151
+ * React Query 기반의 데이터 페칭 훅들을 제공합니다.
2152
+ *
2153
+ * @example
2154
+ * ```typescript
2155
+ * const { data, isLoading } = client.query.useCollection('products')
2156
+ * const { data: product } = client.query.useById('products', '123')
2157
+ * ```
2158
+ */
2159
+ query: UnifiedQueryClient;
2160
+ /**
2161
+ * 범용 컬렉션 API 클라이언트 (Supabase 스타일)
2162
+ *
2163
+ * 모든 컬렉션에 대한 CRUD 작업을 제공합니다.
2164
+ *
2165
+ * @example
2166
+ * ```typescript
2167
+ * const products = await client.collections.from('products').find()
2168
+ * ```
2169
+ */
2170
+ collections: CollectionsApi;
2171
+ /**
2172
+ * React Query 클라이언트 인스턴스
2173
+ *
2174
+ * 직접적인 쿼리 캐시 조작이 필요한 경우 사용합니다.
2175
+ */
2176
+ queryClient: QueryClient;
2177
+ protected state: ClientState;
2178
+ protected config: ClientBrowserConfig;
2179
+ protected fetch: typeof _fetch;
2180
+ /**
2181
+ * BrowserClient 인스턴스를 생성합니다.
2182
+ *
2183
+ * @param options - 클라이언트 설정 옵션
2184
+ * @throws {ValidationError} clientKey가 제공되지 않은 경우
2185
+ *
2186
+ * @example
2187
+ * ```typescript
2188
+ * const client = new BrowserClient({
2189
+ * clientKey: 'your-client-key',
2190
+ * environment: 'production',
2191
+ * debug: false
2192
+ * })
2193
+ * ```
2194
+ */
2195
+ constructor(options: ClientOptions);
2196
+ /**
2197
+ * 현재 브랜드의 설정을 가져옵니다.
2198
+ *
2199
+ * @returns Promise<BrandSetting | null> 브랜드 설정 또는 null
2200
+ *
2201
+ * @example
2202
+ * ```typescript
2203
+ * const settings = await client.getSettings()
2204
+ * if (settings) {
2205
+ * console.log('브랜드 제목:', settings.title)
2206
+ * }
2207
+ * ```
2208
+ */
2209
+ getSettings(): Promise<BrandSetting | null | undefined>;
2210
+ /**
2211
+ * Collection에 대한 쿼리 빌더를 생성합니다. (Supabase 스타일)
2212
+ *
2213
+ * @template T - 컬렉션 타입
2214
+ * @param collection - 컬렉션 이름
2215
+ * @returns CollectionQueryBuilder<T>
2216
+ *
2217
+ * @example
2218
+ * ```typescript
2219
+ * // 제품 목록 조회
2220
+ * const { data: products } = await client.from('products').find({
2221
+ * where: { status: 'published' },
2222
+ * limit: 10
2223
+ * })
2224
+ *
2225
+ * // 특정 제품 조회
2226
+ * const { data: product } = await client.from('products').findById('123')
2227
+ *
2228
+ * // 제품 생성
2229
+ * const { data: newProduct } = await client.from('products').create({
2230
+ * title: '새 제품',
2231
+ * price: 10000
2232
+ * })
2233
+ * ```
2234
+ */
2235
+ from<T extends Collection>(collection: T): CollectionQueryBuilder<T>;
2236
+ /**
2237
+ * 클라이언트의 현재 상태를 반환합니다.
2238
+ *
2239
+ * @returns ClientState 클라이언트 상태 복사본
2240
+ */
2241
+ getState(): ClientState;
2242
+ /**
2243
+ * 클라이언트 설정을 반환합니다.
2244
+ *
2245
+ * 민감한 정보(시크릿 키 등)는 제외됩니다.
2246
+ *
2247
+ * @returns ClientBrowserConfig 클라이언트 설정
2248
+ */
2249
+ getConfig(): ClientBrowserConfig;
2250
+ /**
2251
+ * 클라이언트 기본 정보를 반환합니다.
2252
+ *
2253
+ * @returns 클라이언트 정보 객체
2254
+ *
2255
+ * @example
2256
+ * ```typescript
2257
+ * const info = client.getClientInfo()
2258
+ * console.log(`SDK 버전: ${info.version}`)
2259
+ * console.log(`환경: ${info.environment}`)
2260
+ * ```
2261
+ */
2262
+ getClientInfo(): {
2263
+ clientKey: string;
2264
+ version: string;
2265
+ environment: ClientEnvironment | undefined;
2266
+ };
2267
+ /**
2268
+ * 클라이언트를 정리하고 리소스를 해제합니다.
2269
+ *
2270
+ * 이 메서드를 호출한 후에는 클라이언트를 사용할 수 없습니다.
2271
+ *
2272
+ * @example
2273
+ * ```typescript
2274
+ * // 컴포넌트 언마운트 시
2275
+ * useEffect(() => {
2276
+ * return () => {
2277
+ * client.destroy()
2278
+ * }
2279
+ * }, [])
2280
+ * ```
2281
+ */
2282
+ destroy(): void;
2283
+ }
2284
+ /**
2285
+ * BrowserClient 인스턴스를 생성하는 헬퍼 함수
2286
+ *
2287
+ * @param options - 클라이언트 설정 옵션
2288
+ * @returns BrowserClient 인스턴스
2289
+ *
2290
+ * @example
2291
+ * ```typescript
2292
+ * import { createBrowserClient } from '@your-org/sdk'
2293
+ *
2294
+ * const client = createBrowserClient({
2295
+ * clientKey: process.env.NEXT_PUBLIC_CLIENT_KEY!,
2296
+ * environment: 'production'
2297
+ * })
2298
+ *
2299
+ * export default client
2300
+ * ```
2301
+ */
2302
+ declare const createBrowserClient: (options: ClientOptions) => BrowserClient;
2303
+
2304
+ declare const generateOrderNumber: () => string;
2305
+
2306
+ declare const objectFor: <T>(data: T | number | null | undefined) => T | null | undefined;
2307
+
2308
+ /**
2309
+ * SDK 에러 처리 시스템
2310
+ *
2311
+ * 다양한 에러 상황에 대한 구조화된 에러 클래스들을 제공합니다.
2312
+ */
2313
+ /**
2314
+ * SDK의 기본 에러 클래스
2315
+ * 모든 SDK 관련 에러의 베이스 클래스입니다.
2316
+ */
2317
+ declare class SDKError extends Error {
2318
+ readonly code: string;
2319
+ readonly status?: number;
2320
+ readonly details?: any;
2321
+ constructor(code: string, message: string, status?: number, details?: any);
2322
+ /**
2323
+ * 에러를 JSON 형태로 직렬화합니다.
2324
+ */
2325
+ toJSON(): {
2326
+ name: string;
2327
+ code: string;
2328
+ message: string;
2329
+ status: number | undefined;
2330
+ details: any;
2331
+ };
2332
+ }
2333
+ /**
2334
+ * 네트워크 관련 에러
2335
+ * API 호출 실패, 연결 문제 등에 사용됩니다.
2336
+ */
2337
+ declare class NetworkError extends SDKError {
2338
+ constructor(message: string, status?: number, details?: any);
2339
+ }
2340
+ /**
2341
+ * 데이터 검증 에러
2342
+ * 잘못된 파라미터나 스키마 검증 실패 시 사용됩니다.
2343
+ */
2344
+ declare class ValidationError extends SDKError {
2345
+ constructor(message: string, details?: any);
2346
+ }
2347
+ /**
2348
+ * API 응답 에러
2349
+ * 서버에서 반환된 에러 응답을 처리합니다.
2350
+ */
2351
+ declare class ApiError extends SDKError {
2352
+ constructor(message: string, status: number, details?: any);
2353
+ }
2354
+ /**
2355
+ * 설정 에러
2356
+ * 클라이언트 설정이 잘못되었을 때 사용됩니다.
2357
+ */
2358
+ declare class ConfigError extends SDKError {
2359
+ constructor(message: string, details?: any);
2360
+ }
2361
+ /**
2362
+ * 타임아웃 에러
2363
+ * 요청이 시간 초과되었을 때 사용됩니다.
2364
+ */
2365
+ declare class TimeoutError extends SDKError {
2366
+ constructor(message?: string, details?: any);
2367
+ }
2368
+ /**
2369
+ * 에러 타입 가드 함수들
2370
+ */
2371
+ declare const isSDKError: (error: any) => error is SDKError;
2372
+ declare const isNetworkError: (error: any) => error is NetworkError;
2373
+ declare const isValidationError: (error: any) => error is ValidationError;
2374
+ declare const isApiError: (error: any) => error is ApiError;
2375
+ declare const isConfigError: (error: any) => error is ConfigError;
2376
+ declare const isTimeoutError: (error: any) => error is TimeoutError;
2377
+ /**
2378
+ * 에러 생성 헬퍼 함수들
2379
+ */
2380
+ declare const createNetworkError: (message: string, status?: number, details?: any) => NetworkError;
2381
+ declare const createValidationError: (message: string, details?: any) => ValidationError;
2382
+ declare const createApiError: (message: string, status: number, details?: any) => ApiError;
2383
+ declare const createConfigError: (message: string, details?: any) => ConfigError;
2384
+ declare const createTimeoutError: (message?: string, details?: any) => TimeoutError;
2385
+
2386
+ declare const orderSchema: z.ZodObject<{
2387
+ name: z.ZodString;
2388
+ email: z.ZodString;
2389
+ shippingPhone: z.ZodString;
2390
+ shippingPostalCode: z.ZodString;
2391
+ shippingAddress: z.ZodString;
2392
+ shippingAddressDetail: z.ZodString;
2393
+ shippingMessage: z.ZodOptional<z.ZodString>;
2394
+ }, z.core.$strip>;
2395
+
2396
+ export { ApiError, type ApiResponse, type Auth, type Brand, type BrandLogo, type BrandLogosSelect, type BrandOgImage, type BrandOgImagesSelect, type BrandSetting, type BrandSettingsSelect, type BrandsSelect, type ClientBrowserConfig, type ClientEnvironment, type ClientError, type ClientMetadata, type ClientOptions, type ClientServerConfig, type ClientState, type Collection, type Config, ConfigError, type Form, type FormSubmission, type FormSubmissionsSelect, type FormsSelect, type Link, type LinkImage, type LinkImagesSelect, type LinksSelect, type Music, type MusicsSelect, NetworkError, type Order, type OrderProduct, type OrderProductsSelect, type OrdersSelect, type PaginationMeta, type PayloadLockedDocument, type PayloadLockedDocumentsSelect, type PayloadMigration, type PayloadMigrationsSelect, type PayloadPreference, type PayloadPreferencesSelect, type Playlist, type PlaylistImage, type PlaylistImagesSelect, type PlaylistsSelect, type Product, type ProductCategoriesSelect, type ProductCategory, type ProductImage, type ProductImagesSelect, type ProductOption, type ProductOptionsSelect, type ProductVariant, type ProductVariantsSelect, type ProductsSelect, type QueryBuilder, type QueryOptions, QueryProvider, type Return, type ReturnProduct, type ReturnProductsSelect, type ReturnsSelect, SDKError, type StaticAsset, type StaticAssetsSelect, type SupportedTimezones, TimeoutError, type Transaction, type TransactionsSelect, UnifiedQueryClient, type UnifiedQueryOptions, type User, type UserAuthOperations, type UsersSelect, ValidationError, createApiError, createBrowserClient, createConfigError, createNetworkError, createServerClient, createTimeoutError, createValidationError, generateOrderNumber, getQueryClient, isApiError, isConfigError, isNetworkError, isSDKError, isTimeoutError, isValidationError, objectFor, orderSchema };