@learncard/network-brain-service 4.0.4 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/.env.example +14 -0
  2. package/AGENTS.md +16 -0
  3. package/CHANGELOG.md +54 -0
  4. package/config/config.dev.json +5 -0
  5. package/config/config.example.json +5 -0
  6. package/config/config.production.json +5 -0
  7. package/config/config.scouts.dev.json +5 -0
  8. package/config/config.scouts.production.json +5 -0
  9. package/dist/accesslayer/campaign/audience.d.ts +7 -0
  10. package/dist/accesslayer/campaign/audience.d.ts.map +1 -0
  11. package/dist/accesslayer/campaign/create.d.ts +3 -0
  12. package/dist/accesslayer/campaign/create.d.ts.map +1 -0
  13. package/dist/accesslayer/campaign/delete.d.ts +2 -0
  14. package/dist/accesslayer/campaign/delete.d.ts.map +1 -0
  15. package/dist/accesslayer/campaign/read.d.ts +6 -0
  16. package/dist/accesslayer/campaign/read.d.ts.map +1 -0
  17. package/dist/accesslayer/campaign/shared.d.ts +16 -0
  18. package/dist/accesslayer/campaign/shared.d.ts.map +1 -0
  19. package/dist/accesslayer/campaign/state.d.ts +4 -0
  20. package/dist/accesslayer/campaign/state.d.ts.map +1 -0
  21. package/dist/accesslayer/campaign/update.d.ts +3 -0
  22. package/dist/accesslayer/campaign/update.d.ts.map +1 -0
  23. package/dist/accesslayer/credential-share-previews.d.ts +5 -0
  24. package/dist/accesslayer/credential-share-previews.d.ts.map +1 -0
  25. package/dist/accesslayer/profile/delete.d.ts.map +1 -1
  26. package/dist/accesslayer/skill/read.d.ts +12 -2
  27. package/dist/accesslayer/skill/read.d.ts.map +1 -1
  28. package/dist/accesslayer/skill/update.d.ts +11 -1
  29. package/dist/accesslayer/skill/update.d.ts.map +1 -1
  30. package/dist/app.d.ts +4 -0
  31. package/dist/app.d.ts.map +1 -1
  32. package/dist/cache/app-store.caches.d.ts +2 -1
  33. package/dist/cache/app-store.caches.d.ts.map +1 -1
  34. package/dist/config/environment.d.ts +268 -178
  35. package/dist/config/environment.d.ts.map +1 -1
  36. package/dist/config/skillEmbedding.d.ts +70 -0
  37. package/dist/config/skillEmbedding.d.ts.map +1 -0
  38. package/dist/config/skillEmbedding.neo4j.test.d.ts +2 -0
  39. package/dist/config/skillEmbedding.neo4j.test.d.ts.map +1 -0
  40. package/dist/config/stageConfig.d.ts +20 -0
  41. package/dist/config/stageConfig.d.ts.map +1 -1
  42. package/dist/constants/campaigns.d.ts +3 -0
  43. package/dist/constants/campaigns.d.ts.map +1 -0
  44. package/dist/didkit_wasm_bg.wasm +0 -0
  45. package/dist/helpers/app-credential-delivery.helpers.d.ts +4 -0
  46. package/dist/helpers/app-credential-delivery.helpers.d.ts.map +1 -0
  47. package/dist/helpers/app-credential-delivery.helpers.test.d.ts +2 -0
  48. package/dist/helpers/app-credential-delivery.helpers.test.d.ts.map +1 -0
  49. package/dist/helpers/bedrock-embedding.helpers.d.ts +40 -0
  50. package/dist/helpers/bedrock-embedding.helpers.d.ts.map +1 -0
  51. package/dist/helpers/bedrock-embedding.helpers.test.d.ts +2 -0
  52. package/dist/helpers/bedrock-embedding.helpers.test.d.ts.map +1 -0
  53. package/dist/helpers/bedrock-embedding.smoke.test.d.ts +2 -0
  54. package/dist/helpers/bedrock-embedding.smoke.test.d.ts.map +1 -0
  55. package/dist/helpers/boost.helpers.d.ts.map +1 -1
  56. package/dist/helpers/sentry.helpers.d.ts.map +1 -1
  57. package/dist/helpers/sentry.helpers.test.d.ts +2 -0
  58. package/dist/helpers/sentry.helpers.test.d.ts.map +1 -0
  59. package/dist/helpers/skill-embedding.helpers.d.ts +65 -7
  60. package/dist/helpers/skill-embedding.helpers.d.ts.map +1 -1
  61. package/dist/helpers/skill-embedding.helpers.test.d.ts +2 -0
  62. package/dist/helpers/skill-embedding.helpers.test.d.ts.map +1 -0
  63. package/dist/index.js +2 -2
  64. package/dist/models/Campaign.d.ts +10 -0
  65. package/dist/models/Campaign.d.ts.map +1 -0
  66. package/dist/models/CredentialSharePreview.d.ts +14 -0
  67. package/dist/models/CredentialSharePreview.d.ts.map +1 -0
  68. package/dist/models/Integration.d.ts +1 -1
  69. package/dist/models/Profile.d.ts.map +1 -1
  70. package/dist/models/campaign-constraints.d.ts +2 -0
  71. package/dist/models/campaign-constraints.d.ts.map +1 -0
  72. package/dist/models/index.d.ts +2 -0
  73. package/dist/models/index.d.ts.map +1 -1
  74. package/dist/publish-metafile.json +1 -1
  75. package/dist/routes/app-store.d.ts +1 -1
  76. package/dist/routes/app-store.d.ts.map +1 -1
  77. package/dist/routes/boosts.d.ts +24 -4
  78. package/dist/routes/boosts.d.ts.map +1 -1
  79. package/dist/routes/campaigns.d.ts +1411 -0
  80. package/dist/routes/campaigns.d.ts.map +1 -0
  81. package/dist/routes/contracts.d.ts +19 -6
  82. package/dist/routes/contracts.d.ts.map +1 -1
  83. package/dist/routes/credential-share-previews.d.ts +39 -0
  84. package/dist/routes/credential-share-previews.d.ts.map +1 -0
  85. package/dist/routes/credentials.d.ts +4 -1
  86. package/dist/routes/credentials.d.ts.map +1 -1
  87. package/dist/routes/inbox.d.ts +5 -5
  88. package/dist/routes/index.d.ts +4 -0
  89. package/dist/routes/index.d.ts.map +1 -1
  90. package/dist/routes/integrations.d.ts +3 -3
  91. package/dist/routes/profile-manager.d.ts +4 -0
  92. package/dist/routes/profile-manager.d.ts.map +1 -1
  93. package/dist/routes/profiles.d.ts +44 -0
  94. package/dist/routes/profiles.d.ts.map +1 -1
  95. package/dist/routes/skill-frameworks.d.ts +1 -0
  96. package/dist/routes/skill-frameworks.d.ts.map +1 -1
  97. package/dist/routes/skills-semantic-search.test.d.ts +2 -0
  98. package/dist/routes/skills-semantic-search.test.d.ts.map +1 -0
  99. package/dist/routes/skills.d.ts.map +1 -1
  100. package/dist/routes/test.d.ts +3 -1
  101. package/dist/routes/test.d.ts.map +1 -1
  102. package/dist/seed/seedSkillFrameworks.d.ts +1 -0
  103. package/dist/seed/seedSkillFrameworks.d.ts.map +1 -1
  104. package/dist/seed/seedSkillFrameworks.embeddings.test.d.ts +2 -0
  105. package/dist/seed/seedSkillFrameworks.embeddings.test.d.ts.map +1 -0
  106. package/dist/types/app-manifest.d.ts +2 -2
  107. package/dist/types/campaign.d.ts +19 -0
  108. package/dist/types/campaign.d.ts.map +1 -0
  109. package/dist/types/consentflowcontract.d.ts +1 -1
  110. package/dist/types/integration.d.ts +3 -3
  111. package/dist/types/profile.d.ts +9 -0
  112. package/dist/types/profile.d.ts.map +1 -1
  113. package/dist/types/skill.d.ts.map +1 -1
  114. package/package.json +21 -18
  115. package/project.json +15 -1
  116. package/scripts/skill-embeddings-backfill.ts +161 -0
  117. package/serverless-local.yml +4 -0
  118. package/serverless.function-env.cjs +3 -0
  119. package/serverless.local.yml +4 -0
  120. package/serverless.yml +12 -1
  121. package/src/accesslayer/campaign/README.md +174 -0
  122. package/src/accesslayer/campaign/audience.ts +152 -0
  123. package/src/accesslayer/campaign/create.ts +47 -0
  124. package/src/accesslayer/campaign/delete.ts +18 -0
  125. package/src/accesslayer/campaign/read.ts +125 -0
  126. package/src/accesslayer/campaign/shared.ts +92 -0
  127. package/src/accesslayer/campaign/state.ts +80 -0
  128. package/src/accesslayer/campaign/update.ts +50 -0
  129. package/src/accesslayer/credential-share-previews.ts +76 -0
  130. package/src/accesslayer/profile/delete.ts +6 -0
  131. package/src/accesslayer/skill/read.ts +56 -16
  132. package/src/accesslayer/skill/update.ts +43 -1
  133. package/src/app.ts +9 -0
  134. package/src/config/environment.test.ts +208 -0
  135. package/src/config/environment.ts +166 -11
  136. package/src/config/skillEmbedding.neo4j.test.ts +138 -0
  137. package/src/config/skillEmbedding.ts +202 -0
  138. package/src/constants/campaigns.ts +9 -0
  139. package/src/helpers/activity.helpers.ts +3 -3
  140. package/src/helpers/app-credential-delivery.helpers.test.ts +56 -0
  141. package/src/helpers/app-credential-delivery.helpers.ts +11 -0
  142. package/src/helpers/bedrock-embedding.helpers.test.ts +208 -0
  143. package/src/helpers/bedrock-embedding.helpers.ts +243 -0
  144. package/src/helpers/bedrock-embedding.smoke.test.ts +53 -0
  145. package/src/helpers/boost-storage.helpers.test.ts +63 -0
  146. package/src/helpers/boost.helpers.ts +23 -18
  147. package/src/helpers/sentry.helpers.test.ts +56 -0
  148. package/src/helpers/sentry.helpers.ts +4 -3
  149. package/src/helpers/skill-embedding.helpers.test.ts +1044 -0
  150. package/src/helpers/skill-embedding.helpers.ts +611 -123
  151. package/src/models/Campaign.ts +32 -0
  152. package/src/models/CredentialSharePreview.ts +30 -0
  153. package/src/models/Profile.ts +1 -0
  154. package/src/models/campaign-constraints.ts +22 -0
  155. package/src/models/index.ts +29 -1
  156. package/src/routes/app-store.ts +9 -16
  157. package/src/routes/campaigns.ts +179 -0
  158. package/src/routes/credential-share-previews.ts +74 -0
  159. package/src/routes/profiles.ts +7 -0
  160. package/src/routes/skills-semantic-search.test.ts +168 -0
  161. package/src/routes/skills.ts +42 -6
  162. package/src/seed/seedSkillFrameworks.embeddings.test.ts +82 -0
  163. package/src/seed/seedSkillFrameworks.test.ts +6 -0
  164. package/src/seed/seedSkillFrameworks.ts +83 -18
  165. package/src/types/campaign.ts +17 -0
  166. package/src/types/skill.ts +6 -0
  167. package/test/app-credential-delivery.neo4j.spec.ts +110 -0
  168. package/test/campaigns.spec.ts +789 -0
  169. package/test/credential-share-previews.spec.ts +97 -0
  170. package/test/verification/campaigns.ts +49 -0
  171. package/tsconfig.json +13 -13
  172. package/vitest.campaigns.config.ts +21 -0
  173. package/vitest.config.ts +12 -0
  174. package/vitest.inbox-e2e.config.ts +1 -0
  175. package/vitest.integration.config.ts +1 -0
