@tbox.cn/app-contracts-mall 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4201 @@
1
+ /**
2
+ * 导购域卡片数据契约(011 S7:shopping-guide 11 卡 zod schema,TIER1)。
3
+ * 源:POC @tbox/shopping-guide contracts(TypeBox)→ zod 重写(coerce 语义按 D11 字符串化收窄)。
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const httpsUrlSchema: z.ZodString;
7
+ export declare const isoDateTimeSchema: z.ZodString;
8
+ export declare const moneySchema: z.ZodObject<{
9
+ currency: z.ZodLiteral<"CNY">;
10
+ amountMinor: z.ZodNumber;
11
+ display: z.ZodString;
12
+ }, "strip", z.ZodTypeAny, {
13
+ currency: "CNY";
14
+ amountMinor: number;
15
+ display: string;
16
+ }, {
17
+ currency: "CNY";
18
+ amountMinor: number;
19
+ display: string;
20
+ }>;
21
+ export declare const priceSummarySchema: z.ZodObject<{
22
+ sale: z.ZodOptional<z.ZodObject<{
23
+ currency: z.ZodLiteral<"CNY">;
24
+ amountMinor: z.ZodNumber;
25
+ display: z.ZodString;
26
+ }, "strip", z.ZodTypeAny, {
27
+ currency: "CNY";
28
+ amountMinor: number;
29
+ display: string;
30
+ }, {
31
+ currency: "CNY";
32
+ amountMinor: number;
33
+ display: string;
34
+ }>>;
35
+ original: z.ZodOptional<z.ZodObject<{
36
+ currency: z.ZodLiteral<"CNY">;
37
+ amountMinor: z.ZodNumber;
38
+ display: z.ZodString;
39
+ }, "strip", z.ZodTypeAny, {
40
+ currency: "CNY";
41
+ amountMinor: number;
42
+ display: string;
43
+ }, {
44
+ currency: "CNY";
45
+ amountMinor: number;
46
+ display: string;
47
+ }>>;
48
+ promotion: z.ZodOptional<z.ZodObject<{
49
+ currency: z.ZodLiteral<"CNY">;
50
+ amountMinor: z.ZodNumber;
51
+ display: z.ZodString;
52
+ }, "strip", z.ZodTypeAny, {
53
+ currency: "CNY";
54
+ amountMinor: number;
55
+ display: string;
56
+ }, {
57
+ currency: "CNY";
58
+ amountMinor: number;
59
+ display: string;
60
+ }>>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ sale?: {
63
+ currency: "CNY";
64
+ amountMinor: number;
65
+ display: string;
66
+ } | undefined;
67
+ original?: {
68
+ currency: "CNY";
69
+ amountMinor: number;
70
+ display: string;
71
+ } | undefined;
72
+ promotion?: {
73
+ currency: "CNY";
74
+ amountMinor: number;
75
+ display: string;
76
+ } | undefined;
77
+ }, {
78
+ sale?: {
79
+ currency: "CNY";
80
+ amountMinor: number;
81
+ display: string;
82
+ } | undefined;
83
+ original?: {
84
+ currency: "CNY";
85
+ amountMinor: number;
86
+ display: string;
87
+ } | undefined;
88
+ promotion?: {
89
+ currency: "CNY";
90
+ amountMinor: number;
91
+ display: string;
92
+ } | undefined;
93
+ }>;
94
+ export declare const evidenceSchema: z.ZodObject<{
95
+ code: z.ZodString;
96
+ label: z.ZodString;
97
+ value: z.ZodOptional<z.ZodString>;
98
+ observedAt: z.ZodString;
99
+ expiresAt: z.ZodOptional<z.ZodString>;
100
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ code: string;
103
+ label: string;
104
+ observedAt: string;
105
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
106
+ value?: string | undefined;
107
+ expiresAt?: string | undefined;
108
+ }, {
109
+ code: string;
110
+ label: string;
111
+ observedAt: string;
112
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
113
+ value?: string | undefined;
114
+ expiresAt?: string | undefined;
115
+ }>;
116
+ export declare const reasonItemSchema: z.ZodObject<{
117
+ code: z.ZodString;
118
+ label: z.ZodString;
119
+ }, "strip", z.ZodTypeAny, {
120
+ code: string;
121
+ label: string;
122
+ }, {
123
+ code: string;
124
+ label: string;
125
+ }>;
126
+ export declare const merchantLocationSchema: z.ZodObject<{
127
+ buildingName: z.ZodOptional<z.ZodString>;
128
+ floorName: z.ZodOptional<z.ZodString>;
129
+ unitName: z.ZodOptional<z.ZodString>;
130
+ displayText: z.ZodString;
131
+ poiId: z.ZodOptional<z.ZodString>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ displayText: string;
134
+ buildingName?: string | undefined;
135
+ floorName?: string | undefined;
136
+ unitName?: string | undefined;
137
+ poiId?: string | undefined;
138
+ }, {
139
+ displayText: string;
140
+ buildingName?: string | undefined;
141
+ floorName?: string | undefined;
142
+ unitName?: string | undefined;
143
+ poiId?: string | undefined;
144
+ }>;
145
+ export declare const merchantStatusSchema: z.ZodObject<{
146
+ code: z.ZodEnum<["enabled", "disabled", "unknown"]>;
147
+ label: z.ZodString;
148
+ observedAt: z.ZodString;
149
+ }, "strip", z.ZodTypeAny, {
150
+ code: "unknown" | "enabled" | "disabled";
151
+ label: string;
152
+ observedAt: string;
153
+ }, {
154
+ code: "unknown" | "enabled" | "disabled";
155
+ label: string;
156
+ observedAt: string;
157
+ }>;
158
+ export declare const pageInfoSchema: z.ZodObject<{
159
+ page: z.ZodNumber;
160
+ pageSize: z.ZodNumber;
161
+ total: z.ZodNumber;
162
+ hasMore: z.ZodBoolean;
163
+ }, "strip", z.ZodTypeAny, {
164
+ page: number;
165
+ pageSize: number;
166
+ total: number;
167
+ hasMore: boolean;
168
+ }, {
169
+ page: number;
170
+ pageSize: number;
171
+ total: number;
172
+ hasMore: boolean;
173
+ }>;
174
+ export declare const refinementSchema: z.ZodObject<{
175
+ label: z.ZodString;
176
+ queryText: z.ZodString;
177
+ }, "strip", z.ZodTypeAny, {
178
+ label: string;
179
+ queryText: string;
180
+ }, {
181
+ label: string;
182
+ queryText: string;
183
+ }>;
184
+ /** 卡内动作草稿(渲染端经 ActionGrant 签发后成为 componentAction) */
185
+ export declare const actionDraftSchema: z.ZodObject<{
186
+ actionId: z.ZodString;
187
+ label: z.ZodString;
188
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
189
+ }, "strip", z.ZodTypeAny, {
190
+ label: string;
191
+ actionId: string;
192
+ input?: Record<string, unknown> | undefined;
193
+ }, {
194
+ label: string;
195
+ actionId: string;
196
+ input?: Record<string, unknown> | undefined;
197
+ }>;
198
+ /** product-list(context: recommendation/search/similar/history) */
199
+ export declare const productListCardDataSchema: z.ZodObject<{
200
+ context: z.ZodEnum<["recommendation", "search", "similar", "history"]>;
201
+ summary: z.ZodOptional<z.ZodString>;
202
+ items: z.ZodArray<z.ZodObject<{
203
+ productId: z.ZodString;
204
+ name: z.ZodString;
205
+ imageUrl: z.ZodOptional<z.ZodString>;
206
+ brand: z.ZodOptional<z.ZodString>;
207
+ categoryPath: z.ZodArray<z.ZodString, "many">;
208
+ price: z.ZodObject<{
209
+ sale: z.ZodOptional<z.ZodObject<{
210
+ currency: z.ZodLiteral<"CNY">;
211
+ amountMinor: z.ZodNumber;
212
+ display: z.ZodString;
213
+ }, "strip", z.ZodTypeAny, {
214
+ currency: "CNY";
215
+ amountMinor: number;
216
+ display: string;
217
+ }, {
218
+ currency: "CNY";
219
+ amountMinor: number;
220
+ display: string;
221
+ }>>;
222
+ original: z.ZodOptional<z.ZodObject<{
223
+ currency: z.ZodLiteral<"CNY">;
224
+ amountMinor: z.ZodNumber;
225
+ display: z.ZodString;
226
+ }, "strip", z.ZodTypeAny, {
227
+ currency: "CNY";
228
+ amountMinor: number;
229
+ display: string;
230
+ }, {
231
+ currency: "CNY";
232
+ amountMinor: number;
233
+ display: string;
234
+ }>>;
235
+ promotion: z.ZodOptional<z.ZodObject<{
236
+ currency: z.ZodLiteral<"CNY">;
237
+ amountMinor: z.ZodNumber;
238
+ display: z.ZodString;
239
+ }, "strip", z.ZodTypeAny, {
240
+ currency: "CNY";
241
+ amountMinor: number;
242
+ display: string;
243
+ }, {
244
+ currency: "CNY";
245
+ amountMinor: number;
246
+ display: string;
247
+ }>>;
248
+ }, "strip", z.ZodTypeAny, {
249
+ sale?: {
250
+ currency: "CNY";
251
+ amountMinor: number;
252
+ display: string;
253
+ } | undefined;
254
+ original?: {
255
+ currency: "CNY";
256
+ amountMinor: number;
257
+ display: string;
258
+ } | undefined;
259
+ promotion?: {
260
+ currency: "CNY";
261
+ amountMinor: number;
262
+ display: string;
263
+ } | undefined;
264
+ }, {
265
+ sale?: {
266
+ currency: "CNY";
267
+ amountMinor: number;
268
+ display: string;
269
+ } | undefined;
270
+ original?: {
271
+ currency: "CNY";
272
+ amountMinor: number;
273
+ display: string;
274
+ } | undefined;
275
+ promotion?: {
276
+ currency: "CNY";
277
+ amountMinor: number;
278
+ display: string;
279
+ } | undefined;
280
+ }>;
281
+ availability: z.ZodObject<{
282
+ status: z.ZodEnum<["in_stock", "out_of_stock", "limited", "unknown"]>;
283
+ label: z.ZodString;
284
+ marketable: z.ZodBoolean;
285
+ observedAt: z.ZodString;
286
+ }, "strip", z.ZodTypeAny, {
287
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
288
+ label: string;
289
+ observedAt: string;
290
+ marketable: boolean;
291
+ }, {
292
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
293
+ label: string;
294
+ observedAt: string;
295
+ marketable: boolean;
296
+ }>;
297
+ merchant: z.ZodObject<{
298
+ merchantId: z.ZodString;
299
+ name: z.ZodString;
300
+ location: z.ZodOptional<z.ZodObject<{
301
+ buildingName: z.ZodOptional<z.ZodString>;
302
+ floorName: z.ZodOptional<z.ZodString>;
303
+ unitName: z.ZodOptional<z.ZodString>;
304
+ displayText: z.ZodString;
305
+ poiId: z.ZodOptional<z.ZodString>;
306
+ }, "strip", z.ZodTypeAny, {
307
+ displayText: string;
308
+ buildingName?: string | undefined;
309
+ floorName?: string | undefined;
310
+ unitName?: string | undefined;
311
+ poiId?: string | undefined;
312
+ }, {
313
+ displayText: string;
314
+ buildingName?: string | undefined;
315
+ floorName?: string | undefined;
316
+ unitName?: string | undefined;
317
+ poiId?: string | undefined;
318
+ }>>;
319
+ }, "strip", z.ZodTypeAny, {
320
+ name: string;
321
+ merchantId: string;
322
+ location?: {
323
+ displayText: string;
324
+ buildingName?: string | undefined;
325
+ floorName?: string | undefined;
326
+ unitName?: string | undefined;
327
+ poiId?: string | undefined;
328
+ } | undefined;
329
+ }, {
330
+ name: string;
331
+ merchantId: string;
332
+ location?: {
333
+ displayText: string;
334
+ buildingName?: string | undefined;
335
+ floorName?: string | undefined;
336
+ unitName?: string | undefined;
337
+ poiId?: string | undefined;
338
+ } | undefined;
339
+ }>;
340
+ badges: z.ZodArray<z.ZodString, "many">;
341
+ reasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
342
+ code: z.ZodString;
343
+ label: z.ZodString;
344
+ }, "strip", z.ZodTypeAny, {
345
+ code: string;
346
+ label: string;
347
+ }, {
348
+ code: string;
349
+ label: string;
350
+ }>, "many">>;
351
+ evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
352
+ code: z.ZodString;
353
+ label: z.ZodString;
354
+ value: z.ZodOptional<z.ZodString>;
355
+ observedAt: z.ZodString;
356
+ expiresAt: z.ZodOptional<z.ZodString>;
357
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
358
+ }, "strip", z.ZodTypeAny, {
359
+ code: string;
360
+ label: string;
361
+ observedAt: string;
362
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
363
+ value?: string | undefined;
364
+ expiresAt?: string | undefined;
365
+ }, {
366
+ code: string;
367
+ label: string;
368
+ observedAt: string;
369
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
370
+ value?: string | undefined;
371
+ expiresAt?: string | undefined;
372
+ }>, "many">>;
373
+ caveats: z.ZodArray<z.ZodString, "many">;
374
+ itemActions: z.ZodArray<z.ZodObject<{
375
+ actionId: z.ZodString;
376
+ label: z.ZodString;
377
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
378
+ }, "strip", z.ZodTypeAny, {
379
+ label: string;
380
+ actionId: string;
381
+ input?: Record<string, unknown> | undefined;
382
+ }, {
383
+ label: string;
384
+ actionId: string;
385
+ input?: Record<string, unknown> | undefined;
386
+ }>, "many">;
387
+ }, "strip", z.ZodTypeAny, {
388
+ name: string;
389
+ merchant: {
390
+ name: string;
391
+ merchantId: string;
392
+ location?: {
393
+ displayText: string;
394
+ buildingName?: string | undefined;
395
+ floorName?: string | undefined;
396
+ unitName?: string | undefined;
397
+ poiId?: string | undefined;
398
+ } | undefined;
399
+ };
400
+ productId: string;
401
+ categoryPath: string[];
402
+ price: {
403
+ sale?: {
404
+ currency: "CNY";
405
+ amountMinor: number;
406
+ display: string;
407
+ } | undefined;
408
+ original?: {
409
+ currency: "CNY";
410
+ amountMinor: number;
411
+ display: string;
412
+ } | undefined;
413
+ promotion?: {
414
+ currency: "CNY";
415
+ amountMinor: number;
416
+ display: string;
417
+ } | undefined;
418
+ };
419
+ availability: {
420
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
421
+ label: string;
422
+ observedAt: string;
423
+ marketable: boolean;
424
+ };
425
+ badges: string[];
426
+ caveats: string[];
427
+ itemActions: {
428
+ label: string;
429
+ actionId: string;
430
+ input?: Record<string, unknown> | undefined;
431
+ }[];
432
+ imageUrl?: string | undefined;
433
+ brand?: string | undefined;
434
+ reasons?: {
435
+ code: string;
436
+ label: string;
437
+ }[] | undefined;
438
+ evidence?: {
439
+ code: string;
440
+ label: string;
441
+ observedAt: string;
442
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
443
+ value?: string | undefined;
444
+ expiresAt?: string | undefined;
445
+ }[] | undefined;
446
+ }, {
447
+ name: string;
448
+ merchant: {
449
+ name: string;
450
+ merchantId: string;
451
+ location?: {
452
+ displayText: string;
453
+ buildingName?: string | undefined;
454
+ floorName?: string | undefined;
455
+ unitName?: string | undefined;
456
+ poiId?: string | undefined;
457
+ } | undefined;
458
+ };
459
+ productId: string;
460
+ categoryPath: string[];
461
+ price: {
462
+ sale?: {
463
+ currency: "CNY";
464
+ amountMinor: number;
465
+ display: string;
466
+ } | undefined;
467
+ original?: {
468
+ currency: "CNY";
469
+ amountMinor: number;
470
+ display: string;
471
+ } | undefined;
472
+ promotion?: {
473
+ currency: "CNY";
474
+ amountMinor: number;
475
+ display: string;
476
+ } | undefined;
477
+ };
478
+ availability: {
479
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
480
+ label: string;
481
+ observedAt: string;
482
+ marketable: boolean;
483
+ };
484
+ badges: string[];
485
+ caveats: string[];
486
+ itemActions: {
487
+ label: string;
488
+ actionId: string;
489
+ input?: Record<string, unknown> | undefined;
490
+ }[];
491
+ imageUrl?: string | undefined;
492
+ brand?: string | undefined;
493
+ reasons?: {
494
+ code: string;
495
+ label: string;
496
+ }[] | undefined;
497
+ evidence?: {
498
+ code: string;
499
+ label: string;
500
+ observedAt: string;
501
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
502
+ value?: string | undefined;
503
+ expiresAt?: string | undefined;
504
+ }[] | undefined;
505
+ }>, "many">;
506
+ noResultsReason: z.ZodOptional<z.ZodString>;
507
+ pageInfo: z.ZodOptional<z.ZodObject<{
508
+ page: z.ZodNumber;
509
+ pageSize: z.ZodNumber;
510
+ total: z.ZodNumber;
511
+ hasMore: z.ZodBoolean;
512
+ }, "strip", z.ZodTypeAny, {
513
+ page: number;
514
+ pageSize: number;
515
+ total: number;
516
+ hasMore: boolean;
517
+ }, {
518
+ page: number;
519
+ pageSize: number;
520
+ total: number;
521
+ hasMore: boolean;
522
+ }>>;
523
+ refinements: z.ZodArray<z.ZodObject<{
524
+ label: z.ZodString;
525
+ queryText: z.ZodString;
526
+ }, "strip", z.ZodTypeAny, {
527
+ label: string;
528
+ queryText: string;
529
+ }, {
530
+ label: string;
531
+ queryText: string;
532
+ }>, "many">;
533
+ }, "strip", z.ZodTypeAny, {
534
+ context: "recommendation" | "search" | "similar" | "history";
535
+ items: {
536
+ name: string;
537
+ merchant: {
538
+ name: string;
539
+ merchantId: string;
540
+ location?: {
541
+ displayText: string;
542
+ buildingName?: string | undefined;
543
+ floorName?: string | undefined;
544
+ unitName?: string | undefined;
545
+ poiId?: string | undefined;
546
+ } | undefined;
547
+ };
548
+ productId: string;
549
+ categoryPath: string[];
550
+ price: {
551
+ sale?: {
552
+ currency: "CNY";
553
+ amountMinor: number;
554
+ display: string;
555
+ } | undefined;
556
+ original?: {
557
+ currency: "CNY";
558
+ amountMinor: number;
559
+ display: string;
560
+ } | undefined;
561
+ promotion?: {
562
+ currency: "CNY";
563
+ amountMinor: number;
564
+ display: string;
565
+ } | undefined;
566
+ };
567
+ availability: {
568
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
569
+ label: string;
570
+ observedAt: string;
571
+ marketable: boolean;
572
+ };
573
+ badges: string[];
574
+ caveats: string[];
575
+ itemActions: {
576
+ label: string;
577
+ actionId: string;
578
+ input?: Record<string, unknown> | undefined;
579
+ }[];
580
+ imageUrl?: string | undefined;
581
+ brand?: string | undefined;
582
+ reasons?: {
583
+ code: string;
584
+ label: string;
585
+ }[] | undefined;
586
+ evidence?: {
587
+ code: string;
588
+ label: string;
589
+ observedAt: string;
590
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
591
+ value?: string | undefined;
592
+ expiresAt?: string | undefined;
593
+ }[] | undefined;
594
+ }[];
595
+ refinements: {
596
+ label: string;
597
+ queryText: string;
598
+ }[];
599
+ summary?: string | undefined;
600
+ noResultsReason?: string | undefined;
601
+ pageInfo?: {
602
+ page: number;
603
+ pageSize: number;
604
+ total: number;
605
+ hasMore: boolean;
606
+ } | undefined;
607
+ }, {
608
+ context: "recommendation" | "search" | "similar" | "history";
609
+ items: {
610
+ name: string;
611
+ merchant: {
612
+ name: string;
613
+ merchantId: string;
614
+ location?: {
615
+ displayText: string;
616
+ buildingName?: string | undefined;
617
+ floorName?: string | undefined;
618
+ unitName?: string | undefined;
619
+ poiId?: string | undefined;
620
+ } | undefined;
621
+ };
622
+ productId: string;
623
+ categoryPath: string[];
624
+ price: {
625
+ sale?: {
626
+ currency: "CNY";
627
+ amountMinor: number;
628
+ display: string;
629
+ } | undefined;
630
+ original?: {
631
+ currency: "CNY";
632
+ amountMinor: number;
633
+ display: string;
634
+ } | undefined;
635
+ promotion?: {
636
+ currency: "CNY";
637
+ amountMinor: number;
638
+ display: string;
639
+ } | undefined;
640
+ };
641
+ availability: {
642
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
643
+ label: string;
644
+ observedAt: string;
645
+ marketable: boolean;
646
+ };
647
+ badges: string[];
648
+ caveats: string[];
649
+ itemActions: {
650
+ label: string;
651
+ actionId: string;
652
+ input?: Record<string, unknown> | undefined;
653
+ }[];
654
+ imageUrl?: string | undefined;
655
+ brand?: string | undefined;
656
+ reasons?: {
657
+ code: string;
658
+ label: string;
659
+ }[] | undefined;
660
+ evidence?: {
661
+ code: string;
662
+ label: string;
663
+ observedAt: string;
664
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
665
+ value?: string | undefined;
666
+ expiresAt?: string | undefined;
667
+ }[] | undefined;
668
+ }[];
669
+ refinements: {
670
+ label: string;
671
+ queryText: string;
672
+ }[];
673
+ summary?: string | undefined;
674
+ noResultsReason?: string | undefined;
675
+ pageInfo?: {
676
+ page: number;
677
+ pageSize: number;
678
+ total: number;
679
+ hasMore: boolean;
680
+ } | undefined;
681
+ }>;
682
+ export type ProductListCardData = z.infer<typeof productListCardDataSchema>;
683
+ /** merchant-list(context: recommendation/search) */
684
+ export declare const merchantListCardDataSchema: z.ZodObject<{
685
+ context: z.ZodEnum<["recommendation", "search"]>;
686
+ summary: z.ZodOptional<z.ZodString>;
687
+ items: z.ZodArray<z.ZodObject<{
688
+ merchantId: z.ZodString;
689
+ name: z.ZodString;
690
+ logoUrl: z.ZodOptional<z.ZodString>;
691
+ coverUrl: z.ZodOptional<z.ZodString>;
692
+ brand: z.ZodOptional<z.ZodString>;
693
+ businessCategories: z.ZodArray<z.ZodString, "many">;
694
+ location: z.ZodObject<{
695
+ buildingName: z.ZodOptional<z.ZodString>;
696
+ floorName: z.ZodOptional<z.ZodString>;
697
+ unitName: z.ZodOptional<z.ZodString>;
698
+ displayText: z.ZodString;
699
+ poiId: z.ZodOptional<z.ZodString>;
700
+ }, "strip", z.ZodTypeAny, {
701
+ displayText: string;
702
+ buildingName?: string | undefined;
703
+ floorName?: string | undefined;
704
+ unitName?: string | undefined;
705
+ poiId?: string | undefined;
706
+ }, {
707
+ displayText: string;
708
+ buildingName?: string | undefined;
709
+ floorName?: string | undefined;
710
+ unitName?: string | undefined;
711
+ poiId?: string | undefined;
712
+ }>;
713
+ status: z.ZodObject<{
714
+ code: z.ZodEnum<["enabled", "disabled", "unknown"]>;
715
+ label: z.ZodString;
716
+ observedAt: z.ZodString;
717
+ }, "strip", z.ZodTypeAny, {
718
+ code: "unknown" | "enabled" | "disabled";
719
+ label: string;
720
+ observedAt: string;
721
+ }, {
722
+ code: "unknown" | "enabled" | "disabled";
723
+ label: string;
724
+ observedAt: string;
725
+ }>;
726
+ services: z.ZodArray<z.ZodString, "many">;
727
+ promotionFacts: z.ZodArray<z.ZodString, "many">;
728
+ reasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
729
+ code: z.ZodString;
730
+ label: z.ZodString;
731
+ }, "strip", z.ZodTypeAny, {
732
+ code: string;
733
+ label: string;
734
+ }, {
735
+ code: string;
736
+ label: string;
737
+ }>, "many">>;
738
+ evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
739
+ code: z.ZodString;
740
+ label: z.ZodString;
741
+ value: z.ZodOptional<z.ZodString>;
742
+ observedAt: z.ZodString;
743
+ expiresAt: z.ZodOptional<z.ZodString>;
744
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
745
+ }, "strip", z.ZodTypeAny, {
746
+ code: string;
747
+ label: string;
748
+ observedAt: string;
749
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
750
+ value?: string | undefined;
751
+ expiresAt?: string | undefined;
752
+ }, {
753
+ code: string;
754
+ label: string;
755
+ observedAt: string;
756
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
757
+ value?: string | undefined;
758
+ expiresAt?: string | undefined;
759
+ }>, "many">>;
760
+ itemActions: z.ZodArray<z.ZodObject<{
761
+ actionId: z.ZodString;
762
+ label: z.ZodString;
763
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
764
+ }, "strip", z.ZodTypeAny, {
765
+ label: string;
766
+ actionId: string;
767
+ input?: Record<string, unknown> | undefined;
768
+ }, {
769
+ label: string;
770
+ actionId: string;
771
+ input?: Record<string, unknown> | undefined;
772
+ }>, "many">;
773
+ }, "strip", z.ZodTypeAny, {
774
+ status: {
775
+ code: "unknown" | "enabled" | "disabled";
776
+ label: string;
777
+ observedAt: string;
778
+ };
779
+ name: string;
780
+ merchantId: string;
781
+ location: {
782
+ displayText: string;
783
+ buildingName?: string | undefined;
784
+ floorName?: string | undefined;
785
+ unitName?: string | undefined;
786
+ poiId?: string | undefined;
787
+ };
788
+ itemActions: {
789
+ label: string;
790
+ actionId: string;
791
+ input?: Record<string, unknown> | undefined;
792
+ }[];
793
+ businessCategories: string[];
794
+ services: string[];
795
+ promotionFacts: string[];
796
+ brand?: string | undefined;
797
+ reasons?: {
798
+ code: string;
799
+ label: string;
800
+ }[] | undefined;
801
+ evidence?: {
802
+ code: string;
803
+ label: string;
804
+ observedAt: string;
805
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
806
+ value?: string | undefined;
807
+ expiresAt?: string | undefined;
808
+ }[] | undefined;
809
+ logoUrl?: string | undefined;
810
+ coverUrl?: string | undefined;
811
+ }, {
812
+ status: {
813
+ code: "unknown" | "enabled" | "disabled";
814
+ label: string;
815
+ observedAt: string;
816
+ };
817
+ name: string;
818
+ merchantId: string;
819
+ location: {
820
+ displayText: string;
821
+ buildingName?: string | undefined;
822
+ floorName?: string | undefined;
823
+ unitName?: string | undefined;
824
+ poiId?: string | undefined;
825
+ };
826
+ itemActions: {
827
+ label: string;
828
+ actionId: string;
829
+ input?: Record<string, unknown> | undefined;
830
+ }[];
831
+ businessCategories: string[];
832
+ services: string[];
833
+ promotionFacts: string[];
834
+ brand?: string | undefined;
835
+ reasons?: {
836
+ code: string;
837
+ label: string;
838
+ }[] | undefined;
839
+ evidence?: {
840
+ code: string;
841
+ label: string;
842
+ observedAt: string;
843
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
844
+ value?: string | undefined;
845
+ expiresAt?: string | undefined;
846
+ }[] | undefined;
847
+ logoUrl?: string | undefined;
848
+ coverUrl?: string | undefined;
849
+ }>, "many">;
850
+ noResultsReason: z.ZodOptional<z.ZodString>;
851
+ pageInfo: z.ZodOptional<z.ZodObject<{
852
+ page: z.ZodNumber;
853
+ pageSize: z.ZodNumber;
854
+ total: z.ZodNumber;
855
+ hasMore: z.ZodBoolean;
856
+ }, "strip", z.ZodTypeAny, {
857
+ page: number;
858
+ pageSize: number;
859
+ total: number;
860
+ hasMore: boolean;
861
+ }, {
862
+ page: number;
863
+ pageSize: number;
864
+ total: number;
865
+ hasMore: boolean;
866
+ }>>;
867
+ refinements: z.ZodArray<z.ZodObject<{
868
+ label: z.ZodString;
869
+ queryText: z.ZodString;
870
+ }, "strip", z.ZodTypeAny, {
871
+ label: string;
872
+ queryText: string;
873
+ }, {
874
+ label: string;
875
+ queryText: string;
876
+ }>, "many">;
877
+ }, "strip", z.ZodTypeAny, {
878
+ context: "recommendation" | "search";
879
+ items: {
880
+ status: {
881
+ code: "unknown" | "enabled" | "disabled";
882
+ label: string;
883
+ observedAt: string;
884
+ };
885
+ name: string;
886
+ merchantId: string;
887
+ location: {
888
+ displayText: string;
889
+ buildingName?: string | undefined;
890
+ floorName?: string | undefined;
891
+ unitName?: string | undefined;
892
+ poiId?: string | undefined;
893
+ };
894
+ itemActions: {
895
+ label: string;
896
+ actionId: string;
897
+ input?: Record<string, unknown> | undefined;
898
+ }[];
899
+ businessCategories: string[];
900
+ services: string[];
901
+ promotionFacts: string[];
902
+ brand?: string | undefined;
903
+ reasons?: {
904
+ code: string;
905
+ label: string;
906
+ }[] | undefined;
907
+ evidence?: {
908
+ code: string;
909
+ label: string;
910
+ observedAt: string;
911
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
912
+ value?: string | undefined;
913
+ expiresAt?: string | undefined;
914
+ }[] | undefined;
915
+ logoUrl?: string | undefined;
916
+ coverUrl?: string | undefined;
917
+ }[];
918
+ refinements: {
919
+ label: string;
920
+ queryText: string;
921
+ }[];
922
+ summary?: string | undefined;
923
+ noResultsReason?: string | undefined;
924
+ pageInfo?: {
925
+ page: number;
926
+ pageSize: number;
927
+ total: number;
928
+ hasMore: boolean;
929
+ } | undefined;
930
+ }, {
931
+ context: "recommendation" | "search";
932
+ items: {
933
+ status: {
934
+ code: "unknown" | "enabled" | "disabled";
935
+ label: string;
936
+ observedAt: string;
937
+ };
938
+ name: string;
939
+ merchantId: string;
940
+ location: {
941
+ displayText: string;
942
+ buildingName?: string | undefined;
943
+ floorName?: string | undefined;
944
+ unitName?: string | undefined;
945
+ poiId?: string | undefined;
946
+ };
947
+ itemActions: {
948
+ label: string;
949
+ actionId: string;
950
+ input?: Record<string, unknown> | undefined;
951
+ }[];
952
+ businessCategories: string[];
953
+ services: string[];
954
+ promotionFacts: string[];
955
+ brand?: string | undefined;
956
+ reasons?: {
957
+ code: string;
958
+ label: string;
959
+ }[] | undefined;
960
+ evidence?: {
961
+ code: string;
962
+ label: string;
963
+ observedAt: string;
964
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
965
+ value?: string | undefined;
966
+ expiresAt?: string | undefined;
967
+ }[] | undefined;
968
+ logoUrl?: string | undefined;
969
+ coverUrl?: string | undefined;
970
+ }[];
971
+ refinements: {
972
+ label: string;
973
+ queryText: string;
974
+ }[];
975
+ summary?: string | undefined;
976
+ noResultsReason?: string | undefined;
977
+ pageInfo?: {
978
+ page: number;
979
+ pageSize: number;
980
+ total: number;
981
+ hasMore: boolean;
982
+ } | undefined;
983
+ }>;
984
+ export type MerchantListCardData = z.infer<typeof merchantListCardDataSchema>;
985
+ /** product-detail */
986
+ export declare const productDetailCardDataSchema: z.ZodObject<{
987
+ productId: z.ZodString;
988
+ name: z.ZodString;
989
+ description: z.ZodOptional<z.ZodString>;
990
+ imageUrls: z.ZodArray<z.ZodString, "many">;
991
+ brand: z.ZodOptional<z.ZodString>;
992
+ categoryPath: z.ZodArray<z.ZodString, "many">;
993
+ price: z.ZodObject<{
994
+ sale: z.ZodOptional<z.ZodObject<{
995
+ currency: z.ZodLiteral<"CNY">;
996
+ amountMinor: z.ZodNumber;
997
+ display: z.ZodString;
998
+ }, "strip", z.ZodTypeAny, {
999
+ currency: "CNY";
1000
+ amountMinor: number;
1001
+ display: string;
1002
+ }, {
1003
+ currency: "CNY";
1004
+ amountMinor: number;
1005
+ display: string;
1006
+ }>>;
1007
+ original: z.ZodOptional<z.ZodObject<{
1008
+ currency: z.ZodLiteral<"CNY">;
1009
+ amountMinor: z.ZodNumber;
1010
+ display: z.ZodString;
1011
+ }, "strip", z.ZodTypeAny, {
1012
+ currency: "CNY";
1013
+ amountMinor: number;
1014
+ display: string;
1015
+ }, {
1016
+ currency: "CNY";
1017
+ amountMinor: number;
1018
+ display: string;
1019
+ }>>;
1020
+ promotion: z.ZodOptional<z.ZodObject<{
1021
+ currency: z.ZodLiteral<"CNY">;
1022
+ amountMinor: z.ZodNumber;
1023
+ display: z.ZodString;
1024
+ }, "strip", z.ZodTypeAny, {
1025
+ currency: "CNY";
1026
+ amountMinor: number;
1027
+ display: string;
1028
+ }, {
1029
+ currency: "CNY";
1030
+ amountMinor: number;
1031
+ display: string;
1032
+ }>>;
1033
+ }, "strip", z.ZodTypeAny, {
1034
+ sale?: {
1035
+ currency: "CNY";
1036
+ amountMinor: number;
1037
+ display: string;
1038
+ } | undefined;
1039
+ original?: {
1040
+ currency: "CNY";
1041
+ amountMinor: number;
1042
+ display: string;
1043
+ } | undefined;
1044
+ promotion?: {
1045
+ currency: "CNY";
1046
+ amountMinor: number;
1047
+ display: string;
1048
+ } | undefined;
1049
+ }, {
1050
+ sale?: {
1051
+ currency: "CNY";
1052
+ amountMinor: number;
1053
+ display: string;
1054
+ } | undefined;
1055
+ original?: {
1056
+ currency: "CNY";
1057
+ amountMinor: number;
1058
+ display: string;
1059
+ } | undefined;
1060
+ promotion?: {
1061
+ currency: "CNY";
1062
+ amountMinor: number;
1063
+ display: string;
1064
+ } | undefined;
1065
+ }>;
1066
+ availability: z.ZodObject<{
1067
+ status: z.ZodEnum<["in_stock", "out_of_stock", "limited", "unknown"]>;
1068
+ label: z.ZodString;
1069
+ marketable: z.ZodBoolean;
1070
+ observedAt: z.ZodString;
1071
+ }, "strip", z.ZodTypeAny, {
1072
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1073
+ label: string;
1074
+ observedAt: string;
1075
+ marketable: boolean;
1076
+ }, {
1077
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1078
+ label: string;
1079
+ observedAt: string;
1080
+ marketable: boolean;
1081
+ }>;
1082
+ merchant: z.ZodObject<{
1083
+ merchantId: z.ZodString;
1084
+ name: z.ZodString;
1085
+ location: z.ZodOptional<z.ZodObject<{
1086
+ buildingName: z.ZodOptional<z.ZodString>;
1087
+ floorName: z.ZodOptional<z.ZodString>;
1088
+ unitName: z.ZodOptional<z.ZodString>;
1089
+ displayText: z.ZodString;
1090
+ poiId: z.ZodOptional<z.ZodString>;
1091
+ }, "strip", z.ZodTypeAny, {
1092
+ displayText: string;
1093
+ buildingName?: string | undefined;
1094
+ floorName?: string | undefined;
1095
+ unitName?: string | undefined;
1096
+ poiId?: string | undefined;
1097
+ }, {
1098
+ displayText: string;
1099
+ buildingName?: string | undefined;
1100
+ floorName?: string | undefined;
1101
+ unitName?: string | undefined;
1102
+ poiId?: string | undefined;
1103
+ }>>;
1104
+ }, "strip", z.ZodTypeAny, {
1105
+ name: string;
1106
+ merchantId: string;
1107
+ location?: {
1108
+ displayText: string;
1109
+ buildingName?: string | undefined;
1110
+ floorName?: string | undefined;
1111
+ unitName?: string | undefined;
1112
+ poiId?: string | undefined;
1113
+ } | undefined;
1114
+ }, {
1115
+ name: string;
1116
+ merchantId: string;
1117
+ location?: {
1118
+ displayText: string;
1119
+ buildingName?: string | undefined;
1120
+ floorName?: string | undefined;
1121
+ unitName?: string | undefined;
1122
+ poiId?: string | undefined;
1123
+ } | undefined;
1124
+ }>;
1125
+ attributes: z.ZodArray<z.ZodObject<{
1126
+ name: z.ZodString;
1127
+ value: z.ZodString;
1128
+ }, "strip", z.ZodTypeAny, {
1129
+ value: string;
1130
+ name: string;
1131
+ }, {
1132
+ value: string;
1133
+ name: string;
1134
+ }>, "many">;
1135
+ promotionFacts: z.ZodArray<z.ZodString, "many">;
1136
+ evidence: z.ZodArray<z.ZodObject<{
1137
+ code: z.ZodString;
1138
+ label: z.ZodString;
1139
+ value: z.ZodOptional<z.ZodString>;
1140
+ observedAt: z.ZodString;
1141
+ expiresAt: z.ZodOptional<z.ZodString>;
1142
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
1143
+ }, "strip", z.ZodTypeAny, {
1144
+ code: string;
1145
+ label: string;
1146
+ observedAt: string;
1147
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
1148
+ value?: string | undefined;
1149
+ expiresAt?: string | undefined;
1150
+ }, {
1151
+ code: string;
1152
+ label: string;
1153
+ observedAt: string;
1154
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
1155
+ value?: string | undefined;
1156
+ expiresAt?: string | undefined;
1157
+ }>, "many">;
1158
+ humanGuideAvailable: z.ZodBoolean;
1159
+ itemActions: z.ZodArray<z.ZodObject<{
1160
+ actionId: z.ZodString;
1161
+ label: z.ZodString;
1162
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1163
+ }, "strip", z.ZodTypeAny, {
1164
+ label: string;
1165
+ actionId: string;
1166
+ input?: Record<string, unknown> | undefined;
1167
+ }, {
1168
+ label: string;
1169
+ actionId: string;
1170
+ input?: Record<string, unknown> | undefined;
1171
+ }>, "many">;
1172
+ }, "strip", z.ZodTypeAny, {
1173
+ name: string;
1174
+ merchant: {
1175
+ name: string;
1176
+ merchantId: string;
1177
+ location?: {
1178
+ displayText: string;
1179
+ buildingName?: string | undefined;
1180
+ floorName?: string | undefined;
1181
+ unitName?: string | undefined;
1182
+ poiId?: string | undefined;
1183
+ } | undefined;
1184
+ };
1185
+ productId: string;
1186
+ categoryPath: string[];
1187
+ price: {
1188
+ sale?: {
1189
+ currency: "CNY";
1190
+ amountMinor: number;
1191
+ display: string;
1192
+ } | undefined;
1193
+ original?: {
1194
+ currency: "CNY";
1195
+ amountMinor: number;
1196
+ display: string;
1197
+ } | undefined;
1198
+ promotion?: {
1199
+ currency: "CNY";
1200
+ amountMinor: number;
1201
+ display: string;
1202
+ } | undefined;
1203
+ };
1204
+ availability: {
1205
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1206
+ label: string;
1207
+ observedAt: string;
1208
+ marketable: boolean;
1209
+ };
1210
+ evidence: {
1211
+ code: string;
1212
+ label: string;
1213
+ observedAt: string;
1214
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
1215
+ value?: string | undefined;
1216
+ expiresAt?: string | undefined;
1217
+ }[];
1218
+ itemActions: {
1219
+ label: string;
1220
+ actionId: string;
1221
+ input?: Record<string, unknown> | undefined;
1222
+ }[];
1223
+ promotionFacts: string[];
1224
+ imageUrls: string[];
1225
+ attributes: {
1226
+ value: string;
1227
+ name: string;
1228
+ }[];
1229
+ humanGuideAvailable: boolean;
1230
+ description?: string | undefined;
1231
+ brand?: string | undefined;
1232
+ }, {
1233
+ name: string;
1234
+ merchant: {
1235
+ name: string;
1236
+ merchantId: string;
1237
+ location?: {
1238
+ displayText: string;
1239
+ buildingName?: string | undefined;
1240
+ floorName?: string | undefined;
1241
+ unitName?: string | undefined;
1242
+ poiId?: string | undefined;
1243
+ } | undefined;
1244
+ };
1245
+ productId: string;
1246
+ categoryPath: string[];
1247
+ price: {
1248
+ sale?: {
1249
+ currency: "CNY";
1250
+ amountMinor: number;
1251
+ display: string;
1252
+ } | undefined;
1253
+ original?: {
1254
+ currency: "CNY";
1255
+ amountMinor: number;
1256
+ display: string;
1257
+ } | undefined;
1258
+ promotion?: {
1259
+ currency: "CNY";
1260
+ amountMinor: number;
1261
+ display: string;
1262
+ } | undefined;
1263
+ };
1264
+ availability: {
1265
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1266
+ label: string;
1267
+ observedAt: string;
1268
+ marketable: boolean;
1269
+ };
1270
+ evidence: {
1271
+ code: string;
1272
+ label: string;
1273
+ observedAt: string;
1274
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
1275
+ value?: string | undefined;
1276
+ expiresAt?: string | undefined;
1277
+ }[];
1278
+ itemActions: {
1279
+ label: string;
1280
+ actionId: string;
1281
+ input?: Record<string, unknown> | undefined;
1282
+ }[];
1283
+ promotionFacts: string[];
1284
+ imageUrls: string[];
1285
+ attributes: {
1286
+ value: string;
1287
+ name: string;
1288
+ }[];
1289
+ humanGuideAvailable: boolean;
1290
+ description?: string | undefined;
1291
+ brand?: string | undefined;
1292
+ }>;
1293
+ export type ProductDetailCardData = z.infer<typeof productDetailCardDataSchema>;
1294
+ /** merchant-detail */
1295
+ export declare const merchantDetailCardDataSchema: z.ZodObject<{
1296
+ merchantId: z.ZodString;
1297
+ name: z.ZodString;
1298
+ logoUrl: z.ZodOptional<z.ZodString>;
1299
+ coverUrls: z.ZodArray<z.ZodString, "many">;
1300
+ brand: z.ZodOptional<z.ZodString>;
1301
+ businessCategories: z.ZodArray<z.ZodString, "many">;
1302
+ location: z.ZodObject<{
1303
+ buildingName: z.ZodOptional<z.ZodString>;
1304
+ floorName: z.ZodOptional<z.ZodString>;
1305
+ unitName: z.ZodOptional<z.ZodString>;
1306
+ displayText: z.ZodString;
1307
+ poiId: z.ZodOptional<z.ZodString>;
1308
+ }, "strip", z.ZodTypeAny, {
1309
+ displayText: string;
1310
+ buildingName?: string | undefined;
1311
+ floorName?: string | undefined;
1312
+ unitName?: string | undefined;
1313
+ poiId?: string | undefined;
1314
+ }, {
1315
+ displayText: string;
1316
+ buildingName?: string | undefined;
1317
+ floorName?: string | undefined;
1318
+ unitName?: string | undefined;
1319
+ poiId?: string | undefined;
1320
+ }>;
1321
+ status: z.ZodObject<{
1322
+ code: z.ZodEnum<["enabled", "disabled", "unknown"]>;
1323
+ label: z.ZodString;
1324
+ observedAt: z.ZodString;
1325
+ }, "strip", z.ZodTypeAny, {
1326
+ code: "unknown" | "enabled" | "disabled";
1327
+ label: string;
1328
+ observedAt: string;
1329
+ }, {
1330
+ code: "unknown" | "enabled" | "disabled";
1331
+ label: string;
1332
+ observedAt: string;
1333
+ }>;
1334
+ description: z.ZodOptional<z.ZodString>;
1335
+ contactInfo: z.ZodOptional<z.ZodArray<z.ZodObject<{
1336
+ channel: z.ZodString;
1337
+ value: z.ZodString;
1338
+ }, "strip", z.ZodTypeAny, {
1339
+ value: string;
1340
+ channel: string;
1341
+ }, {
1342
+ value: string;
1343
+ channel: string;
1344
+ }>, "many">>;
1345
+ services: z.ZodArray<z.ZodString, "many">;
1346
+ promotionFacts: z.ZodArray<z.ZodString, "many">;
1347
+ evidence: z.ZodArray<z.ZodObject<{
1348
+ code: z.ZodString;
1349
+ label: z.ZodString;
1350
+ value: z.ZodOptional<z.ZodString>;
1351
+ observedAt: z.ZodString;
1352
+ expiresAt: z.ZodOptional<z.ZodString>;
1353
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
1354
+ }, "strip", z.ZodTypeAny, {
1355
+ code: string;
1356
+ label: string;
1357
+ observedAt: string;
1358
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
1359
+ value?: string | undefined;
1360
+ expiresAt?: string | undefined;
1361
+ }, {
1362
+ code: string;
1363
+ label: string;
1364
+ observedAt: string;
1365
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
1366
+ value?: string | undefined;
1367
+ expiresAt?: string | undefined;
1368
+ }>, "many">;
1369
+ itemActions: z.ZodArray<z.ZodObject<{
1370
+ actionId: z.ZodString;
1371
+ label: z.ZodString;
1372
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1373
+ }, "strip", z.ZodTypeAny, {
1374
+ label: string;
1375
+ actionId: string;
1376
+ input?: Record<string, unknown> | undefined;
1377
+ }, {
1378
+ label: string;
1379
+ actionId: string;
1380
+ input?: Record<string, unknown> | undefined;
1381
+ }>, "many">;
1382
+ }, "strip", z.ZodTypeAny, {
1383
+ status: {
1384
+ code: "unknown" | "enabled" | "disabled";
1385
+ label: string;
1386
+ observedAt: string;
1387
+ };
1388
+ name: string;
1389
+ merchantId: string;
1390
+ location: {
1391
+ displayText: string;
1392
+ buildingName?: string | undefined;
1393
+ floorName?: string | undefined;
1394
+ unitName?: string | undefined;
1395
+ poiId?: string | undefined;
1396
+ };
1397
+ evidence: {
1398
+ code: string;
1399
+ label: string;
1400
+ observedAt: string;
1401
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
1402
+ value?: string | undefined;
1403
+ expiresAt?: string | undefined;
1404
+ }[];
1405
+ itemActions: {
1406
+ label: string;
1407
+ actionId: string;
1408
+ input?: Record<string, unknown> | undefined;
1409
+ }[];
1410
+ businessCategories: string[];
1411
+ services: string[];
1412
+ promotionFacts: string[];
1413
+ coverUrls: string[];
1414
+ description?: string | undefined;
1415
+ brand?: string | undefined;
1416
+ logoUrl?: string | undefined;
1417
+ contactInfo?: {
1418
+ value: string;
1419
+ channel: string;
1420
+ }[] | undefined;
1421
+ }, {
1422
+ status: {
1423
+ code: "unknown" | "enabled" | "disabled";
1424
+ label: string;
1425
+ observedAt: string;
1426
+ };
1427
+ name: string;
1428
+ merchantId: string;
1429
+ location: {
1430
+ displayText: string;
1431
+ buildingName?: string | undefined;
1432
+ floorName?: string | undefined;
1433
+ unitName?: string | undefined;
1434
+ poiId?: string | undefined;
1435
+ };
1436
+ evidence: {
1437
+ code: string;
1438
+ label: string;
1439
+ observedAt: string;
1440
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
1441
+ value?: string | undefined;
1442
+ expiresAt?: string | undefined;
1443
+ }[];
1444
+ itemActions: {
1445
+ label: string;
1446
+ actionId: string;
1447
+ input?: Record<string, unknown> | undefined;
1448
+ }[];
1449
+ businessCategories: string[];
1450
+ services: string[];
1451
+ promotionFacts: string[];
1452
+ coverUrls: string[];
1453
+ description?: string | undefined;
1454
+ brand?: string | undefined;
1455
+ logoUrl?: string | undefined;
1456
+ contactInfo?: {
1457
+ value: string;
1458
+ channel: string;
1459
+ }[] | undefined;
1460
+ }>;
1461
+ export type MerchantDetailCardData = z.infer<typeof merchantDetailCardDataSchema>;
1462
+ /** category-list */
1463
+ export declare const categoryListCardDataSchema: z.ZodObject<{
1464
+ categories: z.ZodArray<z.ZodObject<{
1465
+ code: z.ZodString;
1466
+ name: z.ZodString;
1467
+ description: z.ZodOptional<z.ZodString>;
1468
+ merchantCount: z.ZodNumber;
1469
+ subCategories: z.ZodOptional<z.ZodArray<z.ZodObject<{
1470
+ code: z.ZodString;
1471
+ name: z.ZodString;
1472
+ merchantCount: z.ZodNumber;
1473
+ }, "strip", z.ZodTypeAny, {
1474
+ code: string;
1475
+ name: string;
1476
+ merchantCount: number;
1477
+ }, {
1478
+ code: string;
1479
+ name: string;
1480
+ merchantCount: number;
1481
+ }>, "many">>;
1482
+ }, "strip", z.ZodTypeAny, {
1483
+ code: string;
1484
+ name: string;
1485
+ merchantCount: number;
1486
+ description?: string | undefined;
1487
+ subCategories?: {
1488
+ code: string;
1489
+ name: string;
1490
+ merchantCount: number;
1491
+ }[] | undefined;
1492
+ }, {
1493
+ code: string;
1494
+ name: string;
1495
+ merchantCount: number;
1496
+ description?: string | undefined;
1497
+ subCategories?: {
1498
+ code: string;
1499
+ name: string;
1500
+ merchantCount: number;
1501
+ }[] | undefined;
1502
+ }>, "many">;
1503
+ observedAt: z.ZodString;
1504
+ }, "strip", z.ZodTypeAny, {
1505
+ observedAt: string;
1506
+ categories: {
1507
+ code: string;
1508
+ name: string;
1509
+ merchantCount: number;
1510
+ description?: string | undefined;
1511
+ subCategories?: {
1512
+ code: string;
1513
+ name: string;
1514
+ merchantCount: number;
1515
+ }[] | undefined;
1516
+ }[];
1517
+ }, {
1518
+ observedAt: string;
1519
+ categories: {
1520
+ code: string;
1521
+ name: string;
1522
+ merchantCount: number;
1523
+ description?: string | undefined;
1524
+ subCategories?: {
1525
+ code: string;
1526
+ name: string;
1527
+ merchantCount: number;
1528
+ }[] | undefined;
1529
+ }[];
1530
+ }>;
1531
+ export type CategoryListCardData = z.infer<typeof categoryListCardDataSchema>;
1532
+ /** product-comparison(2-4 商品并排) */
1533
+ export declare const productComparisonCardDataSchema: z.ZodObject<{
1534
+ products: z.ZodArray<z.ZodObject<{
1535
+ productId: z.ZodString;
1536
+ name: z.ZodString;
1537
+ imageUrl: z.ZodOptional<z.ZodString>;
1538
+ brand: z.ZodOptional<z.ZodString>;
1539
+ price: z.ZodObject<{
1540
+ sale: z.ZodOptional<z.ZodObject<{
1541
+ currency: z.ZodLiteral<"CNY">;
1542
+ amountMinor: z.ZodNumber;
1543
+ display: z.ZodString;
1544
+ }, "strip", z.ZodTypeAny, {
1545
+ currency: "CNY";
1546
+ amountMinor: number;
1547
+ display: string;
1548
+ }, {
1549
+ currency: "CNY";
1550
+ amountMinor: number;
1551
+ display: string;
1552
+ }>>;
1553
+ original: z.ZodOptional<z.ZodObject<{
1554
+ currency: z.ZodLiteral<"CNY">;
1555
+ amountMinor: z.ZodNumber;
1556
+ display: z.ZodString;
1557
+ }, "strip", z.ZodTypeAny, {
1558
+ currency: "CNY";
1559
+ amountMinor: number;
1560
+ display: string;
1561
+ }, {
1562
+ currency: "CNY";
1563
+ amountMinor: number;
1564
+ display: string;
1565
+ }>>;
1566
+ promotion: z.ZodOptional<z.ZodObject<{
1567
+ currency: z.ZodLiteral<"CNY">;
1568
+ amountMinor: z.ZodNumber;
1569
+ display: z.ZodString;
1570
+ }, "strip", z.ZodTypeAny, {
1571
+ currency: "CNY";
1572
+ amountMinor: number;
1573
+ display: string;
1574
+ }, {
1575
+ currency: "CNY";
1576
+ amountMinor: number;
1577
+ display: string;
1578
+ }>>;
1579
+ }, "strip", z.ZodTypeAny, {
1580
+ sale?: {
1581
+ currency: "CNY";
1582
+ amountMinor: number;
1583
+ display: string;
1584
+ } | undefined;
1585
+ original?: {
1586
+ currency: "CNY";
1587
+ amountMinor: number;
1588
+ display: string;
1589
+ } | undefined;
1590
+ promotion?: {
1591
+ currency: "CNY";
1592
+ amountMinor: number;
1593
+ display: string;
1594
+ } | undefined;
1595
+ }, {
1596
+ sale?: {
1597
+ currency: "CNY";
1598
+ amountMinor: number;
1599
+ display: string;
1600
+ } | undefined;
1601
+ original?: {
1602
+ currency: "CNY";
1603
+ amountMinor: number;
1604
+ display: string;
1605
+ } | undefined;
1606
+ promotion?: {
1607
+ currency: "CNY";
1608
+ amountMinor: number;
1609
+ display: string;
1610
+ } | undefined;
1611
+ }>;
1612
+ availability: z.ZodObject<{
1613
+ status: z.ZodEnum<["in_stock", "out_of_stock", "limited", "unknown"]>;
1614
+ label: z.ZodString;
1615
+ marketable: z.ZodBoolean;
1616
+ observedAt: z.ZodString;
1617
+ }, "strip", z.ZodTypeAny, {
1618
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1619
+ label: string;
1620
+ observedAt: string;
1621
+ marketable: boolean;
1622
+ }, {
1623
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1624
+ label: string;
1625
+ observedAt: string;
1626
+ marketable: boolean;
1627
+ }>;
1628
+ merchant: z.ZodObject<{
1629
+ merchantId: z.ZodString;
1630
+ name: z.ZodString;
1631
+ }, "strip", z.ZodTypeAny, {
1632
+ name: string;
1633
+ merchantId: string;
1634
+ }, {
1635
+ name: string;
1636
+ merchantId: string;
1637
+ }>;
1638
+ attributes: z.ZodArray<z.ZodObject<{
1639
+ name: z.ZodString;
1640
+ value: z.ZodString;
1641
+ }, "strip", z.ZodTypeAny, {
1642
+ value: string;
1643
+ name: string;
1644
+ }, {
1645
+ value: string;
1646
+ name: string;
1647
+ }>, "many">;
1648
+ caveats: z.ZodArray<z.ZodString, "many">;
1649
+ }, "strip", z.ZodTypeAny, {
1650
+ name: string;
1651
+ merchant: {
1652
+ name: string;
1653
+ merchantId: string;
1654
+ };
1655
+ productId: string;
1656
+ price: {
1657
+ sale?: {
1658
+ currency: "CNY";
1659
+ amountMinor: number;
1660
+ display: string;
1661
+ } | undefined;
1662
+ original?: {
1663
+ currency: "CNY";
1664
+ amountMinor: number;
1665
+ display: string;
1666
+ } | undefined;
1667
+ promotion?: {
1668
+ currency: "CNY";
1669
+ amountMinor: number;
1670
+ display: string;
1671
+ } | undefined;
1672
+ };
1673
+ availability: {
1674
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1675
+ label: string;
1676
+ observedAt: string;
1677
+ marketable: boolean;
1678
+ };
1679
+ caveats: string[];
1680
+ attributes: {
1681
+ value: string;
1682
+ name: string;
1683
+ }[];
1684
+ imageUrl?: string | undefined;
1685
+ brand?: string | undefined;
1686
+ }, {
1687
+ name: string;
1688
+ merchant: {
1689
+ name: string;
1690
+ merchantId: string;
1691
+ };
1692
+ productId: string;
1693
+ price: {
1694
+ sale?: {
1695
+ currency: "CNY";
1696
+ amountMinor: number;
1697
+ display: string;
1698
+ } | undefined;
1699
+ original?: {
1700
+ currency: "CNY";
1701
+ amountMinor: number;
1702
+ display: string;
1703
+ } | undefined;
1704
+ promotion?: {
1705
+ currency: "CNY";
1706
+ amountMinor: number;
1707
+ display: string;
1708
+ } | undefined;
1709
+ };
1710
+ availability: {
1711
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1712
+ label: string;
1713
+ observedAt: string;
1714
+ marketable: boolean;
1715
+ };
1716
+ caveats: string[];
1717
+ attributes: {
1718
+ value: string;
1719
+ name: string;
1720
+ }[];
1721
+ imageUrl?: string | undefined;
1722
+ brand?: string | undefined;
1723
+ }>, "many">;
1724
+ observedAt: z.ZodString;
1725
+ }, "strip", z.ZodTypeAny, {
1726
+ observedAt: string;
1727
+ products: {
1728
+ name: string;
1729
+ merchant: {
1730
+ name: string;
1731
+ merchantId: string;
1732
+ };
1733
+ productId: string;
1734
+ price: {
1735
+ sale?: {
1736
+ currency: "CNY";
1737
+ amountMinor: number;
1738
+ display: string;
1739
+ } | undefined;
1740
+ original?: {
1741
+ currency: "CNY";
1742
+ amountMinor: number;
1743
+ display: string;
1744
+ } | undefined;
1745
+ promotion?: {
1746
+ currency: "CNY";
1747
+ amountMinor: number;
1748
+ display: string;
1749
+ } | undefined;
1750
+ };
1751
+ availability: {
1752
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1753
+ label: string;
1754
+ observedAt: string;
1755
+ marketable: boolean;
1756
+ };
1757
+ caveats: string[];
1758
+ attributes: {
1759
+ value: string;
1760
+ name: string;
1761
+ }[];
1762
+ imageUrl?: string | undefined;
1763
+ brand?: string | undefined;
1764
+ }[];
1765
+ }, {
1766
+ observedAt: string;
1767
+ products: {
1768
+ name: string;
1769
+ merchant: {
1770
+ name: string;
1771
+ merchantId: string;
1772
+ };
1773
+ productId: string;
1774
+ price: {
1775
+ sale?: {
1776
+ currency: "CNY";
1777
+ amountMinor: number;
1778
+ display: string;
1779
+ } | undefined;
1780
+ original?: {
1781
+ currency: "CNY";
1782
+ amountMinor: number;
1783
+ display: string;
1784
+ } | undefined;
1785
+ promotion?: {
1786
+ currency: "CNY";
1787
+ amountMinor: number;
1788
+ display: string;
1789
+ } | undefined;
1790
+ };
1791
+ availability: {
1792
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
1793
+ label: string;
1794
+ observedAt: string;
1795
+ marketable: boolean;
1796
+ };
1797
+ caveats: string[];
1798
+ attributes: {
1799
+ value: string;
1800
+ name: string;
1801
+ }[];
1802
+ imageUrl?: string | undefined;
1803
+ brand?: string | undefined;
1804
+ }[];
1805
+ }>;
1806
+ export type ProductComparisonCardData = z.infer<typeof productComparisonCardDataSchema>;
1807
+ /** mall-directory(楼栋-楼层结构) */
1808
+ export declare const mallDirectoryCardDataSchema: z.ZodObject<{
1809
+ mallId: z.ZodString;
1810
+ mallName: z.ZodString;
1811
+ buildings: z.ZodArray<z.ZodObject<{
1812
+ buildingCode: z.ZodString;
1813
+ buildingName: z.ZodString;
1814
+ floors: z.ZodArray<z.ZodObject<{
1815
+ floorCode: z.ZodString;
1816
+ floorName: z.ZodString;
1817
+ businessCategories: z.ZodArray<z.ZodString, "many">;
1818
+ merchantCount: z.ZodNumber;
1819
+ }, "strip", z.ZodTypeAny, {
1820
+ floorName: string;
1821
+ businessCategories: string[];
1822
+ merchantCount: number;
1823
+ floorCode: string;
1824
+ }, {
1825
+ floorName: string;
1826
+ businessCategories: string[];
1827
+ merchantCount: number;
1828
+ floorCode: string;
1829
+ }>, "many">;
1830
+ }, "strip", z.ZodTypeAny, {
1831
+ buildingName: string;
1832
+ buildingCode: string;
1833
+ floors: {
1834
+ floorName: string;
1835
+ businessCategories: string[];
1836
+ merchantCount: number;
1837
+ floorCode: string;
1838
+ }[];
1839
+ }, {
1840
+ buildingName: string;
1841
+ buildingCode: string;
1842
+ floors: {
1843
+ floorName: string;
1844
+ businessCategories: string[];
1845
+ merchantCount: number;
1846
+ floorCode: string;
1847
+ }[];
1848
+ }>, "many">;
1849
+ observedAt: z.ZodString;
1850
+ }, "strip", z.ZodTypeAny, {
1851
+ mallId: string;
1852
+ observedAt: string;
1853
+ mallName: string;
1854
+ buildings: {
1855
+ buildingName: string;
1856
+ buildingCode: string;
1857
+ floors: {
1858
+ floorName: string;
1859
+ businessCategories: string[];
1860
+ merchantCount: number;
1861
+ floorCode: string;
1862
+ }[];
1863
+ }[];
1864
+ }, {
1865
+ mallId: string;
1866
+ observedAt: string;
1867
+ mallName: string;
1868
+ buildings: {
1869
+ buildingName: string;
1870
+ buildingCode: string;
1871
+ floors: {
1872
+ floorName: string;
1873
+ businessCategories: string[];
1874
+ merchantCount: number;
1875
+ floorCode: string;
1876
+ }[];
1877
+ }[];
1878
+ }>;
1879
+ export type MallDirectoryCardData = z.infer<typeof mallDirectoryCardDataSchema>;
1880
+ /** nearby-mall-list */
1881
+ export declare const nearbyMallListCardDataSchema: z.ZodObject<{
1882
+ query: z.ZodOptional<z.ZodString>;
1883
+ malls: z.ZodArray<z.ZodObject<{
1884
+ mallId: z.ZodString;
1885
+ name: z.ZodString;
1886
+ address: z.ZodString;
1887
+ distanceKm: z.ZodOptional<z.ZodNumber>;
1888
+ status: z.ZodObject<{
1889
+ code: z.ZodEnum<["open", "closed", "unknown"]>;
1890
+ label: z.ZodString;
1891
+ }, "strip", z.ZodTypeAny, {
1892
+ code: "closed" | "unknown" | "open";
1893
+ label: string;
1894
+ }, {
1895
+ code: "closed" | "unknown" | "open";
1896
+ label: string;
1897
+ }>;
1898
+ itemActions: z.ZodArray<z.ZodObject<{
1899
+ actionId: z.ZodString;
1900
+ label: z.ZodString;
1901
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1902
+ }, "strip", z.ZodTypeAny, {
1903
+ label: string;
1904
+ actionId: string;
1905
+ input?: Record<string, unknown> | undefined;
1906
+ }, {
1907
+ label: string;
1908
+ actionId: string;
1909
+ input?: Record<string, unknown> | undefined;
1910
+ }>, "many">;
1911
+ }, "strip", z.ZodTypeAny, {
1912
+ status: {
1913
+ code: "closed" | "unknown" | "open";
1914
+ label: string;
1915
+ };
1916
+ name: string;
1917
+ mallId: string;
1918
+ itemActions: {
1919
+ label: string;
1920
+ actionId: string;
1921
+ input?: Record<string, unknown> | undefined;
1922
+ }[];
1923
+ address: string;
1924
+ distanceKm?: number | undefined;
1925
+ }, {
1926
+ status: {
1927
+ code: "closed" | "unknown" | "open";
1928
+ label: string;
1929
+ };
1930
+ name: string;
1931
+ mallId: string;
1932
+ itemActions: {
1933
+ label: string;
1934
+ actionId: string;
1935
+ input?: Record<string, unknown> | undefined;
1936
+ }[];
1937
+ address: string;
1938
+ distanceKm?: number | undefined;
1939
+ }>, "many">;
1940
+ }, "strip", z.ZodTypeAny, {
1941
+ malls: {
1942
+ status: {
1943
+ code: "closed" | "unknown" | "open";
1944
+ label: string;
1945
+ };
1946
+ name: string;
1947
+ mallId: string;
1948
+ itemActions: {
1949
+ label: string;
1950
+ actionId: string;
1951
+ input?: Record<string, unknown> | undefined;
1952
+ }[];
1953
+ address: string;
1954
+ distanceKm?: number | undefined;
1955
+ }[];
1956
+ query?: string | undefined;
1957
+ }, {
1958
+ malls: {
1959
+ status: {
1960
+ code: "closed" | "unknown" | "open";
1961
+ label: string;
1962
+ };
1963
+ name: string;
1964
+ mallId: string;
1965
+ itemActions: {
1966
+ label: string;
1967
+ actionId: string;
1968
+ input?: Record<string, unknown> | undefined;
1969
+ }[];
1970
+ address: string;
1971
+ distanceKm?: number | undefined;
1972
+ }[];
1973
+ query?: string | undefined;
1974
+ }>;
1975
+ export type NearbyMallListCardData = z.infer<typeof nearbyMallListCardDataSchema>;
1976
+ /** customer-service-faq */
1977
+ export declare const customerServiceFaqCardDataSchema: z.ZodObject<{
1978
+ query: z.ZodString;
1979
+ faqs: z.ZodArray<z.ZodObject<{
1980
+ question: z.ZodString;
1981
+ answer: z.ZodString;
1982
+ category: z.ZodOptional<z.ZodString>;
1983
+ relevanceScore: z.ZodNumber;
1984
+ }, "strip", z.ZodTypeAny, {
1985
+ question: string;
1986
+ answer: string;
1987
+ relevanceScore: number;
1988
+ category?: string | undefined;
1989
+ }, {
1990
+ question: string;
1991
+ answer: string;
1992
+ relevanceScore: number;
1993
+ category?: string | undefined;
1994
+ }>, "many">;
1995
+ noResultsReason: z.ZodOptional<z.ZodString>;
1996
+ }, "strip", z.ZodTypeAny, {
1997
+ query: string;
1998
+ faqs: {
1999
+ question: string;
2000
+ answer: string;
2001
+ relevanceScore: number;
2002
+ category?: string | undefined;
2003
+ }[];
2004
+ noResultsReason?: string | undefined;
2005
+ }, {
2006
+ query: string;
2007
+ faqs: {
2008
+ question: string;
2009
+ answer: string;
2010
+ relevanceScore: number;
2011
+ category?: string | undefined;
2012
+ }[];
2013
+ noResultsReason?: string | undefined;
2014
+ }>;
2015
+ export type CustomerServiceFaqCardData = z.infer<typeof customerServiceFaqCardDataSchema>;
2016
+ /** human-guide-list */
2017
+ export declare const humanGuideListCardDataSchema: z.ZodObject<{
2018
+ merchantId: z.ZodString;
2019
+ merchantName: z.ZodString;
2020
+ guides: z.ZodArray<z.ZodObject<{
2021
+ guideId: z.ZodString;
2022
+ name: z.ZodString;
2023
+ title: z.ZodOptional<z.ZodString>;
2024
+ avatarUrl: z.ZodOptional<z.ZodString>;
2025
+ contactInfo: z.ZodOptional<z.ZodArray<z.ZodObject<{
2026
+ channel: z.ZodString;
2027
+ value: z.ZodString;
2028
+ }, "strip", z.ZodTypeAny, {
2029
+ value: string;
2030
+ channel: string;
2031
+ }, {
2032
+ value: string;
2033
+ channel: string;
2034
+ }>, "many">>;
2035
+ available: z.ZodBoolean;
2036
+ itemActions: z.ZodArray<z.ZodObject<{
2037
+ actionId: z.ZodString;
2038
+ label: z.ZodString;
2039
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2040
+ }, "strip", z.ZodTypeAny, {
2041
+ label: string;
2042
+ actionId: string;
2043
+ input?: Record<string, unknown> | undefined;
2044
+ }, {
2045
+ label: string;
2046
+ actionId: string;
2047
+ input?: Record<string, unknown> | undefined;
2048
+ }>, "many">;
2049
+ }, "strip", z.ZodTypeAny, {
2050
+ name: string;
2051
+ itemActions: {
2052
+ label: string;
2053
+ actionId: string;
2054
+ input?: Record<string, unknown> | undefined;
2055
+ }[];
2056
+ guideId: string;
2057
+ available: boolean;
2058
+ contactInfo?: {
2059
+ value: string;
2060
+ channel: string;
2061
+ }[] | undefined;
2062
+ title?: string | undefined;
2063
+ avatarUrl?: string | undefined;
2064
+ }, {
2065
+ name: string;
2066
+ itemActions: {
2067
+ label: string;
2068
+ actionId: string;
2069
+ input?: Record<string, unknown> | undefined;
2070
+ }[];
2071
+ guideId: string;
2072
+ available: boolean;
2073
+ contactInfo?: {
2074
+ value: string;
2075
+ channel: string;
2076
+ }[] | undefined;
2077
+ title?: string | undefined;
2078
+ avatarUrl?: string | undefined;
2079
+ }>, "many">;
2080
+ }, "strip", z.ZodTypeAny, {
2081
+ merchantId: string;
2082
+ merchantName: string;
2083
+ guides: {
2084
+ name: string;
2085
+ itemActions: {
2086
+ label: string;
2087
+ actionId: string;
2088
+ input?: Record<string, unknown> | undefined;
2089
+ }[];
2090
+ guideId: string;
2091
+ available: boolean;
2092
+ contactInfo?: {
2093
+ value: string;
2094
+ channel: string;
2095
+ }[] | undefined;
2096
+ title?: string | undefined;
2097
+ avatarUrl?: string | undefined;
2098
+ }[];
2099
+ }, {
2100
+ merchantId: string;
2101
+ merchantName: string;
2102
+ guides: {
2103
+ name: string;
2104
+ itemActions: {
2105
+ label: string;
2106
+ actionId: string;
2107
+ input?: Record<string, unknown> | undefined;
2108
+ }[];
2109
+ guideId: string;
2110
+ available: boolean;
2111
+ contactInfo?: {
2112
+ value: string;
2113
+ channel: string;
2114
+ }[] | undefined;
2115
+ title?: string | undefined;
2116
+ avatarUrl?: string | undefined;
2117
+ }[];
2118
+ }>;
2119
+ export type HumanGuideListCardData = z.infer<typeof humanGuideListCardDataSchema>;
2120
+ /** location-handoff */
2121
+ export declare const locationHandoffCardDataSchema: z.ZodObject<{
2122
+ merchantId: z.ZodString;
2123
+ merchantName: z.ZodString;
2124
+ location: z.ZodObject<{
2125
+ buildingName: z.ZodOptional<z.ZodString>;
2126
+ floorName: z.ZodOptional<z.ZodString>;
2127
+ unitName: z.ZodOptional<z.ZodString>;
2128
+ displayText: z.ZodString;
2129
+ poiId: z.ZodOptional<z.ZodString>;
2130
+ }, "strip", z.ZodTypeAny, {
2131
+ displayText: string;
2132
+ buildingName?: string | undefined;
2133
+ floorName?: string | undefined;
2134
+ unitName?: string | undefined;
2135
+ poiId?: string | undefined;
2136
+ }, {
2137
+ displayText: string;
2138
+ buildingName?: string | undefined;
2139
+ floorName?: string | undefined;
2140
+ unitName?: string | undefined;
2141
+ poiId?: string | undefined;
2142
+ }>;
2143
+ mapUrl: z.ZodOptional<z.ZodString>;
2144
+ navigation: z.ZodOptional<z.ZodObject<{
2145
+ provider: z.ZodEnum<["amap", "builtin"]>;
2146
+ launchParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2147
+ }, "strip", z.ZodTypeAny, {
2148
+ provider: "amap" | "builtin";
2149
+ launchParams?: Record<string, string> | undefined;
2150
+ }, {
2151
+ provider: "amap" | "builtin";
2152
+ launchParams?: Record<string, string> | undefined;
2153
+ }>>;
2154
+ itemActions: z.ZodArray<z.ZodObject<{
2155
+ actionId: z.ZodString;
2156
+ label: z.ZodString;
2157
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2158
+ }, "strip", z.ZodTypeAny, {
2159
+ label: string;
2160
+ actionId: string;
2161
+ input?: Record<string, unknown> | undefined;
2162
+ }, {
2163
+ label: string;
2164
+ actionId: string;
2165
+ input?: Record<string, unknown> | undefined;
2166
+ }>, "many">;
2167
+ }, "strip", z.ZodTypeAny, {
2168
+ merchantId: string;
2169
+ location: {
2170
+ displayText: string;
2171
+ buildingName?: string | undefined;
2172
+ floorName?: string | undefined;
2173
+ unitName?: string | undefined;
2174
+ poiId?: string | undefined;
2175
+ };
2176
+ itemActions: {
2177
+ label: string;
2178
+ actionId: string;
2179
+ input?: Record<string, unknown> | undefined;
2180
+ }[];
2181
+ merchantName: string;
2182
+ mapUrl?: string | undefined;
2183
+ navigation?: {
2184
+ provider: "amap" | "builtin";
2185
+ launchParams?: Record<string, string> | undefined;
2186
+ } | undefined;
2187
+ }, {
2188
+ merchantId: string;
2189
+ location: {
2190
+ displayText: string;
2191
+ buildingName?: string | undefined;
2192
+ floorName?: string | undefined;
2193
+ unitName?: string | undefined;
2194
+ poiId?: string | undefined;
2195
+ };
2196
+ itemActions: {
2197
+ label: string;
2198
+ actionId: string;
2199
+ input?: Record<string, unknown> | undefined;
2200
+ }[];
2201
+ merchantName: string;
2202
+ mapUrl?: string | undefined;
2203
+ navigation?: {
2204
+ provider: "amap" | "builtin";
2205
+ launchParams?: Record<string, string> | undefined;
2206
+ } | undefined;
2207
+ }>;
2208
+ export type LocationHandoffCardData = z.infer<typeof locationHandoffCardDataSchema>;
2209
+ /** 11 卡 meta 数据 schema map(cardType → dataSchema,server 卡 meta 引用) */
2210
+ export declare const shoppingGuideCardDataSchemas: {
2211
+ readonly 'product-list': z.ZodObject<{
2212
+ context: z.ZodEnum<["recommendation", "search", "similar", "history"]>;
2213
+ summary: z.ZodOptional<z.ZodString>;
2214
+ items: z.ZodArray<z.ZodObject<{
2215
+ productId: z.ZodString;
2216
+ name: z.ZodString;
2217
+ imageUrl: z.ZodOptional<z.ZodString>;
2218
+ brand: z.ZodOptional<z.ZodString>;
2219
+ categoryPath: z.ZodArray<z.ZodString, "many">;
2220
+ price: z.ZodObject<{
2221
+ sale: z.ZodOptional<z.ZodObject<{
2222
+ currency: z.ZodLiteral<"CNY">;
2223
+ amountMinor: z.ZodNumber;
2224
+ display: z.ZodString;
2225
+ }, "strip", z.ZodTypeAny, {
2226
+ currency: "CNY";
2227
+ amountMinor: number;
2228
+ display: string;
2229
+ }, {
2230
+ currency: "CNY";
2231
+ amountMinor: number;
2232
+ display: string;
2233
+ }>>;
2234
+ original: z.ZodOptional<z.ZodObject<{
2235
+ currency: z.ZodLiteral<"CNY">;
2236
+ amountMinor: z.ZodNumber;
2237
+ display: z.ZodString;
2238
+ }, "strip", z.ZodTypeAny, {
2239
+ currency: "CNY";
2240
+ amountMinor: number;
2241
+ display: string;
2242
+ }, {
2243
+ currency: "CNY";
2244
+ amountMinor: number;
2245
+ display: string;
2246
+ }>>;
2247
+ promotion: z.ZodOptional<z.ZodObject<{
2248
+ currency: z.ZodLiteral<"CNY">;
2249
+ amountMinor: z.ZodNumber;
2250
+ display: z.ZodString;
2251
+ }, "strip", z.ZodTypeAny, {
2252
+ currency: "CNY";
2253
+ amountMinor: number;
2254
+ display: string;
2255
+ }, {
2256
+ currency: "CNY";
2257
+ amountMinor: number;
2258
+ display: string;
2259
+ }>>;
2260
+ }, "strip", z.ZodTypeAny, {
2261
+ sale?: {
2262
+ currency: "CNY";
2263
+ amountMinor: number;
2264
+ display: string;
2265
+ } | undefined;
2266
+ original?: {
2267
+ currency: "CNY";
2268
+ amountMinor: number;
2269
+ display: string;
2270
+ } | undefined;
2271
+ promotion?: {
2272
+ currency: "CNY";
2273
+ amountMinor: number;
2274
+ display: string;
2275
+ } | undefined;
2276
+ }, {
2277
+ sale?: {
2278
+ currency: "CNY";
2279
+ amountMinor: number;
2280
+ display: string;
2281
+ } | undefined;
2282
+ original?: {
2283
+ currency: "CNY";
2284
+ amountMinor: number;
2285
+ display: string;
2286
+ } | undefined;
2287
+ promotion?: {
2288
+ currency: "CNY";
2289
+ amountMinor: number;
2290
+ display: string;
2291
+ } | undefined;
2292
+ }>;
2293
+ availability: z.ZodObject<{
2294
+ status: z.ZodEnum<["in_stock", "out_of_stock", "limited", "unknown"]>;
2295
+ label: z.ZodString;
2296
+ marketable: z.ZodBoolean;
2297
+ observedAt: z.ZodString;
2298
+ }, "strip", z.ZodTypeAny, {
2299
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2300
+ label: string;
2301
+ observedAt: string;
2302
+ marketable: boolean;
2303
+ }, {
2304
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2305
+ label: string;
2306
+ observedAt: string;
2307
+ marketable: boolean;
2308
+ }>;
2309
+ merchant: z.ZodObject<{
2310
+ merchantId: z.ZodString;
2311
+ name: z.ZodString;
2312
+ location: z.ZodOptional<z.ZodObject<{
2313
+ buildingName: z.ZodOptional<z.ZodString>;
2314
+ floorName: z.ZodOptional<z.ZodString>;
2315
+ unitName: z.ZodOptional<z.ZodString>;
2316
+ displayText: z.ZodString;
2317
+ poiId: z.ZodOptional<z.ZodString>;
2318
+ }, "strip", z.ZodTypeAny, {
2319
+ displayText: string;
2320
+ buildingName?: string | undefined;
2321
+ floorName?: string | undefined;
2322
+ unitName?: string | undefined;
2323
+ poiId?: string | undefined;
2324
+ }, {
2325
+ displayText: string;
2326
+ buildingName?: string | undefined;
2327
+ floorName?: string | undefined;
2328
+ unitName?: string | undefined;
2329
+ poiId?: string | undefined;
2330
+ }>>;
2331
+ }, "strip", z.ZodTypeAny, {
2332
+ name: string;
2333
+ merchantId: string;
2334
+ location?: {
2335
+ displayText: string;
2336
+ buildingName?: string | undefined;
2337
+ floorName?: string | undefined;
2338
+ unitName?: string | undefined;
2339
+ poiId?: string | undefined;
2340
+ } | undefined;
2341
+ }, {
2342
+ name: string;
2343
+ merchantId: string;
2344
+ location?: {
2345
+ displayText: string;
2346
+ buildingName?: string | undefined;
2347
+ floorName?: string | undefined;
2348
+ unitName?: string | undefined;
2349
+ poiId?: string | undefined;
2350
+ } | undefined;
2351
+ }>;
2352
+ badges: z.ZodArray<z.ZodString, "many">;
2353
+ reasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
2354
+ code: z.ZodString;
2355
+ label: z.ZodString;
2356
+ }, "strip", z.ZodTypeAny, {
2357
+ code: string;
2358
+ label: string;
2359
+ }, {
2360
+ code: string;
2361
+ label: string;
2362
+ }>, "many">>;
2363
+ evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
2364
+ code: z.ZodString;
2365
+ label: z.ZodString;
2366
+ value: z.ZodOptional<z.ZodString>;
2367
+ observedAt: z.ZodString;
2368
+ expiresAt: z.ZodOptional<z.ZodString>;
2369
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
2370
+ }, "strip", z.ZodTypeAny, {
2371
+ code: string;
2372
+ label: string;
2373
+ observedAt: string;
2374
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2375
+ value?: string | undefined;
2376
+ expiresAt?: string | undefined;
2377
+ }, {
2378
+ code: string;
2379
+ label: string;
2380
+ observedAt: string;
2381
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2382
+ value?: string | undefined;
2383
+ expiresAt?: string | undefined;
2384
+ }>, "many">>;
2385
+ caveats: z.ZodArray<z.ZodString, "many">;
2386
+ itemActions: z.ZodArray<z.ZodObject<{
2387
+ actionId: z.ZodString;
2388
+ label: z.ZodString;
2389
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2390
+ }, "strip", z.ZodTypeAny, {
2391
+ label: string;
2392
+ actionId: string;
2393
+ input?: Record<string, unknown> | undefined;
2394
+ }, {
2395
+ label: string;
2396
+ actionId: string;
2397
+ input?: Record<string, unknown> | undefined;
2398
+ }>, "many">;
2399
+ }, "strip", z.ZodTypeAny, {
2400
+ name: string;
2401
+ merchant: {
2402
+ name: string;
2403
+ merchantId: string;
2404
+ location?: {
2405
+ displayText: string;
2406
+ buildingName?: string | undefined;
2407
+ floorName?: string | undefined;
2408
+ unitName?: string | undefined;
2409
+ poiId?: string | undefined;
2410
+ } | undefined;
2411
+ };
2412
+ productId: string;
2413
+ categoryPath: string[];
2414
+ price: {
2415
+ sale?: {
2416
+ currency: "CNY";
2417
+ amountMinor: number;
2418
+ display: string;
2419
+ } | undefined;
2420
+ original?: {
2421
+ currency: "CNY";
2422
+ amountMinor: number;
2423
+ display: string;
2424
+ } | undefined;
2425
+ promotion?: {
2426
+ currency: "CNY";
2427
+ amountMinor: number;
2428
+ display: string;
2429
+ } | undefined;
2430
+ };
2431
+ availability: {
2432
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2433
+ label: string;
2434
+ observedAt: string;
2435
+ marketable: boolean;
2436
+ };
2437
+ badges: string[];
2438
+ caveats: string[];
2439
+ itemActions: {
2440
+ label: string;
2441
+ actionId: string;
2442
+ input?: Record<string, unknown> | undefined;
2443
+ }[];
2444
+ imageUrl?: string | undefined;
2445
+ brand?: string | undefined;
2446
+ reasons?: {
2447
+ code: string;
2448
+ label: string;
2449
+ }[] | undefined;
2450
+ evidence?: {
2451
+ code: string;
2452
+ label: string;
2453
+ observedAt: string;
2454
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2455
+ value?: string | undefined;
2456
+ expiresAt?: string | undefined;
2457
+ }[] | undefined;
2458
+ }, {
2459
+ name: string;
2460
+ merchant: {
2461
+ name: string;
2462
+ merchantId: string;
2463
+ location?: {
2464
+ displayText: string;
2465
+ buildingName?: string | undefined;
2466
+ floorName?: string | undefined;
2467
+ unitName?: string | undefined;
2468
+ poiId?: string | undefined;
2469
+ } | undefined;
2470
+ };
2471
+ productId: string;
2472
+ categoryPath: string[];
2473
+ price: {
2474
+ sale?: {
2475
+ currency: "CNY";
2476
+ amountMinor: number;
2477
+ display: string;
2478
+ } | undefined;
2479
+ original?: {
2480
+ currency: "CNY";
2481
+ amountMinor: number;
2482
+ display: string;
2483
+ } | undefined;
2484
+ promotion?: {
2485
+ currency: "CNY";
2486
+ amountMinor: number;
2487
+ display: string;
2488
+ } | undefined;
2489
+ };
2490
+ availability: {
2491
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2492
+ label: string;
2493
+ observedAt: string;
2494
+ marketable: boolean;
2495
+ };
2496
+ badges: string[];
2497
+ caveats: string[];
2498
+ itemActions: {
2499
+ label: string;
2500
+ actionId: string;
2501
+ input?: Record<string, unknown> | undefined;
2502
+ }[];
2503
+ imageUrl?: string | undefined;
2504
+ brand?: string | undefined;
2505
+ reasons?: {
2506
+ code: string;
2507
+ label: string;
2508
+ }[] | undefined;
2509
+ evidence?: {
2510
+ code: string;
2511
+ label: string;
2512
+ observedAt: string;
2513
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2514
+ value?: string | undefined;
2515
+ expiresAt?: string | undefined;
2516
+ }[] | undefined;
2517
+ }>, "many">;
2518
+ noResultsReason: z.ZodOptional<z.ZodString>;
2519
+ pageInfo: z.ZodOptional<z.ZodObject<{
2520
+ page: z.ZodNumber;
2521
+ pageSize: z.ZodNumber;
2522
+ total: z.ZodNumber;
2523
+ hasMore: z.ZodBoolean;
2524
+ }, "strip", z.ZodTypeAny, {
2525
+ page: number;
2526
+ pageSize: number;
2527
+ total: number;
2528
+ hasMore: boolean;
2529
+ }, {
2530
+ page: number;
2531
+ pageSize: number;
2532
+ total: number;
2533
+ hasMore: boolean;
2534
+ }>>;
2535
+ refinements: z.ZodArray<z.ZodObject<{
2536
+ label: z.ZodString;
2537
+ queryText: z.ZodString;
2538
+ }, "strip", z.ZodTypeAny, {
2539
+ label: string;
2540
+ queryText: string;
2541
+ }, {
2542
+ label: string;
2543
+ queryText: string;
2544
+ }>, "many">;
2545
+ }, "strip", z.ZodTypeAny, {
2546
+ context: "recommendation" | "search" | "similar" | "history";
2547
+ items: {
2548
+ name: string;
2549
+ merchant: {
2550
+ name: string;
2551
+ merchantId: string;
2552
+ location?: {
2553
+ displayText: string;
2554
+ buildingName?: string | undefined;
2555
+ floorName?: string | undefined;
2556
+ unitName?: string | undefined;
2557
+ poiId?: string | undefined;
2558
+ } | undefined;
2559
+ };
2560
+ productId: string;
2561
+ categoryPath: string[];
2562
+ price: {
2563
+ sale?: {
2564
+ currency: "CNY";
2565
+ amountMinor: number;
2566
+ display: string;
2567
+ } | undefined;
2568
+ original?: {
2569
+ currency: "CNY";
2570
+ amountMinor: number;
2571
+ display: string;
2572
+ } | undefined;
2573
+ promotion?: {
2574
+ currency: "CNY";
2575
+ amountMinor: number;
2576
+ display: string;
2577
+ } | undefined;
2578
+ };
2579
+ availability: {
2580
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2581
+ label: string;
2582
+ observedAt: string;
2583
+ marketable: boolean;
2584
+ };
2585
+ badges: string[];
2586
+ caveats: string[];
2587
+ itemActions: {
2588
+ label: string;
2589
+ actionId: string;
2590
+ input?: Record<string, unknown> | undefined;
2591
+ }[];
2592
+ imageUrl?: string | undefined;
2593
+ brand?: string | undefined;
2594
+ reasons?: {
2595
+ code: string;
2596
+ label: string;
2597
+ }[] | undefined;
2598
+ evidence?: {
2599
+ code: string;
2600
+ label: string;
2601
+ observedAt: string;
2602
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2603
+ value?: string | undefined;
2604
+ expiresAt?: string | undefined;
2605
+ }[] | undefined;
2606
+ }[];
2607
+ refinements: {
2608
+ label: string;
2609
+ queryText: string;
2610
+ }[];
2611
+ summary?: string | undefined;
2612
+ noResultsReason?: string | undefined;
2613
+ pageInfo?: {
2614
+ page: number;
2615
+ pageSize: number;
2616
+ total: number;
2617
+ hasMore: boolean;
2618
+ } | undefined;
2619
+ }, {
2620
+ context: "recommendation" | "search" | "similar" | "history";
2621
+ items: {
2622
+ name: string;
2623
+ merchant: {
2624
+ name: string;
2625
+ merchantId: string;
2626
+ location?: {
2627
+ displayText: string;
2628
+ buildingName?: string | undefined;
2629
+ floorName?: string | undefined;
2630
+ unitName?: string | undefined;
2631
+ poiId?: string | undefined;
2632
+ } | undefined;
2633
+ };
2634
+ productId: string;
2635
+ categoryPath: string[];
2636
+ price: {
2637
+ sale?: {
2638
+ currency: "CNY";
2639
+ amountMinor: number;
2640
+ display: string;
2641
+ } | undefined;
2642
+ original?: {
2643
+ currency: "CNY";
2644
+ amountMinor: number;
2645
+ display: string;
2646
+ } | undefined;
2647
+ promotion?: {
2648
+ currency: "CNY";
2649
+ amountMinor: number;
2650
+ display: string;
2651
+ } | undefined;
2652
+ };
2653
+ availability: {
2654
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2655
+ label: string;
2656
+ observedAt: string;
2657
+ marketable: boolean;
2658
+ };
2659
+ badges: string[];
2660
+ caveats: string[];
2661
+ itemActions: {
2662
+ label: string;
2663
+ actionId: string;
2664
+ input?: Record<string, unknown> | undefined;
2665
+ }[];
2666
+ imageUrl?: string | undefined;
2667
+ brand?: string | undefined;
2668
+ reasons?: {
2669
+ code: string;
2670
+ label: string;
2671
+ }[] | undefined;
2672
+ evidence?: {
2673
+ code: string;
2674
+ label: string;
2675
+ observedAt: string;
2676
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2677
+ value?: string | undefined;
2678
+ expiresAt?: string | undefined;
2679
+ }[] | undefined;
2680
+ }[];
2681
+ refinements: {
2682
+ label: string;
2683
+ queryText: string;
2684
+ }[];
2685
+ summary?: string | undefined;
2686
+ noResultsReason?: string | undefined;
2687
+ pageInfo?: {
2688
+ page: number;
2689
+ pageSize: number;
2690
+ total: number;
2691
+ hasMore: boolean;
2692
+ } | undefined;
2693
+ }>;
2694
+ readonly 'product-detail': z.ZodObject<{
2695
+ productId: z.ZodString;
2696
+ name: z.ZodString;
2697
+ description: z.ZodOptional<z.ZodString>;
2698
+ imageUrls: z.ZodArray<z.ZodString, "many">;
2699
+ brand: z.ZodOptional<z.ZodString>;
2700
+ categoryPath: z.ZodArray<z.ZodString, "many">;
2701
+ price: z.ZodObject<{
2702
+ sale: z.ZodOptional<z.ZodObject<{
2703
+ currency: z.ZodLiteral<"CNY">;
2704
+ amountMinor: z.ZodNumber;
2705
+ display: z.ZodString;
2706
+ }, "strip", z.ZodTypeAny, {
2707
+ currency: "CNY";
2708
+ amountMinor: number;
2709
+ display: string;
2710
+ }, {
2711
+ currency: "CNY";
2712
+ amountMinor: number;
2713
+ display: string;
2714
+ }>>;
2715
+ original: z.ZodOptional<z.ZodObject<{
2716
+ currency: z.ZodLiteral<"CNY">;
2717
+ amountMinor: z.ZodNumber;
2718
+ display: z.ZodString;
2719
+ }, "strip", z.ZodTypeAny, {
2720
+ currency: "CNY";
2721
+ amountMinor: number;
2722
+ display: string;
2723
+ }, {
2724
+ currency: "CNY";
2725
+ amountMinor: number;
2726
+ display: string;
2727
+ }>>;
2728
+ promotion: z.ZodOptional<z.ZodObject<{
2729
+ currency: z.ZodLiteral<"CNY">;
2730
+ amountMinor: z.ZodNumber;
2731
+ display: z.ZodString;
2732
+ }, "strip", z.ZodTypeAny, {
2733
+ currency: "CNY";
2734
+ amountMinor: number;
2735
+ display: string;
2736
+ }, {
2737
+ currency: "CNY";
2738
+ amountMinor: number;
2739
+ display: string;
2740
+ }>>;
2741
+ }, "strip", z.ZodTypeAny, {
2742
+ sale?: {
2743
+ currency: "CNY";
2744
+ amountMinor: number;
2745
+ display: string;
2746
+ } | undefined;
2747
+ original?: {
2748
+ currency: "CNY";
2749
+ amountMinor: number;
2750
+ display: string;
2751
+ } | undefined;
2752
+ promotion?: {
2753
+ currency: "CNY";
2754
+ amountMinor: number;
2755
+ display: string;
2756
+ } | undefined;
2757
+ }, {
2758
+ sale?: {
2759
+ currency: "CNY";
2760
+ amountMinor: number;
2761
+ display: string;
2762
+ } | undefined;
2763
+ original?: {
2764
+ currency: "CNY";
2765
+ amountMinor: number;
2766
+ display: string;
2767
+ } | undefined;
2768
+ promotion?: {
2769
+ currency: "CNY";
2770
+ amountMinor: number;
2771
+ display: string;
2772
+ } | undefined;
2773
+ }>;
2774
+ availability: z.ZodObject<{
2775
+ status: z.ZodEnum<["in_stock", "out_of_stock", "limited", "unknown"]>;
2776
+ label: z.ZodString;
2777
+ marketable: z.ZodBoolean;
2778
+ observedAt: z.ZodString;
2779
+ }, "strip", z.ZodTypeAny, {
2780
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2781
+ label: string;
2782
+ observedAt: string;
2783
+ marketable: boolean;
2784
+ }, {
2785
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2786
+ label: string;
2787
+ observedAt: string;
2788
+ marketable: boolean;
2789
+ }>;
2790
+ merchant: z.ZodObject<{
2791
+ merchantId: z.ZodString;
2792
+ name: z.ZodString;
2793
+ location: z.ZodOptional<z.ZodObject<{
2794
+ buildingName: z.ZodOptional<z.ZodString>;
2795
+ floorName: z.ZodOptional<z.ZodString>;
2796
+ unitName: z.ZodOptional<z.ZodString>;
2797
+ displayText: z.ZodString;
2798
+ poiId: z.ZodOptional<z.ZodString>;
2799
+ }, "strip", z.ZodTypeAny, {
2800
+ displayText: string;
2801
+ buildingName?: string | undefined;
2802
+ floorName?: string | undefined;
2803
+ unitName?: string | undefined;
2804
+ poiId?: string | undefined;
2805
+ }, {
2806
+ displayText: string;
2807
+ buildingName?: string | undefined;
2808
+ floorName?: string | undefined;
2809
+ unitName?: string | undefined;
2810
+ poiId?: string | undefined;
2811
+ }>>;
2812
+ }, "strip", z.ZodTypeAny, {
2813
+ name: string;
2814
+ merchantId: string;
2815
+ location?: {
2816
+ displayText: string;
2817
+ buildingName?: string | undefined;
2818
+ floorName?: string | undefined;
2819
+ unitName?: string | undefined;
2820
+ poiId?: string | undefined;
2821
+ } | undefined;
2822
+ }, {
2823
+ name: string;
2824
+ merchantId: string;
2825
+ location?: {
2826
+ displayText: string;
2827
+ buildingName?: string | undefined;
2828
+ floorName?: string | undefined;
2829
+ unitName?: string | undefined;
2830
+ poiId?: string | undefined;
2831
+ } | undefined;
2832
+ }>;
2833
+ attributes: z.ZodArray<z.ZodObject<{
2834
+ name: z.ZodString;
2835
+ value: z.ZodString;
2836
+ }, "strip", z.ZodTypeAny, {
2837
+ value: string;
2838
+ name: string;
2839
+ }, {
2840
+ value: string;
2841
+ name: string;
2842
+ }>, "many">;
2843
+ promotionFacts: z.ZodArray<z.ZodString, "many">;
2844
+ evidence: z.ZodArray<z.ZodObject<{
2845
+ code: z.ZodString;
2846
+ label: z.ZodString;
2847
+ value: z.ZodOptional<z.ZodString>;
2848
+ observedAt: z.ZodString;
2849
+ expiresAt: z.ZodOptional<z.ZodString>;
2850
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
2851
+ }, "strip", z.ZodTypeAny, {
2852
+ code: string;
2853
+ label: string;
2854
+ observedAt: string;
2855
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2856
+ value?: string | undefined;
2857
+ expiresAt?: string | undefined;
2858
+ }, {
2859
+ code: string;
2860
+ label: string;
2861
+ observedAt: string;
2862
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2863
+ value?: string | undefined;
2864
+ expiresAt?: string | undefined;
2865
+ }>, "many">;
2866
+ humanGuideAvailable: z.ZodBoolean;
2867
+ itemActions: z.ZodArray<z.ZodObject<{
2868
+ actionId: z.ZodString;
2869
+ label: z.ZodString;
2870
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2871
+ }, "strip", z.ZodTypeAny, {
2872
+ label: string;
2873
+ actionId: string;
2874
+ input?: Record<string, unknown> | undefined;
2875
+ }, {
2876
+ label: string;
2877
+ actionId: string;
2878
+ input?: Record<string, unknown> | undefined;
2879
+ }>, "many">;
2880
+ }, "strip", z.ZodTypeAny, {
2881
+ name: string;
2882
+ merchant: {
2883
+ name: string;
2884
+ merchantId: string;
2885
+ location?: {
2886
+ displayText: string;
2887
+ buildingName?: string | undefined;
2888
+ floorName?: string | undefined;
2889
+ unitName?: string | undefined;
2890
+ poiId?: string | undefined;
2891
+ } | undefined;
2892
+ };
2893
+ productId: string;
2894
+ categoryPath: string[];
2895
+ price: {
2896
+ sale?: {
2897
+ currency: "CNY";
2898
+ amountMinor: number;
2899
+ display: string;
2900
+ } | undefined;
2901
+ original?: {
2902
+ currency: "CNY";
2903
+ amountMinor: number;
2904
+ display: string;
2905
+ } | undefined;
2906
+ promotion?: {
2907
+ currency: "CNY";
2908
+ amountMinor: number;
2909
+ display: string;
2910
+ } | undefined;
2911
+ };
2912
+ availability: {
2913
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2914
+ label: string;
2915
+ observedAt: string;
2916
+ marketable: boolean;
2917
+ };
2918
+ evidence: {
2919
+ code: string;
2920
+ label: string;
2921
+ observedAt: string;
2922
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2923
+ value?: string | undefined;
2924
+ expiresAt?: string | undefined;
2925
+ }[];
2926
+ itemActions: {
2927
+ label: string;
2928
+ actionId: string;
2929
+ input?: Record<string, unknown> | undefined;
2930
+ }[];
2931
+ promotionFacts: string[];
2932
+ imageUrls: string[];
2933
+ attributes: {
2934
+ value: string;
2935
+ name: string;
2936
+ }[];
2937
+ humanGuideAvailable: boolean;
2938
+ description?: string | undefined;
2939
+ brand?: string | undefined;
2940
+ }, {
2941
+ name: string;
2942
+ merchant: {
2943
+ name: string;
2944
+ merchantId: string;
2945
+ location?: {
2946
+ displayText: string;
2947
+ buildingName?: string | undefined;
2948
+ floorName?: string | undefined;
2949
+ unitName?: string | undefined;
2950
+ poiId?: string | undefined;
2951
+ } | undefined;
2952
+ };
2953
+ productId: string;
2954
+ categoryPath: string[];
2955
+ price: {
2956
+ sale?: {
2957
+ currency: "CNY";
2958
+ amountMinor: number;
2959
+ display: string;
2960
+ } | undefined;
2961
+ original?: {
2962
+ currency: "CNY";
2963
+ amountMinor: number;
2964
+ display: string;
2965
+ } | undefined;
2966
+ promotion?: {
2967
+ currency: "CNY";
2968
+ amountMinor: number;
2969
+ display: string;
2970
+ } | undefined;
2971
+ };
2972
+ availability: {
2973
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
2974
+ label: string;
2975
+ observedAt: string;
2976
+ marketable: boolean;
2977
+ };
2978
+ evidence: {
2979
+ code: string;
2980
+ label: string;
2981
+ observedAt: string;
2982
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
2983
+ value?: string | undefined;
2984
+ expiresAt?: string | undefined;
2985
+ }[];
2986
+ itemActions: {
2987
+ label: string;
2988
+ actionId: string;
2989
+ input?: Record<string, unknown> | undefined;
2990
+ }[];
2991
+ promotionFacts: string[];
2992
+ imageUrls: string[];
2993
+ attributes: {
2994
+ value: string;
2995
+ name: string;
2996
+ }[];
2997
+ humanGuideAvailable: boolean;
2998
+ description?: string | undefined;
2999
+ brand?: string | undefined;
3000
+ }>;
3001
+ readonly 'merchant-list': z.ZodObject<{
3002
+ context: z.ZodEnum<["recommendation", "search"]>;
3003
+ summary: z.ZodOptional<z.ZodString>;
3004
+ items: z.ZodArray<z.ZodObject<{
3005
+ merchantId: z.ZodString;
3006
+ name: z.ZodString;
3007
+ logoUrl: z.ZodOptional<z.ZodString>;
3008
+ coverUrl: z.ZodOptional<z.ZodString>;
3009
+ brand: z.ZodOptional<z.ZodString>;
3010
+ businessCategories: z.ZodArray<z.ZodString, "many">;
3011
+ location: z.ZodObject<{
3012
+ buildingName: z.ZodOptional<z.ZodString>;
3013
+ floorName: z.ZodOptional<z.ZodString>;
3014
+ unitName: z.ZodOptional<z.ZodString>;
3015
+ displayText: z.ZodString;
3016
+ poiId: z.ZodOptional<z.ZodString>;
3017
+ }, "strip", z.ZodTypeAny, {
3018
+ displayText: string;
3019
+ buildingName?: string | undefined;
3020
+ floorName?: string | undefined;
3021
+ unitName?: string | undefined;
3022
+ poiId?: string | undefined;
3023
+ }, {
3024
+ displayText: string;
3025
+ buildingName?: string | undefined;
3026
+ floorName?: string | undefined;
3027
+ unitName?: string | undefined;
3028
+ poiId?: string | undefined;
3029
+ }>;
3030
+ status: z.ZodObject<{
3031
+ code: z.ZodEnum<["enabled", "disabled", "unknown"]>;
3032
+ label: z.ZodString;
3033
+ observedAt: z.ZodString;
3034
+ }, "strip", z.ZodTypeAny, {
3035
+ code: "unknown" | "enabled" | "disabled";
3036
+ label: string;
3037
+ observedAt: string;
3038
+ }, {
3039
+ code: "unknown" | "enabled" | "disabled";
3040
+ label: string;
3041
+ observedAt: string;
3042
+ }>;
3043
+ services: z.ZodArray<z.ZodString, "many">;
3044
+ promotionFacts: z.ZodArray<z.ZodString, "many">;
3045
+ reasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
3046
+ code: z.ZodString;
3047
+ label: z.ZodString;
3048
+ }, "strip", z.ZodTypeAny, {
3049
+ code: string;
3050
+ label: string;
3051
+ }, {
3052
+ code: string;
3053
+ label: string;
3054
+ }>, "many">>;
3055
+ evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
3056
+ code: z.ZodString;
3057
+ label: z.ZodString;
3058
+ value: z.ZodOptional<z.ZodString>;
3059
+ observedAt: z.ZodString;
3060
+ expiresAt: z.ZodOptional<z.ZodString>;
3061
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
3062
+ }, "strip", z.ZodTypeAny, {
3063
+ code: string;
3064
+ label: string;
3065
+ observedAt: string;
3066
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3067
+ value?: string | undefined;
3068
+ expiresAt?: string | undefined;
3069
+ }, {
3070
+ code: string;
3071
+ label: string;
3072
+ observedAt: string;
3073
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3074
+ value?: string | undefined;
3075
+ expiresAt?: string | undefined;
3076
+ }>, "many">>;
3077
+ itemActions: z.ZodArray<z.ZodObject<{
3078
+ actionId: z.ZodString;
3079
+ label: z.ZodString;
3080
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3081
+ }, "strip", z.ZodTypeAny, {
3082
+ label: string;
3083
+ actionId: string;
3084
+ input?: Record<string, unknown> | undefined;
3085
+ }, {
3086
+ label: string;
3087
+ actionId: string;
3088
+ input?: Record<string, unknown> | undefined;
3089
+ }>, "many">;
3090
+ }, "strip", z.ZodTypeAny, {
3091
+ status: {
3092
+ code: "unknown" | "enabled" | "disabled";
3093
+ label: string;
3094
+ observedAt: string;
3095
+ };
3096
+ name: string;
3097
+ merchantId: string;
3098
+ location: {
3099
+ displayText: string;
3100
+ buildingName?: string | undefined;
3101
+ floorName?: string | undefined;
3102
+ unitName?: string | undefined;
3103
+ poiId?: string | undefined;
3104
+ };
3105
+ itemActions: {
3106
+ label: string;
3107
+ actionId: string;
3108
+ input?: Record<string, unknown> | undefined;
3109
+ }[];
3110
+ businessCategories: string[];
3111
+ services: string[];
3112
+ promotionFacts: string[];
3113
+ brand?: string | undefined;
3114
+ reasons?: {
3115
+ code: string;
3116
+ label: string;
3117
+ }[] | undefined;
3118
+ evidence?: {
3119
+ code: string;
3120
+ label: string;
3121
+ observedAt: string;
3122
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3123
+ value?: string | undefined;
3124
+ expiresAt?: string | undefined;
3125
+ }[] | undefined;
3126
+ logoUrl?: string | undefined;
3127
+ coverUrl?: string | undefined;
3128
+ }, {
3129
+ status: {
3130
+ code: "unknown" | "enabled" | "disabled";
3131
+ label: string;
3132
+ observedAt: string;
3133
+ };
3134
+ name: string;
3135
+ merchantId: string;
3136
+ location: {
3137
+ displayText: string;
3138
+ buildingName?: string | undefined;
3139
+ floorName?: string | undefined;
3140
+ unitName?: string | undefined;
3141
+ poiId?: string | undefined;
3142
+ };
3143
+ itemActions: {
3144
+ label: string;
3145
+ actionId: string;
3146
+ input?: Record<string, unknown> | undefined;
3147
+ }[];
3148
+ businessCategories: string[];
3149
+ services: string[];
3150
+ promotionFacts: string[];
3151
+ brand?: string | undefined;
3152
+ reasons?: {
3153
+ code: string;
3154
+ label: string;
3155
+ }[] | undefined;
3156
+ evidence?: {
3157
+ code: string;
3158
+ label: string;
3159
+ observedAt: string;
3160
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3161
+ value?: string | undefined;
3162
+ expiresAt?: string | undefined;
3163
+ }[] | undefined;
3164
+ logoUrl?: string | undefined;
3165
+ coverUrl?: string | undefined;
3166
+ }>, "many">;
3167
+ noResultsReason: z.ZodOptional<z.ZodString>;
3168
+ pageInfo: z.ZodOptional<z.ZodObject<{
3169
+ page: z.ZodNumber;
3170
+ pageSize: z.ZodNumber;
3171
+ total: z.ZodNumber;
3172
+ hasMore: z.ZodBoolean;
3173
+ }, "strip", z.ZodTypeAny, {
3174
+ page: number;
3175
+ pageSize: number;
3176
+ total: number;
3177
+ hasMore: boolean;
3178
+ }, {
3179
+ page: number;
3180
+ pageSize: number;
3181
+ total: number;
3182
+ hasMore: boolean;
3183
+ }>>;
3184
+ refinements: z.ZodArray<z.ZodObject<{
3185
+ label: z.ZodString;
3186
+ queryText: z.ZodString;
3187
+ }, "strip", z.ZodTypeAny, {
3188
+ label: string;
3189
+ queryText: string;
3190
+ }, {
3191
+ label: string;
3192
+ queryText: string;
3193
+ }>, "many">;
3194
+ }, "strip", z.ZodTypeAny, {
3195
+ context: "recommendation" | "search";
3196
+ items: {
3197
+ status: {
3198
+ code: "unknown" | "enabled" | "disabled";
3199
+ label: string;
3200
+ observedAt: string;
3201
+ };
3202
+ name: string;
3203
+ merchantId: string;
3204
+ location: {
3205
+ displayText: string;
3206
+ buildingName?: string | undefined;
3207
+ floorName?: string | undefined;
3208
+ unitName?: string | undefined;
3209
+ poiId?: string | undefined;
3210
+ };
3211
+ itemActions: {
3212
+ label: string;
3213
+ actionId: string;
3214
+ input?: Record<string, unknown> | undefined;
3215
+ }[];
3216
+ businessCategories: string[];
3217
+ services: string[];
3218
+ promotionFacts: string[];
3219
+ brand?: string | undefined;
3220
+ reasons?: {
3221
+ code: string;
3222
+ label: string;
3223
+ }[] | undefined;
3224
+ evidence?: {
3225
+ code: string;
3226
+ label: string;
3227
+ observedAt: string;
3228
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3229
+ value?: string | undefined;
3230
+ expiresAt?: string | undefined;
3231
+ }[] | undefined;
3232
+ logoUrl?: string | undefined;
3233
+ coverUrl?: string | undefined;
3234
+ }[];
3235
+ refinements: {
3236
+ label: string;
3237
+ queryText: string;
3238
+ }[];
3239
+ summary?: string | undefined;
3240
+ noResultsReason?: string | undefined;
3241
+ pageInfo?: {
3242
+ page: number;
3243
+ pageSize: number;
3244
+ total: number;
3245
+ hasMore: boolean;
3246
+ } | undefined;
3247
+ }, {
3248
+ context: "recommendation" | "search";
3249
+ items: {
3250
+ status: {
3251
+ code: "unknown" | "enabled" | "disabled";
3252
+ label: string;
3253
+ observedAt: string;
3254
+ };
3255
+ name: string;
3256
+ merchantId: string;
3257
+ location: {
3258
+ displayText: string;
3259
+ buildingName?: string | undefined;
3260
+ floorName?: string | undefined;
3261
+ unitName?: string | undefined;
3262
+ poiId?: string | undefined;
3263
+ };
3264
+ itemActions: {
3265
+ label: string;
3266
+ actionId: string;
3267
+ input?: Record<string, unknown> | undefined;
3268
+ }[];
3269
+ businessCategories: string[];
3270
+ services: string[];
3271
+ promotionFacts: string[];
3272
+ brand?: string | undefined;
3273
+ reasons?: {
3274
+ code: string;
3275
+ label: string;
3276
+ }[] | undefined;
3277
+ evidence?: {
3278
+ code: string;
3279
+ label: string;
3280
+ observedAt: string;
3281
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3282
+ value?: string | undefined;
3283
+ expiresAt?: string | undefined;
3284
+ }[] | undefined;
3285
+ logoUrl?: string | undefined;
3286
+ coverUrl?: string | undefined;
3287
+ }[];
3288
+ refinements: {
3289
+ label: string;
3290
+ queryText: string;
3291
+ }[];
3292
+ summary?: string | undefined;
3293
+ noResultsReason?: string | undefined;
3294
+ pageInfo?: {
3295
+ page: number;
3296
+ pageSize: number;
3297
+ total: number;
3298
+ hasMore: boolean;
3299
+ } | undefined;
3300
+ }>;
3301
+ readonly 'merchant-detail': z.ZodObject<{
3302
+ merchantId: z.ZodString;
3303
+ name: z.ZodString;
3304
+ logoUrl: z.ZodOptional<z.ZodString>;
3305
+ coverUrls: z.ZodArray<z.ZodString, "many">;
3306
+ brand: z.ZodOptional<z.ZodString>;
3307
+ businessCategories: z.ZodArray<z.ZodString, "many">;
3308
+ location: z.ZodObject<{
3309
+ buildingName: z.ZodOptional<z.ZodString>;
3310
+ floorName: z.ZodOptional<z.ZodString>;
3311
+ unitName: z.ZodOptional<z.ZodString>;
3312
+ displayText: z.ZodString;
3313
+ poiId: z.ZodOptional<z.ZodString>;
3314
+ }, "strip", z.ZodTypeAny, {
3315
+ displayText: string;
3316
+ buildingName?: string | undefined;
3317
+ floorName?: string | undefined;
3318
+ unitName?: string | undefined;
3319
+ poiId?: string | undefined;
3320
+ }, {
3321
+ displayText: string;
3322
+ buildingName?: string | undefined;
3323
+ floorName?: string | undefined;
3324
+ unitName?: string | undefined;
3325
+ poiId?: string | undefined;
3326
+ }>;
3327
+ status: z.ZodObject<{
3328
+ code: z.ZodEnum<["enabled", "disabled", "unknown"]>;
3329
+ label: z.ZodString;
3330
+ observedAt: z.ZodString;
3331
+ }, "strip", z.ZodTypeAny, {
3332
+ code: "unknown" | "enabled" | "disabled";
3333
+ label: string;
3334
+ observedAt: string;
3335
+ }, {
3336
+ code: "unknown" | "enabled" | "disabled";
3337
+ label: string;
3338
+ observedAt: string;
3339
+ }>;
3340
+ description: z.ZodOptional<z.ZodString>;
3341
+ contactInfo: z.ZodOptional<z.ZodArray<z.ZodObject<{
3342
+ channel: z.ZodString;
3343
+ value: z.ZodString;
3344
+ }, "strip", z.ZodTypeAny, {
3345
+ value: string;
3346
+ channel: string;
3347
+ }, {
3348
+ value: string;
3349
+ channel: string;
3350
+ }>, "many">>;
3351
+ services: z.ZodArray<z.ZodString, "many">;
3352
+ promotionFacts: z.ZodArray<z.ZodString, "many">;
3353
+ evidence: z.ZodArray<z.ZodObject<{
3354
+ code: z.ZodString;
3355
+ label: z.ZodString;
3356
+ value: z.ZodOptional<z.ZodString>;
3357
+ observedAt: z.ZodString;
3358
+ expiresAt: z.ZodOptional<z.ZodString>;
3359
+ sourceKind: z.ZodEnum<["catalog", "merchant", "mall", "policy"]>;
3360
+ }, "strip", z.ZodTypeAny, {
3361
+ code: string;
3362
+ label: string;
3363
+ observedAt: string;
3364
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3365
+ value?: string | undefined;
3366
+ expiresAt?: string | undefined;
3367
+ }, {
3368
+ code: string;
3369
+ label: string;
3370
+ observedAt: string;
3371
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3372
+ value?: string | undefined;
3373
+ expiresAt?: string | undefined;
3374
+ }>, "many">;
3375
+ itemActions: z.ZodArray<z.ZodObject<{
3376
+ actionId: z.ZodString;
3377
+ label: z.ZodString;
3378
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3379
+ }, "strip", z.ZodTypeAny, {
3380
+ label: string;
3381
+ actionId: string;
3382
+ input?: Record<string, unknown> | undefined;
3383
+ }, {
3384
+ label: string;
3385
+ actionId: string;
3386
+ input?: Record<string, unknown> | undefined;
3387
+ }>, "many">;
3388
+ }, "strip", z.ZodTypeAny, {
3389
+ status: {
3390
+ code: "unknown" | "enabled" | "disabled";
3391
+ label: string;
3392
+ observedAt: string;
3393
+ };
3394
+ name: string;
3395
+ merchantId: string;
3396
+ location: {
3397
+ displayText: string;
3398
+ buildingName?: string | undefined;
3399
+ floorName?: string | undefined;
3400
+ unitName?: string | undefined;
3401
+ poiId?: string | undefined;
3402
+ };
3403
+ evidence: {
3404
+ code: string;
3405
+ label: string;
3406
+ observedAt: string;
3407
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3408
+ value?: string | undefined;
3409
+ expiresAt?: string | undefined;
3410
+ }[];
3411
+ itemActions: {
3412
+ label: string;
3413
+ actionId: string;
3414
+ input?: Record<string, unknown> | undefined;
3415
+ }[];
3416
+ businessCategories: string[];
3417
+ services: string[];
3418
+ promotionFacts: string[];
3419
+ coverUrls: string[];
3420
+ description?: string | undefined;
3421
+ brand?: string | undefined;
3422
+ logoUrl?: string | undefined;
3423
+ contactInfo?: {
3424
+ value: string;
3425
+ channel: string;
3426
+ }[] | undefined;
3427
+ }, {
3428
+ status: {
3429
+ code: "unknown" | "enabled" | "disabled";
3430
+ label: string;
3431
+ observedAt: string;
3432
+ };
3433
+ name: string;
3434
+ merchantId: string;
3435
+ location: {
3436
+ displayText: string;
3437
+ buildingName?: string | undefined;
3438
+ floorName?: string | undefined;
3439
+ unitName?: string | undefined;
3440
+ poiId?: string | undefined;
3441
+ };
3442
+ evidence: {
3443
+ code: string;
3444
+ label: string;
3445
+ observedAt: string;
3446
+ sourceKind: "mall" | "catalog" | "merchant" | "policy";
3447
+ value?: string | undefined;
3448
+ expiresAt?: string | undefined;
3449
+ }[];
3450
+ itemActions: {
3451
+ label: string;
3452
+ actionId: string;
3453
+ input?: Record<string, unknown> | undefined;
3454
+ }[];
3455
+ businessCategories: string[];
3456
+ services: string[];
3457
+ promotionFacts: string[];
3458
+ coverUrls: string[];
3459
+ description?: string | undefined;
3460
+ brand?: string | undefined;
3461
+ logoUrl?: string | undefined;
3462
+ contactInfo?: {
3463
+ value: string;
3464
+ channel: string;
3465
+ }[] | undefined;
3466
+ }>;
3467
+ readonly 'category-list': z.ZodObject<{
3468
+ categories: z.ZodArray<z.ZodObject<{
3469
+ code: z.ZodString;
3470
+ name: z.ZodString;
3471
+ description: z.ZodOptional<z.ZodString>;
3472
+ merchantCount: z.ZodNumber;
3473
+ subCategories: z.ZodOptional<z.ZodArray<z.ZodObject<{
3474
+ code: z.ZodString;
3475
+ name: z.ZodString;
3476
+ merchantCount: z.ZodNumber;
3477
+ }, "strip", z.ZodTypeAny, {
3478
+ code: string;
3479
+ name: string;
3480
+ merchantCount: number;
3481
+ }, {
3482
+ code: string;
3483
+ name: string;
3484
+ merchantCount: number;
3485
+ }>, "many">>;
3486
+ }, "strip", z.ZodTypeAny, {
3487
+ code: string;
3488
+ name: string;
3489
+ merchantCount: number;
3490
+ description?: string | undefined;
3491
+ subCategories?: {
3492
+ code: string;
3493
+ name: string;
3494
+ merchantCount: number;
3495
+ }[] | undefined;
3496
+ }, {
3497
+ code: string;
3498
+ name: string;
3499
+ merchantCount: number;
3500
+ description?: string | undefined;
3501
+ subCategories?: {
3502
+ code: string;
3503
+ name: string;
3504
+ merchantCount: number;
3505
+ }[] | undefined;
3506
+ }>, "many">;
3507
+ observedAt: z.ZodString;
3508
+ }, "strip", z.ZodTypeAny, {
3509
+ observedAt: string;
3510
+ categories: {
3511
+ code: string;
3512
+ name: string;
3513
+ merchantCount: number;
3514
+ description?: string | undefined;
3515
+ subCategories?: {
3516
+ code: string;
3517
+ name: string;
3518
+ merchantCount: number;
3519
+ }[] | undefined;
3520
+ }[];
3521
+ }, {
3522
+ observedAt: string;
3523
+ categories: {
3524
+ code: string;
3525
+ name: string;
3526
+ merchantCount: number;
3527
+ description?: string | undefined;
3528
+ subCategories?: {
3529
+ code: string;
3530
+ name: string;
3531
+ merchantCount: number;
3532
+ }[] | undefined;
3533
+ }[];
3534
+ }>;
3535
+ readonly 'product-comparison': z.ZodObject<{
3536
+ products: z.ZodArray<z.ZodObject<{
3537
+ productId: z.ZodString;
3538
+ name: z.ZodString;
3539
+ imageUrl: z.ZodOptional<z.ZodString>;
3540
+ brand: z.ZodOptional<z.ZodString>;
3541
+ price: z.ZodObject<{
3542
+ sale: z.ZodOptional<z.ZodObject<{
3543
+ currency: z.ZodLiteral<"CNY">;
3544
+ amountMinor: z.ZodNumber;
3545
+ display: z.ZodString;
3546
+ }, "strip", z.ZodTypeAny, {
3547
+ currency: "CNY";
3548
+ amountMinor: number;
3549
+ display: string;
3550
+ }, {
3551
+ currency: "CNY";
3552
+ amountMinor: number;
3553
+ display: string;
3554
+ }>>;
3555
+ original: z.ZodOptional<z.ZodObject<{
3556
+ currency: z.ZodLiteral<"CNY">;
3557
+ amountMinor: z.ZodNumber;
3558
+ display: z.ZodString;
3559
+ }, "strip", z.ZodTypeAny, {
3560
+ currency: "CNY";
3561
+ amountMinor: number;
3562
+ display: string;
3563
+ }, {
3564
+ currency: "CNY";
3565
+ amountMinor: number;
3566
+ display: string;
3567
+ }>>;
3568
+ promotion: z.ZodOptional<z.ZodObject<{
3569
+ currency: z.ZodLiteral<"CNY">;
3570
+ amountMinor: z.ZodNumber;
3571
+ display: z.ZodString;
3572
+ }, "strip", z.ZodTypeAny, {
3573
+ currency: "CNY";
3574
+ amountMinor: number;
3575
+ display: string;
3576
+ }, {
3577
+ currency: "CNY";
3578
+ amountMinor: number;
3579
+ display: string;
3580
+ }>>;
3581
+ }, "strip", z.ZodTypeAny, {
3582
+ sale?: {
3583
+ currency: "CNY";
3584
+ amountMinor: number;
3585
+ display: string;
3586
+ } | undefined;
3587
+ original?: {
3588
+ currency: "CNY";
3589
+ amountMinor: number;
3590
+ display: string;
3591
+ } | undefined;
3592
+ promotion?: {
3593
+ currency: "CNY";
3594
+ amountMinor: number;
3595
+ display: string;
3596
+ } | undefined;
3597
+ }, {
3598
+ sale?: {
3599
+ currency: "CNY";
3600
+ amountMinor: number;
3601
+ display: string;
3602
+ } | undefined;
3603
+ original?: {
3604
+ currency: "CNY";
3605
+ amountMinor: number;
3606
+ display: string;
3607
+ } | undefined;
3608
+ promotion?: {
3609
+ currency: "CNY";
3610
+ amountMinor: number;
3611
+ display: string;
3612
+ } | undefined;
3613
+ }>;
3614
+ availability: z.ZodObject<{
3615
+ status: z.ZodEnum<["in_stock", "out_of_stock", "limited", "unknown"]>;
3616
+ label: z.ZodString;
3617
+ marketable: z.ZodBoolean;
3618
+ observedAt: z.ZodString;
3619
+ }, "strip", z.ZodTypeAny, {
3620
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
3621
+ label: string;
3622
+ observedAt: string;
3623
+ marketable: boolean;
3624
+ }, {
3625
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
3626
+ label: string;
3627
+ observedAt: string;
3628
+ marketable: boolean;
3629
+ }>;
3630
+ merchant: z.ZodObject<{
3631
+ merchantId: z.ZodString;
3632
+ name: z.ZodString;
3633
+ }, "strip", z.ZodTypeAny, {
3634
+ name: string;
3635
+ merchantId: string;
3636
+ }, {
3637
+ name: string;
3638
+ merchantId: string;
3639
+ }>;
3640
+ attributes: z.ZodArray<z.ZodObject<{
3641
+ name: z.ZodString;
3642
+ value: z.ZodString;
3643
+ }, "strip", z.ZodTypeAny, {
3644
+ value: string;
3645
+ name: string;
3646
+ }, {
3647
+ value: string;
3648
+ name: string;
3649
+ }>, "many">;
3650
+ caveats: z.ZodArray<z.ZodString, "many">;
3651
+ }, "strip", z.ZodTypeAny, {
3652
+ name: string;
3653
+ merchant: {
3654
+ name: string;
3655
+ merchantId: string;
3656
+ };
3657
+ productId: string;
3658
+ price: {
3659
+ sale?: {
3660
+ currency: "CNY";
3661
+ amountMinor: number;
3662
+ display: string;
3663
+ } | undefined;
3664
+ original?: {
3665
+ currency: "CNY";
3666
+ amountMinor: number;
3667
+ display: string;
3668
+ } | undefined;
3669
+ promotion?: {
3670
+ currency: "CNY";
3671
+ amountMinor: number;
3672
+ display: string;
3673
+ } | undefined;
3674
+ };
3675
+ availability: {
3676
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
3677
+ label: string;
3678
+ observedAt: string;
3679
+ marketable: boolean;
3680
+ };
3681
+ caveats: string[];
3682
+ attributes: {
3683
+ value: string;
3684
+ name: string;
3685
+ }[];
3686
+ imageUrl?: string | undefined;
3687
+ brand?: string | undefined;
3688
+ }, {
3689
+ name: string;
3690
+ merchant: {
3691
+ name: string;
3692
+ merchantId: string;
3693
+ };
3694
+ productId: string;
3695
+ price: {
3696
+ sale?: {
3697
+ currency: "CNY";
3698
+ amountMinor: number;
3699
+ display: string;
3700
+ } | undefined;
3701
+ original?: {
3702
+ currency: "CNY";
3703
+ amountMinor: number;
3704
+ display: string;
3705
+ } | undefined;
3706
+ promotion?: {
3707
+ currency: "CNY";
3708
+ amountMinor: number;
3709
+ display: string;
3710
+ } | undefined;
3711
+ };
3712
+ availability: {
3713
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
3714
+ label: string;
3715
+ observedAt: string;
3716
+ marketable: boolean;
3717
+ };
3718
+ caveats: string[];
3719
+ attributes: {
3720
+ value: string;
3721
+ name: string;
3722
+ }[];
3723
+ imageUrl?: string | undefined;
3724
+ brand?: string | undefined;
3725
+ }>, "many">;
3726
+ observedAt: z.ZodString;
3727
+ }, "strip", z.ZodTypeAny, {
3728
+ observedAt: string;
3729
+ products: {
3730
+ name: string;
3731
+ merchant: {
3732
+ name: string;
3733
+ merchantId: string;
3734
+ };
3735
+ productId: string;
3736
+ price: {
3737
+ sale?: {
3738
+ currency: "CNY";
3739
+ amountMinor: number;
3740
+ display: string;
3741
+ } | undefined;
3742
+ original?: {
3743
+ currency: "CNY";
3744
+ amountMinor: number;
3745
+ display: string;
3746
+ } | undefined;
3747
+ promotion?: {
3748
+ currency: "CNY";
3749
+ amountMinor: number;
3750
+ display: string;
3751
+ } | undefined;
3752
+ };
3753
+ availability: {
3754
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
3755
+ label: string;
3756
+ observedAt: string;
3757
+ marketable: boolean;
3758
+ };
3759
+ caveats: string[];
3760
+ attributes: {
3761
+ value: string;
3762
+ name: string;
3763
+ }[];
3764
+ imageUrl?: string | undefined;
3765
+ brand?: string | undefined;
3766
+ }[];
3767
+ }, {
3768
+ observedAt: string;
3769
+ products: {
3770
+ name: string;
3771
+ merchant: {
3772
+ name: string;
3773
+ merchantId: string;
3774
+ };
3775
+ productId: string;
3776
+ price: {
3777
+ sale?: {
3778
+ currency: "CNY";
3779
+ amountMinor: number;
3780
+ display: string;
3781
+ } | undefined;
3782
+ original?: {
3783
+ currency: "CNY";
3784
+ amountMinor: number;
3785
+ display: string;
3786
+ } | undefined;
3787
+ promotion?: {
3788
+ currency: "CNY";
3789
+ amountMinor: number;
3790
+ display: string;
3791
+ } | undefined;
3792
+ };
3793
+ availability: {
3794
+ status: "unknown" | "in_stock" | "out_of_stock" | "limited";
3795
+ label: string;
3796
+ observedAt: string;
3797
+ marketable: boolean;
3798
+ };
3799
+ caveats: string[];
3800
+ attributes: {
3801
+ value: string;
3802
+ name: string;
3803
+ }[];
3804
+ imageUrl?: string | undefined;
3805
+ brand?: string | undefined;
3806
+ }[];
3807
+ }>;
3808
+ readonly 'mall-directory': z.ZodObject<{
3809
+ mallId: z.ZodString;
3810
+ mallName: z.ZodString;
3811
+ buildings: z.ZodArray<z.ZodObject<{
3812
+ buildingCode: z.ZodString;
3813
+ buildingName: z.ZodString;
3814
+ floors: z.ZodArray<z.ZodObject<{
3815
+ floorCode: z.ZodString;
3816
+ floorName: z.ZodString;
3817
+ businessCategories: z.ZodArray<z.ZodString, "many">;
3818
+ merchantCount: z.ZodNumber;
3819
+ }, "strip", z.ZodTypeAny, {
3820
+ floorName: string;
3821
+ businessCategories: string[];
3822
+ merchantCount: number;
3823
+ floorCode: string;
3824
+ }, {
3825
+ floorName: string;
3826
+ businessCategories: string[];
3827
+ merchantCount: number;
3828
+ floorCode: string;
3829
+ }>, "many">;
3830
+ }, "strip", z.ZodTypeAny, {
3831
+ buildingName: string;
3832
+ buildingCode: string;
3833
+ floors: {
3834
+ floorName: string;
3835
+ businessCategories: string[];
3836
+ merchantCount: number;
3837
+ floorCode: string;
3838
+ }[];
3839
+ }, {
3840
+ buildingName: string;
3841
+ buildingCode: string;
3842
+ floors: {
3843
+ floorName: string;
3844
+ businessCategories: string[];
3845
+ merchantCount: number;
3846
+ floorCode: string;
3847
+ }[];
3848
+ }>, "many">;
3849
+ observedAt: z.ZodString;
3850
+ }, "strip", z.ZodTypeAny, {
3851
+ mallId: string;
3852
+ observedAt: string;
3853
+ mallName: string;
3854
+ buildings: {
3855
+ buildingName: string;
3856
+ buildingCode: string;
3857
+ floors: {
3858
+ floorName: string;
3859
+ businessCategories: string[];
3860
+ merchantCount: number;
3861
+ floorCode: string;
3862
+ }[];
3863
+ }[];
3864
+ }, {
3865
+ mallId: string;
3866
+ observedAt: string;
3867
+ mallName: string;
3868
+ buildings: {
3869
+ buildingName: string;
3870
+ buildingCode: string;
3871
+ floors: {
3872
+ floorName: string;
3873
+ businessCategories: string[];
3874
+ merchantCount: number;
3875
+ floorCode: string;
3876
+ }[];
3877
+ }[];
3878
+ }>;
3879
+ readonly 'nearby-mall-list': z.ZodObject<{
3880
+ query: z.ZodOptional<z.ZodString>;
3881
+ malls: z.ZodArray<z.ZodObject<{
3882
+ mallId: z.ZodString;
3883
+ name: z.ZodString;
3884
+ address: z.ZodString;
3885
+ distanceKm: z.ZodOptional<z.ZodNumber>;
3886
+ status: z.ZodObject<{
3887
+ code: z.ZodEnum<["open", "closed", "unknown"]>;
3888
+ label: z.ZodString;
3889
+ }, "strip", z.ZodTypeAny, {
3890
+ code: "closed" | "unknown" | "open";
3891
+ label: string;
3892
+ }, {
3893
+ code: "closed" | "unknown" | "open";
3894
+ label: string;
3895
+ }>;
3896
+ itemActions: z.ZodArray<z.ZodObject<{
3897
+ actionId: z.ZodString;
3898
+ label: z.ZodString;
3899
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3900
+ }, "strip", z.ZodTypeAny, {
3901
+ label: string;
3902
+ actionId: string;
3903
+ input?: Record<string, unknown> | undefined;
3904
+ }, {
3905
+ label: string;
3906
+ actionId: string;
3907
+ input?: Record<string, unknown> | undefined;
3908
+ }>, "many">;
3909
+ }, "strip", z.ZodTypeAny, {
3910
+ status: {
3911
+ code: "closed" | "unknown" | "open";
3912
+ label: string;
3913
+ };
3914
+ name: string;
3915
+ mallId: string;
3916
+ itemActions: {
3917
+ label: string;
3918
+ actionId: string;
3919
+ input?: Record<string, unknown> | undefined;
3920
+ }[];
3921
+ address: string;
3922
+ distanceKm?: number | undefined;
3923
+ }, {
3924
+ status: {
3925
+ code: "closed" | "unknown" | "open";
3926
+ label: string;
3927
+ };
3928
+ name: string;
3929
+ mallId: string;
3930
+ itemActions: {
3931
+ label: string;
3932
+ actionId: string;
3933
+ input?: Record<string, unknown> | undefined;
3934
+ }[];
3935
+ address: string;
3936
+ distanceKm?: number | undefined;
3937
+ }>, "many">;
3938
+ }, "strip", z.ZodTypeAny, {
3939
+ malls: {
3940
+ status: {
3941
+ code: "closed" | "unknown" | "open";
3942
+ label: string;
3943
+ };
3944
+ name: string;
3945
+ mallId: string;
3946
+ itemActions: {
3947
+ label: string;
3948
+ actionId: string;
3949
+ input?: Record<string, unknown> | undefined;
3950
+ }[];
3951
+ address: string;
3952
+ distanceKm?: number | undefined;
3953
+ }[];
3954
+ query?: string | undefined;
3955
+ }, {
3956
+ malls: {
3957
+ status: {
3958
+ code: "closed" | "unknown" | "open";
3959
+ label: string;
3960
+ };
3961
+ name: string;
3962
+ mallId: string;
3963
+ itemActions: {
3964
+ label: string;
3965
+ actionId: string;
3966
+ input?: Record<string, unknown> | undefined;
3967
+ }[];
3968
+ address: string;
3969
+ distanceKm?: number | undefined;
3970
+ }[];
3971
+ query?: string | undefined;
3972
+ }>;
3973
+ readonly 'customer-service-faq': z.ZodObject<{
3974
+ query: z.ZodString;
3975
+ faqs: z.ZodArray<z.ZodObject<{
3976
+ question: z.ZodString;
3977
+ answer: z.ZodString;
3978
+ category: z.ZodOptional<z.ZodString>;
3979
+ relevanceScore: z.ZodNumber;
3980
+ }, "strip", z.ZodTypeAny, {
3981
+ question: string;
3982
+ answer: string;
3983
+ relevanceScore: number;
3984
+ category?: string | undefined;
3985
+ }, {
3986
+ question: string;
3987
+ answer: string;
3988
+ relevanceScore: number;
3989
+ category?: string | undefined;
3990
+ }>, "many">;
3991
+ noResultsReason: z.ZodOptional<z.ZodString>;
3992
+ }, "strip", z.ZodTypeAny, {
3993
+ query: string;
3994
+ faqs: {
3995
+ question: string;
3996
+ answer: string;
3997
+ relevanceScore: number;
3998
+ category?: string | undefined;
3999
+ }[];
4000
+ noResultsReason?: string | undefined;
4001
+ }, {
4002
+ query: string;
4003
+ faqs: {
4004
+ question: string;
4005
+ answer: string;
4006
+ relevanceScore: number;
4007
+ category?: string | undefined;
4008
+ }[];
4009
+ noResultsReason?: string | undefined;
4010
+ }>;
4011
+ readonly 'human-guide-list': z.ZodObject<{
4012
+ merchantId: z.ZodString;
4013
+ merchantName: z.ZodString;
4014
+ guides: z.ZodArray<z.ZodObject<{
4015
+ guideId: z.ZodString;
4016
+ name: z.ZodString;
4017
+ title: z.ZodOptional<z.ZodString>;
4018
+ avatarUrl: z.ZodOptional<z.ZodString>;
4019
+ contactInfo: z.ZodOptional<z.ZodArray<z.ZodObject<{
4020
+ channel: z.ZodString;
4021
+ value: z.ZodString;
4022
+ }, "strip", z.ZodTypeAny, {
4023
+ value: string;
4024
+ channel: string;
4025
+ }, {
4026
+ value: string;
4027
+ channel: string;
4028
+ }>, "many">>;
4029
+ available: z.ZodBoolean;
4030
+ itemActions: z.ZodArray<z.ZodObject<{
4031
+ actionId: z.ZodString;
4032
+ label: z.ZodString;
4033
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
4034
+ }, "strip", z.ZodTypeAny, {
4035
+ label: string;
4036
+ actionId: string;
4037
+ input?: Record<string, unknown> | undefined;
4038
+ }, {
4039
+ label: string;
4040
+ actionId: string;
4041
+ input?: Record<string, unknown> | undefined;
4042
+ }>, "many">;
4043
+ }, "strip", z.ZodTypeAny, {
4044
+ name: string;
4045
+ itemActions: {
4046
+ label: string;
4047
+ actionId: string;
4048
+ input?: Record<string, unknown> | undefined;
4049
+ }[];
4050
+ guideId: string;
4051
+ available: boolean;
4052
+ contactInfo?: {
4053
+ value: string;
4054
+ channel: string;
4055
+ }[] | undefined;
4056
+ title?: string | undefined;
4057
+ avatarUrl?: string | undefined;
4058
+ }, {
4059
+ name: string;
4060
+ itemActions: {
4061
+ label: string;
4062
+ actionId: string;
4063
+ input?: Record<string, unknown> | undefined;
4064
+ }[];
4065
+ guideId: string;
4066
+ available: boolean;
4067
+ contactInfo?: {
4068
+ value: string;
4069
+ channel: string;
4070
+ }[] | undefined;
4071
+ title?: string | undefined;
4072
+ avatarUrl?: string | undefined;
4073
+ }>, "many">;
4074
+ }, "strip", z.ZodTypeAny, {
4075
+ merchantId: string;
4076
+ merchantName: string;
4077
+ guides: {
4078
+ name: string;
4079
+ itemActions: {
4080
+ label: string;
4081
+ actionId: string;
4082
+ input?: Record<string, unknown> | undefined;
4083
+ }[];
4084
+ guideId: string;
4085
+ available: boolean;
4086
+ contactInfo?: {
4087
+ value: string;
4088
+ channel: string;
4089
+ }[] | undefined;
4090
+ title?: string | undefined;
4091
+ avatarUrl?: string | undefined;
4092
+ }[];
4093
+ }, {
4094
+ merchantId: string;
4095
+ merchantName: string;
4096
+ guides: {
4097
+ name: string;
4098
+ itemActions: {
4099
+ label: string;
4100
+ actionId: string;
4101
+ input?: Record<string, unknown> | undefined;
4102
+ }[];
4103
+ guideId: string;
4104
+ available: boolean;
4105
+ contactInfo?: {
4106
+ value: string;
4107
+ channel: string;
4108
+ }[] | undefined;
4109
+ title?: string | undefined;
4110
+ avatarUrl?: string | undefined;
4111
+ }[];
4112
+ }>;
4113
+ readonly 'location-handoff': z.ZodObject<{
4114
+ merchantId: z.ZodString;
4115
+ merchantName: z.ZodString;
4116
+ location: z.ZodObject<{
4117
+ buildingName: z.ZodOptional<z.ZodString>;
4118
+ floorName: z.ZodOptional<z.ZodString>;
4119
+ unitName: z.ZodOptional<z.ZodString>;
4120
+ displayText: z.ZodString;
4121
+ poiId: z.ZodOptional<z.ZodString>;
4122
+ }, "strip", z.ZodTypeAny, {
4123
+ displayText: string;
4124
+ buildingName?: string | undefined;
4125
+ floorName?: string | undefined;
4126
+ unitName?: string | undefined;
4127
+ poiId?: string | undefined;
4128
+ }, {
4129
+ displayText: string;
4130
+ buildingName?: string | undefined;
4131
+ floorName?: string | undefined;
4132
+ unitName?: string | undefined;
4133
+ poiId?: string | undefined;
4134
+ }>;
4135
+ mapUrl: z.ZodOptional<z.ZodString>;
4136
+ navigation: z.ZodOptional<z.ZodObject<{
4137
+ provider: z.ZodEnum<["amap", "builtin"]>;
4138
+ launchParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
4139
+ }, "strip", z.ZodTypeAny, {
4140
+ provider: "amap" | "builtin";
4141
+ launchParams?: Record<string, string> | undefined;
4142
+ }, {
4143
+ provider: "amap" | "builtin";
4144
+ launchParams?: Record<string, string> | undefined;
4145
+ }>>;
4146
+ itemActions: z.ZodArray<z.ZodObject<{
4147
+ actionId: z.ZodString;
4148
+ label: z.ZodString;
4149
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
4150
+ }, "strip", z.ZodTypeAny, {
4151
+ label: string;
4152
+ actionId: string;
4153
+ input?: Record<string, unknown> | undefined;
4154
+ }, {
4155
+ label: string;
4156
+ actionId: string;
4157
+ input?: Record<string, unknown> | undefined;
4158
+ }>, "many">;
4159
+ }, "strip", z.ZodTypeAny, {
4160
+ merchantId: string;
4161
+ location: {
4162
+ displayText: string;
4163
+ buildingName?: string | undefined;
4164
+ floorName?: string | undefined;
4165
+ unitName?: string | undefined;
4166
+ poiId?: string | undefined;
4167
+ };
4168
+ itemActions: {
4169
+ label: string;
4170
+ actionId: string;
4171
+ input?: Record<string, unknown> | undefined;
4172
+ }[];
4173
+ merchantName: string;
4174
+ mapUrl?: string | undefined;
4175
+ navigation?: {
4176
+ provider: "amap" | "builtin";
4177
+ launchParams?: Record<string, string> | undefined;
4178
+ } | undefined;
4179
+ }, {
4180
+ merchantId: string;
4181
+ location: {
4182
+ displayText: string;
4183
+ buildingName?: string | undefined;
4184
+ floorName?: string | undefined;
4185
+ unitName?: string | undefined;
4186
+ poiId?: string | undefined;
4187
+ };
4188
+ itemActions: {
4189
+ label: string;
4190
+ actionId: string;
4191
+ input?: Record<string, unknown> | undefined;
4192
+ }[];
4193
+ merchantName: string;
4194
+ mapUrl?: string | undefined;
4195
+ navigation?: {
4196
+ provider: "amap" | "builtin";
4197
+ launchParams?: Record<string, string> | undefined;
4198
+ } | undefined;
4199
+ }>;
4200
+ };
4201
+ export type ShoppingGuideCardType = keyof typeof shoppingGuideCardDataSchemas;