@tracearr/shared 2.2.0-beta.1 → 2.2.0-beta.3

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 (84) hide show
  1. package/dist/automations/__tests__/actions.test.d.ts +2 -0
  2. package/dist/automations/__tests__/actions.test.d.ts.map +1 -0
  3. package/dist/automations/__tests__/actions.test.js +68 -0
  4. package/dist/automations/__tests__/actions.test.js.map +1 -0
  5. package/dist/automations/__tests__/conditions.test.d.ts +2 -0
  6. package/dist/automations/__tests__/conditions.test.d.ts.map +1 -0
  7. package/dist/automations/__tests__/conditions.test.js +55 -0
  8. package/dist/automations/__tests__/conditions.test.js.map +1 -0
  9. package/dist/automations/__tests__/definition.test.d.ts +2 -0
  10. package/dist/automations/__tests__/definition.test.d.ts.map +1 -0
  11. package/dist/automations/__tests__/definition.test.js +376 -0
  12. package/dist/automations/__tests__/definition.test.js.map +1 -0
  13. package/dist/automations/__tests__/share.test.d.ts +2 -0
  14. package/dist/automations/__tests__/share.test.d.ts.map +1 -0
  15. package/dist/automations/__tests__/share.test.js +98 -0
  16. package/dist/automations/__tests__/share.test.js.map +1 -0
  17. package/dist/automations/__tests__/templates.test.d.ts +2 -0
  18. package/dist/automations/__tests__/templates.test.d.ts.map +1 -0
  19. package/dist/automations/__tests__/templates.test.js +278 -0
  20. package/dist/automations/__tests__/templates.test.js.map +1 -0
  21. package/dist/automations/__tests__/triggers.test.d.ts +2 -0
  22. package/dist/automations/__tests__/triggers.test.d.ts.map +1 -0
  23. package/dist/automations/__tests__/triggers.test.js +42 -0
  24. package/dist/automations/__tests__/triggers.test.js.map +1 -0
  25. package/dist/automations/actions.d.ts +783 -0
  26. package/dist/automations/actions.d.ts.map +1 -0
  27. package/dist/automations/actions.js +97 -0
  28. package/dist/automations/actions.js.map +1 -0
  29. package/dist/automations/conditions.d.ts +459 -0
  30. package/dist/automations/conditions.d.ts.map +1 -0
  31. package/dist/automations/conditions.js +460 -0
  32. package/dist/automations/conditions.js.map +1 -0
  33. package/dist/automations/definition.d.ts +1389 -0
  34. package/dist/automations/definition.d.ts.map +1 -0
  35. package/dist/automations/definition.js +215 -0
  36. package/dist/automations/definition.js.map +1 -0
  37. package/dist/automations/dryRun.d.ts +413 -0
  38. package/dist/automations/dryRun.d.ts.map +1 -0
  39. package/dist/automations/dryRun.js +9 -0
  40. package/dist/automations/dryRun.js.map +1 -0
  41. package/dist/automations/index.d.ts +8 -0
  42. package/dist/automations/index.d.ts.map +1 -0
  43. package/dist/automations/index.js +8 -0
  44. package/dist/automations/index.js.map +1 -0
  45. package/dist/automations/share.d.ts +27 -0
  46. package/dist/automations/share.d.ts.map +1 -0
  47. package/dist/automations/share.js +119 -0
  48. package/dist/automations/share.js.map +1 -0
  49. package/dist/automations/templates.d.ts +1304 -0
  50. package/dist/automations/templates.d.ts.map +1 -0
  51. package/dist/automations/templates.js +525 -0
  52. package/dist/automations/templates.js.map +1 -0
  53. package/dist/automations/triggers.d.ts +141 -0
  54. package/dist/automations/triggers.d.ts.map +1 -0
  55. package/dist/automations/triggers.js +172 -0
  56. package/dist/automations/triggers.js.map +1 -0
  57. package/dist/constants.d.ts +22 -40
  58. package/dist/constants.d.ts.map +1 -1
  59. package/dist/constants.js +25 -56
  60. package/dist/constants.js.map +1 -1
  61. package/dist/destinations.d.ts +21 -22
  62. package/dist/destinations.d.ts.map +1 -1
  63. package/dist/destinations.js +13 -2
  64. package/dist/destinations.js.map +1 -1
  65. package/dist/index.d.ts +10 -5
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +15 -9
  68. package/dist/index.js.map +1 -1
  69. package/dist/listQuery.d.ts +41 -0
  70. package/dist/listQuery.d.ts.map +1 -0
  71. package/dist/listQuery.js +33 -0
  72. package/dist/listQuery.js.map +1 -0
  73. package/dist/schemas.d.ts +152 -832
  74. package/dist/schemas.d.ts.map +1 -1
  75. package/dist/schemas.js +90 -287
  76. package/dist/schemas.js.map +1 -1
  77. package/dist/types.d.ts +67 -137
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/types.js.map +1 -1
  80. package/dist/violations.d.ts +2 -1
  81. package/dist/violations.d.ts.map +1 -1
  82. package/dist/violations.js +7 -0
  83. package/dist/violations.js.map +1 -1
  84. package/package.json +2 -1
