@open-loyalty/mcp-server 1.0.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.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +654 -0
  3. package/dist/client/http.d.ts +8 -0
  4. package/dist/client/http.js +69 -0
  5. package/dist/config.d.ts +17 -0
  6. package/dist/config.js +40 -0
  7. package/dist/index.d.ts +2 -0
  8. package/dist/index.js +20 -0
  9. package/dist/server.d.ts +4 -0
  10. package/dist/server.js +334 -0
  11. package/dist/tools/achievement.d.ts +983 -0
  12. package/dist/tools/achievement.js +311 -0
  13. package/dist/tools/admin.d.ts +153 -0
  14. package/dist/tools/admin.js +193 -0
  15. package/dist/tools/analytics.d.ts +162 -0
  16. package/dist/tools/analytics.js +245 -0
  17. package/dist/tools/apikey.d.ts +72 -0
  18. package/dist/tools/apikey.js +78 -0
  19. package/dist/tools/audit.d.ts +107 -0
  20. package/dist/tools/audit.js +90 -0
  21. package/dist/tools/badge.d.ts +135 -0
  22. package/dist/tools/badge.js +165 -0
  23. package/dist/tools/campaign.d.ts +1775 -0
  24. package/dist/tools/campaign.js +724 -0
  25. package/dist/tools/export.d.ts +110 -0
  26. package/dist/tools/export.js +147 -0
  27. package/dist/tools/import.d.ts +110 -0
  28. package/dist/tools/import.js +126 -0
  29. package/dist/tools/index.d.ts +22 -0
  30. package/dist/tools/index.js +527 -0
  31. package/dist/tools/member.d.ts +345 -0
  32. package/dist/tools/member.js +358 -0
  33. package/dist/tools/member.test.d.ts +1 -0
  34. package/dist/tools/member.test.js +213 -0
  35. package/dist/tools/points.d.ts +188 -0
  36. package/dist/tools/points.js +306 -0
  37. package/dist/tools/points.test.d.ts +1 -0
  38. package/dist/tools/points.test.js +292 -0
  39. package/dist/tools/reward.d.ts +261 -0
  40. package/dist/tools/reward.js +371 -0
  41. package/dist/tools/reward.test.d.ts +1 -0
  42. package/dist/tools/reward.test.js +240 -0
  43. package/dist/tools/role.d.ts +161 -0
  44. package/dist/tools/role.js +160 -0
  45. package/dist/tools/segment.d.ts +797 -0
  46. package/dist/tools/segment.js +299 -0
  47. package/dist/tools/store.d.ts +101 -0
  48. package/dist/tools/store.js +117 -0
  49. package/dist/tools/tierset.d.ts +288 -0
  50. package/dist/tools/tierset.js +244 -0
  51. package/dist/tools/transaction.d.ts +357 -0
  52. package/dist/tools/transaction.js +242 -0
  53. package/dist/tools/transaction.test.d.ts +1 -0
  54. package/dist/tools/transaction.test.js +235 -0
  55. package/dist/tools/wallet-type.d.ts +32 -0
  56. package/dist/tools/wallet-type.js +58 -0
  57. package/dist/tools/webhook.d.ts +179 -0
  58. package/dist/tools/webhook.js +171 -0
  59. package/dist/types/schemas/achievement.d.ts +1116 -0
  60. package/dist/types/schemas/achievement.js +172 -0
  61. package/dist/types/schemas/admin.d.ts +263 -0
  62. package/dist/types/schemas/admin.js +99 -0
  63. package/dist/types/schemas/analytics.d.ts +542 -0
  64. package/dist/types/schemas/analytics.js +130 -0
  65. package/dist/types/schemas/badge.d.ts +131 -0
  66. package/dist/types/schemas/badge.js +48 -0
  67. package/dist/types/schemas/campaign.d.ts +2005 -0
  68. package/dist/types/schemas/campaign.js +189 -0
  69. package/dist/types/schemas/common.d.ts +52 -0
  70. package/dist/types/schemas/common.js +26 -0
  71. package/dist/types/schemas/export.d.ts +127 -0
  72. package/dist/types/schemas/export.js +43 -0
  73. package/dist/types/schemas/import.d.ts +344 -0
  74. package/dist/types/schemas/import.js +68 -0
  75. package/dist/types/schemas/member.d.ts +443 -0
  76. package/dist/types/schemas/member.js +92 -0
  77. package/dist/types/schemas/points.d.ts +188 -0
  78. package/dist/types/schemas/points.js +54 -0
  79. package/dist/types/schemas/reward.d.ts +278 -0
  80. package/dist/types/schemas/reward.js +69 -0
  81. package/dist/types/schemas/role.d.ts +260 -0
  82. package/dist/types/schemas/role.js +75 -0
  83. package/dist/types/schemas/segment.d.ts +592 -0
  84. package/dist/types/schemas/segment.js +114 -0
  85. package/dist/types/schemas/tierset.d.ts +552 -0
  86. package/dist/types/schemas/tierset.js +87 -0
  87. package/dist/types/schemas/transaction.d.ts +1022 -0
  88. package/dist/types/schemas/transaction.js +63 -0
  89. package/dist/types/schemas/wallet-type.d.ts +99 -0
  90. package/dist/types/schemas/wallet-type.js +17 -0
  91. package/dist/types/schemas/webhook.d.ts +195 -0
  92. package/dist/types/schemas/webhook.js +39 -0
  93. package/dist/utils/cursor.d.ts +84 -0
  94. package/dist/utils/cursor.js +117 -0
  95. package/dist/utils/errors.d.ts +12 -0
  96. package/dist/utils/errors.js +69 -0
  97. package/dist/utils/pagination.d.ts +39 -0
  98. package/dist/utils/pagination.js +77 -0
  99. package/package.json +65 -0
