@tracearr/shared 2.2.0-beta.2 → 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 +51 -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,1304 @@
1
+ import { z } from 'zod';
2
+ import type { CreateAutomationInput } from './definition.js';
3
+ export declare const TEMPLATE_GROUPS: readonly ["notifications", "server_health", "policies", "housekeeping"];
4
+ export declare const TEMPLATE_SCHEMA_VERSION = 1;
5
+ export declare const TEMPLATE_MIN_SERVER_VERSION = "2.2.0";
6
+ export declare const templateInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7
+ kind: z.ZodLiteral<"server">;
8
+ key: z.ZodString;
9
+ label: z.ZodString;
10
+ description: z.ZodOptional<z.ZodString>;
11
+ required: z.ZodBoolean;
12
+ }, z.core.$strict>, z.ZodObject<{
13
+ kind: z.ZodLiteral<"account">;
14
+ key: z.ZodString;
15
+ label: z.ZodString;
16
+ description: z.ZodOptional<z.ZodString>;
17
+ required: z.ZodBoolean;
18
+ }, z.core.$strict>, z.ZodObject<{
19
+ kind: z.ZodLiteral<"person">;
20
+ key: z.ZodString;
21
+ label: z.ZodString;
22
+ description: z.ZodOptional<z.ZodString>;
23
+ required: z.ZodBoolean;
24
+ }, z.core.$strict>, z.ZodObject<{
25
+ kind: z.ZodLiteral<"destinations">;
26
+ required: z.ZodLiteral<true>;
27
+ key: z.ZodString;
28
+ label: z.ZodString;
29
+ description: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strict>, z.ZodObject<{
31
+ kind: z.ZodLiteral<"field_value">;
32
+ field: z.ZodUnion<readonly [z.ZodEnum<{
33
+ concurrent_streams: "concurrent_streams";
34
+ active_session_distance_km: "active_session_distance_km";
35
+ travel_speed_kmh: "travel_speed_kmh";
36
+ unique_ips_in_window: "unique_ips_in_window";
37
+ unique_devices_in_window: "unique_devices_in_window";
38
+ inactive_days: "inactive_days";
39
+ current_pause_minutes: "current_pause_minutes";
40
+ total_pause_minutes: "total_pause_minutes";
41
+ }>, z.ZodEnum<{
42
+ source_resolution: "source_resolution";
43
+ output_resolution: "output_resolution";
44
+ is_transcoding: "is_transcoding";
45
+ is_transcode_downgrade: "is_transcode_downgrade";
46
+ source_bitrate_mbps: "source_bitrate_mbps";
47
+ }>, z.ZodEnum<{
48
+ user_id: "user_id";
49
+ trust_score: "trust_score";
50
+ account_age_days: "account_age_days";
51
+ }>, z.ZodEnum<{
52
+ device_type: "device_type";
53
+ client_name: "client_name";
54
+ platform: "platform";
55
+ }>, z.ZodEnum<{
56
+ is_local_network: "is_local_network";
57
+ country: "country";
58
+ ip_in_range: "ip_in_range";
59
+ }>, z.ZodEnum<{
60
+ server_id: "server_id";
61
+ media_type: "media_type";
62
+ }>, z.ZodEnum<{
63
+ library_item_type: "library_item_type";
64
+ library_name: "library_name";
65
+ resolution_after: "resolution_after";
66
+ dynamic_range_after: "dynamic_range_after";
67
+ video_codec_after: "video_codec_after";
68
+ audio_channels_after: "audio_channels_after";
69
+ file_size_after: "file_size_after";
70
+ }>]>;
71
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>>;
72
+ key: z.ZodString;
73
+ label: z.ZodString;
74
+ description: z.ZodOptional<z.ZodString>;
75
+ required: z.ZodBoolean;
76
+ }, z.core.$strict>, z.ZodObject<{
77
+ kind: z.ZodLiteral<"number">;
78
+ min: z.ZodOptional<z.ZodNumber>;
79
+ max: z.ZodOptional<z.ZodNumber>;
80
+ unit: z.ZodOptional<z.ZodString>;
81
+ step: z.ZodOptional<z.ZodNumber>;
82
+ default: z.ZodOptional<z.ZodNumber>;
83
+ key: z.ZodString;
84
+ label: z.ZodString;
85
+ description: z.ZodOptional<z.ZodString>;
86
+ required: z.ZodBoolean;
87
+ }, z.core.$strict>, z.ZodObject<{
88
+ kind: z.ZodLiteral<"duration">;
89
+ unit: z.ZodEnum<{
90
+ minutes: "minutes";
91
+ days: "days";
92
+ hours: "hours";
93
+ }>;
94
+ min: z.ZodOptional<z.ZodNumber>;
95
+ max: z.ZodOptional<z.ZodNumber>;
96
+ default: z.ZodOptional<z.ZodNumber>;
97
+ key: z.ZodString;
98
+ label: z.ZodString;
99
+ description: z.ZodOptional<z.ZodString>;
100
+ required: z.ZodBoolean;
101
+ }, z.core.$strict>, z.ZodObject<{
102
+ kind: z.ZodLiteral<"text">;
103
+ maxLength: z.ZodOptional<z.ZodNumber>;
104
+ default: z.ZodOptional<z.ZodString>;
105
+ key: z.ZodString;
106
+ label: z.ZodString;
107
+ description: z.ZodOptional<z.ZodString>;
108
+ required: z.ZodBoolean;
109
+ }, z.core.$strict>, z.ZodObject<{
110
+ kind: z.ZodLiteral<"boolean">;
111
+ default: z.ZodOptional<z.ZodBoolean>;
112
+ key: z.ZodString;
113
+ label: z.ZodString;
114
+ description: z.ZodOptional<z.ZodString>;
115
+ required: z.ZodBoolean;
116
+ }, z.core.$strict>, z.ZodObject<{
117
+ kind: z.ZodLiteral<"select">;
118
+ options: z.ZodArray<z.ZodObject<{
119
+ value: z.ZodString;
120
+ label: z.ZodString;
121
+ }, z.core.$strict>>;
122
+ multiple: z.ZodOptional<z.ZodBoolean>;
123
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
124
+ key: z.ZodString;
125
+ label: z.ZodString;
126
+ description: z.ZodOptional<z.ZodString>;
127
+ required: z.ZodBoolean;
128
+ }, z.core.$strict>], "kind">;
129
+ export type TemplateInput = z.infer<typeof templateInputSchema>;
130
+ /** Which input kinds each value slot accepts; condition values go by field instead. */
131
+ export declare const SLOT_KINDS: {
132
+ readonly to: readonly ["destinations"];
133
+ readonly serverId: readonly ["server"];
134
+ readonly serverUserId: readonly ["account"];
135
+ readonly userId: readonly ["person"];
136
+ readonly minutes: readonly ["duration", "number"];
137
+ readonly days: readonly ["duration", "number"];
138
+ readonly window_hours: readonly ["duration", "number"];
139
+ readonly enabled: readonly ["boolean"];
140
+ readonly exclude_same_device: readonly ["boolean"];
141
+ readonly exclude_same_ip: readonly ["boolean"];
142
+ readonly message: readonly ["text"];
143
+ readonly title: readonly ["text"];
144
+ readonly body: readonly ["text"];
145
+ readonly amount: readonly ["number", "duration"];
146
+ readonly value: readonly ["number", "duration"];
147
+ readonly delay_seconds: readonly ["number", "duration"];
148
+ readonly cooldown_minutes: readonly ["number", "duration"];
149
+ };
150
+ export type TemplateSlot = keyof typeof SLOT_KINDS;
151
+ export declare const templateDefinitionSchema: z.ZodObject<{
152
+ kind: z.ZodEnum<{
153
+ policy: "policy";
154
+ notification: "notification";
155
+ }>;
156
+ severity: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
157
+ low: "low";
158
+ warning: "warning";
159
+ high: "high";
160
+ }>>>;
161
+ triggers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
162
+ type: z.ZodEnum<{
163
+ "session.started": "session.started";
164
+ "session.stopped": "session.stopped";
165
+ "session.transcode_changed": "session.transcode_changed";
166
+ "session.paused": "session.paused";
167
+ "account.new_device": "account.new_device";
168
+ "account.trust_changed": "account.trust_changed";
169
+ "media.added": "media.added";
170
+ "media.upgraded": "media.upgraded";
171
+ "server.down": "server.down";
172
+ "server.up": "server.up";
173
+ "plugin.update_available": "plugin.update_available";
174
+ "server.update_available": "server.update_available";
175
+ "tracearr.update_available": "tracearr.update_available";
176
+ }>;
177
+ id: z.ZodUUID;
178
+ enabled: z.ZodUnion<readonly [z.ZodObject<{
179
+ $input: z.ZodString;
180
+ }, z.core.$strict>, z.ZodBoolean]>;
181
+ }, z.core.$strict>, z.ZodObject<{
182
+ type: z.ZodLiteral<"session.held_for">;
183
+ id: z.ZodUUID;
184
+ enabled: z.ZodUnion<readonly [z.ZodObject<{
185
+ $input: z.ZodString;
186
+ }, z.core.$strict>, z.ZodBoolean]>;
187
+ params: z.ZodObject<{
188
+ measure: z.ZodEnum<{
189
+ current: "current";
190
+ total: "total";
191
+ }>;
192
+ minutes: z.ZodUnion<readonly [z.ZodObject<{
193
+ $input: z.ZodString;
194
+ }, z.core.$strict>, z.ZodNumber]>;
195
+ }, z.core.$strict>;
196
+ }, z.core.$strict>, z.ZodObject<{
197
+ type: z.ZodLiteral<"account.inactive_for">;
198
+ id: z.ZodUUID;
199
+ enabled: z.ZodUnion<readonly [z.ZodObject<{
200
+ $input: z.ZodString;
201
+ }, z.core.$strict>, z.ZodBoolean]>;
202
+ params: z.ZodObject<{
203
+ days: z.ZodUnion<readonly [z.ZodObject<{
204
+ $input: z.ZodString;
205
+ }, z.core.$strict>, z.ZodNumber]>;
206
+ }, z.core.$strict>;
207
+ }, z.core.$strict>], "type">>;
208
+ conditions: z.ZodObject<{
209
+ groups: z.ZodArray<z.ZodObject<{
210
+ match: z.ZodOptional<z.ZodEnum<{
211
+ any: "any";
212
+ all: "all";
213
+ }>>;
214
+ id: z.ZodOptional<z.ZodUUID>;
215
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
216
+ $input: z.ZodString;
217
+ }, z.core.$strict>, z.ZodBoolean]>>;
218
+ conditions: z.ZodArray<z.ZodObject<{
219
+ field: z.ZodUnion<readonly [z.ZodEnum<{
220
+ concurrent_streams: "concurrent_streams";
221
+ active_session_distance_km: "active_session_distance_km";
222
+ travel_speed_kmh: "travel_speed_kmh";
223
+ unique_ips_in_window: "unique_ips_in_window";
224
+ unique_devices_in_window: "unique_devices_in_window";
225
+ inactive_days: "inactive_days";
226
+ current_pause_minutes: "current_pause_minutes";
227
+ total_pause_minutes: "total_pause_minutes";
228
+ }>, z.ZodEnum<{
229
+ source_resolution: "source_resolution";
230
+ output_resolution: "output_resolution";
231
+ is_transcoding: "is_transcoding";
232
+ is_transcode_downgrade: "is_transcode_downgrade";
233
+ source_bitrate_mbps: "source_bitrate_mbps";
234
+ }>, z.ZodEnum<{
235
+ user_id: "user_id";
236
+ trust_score: "trust_score";
237
+ account_age_days: "account_age_days";
238
+ }>, z.ZodEnum<{
239
+ device_type: "device_type";
240
+ client_name: "client_name";
241
+ platform: "platform";
242
+ }>, z.ZodEnum<{
243
+ is_local_network: "is_local_network";
244
+ country: "country";
245
+ ip_in_range: "ip_in_range";
246
+ }>, z.ZodEnum<{
247
+ server_id: "server_id";
248
+ media_type: "media_type";
249
+ }>, z.ZodEnum<{
250
+ library_item_type: "library_item_type";
251
+ library_name: "library_name";
252
+ resolution_after: "resolution_after";
253
+ dynamic_range_after: "dynamic_range_after";
254
+ video_codec_after: "video_codec_after";
255
+ audio_channels_after: "audio_channels_after";
256
+ file_size_after: "file_size_after";
257
+ }>]>;
258
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
259
+ eq: "eq";
260
+ neq: "neq";
261
+ gt: "gt";
262
+ gte: "gte";
263
+ lt: "lt";
264
+ lte: "lte";
265
+ }>, z.ZodEnum<{
266
+ in: "in";
267
+ not_in: "not_in";
268
+ }>, z.ZodEnum<{
269
+ contains: "contains";
270
+ not_contains: "not_contains";
271
+ }>]>;
272
+ id: z.ZodOptional<z.ZodUUID>;
273
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
274
+ $input: z.ZodString;
275
+ }, z.core.$strict>, z.ZodBoolean]>>;
276
+ value: z.ZodUnion<readonly [z.ZodObject<{
277
+ $input: z.ZodString;
278
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>]>;
279
+ params: z.ZodOptional<z.ZodObject<{
280
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
281
+ unknown: "unknown";
282
+ mobile: "mobile";
283
+ tablet: "tablet";
284
+ tv: "tv";
285
+ desktop: "desktop";
286
+ browser: "browser";
287
+ }>>>;
288
+ window_hours: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
289
+ $input: z.ZodString;
290
+ }, z.core.$strict>, z.ZodNumber]>>;
291
+ exclude_same_device: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
292
+ $input: z.ZodString;
293
+ }, z.core.$strict>, z.ZodBoolean]>>;
294
+ exclude_same_ip: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
295
+ $input: z.ZodString;
296
+ }, z.core.$strict>, z.ZodBoolean]>>;
297
+ }, z.core.$strip>>;
298
+ }, z.core.$strip>>;
299
+ }, z.core.$strip>>;
300
+ }, z.core.$strip>;
301
+ actions: z.ZodObject<{
302
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
303
+ type: z.ZodLiteral<"send">;
304
+ id: z.ZodOptional<z.ZodUUID>;
305
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
306
+ $input: z.ZodString;
307
+ }, z.core.$strict>, z.ZodBoolean]>>;
308
+ to: z.ZodUnion<readonly [z.ZodObject<{
309
+ $input: z.ZodString;
310
+ }, z.core.$strict>, z.ZodArray<z.ZodUUID>]>;
311
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
312
+ $input: z.ZodString;
313
+ }, z.core.$strict>, z.ZodString]>>;
314
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
315
+ $input: z.ZodString;
316
+ }, z.core.$strict>, z.ZodString]>>;
317
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
318
+ $input: z.ZodString;
319
+ }, z.core.$strict>, z.ZodNumber]>>;
320
+ }, z.core.$strip>, z.ZodObject<{
321
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
322
+ $input: z.ZodString;
323
+ }, z.core.$strict>, z.ZodBoolean]>>;
324
+ amount: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
325
+ $input: z.ZodString;
326
+ }, z.core.$strict>, z.ZodNumber]>>;
327
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
328
+ $input: z.ZodString;
329
+ }, z.core.$strict>, z.ZodNumber]>>;
330
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
331
+ $input: z.ZodString;
332
+ }, z.core.$strict>, z.ZodNumber]>>;
333
+ type: z.ZodLiteral<"trust">;
334
+ mode: z.ZodEnum<{
335
+ set: "set";
336
+ adjust: "adjust";
337
+ reset: "reset";
338
+ }>;
339
+ id: z.ZodOptional<z.ZodUUID>;
340
+ }, z.core.$strip>, z.ZodObject<{
341
+ type: z.ZodLiteral<"kill_stream">;
342
+ target: z.ZodOptional<z.ZodEnum<{
343
+ triggering: "triggering";
344
+ oldest: "oldest";
345
+ newest: "newest";
346
+ all_except_one: "all_except_one";
347
+ all_user: "all_user";
348
+ }>>;
349
+ id: z.ZodOptional<z.ZodUUID>;
350
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
351
+ $input: z.ZodString;
352
+ }, z.core.$strict>, z.ZodBoolean]>>;
353
+ delay_seconds: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
354
+ $input: z.ZodString;
355
+ }, z.core.$strict>, z.ZodNumber]>>;
356
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
357
+ $input: z.ZodString;
358
+ }, z.core.$strict>, z.ZodNumber]>>;
359
+ message: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
360
+ $input: z.ZodString;
361
+ }, z.core.$strict>, z.ZodString]>>;
362
+ }, z.core.$strip>, z.ZodObject<{
363
+ type: z.ZodLiteral<"message_client">;
364
+ target: z.ZodOptional<z.ZodEnum<{
365
+ triggering: "triggering";
366
+ oldest: "oldest";
367
+ newest: "newest";
368
+ all_except_one: "all_except_one";
369
+ all_user: "all_user";
370
+ }>>;
371
+ id: z.ZodOptional<z.ZodUUID>;
372
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
373
+ $input: z.ZodString;
374
+ }, z.core.$strict>, z.ZodBoolean]>>;
375
+ message: z.ZodUnion<readonly [z.ZodObject<{
376
+ $input: z.ZodString;
377
+ }, z.core.$strict>, z.ZodString]>;
378
+ }, z.core.$strip>, z.ZodObject<{
379
+ type: z.ZodLiteral<"if">;
380
+ id: z.ZodOptional<z.ZodUUID>;
381
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
382
+ $input: z.ZodString;
383
+ }, z.core.$strict>, z.ZodBoolean]>>;
384
+ conditions: z.ZodObject<{
385
+ groups: z.ZodArray<z.ZodObject<{
386
+ match: z.ZodOptional<z.ZodEnum<{
387
+ any: "any";
388
+ all: "all";
389
+ }>>;
390
+ id: z.ZodOptional<z.ZodUUID>;
391
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
392
+ $input: z.ZodString;
393
+ }, z.core.$strict>, z.ZodBoolean]>>;
394
+ conditions: z.ZodArray<z.ZodObject<{
395
+ field: z.ZodUnion<readonly [z.ZodEnum<{
396
+ concurrent_streams: "concurrent_streams";
397
+ active_session_distance_km: "active_session_distance_km";
398
+ travel_speed_kmh: "travel_speed_kmh";
399
+ unique_ips_in_window: "unique_ips_in_window";
400
+ unique_devices_in_window: "unique_devices_in_window";
401
+ inactive_days: "inactive_days";
402
+ current_pause_minutes: "current_pause_minutes";
403
+ total_pause_minutes: "total_pause_minutes";
404
+ }>, z.ZodEnum<{
405
+ source_resolution: "source_resolution";
406
+ output_resolution: "output_resolution";
407
+ is_transcoding: "is_transcoding";
408
+ is_transcode_downgrade: "is_transcode_downgrade";
409
+ source_bitrate_mbps: "source_bitrate_mbps";
410
+ }>, z.ZodEnum<{
411
+ user_id: "user_id";
412
+ trust_score: "trust_score";
413
+ account_age_days: "account_age_days";
414
+ }>, z.ZodEnum<{
415
+ device_type: "device_type";
416
+ client_name: "client_name";
417
+ platform: "platform";
418
+ }>, z.ZodEnum<{
419
+ is_local_network: "is_local_network";
420
+ country: "country";
421
+ ip_in_range: "ip_in_range";
422
+ }>, z.ZodEnum<{
423
+ server_id: "server_id";
424
+ media_type: "media_type";
425
+ }>, z.ZodEnum<{
426
+ library_item_type: "library_item_type";
427
+ library_name: "library_name";
428
+ resolution_after: "resolution_after";
429
+ dynamic_range_after: "dynamic_range_after";
430
+ video_codec_after: "video_codec_after";
431
+ audio_channels_after: "audio_channels_after";
432
+ file_size_after: "file_size_after";
433
+ }>]>;
434
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
435
+ eq: "eq";
436
+ neq: "neq";
437
+ gt: "gt";
438
+ gte: "gte";
439
+ lt: "lt";
440
+ lte: "lte";
441
+ }>, z.ZodEnum<{
442
+ in: "in";
443
+ not_in: "not_in";
444
+ }>, z.ZodEnum<{
445
+ contains: "contains";
446
+ not_contains: "not_contains";
447
+ }>]>;
448
+ id: z.ZodOptional<z.ZodUUID>;
449
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
450
+ $input: z.ZodString;
451
+ }, z.core.$strict>, z.ZodBoolean]>>;
452
+ value: z.ZodUnion<readonly [z.ZodObject<{
453
+ $input: z.ZodString;
454
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>]>;
455
+ params: z.ZodOptional<z.ZodObject<{
456
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
457
+ unknown: "unknown";
458
+ mobile: "mobile";
459
+ tablet: "tablet";
460
+ tv: "tv";
461
+ desktop: "desktop";
462
+ browser: "browser";
463
+ }>>>;
464
+ window_hours: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
465
+ $input: z.ZodString;
466
+ }, z.core.$strict>, z.ZodNumber]>>;
467
+ exclude_same_device: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
468
+ $input: z.ZodString;
469
+ }, z.core.$strict>, z.ZodBoolean]>>;
470
+ exclude_same_ip: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
471
+ $input: z.ZodString;
472
+ }, z.core.$strict>, z.ZodBoolean]>>;
473
+ }, z.core.$strip>>;
474
+ }, z.core.$strip>>;
475
+ }, z.core.$strip>>;
476
+ }, z.core.$strip>;
477
+ then: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
478
+ type: z.ZodLiteral<"send">;
479
+ id: z.ZodOptional<z.ZodUUID>;
480
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
481
+ $input: z.ZodString;
482
+ }, z.core.$strict>, z.ZodBoolean]>>;
483
+ to: z.ZodUnion<readonly [z.ZodObject<{
484
+ $input: z.ZodString;
485
+ }, z.core.$strict>, z.ZodArray<z.ZodUUID>]>;
486
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
487
+ $input: z.ZodString;
488
+ }, z.core.$strict>, z.ZodString]>>;
489
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
490
+ $input: z.ZodString;
491
+ }, z.core.$strict>, z.ZodString]>>;
492
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
493
+ $input: z.ZodString;
494
+ }, z.core.$strict>, z.ZodNumber]>>;
495
+ }, z.core.$strip>, z.ZodObject<{
496
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
497
+ $input: z.ZodString;
498
+ }, z.core.$strict>, z.ZodBoolean]>>;
499
+ amount: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
500
+ $input: z.ZodString;
501
+ }, z.core.$strict>, z.ZodNumber]>>;
502
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
503
+ $input: z.ZodString;
504
+ }, z.core.$strict>, z.ZodNumber]>>;
505
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
506
+ $input: z.ZodString;
507
+ }, z.core.$strict>, z.ZodNumber]>>;
508
+ type: z.ZodLiteral<"trust">;
509
+ mode: z.ZodEnum<{
510
+ set: "set";
511
+ adjust: "adjust";
512
+ reset: "reset";
513
+ }>;
514
+ id: z.ZodOptional<z.ZodUUID>;
515
+ }, z.core.$strip>, z.ZodObject<{
516
+ type: z.ZodLiteral<"kill_stream">;
517
+ target: z.ZodOptional<z.ZodEnum<{
518
+ triggering: "triggering";
519
+ oldest: "oldest";
520
+ newest: "newest";
521
+ all_except_one: "all_except_one";
522
+ all_user: "all_user";
523
+ }>>;
524
+ id: z.ZodOptional<z.ZodUUID>;
525
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
526
+ $input: z.ZodString;
527
+ }, z.core.$strict>, z.ZodBoolean]>>;
528
+ delay_seconds: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
529
+ $input: z.ZodString;
530
+ }, z.core.$strict>, z.ZodNumber]>>;
531
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
532
+ $input: z.ZodString;
533
+ }, z.core.$strict>, z.ZodNumber]>>;
534
+ message: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
535
+ $input: z.ZodString;
536
+ }, z.core.$strict>, z.ZodString]>>;
537
+ }, z.core.$strip>, z.ZodObject<{
538
+ type: z.ZodLiteral<"message_client">;
539
+ target: z.ZodOptional<z.ZodEnum<{
540
+ triggering: "triggering";
541
+ oldest: "oldest";
542
+ newest: "newest";
543
+ all_except_one: "all_except_one";
544
+ all_user: "all_user";
545
+ }>>;
546
+ id: z.ZodOptional<z.ZodUUID>;
547
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
548
+ $input: z.ZodString;
549
+ }, z.core.$strict>, z.ZodBoolean]>>;
550
+ message: z.ZodUnion<readonly [z.ZodObject<{
551
+ $input: z.ZodString;
552
+ }, z.core.$strict>, z.ZodString]>;
553
+ }, z.core.$strip>], "type">>;
554
+ else: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
555
+ type: z.ZodLiteral<"send">;
556
+ id: z.ZodOptional<z.ZodUUID>;
557
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
558
+ $input: z.ZodString;
559
+ }, z.core.$strict>, z.ZodBoolean]>>;
560
+ to: z.ZodUnion<readonly [z.ZodObject<{
561
+ $input: z.ZodString;
562
+ }, z.core.$strict>, z.ZodArray<z.ZodUUID>]>;
563
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
564
+ $input: z.ZodString;
565
+ }, z.core.$strict>, z.ZodString]>>;
566
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
567
+ $input: z.ZodString;
568
+ }, z.core.$strict>, z.ZodString]>>;
569
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
570
+ $input: z.ZodString;
571
+ }, z.core.$strict>, z.ZodNumber]>>;
572
+ }, z.core.$strip>, z.ZodObject<{
573
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
574
+ $input: z.ZodString;
575
+ }, z.core.$strict>, z.ZodBoolean]>>;
576
+ amount: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
577
+ $input: z.ZodString;
578
+ }, z.core.$strict>, z.ZodNumber]>>;
579
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
580
+ $input: z.ZodString;
581
+ }, z.core.$strict>, z.ZodNumber]>>;
582
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
583
+ $input: z.ZodString;
584
+ }, z.core.$strict>, z.ZodNumber]>>;
585
+ type: z.ZodLiteral<"trust">;
586
+ mode: z.ZodEnum<{
587
+ set: "set";
588
+ adjust: "adjust";
589
+ reset: "reset";
590
+ }>;
591
+ id: z.ZodOptional<z.ZodUUID>;
592
+ }, z.core.$strip>, z.ZodObject<{
593
+ type: z.ZodLiteral<"kill_stream">;
594
+ target: z.ZodOptional<z.ZodEnum<{
595
+ triggering: "triggering";
596
+ oldest: "oldest";
597
+ newest: "newest";
598
+ all_except_one: "all_except_one";
599
+ all_user: "all_user";
600
+ }>>;
601
+ id: z.ZodOptional<z.ZodUUID>;
602
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
603
+ $input: z.ZodString;
604
+ }, z.core.$strict>, z.ZodBoolean]>>;
605
+ delay_seconds: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
606
+ $input: z.ZodString;
607
+ }, z.core.$strict>, z.ZodNumber]>>;
608
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
609
+ $input: z.ZodString;
610
+ }, z.core.$strict>, z.ZodNumber]>>;
611
+ message: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
612
+ $input: z.ZodString;
613
+ }, z.core.$strict>, z.ZodString]>>;
614
+ }, z.core.$strip>, z.ZodObject<{
615
+ type: z.ZodLiteral<"message_client">;
616
+ target: z.ZodOptional<z.ZodEnum<{
617
+ triggering: "triggering";
618
+ oldest: "oldest";
619
+ newest: "newest";
620
+ all_except_one: "all_except_one";
621
+ all_user: "all_user";
622
+ }>>;
623
+ id: z.ZodOptional<z.ZodUUID>;
624
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
625
+ $input: z.ZodString;
626
+ }, z.core.$strict>, z.ZodBoolean]>>;
627
+ message: z.ZodUnion<readonly [z.ZodObject<{
628
+ $input: z.ZodString;
629
+ }, z.core.$strict>, z.ZodString]>;
630
+ }, z.core.$strip>], "type">>;
631
+ }, z.core.$strict>], "type">>;
632
+ }, z.core.$strip>;
633
+ scope: z.ZodObject<{
634
+ serverId: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
635
+ $input: z.ZodString;
636
+ }, z.core.$strict>, z.ZodUUID]>>;
637
+ serverUserId: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
638
+ $input: z.ZodString;
639
+ }, z.core.$strict>, z.ZodUUID]>>;
640
+ userId: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
641
+ $input: z.ZodString;
642
+ }, z.core.$strict>, z.ZodUUID]>>;
643
+ }, z.core.$strict>;
644
+ enforceAcrossServers: z.ZodOptional<z.ZodBoolean>;
645
+ cooldownMinutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
646
+ }, z.core.$strict>;
647
+ export type TemplateDefinition = z.infer<typeof templateDefinitionSchema>;
648
+ export declare const templateEnvelopeSchema: z.ZodObject<{
649
+ schemaVersion: z.ZodLiteral<1>;
650
+ slug: z.ZodString;
651
+ name: z.ZodString;
652
+ description: z.ZodString;
653
+ group: z.ZodEnum<{
654
+ notifications: "notifications";
655
+ server_health: "server_health";
656
+ policies: "policies";
657
+ housekeeping: "housekeeping";
658
+ }>;
659
+ kind: z.ZodEnum<{
660
+ policy: "policy";
661
+ notification: "notification";
662
+ }>;
663
+ author: z.ZodOptional<z.ZodString>;
664
+ minServerVersion: z.ZodString;
665
+ inputs: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
666
+ kind: z.ZodLiteral<"server">;
667
+ key: z.ZodString;
668
+ label: z.ZodString;
669
+ description: z.ZodOptional<z.ZodString>;
670
+ required: z.ZodBoolean;
671
+ }, z.core.$strict>, z.ZodObject<{
672
+ kind: z.ZodLiteral<"account">;
673
+ key: z.ZodString;
674
+ label: z.ZodString;
675
+ description: z.ZodOptional<z.ZodString>;
676
+ required: z.ZodBoolean;
677
+ }, z.core.$strict>, z.ZodObject<{
678
+ kind: z.ZodLiteral<"person">;
679
+ key: z.ZodString;
680
+ label: z.ZodString;
681
+ description: z.ZodOptional<z.ZodString>;
682
+ required: z.ZodBoolean;
683
+ }, z.core.$strict>, z.ZodObject<{
684
+ kind: z.ZodLiteral<"destinations">;
685
+ required: z.ZodLiteral<true>;
686
+ key: z.ZodString;
687
+ label: z.ZodString;
688
+ description: z.ZodOptional<z.ZodString>;
689
+ }, z.core.$strict>, z.ZodObject<{
690
+ kind: z.ZodLiteral<"field_value">;
691
+ field: z.ZodUnion<readonly [z.ZodEnum<{
692
+ concurrent_streams: "concurrent_streams";
693
+ active_session_distance_km: "active_session_distance_km";
694
+ travel_speed_kmh: "travel_speed_kmh";
695
+ unique_ips_in_window: "unique_ips_in_window";
696
+ unique_devices_in_window: "unique_devices_in_window";
697
+ inactive_days: "inactive_days";
698
+ current_pause_minutes: "current_pause_minutes";
699
+ total_pause_minutes: "total_pause_minutes";
700
+ }>, z.ZodEnum<{
701
+ source_resolution: "source_resolution";
702
+ output_resolution: "output_resolution";
703
+ is_transcoding: "is_transcoding";
704
+ is_transcode_downgrade: "is_transcode_downgrade";
705
+ source_bitrate_mbps: "source_bitrate_mbps";
706
+ }>, z.ZodEnum<{
707
+ user_id: "user_id";
708
+ trust_score: "trust_score";
709
+ account_age_days: "account_age_days";
710
+ }>, z.ZodEnum<{
711
+ device_type: "device_type";
712
+ client_name: "client_name";
713
+ platform: "platform";
714
+ }>, z.ZodEnum<{
715
+ is_local_network: "is_local_network";
716
+ country: "country";
717
+ ip_in_range: "ip_in_range";
718
+ }>, z.ZodEnum<{
719
+ server_id: "server_id";
720
+ media_type: "media_type";
721
+ }>, z.ZodEnum<{
722
+ library_item_type: "library_item_type";
723
+ library_name: "library_name";
724
+ resolution_after: "resolution_after";
725
+ dynamic_range_after: "dynamic_range_after";
726
+ video_codec_after: "video_codec_after";
727
+ audio_channels_after: "audio_channels_after";
728
+ file_size_after: "file_size_after";
729
+ }>]>;
730
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>>;
731
+ key: z.ZodString;
732
+ label: z.ZodString;
733
+ description: z.ZodOptional<z.ZodString>;
734
+ required: z.ZodBoolean;
735
+ }, z.core.$strict>, z.ZodObject<{
736
+ kind: z.ZodLiteral<"number">;
737
+ min: z.ZodOptional<z.ZodNumber>;
738
+ max: z.ZodOptional<z.ZodNumber>;
739
+ unit: z.ZodOptional<z.ZodString>;
740
+ step: z.ZodOptional<z.ZodNumber>;
741
+ default: z.ZodOptional<z.ZodNumber>;
742
+ key: z.ZodString;
743
+ label: z.ZodString;
744
+ description: z.ZodOptional<z.ZodString>;
745
+ required: z.ZodBoolean;
746
+ }, z.core.$strict>, z.ZodObject<{
747
+ kind: z.ZodLiteral<"duration">;
748
+ unit: z.ZodEnum<{
749
+ minutes: "minutes";
750
+ days: "days";
751
+ hours: "hours";
752
+ }>;
753
+ min: z.ZodOptional<z.ZodNumber>;
754
+ max: z.ZodOptional<z.ZodNumber>;
755
+ default: z.ZodOptional<z.ZodNumber>;
756
+ key: z.ZodString;
757
+ label: z.ZodString;
758
+ description: z.ZodOptional<z.ZodString>;
759
+ required: z.ZodBoolean;
760
+ }, z.core.$strict>, z.ZodObject<{
761
+ kind: z.ZodLiteral<"text">;
762
+ maxLength: z.ZodOptional<z.ZodNumber>;
763
+ default: z.ZodOptional<z.ZodString>;
764
+ key: z.ZodString;
765
+ label: z.ZodString;
766
+ description: z.ZodOptional<z.ZodString>;
767
+ required: z.ZodBoolean;
768
+ }, z.core.$strict>, z.ZodObject<{
769
+ kind: z.ZodLiteral<"boolean">;
770
+ default: z.ZodOptional<z.ZodBoolean>;
771
+ key: z.ZodString;
772
+ label: z.ZodString;
773
+ description: z.ZodOptional<z.ZodString>;
774
+ required: z.ZodBoolean;
775
+ }, z.core.$strict>, z.ZodObject<{
776
+ kind: z.ZodLiteral<"select">;
777
+ options: z.ZodArray<z.ZodObject<{
778
+ value: z.ZodString;
779
+ label: z.ZodString;
780
+ }, z.core.$strict>>;
781
+ multiple: z.ZodOptional<z.ZodBoolean>;
782
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
783
+ key: z.ZodString;
784
+ label: z.ZodString;
785
+ description: z.ZodOptional<z.ZodString>;
786
+ required: z.ZodBoolean;
787
+ }, z.core.$strict>], "kind">>;
788
+ definition: z.ZodObject<{
789
+ kind: z.ZodEnum<{
790
+ policy: "policy";
791
+ notification: "notification";
792
+ }>;
793
+ severity: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
794
+ low: "low";
795
+ warning: "warning";
796
+ high: "high";
797
+ }>>>;
798
+ triggers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
799
+ type: z.ZodEnum<{
800
+ "session.started": "session.started";
801
+ "session.stopped": "session.stopped";
802
+ "session.transcode_changed": "session.transcode_changed";
803
+ "session.paused": "session.paused";
804
+ "account.new_device": "account.new_device";
805
+ "account.trust_changed": "account.trust_changed";
806
+ "media.added": "media.added";
807
+ "media.upgraded": "media.upgraded";
808
+ "server.down": "server.down";
809
+ "server.up": "server.up";
810
+ "plugin.update_available": "plugin.update_available";
811
+ "server.update_available": "server.update_available";
812
+ "tracearr.update_available": "tracearr.update_available";
813
+ }>;
814
+ id: z.ZodUUID;
815
+ enabled: z.ZodUnion<readonly [z.ZodObject<{
816
+ $input: z.ZodString;
817
+ }, z.core.$strict>, z.ZodBoolean]>;
818
+ }, z.core.$strict>, z.ZodObject<{
819
+ type: z.ZodLiteral<"session.held_for">;
820
+ id: z.ZodUUID;
821
+ enabled: z.ZodUnion<readonly [z.ZodObject<{
822
+ $input: z.ZodString;
823
+ }, z.core.$strict>, z.ZodBoolean]>;
824
+ params: z.ZodObject<{
825
+ measure: z.ZodEnum<{
826
+ current: "current";
827
+ total: "total";
828
+ }>;
829
+ minutes: z.ZodUnion<readonly [z.ZodObject<{
830
+ $input: z.ZodString;
831
+ }, z.core.$strict>, z.ZodNumber]>;
832
+ }, z.core.$strict>;
833
+ }, z.core.$strict>, z.ZodObject<{
834
+ type: z.ZodLiteral<"account.inactive_for">;
835
+ id: z.ZodUUID;
836
+ enabled: z.ZodUnion<readonly [z.ZodObject<{
837
+ $input: z.ZodString;
838
+ }, z.core.$strict>, z.ZodBoolean]>;
839
+ params: z.ZodObject<{
840
+ days: z.ZodUnion<readonly [z.ZodObject<{
841
+ $input: z.ZodString;
842
+ }, z.core.$strict>, z.ZodNumber]>;
843
+ }, z.core.$strict>;
844
+ }, z.core.$strict>], "type">>;
845
+ conditions: z.ZodObject<{
846
+ groups: z.ZodArray<z.ZodObject<{
847
+ match: z.ZodOptional<z.ZodEnum<{
848
+ any: "any";
849
+ all: "all";
850
+ }>>;
851
+ id: z.ZodOptional<z.ZodUUID>;
852
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
853
+ $input: z.ZodString;
854
+ }, z.core.$strict>, z.ZodBoolean]>>;
855
+ conditions: z.ZodArray<z.ZodObject<{
856
+ field: z.ZodUnion<readonly [z.ZodEnum<{
857
+ concurrent_streams: "concurrent_streams";
858
+ active_session_distance_km: "active_session_distance_km";
859
+ travel_speed_kmh: "travel_speed_kmh";
860
+ unique_ips_in_window: "unique_ips_in_window";
861
+ unique_devices_in_window: "unique_devices_in_window";
862
+ inactive_days: "inactive_days";
863
+ current_pause_minutes: "current_pause_minutes";
864
+ total_pause_minutes: "total_pause_minutes";
865
+ }>, z.ZodEnum<{
866
+ source_resolution: "source_resolution";
867
+ output_resolution: "output_resolution";
868
+ is_transcoding: "is_transcoding";
869
+ is_transcode_downgrade: "is_transcode_downgrade";
870
+ source_bitrate_mbps: "source_bitrate_mbps";
871
+ }>, z.ZodEnum<{
872
+ user_id: "user_id";
873
+ trust_score: "trust_score";
874
+ account_age_days: "account_age_days";
875
+ }>, z.ZodEnum<{
876
+ device_type: "device_type";
877
+ client_name: "client_name";
878
+ platform: "platform";
879
+ }>, z.ZodEnum<{
880
+ is_local_network: "is_local_network";
881
+ country: "country";
882
+ ip_in_range: "ip_in_range";
883
+ }>, z.ZodEnum<{
884
+ server_id: "server_id";
885
+ media_type: "media_type";
886
+ }>, z.ZodEnum<{
887
+ library_item_type: "library_item_type";
888
+ library_name: "library_name";
889
+ resolution_after: "resolution_after";
890
+ dynamic_range_after: "dynamic_range_after";
891
+ video_codec_after: "video_codec_after";
892
+ audio_channels_after: "audio_channels_after";
893
+ file_size_after: "file_size_after";
894
+ }>]>;
895
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
896
+ eq: "eq";
897
+ neq: "neq";
898
+ gt: "gt";
899
+ gte: "gte";
900
+ lt: "lt";
901
+ lte: "lte";
902
+ }>, z.ZodEnum<{
903
+ in: "in";
904
+ not_in: "not_in";
905
+ }>, z.ZodEnum<{
906
+ contains: "contains";
907
+ not_contains: "not_contains";
908
+ }>]>;
909
+ id: z.ZodOptional<z.ZodUUID>;
910
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
911
+ $input: z.ZodString;
912
+ }, z.core.$strict>, z.ZodBoolean]>>;
913
+ value: z.ZodUnion<readonly [z.ZodObject<{
914
+ $input: z.ZodString;
915
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>]>;
916
+ params: z.ZodOptional<z.ZodObject<{
917
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
918
+ unknown: "unknown";
919
+ mobile: "mobile";
920
+ tablet: "tablet";
921
+ tv: "tv";
922
+ desktop: "desktop";
923
+ browser: "browser";
924
+ }>>>;
925
+ window_hours: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
926
+ $input: z.ZodString;
927
+ }, z.core.$strict>, z.ZodNumber]>>;
928
+ exclude_same_device: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
929
+ $input: z.ZodString;
930
+ }, z.core.$strict>, z.ZodBoolean]>>;
931
+ exclude_same_ip: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
932
+ $input: z.ZodString;
933
+ }, z.core.$strict>, z.ZodBoolean]>>;
934
+ }, z.core.$strip>>;
935
+ }, z.core.$strip>>;
936
+ }, z.core.$strip>>;
937
+ }, z.core.$strip>;
938
+ actions: z.ZodObject<{
939
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
940
+ type: z.ZodLiteral<"send">;
941
+ id: z.ZodOptional<z.ZodUUID>;
942
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
943
+ $input: z.ZodString;
944
+ }, z.core.$strict>, z.ZodBoolean]>>;
945
+ to: z.ZodUnion<readonly [z.ZodObject<{
946
+ $input: z.ZodString;
947
+ }, z.core.$strict>, z.ZodArray<z.ZodUUID>]>;
948
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
949
+ $input: z.ZodString;
950
+ }, z.core.$strict>, z.ZodString]>>;
951
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
952
+ $input: z.ZodString;
953
+ }, z.core.$strict>, z.ZodString]>>;
954
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
955
+ $input: z.ZodString;
956
+ }, z.core.$strict>, z.ZodNumber]>>;
957
+ }, z.core.$strip>, z.ZodObject<{
958
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
959
+ $input: z.ZodString;
960
+ }, z.core.$strict>, z.ZodBoolean]>>;
961
+ amount: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
962
+ $input: z.ZodString;
963
+ }, z.core.$strict>, z.ZodNumber]>>;
964
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
965
+ $input: z.ZodString;
966
+ }, z.core.$strict>, z.ZodNumber]>>;
967
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
968
+ $input: z.ZodString;
969
+ }, z.core.$strict>, z.ZodNumber]>>;
970
+ type: z.ZodLiteral<"trust">;
971
+ mode: z.ZodEnum<{
972
+ set: "set";
973
+ adjust: "adjust";
974
+ reset: "reset";
975
+ }>;
976
+ id: z.ZodOptional<z.ZodUUID>;
977
+ }, z.core.$strip>, z.ZodObject<{
978
+ type: z.ZodLiteral<"kill_stream">;
979
+ target: z.ZodOptional<z.ZodEnum<{
980
+ triggering: "triggering";
981
+ oldest: "oldest";
982
+ newest: "newest";
983
+ all_except_one: "all_except_one";
984
+ all_user: "all_user";
985
+ }>>;
986
+ id: z.ZodOptional<z.ZodUUID>;
987
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
988
+ $input: z.ZodString;
989
+ }, z.core.$strict>, z.ZodBoolean]>>;
990
+ delay_seconds: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
991
+ $input: z.ZodString;
992
+ }, z.core.$strict>, z.ZodNumber]>>;
993
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
994
+ $input: z.ZodString;
995
+ }, z.core.$strict>, z.ZodNumber]>>;
996
+ message: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
997
+ $input: z.ZodString;
998
+ }, z.core.$strict>, z.ZodString]>>;
999
+ }, z.core.$strip>, z.ZodObject<{
1000
+ type: z.ZodLiteral<"message_client">;
1001
+ target: z.ZodOptional<z.ZodEnum<{
1002
+ triggering: "triggering";
1003
+ oldest: "oldest";
1004
+ newest: "newest";
1005
+ all_except_one: "all_except_one";
1006
+ all_user: "all_user";
1007
+ }>>;
1008
+ id: z.ZodOptional<z.ZodUUID>;
1009
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1010
+ $input: z.ZodString;
1011
+ }, z.core.$strict>, z.ZodBoolean]>>;
1012
+ message: z.ZodUnion<readonly [z.ZodObject<{
1013
+ $input: z.ZodString;
1014
+ }, z.core.$strict>, z.ZodString]>;
1015
+ }, z.core.$strip>, z.ZodObject<{
1016
+ type: z.ZodLiteral<"if">;
1017
+ id: z.ZodOptional<z.ZodUUID>;
1018
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1019
+ $input: z.ZodString;
1020
+ }, z.core.$strict>, z.ZodBoolean]>>;
1021
+ conditions: z.ZodObject<{
1022
+ groups: z.ZodArray<z.ZodObject<{
1023
+ match: z.ZodOptional<z.ZodEnum<{
1024
+ any: "any";
1025
+ all: "all";
1026
+ }>>;
1027
+ id: z.ZodOptional<z.ZodUUID>;
1028
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1029
+ $input: z.ZodString;
1030
+ }, z.core.$strict>, z.ZodBoolean]>>;
1031
+ conditions: z.ZodArray<z.ZodObject<{
1032
+ field: z.ZodUnion<readonly [z.ZodEnum<{
1033
+ concurrent_streams: "concurrent_streams";
1034
+ active_session_distance_km: "active_session_distance_km";
1035
+ travel_speed_kmh: "travel_speed_kmh";
1036
+ unique_ips_in_window: "unique_ips_in_window";
1037
+ unique_devices_in_window: "unique_devices_in_window";
1038
+ inactive_days: "inactive_days";
1039
+ current_pause_minutes: "current_pause_minutes";
1040
+ total_pause_minutes: "total_pause_minutes";
1041
+ }>, z.ZodEnum<{
1042
+ source_resolution: "source_resolution";
1043
+ output_resolution: "output_resolution";
1044
+ is_transcoding: "is_transcoding";
1045
+ is_transcode_downgrade: "is_transcode_downgrade";
1046
+ source_bitrate_mbps: "source_bitrate_mbps";
1047
+ }>, z.ZodEnum<{
1048
+ user_id: "user_id";
1049
+ trust_score: "trust_score";
1050
+ account_age_days: "account_age_days";
1051
+ }>, z.ZodEnum<{
1052
+ device_type: "device_type";
1053
+ client_name: "client_name";
1054
+ platform: "platform";
1055
+ }>, z.ZodEnum<{
1056
+ is_local_network: "is_local_network";
1057
+ country: "country";
1058
+ ip_in_range: "ip_in_range";
1059
+ }>, z.ZodEnum<{
1060
+ server_id: "server_id";
1061
+ media_type: "media_type";
1062
+ }>, z.ZodEnum<{
1063
+ library_item_type: "library_item_type";
1064
+ library_name: "library_name";
1065
+ resolution_after: "resolution_after";
1066
+ dynamic_range_after: "dynamic_range_after";
1067
+ video_codec_after: "video_codec_after";
1068
+ audio_channels_after: "audio_channels_after";
1069
+ file_size_after: "file_size_after";
1070
+ }>]>;
1071
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
1072
+ eq: "eq";
1073
+ neq: "neq";
1074
+ gt: "gt";
1075
+ gte: "gte";
1076
+ lt: "lt";
1077
+ lte: "lte";
1078
+ }>, z.ZodEnum<{
1079
+ in: "in";
1080
+ not_in: "not_in";
1081
+ }>, z.ZodEnum<{
1082
+ contains: "contains";
1083
+ not_contains: "not_contains";
1084
+ }>]>;
1085
+ id: z.ZodOptional<z.ZodUUID>;
1086
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1087
+ $input: z.ZodString;
1088
+ }, z.core.$strict>, z.ZodBoolean]>>;
1089
+ value: z.ZodUnion<readonly [z.ZodObject<{
1090
+ $input: z.ZodString;
1091
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>]>;
1092
+ params: z.ZodOptional<z.ZodObject<{
1093
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1094
+ unknown: "unknown";
1095
+ mobile: "mobile";
1096
+ tablet: "tablet";
1097
+ tv: "tv";
1098
+ desktop: "desktop";
1099
+ browser: "browser";
1100
+ }>>>;
1101
+ window_hours: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1102
+ $input: z.ZodString;
1103
+ }, z.core.$strict>, z.ZodNumber]>>;
1104
+ exclude_same_device: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1105
+ $input: z.ZodString;
1106
+ }, z.core.$strict>, z.ZodBoolean]>>;
1107
+ exclude_same_ip: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1108
+ $input: z.ZodString;
1109
+ }, z.core.$strict>, z.ZodBoolean]>>;
1110
+ }, z.core.$strip>>;
1111
+ }, z.core.$strip>>;
1112
+ }, z.core.$strip>>;
1113
+ }, z.core.$strip>;
1114
+ then: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1115
+ type: z.ZodLiteral<"send">;
1116
+ id: z.ZodOptional<z.ZodUUID>;
1117
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1118
+ $input: z.ZodString;
1119
+ }, z.core.$strict>, z.ZodBoolean]>>;
1120
+ to: z.ZodUnion<readonly [z.ZodObject<{
1121
+ $input: z.ZodString;
1122
+ }, z.core.$strict>, z.ZodArray<z.ZodUUID>]>;
1123
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1124
+ $input: z.ZodString;
1125
+ }, z.core.$strict>, z.ZodString]>>;
1126
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1127
+ $input: z.ZodString;
1128
+ }, z.core.$strict>, z.ZodString]>>;
1129
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1130
+ $input: z.ZodString;
1131
+ }, z.core.$strict>, z.ZodNumber]>>;
1132
+ }, z.core.$strip>, z.ZodObject<{
1133
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1134
+ $input: z.ZodString;
1135
+ }, z.core.$strict>, z.ZodBoolean]>>;
1136
+ amount: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1137
+ $input: z.ZodString;
1138
+ }, z.core.$strict>, z.ZodNumber]>>;
1139
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1140
+ $input: z.ZodString;
1141
+ }, z.core.$strict>, z.ZodNumber]>>;
1142
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1143
+ $input: z.ZodString;
1144
+ }, z.core.$strict>, z.ZodNumber]>>;
1145
+ type: z.ZodLiteral<"trust">;
1146
+ mode: z.ZodEnum<{
1147
+ set: "set";
1148
+ adjust: "adjust";
1149
+ reset: "reset";
1150
+ }>;
1151
+ id: z.ZodOptional<z.ZodUUID>;
1152
+ }, z.core.$strip>, z.ZodObject<{
1153
+ type: z.ZodLiteral<"kill_stream">;
1154
+ target: z.ZodOptional<z.ZodEnum<{
1155
+ triggering: "triggering";
1156
+ oldest: "oldest";
1157
+ newest: "newest";
1158
+ all_except_one: "all_except_one";
1159
+ all_user: "all_user";
1160
+ }>>;
1161
+ id: z.ZodOptional<z.ZodUUID>;
1162
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1163
+ $input: z.ZodString;
1164
+ }, z.core.$strict>, z.ZodBoolean]>>;
1165
+ delay_seconds: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1166
+ $input: z.ZodString;
1167
+ }, z.core.$strict>, z.ZodNumber]>>;
1168
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1169
+ $input: z.ZodString;
1170
+ }, z.core.$strict>, z.ZodNumber]>>;
1171
+ message: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1172
+ $input: z.ZodString;
1173
+ }, z.core.$strict>, z.ZodString]>>;
1174
+ }, z.core.$strip>, z.ZodObject<{
1175
+ type: z.ZodLiteral<"message_client">;
1176
+ target: z.ZodOptional<z.ZodEnum<{
1177
+ triggering: "triggering";
1178
+ oldest: "oldest";
1179
+ newest: "newest";
1180
+ all_except_one: "all_except_one";
1181
+ all_user: "all_user";
1182
+ }>>;
1183
+ id: z.ZodOptional<z.ZodUUID>;
1184
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1185
+ $input: z.ZodString;
1186
+ }, z.core.$strict>, z.ZodBoolean]>>;
1187
+ message: z.ZodUnion<readonly [z.ZodObject<{
1188
+ $input: z.ZodString;
1189
+ }, z.core.$strict>, z.ZodString]>;
1190
+ }, z.core.$strip>], "type">>;
1191
+ else: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1192
+ type: z.ZodLiteral<"send">;
1193
+ id: z.ZodOptional<z.ZodUUID>;
1194
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1195
+ $input: z.ZodString;
1196
+ }, z.core.$strict>, z.ZodBoolean]>>;
1197
+ to: z.ZodUnion<readonly [z.ZodObject<{
1198
+ $input: z.ZodString;
1199
+ }, z.core.$strict>, z.ZodArray<z.ZodUUID>]>;
1200
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1201
+ $input: z.ZodString;
1202
+ }, z.core.$strict>, z.ZodString]>>;
1203
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1204
+ $input: z.ZodString;
1205
+ }, z.core.$strict>, z.ZodString]>>;
1206
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1207
+ $input: z.ZodString;
1208
+ }, z.core.$strict>, z.ZodNumber]>>;
1209
+ }, z.core.$strip>, z.ZodObject<{
1210
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1211
+ $input: z.ZodString;
1212
+ }, z.core.$strict>, z.ZodBoolean]>>;
1213
+ amount: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1214
+ $input: z.ZodString;
1215
+ }, z.core.$strict>, z.ZodNumber]>>;
1216
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1217
+ $input: z.ZodString;
1218
+ }, z.core.$strict>, z.ZodNumber]>>;
1219
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1220
+ $input: z.ZodString;
1221
+ }, z.core.$strict>, z.ZodNumber]>>;
1222
+ type: z.ZodLiteral<"trust">;
1223
+ mode: z.ZodEnum<{
1224
+ set: "set";
1225
+ adjust: "adjust";
1226
+ reset: "reset";
1227
+ }>;
1228
+ id: z.ZodOptional<z.ZodUUID>;
1229
+ }, z.core.$strip>, z.ZodObject<{
1230
+ type: z.ZodLiteral<"kill_stream">;
1231
+ target: z.ZodOptional<z.ZodEnum<{
1232
+ triggering: "triggering";
1233
+ oldest: "oldest";
1234
+ newest: "newest";
1235
+ all_except_one: "all_except_one";
1236
+ all_user: "all_user";
1237
+ }>>;
1238
+ id: z.ZodOptional<z.ZodUUID>;
1239
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1240
+ $input: z.ZodString;
1241
+ }, z.core.$strict>, z.ZodBoolean]>>;
1242
+ delay_seconds: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1243
+ $input: z.ZodString;
1244
+ }, z.core.$strict>, z.ZodNumber]>>;
1245
+ cooldown_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1246
+ $input: z.ZodString;
1247
+ }, z.core.$strict>, z.ZodNumber]>>;
1248
+ message: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1249
+ $input: z.ZodString;
1250
+ }, z.core.$strict>, z.ZodString]>>;
1251
+ }, z.core.$strip>, z.ZodObject<{
1252
+ type: z.ZodLiteral<"message_client">;
1253
+ target: z.ZodOptional<z.ZodEnum<{
1254
+ triggering: "triggering";
1255
+ oldest: "oldest";
1256
+ newest: "newest";
1257
+ all_except_one: "all_except_one";
1258
+ all_user: "all_user";
1259
+ }>>;
1260
+ id: z.ZodOptional<z.ZodUUID>;
1261
+ enabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1262
+ $input: z.ZodString;
1263
+ }, z.core.$strict>, z.ZodBoolean]>>;
1264
+ message: z.ZodUnion<readonly [z.ZodObject<{
1265
+ $input: z.ZodString;
1266
+ }, z.core.$strict>, z.ZodString]>;
1267
+ }, z.core.$strip>], "type">>;
1268
+ }, z.core.$strict>], "type">>;
1269
+ }, z.core.$strip>;
1270
+ scope: z.ZodObject<{
1271
+ serverId: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1272
+ $input: z.ZodString;
1273
+ }, z.core.$strict>, z.ZodUUID]>>;
1274
+ serverUserId: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1275
+ $input: z.ZodString;
1276
+ }, z.core.$strict>, z.ZodUUID]>>;
1277
+ userId: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1278
+ $input: z.ZodString;
1279
+ }, z.core.$strict>, z.ZodUUID]>>;
1280
+ }, z.core.$strict>;
1281
+ enforceAcrossServers: z.ZodOptional<z.ZodBoolean>;
1282
+ cooldownMinutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1283
+ }, z.core.$strict>;
1284
+ fingerprint: z.ZodString;
1285
+ }, z.core.$strict>;
1286
+ export type TemplateEnvelope = z.infer<typeof templateEnvelopeSchema>;
1287
+ export declare class TemplateBindingError extends Error {
1288
+ readonly missing: string[];
1289
+ constructor(missing: string[]);
1290
+ }
1291
+ /** What a bound input lands as in a slot: a duration converts into the unit that slot stores. */
1292
+ export declare function slotValueFor(input: TemplateInput, value: unknown, slotName: string): unknown;
1293
+ export declare function materializeTemplate(version: {
1294
+ inputs: TemplateInput[];
1295
+ definition: TemplateDefinition;
1296
+ }, bound: Record<string, unknown>, options: {
1297
+ name: string;
1298
+ }): CreateAutomationInput;
1299
+ /** Strips this install's ids and destinations out of a definition, declaring an input for each. */
1300
+ export declare function liftAutomation(automation: CreateAutomationInput): {
1301
+ inputs: TemplateInput[];
1302
+ definition: TemplateDefinition;
1303
+ };
1304
+ //# sourceMappingURL=templates.d.ts.map