@@ -0,0 +1,1389 @@
1
+ import { z } from 'zod';
2
+ import type { AutomationActions } from './actions.js';
3
+ import type { AutomationConditions, ConditionField, ConditionValue, Operator } from './conditions.js';
4
+ import type { TriggerNode } from './triggers.js';
5
+ import type { MediaType, ViolationSeverity } from '../types.js';
6
+ export declare const AUTOMATION_KINDS: readonly ["policy", "notification"];
7
+ export type AutomationKind = (typeof AUTOMATION_KINDS)[number];
8
+ export declare const RUN_OUTCOMES: readonly ["completed", "stopped_by_condition", "error"];
9
+ export type RunOutcome = (typeof RUN_OUTCOMES)[number];
10
+ /** Days a completed run survives when its automation names no retention of its own. */
11
+ export declare const RETENTION_DEFAULTS: {
12
+ readonly policy: 365;
13
+ readonly notification: 30;
14
+ };
15
+ /** The automations column, and what a name has to fit into. */
16
+ export declare const AUTOMATION_NAME_MAX = 100;
17
+ /** The note beside the name, capped the same way the column is. */
18
+ export declare const AUTOMATION_DESCRIPTION_MAX = 500;
19
+ export declare const automationDefinitionSchema: z.ZodObject<{
20
+ name: z.ZodString;
21
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
22
+ kind: z.ZodEnum<{
23
+ policy: "policy";
24
+ notification: "notification";
25
+ }>;
26
+ severity: z.ZodNullable<z.ZodEnum<{
27
+ low: "low";
28
+ warning: "warning";
29
+ high: "high";
30
+ }>>;
31
+ triggers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
32
+ type: z.ZodEnum<{
33
+ "session.started": "session.started";
34
+ "session.stopped": "session.stopped";
35
+ "session.transcode_changed": "session.transcode_changed";
36
+ "session.paused": "session.paused";
37
+ "account.new_device": "account.new_device";
38
+ "account.trust_changed": "account.trust_changed";
39
+ "media.added": "media.added";
40
+ "media.upgraded": "media.upgraded";
41
+ "server.down": "server.down";
42
+ "server.up": "server.up";
43
+ "plugin.update_available": "plugin.update_available";
44
+ "server.update_available": "server.update_available";
45
+ "tracearr.update_available": "tracearr.update_available";
46
+ }>;
47
+ id: z.ZodUUID;
48
+ enabled: z.ZodBoolean;
49
+ }, z.core.$strict>, z.ZodObject<{
50
+ type: z.ZodLiteral<"session.held_for">;
51
+ params: z.ZodObject<{
52
+ minutes: z.ZodNumber;
53
+ measure: z.ZodEnum<{
54
+ current: "current";
55
+ total: "total";
56
+ }>;
57
+ }, z.core.$strict>;
58
+ id: z.ZodUUID;
59
+ enabled: z.ZodBoolean;
60
+ }, z.core.$strict>, z.ZodObject<{
61
+ type: z.ZodLiteral<"account.inactive_for">;
62
+ params: z.ZodObject<{
63
+ days: z.ZodNumber;
64
+ }, z.core.$strict>;
65
+ id: z.ZodUUID;
66
+ enabled: z.ZodBoolean;
67
+ }, z.core.$strict>], "type">>;
68
+ conditions: z.ZodObject<{
69
+ groups: z.ZodArray<z.ZodObject<{
70
+ match: z.ZodOptional<z.ZodEnum<{
71
+ any: "any";
72
+ all: "all";
73
+ }>>;
74
+ conditions: z.ZodArray<z.ZodObject<{
75
+ field: z.ZodUnion<readonly [z.ZodEnum<{
76
+ concurrent_streams: "concurrent_streams";
77
+ active_session_distance_km: "active_session_distance_km";
78
+ travel_speed_kmh: "travel_speed_kmh";
79
+ unique_ips_in_window: "unique_ips_in_window";
80
+ unique_devices_in_window: "unique_devices_in_window";
81
+ inactive_days: "inactive_days";
82
+ current_pause_minutes: "current_pause_minutes";
83
+ total_pause_minutes: "total_pause_minutes";
84
+ }>, z.ZodEnum<{
85
+ source_resolution: "source_resolution";
86
+ output_resolution: "output_resolution";
87
+ is_transcoding: "is_transcoding";
88
+ is_transcode_downgrade: "is_transcode_downgrade";
89
+ source_bitrate_mbps: "source_bitrate_mbps";
90
+ }>, z.ZodEnum<{
91
+ user_id: "user_id";
92
+ trust_score: "trust_score";
93
+ account_age_days: "account_age_days";
94
+ }>, z.ZodEnum<{
95
+ device_type: "device_type";
96
+ client_name: "client_name";
97
+ platform: "platform";
98
+ }>, z.ZodEnum<{
99
+ is_local_network: "is_local_network";
100
+ country: "country";
101
+ ip_in_range: "ip_in_range";
102
+ }>, z.ZodEnum<{
103
+ server_id: "server_id";
104
+ media_type: "media_type";
105
+ }>, z.ZodEnum<{
106
+ library_item_type: "library_item_type";
107
+ library_name: "library_name";
108
+ resolution_after: "resolution_after";
109
+ dynamic_range_after: "dynamic_range_after";
110
+ video_codec_after: "video_codec_after";
111
+ audio_channels_after: "audio_channels_after";
112
+ file_size_after: "file_size_after";
113
+ }>]>;
114
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
115
+ eq: "eq";
116
+ neq: "neq";
117
+ gt: "gt";
118
+ gte: "gte";
119
+ lt: "lt";
120
+ lte: "lte";
121
+ }>, z.ZodEnum<{
122
+ in: "in";
123
+ not_in: "not_in";
124
+ }>, z.ZodEnum<{
125
+ contains: "contains";
126
+ not_contains: "not_contains";
127
+ }>]>;
128
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
129
+ params: z.ZodOptional<z.ZodObject<{
130
+ window_hours: z.ZodOptional<z.ZodNumber>;
131
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
132
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
133
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
134
+ unknown: "unknown";
135
+ mobile: "mobile";
136
+ tablet: "tablet";
137
+ tv: "tv";
138
+ desktop: "desktop";
139
+ browser: "browser";
140
+ }>>>;
141
+ }, z.core.$strip>>;
142
+ id: z.ZodOptional<z.ZodUUID>;
143
+ enabled: z.ZodOptional<z.ZodBoolean>;
144
+ }, z.core.$strip>>;
145
+ id: z.ZodOptional<z.ZodUUID>;
146
+ enabled: z.ZodOptional<z.ZodBoolean>;
147
+ }, z.core.$strip>>;
148
+ }, z.core.$strip>;
149
+ actions: z.ZodObject<{
150
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
151
+ type: z.ZodLiteral<"send">;
152
+ to: z.ZodArray<z.ZodUUID>;
153
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
154
+ title: z.ZodOptional<z.ZodString>;
155
+ body: z.ZodOptional<z.ZodString>;
156
+ id: z.ZodOptional<z.ZodUUID>;
157
+ enabled: z.ZodOptional<z.ZodBoolean>;
158
+ }, z.core.$strip>, z.ZodObject<{
159
+ type: z.ZodLiteral<"trust">;
160
+ mode: z.ZodEnum<{
161
+ set: "set";
162
+ adjust: "adjust";
163
+ reset: "reset";
164
+ }>;
165
+ amount: z.ZodOptional<z.ZodNumber>;
166
+ value: z.ZodOptional<z.ZodNumber>;
167
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
168
+ id: z.ZodOptional<z.ZodUUID>;
169
+ enabled: z.ZodOptional<z.ZodBoolean>;
170
+ }, z.core.$strip>, z.ZodObject<{
171
+ type: z.ZodLiteral<"kill_stream">;
172
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
173
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
174
+ message: z.ZodOptional<z.ZodString>;
175
+ target: z.ZodOptional<z.ZodEnum<{
176
+ triggering: "triggering";
177
+ oldest: "oldest";
178
+ newest: "newest";
179
+ all_except_one: "all_except_one";
180
+ all_user: "all_user";
181
+ }>>;
182
+ id: z.ZodOptional<z.ZodUUID>;
183
+ enabled: z.ZodOptional<z.ZodBoolean>;
184
+ }, z.core.$strip>, z.ZodObject<{
185
+ type: z.ZodLiteral<"message_client">;
186
+ message: z.ZodString;
187
+ target: z.ZodOptional<z.ZodEnum<{
188
+ triggering: "triggering";
189
+ oldest: "oldest";
190
+ newest: "newest";
191
+ all_except_one: "all_except_one";
192
+ all_user: "all_user";
193
+ }>>;
194
+ id: z.ZodOptional<z.ZodUUID>;
195
+ enabled: z.ZodOptional<z.ZodBoolean>;
196
+ }, z.core.$strip>, z.ZodObject<{
197
+ type: z.ZodLiteral<"if">;
198
+ conditions: z.ZodObject<{
199
+ groups: z.ZodArray<z.ZodObject<{
200
+ match: z.ZodOptional<z.ZodEnum<{
201
+ any: "any";
202
+ all: "all";
203
+ }>>;
204
+ conditions: z.ZodArray<z.ZodObject<{
205
+ field: z.ZodUnion<readonly [z.ZodEnum<{
206
+ concurrent_streams: "concurrent_streams";
207
+ active_session_distance_km: "active_session_distance_km";
208
+ travel_speed_kmh: "travel_speed_kmh";
209
+ unique_ips_in_window: "unique_ips_in_window";
210
+ unique_devices_in_window: "unique_devices_in_window";
211
+ inactive_days: "inactive_days";
212
+ current_pause_minutes: "current_pause_minutes";
213
+ total_pause_minutes: "total_pause_minutes";
214
+ }>, z.ZodEnum<{
215
+ source_resolution: "source_resolution";
216
+ output_resolution: "output_resolution";
217
+ is_transcoding: "is_transcoding";
218
+ is_transcode_downgrade: "is_transcode_downgrade";
219
+ source_bitrate_mbps: "source_bitrate_mbps";
220
+ }>, z.ZodEnum<{
221
+ user_id: "user_id";
222
+ trust_score: "trust_score";
223
+ account_age_days: "account_age_days";
224
+ }>, z.ZodEnum<{
225
+ device_type: "device_type";
226
+ client_name: "client_name";
227
+ platform: "platform";
228
+ }>, z.ZodEnum<{
229
+ is_local_network: "is_local_network";
230
+ country: "country";
231
+ ip_in_range: "ip_in_range";
232
+ }>, z.ZodEnum<{
233
+ server_id: "server_id";
234
+ media_type: "media_type";
235
+ }>, z.ZodEnum<{
236
+ library_item_type: "library_item_type";
237
+ library_name: "library_name";
238
+ resolution_after: "resolution_after";
239
+ dynamic_range_after: "dynamic_range_after";
240
+ video_codec_after: "video_codec_after";
241
+ audio_channels_after: "audio_channels_after";
242
+ file_size_after: "file_size_after";
243
+ }>]>;
244
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
245
+ eq: "eq";
246
+ neq: "neq";
247
+ gt: "gt";
248
+ gte: "gte";
249
+ lt: "lt";
250
+ lte: "lte";
251
+ }>, z.ZodEnum<{
252
+ in: "in";
253
+ not_in: "not_in";
254
+ }>, z.ZodEnum<{
255
+ contains: "contains";
256
+ not_contains: "not_contains";
257
+ }>]>;
258
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
259
+ params: z.ZodOptional<z.ZodObject<{
260
+ window_hours: z.ZodOptional<z.ZodNumber>;
261
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
262
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
263
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
264
+ unknown: "unknown";
265
+ mobile: "mobile";
266
+ tablet: "tablet";
267
+ tv: "tv";
268
+ desktop: "desktop";
269
+ browser: "browser";
270
+ }>>>;
271
+ }, z.core.$strip>>;
272
+ id: z.ZodOptional<z.ZodUUID>;
273
+ enabled: z.ZodOptional<z.ZodBoolean>;
274
+ }, z.core.$strip>>;
275
+ id: z.ZodOptional<z.ZodUUID>;
276
+ enabled: z.ZodOptional<z.ZodBoolean>;
277
+ }, z.core.$strip>>;
278
+ }, z.core.$strip>;
279
+ then: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
280
+ type: z.ZodLiteral<"send">;
281
+ to: z.ZodArray<z.ZodUUID>;
282
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
283
+ title: z.ZodOptional<z.ZodString>;
284
+ body: z.ZodOptional<z.ZodString>;
285
+ id: z.ZodOptional<z.ZodUUID>;
286
+ enabled: z.ZodOptional<z.ZodBoolean>;
287
+ }, z.core.$strip>, z.ZodObject<{
288
+ type: z.ZodLiteral<"trust">;
289
+ mode: z.ZodEnum<{
290
+ set: "set";
291
+ adjust: "adjust";
292
+ reset: "reset";
293
+ }>;
294
+ amount: z.ZodOptional<z.ZodNumber>;
295
+ value: z.ZodOptional<z.ZodNumber>;
296
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
297
+ id: z.ZodOptional<z.ZodUUID>;
298
+ enabled: z.ZodOptional<z.ZodBoolean>;
299
+ }, z.core.$strip>, z.ZodObject<{
300
+ type: z.ZodLiteral<"kill_stream">;
301
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
302
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
303
+ message: z.ZodOptional<z.ZodString>;
304
+ target: z.ZodOptional<z.ZodEnum<{
305
+ triggering: "triggering";
306
+ oldest: "oldest";
307
+ newest: "newest";
308
+ all_except_one: "all_except_one";
309
+ all_user: "all_user";
310
+ }>>;
311
+ id: z.ZodOptional<z.ZodUUID>;
312
+ enabled: z.ZodOptional<z.ZodBoolean>;
313
+ }, z.core.$strip>, z.ZodObject<{
314
+ type: z.ZodLiteral<"message_client">;
315
+ message: z.ZodString;
316
+ target: z.ZodOptional<z.ZodEnum<{
317
+ triggering: "triggering";
318
+ oldest: "oldest";
319
+ newest: "newest";
320
+ all_except_one: "all_except_one";
321
+ all_user: "all_user";
322
+ }>>;
323
+ id: z.ZodOptional<z.ZodUUID>;
324
+ enabled: z.ZodOptional<z.ZodBoolean>;
325
+ }, z.core.$strip>], "type">>;
326
+ else: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
327
+ type: z.ZodLiteral<"send">;
328
+ to: z.ZodArray<z.ZodUUID>;
329
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
330
+ title: z.ZodOptional<z.ZodString>;
331
+ body: z.ZodOptional<z.ZodString>;
332
+ id: z.ZodOptional<z.ZodUUID>;
333
+ enabled: z.ZodOptional<z.ZodBoolean>;
334
+ }, z.core.$strip>, z.ZodObject<{
335
+ type: z.ZodLiteral<"trust">;
336
+ mode: z.ZodEnum<{
337
+ set: "set";
338
+ adjust: "adjust";
339
+ reset: "reset";
340
+ }>;
341
+ amount: z.ZodOptional<z.ZodNumber>;
342
+ value: z.ZodOptional<z.ZodNumber>;
343
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
344
+ id: z.ZodOptional<z.ZodUUID>;
345
+ enabled: z.ZodOptional<z.ZodBoolean>;
346
+ }, z.core.$strip>, z.ZodObject<{
347
+ type: z.ZodLiteral<"kill_stream">;
348
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
349
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
350
+ message: z.ZodOptional<z.ZodString>;
351
+ target: z.ZodOptional<z.ZodEnum<{
352
+ triggering: "triggering";
353
+ oldest: "oldest";
354
+ newest: "newest";
355
+ all_except_one: "all_except_one";
356
+ all_user: "all_user";
357
+ }>>;
358
+ id: z.ZodOptional<z.ZodUUID>;
359
+ enabled: z.ZodOptional<z.ZodBoolean>;
360
+ }, z.core.$strip>, z.ZodObject<{
361
+ type: z.ZodLiteral<"message_client">;
362
+ message: z.ZodString;
363
+ target: z.ZodOptional<z.ZodEnum<{
364
+ triggering: "triggering";
365
+ oldest: "oldest";
366
+ newest: "newest";
367
+ all_except_one: "all_except_one";
368
+ all_user: "all_user";
369
+ }>>;
370
+ id: z.ZodOptional<z.ZodUUID>;
371
+ enabled: z.ZodOptional<z.ZodBoolean>;
372
+ }, z.core.$strip>], "type">>;
373
+ id: z.ZodOptional<z.ZodUUID>;
374
+ enabled: z.ZodOptional<z.ZodBoolean>;
375
+ }, z.core.$strict>], "type">>;
376
+ }, z.core.$strip>;
377
+ serverId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
378
+ serverUserId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
379
+ userId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
380
+ enforceAcrossServers: z.ZodOptional<z.ZodBoolean>;
381
+ cooldownMinutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
382
+ retentionDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
383
+ isActive: z.ZodOptional<z.ZodBoolean>;
384
+ }, z.core.$strict>;
385
+ export declare const createAutomationSchema: z.ZodObject<{
386
+ name: z.ZodString;
387
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
388
+ kind: z.ZodEnum<{
389
+ policy: "policy";
390
+ notification: "notification";
391
+ }>;
392
+ severity: z.ZodNullable<z.ZodEnum<{
393
+ low: "low";
394
+ warning: "warning";
395
+ high: "high";
396
+ }>>;
397
+ triggers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
398
+ type: z.ZodEnum<{
399
+ "session.started": "session.started";
400
+ "session.stopped": "session.stopped";
401
+ "session.transcode_changed": "session.transcode_changed";
402
+ "session.paused": "session.paused";
403
+ "account.new_device": "account.new_device";
404
+ "account.trust_changed": "account.trust_changed";
405
+ "media.added": "media.added";
406
+ "media.upgraded": "media.upgraded";
407
+ "server.down": "server.down";
408
+ "server.up": "server.up";
409
+ "plugin.update_available": "plugin.update_available";
410
+ "server.update_available": "server.update_available";
411
+ "tracearr.update_available": "tracearr.update_available";
412
+ }>;
413
+ id: z.ZodUUID;
414
+ enabled: z.ZodBoolean;
415
+ }, z.core.$strict>, z.ZodObject<{
416
+ type: z.ZodLiteral<"session.held_for">;
417
+ params: z.ZodObject<{
418
+ minutes: z.ZodNumber;
419
+ measure: z.ZodEnum<{
420
+ current: "current";
421
+ total: "total";
422
+ }>;
423
+ }, z.core.$strict>;
424
+ id: z.ZodUUID;
425
+ enabled: z.ZodBoolean;
426
+ }, z.core.$strict>, z.ZodObject<{
427
+ type: z.ZodLiteral<"account.inactive_for">;
428
+ params: z.ZodObject<{
429
+ days: z.ZodNumber;
430
+ }, z.core.$strict>;
431
+ id: z.ZodUUID;
432
+ enabled: z.ZodBoolean;
433
+ }, z.core.$strict>], "type">>;
434
+ conditions: z.ZodObject<{
435
+ groups: z.ZodArray<z.ZodObject<{
436
+ match: z.ZodOptional<z.ZodEnum<{
437
+ any: "any";
438
+ all: "all";
439
+ }>>;
440
+ conditions: z.ZodArray<z.ZodObject<{
441
+ field: z.ZodUnion<readonly [z.ZodEnum<{
442
+ concurrent_streams: "concurrent_streams";
443
+ active_session_distance_km: "active_session_distance_km";
444
+ travel_speed_kmh: "travel_speed_kmh";
445
+ unique_ips_in_window: "unique_ips_in_window";
446
+ unique_devices_in_window: "unique_devices_in_window";
447
+ inactive_days: "inactive_days";
448
+ current_pause_minutes: "current_pause_minutes";
449
+ total_pause_minutes: "total_pause_minutes";
450
+ }>, z.ZodEnum<{
451
+ source_resolution: "source_resolution";
452
+ output_resolution: "output_resolution";
453
+ is_transcoding: "is_transcoding";
454
+ is_transcode_downgrade: "is_transcode_downgrade";
455
+ source_bitrate_mbps: "source_bitrate_mbps";
456
+ }>, z.ZodEnum<{
457
+ user_id: "user_id";
458
+ trust_score: "trust_score";
459
+ account_age_days: "account_age_days";
460
+ }>, z.ZodEnum<{
461
+ device_type: "device_type";
462
+ client_name: "client_name";
463
+ platform: "platform";
464
+ }>, z.ZodEnum<{
465
+ is_local_network: "is_local_network";
466
+ country: "country";
467
+ ip_in_range: "ip_in_range";
468
+ }>, z.ZodEnum<{
469
+ server_id: "server_id";
470
+ media_type: "media_type";
471
+ }>, z.ZodEnum<{
472
+ library_item_type: "library_item_type";
473
+ library_name: "library_name";
474
+ resolution_after: "resolution_after";
475
+ dynamic_range_after: "dynamic_range_after";
476
+ video_codec_after: "video_codec_after";
477
+ audio_channels_after: "audio_channels_after";
478
+ file_size_after: "file_size_after";
479
+ }>]>;
480
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
481
+ eq: "eq";
482
+ neq: "neq";
483
+ gt: "gt";
484
+ gte: "gte";
485
+ lt: "lt";
486
+ lte: "lte";
487
+ }>, z.ZodEnum<{
488
+ in: "in";
489
+ not_in: "not_in";
490
+ }>, z.ZodEnum<{
491
+ contains: "contains";
492
+ not_contains: "not_contains";
493
+ }>]>;
494
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
495
+ params: z.ZodOptional<z.ZodObject<{
496
+ window_hours: z.ZodOptional<z.ZodNumber>;
497
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
498
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
499
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
500
+ unknown: "unknown";
501
+ mobile: "mobile";
502
+ tablet: "tablet";
503
+ tv: "tv";
504
+ desktop: "desktop";
505
+ browser: "browser";
506
+ }>>>;
507
+ }, z.core.$strip>>;
508
+ id: z.ZodOptional<z.ZodUUID>;
509
+ enabled: z.ZodOptional<z.ZodBoolean>;
510
+ }, z.core.$strip>>;
511
+ id: z.ZodOptional<z.ZodUUID>;
512
+ enabled: z.ZodOptional<z.ZodBoolean>;
513
+ }, z.core.$strip>>;
514
+ }, z.core.$strip>;
515
+ actions: z.ZodObject<{
516
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
517
+ type: z.ZodLiteral<"send">;
518
+ to: z.ZodArray<z.ZodUUID>;
519
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
520
+ title: z.ZodOptional<z.ZodString>;
521
+ body: z.ZodOptional<z.ZodString>;
522
+ id: z.ZodOptional<z.ZodUUID>;
523
+ enabled: z.ZodOptional<z.ZodBoolean>;
524
+ }, z.core.$strip>, z.ZodObject<{
525
+ type: z.ZodLiteral<"trust">;
526
+ mode: z.ZodEnum<{
527
+ set: "set";
528
+ adjust: "adjust";
529
+ reset: "reset";
530
+ }>;
531
+ amount: z.ZodOptional<z.ZodNumber>;
532
+ value: z.ZodOptional<z.ZodNumber>;
533
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
534
+ id: z.ZodOptional<z.ZodUUID>;
535
+ enabled: z.ZodOptional<z.ZodBoolean>;
536
+ }, z.core.$strip>, z.ZodObject<{
537
+ type: z.ZodLiteral<"kill_stream">;
538
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
539
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
540
+ message: z.ZodOptional<z.ZodString>;
541
+ target: z.ZodOptional<z.ZodEnum<{
542
+ triggering: "triggering";
543
+ oldest: "oldest";
544
+ newest: "newest";
545
+ all_except_one: "all_except_one";
546
+ all_user: "all_user";
547
+ }>>;
548
+ id: z.ZodOptional<z.ZodUUID>;
549
+ enabled: z.ZodOptional<z.ZodBoolean>;
550
+ }, z.core.$strip>, z.ZodObject<{
551
+ type: z.ZodLiteral<"message_client">;
552
+ message: z.ZodString;
553
+ target: z.ZodOptional<z.ZodEnum<{
554
+ triggering: "triggering";
555
+ oldest: "oldest";
556
+ newest: "newest";
557
+ all_except_one: "all_except_one";
558
+ all_user: "all_user";
559
+ }>>;
560
+ id: z.ZodOptional<z.ZodUUID>;
561
+ enabled: z.ZodOptional<z.ZodBoolean>;
562
+ }, z.core.$strip>, z.ZodObject<{
563
+ type: z.ZodLiteral<"if">;
564
+ conditions: z.ZodObject<{
565
+ groups: z.ZodArray<z.ZodObject<{
566
+ match: z.ZodOptional<z.ZodEnum<{
567
+ any: "any";
568
+ all: "all";
569
+ }>>;
570
+ conditions: z.ZodArray<z.ZodObject<{
571
+ field: z.ZodUnion<readonly [z.ZodEnum<{
572
+ concurrent_streams: "concurrent_streams";
573
+ active_session_distance_km: "active_session_distance_km";
574
+ travel_speed_kmh: "travel_speed_kmh";
575
+ unique_ips_in_window: "unique_ips_in_window";
576
+ unique_devices_in_window: "unique_devices_in_window";
577
+ inactive_days: "inactive_days";
578
+ current_pause_minutes: "current_pause_minutes";
579
+ total_pause_minutes: "total_pause_minutes";
580
+ }>, z.ZodEnum<{
581
+ source_resolution: "source_resolution";
582
+ output_resolution: "output_resolution";
583
+ is_transcoding: "is_transcoding";
584
+ is_transcode_downgrade: "is_transcode_downgrade";
585
+ source_bitrate_mbps: "source_bitrate_mbps";
586
+ }>, z.ZodEnum<{
587
+ user_id: "user_id";
588
+ trust_score: "trust_score";
589
+ account_age_days: "account_age_days";
590
+ }>, z.ZodEnum<{
591
+ device_type: "device_type";
592
+ client_name: "client_name";
593
+ platform: "platform";
594
+ }>, z.ZodEnum<{
595
+ is_local_network: "is_local_network";
596
+ country: "country";
597
+ ip_in_range: "ip_in_range";
598
+ }>, z.ZodEnum<{
599
+ server_id: "server_id";
600
+ media_type: "media_type";
601
+ }>, z.ZodEnum<{
602
+ library_item_type: "library_item_type";
603
+ library_name: "library_name";
604
+ resolution_after: "resolution_after";
605
+ dynamic_range_after: "dynamic_range_after";
606
+ video_codec_after: "video_codec_after";
607
+ audio_channels_after: "audio_channels_after";
608
+ file_size_after: "file_size_after";
609
+ }>]>;
610
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
611
+ eq: "eq";
612
+ neq: "neq";
613
+ gt: "gt";
614
+ gte: "gte";
615
+ lt: "lt";
616
+ lte: "lte";
617
+ }>, z.ZodEnum<{
618
+ in: "in";
619
+ not_in: "not_in";
620
+ }>, z.ZodEnum<{
621
+ contains: "contains";
622
+ not_contains: "not_contains";
623
+ }>]>;
624
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
625
+ params: z.ZodOptional<z.ZodObject<{
626
+ window_hours: z.ZodOptional<z.ZodNumber>;
627
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
628
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
629
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
630
+ unknown: "unknown";
631
+ mobile: "mobile";
632
+ tablet: "tablet";
633
+ tv: "tv";
634
+ desktop: "desktop";
635
+ browser: "browser";
636
+ }>>>;
637
+ }, z.core.$strip>>;
638
+ id: z.ZodOptional<z.ZodUUID>;
639
+ enabled: z.ZodOptional<z.ZodBoolean>;
640
+ }, z.core.$strip>>;
641
+ id: z.ZodOptional<z.ZodUUID>;
642
+ enabled: z.ZodOptional<z.ZodBoolean>;
643
+ }, z.core.$strip>>;
644
+ }, z.core.$strip>;
645
+ then: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
646
+ type: z.ZodLiteral<"send">;
647
+ to: z.ZodArray<z.ZodUUID>;
648
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
649
+ title: z.ZodOptional<z.ZodString>;
650
+ body: z.ZodOptional<z.ZodString>;
651
+ id: z.ZodOptional<z.ZodUUID>;
652
+ enabled: z.ZodOptional<z.ZodBoolean>;
653
+ }, z.core.$strip>, z.ZodObject<{
654
+ type: z.ZodLiteral<"trust">;
655
+ mode: z.ZodEnum<{
656
+ set: "set";
657
+ adjust: "adjust";
658
+ reset: "reset";
659
+ }>;
660
+ amount: z.ZodOptional<z.ZodNumber>;
661
+ value: z.ZodOptional<z.ZodNumber>;
662
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
663
+ id: z.ZodOptional<z.ZodUUID>;
664
+ enabled: z.ZodOptional<z.ZodBoolean>;
665
+ }, z.core.$strip>, z.ZodObject<{
666
+ type: z.ZodLiteral<"kill_stream">;
667
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
668
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
669
+ message: z.ZodOptional<z.ZodString>;
670
+ target: z.ZodOptional<z.ZodEnum<{
671
+ triggering: "triggering";
672
+ oldest: "oldest";
673
+ newest: "newest";
674
+ all_except_one: "all_except_one";
675
+ all_user: "all_user";
676
+ }>>;
677
+ id: z.ZodOptional<z.ZodUUID>;
678
+ enabled: z.ZodOptional<z.ZodBoolean>;
679
+ }, z.core.$strip>, z.ZodObject<{
680
+ type: z.ZodLiteral<"message_client">;
681
+ message: z.ZodString;
682
+ target: z.ZodOptional<z.ZodEnum<{
683
+ triggering: "triggering";
684
+ oldest: "oldest";
685
+ newest: "newest";
686
+ all_except_one: "all_except_one";
687
+ all_user: "all_user";
688
+ }>>;
689
+ id: z.ZodOptional<z.ZodUUID>;
690
+ enabled: z.ZodOptional<z.ZodBoolean>;
691
+ }, z.core.$strip>], "type">>;
692
+ else: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
693
+ type: z.ZodLiteral<"send">;
694
+ to: z.ZodArray<z.ZodUUID>;
695
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
696
+ title: z.ZodOptional<z.ZodString>;
697
+ body: z.ZodOptional<z.ZodString>;
698
+ id: z.ZodOptional<z.ZodUUID>;
699
+ enabled: z.ZodOptional<z.ZodBoolean>;
700
+ }, z.core.$strip>, z.ZodObject<{
701
+ type: z.ZodLiteral<"trust">;
702
+ mode: z.ZodEnum<{
703
+ set: "set";
704
+ adjust: "adjust";
705
+ reset: "reset";
706
+ }>;
707
+ amount: z.ZodOptional<z.ZodNumber>;
708
+ value: z.ZodOptional<z.ZodNumber>;
709
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
710
+ id: z.ZodOptional<z.ZodUUID>;
711
+ enabled: z.ZodOptional<z.ZodBoolean>;
712
+ }, z.core.$strip>, z.ZodObject<{
713
+ type: z.ZodLiteral<"kill_stream">;
714
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
715
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
716
+ message: z.ZodOptional<z.ZodString>;
717
+ target: z.ZodOptional<z.ZodEnum<{
718
+ triggering: "triggering";
719
+ oldest: "oldest";
720
+ newest: "newest";
721
+ all_except_one: "all_except_one";
722
+ all_user: "all_user";
723
+ }>>;
724
+ id: z.ZodOptional<z.ZodUUID>;
725
+ enabled: z.ZodOptional<z.ZodBoolean>;
726
+ }, z.core.$strip>, z.ZodObject<{
727
+ type: z.ZodLiteral<"message_client">;
728
+ message: z.ZodString;
729
+ target: z.ZodOptional<z.ZodEnum<{
730
+ triggering: "triggering";
731
+ oldest: "oldest";
732
+ newest: "newest";
733
+ all_except_one: "all_except_one";
734
+ all_user: "all_user";
735
+ }>>;
736
+ id: z.ZodOptional<z.ZodUUID>;
737
+ enabled: z.ZodOptional<z.ZodBoolean>;
738
+ }, z.core.$strip>], "type">>;
739
+ id: z.ZodOptional<z.ZodUUID>;
740
+ enabled: z.ZodOptional<z.ZodBoolean>;
741
+ }, z.core.$strict>], "type">>;
742
+ }, z.core.$strip>;
743
+ serverId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
744
+ serverUserId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
745
+ userId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
746
+ enforceAcrossServers: z.ZodOptional<z.ZodBoolean>;
747
+ cooldownMinutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
748
+ retentionDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
749
+ isActive: z.ZodOptional<z.ZodBoolean>;
750
+ }, z.core.$strict>;
751
+ export declare const updateAutomationSchema: z.ZodObject<{
752
+ name: z.ZodOptional<z.ZodString>;
753
+ description: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
754
+ kind: z.ZodOptional<z.ZodEnum<{
755
+ policy: "policy";
756
+ notification: "notification";
757
+ }>>;
758
+ severity: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
759
+ low: "low";
760
+ warning: "warning";
761
+ high: "high";
762
+ }>>>;
763
+ triggers: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
764
+ type: z.ZodEnum<{
765
+ "session.started": "session.started";
766
+ "session.stopped": "session.stopped";
767
+ "session.transcode_changed": "session.transcode_changed";
768
+ "session.paused": "session.paused";
769
+ "account.new_device": "account.new_device";
770
+ "account.trust_changed": "account.trust_changed";
771
+ "media.added": "media.added";
772
+ "media.upgraded": "media.upgraded";
773
+ "server.down": "server.down";
774
+ "server.up": "server.up";
775
+ "plugin.update_available": "plugin.update_available";
776
+ "server.update_available": "server.update_available";
777
+ "tracearr.update_available": "tracearr.update_available";
778
+ }>;
779
+ id: z.ZodUUID;
780
+ enabled: z.ZodBoolean;
781
+ }, z.core.$strict>, z.ZodObject<{
782
+ type: z.ZodLiteral<"session.held_for">;
783
+ params: z.ZodObject<{
784
+ minutes: z.ZodNumber;
785
+ measure: z.ZodEnum<{
786
+ current: "current";
787
+ total: "total";
788
+ }>;
789
+ }, z.core.$strict>;
790
+ id: z.ZodUUID;
791
+ enabled: z.ZodBoolean;
792
+ }, z.core.$strict>, z.ZodObject<{
793
+ type: z.ZodLiteral<"account.inactive_for">;
794
+ params: z.ZodObject<{
795
+ days: z.ZodNumber;
796
+ }, z.core.$strict>;
797
+ id: z.ZodUUID;
798
+ enabled: z.ZodBoolean;
799
+ }, z.core.$strict>], "type">>>;
800
+ conditions: z.ZodOptional<z.ZodObject<{
801
+ groups: z.ZodArray<z.ZodObject<{
802
+ match: z.ZodOptional<z.ZodEnum<{
803
+ any: "any";
804
+ all: "all";
805
+ }>>;
806
+ conditions: z.ZodArray<z.ZodObject<{
807
+ field: z.ZodUnion<readonly [z.ZodEnum<{
808
+ concurrent_streams: "concurrent_streams";
809
+ active_session_distance_km: "active_session_distance_km";
810
+ travel_speed_kmh: "travel_speed_kmh";
811
+ unique_ips_in_window: "unique_ips_in_window";
812
+ unique_devices_in_window: "unique_devices_in_window";
813
+ inactive_days: "inactive_days";
814
+ current_pause_minutes: "current_pause_minutes";
815
+ total_pause_minutes: "total_pause_minutes";
816
+ }>, z.ZodEnum<{
817
+ source_resolution: "source_resolution";
818
+ output_resolution: "output_resolution";
819
+ is_transcoding: "is_transcoding";
820
+ is_transcode_downgrade: "is_transcode_downgrade";
821
+ source_bitrate_mbps: "source_bitrate_mbps";
822
+ }>, z.ZodEnum<{
823
+ user_id: "user_id";
824
+ trust_score: "trust_score";
825
+ account_age_days: "account_age_days";
826
+ }>, z.ZodEnum<{
827
+ device_type: "device_type";
828
+ client_name: "client_name";
829
+ platform: "platform";
830
+ }>, z.ZodEnum<{
831
+ is_local_network: "is_local_network";
832
+ country: "country";
833
+ ip_in_range: "ip_in_range";
834
+ }>, z.ZodEnum<{
835
+ server_id: "server_id";
836
+ media_type: "media_type";
837
+ }>, z.ZodEnum<{
838
+ library_item_type: "library_item_type";
839
+ library_name: "library_name";
840
+ resolution_after: "resolution_after";
841
+ dynamic_range_after: "dynamic_range_after";
842
+ video_codec_after: "video_codec_after";
843
+ audio_channels_after: "audio_channels_after";
844
+ file_size_after: "file_size_after";
845
+ }>]>;
846
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
847
+ eq: "eq";
848
+ neq: "neq";
849
+ gt: "gt";
850
+ gte: "gte";
851
+ lt: "lt";
852
+ lte: "lte";
853
+ }>, z.ZodEnum<{
854
+ in: "in";
855
+ not_in: "not_in";
856
+ }>, z.ZodEnum<{
857
+ contains: "contains";
858
+ not_contains: "not_contains";
859
+ }>]>;
860
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
861
+ params: z.ZodOptional<z.ZodObject<{
862
+ window_hours: z.ZodOptional<z.ZodNumber>;
863
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
864
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
865
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
866
+ unknown: "unknown";
867
+ mobile: "mobile";
868
+ tablet: "tablet";
869
+ tv: "tv";
870
+ desktop: "desktop";
871
+ browser: "browser";
872
+ }>>>;
873
+ }, z.core.$strip>>;
874
+ id: z.ZodOptional<z.ZodUUID>;
875
+ enabled: z.ZodOptional<z.ZodBoolean>;
876
+ }, z.core.$strip>>;
877
+ id: z.ZodOptional<z.ZodUUID>;
878
+ enabled: z.ZodOptional<z.ZodBoolean>;
879
+ }, z.core.$strip>>;
880
+ }, z.core.$strip>>;
881
+ actions: z.ZodOptional<z.ZodObject<{
882
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
883
+ type: z.ZodLiteral<"send">;
884
+ to: z.ZodArray<z.ZodUUID>;
885
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
886
+ title: z.ZodOptional<z.ZodString>;
887
+ body: z.ZodOptional<z.ZodString>;
888
+ id: z.ZodOptional<z.ZodUUID>;
889
+ enabled: z.ZodOptional<z.ZodBoolean>;
890
+ }, z.core.$strip>, z.ZodObject<{
891
+ type: z.ZodLiteral<"trust">;
892
+ mode: z.ZodEnum<{
893
+ set: "set";
894
+ adjust: "adjust";
895
+ reset: "reset";
896
+ }>;
897
+ amount: z.ZodOptional<z.ZodNumber>;
898
+ value: z.ZodOptional<z.ZodNumber>;
899
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
900
+ id: z.ZodOptional<z.ZodUUID>;
901
+ enabled: z.ZodOptional<z.ZodBoolean>;
902
+ }, z.core.$strip>, z.ZodObject<{
903
+ type: z.ZodLiteral<"kill_stream">;
904
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
905
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
906
+ message: z.ZodOptional<z.ZodString>;
907
+ target: z.ZodOptional<z.ZodEnum<{
908
+ triggering: "triggering";
909
+ oldest: "oldest";
910
+ newest: "newest";
911
+ all_except_one: "all_except_one";
912
+ all_user: "all_user";
913
+ }>>;
914
+ id: z.ZodOptional<z.ZodUUID>;
915
+ enabled: z.ZodOptional<z.ZodBoolean>;
916
+ }, z.core.$strip>, z.ZodObject<{
917
+ type: z.ZodLiteral<"message_client">;
918
+ message: z.ZodString;
919
+ target: z.ZodOptional<z.ZodEnum<{
920
+ triggering: "triggering";
921
+ oldest: "oldest";
922
+ newest: "newest";
923
+ all_except_one: "all_except_one";
924
+ all_user: "all_user";
925
+ }>>;
926
+ id: z.ZodOptional<z.ZodUUID>;
927
+ enabled: z.ZodOptional<z.ZodBoolean>;
928
+ }, z.core.$strip>, z.ZodObject<{
929
+ type: z.ZodLiteral<"if">;
930
+ conditions: z.ZodObject<{
931
+ groups: z.ZodArray<z.ZodObject<{
932
+ match: z.ZodOptional<z.ZodEnum<{
933
+ any: "any";
934
+ all: "all";
935
+ }>>;
936
+ conditions: z.ZodArray<z.ZodObject<{
937
+ field: z.ZodUnion<readonly [z.ZodEnum<{
938
+ concurrent_streams: "concurrent_streams";
939
+ active_session_distance_km: "active_session_distance_km";
940
+ travel_speed_kmh: "travel_speed_kmh";
941
+ unique_ips_in_window: "unique_ips_in_window";
942
+ unique_devices_in_window: "unique_devices_in_window";
943
+ inactive_days: "inactive_days";
944
+ current_pause_minutes: "current_pause_minutes";
945
+ total_pause_minutes: "total_pause_minutes";
946
+ }>, z.ZodEnum<{
947
+ source_resolution: "source_resolution";
948
+ output_resolution: "output_resolution";
949
+ is_transcoding: "is_transcoding";
950
+ is_transcode_downgrade: "is_transcode_downgrade";
951
+ source_bitrate_mbps: "source_bitrate_mbps";
952
+ }>, z.ZodEnum<{
953
+ user_id: "user_id";
954
+ trust_score: "trust_score";
955
+ account_age_days: "account_age_days";
956
+ }>, z.ZodEnum<{
957
+ device_type: "device_type";
958
+ client_name: "client_name";
959
+ platform: "platform";
960
+ }>, z.ZodEnum<{
961
+ is_local_network: "is_local_network";
962
+ country: "country";
963
+ ip_in_range: "ip_in_range";
964
+ }>, z.ZodEnum<{
965
+ server_id: "server_id";
966
+ media_type: "media_type";
967
+ }>, z.ZodEnum<{
968
+ library_item_type: "library_item_type";
969
+ library_name: "library_name";
970
+ resolution_after: "resolution_after";
971
+ dynamic_range_after: "dynamic_range_after";
972
+ video_codec_after: "video_codec_after";
973
+ audio_channels_after: "audio_channels_after";
974
+ file_size_after: "file_size_after";
975
+ }>]>;
976
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
977
+ eq: "eq";
978
+ neq: "neq";
979
+ gt: "gt";
980
+ gte: "gte";
981
+ lt: "lt";
982
+ lte: "lte";
983
+ }>, z.ZodEnum<{
984
+ in: "in";
985
+ not_in: "not_in";
986
+ }>, z.ZodEnum<{
987
+ contains: "contains";
988
+ not_contains: "not_contains";
989
+ }>]>;
990
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
991
+ params: z.ZodOptional<z.ZodObject<{
992
+ window_hours: z.ZodOptional<z.ZodNumber>;
993
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
994
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
995
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
996
+ unknown: "unknown";
997
+ mobile: "mobile";
998
+ tablet: "tablet";
999
+ tv: "tv";
1000
+ desktop: "desktop";
1001
+ browser: "browser";
1002
+ }>>>;
1003
+ }, z.core.$strip>>;
1004
+ id: z.ZodOptional<z.ZodUUID>;
1005
+ enabled: z.ZodOptional<z.ZodBoolean>;
1006
+ }, z.core.$strip>>;
1007
+ id: z.ZodOptional<z.ZodUUID>;
1008
+ enabled: z.ZodOptional<z.ZodBoolean>;
1009
+ }, z.core.$strip>>;
1010
+ }, z.core.$strip>;
1011
+ then: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1012
+ type: z.ZodLiteral<"send">;
1013
+ to: z.ZodArray<z.ZodUUID>;
1014
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1015
+ title: z.ZodOptional<z.ZodString>;
1016
+ body: z.ZodOptional<z.ZodString>;
1017
+ id: z.ZodOptional<z.ZodUUID>;
1018
+ enabled: z.ZodOptional<z.ZodBoolean>;
1019
+ }, z.core.$strip>, z.ZodObject<{
1020
+ type: z.ZodLiteral<"trust">;
1021
+ mode: z.ZodEnum<{
1022
+ set: "set";
1023
+ adjust: "adjust";
1024
+ reset: "reset";
1025
+ }>;
1026
+ amount: z.ZodOptional<z.ZodNumber>;
1027
+ value: z.ZodOptional<z.ZodNumber>;
1028
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1029
+ id: z.ZodOptional<z.ZodUUID>;
1030
+ enabled: z.ZodOptional<z.ZodBoolean>;
1031
+ }, z.core.$strip>, z.ZodObject<{
1032
+ type: z.ZodLiteral<"kill_stream">;
1033
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
1034
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1035
+ message: z.ZodOptional<z.ZodString>;
1036
+ target: z.ZodOptional<z.ZodEnum<{
1037
+ triggering: "triggering";
1038
+ oldest: "oldest";
1039
+ newest: "newest";
1040
+ all_except_one: "all_except_one";
1041
+ all_user: "all_user";
1042
+ }>>;
1043
+ id: z.ZodOptional<z.ZodUUID>;
1044
+ enabled: z.ZodOptional<z.ZodBoolean>;
1045
+ }, z.core.$strip>, z.ZodObject<{
1046
+ type: z.ZodLiteral<"message_client">;
1047
+ message: z.ZodString;
1048
+ target: z.ZodOptional<z.ZodEnum<{
1049
+ triggering: "triggering";
1050
+ oldest: "oldest";
1051
+ newest: "newest";
1052
+ all_except_one: "all_except_one";
1053
+ all_user: "all_user";
1054
+ }>>;
1055
+ id: z.ZodOptional<z.ZodUUID>;
1056
+ enabled: z.ZodOptional<z.ZodBoolean>;
1057
+ }, z.core.$strip>], "type">>;
1058
+ else: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1059
+ type: z.ZodLiteral<"send">;
1060
+ to: z.ZodArray<z.ZodUUID>;
1061
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1062
+ title: z.ZodOptional<z.ZodString>;
1063
+ body: z.ZodOptional<z.ZodString>;
1064
+ id: z.ZodOptional<z.ZodUUID>;
1065
+ enabled: z.ZodOptional<z.ZodBoolean>;
1066
+ }, z.core.$strip>, z.ZodObject<{
1067
+ type: z.ZodLiteral<"trust">;
1068
+ mode: z.ZodEnum<{
1069
+ set: "set";
1070
+ adjust: "adjust";
1071
+ reset: "reset";
1072
+ }>;
1073
+ amount: z.ZodOptional<z.ZodNumber>;
1074
+ value: z.ZodOptional<z.ZodNumber>;
1075
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1076
+ id: z.ZodOptional<z.ZodUUID>;
1077
+ enabled: z.ZodOptional<z.ZodBoolean>;
1078
+ }, z.core.$strip>, z.ZodObject<{
1079
+ type: z.ZodLiteral<"kill_stream">;
1080
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
1081
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1082
+ message: z.ZodOptional<z.ZodString>;
1083
+ target: z.ZodOptional<z.ZodEnum<{
1084
+ triggering: "triggering";
1085
+ oldest: "oldest";
1086
+ newest: "newest";
1087
+ all_except_one: "all_except_one";
1088
+ all_user: "all_user";
1089
+ }>>;
1090
+ id: z.ZodOptional<z.ZodUUID>;
1091
+ enabled: z.ZodOptional<z.ZodBoolean>;
1092
+ }, z.core.$strip>, z.ZodObject<{
1093
+ type: z.ZodLiteral<"message_client">;
1094
+ message: z.ZodString;
1095
+ target: z.ZodOptional<z.ZodEnum<{
1096
+ triggering: "triggering";
1097
+ oldest: "oldest";
1098
+ newest: "newest";
1099
+ all_except_one: "all_except_one";
1100
+ all_user: "all_user";
1101
+ }>>;
1102
+ id: z.ZodOptional<z.ZodUUID>;
1103
+ enabled: z.ZodOptional<z.ZodBoolean>;
1104
+ }, z.core.$strip>], "type">>;
1105
+ id: z.ZodOptional<z.ZodUUID>;
1106
+ enabled: z.ZodOptional<z.ZodBoolean>;
1107
+ }, z.core.$strict>], "type">>;
1108
+ }, z.core.$strip>>;
1109
+ serverId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodUUID>>>;
1110
+ serverUserId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodUUID>>>;
1111
+ userId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodUUID>>>;
1112
+ enforceAcrossServers: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
1113
+ cooldownMinutes: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
1114
+ retentionDays: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
1115
+ isActive: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
1116
+ }, z.core.$strict>;
1117
+ export type CreateAutomationInput = z.infer<typeof createAutomationSchema>;
1118
+ export type UpdateAutomationInput = z.infer<typeof updateAutomationSchema>;
1119
+ export declare const AUTOMATION_SORT_FIELDS: readonly ["name", "createdAt", "updatedAt", "kind", "isActive"];
1120
+ export type AutomationSortField = (typeof AUTOMATION_SORT_FIELDS)[number];
1121
+ /** The three ways a template arrives; a row no template wrote is the fourth answer. */
1122
+ declare const TEMPLATE_SOURCES: readonly ["builtin", "import", "local"];
1123
+ export declare const AUTOMATION_SOURCES: readonly ["builtin", "import", "local", "own"];
1124
+ export type AutomationSource = (typeof AUTOMATION_SOURCES)[number];
1125
+ export declare const automationListQuerySchema: z.ZodObject<{
1126
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1127
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1128
+ kind: z.ZodOptional<z.ZodEnum<{
1129
+ policy: "policy";
1130
+ notification: "notification";
1131
+ }>>;
1132
+ enabled: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
1133
+ search: z.ZodOptional<z.ZodString>;
1134
+ source: z.ZodOptional<z.ZodEnum<{
1135
+ builtin: "builtin";
1136
+ import: "import";
1137
+ local: "local";
1138
+ own: "own";
1139
+ }>>;
1140
+ serverId: z.ZodOptional<z.ZodUUID>;
1141
+ trigger: z.ZodOptional<z.ZodEnum<{
1142
+ sessions: "sessions";
1143
+ accounts: "accounts";
1144
+ library: "library";
1145
+ servers: "servers";
1146
+ updates: "updates";
1147
+ }>>;
1148
+ severity: z.ZodOptional<z.ZodEnum<{
1149
+ low: "low";
1150
+ warning: "warning";
1151
+ high: "high";
1152
+ }>>;
1153
+ orderBy: z.ZodDefault<z.ZodEnum<{
1154
+ name: "name";
1155
+ isActive: "isActive";
1156
+ createdAt: "createdAt";
1157
+ kind: "kind";
1158
+ updatedAt: "updatedAt";
1159
+ }>>;
1160
+ orderDir: z.ZodOptional<z.ZodEnum<{
1161
+ asc: "asc";
1162
+ desc: "desc";
1163
+ }>>;
1164
+ }, z.core.$strip>;
1165
+ export type AutomationListQuery = z.infer<typeof automationListQuerySchema>;
1166
+ export declare const RUN_SORT_FIELDS: readonly ["startedAt", "finishedAt", "outcome"];
1167
+ export type RunSortField = (typeof RUN_SORT_FIELDS)[number];
1168
+ /** What a page of runs and a count of them filter on, so neither can drift. */
1169
+ export declare const runCountsQuerySchema: z.ZodObject<{
1170
+ kind: z.ZodOptional<z.ZodEnum<{
1171
+ policy: "policy";
1172
+ notification: "notification";
1173
+ }>>;
1174
+ outcome: z.ZodOptional<z.ZodEnum<{
1175
+ error: "error";
1176
+ completed: "completed";
1177
+ stopped_by_condition: "stopped_by_condition";
1178
+ }>>;
1179
+ automationId: z.ZodOptional<z.ZodUUID>;
1180
+ startDate: z.ZodOptional<z.ZodISODate>;
1181
+ endDate: z.ZodOptional<z.ZodISODate>;
1182
+ }, z.core.$strip>;
1183
+ export declare const runListQuerySchema: z.ZodObject<{
1184
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1185
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1186
+ kind: z.ZodOptional<z.ZodEnum<{
1187
+ policy: "policy";
1188
+ notification: "notification";
1189
+ }>>;
1190
+ outcome: z.ZodOptional<z.ZodEnum<{
1191
+ error: "error";
1192
+ completed: "completed";
1193
+ stopped_by_condition: "stopped_by_condition";
1194
+ }>>;
1195
+ automationId: z.ZodOptional<z.ZodUUID>;
1196
+ startDate: z.ZodOptional<z.ZodISODate>;
1197
+ endDate: z.ZodOptional<z.ZodISODate>;
1198
+ orderBy: z.ZodDefault<z.ZodEnum<{
1199
+ startedAt: "startedAt";
1200
+ finishedAt: "finishedAt";
1201
+ outcome: "outcome";
1202
+ }>>;
1203
+ orderDir: z.ZodOptional<z.ZodEnum<{
1204
+ asc: "asc";
1205
+ desc: "desc";
1206
+ }>>;
1207
+ }, z.core.$strip>;
1208
+ export type RunListQuery = z.infer<typeof runListQuerySchema>;
1209
+ /** How many runs each outcome holds, plus the newest run that did something. */
1210
+ export type RunCounts = Record<RunOutcome, number> & {
1211
+ total: number;
1212
+ lastRunAt: string | null;
1213
+ };
1214
+ export declare const NEAR_MISS_REASONS: readonly ["cooldown_active", "edge_replayed", "gate_blocked", "trigger_filter_failed"];
1215
+ export type NearMissReason = (typeof NEAR_MISS_REASONS)[number];
1216
+ /** One entry of the capped ring: a trigger matched but the pipeline recorded no run. */
1217
+ export declare const nearMissEntrySchema: z.ZodObject<{
1218
+ reason: z.ZodEnum<{
1219
+ cooldown_active: "cooldown_active";
1220
+ edge_replayed: "edge_replayed";
1221
+ gate_blocked: "gate_blocked";
1222
+ trigger_filter_failed: "trigger_filter_failed";
1223
+ }>;
1224
+ at: z.ZodISODateTime;
1225
+ subjectKey: z.ZodString;
1226
+ trigger: z.ZodString;
1227
+ }, z.core.$strip>;
1228
+ export type NearMissEntry = z.infer<typeof nearMissEntrySchema>;
1229
+ /** Every condition and action node carries these once the builder has stamped it. */
1230
+ export interface NodeFields {
1231
+ id?: string;
1232
+ enabled?: boolean;
1233
+ }
1234
+ export interface ConditionEvidence {
1235
+ field: ConditionField;
1236
+ operator: Operator;
1237
+ threshold: ConditionValue;
1238
+ actual: unknown;
1239
+ matched: boolean;
1240
+ relatedSessionIds?: string[];
1241
+ details?: Record<string, unknown>;
1242
+ }
1243
+ export interface GroupEvidence {
1244
+ groupIndex: number;
1245
+ matched: boolean;
1246
+ /** The group's logic, so a summary can name the failing condition rather than the whole group. */
1247
+ match?: 'all' | 'any';
1248
+ conditions: ConditionEvidence[];
1249
+ }
1250
+ export interface ActionResult {
1251
+ actionType: string;
1252
+ success: boolean;
1253
+ skipped?: boolean;
1254
+ skipReason?: string;
1255
+ errorMessage?: string;
1256
+ executedAt?: string;
1257
+ }
1258
+ /** What an automation applies to, named for display. */
1259
+ export interface AutomationScopeRef {
1260
+ kind: 'server' | 'account' | 'person';
1261
+ id: string;
1262
+ name: string;
1263
+ /** The server an account sits on; the account id alone does not say which. */
1264
+ serverId?: string;
1265
+ serverName?: string;
1266
+ }
1267
+ /** The template an automation is bound to, with the version it sits on. */
1268
+ export interface AutomationTemplateRef {
1269
+ id: string;
1270
+ slug: string;
1271
+ name: string;
1272
+ version: number;
1273
+ currentVersion: number;
1274
+ source: (typeof TEMPLATE_SOURCES)[number];
1275
+ /** Whoever the envelope named; null for anything nobody signed. */
1276
+ author: string | null;
1277
+ /** When the template entered this library, which is when an import was pasted. */
1278
+ addedAt: string;
1279
+ }
1280
+ /** Where a detached automation came from; the template may be gone by now. */
1281
+ export interface AutomationOrigin {
1282
+ templateId: string;
1283
+ version: number;
1284
+ name: string | null;
1285
+ }
1286
+ /** API shape. Dates are ISO strings; `triggers` is what the engine matches on. */
1287
+ export interface Automation {
1288
+ id: string;
1289
+ name: string;
1290
+ description: string | null;
1291
+ kind: AutomationKind;
1292
+ severity: ViolationSeverity | null;
1293
+ triggers: TriggerNode[];
1294
+ conditions: AutomationConditions;
1295
+ actions: AutomationActions;
1296
+ serverId: string | null;
1297
+ serverUserId: string | null;
1298
+ userId: string | null;
1299
+ enforceAcrossServers: boolean;
1300
+ isActive: boolean;
1301
+ cooldownMinutes: number | null;
1302
+ /** null falls back to the kind's default retention */
1303
+ retentionDays: number | null;
1304
+ scopeRef: AutomationScopeRef | null;
1305
+ template: AutomationTemplateRef | null;
1306
+ /** What was answered when the row was bound; null for anything not on a template. */
1307
+ templateInputs: Record<string, unknown> | null;
1308
+ origin: AutomationOrigin | null;
1309
+ createdAt: string;
1310
+ updatedAt: string;
1311
+ }
1312
+ /** What a run was about, read off its subject key. */
1313
+ export type RunSubjectKind = 'session' | 'account' | 'media' | 'server' | 'install';
1314
+ /** The names behind a run's ids. Every field is null once the row it named is gone. */
1315
+ export interface RunSubject {
1316
+ kind: RunSubjectKind;
1317
+ /** The account for session and account runs; the item's title for media runs. */
1318
+ name: string | null;
1319
+ /** The person the account belongs to, when the identity carries a name. */
1320
+ personName: string | null;
1321
+ /** The account's avatar, as the media server stores it. */
1322
+ thumbUrl: string | null;
1323
+ /** Null for install-wide runs, the only ones no server is behind. */
1324
+ serverName: string | null;
1325
+ /** The library a media subject sits in. */
1326
+ libraryName: string | null;
1327
+ /** A media subject's own type; sessions carry theirs in the session context. */
1328
+ mediaType: string | null;
1329
+ }
1330
+ /**
1331
+ * What was playing when a session run fired. The session row carries all of it; once
1332
+ * that row is gone only what the run stamped on itself is left, so most of it is nullable.
1333
+ */
1334
+ export interface RunSessionContext {
1335
+ mediaTitle: string | null;
1336
+ mediaType: MediaType | null;
1337
+ /** The show an episode belongs to. */
1338
+ grandparentTitle: string | null;
1339
+ player: string | null;
1340
+ device: string | null;
1341
+ product: string | null;
1342
+ platform: string | null;
1343
+ ipAddress: string | null;
1344
+ city: string | null;
1345
+ country: string | null;
1346
+ }
1347
+ export interface AutomationRunSummary {
1348
+ id: string;
1349
+ automationId: string;
1350
+ automationName: string;
1351
+ kind: AutomationKind;
1352
+ outcome: RunOutcome;
1353
+ humanSummary: string | null;
1354
+ severity: ViolationSeverity | null;
1355
+ serverUserId: string | null;
1356
+ sessionId: string | null;
1357
+ /** Null only for a run with no server account to attribute it to. */
1358
+ serverId: string | null;
1359
+ subjectKey: string | null;
1360
+ subject: RunSubject;
1361
+ /** The actions that ran and succeeded, so a row can say what it did. */
1362
+ ranActions: string[];
1363
+ startedAt: string;
1364
+ finishedAt: string | null;
1365
+ acknowledgedAt: string | null;
1366
+ dismissedAt: string | null;
1367
+ }
1368
+ /**
1369
+ * The socket payload for finished runs. Clients only refetch on it, so it names
1370
+ * which lists went stale and nothing else: the frame reaches every viewer in the
1371
+ * sessions room, and a run summary carries subject keys and stop reasons.
1372
+ */
1373
+ export interface RunFinishedEvent {
1374
+ id: string;
1375
+ automationId: string;
1376
+ kind: AutomationKind;
1377
+ outcome: RunOutcome;
1378
+ }
1379
+ export interface AutomationRun extends AutomationRunSummary {
1380
+ /** Ordered step log; step zero is the trigger payload. */
1381
+ steps: unknown[];
1382
+ /** Null for anything but a session run, and for a session that has since been purged. */
1383
+ session: RunSessionContext | null;
1384
+ /** Every condition the run weighed, so a completed run can say what it read. */
1385
+ evidence: GroupEvidence[];
1386
+ definitionVersionId: string | null;
1387
+ }
1388
+ export {};
1389
+ //# sourceMappingURL=definition.d.ts.map