@@ -0,0 +1,1116 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Achievement Trigger Enum.
4
+ * Defines what events can trigger progress on an achievement.
5
+ */
6
+ export declare const AchievementTriggerEnum: z.ZodEnum<["transaction", "custom_event", "points_transfer", "reward_redemption", "referral", "achievement", "tier_change", "registration", "profile_update", "login"]>;
7
+ export type AchievementTrigger = z.infer<typeof AchievementTriggerEnum>;
8
+ /**
9
+ * Achievement Period Type Enum.
10
+ * Defines the time period for achievement completion rules.
11
+ */
12
+ export declare const AchievementPeriodTypeEnum: z.ZodEnum<["day", "week", "month", "year", "forever", "calendarDays", "calendarWeeks", "calendarMonths", "calendarYears"]>;
13
+ export type AchievementPeriodType = z.infer<typeof AchievementPeriodTypeEnum>;
14
+ /**
15
+ * Achievement Period Schema.
16
+ * Defines the period for tracking achievement progress.
17
+ */
18
+ export declare const AchievementPeriodSchema: z.ZodObject<{
19
+ consecutive: z.ZodOptional<z.ZodNumber>;
20
+ value: z.ZodOptional<z.ZodNumber>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ value?: number | undefined;
23
+ consecutive?: number | undefined;
24
+ }, {
25
+ value?: number | undefined;
26
+ consecutive?: number | undefined;
27
+ }>;
28
+ export type AchievementPeriod = z.infer<typeof AchievementPeriodSchema>;
29
+ /**
30
+ * Achievement Complete Rule Schema.
31
+ * Defines when an achievement is considered complete.
32
+ */
33
+ export declare const AchievementCompleteRuleSchema: z.ZodObject<{
34
+ periodGoal: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
35
+ period: z.ZodOptional<z.ZodObject<{
36
+ consecutive: z.ZodOptional<z.ZodNumber>;
37
+ value: z.ZodOptional<z.ZodNumber>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ value?: number | undefined;
40
+ consecutive?: number | undefined;
41
+ }, {
42
+ value?: number | undefined;
43
+ consecutive?: number | undefined;
44
+ }>>;
45
+ uniqueAttribute: z.ZodOptional<z.ZodString>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ periodGoal: string | number;
48
+ period?: {
49
+ value?: number | undefined;
50
+ consecutive?: number | undefined;
51
+ } | undefined;
52
+ uniqueAttribute?: string | undefined;
53
+ }, {
54
+ periodGoal: string | number;
55
+ period?: {
56
+ value?: number | undefined;
57
+ consecutive?: number | undefined;
58
+ } | undefined;
59
+ uniqueAttribute?: string | undefined;
60
+ }>;
61
+ export type AchievementCompleteRule = z.infer<typeof AchievementCompleteRuleSchema>;
62
+ /**
63
+ * Achievement Aggregation Schema.
64
+ * Defines how to aggregate values for achievement progress.
65
+ */
66
+ export declare const AchievementAggregationSchema: z.ZodObject<{
67
+ rule: z.ZodOptional<z.ZodString>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ rule?: string | undefined;
70
+ }, {
71
+ rule?: string | undefined;
72
+ }>;
73
+ export type AchievementAggregation = z.infer<typeof AchievementAggregationSchema>;
74
+ /**
75
+ * Achievement Limit Interval Schema.
76
+ * Defines the time interval for achievement limits.
77
+ */
78
+ export declare const AchievementLimitIntervalSchema: z.ZodObject<{
79
+ type: z.ZodString;
80
+ value: z.ZodOptional<z.ZodNumber>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ type: string;
83
+ value?: number | undefined;
84
+ }, {
85
+ type: string;
86
+ value?: number | undefined;
87
+ }>;
88
+ export type AchievementLimitInterval = z.infer<typeof AchievementLimitIntervalSchema>;
89
+ /**
90
+ * Achievement Limit Schema.
91
+ * Defines limits on achievement completions.
92
+ */
93
+ export declare const AchievementLimitSchema: z.ZodObject<{
94
+ value: z.ZodOptional<z.ZodNumber>;
95
+ interval: z.ZodOptional<z.ZodObject<{
96
+ type: z.ZodString;
97
+ value: z.ZodOptional<z.ZodNumber>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ type: string;
100
+ value?: number | undefined;
101
+ }, {
102
+ type: string;
103
+ value?: number | undefined;
104
+ }>>;
105
+ }, "strip", z.ZodTypeAny, {
106
+ value?: number | undefined;
107
+ interval?: {
108
+ type: string;
109
+ value?: number | undefined;
110
+ } | undefined;
111
+ }, {
112
+ value?: number | undefined;
113
+ interval?: {
114
+ type: string;
115
+ value?: number | undefined;
116
+ } | undefined;
117
+ }>;
118
+ export type AchievementLimit = z.infer<typeof AchievementLimitSchema>;
119
+ /**
120
+ * Achievement Rule Schema.
121
+ * Defines a rule for how to track and complete an achievement.
122
+ */
123
+ export declare const AchievementRuleSchema: z.ZodObject<{
124
+ achievementRuleId: z.ZodOptional<z.ZodString>;
125
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
126
+ name: z.ZodString;
127
+ description: z.ZodOptional<z.ZodString>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ name: string;
130
+ description?: string | undefined;
131
+ }, {
132
+ name: string;
133
+ description?: string | undefined;
134
+ }>>>;
135
+ trigger: z.ZodOptional<z.ZodString>;
136
+ type: z.ZodOptional<z.ZodString>;
137
+ event: z.ZodOptional<z.ZodString>;
138
+ completeRule: z.ZodObject<{
139
+ periodGoal: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
140
+ period: z.ZodOptional<z.ZodObject<{
141
+ consecutive: z.ZodOptional<z.ZodNumber>;
142
+ value: z.ZodOptional<z.ZodNumber>;
143
+ }, "strip", z.ZodTypeAny, {
144
+ value?: number | undefined;
145
+ consecutive?: number | undefined;
146
+ }, {
147
+ value?: number | undefined;
148
+ consecutive?: number | undefined;
149
+ }>>;
150
+ uniqueAttribute: z.ZodOptional<z.ZodString>;
151
+ }, "strip", z.ZodTypeAny, {
152
+ periodGoal: string | number;
153
+ period?: {
154
+ value?: number | undefined;
155
+ consecutive?: number | undefined;
156
+ } | undefined;
157
+ uniqueAttribute?: string | undefined;
158
+ }, {
159
+ periodGoal: string | number;
160
+ period?: {
161
+ value?: number | undefined;
162
+ consecutive?: number | undefined;
163
+ } | undefined;
164
+ uniqueAttribute?: string | undefined;
165
+ }>;
166
+ aggregation: z.ZodOptional<z.ZodObject<{
167
+ rule: z.ZodOptional<z.ZodString>;
168
+ }, "strip", z.ZodTypeAny, {
169
+ rule?: string | undefined;
170
+ }, {
171
+ rule?: string | undefined;
172
+ }>>;
173
+ conditions: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
174
+ limit: z.ZodOptional<z.ZodObject<{
175
+ value: z.ZodOptional<z.ZodNumber>;
176
+ interval: z.ZodOptional<z.ZodObject<{
177
+ type: z.ZodString;
178
+ value: z.ZodOptional<z.ZodNumber>;
179
+ }, "strip", z.ZodTypeAny, {
180
+ type: string;
181
+ value?: number | undefined;
182
+ }, {
183
+ type: string;
184
+ value?: number | undefined;
185
+ }>>;
186
+ }, "strip", z.ZodTypeAny, {
187
+ value?: number | undefined;
188
+ interval?: {
189
+ type: string;
190
+ value?: number | undefined;
191
+ } | undefined;
192
+ }, {
193
+ value?: number | undefined;
194
+ interval?: {
195
+ type: string;
196
+ value?: number | undefined;
197
+ } | undefined;
198
+ }>>;
199
+ uniqueReferee: z.ZodOptional<z.ZodBoolean>;
200
+ }, "strip", z.ZodTypeAny, {
201
+ completeRule: {
202
+ periodGoal: string | number;
203
+ period?: {
204
+ value?: number | undefined;
205
+ consecutive?: number | undefined;
206
+ } | undefined;
207
+ uniqueAttribute?: string | undefined;
208
+ };
209
+ type?: string | undefined;
210
+ conditions?: Record<string, unknown>[] | undefined;
211
+ translations?: Record<string, {
212
+ name: string;
213
+ description?: string | undefined;
214
+ }> | undefined;
215
+ trigger?: string | undefined;
216
+ event?: string | undefined;
217
+ achievementRuleId?: string | undefined;
218
+ aggregation?: {
219
+ rule?: string | undefined;
220
+ } | undefined;
221
+ limit?: {
222
+ value?: number | undefined;
223
+ interval?: {
224
+ type: string;
225
+ value?: number | undefined;
226
+ } | undefined;
227
+ } | undefined;
228
+ uniqueReferee?: boolean | undefined;
229
+ }, {
230
+ completeRule: {
231
+ periodGoal: string | number;
232
+ period?: {
233
+ value?: number | undefined;
234
+ consecutive?: number | undefined;
235
+ } | undefined;
236
+ uniqueAttribute?: string | undefined;
237
+ };
238
+ type?: string | undefined;
239
+ conditions?: Record<string, unknown>[] | undefined;
240
+ translations?: Record<string, {
241
+ name: string;
242
+ description?: string | undefined;
243
+ }> | undefined;
244
+ trigger?: string | undefined;
245
+ event?: string | undefined;
246
+ achievementRuleId?: string | undefined;
247
+ aggregation?: {
248
+ rule?: string | undefined;
249
+ } | undefined;
250
+ limit?: {
251
+ value?: number | undefined;
252
+ interval?: {
253
+ type: string;
254
+ value?: number | undefined;
255
+ } | undefined;
256
+ } | undefined;
257
+ uniqueReferee?: boolean | undefined;
258
+ }>;
259
+ export type AchievementRule = z.infer<typeof AchievementRuleSchema>;
260
+ /**
261
+ * Achievement Activity Schema.
262
+ * Defines when an achievement is active.
263
+ */
264
+ export declare const AchievementActivitySchema: z.ZodObject<{
265
+ startsAt: z.ZodOptional<z.ZodString>;
266
+ endsAt: z.ZodOptional<z.ZodString>;
267
+ data: z.ZodOptional<z.ZodString>;
268
+ operator: z.ZodOptional<z.ZodString>;
269
+ }, "strip", z.ZodTypeAny, {
270
+ data?: string | undefined;
271
+ operator?: string | undefined;
272
+ startsAt?: string | undefined;
273
+ endsAt?: string | undefined;
274
+ }, {
275
+ data?: string | undefined;
276
+ operator?: string | undefined;
277
+ startsAt?: string | undefined;
278
+ endsAt?: string | undefined;
279
+ }>;
280
+ export type AchievementActivity = z.infer<typeof AchievementActivitySchema>;
281
+ /**
282
+ * Main Achievement Schema.
283
+ * Represents a complete achievement with all configuration.
284
+ */
285
+ export declare const AchievementSchema: z.ZodObject<{
286
+ achievementId: z.ZodString;
287
+ translations: z.ZodRecord<z.ZodString, z.ZodObject<{
288
+ name: z.ZodString;
289
+ description: z.ZodOptional<z.ZodString>;
290
+ }, "strip", z.ZodTypeAny, {
291
+ name: string;
292
+ description?: string | undefined;
293
+ }, {
294
+ name: string;
295
+ description?: string | undefined;
296
+ }>>;
297
+ active: z.ZodBoolean;
298
+ activity: z.ZodOptional<z.ZodObject<{
299
+ startsAt: z.ZodOptional<z.ZodString>;
300
+ endsAt: z.ZodOptional<z.ZodString>;
301
+ data: z.ZodOptional<z.ZodString>;
302
+ operator: z.ZodOptional<z.ZodString>;
303
+ }, "strip", z.ZodTypeAny, {
304
+ data?: string | undefined;
305
+ operator?: string | undefined;
306
+ startsAt?: string | undefined;
307
+ endsAt?: string | undefined;
308
+ }, {
309
+ data?: string | undefined;
310
+ operator?: string | undefined;
311
+ startsAt?: string | undefined;
312
+ endsAt?: string | undefined;
313
+ }>>;
314
+ limit: z.ZodOptional<z.ZodObject<{
315
+ value: z.ZodOptional<z.ZodNumber>;
316
+ interval: z.ZodOptional<z.ZodObject<{
317
+ type: z.ZodString;
318
+ value: z.ZodOptional<z.ZodNumber>;
319
+ }, "strip", z.ZodTypeAny, {
320
+ type: string;
321
+ value?: number | undefined;
322
+ }, {
323
+ type: string;
324
+ value?: number | undefined;
325
+ }>>;
326
+ }, "strip", z.ZodTypeAny, {
327
+ value?: number | undefined;
328
+ interval?: {
329
+ type: string;
330
+ value?: number | undefined;
331
+ } | undefined;
332
+ }, {
333
+ value?: number | undefined;
334
+ interval?: {
335
+ type: string;
336
+ value?: number | undefined;
337
+ } | undefined;
338
+ }>>;
339
+ rules: z.ZodArray<z.ZodObject<{
340
+ achievementRuleId: z.ZodOptional<z.ZodString>;
341
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
342
+ name: z.ZodString;
343
+ description: z.ZodOptional<z.ZodString>;
344
+ }, "strip", z.ZodTypeAny, {
345
+ name: string;
346
+ description?: string | undefined;
347
+ }, {
348
+ name: string;
349
+ description?: string | undefined;
350
+ }>>>;
351
+ trigger: z.ZodOptional<z.ZodString>;
352
+ type: z.ZodOptional<z.ZodString>;
353
+ event: z.ZodOptional<z.ZodString>;
354
+ completeRule: z.ZodObject<{
355
+ periodGoal: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
356
+ period: z.ZodOptional<z.ZodObject<{
357
+ consecutive: z.ZodOptional<z.ZodNumber>;
358
+ value: z.ZodOptional<z.ZodNumber>;
359
+ }, "strip", z.ZodTypeAny, {
360
+ value?: number | undefined;
361
+ consecutive?: number | undefined;
362
+ }, {
363
+ value?: number | undefined;
364
+ consecutive?: number | undefined;
365
+ }>>;
366
+ uniqueAttribute: z.ZodOptional<z.ZodString>;
367
+ }, "strip", z.ZodTypeAny, {
368
+ periodGoal: string | number;
369
+ period?: {
370
+ value?: number | undefined;
371
+ consecutive?: number | undefined;
372
+ } | undefined;
373
+ uniqueAttribute?: string | undefined;
374
+ }, {
375
+ periodGoal: string | number;
376
+ period?: {
377
+ value?: number | undefined;
378
+ consecutive?: number | undefined;
379
+ } | undefined;
380
+ uniqueAttribute?: string | undefined;
381
+ }>;
382
+ aggregation: z.ZodOptional<z.ZodObject<{
383
+ rule: z.ZodOptional<z.ZodString>;
384
+ }, "strip", z.ZodTypeAny, {
385
+ rule?: string | undefined;
386
+ }, {
387
+ rule?: string | undefined;
388
+ }>>;
389
+ conditions: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
390
+ limit: z.ZodOptional<z.ZodObject<{
391
+ value: z.ZodOptional<z.ZodNumber>;
392
+ interval: z.ZodOptional<z.ZodObject<{
393
+ type: z.ZodString;
394
+ value: z.ZodOptional<z.ZodNumber>;
395
+ }, "strip", z.ZodTypeAny, {
396
+ type: string;
397
+ value?: number | undefined;
398
+ }, {
399
+ type: string;
400
+ value?: number | undefined;
401
+ }>>;
402
+ }, "strip", z.ZodTypeAny, {
403
+ value?: number | undefined;
404
+ interval?: {
405
+ type: string;
406
+ value?: number | undefined;
407
+ } | undefined;
408
+ }, {
409
+ value?: number | undefined;
410
+ interval?: {
411
+ type: string;
412
+ value?: number | undefined;
413
+ } | undefined;
414
+ }>>;
415
+ uniqueReferee: z.ZodOptional<z.ZodBoolean>;
416
+ }, "strip", z.ZodTypeAny, {
417
+ completeRule: {
418
+ periodGoal: string | number;
419
+ period?: {
420
+ value?: number | undefined;
421
+ consecutive?: number | undefined;
422
+ } | undefined;
423
+ uniqueAttribute?: string | undefined;
424
+ };
425
+ type?: string | undefined;
426
+ conditions?: Record<string, unknown>[] | undefined;
427
+ translations?: Record<string, {
428
+ name: string;
429
+ description?: string | undefined;
430
+ }> | undefined;
431
+ trigger?: string | undefined;
432
+ event?: string | undefined;
433
+ achievementRuleId?: string | undefined;
434
+ aggregation?: {
435
+ rule?: string | undefined;
436
+ } | undefined;
437
+ limit?: {
438
+ value?: number | undefined;
439
+ interval?: {
440
+ type: string;
441
+ value?: number | undefined;
442
+ } | undefined;
443
+ } | undefined;
444
+ uniqueReferee?: boolean | undefined;
445
+ }, {
446
+ completeRule: {
447
+ periodGoal: string | number;
448
+ period?: {
449
+ value?: number | undefined;
450
+ consecutive?: number | undefined;
451
+ } | undefined;
452
+ uniqueAttribute?: string | undefined;
453
+ };
454
+ type?: string | undefined;
455
+ conditions?: Record<string, unknown>[] | undefined;
456
+ translations?: Record<string, {
457
+ name: string;
458
+ description?: string | undefined;
459
+ }> | undefined;
460
+ trigger?: string | undefined;
461
+ event?: string | undefined;
462
+ achievementRuleId?: string | undefined;
463
+ aggregation?: {
464
+ rule?: string | undefined;
465
+ } | undefined;
466
+ limit?: {
467
+ value?: number | undefined;
468
+ interval?: {
469
+ type: string;
470
+ value?: number | undefined;
471
+ } | undefined;
472
+ } | undefined;
473
+ uniqueReferee?: boolean | undefined;
474
+ }>, "many">;
475
+ badgeTypeId: z.ZodOptional<z.ZodString>;
476
+ createdAt: z.ZodOptional<z.ZodString>;
477
+ completionsCount: z.ZodOptional<z.ZodNumber>;
478
+ }, "strip", z.ZodTypeAny, {
479
+ active: boolean;
480
+ translations: Record<string, {
481
+ name: string;
482
+ description?: string | undefined;
483
+ }>;
484
+ rules: {
485
+ completeRule: {
486
+ periodGoal: string | number;
487
+ period?: {
488
+ value?: number | undefined;
489
+ consecutive?: number | undefined;
490
+ } | undefined;
491
+ uniqueAttribute?: string | undefined;
492
+ };
493
+ type?: string | undefined;
494
+ conditions?: Record<string, unknown>[] | undefined;
495
+ translations?: Record<string, {
496
+ name: string;
497
+ description?: string | undefined;
498
+ }> | undefined;
499
+ trigger?: string | undefined;
500
+ event?: string | undefined;
501
+ achievementRuleId?: string | undefined;
502
+ aggregation?: {
503
+ rule?: string | undefined;
504
+ } | undefined;
505
+ limit?: {
506
+ value?: number | undefined;
507
+ interval?: {
508
+ type: string;
509
+ value?: number | undefined;
510
+ } | undefined;
511
+ } | undefined;
512
+ uniqueReferee?: boolean | undefined;
513
+ }[];
514
+ achievementId: string;
515
+ createdAt?: string | undefined;
516
+ activity?: {
517
+ data?: string | undefined;
518
+ operator?: string | undefined;
519
+ startsAt?: string | undefined;
520
+ endsAt?: string | undefined;
521
+ } | undefined;
522
+ limit?: {
523
+ value?: number | undefined;
524
+ interval?: {
525
+ type: string;
526
+ value?: number | undefined;
527
+ } | undefined;
528
+ } | undefined;
529
+ badgeTypeId?: string | undefined;
530
+ completionsCount?: number | undefined;
531
+ }, {
532
+ active: boolean;
533
+ translations: Record<string, {
534
+ name: string;
535
+ description?: string | undefined;
536
+ }>;
537
+ rules: {
538
+ completeRule: {
539
+ periodGoal: string | number;
540
+ period?: {
541
+ value?: number | undefined;
542
+ consecutive?: number | undefined;
543
+ } | undefined;
544
+ uniqueAttribute?: string | undefined;
545
+ };
546
+ type?: string | undefined;
547
+ conditions?: Record<string, unknown>[] | undefined;
548
+ translations?: Record<string, {
549
+ name: string;
550
+ description?: string | undefined;
551
+ }> | undefined;
552
+ trigger?: string | undefined;
553
+ event?: string | undefined;
554
+ achievementRuleId?: string | undefined;
555
+ aggregation?: {
556
+ rule?: string | undefined;
557
+ } | undefined;
558
+ limit?: {
559
+ value?: number | undefined;
560
+ interval?: {
561
+ type: string;
562
+ value?: number | undefined;
563
+ } | undefined;
564
+ } | undefined;
565
+ uniqueReferee?: boolean | undefined;
566
+ }[];
567
+ achievementId: string;
568
+ createdAt?: string | undefined;
569
+ activity?: {
570
+ data?: string | undefined;
571
+ operator?: string | undefined;
572
+ startsAt?: string | undefined;
573
+ endsAt?: string | undefined;
574
+ } | undefined;
575
+ limit?: {
576
+ value?: number | undefined;
577
+ interval?: {
578
+ type: string;
579
+ value?: number | undefined;
580
+ } | undefined;
581
+ } | undefined;
582
+ badgeTypeId?: string | undefined;
583
+ completionsCount?: number | undefined;
584
+ }>;
585
+ export type Achievement = z.infer<typeof AchievementSchema>;
586
+ /**
587
+ * Achievement List Item Schema.
588
+ * Simplified representation for list responses.
589
+ */
590
+ export declare const AchievementListItemSchema: z.ZodObject<{
591
+ achievementId: z.ZodString;
592
+ name: z.ZodOptional<z.ZodString>;
593
+ active: z.ZodBoolean;
594
+ createdAt: z.ZodOptional<z.ZodString>;
595
+ badgeTypeId: z.ZodOptional<z.ZodString>;
596
+ }, "strip", z.ZodTypeAny, {
597
+ active: boolean;
598
+ achievementId: string;
599
+ name?: string | undefined;
600
+ createdAt?: string | undefined;
601
+ badgeTypeId?: string | undefined;
602
+ }, {
603
+ active: boolean;
604
+ achievementId: string;
605
+ name?: string | undefined;
606
+ createdAt?: string | undefined;
607
+ badgeTypeId?: string | undefined;
608
+ }>;
609
+ export type AchievementListItem = z.infer<typeof AchievementListItemSchema>;
610
+ /**
611
+ * Achievement Create Input Schema.
612
+ * Matches the POST /api/{storeCode}/achievement body structure.
613
+ * IMPORTANT: Request must be wrapped as { achievement: {...} }
614
+ */
615
+ export declare const AchievementCreateInputSchema: z.ZodObject<{
616
+ translations: z.ZodRecord<z.ZodString, z.ZodObject<{
617
+ name: z.ZodString;
618
+ description: z.ZodOptional<z.ZodString>;
619
+ }, "strip", z.ZodTypeAny, {
620
+ name: string;
621
+ description?: string | undefined;
622
+ }, {
623
+ name: string;
624
+ description?: string | undefined;
625
+ }>>;
626
+ active: z.ZodOptional<z.ZodBoolean>;
627
+ activity: z.ZodOptional<z.ZodObject<{
628
+ startsAt: z.ZodOptional<z.ZodString>;
629
+ endsAt: z.ZodOptional<z.ZodString>;
630
+ data: z.ZodOptional<z.ZodString>;
631
+ operator: z.ZodOptional<z.ZodString>;
632
+ }, "strip", z.ZodTypeAny, {
633
+ data?: string | undefined;
634
+ operator?: string | undefined;
635
+ startsAt?: string | undefined;
636
+ endsAt?: string | undefined;
637
+ }, {
638
+ data?: string | undefined;
639
+ operator?: string | undefined;
640
+ startsAt?: string | undefined;
641
+ endsAt?: string | undefined;
642
+ }>>;
643
+ limit: z.ZodOptional<z.ZodObject<{
644
+ value: z.ZodOptional<z.ZodNumber>;
645
+ interval: z.ZodOptional<z.ZodObject<{
646
+ type: z.ZodString;
647
+ value: z.ZodOptional<z.ZodNumber>;
648
+ }, "strip", z.ZodTypeAny, {
649
+ type: string;
650
+ value?: number | undefined;
651
+ }, {
652
+ type: string;
653
+ value?: number | undefined;
654
+ }>>;
655
+ }, "strip", z.ZodTypeAny, {
656
+ value?: number | undefined;
657
+ interval?: {
658
+ type: string;
659
+ value?: number | undefined;
660
+ } | undefined;
661
+ }, {
662
+ value?: number | undefined;
663
+ interval?: {
664
+ type: string;
665
+ value?: number | undefined;
666
+ } | undefined;
667
+ }>>;
668
+ rules: z.ZodArray<z.ZodObject<{
669
+ achievementRuleId: z.ZodOptional<z.ZodString>;
670
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
671
+ name: z.ZodString;
672
+ description: z.ZodOptional<z.ZodString>;
673
+ }, "strip", z.ZodTypeAny, {
674
+ name: string;
675
+ description?: string | undefined;
676
+ }, {
677
+ name: string;
678
+ description?: string | undefined;
679
+ }>>>;
680
+ trigger: z.ZodOptional<z.ZodString>;
681
+ type: z.ZodOptional<z.ZodString>;
682
+ event: z.ZodOptional<z.ZodString>;
683
+ completeRule: z.ZodObject<{
684
+ periodGoal: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
685
+ period: z.ZodOptional<z.ZodObject<{
686
+ consecutive: z.ZodOptional<z.ZodNumber>;
687
+ value: z.ZodOptional<z.ZodNumber>;
688
+ }, "strip", z.ZodTypeAny, {
689
+ value?: number | undefined;
690
+ consecutive?: number | undefined;
691
+ }, {
692
+ value?: number | undefined;
693
+ consecutive?: number | undefined;
694
+ }>>;
695
+ uniqueAttribute: z.ZodOptional<z.ZodString>;
696
+ }, "strip", z.ZodTypeAny, {
697
+ periodGoal: string | number;
698
+ period?: {
699
+ value?: number | undefined;
700
+ consecutive?: number | undefined;
701
+ } | undefined;
702
+ uniqueAttribute?: string | undefined;
703
+ }, {
704
+ periodGoal: string | number;
705
+ period?: {
706
+ value?: number | undefined;
707
+ consecutive?: number | undefined;
708
+ } | undefined;
709
+ uniqueAttribute?: string | undefined;
710
+ }>;
711
+ aggregation: z.ZodOptional<z.ZodObject<{
712
+ rule: z.ZodOptional<z.ZodString>;
713
+ }, "strip", z.ZodTypeAny, {
714
+ rule?: string | undefined;
715
+ }, {
716
+ rule?: string | undefined;
717
+ }>>;
718
+ conditions: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
719
+ limit: z.ZodOptional<z.ZodObject<{
720
+ value: z.ZodOptional<z.ZodNumber>;
721
+ interval: z.ZodOptional<z.ZodObject<{
722
+ type: z.ZodString;
723
+ value: z.ZodOptional<z.ZodNumber>;
724
+ }, "strip", z.ZodTypeAny, {
725
+ type: string;
726
+ value?: number | undefined;
727
+ }, {
728
+ type: string;
729
+ value?: number | undefined;
730
+ }>>;
731
+ }, "strip", z.ZodTypeAny, {
732
+ value?: number | undefined;
733
+ interval?: {
734
+ type: string;
735
+ value?: number | undefined;
736
+ } | undefined;
737
+ }, {
738
+ value?: number | undefined;
739
+ interval?: {
740
+ type: string;
741
+ value?: number | undefined;
742
+ } | undefined;
743
+ }>>;
744
+ uniqueReferee: z.ZodOptional<z.ZodBoolean>;
745
+ }, "strip", z.ZodTypeAny, {
746
+ completeRule: {
747
+ periodGoal: string | number;
748
+ period?: {
749
+ value?: number | undefined;
750
+ consecutive?: number | undefined;
751
+ } | undefined;
752
+ uniqueAttribute?: string | undefined;
753
+ };
754
+ type?: string | undefined;
755
+ conditions?: Record<string, unknown>[] | undefined;
756
+ translations?: Record<string, {
757
+ name: string;
758
+ description?: string | undefined;
759
+ }> | undefined;
760
+ trigger?: string | undefined;
761
+ event?: string | undefined;
762
+ achievementRuleId?: string | undefined;
763
+ aggregation?: {
764
+ rule?: string | undefined;
765
+ } | undefined;
766
+ limit?: {
767
+ value?: number | undefined;
768
+ interval?: {
769
+ type: string;
770
+ value?: number | undefined;
771
+ } | undefined;
772
+ } | undefined;
773
+ uniqueReferee?: boolean | undefined;
774
+ }, {
775
+ completeRule: {
776
+ periodGoal: string | number;
777
+ period?: {
778
+ value?: number | undefined;
779
+ consecutive?: number | undefined;
780
+ } | undefined;
781
+ uniqueAttribute?: string | undefined;
782
+ };
783
+ type?: string | undefined;
784
+ conditions?: Record<string, unknown>[] | undefined;
785
+ translations?: Record<string, {
786
+ name: string;
787
+ description?: string | undefined;
788
+ }> | undefined;
789
+ trigger?: string | undefined;
790
+ event?: string | undefined;
791
+ achievementRuleId?: string | undefined;
792
+ aggregation?: {
793
+ rule?: string | undefined;
794
+ } | undefined;
795
+ limit?: {
796
+ value?: number | undefined;
797
+ interval?: {
798
+ type: string;
799
+ value?: number | undefined;
800
+ } | undefined;
801
+ } | undefined;
802
+ uniqueReferee?: boolean | undefined;
803
+ }>, "many">;
804
+ badgeTypeId: z.ZodOptional<z.ZodString>;
805
+ }, "strip", z.ZodTypeAny, {
806
+ translations: Record<string, {
807
+ name: string;
808
+ description?: string | undefined;
809
+ }>;
810
+ rules: {
811
+ completeRule: {
812
+ periodGoal: string | number;
813
+ period?: {
814
+ value?: number | undefined;
815
+ consecutive?: number | undefined;
816
+ } | undefined;
817
+ uniqueAttribute?: string | undefined;
818
+ };
819
+ type?: string | undefined;
820
+ conditions?: Record<string, unknown>[] | undefined;
821
+ translations?: Record<string, {
822
+ name: string;
823
+ description?: string | undefined;
824
+ }> | undefined;
825
+ trigger?: string | undefined;
826
+ event?: string | undefined;
827
+ achievementRuleId?: string | undefined;
828
+ aggregation?: {
829
+ rule?: string | undefined;
830
+ } | undefined;
831
+ limit?: {
832
+ value?: number | undefined;
833
+ interval?: {
834
+ type: string;
835
+ value?: number | undefined;
836
+ } | undefined;
837
+ } | undefined;
838
+ uniqueReferee?: boolean | undefined;
839
+ }[];
840
+ active?: boolean | undefined;
841
+ activity?: {
842
+ data?: string | undefined;
843
+ operator?: string | undefined;
844
+ startsAt?: string | undefined;
845
+ endsAt?: string | undefined;
846
+ } | undefined;
847
+ limit?: {
848
+ value?: number | undefined;
849
+ interval?: {
850
+ type: string;
851
+ value?: number | undefined;
852
+ } | undefined;
853
+ } | undefined;
854
+ badgeTypeId?: string | undefined;
855
+ }, {
856
+ translations: Record<string, {
857
+ name: string;
858
+ description?: string | undefined;
859
+ }>;
860
+ rules: {
861
+ completeRule: {
862
+ periodGoal: string | number;
863
+ period?: {
864
+ value?: number | undefined;
865
+ consecutive?: number | undefined;
866
+ } | undefined;
867
+ uniqueAttribute?: string | undefined;
868
+ };
869
+ type?: string | undefined;
870
+ conditions?: Record<string, unknown>[] | undefined;
871
+ translations?: Record<string, {
872
+ name: string;
873
+ description?: string | undefined;
874
+ }> | undefined;
875
+ trigger?: string | undefined;
876
+ event?: string | undefined;
877
+ achievementRuleId?: string | undefined;
878
+ aggregation?: {
879
+ rule?: string | undefined;
880
+ } | undefined;
881
+ limit?: {
882
+ value?: number | undefined;
883
+ interval?: {
884
+ type: string;
885
+ value?: number | undefined;
886
+ } | undefined;
887
+ } | undefined;
888
+ uniqueReferee?: boolean | undefined;
889
+ }[];
890
+ active?: boolean | undefined;
891
+ activity?: {
892
+ data?: string | undefined;
893
+ operator?: string | undefined;
894
+ startsAt?: string | undefined;
895
+ endsAt?: string | undefined;
896
+ } | undefined;
897
+ limit?: {
898
+ value?: number | undefined;
899
+ interval?: {
900
+ type: string;
901
+ value?: number | undefined;
902
+ } | undefined;
903
+ } | undefined;
904
+ badgeTypeId?: string | undefined;
905
+ }>;
906
+ export type AchievementCreateInput = z.infer<typeof AchievementCreateInputSchema>;
907
+ /**
908
+ * Achievement Rule Progress Schema.
909
+ * Tracks a member's progress on a single rule.
910
+ */
911
+ export declare const AchievementRuleProgressSchema: z.ZodObject<{
912
+ achievementRuleId: z.ZodString;
913
+ periodGoal: z.ZodNumber;
914
+ currentPeriodValue: z.ZodNumber;
915
+ consecutivePeriods: z.ZodOptional<z.ZodNumber>;
916
+ completedConsecutivePeriods: z.ZodOptional<z.ZodNumber>;
917
+ periodType: z.ZodOptional<z.ZodString>;
918
+ type: z.ZodOptional<z.ZodString>;
919
+ trigger: z.ZodOptional<z.ZodString>;
920
+ periodValue: z.ZodOptional<z.ZodNumber>;
921
+ }, "strip", z.ZodTypeAny, {
922
+ periodGoal: number;
923
+ achievementRuleId: string;
924
+ currentPeriodValue: number;
925
+ type?: string | undefined;
926
+ trigger?: string | undefined;
927
+ consecutivePeriods?: number | undefined;
928
+ completedConsecutivePeriods?: number | undefined;
929
+ periodType?: string | undefined;
930
+ periodValue?: number | undefined;
931
+ }, {
932
+ periodGoal: number;
933
+ achievementRuleId: string;
934
+ currentPeriodValue: number;
935
+ type?: string | undefined;
936
+ trigger?: string | undefined;
937
+ consecutivePeriods?: number | undefined;
938
+ completedConsecutivePeriods?: number | undefined;
939
+ periodType?: string | undefined;
940
+ periodValue?: number | undefined;
941
+ }>;
942
+ export type AchievementRuleProgress = z.infer<typeof AchievementRuleProgressSchema>;
943
+ /**
944
+ * Achievement Member Progress Schema.
945
+ * Tracks a member's overall progress on an achievement.
946
+ */
947
+ export declare const AchievementMemberProgressSchema: z.ZodObject<{
948
+ completedCount: z.ZodNumber;
949
+ rules: z.ZodArray<z.ZodObject<{
950
+ achievementRuleId: z.ZodString;
951
+ periodGoal: z.ZodNumber;
952
+ currentPeriodValue: z.ZodNumber;
953
+ consecutivePeriods: z.ZodOptional<z.ZodNumber>;
954
+ completedConsecutivePeriods: z.ZodOptional<z.ZodNumber>;
955
+ periodType: z.ZodOptional<z.ZodString>;
956
+ type: z.ZodOptional<z.ZodString>;
957
+ trigger: z.ZodOptional<z.ZodString>;
958
+ periodValue: z.ZodOptional<z.ZodNumber>;
959
+ }, "strip", z.ZodTypeAny, {
960
+ periodGoal: number;
961
+ achievementRuleId: string;
962
+ currentPeriodValue: number;
963
+ type?: string | undefined;
964
+ trigger?: string | undefined;
965
+ consecutivePeriods?: number | undefined;
966
+ completedConsecutivePeriods?: number | undefined;
967
+ periodType?: string | undefined;
968
+ periodValue?: number | undefined;
969
+ }, {
970
+ periodGoal: number;
971
+ achievementRuleId: string;
972
+ currentPeriodValue: number;
973
+ type?: string | undefined;
974
+ trigger?: string | undefined;
975
+ consecutivePeriods?: number | undefined;
976
+ completedConsecutivePeriods?: number | undefined;
977
+ periodType?: string | undefined;
978
+ periodValue?: number | undefined;
979
+ }>, "many">;
980
+ }, "strip", z.ZodTypeAny, {
981
+ rules: {
982
+ periodGoal: number;
983
+ achievementRuleId: string;
984
+ currentPeriodValue: number;
985
+ type?: string | undefined;
986
+ trigger?: string | undefined;
987
+ consecutivePeriods?: number | undefined;
988
+ completedConsecutivePeriods?: number | undefined;
989
+ periodType?: string | undefined;
990
+ periodValue?: number | undefined;
991
+ }[];
992
+ completedCount: number;
993
+ }, {
994
+ rules: {
995
+ periodGoal: number;
996
+ achievementRuleId: string;
997
+ currentPeriodValue: number;
998
+ type?: string | undefined;
999
+ trigger?: string | undefined;
1000
+ consecutivePeriods?: number | undefined;
1001
+ completedConsecutivePeriods?: number | undefined;
1002
+ periodType?: string | undefined;
1003
+ periodValue?: number | undefined;
1004
+ }[];
1005
+ completedCount: number;
1006
+ }>;
1007
+ export type AchievementMemberProgress = z.infer<typeof AchievementMemberProgressSchema>;
1008
+ /**
1009
+ * Achievement Progress Schema.
1010
+ * Complete progress data for a member's achievement.
1011
+ */
1012
+ export declare const AchievementProgressSchema: z.ZodObject<{
1013
+ achievementId: z.ZodString;
1014
+ achievementName: z.ZodOptional<z.ZodString>;
1015
+ achievementDescription: z.ZodOptional<z.ZodString>;
1016
+ limitReached: z.ZodOptional<z.ZodBoolean>;
1017
+ memberProgress: z.ZodObject<{
1018
+ completedCount: z.ZodNumber;
1019
+ rules: z.ZodArray<z.ZodObject<{
1020
+ achievementRuleId: z.ZodString;
1021
+ periodGoal: z.ZodNumber;
1022
+ currentPeriodValue: z.ZodNumber;
1023
+ consecutivePeriods: z.ZodOptional<z.ZodNumber>;
1024
+ completedConsecutivePeriods: z.ZodOptional<z.ZodNumber>;
1025
+ periodType: z.ZodOptional<z.ZodString>;
1026
+ type: z.ZodOptional<z.ZodString>;
1027
+ trigger: z.ZodOptional<z.ZodString>;
1028
+ periodValue: z.ZodOptional<z.ZodNumber>;
1029
+ }, "strip", z.ZodTypeAny, {
1030
+ periodGoal: number;
1031
+ achievementRuleId: string;
1032
+ currentPeriodValue: number;
1033
+ type?: string | undefined;
1034
+ trigger?: string | undefined;
1035
+ consecutivePeriods?: number | undefined;
1036
+ completedConsecutivePeriods?: number | undefined;
1037
+ periodType?: string | undefined;
1038
+ periodValue?: number | undefined;
1039
+ }, {
1040
+ periodGoal: number;
1041
+ achievementRuleId: string;
1042
+ currentPeriodValue: number;
1043
+ type?: string | undefined;
1044
+ trigger?: string | undefined;
1045
+ consecutivePeriods?: number | undefined;
1046
+ completedConsecutivePeriods?: number | undefined;
1047
+ periodType?: string | undefined;
1048
+ periodValue?: number | undefined;
1049
+ }>, "many">;
1050
+ }, "strip", z.ZodTypeAny, {
1051
+ rules: {
1052
+ periodGoal: number;
1053
+ achievementRuleId: string;
1054
+ currentPeriodValue: number;
1055
+ type?: string | undefined;
1056
+ trigger?: string | undefined;
1057
+ consecutivePeriods?: number | undefined;
1058
+ completedConsecutivePeriods?: number | undefined;
1059
+ periodType?: string | undefined;
1060
+ periodValue?: number | undefined;
1061
+ }[];
1062
+ completedCount: number;
1063
+ }, {
1064
+ rules: {
1065
+ periodGoal: number;
1066
+ achievementRuleId: string;
1067
+ currentPeriodValue: number;
1068
+ type?: string | undefined;
1069
+ trigger?: string | undefined;
1070
+ consecutivePeriods?: number | undefined;
1071
+ completedConsecutivePeriods?: number | undefined;
1072
+ periodType?: string | undefined;
1073
+ periodValue?: number | undefined;
1074
+ }[];
1075
+ completedCount: number;
1076
+ }>;
1077
+ }, "strip", z.ZodTypeAny, {
1078
+ achievementId: string;
1079
+ memberProgress: {
1080
+ rules: {
1081
+ periodGoal: number;
1082
+ achievementRuleId: string;
1083
+ currentPeriodValue: number;
1084
+ type?: string | undefined;
1085
+ trigger?: string | undefined;
1086
+ consecutivePeriods?: number | undefined;
1087
+ completedConsecutivePeriods?: number | undefined;
1088
+ periodType?: string | undefined;
1089
+ periodValue?: number | undefined;
1090
+ }[];
1091
+ completedCount: number;
1092
+ };
1093
+ limitReached?: boolean | undefined;
1094
+ achievementName?: string | undefined;
1095
+ achievementDescription?: string | undefined;
1096
+ }, {
1097
+ achievementId: string;
1098
+ memberProgress: {
1099
+ rules: {
1100
+ periodGoal: number;
1101
+ achievementRuleId: string;
1102
+ currentPeriodValue: number;
1103
+ type?: string | undefined;
1104
+ trigger?: string | undefined;
1105
+ consecutivePeriods?: number | undefined;
1106
+ completedConsecutivePeriods?: number | undefined;
1107
+ periodType?: string | undefined;
1108
+ periodValue?: number | undefined;
1109
+ }[];
1110
+ completedCount: number;
1111
+ };
1112
+ limitReached?: boolean | undefined;
1113
+ achievementName?: string | undefined;
1114
+ achievementDescription?: string | undefined;
1115
+ }>;
1116
+ export type AchievementProgress = z.infer<typeof AchievementProgressSchema>;