@h-ai/api-contract 0.1.0-alpha.68 → 0.1.0-alpha.70

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,1504 @@
1
+ import * as _orpc_contract from '@orpc/contract';
2
+ import * as zod_v4_core from 'zod/v4/core';
3
+ import * as zod from 'zod';
4
+ import { z } from 'zod';
5
+
6
+ /**
7
+ * 反馈契约,宿主自行决定是否挂载。
8
+ * @example
9
+ * ```ts
10
+ * import { apiContract } from '@h-ai/api-contract'
11
+ * const contract = apiContract.create({ feedback: apiContract.feedback })
12
+ * const path = apiContract.pathOf(contract.feedback.reports.submit)
13
+ * ```
14
+ */
15
+ declare const feedbackContract: {
16
+ reports: {
17
+ submit: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
18
+ submissionId: zod.ZodString;
19
+ appId: zod.ZodString;
20
+ description: zod.ZodOptional<zod.ZodString>;
21
+ category: zod.ZodOptional<zod.ZodString>;
22
+ contact: zod.ZodOptional<zod.ZodString>;
23
+ url: zod.ZodOptional<zod.ZodString>;
24
+ appVersion: zod.ZodOptional<zod.ZodString>;
25
+ buildId: zod.ZodOptional<zod.ZodString>;
26
+ commit: zod.ZodOptional<zod.ZodString>;
27
+ anchor: zod.ZodOptional<zod.ZodObject<{
28
+ kind: zod.ZodEnum<{
29
+ error: "error";
30
+ feedback: "feedback";
31
+ }>;
32
+ timestamp: zod.ZodNumber;
33
+ errorId: zod.ZodOptional<zod.ZodString>;
34
+ }, zod_v4_core.$strict>>;
35
+ evidence: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
36
+ id: zod.ZodString;
37
+ source: zod.ZodString;
38
+ sequence: zod.ZodNumber;
39
+ kind: zod.ZodEnum<{
40
+ error: "error";
41
+ request: "request";
42
+ log: "log";
43
+ interaction: "interaction";
44
+ environment: "environment";
45
+ snapshot: "snapshot";
46
+ replay: "replay";
47
+ business: "business";
48
+ missing: "missing";
49
+ }>;
50
+ timestamp: zod.ZodNumber;
51
+ requestId: zod.ZodOptional<zod.ZodString>;
52
+ errorId: zod.ZodOptional<zod.ZodString>;
53
+ data: zod.ZodRecord<zod.ZodString, zod.ZodJSONSchema>;
54
+ missingReason: zod.ZodOptional<zod.ZodString>;
55
+ }, zod_v4_core.$strict>>>;
56
+ attachments: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
57
+ id: zod.ZodString;
58
+ name: zod.ZodString;
59
+ contentType: zod.ZodString;
60
+ size: zod.ZodNumber;
61
+ checksum: zod.ZodString;
62
+ }, zod_v4_core.$strict>>>;
63
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
64
+ success: zod.ZodLiteral<true>;
65
+ data: zod.ZodObject<{
66
+ id: zod.ZodString;
67
+ number: zod.ZodString;
68
+ appId: zod.ZodString;
69
+ scopeId: zod.ZodString;
70
+ userId: zod.ZodString;
71
+ status: zod.ZodEnum<{
72
+ pending: "pending";
73
+ handled: "handled";
74
+ }>;
75
+ collectionStatus: zod.ZodEnum<{
76
+ collecting: "collecting";
77
+ complete: "complete";
78
+ partial: "partial";
79
+ failed: "failed";
80
+ }>;
81
+ notificationStatus: zod.ZodEnum<{
82
+ pending: "pending";
83
+ failed: "failed";
84
+ sending: "sending";
85
+ sent: "sent";
86
+ deferred: "deferred";
87
+ }>;
88
+ description: zod.ZodOptional<zod.ZodString>;
89
+ summary: zod.ZodOptional<zod.ZodString>;
90
+ category: zod.ZodOptional<zod.ZodString>;
91
+ contact: zod.ZodOptional<zod.ZodString>;
92
+ url: zod.ZodOptional<zod.ZodString>;
93
+ appVersion: zod.ZodOptional<zod.ZodString>;
94
+ buildId: zod.ZodOptional<zod.ZodString>;
95
+ commit: zod.ZodOptional<zod.ZodString>;
96
+ createdAt: zod.ZodNumber;
97
+ updatedAt: zod.ZodNumber;
98
+ version: zod.ZodNumber;
99
+ evidenceRevision: zod.ZodNumber;
100
+ }, zod_v4_core.$strip>;
101
+ }, zod_v4_core.$strip>, zod.ZodObject<{
102
+ success: zod.ZodLiteral<false>;
103
+ error: zod.ZodObject<{
104
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
105
+ message: zod.ZodString;
106
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
107
+ system: zod.ZodOptional<zod.ZodString>;
108
+ module: zod.ZodOptional<zod.ZodString>;
109
+ cause: zod.ZodOptional<zod.ZodUnknown>;
110
+ suggestion: zod.ZodOptional<zod.ZodString>;
111
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
112
+ }, zod_v4_core.$strip>;
113
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
114
+ list: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
115
+ page: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
116
+ pageSize: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
117
+ sortDirection: zod.ZodOptional<zod.ZodEnum<{
118
+ asc: "asc";
119
+ desc: "desc";
120
+ }>>;
121
+ status: zod.ZodOptional<zod.ZodEnum<{
122
+ pending: "pending";
123
+ handled: "handled";
124
+ }>>;
125
+ collectionStatus: zod.ZodOptional<zod.ZodEnum<{
126
+ collecting: "collecting";
127
+ complete: "complete";
128
+ partial: "partial";
129
+ failed: "failed";
130
+ }>>;
131
+ notificationStatus: zod.ZodOptional<zod.ZodEnum<{
132
+ pending: "pending";
133
+ failed: "failed";
134
+ sending: "sending";
135
+ sent: "sent";
136
+ deferred: "deferred";
137
+ }>>;
138
+ appId: zod.ZodOptional<zod.ZodString>;
139
+ appVersion: zod.ZodOptional<zod.ZodString>;
140
+ search: zod.ZodOptional<zod.ZodString>;
141
+ from: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
142
+ to: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
143
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
144
+ success: zod.ZodLiteral<true>;
145
+ data: zod.ZodObject<{
146
+ items: zod.ZodArray<zod.ZodObject<{
147
+ id: zod.ZodString;
148
+ number: zod.ZodString;
149
+ appId: zod.ZodString;
150
+ scopeId: zod.ZodString;
151
+ userId: zod.ZodString;
152
+ status: zod.ZodEnum<{
153
+ pending: "pending";
154
+ handled: "handled";
155
+ }>;
156
+ collectionStatus: zod.ZodEnum<{
157
+ collecting: "collecting";
158
+ complete: "complete";
159
+ partial: "partial";
160
+ failed: "failed";
161
+ }>;
162
+ notificationStatus: zod.ZodEnum<{
163
+ pending: "pending";
164
+ failed: "failed";
165
+ sending: "sending";
166
+ sent: "sent";
167
+ deferred: "deferred";
168
+ }>;
169
+ description: zod.ZodOptional<zod.ZodString>;
170
+ summary: zod.ZodOptional<zod.ZodString>;
171
+ category: zod.ZodOptional<zod.ZodString>;
172
+ contact: zod.ZodOptional<zod.ZodString>;
173
+ url: zod.ZodOptional<zod.ZodString>;
174
+ appVersion: zod.ZodOptional<zod.ZodString>;
175
+ buildId: zod.ZodOptional<zod.ZodString>;
176
+ commit: zod.ZodOptional<zod.ZodString>;
177
+ createdAt: zod.ZodNumber;
178
+ updatedAt: zod.ZodNumber;
179
+ version: zod.ZodNumber;
180
+ evidenceRevision: zod.ZodNumber;
181
+ }, zod_v4_core.$strip>>;
182
+ total: zod.ZodNumber;
183
+ page: zod.ZodNumber;
184
+ pageSize: zod.ZodNumber;
185
+ }, zod_v4_core.$strip>;
186
+ }, zod_v4_core.$strip>, zod.ZodObject<{
187
+ success: zod.ZodLiteral<false>;
188
+ error: zod.ZodObject<{
189
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
190
+ message: zod.ZodString;
191
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
192
+ system: zod.ZodOptional<zod.ZodString>;
193
+ module: zod.ZodOptional<zod.ZodString>;
194
+ cause: zod.ZodOptional<zod.ZodUnknown>;
195
+ suggestion: zod.ZodOptional<zod.ZodString>;
196
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
197
+ }, zod_v4_core.$strip>;
198
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
199
+ get: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
200
+ id: zod.ZodString;
201
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
202
+ success: zod.ZodLiteral<true>;
203
+ data: zod.ZodObject<{
204
+ report: zod.ZodObject<{
205
+ id: zod.ZodString;
206
+ number: zod.ZodString;
207
+ appId: zod.ZodString;
208
+ scopeId: zod.ZodString;
209
+ userId: zod.ZodString;
210
+ status: zod.ZodEnum<{
211
+ pending: "pending";
212
+ handled: "handled";
213
+ }>;
214
+ collectionStatus: zod.ZodEnum<{
215
+ collecting: "collecting";
216
+ complete: "complete";
217
+ partial: "partial";
218
+ failed: "failed";
219
+ }>;
220
+ notificationStatus: zod.ZodEnum<{
221
+ pending: "pending";
222
+ failed: "failed";
223
+ sending: "sending";
224
+ sent: "sent";
225
+ deferred: "deferred";
226
+ }>;
227
+ description: zod.ZodOptional<zod.ZodString>;
228
+ summary: zod.ZodOptional<zod.ZodString>;
229
+ category: zod.ZodOptional<zod.ZodString>;
230
+ contact: zod.ZodOptional<zod.ZodString>;
231
+ url: zod.ZodOptional<zod.ZodString>;
232
+ appVersion: zod.ZodOptional<zod.ZodString>;
233
+ buildId: zod.ZodOptional<zod.ZodString>;
234
+ commit: zod.ZodOptional<zod.ZodString>;
235
+ createdAt: zod.ZodNumber;
236
+ updatedAt: zod.ZodNumber;
237
+ version: zod.ZodNumber;
238
+ evidenceRevision: zod.ZodNumber;
239
+ }, zod_v4_core.$strip>;
240
+ attachments: zod.ZodArray<zod.ZodObject<{
241
+ id: zod.ZodString;
242
+ name: zod.ZodString;
243
+ contentType: zod.ZodString;
244
+ size: zod.ZodNumber;
245
+ checksum: zod.ZodString;
246
+ feedbackId: zod.ZodString;
247
+ status: zod.ZodEnum<{
248
+ pending: "pending";
249
+ failed: "failed";
250
+ available: "available";
251
+ }>;
252
+ missingReason: zod.ZodOptional<zod.ZodString>;
253
+ }, zod_v4_core.$strict>>;
254
+ history: zod.ZodArray<zod.ZodObject<{
255
+ id: zod.ZodString;
256
+ feedbackId: zod.ZodString;
257
+ userId: zod.ZodString;
258
+ from: zod.ZodEnum<{
259
+ pending: "pending";
260
+ handled: "handled";
261
+ }>;
262
+ to: zod.ZodEnum<{
263
+ pending: "pending";
264
+ handled: "handled";
265
+ }>;
266
+ timestamp: zod.ZodNumber;
267
+ note: zod.ZodOptional<zod.ZodString>;
268
+ }, zod_v4_core.$strip>>;
269
+ jobs: zod.ZodArray<zod.ZodObject<{
270
+ id: zod.ZodString;
271
+ feedbackId: zod.ZodString;
272
+ type: zod.ZodEnum<{
273
+ collect: "collect";
274
+ notify: "notify";
275
+ export: "export";
276
+ cleanup: "cleanup";
277
+ }>;
278
+ status: zod.ZodEnum<{
279
+ pending: "pending";
280
+ failed: "failed";
281
+ running: "running";
282
+ succeeded: "succeeded";
283
+ }>;
284
+ attempts: zod.ZodNumber;
285
+ createdAt: zod.ZodNumber;
286
+ updatedAt: zod.ZodNumber;
287
+ nextRunAt: zod.ZodOptional<zod.ZodNumber>;
288
+ lastError: zod.ZodOptional<zod.ZodString>;
289
+ result: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodJSONSchema>>;
290
+ }, zod_v4_core.$strip>>;
291
+ }, zod_v4_core.$strip>;
292
+ }, zod_v4_core.$strip>, zod.ZodObject<{
293
+ success: zod.ZodLiteral<false>;
294
+ error: zod.ZodObject<{
295
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
296
+ message: zod.ZodString;
297
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
298
+ system: zod.ZodOptional<zod.ZodString>;
299
+ module: zod.ZodOptional<zod.ZodString>;
300
+ cause: zod.ZodOptional<zod.ZodUnknown>;
301
+ suggestion: zod.ZodOptional<zod.ZodString>;
302
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
303
+ }, zod_v4_core.$strip>;
304
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
305
+ getEvidence: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
306
+ page: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
307
+ pageSize: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
308
+ id: zod.ZodString;
309
+ source: zod.ZodOptional<zod.ZodString>;
310
+ kind: zod.ZodOptional<zod.ZodEnum<{
311
+ error: "error";
312
+ request: "request";
313
+ log: "log";
314
+ interaction: "interaction";
315
+ environment: "environment";
316
+ snapshot: "snapshot";
317
+ replay: "replay";
318
+ business: "business";
319
+ missing: "missing";
320
+ }>>;
321
+ requestId: zod.ZodOptional<zod.ZodString>;
322
+ errorId: zod.ZodOptional<zod.ZodString>;
323
+ from: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
324
+ to: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
325
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
326
+ success: zod.ZodLiteral<true>;
327
+ data: zod.ZodObject<{
328
+ items: zod.ZodArray<zod.ZodObject<{
329
+ id: zod.ZodString;
330
+ source: zod.ZodString;
331
+ sequence: zod.ZodNumber;
332
+ kind: zod.ZodEnum<{
333
+ error: "error";
334
+ request: "request";
335
+ log: "log";
336
+ interaction: "interaction";
337
+ environment: "environment";
338
+ snapshot: "snapshot";
339
+ replay: "replay";
340
+ business: "business";
341
+ missing: "missing";
342
+ }>;
343
+ timestamp: zod.ZodNumber;
344
+ requestId: zod.ZodOptional<zod.ZodString>;
345
+ errorId: zod.ZodOptional<zod.ZodString>;
346
+ data: zod.ZodRecord<zod.ZodString, zod.ZodJSONSchema>;
347
+ missingReason: zod.ZodOptional<zod.ZodString>;
348
+ feedbackId: zod.ZodString;
349
+ revision: zod.ZodNumber;
350
+ }, zod_v4_core.$strict>>;
351
+ total: zod.ZodNumber;
352
+ page: zod.ZodNumber;
353
+ pageSize: zod.ZodNumber;
354
+ }, zod_v4_core.$strip>;
355
+ }, zod_v4_core.$strip>, zod.ZodObject<{
356
+ success: zod.ZodLiteral<false>;
357
+ error: zod.ZodObject<{
358
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
359
+ message: zod.ZodString;
360
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
361
+ system: zod.ZodOptional<zod.ZodString>;
362
+ module: zod.ZodOptional<zod.ZodString>;
363
+ cause: zod.ZodOptional<zod.ZodUnknown>;
364
+ suggestion: zod.ZodOptional<zod.ZodString>;
365
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
366
+ }, zod_v4_core.$strip>;
367
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
368
+ setStatus: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
369
+ id: zod.ZodString;
370
+ status: zod.ZodEnum<{
371
+ pending: "pending";
372
+ handled: "handled";
373
+ }>;
374
+ expectedVersion: zod.ZodNumber;
375
+ note: zod.ZodOptional<zod.ZodString>;
376
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
377
+ success: zod.ZodLiteral<true>;
378
+ data: zod.ZodObject<{
379
+ id: zod.ZodString;
380
+ number: zod.ZodString;
381
+ appId: zod.ZodString;
382
+ scopeId: zod.ZodString;
383
+ userId: zod.ZodString;
384
+ status: zod.ZodEnum<{
385
+ pending: "pending";
386
+ handled: "handled";
387
+ }>;
388
+ collectionStatus: zod.ZodEnum<{
389
+ collecting: "collecting";
390
+ complete: "complete";
391
+ partial: "partial";
392
+ failed: "failed";
393
+ }>;
394
+ notificationStatus: zod.ZodEnum<{
395
+ pending: "pending";
396
+ failed: "failed";
397
+ sending: "sending";
398
+ sent: "sent";
399
+ deferred: "deferred";
400
+ }>;
401
+ description: zod.ZodOptional<zod.ZodString>;
402
+ summary: zod.ZodOptional<zod.ZodString>;
403
+ category: zod.ZodOptional<zod.ZodString>;
404
+ contact: zod.ZodOptional<zod.ZodString>;
405
+ url: zod.ZodOptional<zod.ZodString>;
406
+ appVersion: zod.ZodOptional<zod.ZodString>;
407
+ buildId: zod.ZodOptional<zod.ZodString>;
408
+ commit: zod.ZodOptional<zod.ZodString>;
409
+ createdAt: zod.ZodNumber;
410
+ updatedAt: zod.ZodNumber;
411
+ version: zod.ZodNumber;
412
+ evidenceRevision: zod.ZodNumber;
413
+ }, zod_v4_core.$strip>;
414
+ }, zod_v4_core.$strip>, zod.ZodObject<{
415
+ success: zod.ZodLiteral<false>;
416
+ error: zod.ZodObject<{
417
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
418
+ message: zod.ZodString;
419
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
420
+ system: zod.ZodOptional<zod.ZodString>;
421
+ module: zod.ZodOptional<zod.ZodString>;
422
+ cause: zod.ZodOptional<zod.ZodUnknown>;
423
+ suggestion: zod.ZodOptional<zod.ZodString>;
424
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
425
+ }, zod_v4_core.$strip>;
426
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
427
+ retry: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
428
+ id: zod.ZodString;
429
+ target: zod.ZodEnum<{
430
+ collect: "collect";
431
+ notify: "notify";
432
+ export: "export";
433
+ attachment: "attachment";
434
+ }>;
435
+ targetId: zod.ZodOptional<zod.ZodString>;
436
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
437
+ success: zod.ZodLiteral<true>;
438
+ data: zod.ZodVoid;
439
+ }, zod_v4_core.$strip>, zod.ZodObject<{
440
+ success: zod.ZodLiteral<false>;
441
+ error: zod.ZodObject<{
442
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
443
+ message: zod.ZodString;
444
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
445
+ system: zod.ZodOptional<zod.ZodString>;
446
+ module: zod.ZodOptional<zod.ZodString>;
447
+ cause: zod.ZodOptional<zod.ZodUnknown>;
448
+ suggestion: zod.ZodOptional<zod.ZodString>;
449
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
450
+ }, zod_v4_core.$strip>;
451
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
452
+ export: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
453
+ id: zod.ZodString;
454
+ evidenceRevision: zod.ZodOptional<zod.ZodNumber>;
455
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
456
+ success: zod.ZodLiteral<true>;
457
+ data: zod.ZodObject<{
458
+ id: zod.ZodString;
459
+ feedbackId: zod.ZodString;
460
+ type: zod.ZodEnum<{
461
+ collect: "collect";
462
+ notify: "notify";
463
+ export: "export";
464
+ cleanup: "cleanup";
465
+ }>;
466
+ status: zod.ZodEnum<{
467
+ pending: "pending";
468
+ failed: "failed";
469
+ running: "running";
470
+ succeeded: "succeeded";
471
+ }>;
472
+ attempts: zod.ZodNumber;
473
+ createdAt: zod.ZodNumber;
474
+ updatedAt: zod.ZodNumber;
475
+ nextRunAt: zod.ZodOptional<zod.ZodNumber>;
476
+ lastError: zod.ZodOptional<zod.ZodString>;
477
+ result: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodJSONSchema>>;
478
+ }, zod_v4_core.$strip>;
479
+ }, zod_v4_core.$strip>, zod.ZodObject<{
480
+ success: zod.ZodLiteral<false>;
481
+ error: zod.ZodObject<{
482
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
483
+ message: zod.ZodString;
484
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
485
+ system: zod.ZodOptional<zod.ZodString>;
486
+ module: zod.ZodOptional<zod.ZodString>;
487
+ cause: zod.ZodOptional<zod.ZodUnknown>;
488
+ suggestion: zod.ZodOptional<zod.ZodString>;
489
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
490
+ }, zod_v4_core.$strip>;
491
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
492
+ appendEvidence: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
493
+ id: zod.ZodString;
494
+ evidence: zod.ZodArray<zod.ZodObject<{
495
+ id: zod.ZodString;
496
+ source: zod.ZodString;
497
+ sequence: zod.ZodNumber;
498
+ kind: zod.ZodEnum<{
499
+ error: "error";
500
+ request: "request";
501
+ log: "log";
502
+ interaction: "interaction";
503
+ environment: "environment";
504
+ snapshot: "snapshot";
505
+ replay: "replay";
506
+ business: "business";
507
+ missing: "missing";
508
+ }>;
509
+ timestamp: zod.ZodNumber;
510
+ requestId: zod.ZodOptional<zod.ZodString>;
511
+ errorId: zod.ZodOptional<zod.ZodString>;
512
+ data: zod.ZodRecord<zod.ZodString, zod.ZodJSONSchema>;
513
+ missingReason: zod.ZodOptional<zod.ZodString>;
514
+ }, zod_v4_core.$strict>>;
515
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
516
+ success: zod.ZodLiteral<true>;
517
+ data: zod.ZodObject<{
518
+ acknowledged: zod.ZodArray<zod.ZodString>;
519
+ evidenceRevision: zod.ZodNumber;
520
+ }, zod_v4_core.$strip>;
521
+ }, zod_v4_core.$strip>, zod.ZodObject<{
522
+ success: zod.ZodLiteral<false>;
523
+ error: zod.ZodObject<{
524
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
525
+ message: zod.ZodString;
526
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
527
+ system: zod.ZodOptional<zod.ZodString>;
528
+ module: zod.ZodOptional<zod.ZodString>;
529
+ cause: zod.ZodOptional<zod.ZodUnknown>;
530
+ suggestion: zod.ZodOptional<zod.ZodString>;
531
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
532
+ }, zod_v4_core.$strip>;
533
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
534
+ getExport: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
535
+ id: zod.ZodString;
536
+ jobId: zod.ZodString;
537
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
538
+ success: zod.ZodLiteral<true>;
539
+ data: zod.ZodObject<{
540
+ name: zod.ZodString;
541
+ contentType: zod.ZodString;
542
+ dataBase64: zod.ZodString;
543
+ }, zod_v4_core.$strip>;
544
+ }, zod_v4_core.$strip>, zod.ZodObject<{
545
+ success: zod.ZodLiteral<false>;
546
+ error: zod.ZodObject<{
547
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
548
+ message: zod.ZodString;
549
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
550
+ system: zod.ZodOptional<zod.ZodString>;
551
+ module: zod.ZodOptional<zod.ZodString>;
552
+ cause: zod.ZodOptional<zod.ZodUnknown>;
553
+ suggestion: zod.ZodOptional<zod.ZodString>;
554
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
555
+ }, zod_v4_core.$strip>;
556
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
557
+ completeCollection: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
558
+ id: zod.ZodString;
559
+ missing: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
560
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
561
+ success: zod.ZodLiteral<true>;
562
+ data: zod.ZodObject<{
563
+ id: zod.ZodString;
564
+ number: zod.ZodString;
565
+ appId: zod.ZodString;
566
+ scopeId: zod.ZodString;
567
+ userId: zod.ZodString;
568
+ status: zod.ZodEnum<{
569
+ pending: "pending";
570
+ handled: "handled";
571
+ }>;
572
+ collectionStatus: zod.ZodEnum<{
573
+ collecting: "collecting";
574
+ complete: "complete";
575
+ partial: "partial";
576
+ failed: "failed";
577
+ }>;
578
+ notificationStatus: zod.ZodEnum<{
579
+ pending: "pending";
580
+ failed: "failed";
581
+ sending: "sending";
582
+ sent: "sent";
583
+ deferred: "deferred";
584
+ }>;
585
+ description: zod.ZodOptional<zod.ZodString>;
586
+ summary: zod.ZodOptional<zod.ZodString>;
587
+ category: zod.ZodOptional<zod.ZodString>;
588
+ contact: zod.ZodOptional<zod.ZodString>;
589
+ url: zod.ZodOptional<zod.ZodString>;
590
+ appVersion: zod.ZodOptional<zod.ZodString>;
591
+ buildId: zod.ZodOptional<zod.ZodString>;
592
+ commit: zod.ZodOptional<zod.ZodString>;
593
+ createdAt: zod.ZodNumber;
594
+ updatedAt: zod.ZodNumber;
595
+ version: zod.ZodNumber;
596
+ evidenceRevision: zod.ZodNumber;
597
+ }, zod_v4_core.$strip>;
598
+ }, zod_v4_core.$strip>, zod.ZodObject<{
599
+ success: zod.ZodLiteral<false>;
600
+ error: zod.ZodObject<{
601
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
602
+ message: zod.ZodString;
603
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
604
+ system: zod.ZodOptional<zod.ZodString>;
605
+ module: zod.ZodOptional<zod.ZodString>;
606
+ cause: zod.ZodOptional<zod.ZodUnknown>;
607
+ suggestion: zod.ZodOptional<zod.ZodString>;
608
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
609
+ }, zod_v4_core.$strip>;
610
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
611
+ };
612
+ attachments: {
613
+ upload: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
614
+ id: zod.ZodString;
615
+ attachmentId: zod.ZodString;
616
+ dataBase64: zod.ZodString;
617
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
618
+ success: zod.ZodLiteral<true>;
619
+ data: zod.ZodObject<{
620
+ id: zod.ZodString;
621
+ name: zod.ZodString;
622
+ contentType: zod.ZodString;
623
+ size: zod.ZodNumber;
624
+ checksum: zod.ZodString;
625
+ feedbackId: zod.ZodString;
626
+ status: zod.ZodEnum<{
627
+ pending: "pending";
628
+ failed: "failed";
629
+ available: "available";
630
+ }>;
631
+ missingReason: zod.ZodOptional<zod.ZodString>;
632
+ }, zod_v4_core.$strict>;
633
+ }, zod_v4_core.$strip>, zod.ZodObject<{
634
+ success: zod.ZodLiteral<false>;
635
+ error: zod.ZodObject<{
636
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
637
+ message: zod.ZodString;
638
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
639
+ system: zod.ZodOptional<zod.ZodString>;
640
+ module: zod.ZodOptional<zod.ZodString>;
641
+ cause: zod.ZodOptional<zod.ZodUnknown>;
642
+ suggestion: zod.ZodOptional<zod.ZodString>;
643
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
644
+ }, zod_v4_core.$strip>;
645
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
646
+ get: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
647
+ id: zod.ZodString;
648
+ attachmentId: zod.ZodString;
649
+ }, zod_v4_core.$strict>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
650
+ success: zod.ZodLiteral<true>;
651
+ data: zod.ZodObject<{
652
+ name: zod.ZodString;
653
+ contentType: zod.ZodString;
654
+ dataBase64: zod.ZodString;
655
+ }, zod_v4_core.$strip>;
656
+ }, zod_v4_core.$strip>, zod.ZodObject<{
657
+ success: zod.ZodLiteral<false>;
658
+ error: zod.ZodObject<{
659
+ code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
660
+ message: zod.ZodString;
661
+ httpStatus: zod.ZodOptional<zod.ZodNumber>;
662
+ system: zod.ZodOptional<zod.ZodString>;
663
+ module: zod.ZodOptional<zod.ZodString>;
664
+ cause: zod.ZodOptional<zod.ZodUnknown>;
665
+ suggestion: zod.ZodOptional<zod.ZodString>;
666
+ ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
667
+ }, zod_v4_core.$strip>;
668
+ }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
669
+ };
670
+ };
671
+ /**
672
+ * 反馈 typed client 的契约类型。
673
+ * @example
674
+ * ```ts
675
+ * import type { FeedbackContract } from '@h-ai/api-contract'
676
+ * import { apiContract } from '@h-ai/api-contract'
677
+ * const contract: FeedbackContract = apiContract.feedback
678
+ * ```
679
+ */
680
+ type FeedbackContract = typeof feedbackContract;
681
+
682
+ /**
683
+ * @h-ai/api-contract — 反馈的跨端数据契约。
684
+ * 身份、租户、存储 key 和通知收件人只由可信服务端确定,不接受客户端覆盖。
685
+ */
686
+
687
+ /**
688
+ * 反馈处理状态。
689
+ * @example
690
+ * ```ts
691
+ * import { FeedbackStatusSchema } from '@h-ai/api-contract'
692
+ * FeedbackStatusSchema.parse('pending')
693
+ * ```
694
+ */
695
+ declare const FeedbackStatusSchema: z.ZodEnum<{
696
+ pending: "pending";
697
+ handled: "handled";
698
+ }>;
699
+ /**
700
+ * 材料状态。
701
+ * @example
702
+ * ```ts
703
+ * import { FeedbackCollectionStatusSchema } from '@h-ai/api-contract'
704
+ * FeedbackCollectionStatusSchema.parse('collecting')
705
+ * ```
706
+ */
707
+ declare const FeedbackCollectionStatusSchema: z.ZodEnum<{
708
+ collecting: "collecting";
709
+ complete: "complete";
710
+ partial: "partial";
711
+ failed: "failed";
712
+ }>;
713
+ /**
714
+ * 通知状态,sent 仅表示邮件服务受理。
715
+ * @example
716
+ * ```ts
717
+ * import { FeedbackNotificationStatusSchema } from '@h-ai/api-contract'
718
+ * FeedbackNotificationStatusSchema.parse('pending')
719
+ * ```
720
+ */
721
+ declare const FeedbackNotificationStatusSchema: z.ZodEnum<{
722
+ pending: "pending";
723
+ failed: "failed";
724
+ sending: "sending";
725
+ sent: "sent";
726
+ deferred: "deferred";
727
+ }>;
728
+ /**
729
+ * 单条有界、JSON 可序列化的诊断证据。
730
+ * @example
731
+ * ```ts
732
+ * import { FeedbackEvidenceInputSchema } from '@h-ai/api-contract'
733
+ * FeedbackEvidenceInputSchema.parse({ id: 'event-1', source: 'browser', sequence: 1, kind: 'log', timestamp: 1, data: { message: 'Failed' } })
734
+ * ```
735
+ */
736
+ declare const FeedbackEvidenceInputSchema: z.ZodObject<{
737
+ id: z.ZodString;
738
+ source: z.ZodString;
739
+ sequence: z.ZodNumber;
740
+ kind: z.ZodEnum<{
741
+ error: "error";
742
+ request: "request";
743
+ log: "log";
744
+ interaction: "interaction";
745
+ environment: "environment";
746
+ snapshot: "snapshot";
747
+ replay: "replay";
748
+ business: "business";
749
+ missing: "missing";
750
+ }>;
751
+ timestamp: z.ZodNumber;
752
+ requestId: z.ZodOptional<z.ZodString>;
753
+ errorId: z.ZodOptional<z.ZodString>;
754
+ data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
755
+ missingReason: z.ZodOptional<z.ZodString>;
756
+ }, z.core.$strict>;
757
+ /**
758
+ * 已保存证据及所属修订。
759
+ * @example
760
+ * ```ts
761
+ * import { FeedbackEvidenceSchema } from '@h-ai/api-contract'
762
+ * FeedbackEvidenceSchema.parse({ id: 'event-1', feedbackId: 'report-1', revision: 1, source: 'browser', sequence: 1, kind: 'log', timestamp: 1, data: {} })
763
+ * ```
764
+ */
765
+ declare const FeedbackEvidenceSchema: z.ZodObject<{
766
+ id: z.ZodString;
767
+ source: z.ZodString;
768
+ sequence: z.ZodNumber;
769
+ kind: z.ZodEnum<{
770
+ error: "error";
771
+ request: "request";
772
+ log: "log";
773
+ interaction: "interaction";
774
+ environment: "environment";
775
+ snapshot: "snapshot";
776
+ replay: "replay";
777
+ business: "business";
778
+ missing: "missing";
779
+ }>;
780
+ timestamp: z.ZodNumber;
781
+ requestId: z.ZodOptional<z.ZodString>;
782
+ errorId: z.ZodOptional<z.ZodString>;
783
+ data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
784
+ missingReason: z.ZodOptional<z.ZodString>;
785
+ feedbackId: z.ZodString;
786
+ revision: z.ZodNumber;
787
+ }, z.core.$strict>;
788
+ /**
789
+ * 附件声明,不含可指定的 S3 key。
790
+ * @example
791
+ * ```ts
792
+ * import { FeedbackAttachmentInputSchema } from '@h-ai/api-contract'
793
+ * FeedbackAttachmentInputSchema.parse({ id: 'image-1', name: 'screen.png', contentType: 'image/png', size: 4, checksum: '0'.repeat(64) })
794
+ * ```
795
+ */
796
+ declare const FeedbackAttachmentInputSchema: z.ZodObject<{
797
+ id: z.ZodString;
798
+ name: z.ZodString;
799
+ contentType: z.ZodString;
800
+ size: z.ZodNumber;
801
+ checksum: z.ZodString;
802
+ }, z.core.$strict>;
803
+ /**
804
+ * 附件的受权元数据。
805
+ * @example
806
+ * ```ts
807
+ * import { FeedbackAttachmentSchema } from '@h-ai/api-contract'
808
+ * FeedbackAttachmentSchema.parse({ id: 'image-1', feedbackId: 'report-1', name: 'screen.png', contentType: 'image/png', size: 4, checksum: '0'.repeat(64), status: 'pending' })
809
+ * ```
810
+ */
811
+ declare const FeedbackAttachmentSchema: z.ZodObject<{
812
+ id: z.ZodString;
813
+ name: z.ZodString;
814
+ contentType: z.ZodString;
815
+ size: z.ZodNumber;
816
+ checksum: z.ZodString;
817
+ feedbackId: z.ZodString;
818
+ status: z.ZodEnum<{
819
+ pending: "pending";
820
+ failed: "failed";
821
+ available: "available";
822
+ }>;
823
+ missingReason: z.ZodOptional<z.ZodString>;
824
+ }, z.core.$strict>;
825
+ /**
826
+ * 幂等反馈提交;所有补充输入均可选。
827
+ * @example
828
+ * ```ts
829
+ * import { FeedbackSubmitInputSchema } from '@h-ai/api-contract'
830
+ * FeedbackSubmitInputSchema.parse({ submissionId: 'submit-1', appId: 'orders' })
831
+ * ```
832
+ */
833
+ declare const FeedbackSubmitInputSchema: z.ZodObject<{
834
+ submissionId: z.ZodString;
835
+ appId: z.ZodString;
836
+ description: z.ZodOptional<z.ZodString>;
837
+ category: z.ZodOptional<z.ZodString>;
838
+ contact: z.ZodOptional<z.ZodString>;
839
+ url: z.ZodOptional<z.ZodString>;
840
+ appVersion: z.ZodOptional<z.ZodString>;
841
+ buildId: z.ZodOptional<z.ZodString>;
842
+ commit: z.ZodOptional<z.ZodString>;
843
+ anchor: z.ZodOptional<z.ZodObject<{
844
+ kind: z.ZodEnum<{
845
+ error: "error";
846
+ feedback: "feedback";
847
+ }>;
848
+ timestamp: z.ZodNumber;
849
+ errorId: z.ZodOptional<z.ZodString>;
850
+ }, z.core.$strict>>;
851
+ evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
852
+ id: z.ZodString;
853
+ source: z.ZodString;
854
+ sequence: z.ZodNumber;
855
+ kind: z.ZodEnum<{
856
+ error: "error";
857
+ request: "request";
858
+ log: "log";
859
+ interaction: "interaction";
860
+ environment: "environment";
861
+ snapshot: "snapshot";
862
+ replay: "replay";
863
+ business: "business";
864
+ missing: "missing";
865
+ }>;
866
+ timestamp: z.ZodNumber;
867
+ requestId: z.ZodOptional<z.ZodString>;
868
+ errorId: z.ZodOptional<z.ZodString>;
869
+ data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
870
+ missingReason: z.ZodOptional<z.ZodString>;
871
+ }, z.core.$strict>>>;
872
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
873
+ id: z.ZodString;
874
+ name: z.ZodString;
875
+ contentType: z.ZodString;
876
+ size: z.ZodNumber;
877
+ checksum: z.ZodString;
878
+ }, z.core.$strict>>>;
879
+ }, z.core.$strict>;
880
+ /**
881
+ * 反馈摘要,应用版本与乐观锁 version 分开。
882
+ * @example
883
+ * ```ts
884
+ * import { FeedbackReportSchema } from '@h-ai/api-contract'
885
+ * FeedbackReportSchema.parse({ id: 'report-1', number: 'FB-1', appId: 'orders', scopeId: 'tenant-1', userId: 'user-1', status: 'pending', collectionStatus: 'collecting', notificationStatus: 'pending', createdAt: 1, updatedAt: 1, version: 1, evidenceRevision: 1 })
886
+ * ```
887
+ */
888
+ declare const FeedbackReportSchema: z.ZodObject<{
889
+ id: z.ZodString;
890
+ number: z.ZodString;
891
+ appId: z.ZodString;
892
+ scopeId: z.ZodString;
893
+ userId: z.ZodString;
894
+ status: z.ZodEnum<{
895
+ pending: "pending";
896
+ handled: "handled";
897
+ }>;
898
+ collectionStatus: z.ZodEnum<{
899
+ collecting: "collecting";
900
+ complete: "complete";
901
+ partial: "partial";
902
+ failed: "failed";
903
+ }>;
904
+ notificationStatus: z.ZodEnum<{
905
+ pending: "pending";
906
+ failed: "failed";
907
+ sending: "sending";
908
+ sent: "sent";
909
+ deferred: "deferred";
910
+ }>;
911
+ description: z.ZodOptional<z.ZodString>;
912
+ summary: z.ZodOptional<z.ZodString>;
913
+ category: z.ZodOptional<z.ZodString>;
914
+ contact: z.ZodOptional<z.ZodString>;
915
+ url: z.ZodOptional<z.ZodString>;
916
+ appVersion: z.ZodOptional<z.ZodString>;
917
+ buildId: z.ZodOptional<z.ZodString>;
918
+ commit: z.ZodOptional<z.ZodString>;
919
+ createdAt: z.ZodNumber;
920
+ updatedAt: z.ZodNumber;
921
+ version: z.ZodNumber;
922
+ evidenceRevision: z.ZodNumber;
923
+ }, z.core.$strip>;
924
+ /**
925
+ * 列表筛选和受限分页。
926
+ * @example
927
+ * ```ts
928
+ * import { FeedbackListInputSchema } from '@h-ai/api-contract'
929
+ * FeedbackListInputSchema.parse({ page: 1, pageSize: 20 })
930
+ * ```
931
+ */
932
+ declare const FeedbackListInputSchema: z.ZodObject<{
933
+ page: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
934
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
935
+ sortDirection: z.ZodOptional<z.ZodEnum<{
936
+ asc: "asc";
937
+ desc: "desc";
938
+ }>>;
939
+ status: z.ZodOptional<z.ZodEnum<{
940
+ pending: "pending";
941
+ handled: "handled";
942
+ }>>;
943
+ collectionStatus: z.ZodOptional<z.ZodEnum<{
944
+ collecting: "collecting";
945
+ complete: "complete";
946
+ partial: "partial";
947
+ failed: "failed";
948
+ }>>;
949
+ notificationStatus: z.ZodOptional<z.ZodEnum<{
950
+ pending: "pending";
951
+ failed: "failed";
952
+ sending: "sending";
953
+ sent: "sent";
954
+ deferred: "deferred";
955
+ }>>;
956
+ appId: z.ZodOptional<z.ZodString>;
957
+ appVersion: z.ZodOptional<z.ZodString>;
958
+ search: z.ZodOptional<z.ZodString>;
959
+ from: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
960
+ to: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
961
+ }, z.core.$strict>;
962
+ /**
963
+ * 受权记录定位。
964
+ * @example
965
+ * ```ts
966
+ * import { FeedbackIdInputSchema } from '@h-ai/api-contract'
967
+ * FeedbackIdInputSchema.parse({ id: 'report-1' })
968
+ * ```
969
+ */
970
+ declare const FeedbackIdInputSchema: z.ZodObject<{
971
+ id: z.ZodString;
972
+ }, z.core.$strict>;
973
+ /**
974
+ * 证据索引查询。
975
+ * @example
976
+ * ```ts
977
+ * import { FeedbackEvidenceQuerySchema } from '@h-ai/api-contract'
978
+ * FeedbackEvidenceQuerySchema.parse({ id: 'report-1', pageSize: 20 })
979
+ * ```
980
+ */
981
+ declare const FeedbackEvidenceQuerySchema: z.ZodObject<{
982
+ page: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
983
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
984
+ id: z.ZodString;
985
+ source: z.ZodOptional<z.ZodString>;
986
+ kind: z.ZodOptional<z.ZodEnum<{
987
+ error: "error";
988
+ request: "request";
989
+ log: "log";
990
+ interaction: "interaction";
991
+ environment: "environment";
992
+ snapshot: "snapshot";
993
+ replay: "replay";
994
+ business: "business";
995
+ missing: "missing";
996
+ }>>;
997
+ requestId: z.ZodOptional<z.ZodString>;
998
+ errorId: z.ZodOptional<z.ZodString>;
999
+ from: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1000
+ to: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1001
+ }, z.core.$strict>;
1002
+ /**
1003
+ * 状态更新必须携带已读版本。
1004
+ * @example
1005
+ * ```ts
1006
+ * import { FeedbackSetStatusInputSchema } from '@h-ai/api-contract'
1007
+ * FeedbackSetStatusInputSchema.parse({ id: 'report-1', status: 'handled', expectedVersion: 1 })
1008
+ * ```
1009
+ */
1010
+ declare const FeedbackSetStatusInputSchema: z.ZodObject<{
1011
+ id: z.ZodString;
1012
+ status: z.ZodEnum<{
1013
+ pending: "pending";
1014
+ handled: "handled";
1015
+ }>;
1016
+ expectedVersion: z.ZodNumber;
1017
+ note: z.ZodOptional<z.ZodString>;
1018
+ }, z.core.$strict>;
1019
+ /**
1020
+ * 提交后补采分块,服务端按来源序号幂等确认。
1021
+ * @example
1022
+ * ```ts
1023
+ * import { FeedbackAppendEvidenceInputSchema } from '@h-ai/api-contract'
1024
+ * FeedbackAppendEvidenceInputSchema.parse({ id: 'report-1', evidence: [] })
1025
+ * ```
1026
+ */
1027
+ declare const FeedbackAppendEvidenceInputSchema: z.ZodObject<{
1028
+ id: z.ZodString;
1029
+ evidence: z.ZodArray<z.ZodObject<{
1030
+ id: z.ZodString;
1031
+ source: z.ZodString;
1032
+ sequence: z.ZodNumber;
1033
+ kind: z.ZodEnum<{
1034
+ error: "error";
1035
+ request: "request";
1036
+ log: "log";
1037
+ interaction: "interaction";
1038
+ environment: "environment";
1039
+ snapshot: "snapshot";
1040
+ replay: "replay";
1041
+ business: "business";
1042
+ missing: "missing";
1043
+ }>;
1044
+ timestamp: z.ZodNumber;
1045
+ requestId: z.ZodOptional<z.ZodString>;
1046
+ errorId: z.ZodOptional<z.ZodString>;
1047
+ data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
1048
+ missingReason: z.ZodOptional<z.ZodString>;
1049
+ }, z.core.$strict>>;
1050
+ }, z.core.$strict>;
1051
+ /**
1052
+ * 已可靠入库的证据确认。
1053
+ * @example
1054
+ * ```ts
1055
+ * import { FeedbackEvidenceAckSchema } from '@h-ai/api-contract'
1056
+ * FeedbackEvidenceAckSchema.parse({ acknowledged: ['event-1'], evidenceRevision: 1 })
1057
+ * ```
1058
+ */
1059
+ declare const FeedbackEvidenceAckSchema: z.ZodObject<{
1060
+ acknowledged: z.ZodArray<z.ZodString>;
1061
+ evidenceRevision: z.ZodNumber;
1062
+ }, z.core.$strip>;
1063
+ /**
1064
+ * 采集结束或部分缺失。
1065
+ * @example
1066
+ * ```ts
1067
+ * import { FeedbackCompleteInputSchema } from '@h-ai/api-contract'
1068
+ * FeedbackCompleteInputSchema.parse({ id: 'report-1', missing: [] })
1069
+ * ```
1070
+ */
1071
+ declare const FeedbackCompleteInputSchema: z.ZodObject<{
1072
+ id: z.ZodString;
1073
+ missing: z.ZodOptional<z.ZodArray<z.ZodString>>;
1074
+ }, z.core.$strict>;
1075
+ /**
1076
+ * 按任务类别重试。
1077
+ * @example
1078
+ * ```ts
1079
+ * import { FeedbackRetryInputSchema } from '@h-ai/api-contract'
1080
+ * FeedbackRetryInputSchema.parse({ id: 'report-1', target: 'notify' })
1081
+ * ```
1082
+ */
1083
+ declare const FeedbackRetryInputSchema: z.ZodObject<{
1084
+ id: z.ZodString;
1085
+ target: z.ZodEnum<{
1086
+ collect: "collect";
1087
+ notify: "notify";
1088
+ export: "export";
1089
+ attachment: "attachment";
1090
+ }>;
1091
+ targetId: z.ZodOptional<z.ZodString>;
1092
+ }, z.core.$strict>;
1093
+ /**
1094
+ * 固定证据修订的导出请求。
1095
+ * @example
1096
+ * ```ts
1097
+ * import { FeedbackExportInputSchema } from '@h-ai/api-contract'
1098
+ * FeedbackExportInputSchema.parse({ id: 'report-1' })
1099
+ * ```
1100
+ */
1101
+ declare const FeedbackExportInputSchema: z.ZodObject<{
1102
+ id: z.ZodString;
1103
+ evidenceRevision: z.ZodOptional<z.ZodNumber>;
1104
+ }, z.core.$strict>;
1105
+ /**
1106
+ * 已生成问题包的受权下载定位。
1107
+ * @example
1108
+ * ```ts
1109
+ * import { FeedbackExportQuerySchema } from '@h-ai/api-contract'
1110
+ * FeedbackExportQuerySchema.parse({ id: 'report-1', jobId: 'job-1' })
1111
+ * ```
1112
+ */
1113
+ declare const FeedbackExportQuerySchema: z.ZodObject<{
1114
+ id: z.ZodString;
1115
+ jobId: z.ZodString;
1116
+ }, z.core.$strict>;
1117
+ /**
1118
+ * 后台任务的安全状态,不暴露邮件正文、租约和存储 key。
1119
+ * @example
1120
+ * ```ts
1121
+ * import { FeedbackJobSchema } from '@h-ai/api-contract'
1122
+ * FeedbackJobSchema.parse({ id: 'job-1', feedbackId: 'report-1', type: 'export', status: 'pending', attempts: 0, createdAt: 1, updatedAt: 1 })
1123
+ * ```
1124
+ */
1125
+ declare const FeedbackJobSchema: z.ZodObject<{
1126
+ id: z.ZodString;
1127
+ feedbackId: z.ZodString;
1128
+ type: z.ZodEnum<{
1129
+ collect: "collect";
1130
+ notify: "notify";
1131
+ export: "export";
1132
+ cleanup: "cleanup";
1133
+ }>;
1134
+ status: z.ZodEnum<{
1135
+ pending: "pending";
1136
+ failed: "failed";
1137
+ running: "running";
1138
+ succeeded: "succeeded";
1139
+ }>;
1140
+ attempts: z.ZodNumber;
1141
+ createdAt: z.ZodNumber;
1142
+ updatedAt: z.ZodNumber;
1143
+ nextRunAt: z.ZodOptional<z.ZodNumber>;
1144
+ lastError: z.ZodOptional<z.ZodString>;
1145
+ result: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
1146
+ }, z.core.$strip>;
1147
+ /**
1148
+ * 处理变更历史。
1149
+ * @example
1150
+ * ```ts
1151
+ * import { FeedbackHistorySchema } from '@h-ai/api-contract'
1152
+ * FeedbackHistorySchema.parse({ id: 'history-1', feedbackId: 'report-1', userId: 'user-1', from: 'pending', to: 'handled', timestamp: 1 })
1153
+ * ```
1154
+ */
1155
+ declare const FeedbackHistorySchema: z.ZodObject<{
1156
+ id: z.ZodString;
1157
+ feedbackId: z.ZodString;
1158
+ userId: z.ZodString;
1159
+ from: z.ZodEnum<{
1160
+ pending: "pending";
1161
+ handled: "handled";
1162
+ }>;
1163
+ to: z.ZodEnum<{
1164
+ pending: "pending";
1165
+ handled: "handled";
1166
+ }>;
1167
+ timestamp: z.ZodNumber;
1168
+ note: z.ZodOptional<z.ZodString>;
1169
+ }, z.core.$strip>;
1170
+ /**
1171
+ * 详情按需加载,完整日志通过单独分页接口查询。
1172
+ * @example
1173
+ * ```ts
1174
+ * import type { FeedbackDetail } from '@h-ai/api-contract'
1175
+ * function numberOfAttachments(detail: FeedbackDetail) { return detail.attachments.length }
1176
+ * ```
1177
+ */
1178
+ declare const FeedbackDetailSchema: z.ZodObject<{
1179
+ report: z.ZodObject<{
1180
+ id: z.ZodString;
1181
+ number: z.ZodString;
1182
+ appId: z.ZodString;
1183
+ scopeId: z.ZodString;
1184
+ userId: z.ZodString;
1185
+ status: z.ZodEnum<{
1186
+ pending: "pending";
1187
+ handled: "handled";
1188
+ }>;
1189
+ collectionStatus: z.ZodEnum<{
1190
+ collecting: "collecting";
1191
+ complete: "complete";
1192
+ partial: "partial";
1193
+ failed: "failed";
1194
+ }>;
1195
+ notificationStatus: z.ZodEnum<{
1196
+ pending: "pending";
1197
+ failed: "failed";
1198
+ sending: "sending";
1199
+ sent: "sent";
1200
+ deferred: "deferred";
1201
+ }>;
1202
+ description: z.ZodOptional<z.ZodString>;
1203
+ summary: z.ZodOptional<z.ZodString>;
1204
+ category: z.ZodOptional<z.ZodString>;
1205
+ contact: z.ZodOptional<z.ZodString>;
1206
+ url: z.ZodOptional<z.ZodString>;
1207
+ appVersion: z.ZodOptional<z.ZodString>;
1208
+ buildId: z.ZodOptional<z.ZodString>;
1209
+ commit: z.ZodOptional<z.ZodString>;
1210
+ createdAt: z.ZodNumber;
1211
+ updatedAt: z.ZodNumber;
1212
+ version: z.ZodNumber;
1213
+ evidenceRevision: z.ZodNumber;
1214
+ }, z.core.$strip>;
1215
+ attachments: z.ZodArray<z.ZodObject<{
1216
+ id: z.ZodString;
1217
+ name: z.ZodString;
1218
+ contentType: z.ZodString;
1219
+ size: z.ZodNumber;
1220
+ checksum: z.ZodString;
1221
+ feedbackId: z.ZodString;
1222
+ status: z.ZodEnum<{
1223
+ pending: "pending";
1224
+ failed: "failed";
1225
+ available: "available";
1226
+ }>;
1227
+ missingReason: z.ZodOptional<z.ZodString>;
1228
+ }, z.core.$strict>>;
1229
+ history: z.ZodArray<z.ZodObject<{
1230
+ id: z.ZodString;
1231
+ feedbackId: z.ZodString;
1232
+ userId: z.ZodString;
1233
+ from: z.ZodEnum<{
1234
+ pending: "pending";
1235
+ handled: "handled";
1236
+ }>;
1237
+ to: z.ZodEnum<{
1238
+ pending: "pending";
1239
+ handled: "handled";
1240
+ }>;
1241
+ timestamp: z.ZodNumber;
1242
+ note: z.ZodOptional<z.ZodString>;
1243
+ }, z.core.$strip>>;
1244
+ jobs: z.ZodArray<z.ZodObject<{
1245
+ id: z.ZodString;
1246
+ feedbackId: z.ZodString;
1247
+ type: z.ZodEnum<{
1248
+ collect: "collect";
1249
+ notify: "notify";
1250
+ export: "export";
1251
+ cleanup: "cleanup";
1252
+ }>;
1253
+ status: z.ZodEnum<{
1254
+ pending: "pending";
1255
+ failed: "failed";
1256
+ running: "running";
1257
+ succeeded: "succeeded";
1258
+ }>;
1259
+ attempts: z.ZodNumber;
1260
+ createdAt: z.ZodNumber;
1261
+ updatedAt: z.ZodNumber;
1262
+ nextRunAt: z.ZodOptional<z.ZodNumber>;
1263
+ lastError: z.ZodOptional<z.ZodString>;
1264
+ result: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
1265
+ }, z.core.$strip>>;
1266
+ }, z.core.$strip>;
1267
+ /**
1268
+ * 有界附件上传,解码前后均须检查长度和 checksum。
1269
+ * @example
1270
+ * ```ts
1271
+ * import { FeedbackUploadInputSchema } from '@h-ai/api-contract'
1272
+ * FeedbackUploadInputSchema.parse({ id: 'report-1', attachmentId: 'image-1', dataBase64: 'iVBORw==' })
1273
+ * ```
1274
+ */
1275
+ declare const FeedbackUploadInputSchema: z.ZodObject<{
1276
+ id: z.ZodString;
1277
+ attachmentId: z.ZodString;
1278
+ dataBase64: z.ZodString;
1279
+ }, z.core.$strict>;
1280
+ /**
1281
+ * 附件受权读取定位。
1282
+ * @example
1283
+ * ```ts
1284
+ * import { FeedbackAttachmentQuerySchema } from '@h-ai/api-contract'
1285
+ * FeedbackAttachmentQuerySchema.parse({ id: 'report-1', attachmentId: 'image-1' })
1286
+ * ```
1287
+ */
1288
+ declare const FeedbackAttachmentQuerySchema: z.ZodObject<{
1289
+ id: z.ZodString;
1290
+ attachmentId: z.ZodString;
1291
+ }, z.core.$strict>;
1292
+ /**
1293
+ * 受权附件内容,不暴露 S3 凭据或公网链接。
1294
+ * @example
1295
+ * ```ts
1296
+ * import { FeedbackAttachmentDataSchema } from '@h-ai/api-contract'
1297
+ * FeedbackAttachmentDataSchema.parse({ name: 'screen.png', contentType: 'image/png', dataBase64: 'iVBORw==' })
1298
+ * ```
1299
+ */
1300
+ declare const FeedbackAttachmentDataSchema: z.ZodObject<{
1301
+ name: z.ZodString;
1302
+ contentType: z.ZodString;
1303
+ dataBase64: z.ZodString;
1304
+ }, z.core.$strip>;
1305
+ /**
1306
+ * FeedbackStatus 的共享类型,由对应 schema 推导。
1307
+ * @example
1308
+ * ```ts
1309
+ * import type { FeedbackStatus } from '@h-ai/api-contract'
1310
+ * const value: FeedbackStatus = 'pending'
1311
+ * ```
1312
+ */
1313
+ type FeedbackStatus = z.infer<typeof FeedbackStatusSchema>;
1314
+ /**
1315
+ * FeedbackCollectionStatus 的共享类型,由对应 schema 推导。
1316
+ * @example
1317
+ * ```ts
1318
+ * import type { FeedbackCollectionStatus } from '@h-ai/api-contract'
1319
+ * const value: FeedbackCollectionStatus = 'collecting'
1320
+ * ```
1321
+ */
1322
+ type FeedbackCollectionStatus = z.infer<typeof FeedbackCollectionStatusSchema>;
1323
+ /**
1324
+ * FeedbackNotificationStatus 的共享类型,由对应 schema 推导。
1325
+ * @example
1326
+ * ```ts
1327
+ * import type { FeedbackNotificationStatus } from '@h-ai/api-contract'
1328
+ * const value: FeedbackNotificationStatus = 'pending'
1329
+ * ```
1330
+ */
1331
+ type FeedbackNotificationStatus = z.infer<typeof FeedbackNotificationStatusSchema>;
1332
+ /**
1333
+ * FeedbackEvidenceInput 的共享类型,由对应 schema 推导。
1334
+ * @example
1335
+ * ```ts
1336
+ * import type { FeedbackEvidenceInput } from '@h-ai/api-contract'
1337
+ * function inspect(value: FeedbackEvidenceInput) { return value.id }
1338
+ * ```
1339
+ */
1340
+ type FeedbackEvidenceInput = z.infer<typeof FeedbackEvidenceInputSchema>;
1341
+ /**
1342
+ * FeedbackEvidence 的共享类型,由对应 schema 推导。
1343
+ * @example
1344
+ * ```ts
1345
+ * import type { FeedbackEvidence } from '@h-ai/api-contract'
1346
+ * function inspect(value: FeedbackEvidence) { return value.id }
1347
+ * ```
1348
+ */
1349
+ type FeedbackEvidence = z.infer<typeof FeedbackEvidenceSchema>;
1350
+ /**
1351
+ * FeedbackAttachmentInput 的共享类型,由对应 schema 推导。
1352
+ * @example
1353
+ * ```ts
1354
+ * import type { FeedbackAttachmentInput } from '@h-ai/api-contract'
1355
+ * function inspect(value: FeedbackAttachmentInput) { return value.id }
1356
+ * ```
1357
+ */
1358
+ type FeedbackAttachmentInput = z.infer<typeof FeedbackAttachmentInputSchema>;
1359
+ /**
1360
+ * FeedbackAttachment 的共享类型,由对应 schema 推导。
1361
+ * @example
1362
+ * ```ts
1363
+ * import type { FeedbackAttachment } from '@h-ai/api-contract'
1364
+ * function inspect(value: FeedbackAttachment) { return value.id }
1365
+ * ```
1366
+ */
1367
+ type FeedbackAttachment = z.infer<typeof FeedbackAttachmentSchema>;
1368
+ /**
1369
+ * FeedbackSubmitInput 的共享类型,由对应 schema 推导。
1370
+ * @example
1371
+ * ```ts
1372
+ * import type { FeedbackSubmitInput } from '@h-ai/api-contract'
1373
+ * function inspect(value: FeedbackSubmitInput) { return value.submissionId }
1374
+ * ```
1375
+ */
1376
+ type FeedbackSubmitInput = z.infer<typeof FeedbackSubmitInputSchema>;
1377
+ /**
1378
+ * FeedbackReport 的共享类型,由对应 schema 推导。
1379
+ * @example
1380
+ * ```ts
1381
+ * import type { FeedbackReport } from '@h-ai/api-contract'
1382
+ * function inspect(value: FeedbackReport) { return value.id }
1383
+ * ```
1384
+ */
1385
+ type FeedbackReport = z.infer<typeof FeedbackReportSchema>;
1386
+ /**
1387
+ * FeedbackListInput 的共享类型,由对应 schema 推导。
1388
+ * @example
1389
+ * ```ts
1390
+ * import type { FeedbackListInput } from '@h-ai/api-contract'
1391
+ * function inspect(value: FeedbackListInput) { return value.pageSize }
1392
+ * ```
1393
+ */
1394
+ type FeedbackListInput = z.infer<typeof FeedbackListInputSchema>;
1395
+ /**
1396
+ * FeedbackEvidenceQuery 的共享类型,由对应 schema 推导。
1397
+ * @example
1398
+ * ```ts
1399
+ * import type { FeedbackEvidenceQuery } from '@h-ai/api-contract'
1400
+ * function inspect(value: FeedbackEvidenceQuery) { return value.id }
1401
+ * ```
1402
+ */
1403
+ type FeedbackEvidenceQuery = z.infer<typeof FeedbackEvidenceQuerySchema>;
1404
+ /**
1405
+ * FeedbackSetStatusInput 的共享类型,由对应 schema 推导。
1406
+ * @example
1407
+ * ```ts
1408
+ * import type { FeedbackSetStatusInput } from '@h-ai/api-contract'
1409
+ * function inspect(value: FeedbackSetStatusInput) { return value.id }
1410
+ * ```
1411
+ */
1412
+ type FeedbackSetStatusInput = z.infer<typeof FeedbackSetStatusInputSchema>;
1413
+ /**
1414
+ * FeedbackAppendEvidenceInput 的共享类型,由对应 schema 推导。
1415
+ * @example
1416
+ * ```ts
1417
+ * import type { FeedbackAppendEvidenceInput } from '@h-ai/api-contract'
1418
+ * function inspect(value: FeedbackAppendEvidenceInput) { return value.id }
1419
+ * ```
1420
+ */
1421
+ type FeedbackAppendEvidenceInput = z.infer<typeof FeedbackAppendEvidenceInputSchema>;
1422
+ /**
1423
+ * FeedbackEvidenceAck 的共享类型,由对应 schema 推导。
1424
+ * @example
1425
+ * ```ts
1426
+ * import type { FeedbackEvidenceAck } from '@h-ai/api-contract'
1427
+ * function inspect(value: FeedbackEvidenceAck) { return value.acknowledged.length }
1428
+ * ```
1429
+ */
1430
+ type FeedbackEvidenceAck = z.infer<typeof FeedbackEvidenceAckSchema>;
1431
+ /**
1432
+ * FeedbackCompleteInput 的共享类型,由对应 schema 推导。
1433
+ * @example
1434
+ * ```ts
1435
+ * import type { FeedbackCompleteInput } from '@h-ai/api-contract'
1436
+ * function inspect(value: FeedbackCompleteInput) { return value.id }
1437
+ * ```
1438
+ */
1439
+ type FeedbackCompleteInput = z.infer<typeof FeedbackCompleteInputSchema>;
1440
+ /**
1441
+ * FeedbackRetryInput 的共享类型,由对应 schema 推导。
1442
+ * @example
1443
+ * ```ts
1444
+ * import type { FeedbackRetryInput } from '@h-ai/api-contract'
1445
+ * function inspect(value: FeedbackRetryInput) { return value.id }
1446
+ * ```
1447
+ */
1448
+ type FeedbackRetryInput = z.infer<typeof FeedbackRetryInputSchema>;
1449
+ /**
1450
+ * FeedbackExportInput 的共享类型,由对应 schema 推导。
1451
+ * @example
1452
+ * ```ts
1453
+ * import type { FeedbackExportInput } from '@h-ai/api-contract'
1454
+ * function inspect(value: FeedbackExportInput) { return value.id }
1455
+ * ```
1456
+ */
1457
+ type FeedbackExportInput = z.infer<typeof FeedbackExportInputSchema>;
1458
+ /**
1459
+ * FeedbackJob 的共享类型,由对应 schema 推导。
1460
+ * @example
1461
+ * ```ts
1462
+ * import type { FeedbackJob } from '@h-ai/api-contract'
1463
+ * function inspect(value: FeedbackJob) { return value.id }
1464
+ * ```
1465
+ */
1466
+ type FeedbackJob = z.infer<typeof FeedbackJobSchema>;
1467
+ /**
1468
+ * FeedbackHistory 的共享类型,由对应 schema 推导。
1469
+ * @example
1470
+ * ```ts
1471
+ * import type { FeedbackHistory } from '@h-ai/api-contract'
1472
+ * function inspect(value: FeedbackHistory) { return value.id }
1473
+ * ```
1474
+ */
1475
+ type FeedbackHistory = z.infer<typeof FeedbackHistorySchema>;
1476
+ /**
1477
+ * FeedbackDetail 的共享类型,由对应 schema 推导。
1478
+ * @example
1479
+ * ```ts
1480
+ * import type { FeedbackDetail } from '@h-ai/api-contract'
1481
+ * function inspect(value: FeedbackDetail) { return value.report.number }
1482
+ * ```
1483
+ */
1484
+ type FeedbackDetail = z.infer<typeof FeedbackDetailSchema>;
1485
+ /**
1486
+ * FeedbackUploadInput 的共享类型,由对应 schema 推导。
1487
+ * @example
1488
+ * ```ts
1489
+ * import type { FeedbackUploadInput } from '@h-ai/api-contract'
1490
+ * function inspect(value: FeedbackUploadInput) { return value.id }
1491
+ * ```
1492
+ */
1493
+ type FeedbackUploadInput = z.infer<typeof FeedbackUploadInputSchema>;
1494
+ /**
1495
+ * FeedbackAttachmentData 的共享类型,由对应 schema 推导。
1496
+ * @example
1497
+ * ```ts
1498
+ * import type { FeedbackAttachmentData } from '@h-ai/api-contract'
1499
+ * function inspect(value: FeedbackAttachmentData) { return value.contentType }
1500
+ * ```
1501
+ */
1502
+ type FeedbackAttachmentData = z.infer<typeof FeedbackAttachmentDataSchema>;
1503
+
1504
+ export { type FeedbackAppendEvidenceInput, FeedbackAppendEvidenceInputSchema, type FeedbackAttachment, type FeedbackAttachmentData, FeedbackAttachmentDataSchema, type FeedbackAttachmentInput, FeedbackAttachmentInputSchema, FeedbackAttachmentQuerySchema, FeedbackAttachmentSchema, type FeedbackCollectionStatus, FeedbackCollectionStatusSchema, type FeedbackCompleteInput, FeedbackCompleteInputSchema, type FeedbackContract, type FeedbackDetail, FeedbackDetailSchema, type FeedbackEvidence, type FeedbackEvidenceAck, FeedbackEvidenceAckSchema, type FeedbackEvidenceInput, FeedbackEvidenceInputSchema, type FeedbackEvidenceQuery, FeedbackEvidenceQuerySchema, FeedbackEvidenceSchema, type FeedbackExportInput, FeedbackExportInputSchema, FeedbackExportQuerySchema, type FeedbackHistory, FeedbackHistorySchema, FeedbackIdInputSchema, type FeedbackJob, FeedbackJobSchema, type FeedbackListInput, FeedbackListInputSchema, type FeedbackNotificationStatus, FeedbackNotificationStatusSchema, type FeedbackReport, FeedbackReportSchema, type FeedbackRetryInput, FeedbackRetryInputSchema, type FeedbackSetStatusInput, FeedbackSetStatusInputSchema, type FeedbackStatus, FeedbackStatusSchema, type FeedbackSubmitInput, FeedbackSubmitInputSchema, type FeedbackUploadInput, FeedbackUploadInputSchema, feedbackContract };