@@ -0,0 +1,1411 @@
1
+ export declare const campaignsRouter: import("@trpc/server").TRPCBuiltRouter<{
2
+ ctx: import(".././routes/index").Context;
3
+ meta: import(".././routes/index").RouteMetadata;
4
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
5
+ transformer: true;
6
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
7
+ isAdmin: import("@trpc/server").TRPCQueryProcedure<{
8
+ input: Record<string, never> | undefined;
9
+ output: boolean;
10
+ meta: import(".././routes/index").RouteMetadata;
11
+ }>;
12
+ create: import("@trpc/server").TRPCMutationProcedure<{
13
+ input: {
14
+ id: string;
15
+ name: string;
16
+ channels: ("inApp" | "notify")[];
17
+ message: {
18
+ [x: string]: unknown;
19
+ title: string;
20
+ id?: string | undefined;
21
+ priority?: number | undefined;
22
+ dismissible?: boolean | undefined;
23
+ frequency?: "session" | "once" | "always" | {
24
+ everyDays: number;
25
+ } | undefined;
26
+ presentation?: "iframe" | "modal" | "banner" | "toast" | "story" | undefined;
27
+ media?: {
28
+ [x: string]: unknown;
29
+ type: "image" | "youtube" | "gif";
30
+ url: string;
31
+ aspect?: string | undefined;
32
+ alt?: string | undefined;
33
+ } | undefined;
34
+ emoji?: string | undefined;
35
+ body?: string | undefined;
36
+ actions?: {
37
+ [x: string]: unknown;
38
+ label: string;
39
+ action: {
40
+ [x: string]: unknown;
41
+ type: "internalLink";
42
+ path: string;
43
+ } | {
44
+ [x: string]: unknown;
45
+ type: "externalLink";
46
+ url: string;
47
+ } | {
48
+ [x: string]: unknown;
49
+ type: "appStore";
50
+ iosUrl?: string | undefined;
51
+ androidUrl?: string | undefined;
52
+ webUrl?: string | undefined;
53
+ } | {
54
+ [x: string]: unknown;
55
+ type: "capgoUpdate";
56
+ } | {
57
+ [x: string]: unknown;
58
+ type: "dismiss";
59
+ } | {
60
+ [x: string]: unknown;
61
+ type: "openApp";
62
+ listingId: string;
63
+ path?: string | undefined;
64
+ } | {
65
+ [x: string]: unknown;
66
+ type: "openMessage";
67
+ messageId: string;
68
+ };
69
+ style?: "primary" | "secondary" | "positive" | "dismiss" | undefined;
70
+ closeOnComplete?: boolean | undefined;
71
+ }[] | undefined;
72
+ steps?: {
73
+ [x: string]: unknown;
74
+ title: string;
75
+ body?: string | undefined;
76
+ media?: {
77
+ [x: string]: unknown;
78
+ type: "image" | "youtube" | "gif";
79
+ url: string;
80
+ aspect?: string | undefined;
81
+ alt?: string | undefined;
82
+ } | undefined;
83
+ emoji?: string | undefined;
84
+ actions?: {
85
+ [x: string]: unknown;
86
+ label: string;
87
+ action: {
88
+ [x: string]: unknown;
89
+ type: "internalLink";
90
+ path: string;
91
+ } | {
92
+ [x: string]: unknown;
93
+ type: "externalLink";
94
+ url: string;
95
+ } | {
96
+ [x: string]: unknown;
97
+ type: "appStore";
98
+ iosUrl?: string | undefined;
99
+ androidUrl?: string | undefined;
100
+ webUrl?: string | undefined;
101
+ } | {
102
+ [x: string]: unknown;
103
+ type: "capgoUpdate";
104
+ } | {
105
+ [x: string]: unknown;
106
+ type: "dismiss";
107
+ } | {
108
+ [x: string]: unknown;
109
+ type: "openApp";
110
+ listingId: string;
111
+ path?: string | undefined;
112
+ } | {
113
+ [x: string]: unknown;
114
+ type: "openMessage";
115
+ messageId: string;
116
+ };
117
+ style?: "primary" | "secondary" | "positive" | "dismiss" | undefined;
118
+ closeOnComplete?: boolean | undefined;
119
+ }[] | undefined;
120
+ }[] | undefined;
121
+ iframe?: {
122
+ [x: string]: unknown;
123
+ url: string;
124
+ title?: string | undefined;
125
+ loadTimeoutMs?: number | undefined;
126
+ allowedInternalPaths?: string[] | undefined;
127
+ } | undefined;
128
+ locales?: Record<string, {
129
+ [x: string]: unknown;
130
+ title?: string | undefined;
131
+ body?: string | undefined;
132
+ actionLabels?: (string | null)[] | undefined;
133
+ steps?: ({
134
+ [x: string]: unknown;
135
+ title?: string | undefined;
136
+ body?: string | undefined;
137
+ actionLabels?: (string | null)[] | undefined;
138
+ } | null)[] | undefined;
139
+ iframeUrl?: string | undefined;
140
+ }> | undefined;
141
+ targeting?: unknown;
142
+ enabled?: boolean | undefined;
143
+ trigger?: {
144
+ event: "credential.claimed" | "app.opened";
145
+ where?: {
146
+ issuers?: string[] | undefined;
147
+ nestedIssuers?: string[] | undefined;
148
+ vcTypes?: string[] | undefined;
149
+ categories?: string[] | undefined;
150
+ achievementTypes?: string[] | undefined;
151
+ issuedWithinDays?: number | undefined;
152
+ } | undefined;
153
+ windowMinutes?: number | undefined;
154
+ } | undefined;
155
+ bypassFatigue?: boolean | undefined;
156
+ };
157
+ status?: "live" | "archived" | "draft" | "paused" | undefined;
158
+ notification?: {
159
+ title: string;
160
+ body: string;
161
+ } | undefined;
162
+ startsAt?: string | undefined;
163
+ endsAt?: string | undefined;
164
+ excludeMinors?: boolean | undefined;
165
+ selfEnroll?: boolean | undefined;
166
+ };
167
+ output: {
168
+ id: string;
169
+ name: string;
170
+ status: "live" | "archived" | "draft" | "paused";
171
+ channels: ("inApp" | "notify")[];
172
+ message: {
173
+ [x: string]: unknown;
174
+ priority: number;
175
+ dismissible: boolean;
176
+ frequency: "session" | "once" | "always" | {
177
+ everyDays: number;
178
+ };
179
+ presentation: "iframe" | "modal" | "banner" | "toast" | "story";
180
+ title: string;
181
+ actions: {
182
+ [x: string]: unknown;
183
+ label: string;
184
+ style: "primary" | "secondary" | "positive" | "dismiss";
185
+ action: {
186
+ [x: string]: unknown;
187
+ type: "internalLink";
188
+ path: string;
189
+ } | {
190
+ [x: string]: unknown;
191
+ type: "externalLink";
192
+ url: string;
193
+ } | {
194
+ [x: string]: unknown;
195
+ type: "appStore";
196
+ iosUrl?: string | undefined;
197
+ androidUrl?: string | undefined;
198
+ webUrl?: string | undefined;
199
+ } | {
200
+ [x: string]: unknown;
201
+ type: "capgoUpdate";
202
+ } | {
203
+ [x: string]: unknown;
204
+ type: "dismiss";
205
+ } | {
206
+ [x: string]: unknown;
207
+ type: "openApp";
208
+ listingId: string;
209
+ path?: string | undefined;
210
+ } | {
211
+ [x: string]: unknown;
212
+ type: "openMessage";
213
+ messageId: string;
214
+ };
215
+ closeOnComplete: boolean;
216
+ }[];
217
+ enabled: boolean;
218
+ bypassFatigue: boolean;
219
+ id: string;
220
+ media?: {
221
+ [x: string]: unknown;
222
+ type: "image" | "youtube" | "gif";
223
+ url: string;
224
+ aspect: string;
225
+ alt?: string | undefined;
226
+ } | undefined;
227
+ emoji?: string | undefined;
228
+ body?: string | undefined;
229
+ steps?: {
230
+ [x: string]: unknown;
231
+ title: string;
232
+ body?: string | undefined;
233
+ media?: {
234
+ [x: string]: unknown;
235
+ type: "image" | "youtube" | "gif";
236
+ url: string;
237
+ aspect: string;
238
+ alt?: string | undefined;
239
+ } | undefined;
240
+ emoji?: string | undefined;
241
+ actions?: {
242
+ [x: string]: unknown;
243
+ label: string;
244
+ style: "primary" | "secondary" | "positive" | "dismiss";
245
+ action: {
246
+ [x: string]: unknown;
247
+ type: "internalLink";
248
+ path: string;
249
+ } | {
250
+ [x: string]: unknown;
251
+ type: "externalLink";
252
+ url: string;
253
+ } | {
254
+ [x: string]: unknown;
255
+ type: "appStore";
256
+ iosUrl?: string | undefined;
257
+ androidUrl?: string | undefined;
258
+ webUrl?: string | undefined;
259
+ } | {
260
+ [x: string]: unknown;
261
+ type: "capgoUpdate";
262
+ } | {
263
+ [x: string]: unknown;
264
+ type: "dismiss";
265
+ } | {
266
+ [x: string]: unknown;
267
+ type: "openApp";
268
+ listingId: string;
269
+ path?: string | undefined;
270
+ } | {
271
+ [x: string]: unknown;
272
+ type: "openMessage";
273
+ messageId: string;
274
+ };
275
+ closeOnComplete: boolean;
276
+ }[] | undefined;
277
+ }[] | undefined;
278
+ iframe?: {
279
+ [x: string]: unknown;
280
+ url: string;
281
+ loadTimeoutMs: number;
282
+ allowedInternalPaths: string[];
283
+ title?: string | undefined;
284
+ } | undefined;
285
+ locales?: Record<string, {
286
+ [x: string]: unknown;
287
+ title?: string | undefined;
288
+ body?: string | undefined;
289
+ actionLabels?: (string | null)[] | undefined;
290
+ steps?: ({
291
+ [x: string]: unknown;
292
+ title?: string | undefined;
293
+ body?: string | undefined;
294
+ actionLabels?: (string | null)[] | undefined;
295
+ } | null)[] | undefined;
296
+ iframeUrl?: string | undefined;
297
+ }> | undefined;
298
+ targeting?: import("@learncard/types").InAppMessagePredicate | undefined;
299
+ trigger?: {
300
+ event: "credential.claimed" | "app.opened";
301
+ windowMinutes: number;
302
+ where?: {
303
+ issuers?: string[] | undefined;
304
+ nestedIssuers?: string[] | undefined;
305
+ vcTypes?: string[] | undefined;
306
+ categories?: string[] | undefined;
307
+ achievementTypes?: string[] | undefined;
308
+ issuedWithinDays?: number | undefined;
309
+ } | undefined;
310
+ } | undefined;
311
+ };
312
+ excludeMinors: boolean;
313
+ selfEnroll: boolean;
314
+ createdAt: string;
315
+ updatedAt: string;
316
+ notification?: {
317
+ title: string;
318
+ body: string;
319
+ } | undefined;
320
+ startsAt?: string | undefined;
321
+ endsAt?: string | undefined;
322
+ };
323
+ meta: import(".././routes/index").RouteMetadata;
324
+ }>;
325
+ update: import("@trpc/server").TRPCMutationProcedure<{
326
+ input: {
327
+ campaignId: string;
328
+ updates: {
329
+ name?: string | undefined;
330
+ channels?: ("inApp" | "notify")[] | undefined;
331
+ status?: "live" | "archived" | "draft" | "paused" | undefined;
332
+ excludeMinors?: boolean | undefined;
333
+ selfEnroll?: boolean | undefined;
334
+ message?: {
335
+ [x: string]: unknown;
336
+ title: string;
337
+ id?: string | undefined;
338
+ priority?: number | undefined;
339
+ dismissible?: boolean | undefined;
340
+ frequency?: "session" | "once" | "always" | {
341
+ everyDays: number;
342
+ } | undefined;
343
+ presentation?: "iframe" | "modal" | "banner" | "toast" | "story" | undefined;
344
+ media?: {
345
+ [x: string]: unknown;
346
+ type: "image" | "youtube" | "gif";
347
+ url: string;
348
+ aspect?: string | undefined;
349
+ alt?: string | undefined;
350
+ } | undefined;
351
+ emoji?: string | undefined;
352
+ body?: string | undefined;
353
+ actions?: {
354
+ [x: string]: unknown;
355
+ label: string;
356
+ action: {
357
+ [x: string]: unknown;
358
+ type: "internalLink";
359
+ path: string;
360
+ } | {
361
+ [x: string]: unknown;
362
+ type: "externalLink";
363
+ url: string;
364
+ } | {
365
+ [x: string]: unknown;
366
+ type: "appStore";
367
+ iosUrl?: string | undefined;
368
+ androidUrl?: string | undefined;
369
+ webUrl?: string | undefined;
370
+ } | {
371
+ [x: string]: unknown;
372
+ type: "capgoUpdate";
373
+ } | {
374
+ [x: string]: unknown;
375
+ type: "dismiss";
376
+ } | {
377
+ [x: string]: unknown;
378
+ type: "openApp";
379
+ listingId: string;
380
+ path?: string | undefined;
381
+ } | {
382
+ [x: string]: unknown;
383
+ type: "openMessage";
384
+ messageId: string;
385
+ };
386
+ style?: "primary" | "secondary" | "positive" | "dismiss" | undefined;
387
+ closeOnComplete?: boolean | undefined;
388
+ }[] | undefined;
389
+ steps?: {
390
+ [x: string]: unknown;
391
+ title: string;
392
+ body?: string | undefined;
393
+ media?: {
394
+ [x: string]: unknown;
395
+ type: "image" | "youtube" | "gif";
396
+ url: string;
397
+ aspect?: string | undefined;
398
+ alt?: string | undefined;
399
+ } | undefined;
400
+ emoji?: string | undefined;
401
+ actions?: {
402
+ [x: string]: unknown;
403
+ label: string;
404
+ action: {
405
+ [x: string]: unknown;
406
+ type: "internalLink";
407
+ path: string;
408
+ } | {
409
+ [x: string]: unknown;
410
+ type: "externalLink";
411
+ url: string;
412
+ } | {
413
+ [x: string]: unknown;
414
+ type: "appStore";
415
+ iosUrl?: string | undefined;
416
+ androidUrl?: string | undefined;
417
+ webUrl?: string | undefined;
418
+ } | {
419
+ [x: string]: unknown;
420
+ type: "capgoUpdate";
421
+ } | {
422
+ [x: string]: unknown;
423
+ type: "dismiss";
424
+ } | {
425
+ [x: string]: unknown;
426
+ type: "openApp";
427
+ listingId: string;
428
+ path?: string | undefined;
429
+ } | {
430
+ [x: string]: unknown;
431
+ type: "openMessage";
432
+ messageId: string;
433
+ };
434
+ style?: "primary" | "secondary" | "positive" | "dismiss" | undefined;
435
+ closeOnComplete?: boolean | undefined;
436
+ }[] | undefined;
437
+ }[] | undefined;
438
+ iframe?: {
439
+ [x: string]: unknown;
440
+ url: string;
441
+ title?: string | undefined;
442
+ loadTimeoutMs?: number | undefined;
443
+ allowedInternalPaths?: string[] | undefined;
444
+ } | undefined;
445
+ locales?: Record<string, {
446
+ [x: string]: unknown;
447
+ title?: string | undefined;
448
+ body?: string | undefined;
449
+ actionLabels?: (string | null)[] | undefined;
450
+ steps?: ({
451
+ [x: string]: unknown;
452
+ title?: string | undefined;
453
+ body?: string | undefined;
454
+ actionLabels?: (string | null)[] | undefined;
455
+ } | null)[] | undefined;
456
+ iframeUrl?: string | undefined;
457
+ }> | undefined;
458
+ targeting?: unknown;
459
+ enabled?: boolean | undefined;
460
+ trigger?: {
461
+ event: "credential.claimed" | "app.opened";
462
+ where?: {
463
+ issuers?: string[] | undefined;
464
+ nestedIssuers?: string[] | undefined;
465
+ vcTypes?: string[] | undefined;
466
+ categories?: string[] | undefined;
467
+ achievementTypes?: string[] | undefined;
468
+ issuedWithinDays?: number | undefined;
469
+ } | undefined;
470
+ windowMinutes?: number | undefined;
471
+ } | undefined;
472
+ bypassFatigue?: boolean | undefined;
473
+ } | undefined;
474
+ notification?: {
475
+ title: string;
476
+ body: string;
477
+ } | null | undefined;
478
+ startsAt?: string | null | undefined;
479
+ endsAt?: string | null | undefined;
480
+ };
481
+ };
482
+ output: {
483
+ id: string;
484
+ name: string;
485
+ status: "live" | "archived" | "draft" | "paused";
486
+ channels: ("inApp" | "notify")[];
487
+ message: {
488
+ [x: string]: unknown;
489
+ priority: number;
490
+ dismissible: boolean;
491
+ frequency: "session" | "once" | "always" | {
492
+ everyDays: number;
493
+ };
494
+ presentation: "iframe" | "modal" | "banner" | "toast" | "story";
495
+ title: string;
496
+ actions: {
497
+ [x: string]: unknown;
498
+ label: string;
499
+ style: "primary" | "secondary" | "positive" | "dismiss";
500
+ action: {
501
+ [x: string]: unknown;
502
+ type: "internalLink";
503
+ path: string;
504
+ } | {
505
+ [x: string]: unknown;
506
+ type: "externalLink";
507
+ url: string;
508
+ } | {
509
+ [x: string]: unknown;
510
+ type: "appStore";
511
+ iosUrl?: string | undefined;
512
+ androidUrl?: string | undefined;
513
+ webUrl?: string | undefined;
514
+ } | {
515
+ [x: string]: unknown;
516
+ type: "capgoUpdate";
517
+ } | {
518
+ [x: string]: unknown;
519
+ type: "dismiss";
520
+ } | {
521
+ [x: string]: unknown;
522
+ type: "openApp";
523
+ listingId: string;
524
+ path?: string | undefined;
525
+ } | {
526
+ [x: string]: unknown;
527
+ type: "openMessage";
528
+ messageId: string;
529
+ };
530
+ closeOnComplete: boolean;
531
+ }[];
532
+ enabled: boolean;
533
+ bypassFatigue: boolean;
534
+ id: string;
535
+ media?: {
536
+ [x: string]: unknown;
537
+ type: "image" | "youtube" | "gif";
538
+ url: string;
539
+ aspect: string;
540
+ alt?: string | undefined;
541
+ } | undefined;
542
+ emoji?: string | undefined;
543
+ body?: string | undefined;
544
+ steps?: {
545
+ [x: string]: unknown;
546
+ title: string;
547
+ body?: string | undefined;
548
+ media?: {
549
+ [x: string]: unknown;
550
+ type: "image" | "youtube" | "gif";
551
+ url: string;
552
+ aspect: string;
553
+ alt?: string | undefined;
554
+ } | undefined;
555
+ emoji?: string | undefined;
556
+ actions?: {
557
+ [x: string]: unknown;
558
+ label: string;
559
+ style: "primary" | "secondary" | "positive" | "dismiss";
560
+ action: {
561
+ [x: string]: unknown;
562
+ type: "internalLink";
563
+ path: string;
564
+ } | {
565
+ [x: string]: unknown;
566
+ type: "externalLink";
567
+ url: string;
568
+ } | {
569
+ [x: string]: unknown;
570
+ type: "appStore";
571
+ iosUrl?: string | undefined;
572
+ androidUrl?: string | undefined;
573
+ webUrl?: string | undefined;
574
+ } | {
575
+ [x: string]: unknown;
576
+ type: "capgoUpdate";
577
+ } | {
578
+ [x: string]: unknown;
579
+ type: "dismiss";
580
+ } | {
581
+ [x: string]: unknown;
582
+ type: "openApp";
583
+ listingId: string;
584
+ path?: string | undefined;
585
+ } | {
586
+ [x: string]: unknown;
587
+ type: "openMessage";
588
+ messageId: string;
589
+ };
590
+ closeOnComplete: boolean;
591
+ }[] | undefined;
592
+ }[] | undefined;
593
+ iframe?: {
594
+ [x: string]: unknown;
595
+ url: string;
596
+ loadTimeoutMs: number;
597
+ allowedInternalPaths: string[];
598
+ title?: string | undefined;
599
+ } | undefined;
600
+ locales?: Record<string, {
601
+ [x: string]: unknown;
602
+ title?: string | undefined;
603
+ body?: string | undefined;
604
+ actionLabels?: (string | null)[] | undefined;
605
+ steps?: ({
606
+ [x: string]: unknown;
607
+ title?: string | undefined;
608
+ body?: string | undefined;
609
+ actionLabels?: (string | null)[] | undefined;
610
+ } | null)[] | undefined;
611
+ iframeUrl?: string | undefined;
612
+ }> | undefined;
613
+ targeting?: import("@learncard/types").InAppMessagePredicate | undefined;
614
+ trigger?: {
615
+ event: "credential.claimed" | "app.opened";
616
+ windowMinutes: number;
617
+ where?: {
618
+ issuers?: string[] | undefined;
619
+ nestedIssuers?: string[] | undefined;
620
+ vcTypes?: string[] | undefined;
621
+ categories?: string[] | undefined;
622
+ achievementTypes?: string[] | undefined;
623
+ issuedWithinDays?: number | undefined;
624
+ } | undefined;
625
+ } | undefined;
626
+ };
627
+ excludeMinors: boolean;
628
+ selfEnroll: boolean;
629
+ createdAt: string;
630
+ updatedAt: string;
631
+ notification?: {
632
+ title: string;
633
+ body: string;
634
+ } | undefined;
635
+ startsAt?: string | undefined;
636
+ endsAt?: string | undefined;
637
+ };
638
+ meta: import(".././routes/index").RouteMetadata;
639
+ }>;
640
+ get: import("@trpc/server").TRPCQueryProcedure<{
641
+ input: {
642
+ campaignId: string;
643
+ };
644
+ output: {
645
+ id: string;
646
+ name: string;
647
+ status: "live" | "archived" | "draft" | "paused";
648
+ channels: ("inApp" | "notify")[];
649
+ message: {
650
+ [x: string]: unknown;
651
+ priority: number;
652
+ dismissible: boolean;
653
+ frequency: "session" | "once" | "always" | {
654
+ everyDays: number;
655
+ };
656
+ presentation: "iframe" | "modal" | "banner" | "toast" | "story";
657
+ title: string;
658
+ actions: {
659
+ [x: string]: unknown;
660
+ label: string;
661
+ style: "primary" | "secondary" | "positive" | "dismiss";
662
+ action: {
663
+ [x: string]: unknown;
664
+ type: "internalLink";
665
+ path: string;
666
+ } | {
667
+ [x: string]: unknown;
668
+ type: "externalLink";
669
+ url: string;
670
+ } | {
671
+ [x: string]: unknown;
672
+ type: "appStore";
673
+ iosUrl?: string | undefined;
674
+ androidUrl?: string | undefined;
675
+ webUrl?: string | undefined;
676
+ } | {
677
+ [x: string]: unknown;
678
+ type: "capgoUpdate";
679
+ } | {
680
+ [x: string]: unknown;
681
+ type: "dismiss";
682
+ } | {
683
+ [x: string]: unknown;
684
+ type: "openApp";
685
+ listingId: string;
686
+ path?: string | undefined;
687
+ } | {
688
+ [x: string]: unknown;
689
+ type: "openMessage";
690
+ messageId: string;
691
+ };
692
+ closeOnComplete: boolean;
693
+ }[];
694
+ enabled: boolean;
695
+ bypassFatigue: boolean;
696
+ id: string;
697
+ media?: {
698
+ [x: string]: unknown;
699
+ type: "image" | "youtube" | "gif";
700
+ url: string;
701
+ aspect: string;
702
+ alt?: string | undefined;
703
+ } | undefined;
704
+ emoji?: string | undefined;
705
+ body?: string | undefined;
706
+ steps?: {
707
+ [x: string]: unknown;
708
+ title: string;
709
+ body?: string | undefined;
710
+ media?: {
711
+ [x: string]: unknown;
712
+ type: "image" | "youtube" | "gif";
713
+ url: string;
714
+ aspect: string;
715
+ alt?: string | undefined;
716
+ } | undefined;
717
+ emoji?: string | undefined;
718
+ actions?: {
719
+ [x: string]: unknown;
720
+ label: string;
721
+ style: "primary" | "secondary" | "positive" | "dismiss";
722
+ action: {
723
+ [x: string]: unknown;
724
+ type: "internalLink";
725
+ path: string;
726
+ } | {
727
+ [x: string]: unknown;
728
+ type: "externalLink";
729
+ url: string;
730
+ } | {
731
+ [x: string]: unknown;
732
+ type: "appStore";
733
+ iosUrl?: string | undefined;
734
+ androidUrl?: string | undefined;
735
+ webUrl?: string | undefined;
736
+ } | {
737
+ [x: string]: unknown;
738
+ type: "capgoUpdate";
739
+ } | {
740
+ [x: string]: unknown;
741
+ type: "dismiss";
742
+ } | {
743
+ [x: string]: unknown;
744
+ type: "openApp";
745
+ listingId: string;
746
+ path?: string | undefined;
747
+ } | {
748
+ [x: string]: unknown;
749
+ type: "openMessage";
750
+ messageId: string;
751
+ };
752
+ closeOnComplete: boolean;
753
+ }[] | undefined;
754
+ }[] | undefined;
755
+ iframe?: {
756
+ [x: string]: unknown;
757
+ url: string;
758
+ loadTimeoutMs: number;
759
+ allowedInternalPaths: string[];
760
+ title?: string | undefined;
761
+ } | undefined;
762
+ locales?: Record<string, {
763
+ [x: string]: unknown;
764
+ title?: string | undefined;
765
+ body?: string | undefined;
766
+ actionLabels?: (string | null)[] | undefined;
767
+ steps?: ({
768
+ [x: string]: unknown;
769
+ title?: string | undefined;
770
+ body?: string | undefined;
771
+ actionLabels?: (string | null)[] | undefined;
772
+ } | null)[] | undefined;
773
+ iframeUrl?: string | undefined;
774
+ }> | undefined;
775
+ targeting?: import("@learncard/types").InAppMessagePredicate | undefined;
776
+ trigger?: {
777
+ event: "credential.claimed" | "app.opened";
778
+ windowMinutes: number;
779
+ where?: {
780
+ issuers?: string[] | undefined;
781
+ nestedIssuers?: string[] | undefined;
782
+ vcTypes?: string[] | undefined;
783
+ categories?: string[] | undefined;
784
+ achievementTypes?: string[] | undefined;
785
+ issuedWithinDays?: number | undefined;
786
+ } | undefined;
787
+ } | undefined;
788
+ };
789
+ excludeMinors: boolean;
790
+ selfEnroll: boolean;
791
+ createdAt: string;
792
+ updatedAt: string;
793
+ notification?: {
794
+ title: string;
795
+ body: string;
796
+ } | undefined;
797
+ startsAt?: string | undefined;
798
+ endsAt?: string | undefined;
799
+ };
800
+ meta: import(".././routes/index").RouteMetadata;
801
+ }>;
802
+ list: import("@trpc/server").TRPCQueryProcedure<{
803
+ input: {
804
+ cursor?: string | undefined;
805
+ limit?: number | undefined;
806
+ status?: "live" | "archived" | "draft" | "paused" | undefined;
807
+ } | undefined;
808
+ output: {
809
+ records: {
810
+ id: string;
811
+ name: string;
812
+ status: "live" | "archived" | "draft" | "paused";
813
+ channels: ("inApp" | "notify")[];
814
+ message: {
815
+ [x: string]: unknown;
816
+ priority: number;
817
+ dismissible: boolean;
818
+ frequency: "session" | "once" | "always" | {
819
+ everyDays: number;
820
+ };
821
+ presentation: "iframe" | "modal" | "banner" | "toast" | "story";
822
+ title: string;
823
+ actions: {
824
+ [x: string]: unknown;
825
+ label: string;
826
+ style: "primary" | "secondary" | "positive" | "dismiss";
827
+ action: {
828
+ [x: string]: unknown;
829
+ type: "internalLink";
830
+ path: string;
831
+ } | {
832
+ [x: string]: unknown;
833
+ type: "externalLink";
834
+ url: string;
835
+ } | {
836
+ [x: string]: unknown;
837
+ type: "appStore";
838
+ iosUrl?: string | undefined;
839
+ androidUrl?: string | undefined;
840
+ webUrl?: string | undefined;
841
+ } | {
842
+ [x: string]: unknown;
843
+ type: "capgoUpdate";
844
+ } | {
845
+ [x: string]: unknown;
846
+ type: "dismiss";
847
+ } | {
848
+ [x: string]: unknown;
849
+ type: "openApp";
850
+ listingId: string;
851
+ path?: string | undefined;
852
+ } | {
853
+ [x: string]: unknown;
854
+ type: "openMessage";
855
+ messageId: string;
856
+ };
857
+ closeOnComplete: boolean;
858
+ }[];
859
+ enabled: boolean;
860
+ bypassFatigue: boolean;
861
+ id: string;
862
+ media?: {
863
+ [x: string]: unknown;
864
+ type: "image" | "youtube" | "gif";
865
+ url: string;
866
+ aspect: string;
867
+ alt?: string | undefined;
868
+ } | undefined;
869
+ emoji?: string | undefined;
870
+ body?: string | undefined;
871
+ steps?: {
872
+ [x: string]: unknown;
873
+ title: string;
874
+ body?: string | undefined;
875
+ media?: {
876
+ [x: string]: unknown;
877
+ type: "image" | "youtube" | "gif";
878
+ url: string;
879
+ aspect: string;
880
+ alt?: string | undefined;
881
+ } | undefined;
882
+ emoji?: string | undefined;
883
+ actions?: {
884
+ [x: string]: unknown;
885
+ label: string;
886
+ style: "primary" | "secondary" | "positive" | "dismiss";
887
+ action: {
888
+ [x: string]: unknown;
889
+ type: "internalLink";
890
+ path: string;
891
+ } | {
892
+ [x: string]: unknown;
893
+ type: "externalLink";
894
+ url: string;
895
+ } | {
896
+ [x: string]: unknown;
897
+ type: "appStore";
898
+ iosUrl?: string | undefined;
899
+ androidUrl?: string | undefined;
900
+ webUrl?: string | undefined;
901
+ } | {
902
+ [x: string]: unknown;
903
+ type: "capgoUpdate";
904
+ } | {
905
+ [x: string]: unknown;
906
+ type: "dismiss";
907
+ } | {
908
+ [x: string]: unknown;
909
+ type: "openApp";
910
+ listingId: string;
911
+ path?: string | undefined;
912
+ } | {
913
+ [x: string]: unknown;
914
+ type: "openMessage";
915
+ messageId: string;
916
+ };
917
+ closeOnComplete: boolean;
918
+ }[] | undefined;
919
+ }[] | undefined;
920
+ iframe?: {
921
+ [x: string]: unknown;
922
+ url: string;
923
+ loadTimeoutMs: number;
924
+ allowedInternalPaths: string[];
925
+ title?: string | undefined;
926
+ } | undefined;
927
+ locales?: Record<string, {
928
+ [x: string]: unknown;
929
+ title?: string | undefined;
930
+ body?: string | undefined;
931
+ actionLabels?: (string | null)[] | undefined;
932
+ steps?: ({
933
+ [x: string]: unknown;
934
+ title?: string | undefined;
935
+ body?: string | undefined;
936
+ actionLabels?: (string | null)[] | undefined;
937
+ } | null)[] | undefined;
938
+ iframeUrl?: string | undefined;
939
+ }> | undefined;
940
+ targeting?: import("@learncard/types").InAppMessagePredicate | undefined;
941
+ trigger?: {
942
+ event: "credential.claimed" | "app.opened";
943
+ windowMinutes: number;
944
+ where?: {
945
+ issuers?: string[] | undefined;
946
+ nestedIssuers?: string[] | undefined;
947
+ vcTypes?: string[] | undefined;
948
+ categories?: string[] | undefined;
949
+ achievementTypes?: string[] | undefined;
950
+ issuedWithinDays?: number | undefined;
951
+ } | undefined;
952
+ } | undefined;
953
+ };
954
+ excludeMinors: boolean;
955
+ selfEnroll: boolean;
956
+ createdAt: string;
957
+ updatedAt: string;
958
+ notification?: {
959
+ title: string;
960
+ body: string;
961
+ } | undefined;
962
+ startsAt?: string | undefined;
963
+ endsAt?: string | undefined;
964
+ }[];
965
+ hasMore: boolean;
966
+ cursor?: string | undefined;
967
+ };
968
+ meta: import(".././routes/index").RouteMetadata;
969
+ }>;
970
+ delete: import("@trpc/server").TRPCMutationProcedure<{
971
+ input: {
972
+ campaignId: string;
973
+ };
974
+ output: boolean;
975
+ meta: import(".././routes/index").RouteMetadata;
976
+ }>;
977
+ setStatus: import("@trpc/server").TRPCMutationProcedure<{
978
+ input: {
979
+ campaignId: string;
980
+ status: "live" | "archived" | "draft" | "paused";
981
+ };
982
+ output: {
983
+ id: string;
984
+ name: string;
985
+ status: "live" | "archived" | "draft" | "paused";
986
+ channels: ("inApp" | "notify")[];
987
+ message: {
988
+ [x: string]: unknown;
989
+ priority: number;
990
+ dismissible: boolean;
991
+ frequency: "session" | "once" | "always" | {
992
+ everyDays: number;
993
+ };
994
+ presentation: "iframe" | "modal" | "banner" | "toast" | "story";
995
+ title: string;
996
+ actions: {
997
+ [x: string]: unknown;
998
+ label: string;
999
+ style: "primary" | "secondary" | "positive" | "dismiss";
1000
+ action: {
1001
+ [x: string]: unknown;
1002
+ type: "internalLink";
1003
+ path: string;
1004
+ } | {
1005
+ [x: string]: unknown;
1006
+ type: "externalLink";
1007
+ url: string;
1008
+ } | {
1009
+ [x: string]: unknown;
1010
+ type: "appStore";
1011
+ iosUrl?: string | undefined;
1012
+ androidUrl?: string | undefined;
1013
+ webUrl?: string | undefined;
1014
+ } | {
1015
+ [x: string]: unknown;
1016
+ type: "capgoUpdate";
1017
+ } | {
1018
+ [x: string]: unknown;
1019
+ type: "dismiss";
1020
+ } | {
1021
+ [x: string]: unknown;
1022
+ type: "openApp";
1023
+ listingId: string;
1024
+ path?: string | undefined;
1025
+ } | {
1026
+ [x: string]: unknown;
1027
+ type: "openMessage";
1028
+ messageId: string;
1029
+ };
1030
+ closeOnComplete: boolean;
1031
+ }[];
1032
+ enabled: boolean;
1033
+ bypassFatigue: boolean;
1034
+ id: string;
1035
+ media?: {
1036
+ [x: string]: unknown;
1037
+ type: "image" | "youtube" | "gif";
1038
+ url: string;
1039
+ aspect: string;
1040
+ alt?: string | undefined;
1041
+ } | undefined;
1042
+ emoji?: string | undefined;
1043
+ body?: string | undefined;
1044
+ steps?: {
1045
+ [x: string]: unknown;
1046
+ title: string;
1047
+ body?: string | undefined;
1048
+ media?: {
1049
+ [x: string]: unknown;
1050
+ type: "image" | "youtube" | "gif";
1051
+ url: string;
1052
+ aspect: string;
1053
+ alt?: string | undefined;
1054
+ } | undefined;
1055
+ emoji?: string | undefined;
1056
+ actions?: {
1057
+ [x: string]: unknown;
1058
+ label: string;
1059
+ style: "primary" | "secondary" | "positive" | "dismiss";
1060
+ action: {
1061
+ [x: string]: unknown;
1062
+ type: "internalLink";
1063
+ path: string;
1064
+ } | {
1065
+ [x: string]: unknown;
1066
+ type: "externalLink";
1067
+ url: string;
1068
+ } | {
1069
+ [x: string]: unknown;
1070
+ type: "appStore";
1071
+ iosUrl?: string | undefined;
1072
+ androidUrl?: string | undefined;
1073
+ webUrl?: string | undefined;
1074
+ } | {
1075
+ [x: string]: unknown;
1076
+ type: "capgoUpdate";
1077
+ } | {
1078
+ [x: string]: unknown;
1079
+ type: "dismiss";
1080
+ } | {
1081
+ [x: string]: unknown;
1082
+ type: "openApp";
1083
+ listingId: string;
1084
+ path?: string | undefined;
1085
+ } | {
1086
+ [x: string]: unknown;
1087
+ type: "openMessage";
1088
+ messageId: string;
1089
+ };
1090
+ closeOnComplete: boolean;
1091
+ }[] | undefined;
1092
+ }[] | undefined;
1093
+ iframe?: {
1094
+ [x: string]: unknown;
1095
+ url: string;
1096
+ loadTimeoutMs: number;
1097
+ allowedInternalPaths: string[];
1098
+ title?: string | undefined;
1099
+ } | undefined;
1100
+ locales?: Record<string, {
1101
+ [x: string]: unknown;
1102
+ title?: string | undefined;
1103
+ body?: string | undefined;
1104
+ actionLabels?: (string | null)[] | undefined;
1105
+ steps?: ({
1106
+ [x: string]: unknown;
1107
+ title?: string | undefined;
1108
+ body?: string | undefined;
1109
+ actionLabels?: (string | null)[] | undefined;
1110
+ } | null)[] | undefined;
1111
+ iframeUrl?: string | undefined;
1112
+ }> | undefined;
1113
+ targeting?: import("@learncard/types").InAppMessagePredicate | undefined;
1114
+ trigger?: {
1115
+ event: "credential.claimed" | "app.opened";
1116
+ windowMinutes: number;
1117
+ where?: {
1118
+ issuers?: string[] | undefined;
1119
+ nestedIssuers?: string[] | undefined;
1120
+ vcTypes?: string[] | undefined;
1121
+ categories?: string[] | undefined;
1122
+ achievementTypes?: string[] | undefined;
1123
+ issuedWithinDays?: number | undefined;
1124
+ } | undefined;
1125
+ } | undefined;
1126
+ };
1127
+ excludeMinors: boolean;
1128
+ selfEnroll: boolean;
1129
+ createdAt: string;
1130
+ updatedAt: string;
1131
+ notification?: {
1132
+ title: string;
1133
+ body: string;
1134
+ } | undefined;
1135
+ startsAt?: string | undefined;
1136
+ endsAt?: string | undefined;
1137
+ };
1138
+ meta: import(".././routes/index").RouteMetadata;
1139
+ }>;
1140
+ previewAudience: import("@trpc/server").TRPCQueryProcedure<{
1141
+ input: {
1142
+ campaignId: string;
1143
+ source: {
1144
+ type: "dids";
1145
+ dids: string[];
1146
+ } | {
1147
+ type: "emails";
1148
+ emails: string[];
1149
+ } | {
1150
+ type: "credentialsSentBy";
1151
+ senderProfileId?: string | undefined;
1152
+ listingId?: string | undefined;
1153
+ metadata?: Record<string, string> | undefined;
1154
+ since?: string | undefined;
1155
+ includePending?: boolean | undefined;
1156
+ } | {
1157
+ type: "inboxClaims";
1158
+ issuerDid: string;
1159
+ since?: string | undefined;
1160
+ } | {
1161
+ type: "boostRecipients";
1162
+ boostUri: string;
1163
+ includePending?: boolean | undefined;
1164
+ };
1165
+ };
1166
+ output: {
1167
+ count: number;
1168
+ };
1169
+ meta: import(".././routes/index").RouteMetadata;
1170
+ }>;
1171
+ addAudience: import("@trpc/server").TRPCMutationProcedure<{
1172
+ input: {
1173
+ campaignId: string;
1174
+ source: {
1175
+ type: "dids";
1176
+ dids: string[];
1177
+ } | {
1178
+ type: "emails";
1179
+ emails: string[];
1180
+ } | {
1181
+ type: "credentialsSentBy";
1182
+ senderProfileId?: string | undefined;
1183
+ listingId?: string | undefined;
1184
+ metadata?: Record<string, string> | undefined;
1185
+ since?: string | undefined;
1186
+ includePending?: boolean | undefined;
1187
+ } | {
1188
+ type: "inboxClaims";
1189
+ issuerDid: string;
1190
+ since?: string | undefined;
1191
+ } | {
1192
+ type: "boostRecipients";
1193
+ boostUri: string;
1194
+ includePending?: boolean | undefined;
1195
+ };
1196
+ };
1197
+ output: {
1198
+ count: number;
1199
+ };
1200
+ meta: import(".././routes/index").RouteMetadata;
1201
+ }>;
1202
+ pageAudience: import("@trpc/server").TRPCQueryProcedure<{
1203
+ input: {
1204
+ campaignId: string;
1205
+ cursor?: string | undefined;
1206
+ limit?: number | undefined;
1207
+ };
1208
+ output: {
1209
+ records: {
1210
+ profileId: string;
1211
+ did: string;
1212
+ }[];
1213
+ hasMore: boolean;
1214
+ cursor?: string | undefined;
1215
+ };
1216
+ meta: import(".././routes/index").RouteMetadata;
1217
+ }>;
1218
+ getStats: import("@trpc/server").TRPCQueryProcedure<{
1219
+ input: {
1220
+ campaignId: string;
1221
+ };
1222
+ output: {
1223
+ audience: number;
1224
+ notified: number;
1225
+ shown: number;
1226
+ clicked: number;
1227
+ dismissed: number;
1228
+ converted: number;
1229
+ enrolled: number;
1230
+ };
1231
+ meta: import(".././routes/index").RouteMetadata;
1232
+ }>;
1233
+ getMyCampaigns: import("@trpc/server").TRPCQueryProcedure<{
1234
+ input: Record<string, never> | undefined;
1235
+ output: {
1236
+ campaign: {
1237
+ message: {
1238
+ [x: string]: unknown;
1239
+ priority: number;
1240
+ dismissible: boolean;
1241
+ frequency: "session" | "once" | "always" | {
1242
+ everyDays: number;
1243
+ };
1244
+ presentation: "iframe" | "modal" | "banner" | "toast" | "story";
1245
+ title: string;
1246
+ actions: {
1247
+ [x: string]: unknown;
1248
+ label: string;
1249
+ style: "primary" | "secondary" | "positive" | "dismiss";
1250
+ action: {
1251
+ [x: string]: unknown;
1252
+ type: "internalLink";
1253
+ path: string;
1254
+ } | {
1255
+ [x: string]: unknown;
1256
+ type: "externalLink";
1257
+ url: string;
1258
+ } | {
1259
+ [x: string]: unknown;
1260
+ type: "appStore";
1261
+ iosUrl?: string | undefined;
1262
+ androidUrl?: string | undefined;
1263
+ webUrl?: string | undefined;
1264
+ } | {
1265
+ [x: string]: unknown;
1266
+ type: "capgoUpdate";
1267
+ } | {
1268
+ [x: string]: unknown;
1269
+ type: "dismiss";
1270
+ } | {
1271
+ [x: string]: unknown;
1272
+ type: "openApp";
1273
+ listingId: string;
1274
+ path?: string | undefined;
1275
+ } | {
1276
+ [x: string]: unknown;
1277
+ type: "openMessage";
1278
+ messageId: string;
1279
+ };
1280
+ closeOnComplete: boolean;
1281
+ }[];
1282
+ enabled: boolean;
1283
+ bypassFatigue: boolean;
1284
+ id: string;
1285
+ media?: {
1286
+ [x: string]: unknown;
1287
+ type: "image" | "youtube" | "gif";
1288
+ url: string;
1289
+ aspect: string;
1290
+ alt?: string | undefined;
1291
+ } | undefined;
1292
+ emoji?: string | undefined;
1293
+ body?: string | undefined;
1294
+ steps?: {
1295
+ [x: string]: unknown;
1296
+ title: string;
1297
+ body?: string | undefined;
1298
+ media?: {
1299
+ [x: string]: unknown;
1300
+ type: "image" | "youtube" | "gif";
1301
+ url: string;
1302
+ aspect: string;
1303
+ alt?: string | undefined;
1304
+ } | undefined;
1305
+ emoji?: string | undefined;
1306
+ actions?: {
1307
+ [x: string]: unknown;
1308
+ label: string;
1309
+ style: "primary" | "secondary" | "positive" | "dismiss";
1310
+ action: {
1311
+ [x: string]: unknown;
1312
+ type: "internalLink";
1313
+ path: string;
1314
+ } | {
1315
+ [x: string]: unknown;
1316
+ type: "externalLink";
1317
+ url: string;
1318
+ } | {
1319
+ [x: string]: unknown;
1320
+ type: "appStore";
1321
+ iosUrl?: string | undefined;
1322
+ androidUrl?: string | undefined;
1323
+ webUrl?: string | undefined;
1324
+ } | {
1325
+ [x: string]: unknown;
1326
+ type: "capgoUpdate";
1327
+ } | {
1328
+ [x: string]: unknown;
1329
+ type: "dismiss";
1330
+ } | {
1331
+ [x: string]: unknown;
1332
+ type: "openApp";
1333
+ listingId: string;
1334
+ path?: string | undefined;
1335
+ } | {
1336
+ [x: string]: unknown;
1337
+ type: "openMessage";
1338
+ messageId: string;
1339
+ };
1340
+ closeOnComplete: boolean;
1341
+ }[] | undefined;
1342
+ }[] | undefined;
1343
+ iframe?: {
1344
+ [x: string]: unknown;
1345
+ url: string;
1346
+ loadTimeoutMs: number;
1347
+ allowedInternalPaths: string[];
1348
+ title?: string | undefined;
1349
+ } | undefined;
1350
+ locales?: Record<string, {
1351
+ [x: string]: unknown;
1352
+ title?: string | undefined;
1353
+ body?: string | undefined;
1354
+ actionLabels?: (string | null)[] | undefined;
1355
+ steps?: ({
1356
+ [x: string]: unknown;
1357
+ title?: string | undefined;
1358
+ body?: string | undefined;
1359
+ actionLabels?: (string | null)[] | undefined;
1360
+ } | null)[] | undefined;
1361
+ iframeUrl?: string | undefined;
1362
+ }> | undefined;
1363
+ targeting?: import("@learncard/types").InAppMessagePredicate | undefined;
1364
+ trigger?: {
1365
+ event: "credential.claimed" | "app.opened";
1366
+ windowMinutes: number;
1367
+ where?: {
1368
+ issuers?: string[] | undefined;
1369
+ nestedIssuers?: string[] | undefined;
1370
+ vcTypes?: string[] | undefined;
1371
+ categories?: string[] | undefined;
1372
+ achievementTypes?: string[] | undefined;
1373
+ issuedWithinDays?: number | undefined;
1374
+ } | undefined;
1375
+ } | undefined;
1376
+ };
1377
+ id: string;
1378
+ selfEnroll: boolean;
1379
+ startsAt?: string | undefined;
1380
+ endsAt?: string | undefined;
1381
+ };
1382
+ state: {
1383
+ shownCount: number;
1384
+ firstShownAt?: string | undefined;
1385
+ lastShownAt?: string | undefined;
1386
+ clickedAt?: string | undefined;
1387
+ dismissedAt?: string | undefined;
1388
+ convertedAt?: string | undefined;
1389
+ notifiedAt?: string | undefined;
1390
+ };
1391
+ }[];
1392
+ meta: import(".././routes/index").RouteMetadata;
1393
+ }>;
1394
+ recordEvent: import("@trpc/server").TRPCMutationProcedure<{
1395
+ input: {
1396
+ campaignId: string;
1397
+ event: "shown" | "clicked" | "dismissed" | "converted";
1398
+ };
1399
+ output: boolean;
1400
+ meta: import(".././routes/index").RouteMetadata;
1401
+ }>;
1402
+ enroll: import("@trpc/server").TRPCMutationProcedure<{
1403
+ input: {
1404
+ campaignId: string;
1405
+ };
1406
+ output: boolean;
1407
+ meta: import(".././routes/index").RouteMetadata;
1408
+ }>;
1409
+ }>>;
1410
+ export type CampaignsRouter = typeof campaignsRouter;
1411
+ //# sourceMappingURL=campaigns.d.ts.map