@tracearr/shared 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +7 -0
  3. package/dist/catalogLetters.d.ts +3 -0
  4. package/dist/catalogLetters.d.ts.map +1 -0
  5. package/dist/catalogLetters.js +3 -0
  6. package/dist/catalogLetters.js.map +1 -0
  7. package/dist/constants.d.ts +475 -0
  8. package/dist/constants.d.ts.map +1 -0
  9. package/dist/constants.js +847 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/dynamicRange.d.ts +16 -0
  12. package/dist/dynamicRange.d.ts.map +1 -0
  13. package/dist/dynamicRange.js +46 -0
  14. package/dist/dynamicRange.js.map +1 -0
  15. package/dist/index.d.ts +17 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +68 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/media.d.ts +16 -0
  20. package/dist/media.d.ts.map +1 -0
  21. package/dist/media.js +18 -0
  22. package/dist/media.js.map +1 -0
  23. package/dist/resolution.d.ts +56 -0
  24. package/dist/resolution.d.ts.map +1 -0
  25. package/dist/resolution.js +130 -0
  26. package/dist/resolution.js.map +1 -0
  27. package/dist/schemas.d.ts +1702 -0
  28. package/dist/schemas.d.ts.map +1 -0
  29. package/dist/schemas.js +1057 -0
  30. package/dist/schemas.js.map +1 -0
  31. package/dist/serverScope.d.ts +27 -0
  32. package/dist/serverScope.d.ts.map +1 -0
  33. package/dist/serverScope.js +36 -0
  34. package/dist/serverScope.js.map +1 -0
  35. package/dist/types.d.ts +2484 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/types.js +57 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/violations.d.ts +37 -0
  40. package/dist/violations.d.ts.map +1 -0
  41. package/dist/violations.js +377 -0
  42. package/dist/violations.js.map +1 -0
  43. package/package.json +46 -0
@@ -0,0 +1,1702 @@
1
+ /**
2
+ * Zod validation schemas for API requests
3
+ */
4
+ import { z } from 'zod';
5
+ export declare const serverTypeSchema: z.ZodEnum<{
6
+ plex: "plex";
7
+ jellyfin: "jellyfin";
8
+ emby: "emby";
9
+ }>;
10
+ export type ServerType = z.infer<typeof serverTypeSchema>;
11
+ export declare const mediaTypeSchema: z.ZodEnum<{
12
+ movie: "movie";
13
+ episode: "episode";
14
+ track: "track";
15
+ live: "live";
16
+ }>;
17
+ export type MediaType = z.infer<typeof mediaTypeSchema>;
18
+ export declare const statPeriodSchema: z.ZodEnum<{
19
+ all: "all";
20
+ day: "day";
21
+ week: "week";
22
+ month: "month";
23
+ year: "year";
24
+ custom: "custom";
25
+ }>;
26
+ export type StatPeriod = z.infer<typeof statPeriodSchema>;
27
+ /**
28
+ * Refinement: Custom period requires both startDate and endDate
29
+ */
30
+ declare function requireDatesForCustomPeriod(data: {
31
+ period?: string;
32
+ startDate?: string;
33
+ endDate?: string;
34
+ }): string | true | undefined;
35
+ /**
36
+ * Refinement: If dates provided, startDate must be before endDate
37
+ */
38
+ declare function validateDateOrder(data: {
39
+ startDate?: string;
40
+ endDate?: string;
41
+ }): boolean;
42
+ /** Standard date validation refinements for stats queries */
43
+ export declare const dateValidationRefinements: {
44
+ customPeriodRequiresDates: {
45
+ refinement: typeof requireDatesForCustomPeriod;
46
+ message: string;
47
+ };
48
+ startBeforeEnd: {
49
+ refinement: typeof validateDateOrder;
50
+ message: string;
51
+ };
52
+ };
53
+ export declare const uuidSchema: z.ZodUUID;
54
+ export declare const serverIdsQuerySchema: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
55
+ export declare const userIdsQuerySchema: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
56
+ export declare const libraryKeySchema: z.ZodString;
57
+ export declare const paginationSchema: z.ZodObject<{
58
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
59
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
60
+ }, z.core.$strip>;
61
+ export declare const booleanStringSchema: z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>;
62
+ export declare const timezoneSchema: z.ZodOptional<z.ZodString>;
63
+ export declare const loginSchema: z.ZodObject<{
64
+ serverType: z.ZodEnum<{
65
+ plex: "plex";
66
+ jellyfin: "jellyfin";
67
+ emby: "emby";
68
+ }>;
69
+ returnUrl: z.ZodOptional<z.ZodURL>;
70
+ }, z.core.$strip>;
71
+ export declare const callbackSchema: z.ZodObject<{
72
+ code: z.ZodOptional<z.ZodString>;
73
+ token: z.ZodOptional<z.ZodString>;
74
+ serverType: z.ZodEnum<{
75
+ plex: "plex";
76
+ jellyfin: "jellyfin";
77
+ emby: "emby";
78
+ }>;
79
+ }, z.core.$strip>;
80
+ export declare const createServerSchema: z.ZodObject<{
81
+ name: z.ZodString;
82
+ type: z.ZodEnum<{
83
+ plex: "plex";
84
+ jellyfin: "jellyfin";
85
+ emby: "emby";
86
+ }>;
87
+ url: z.ZodURL;
88
+ token: z.ZodString;
89
+ }, z.core.$strip>;
90
+ export declare const serverIdParamSchema: z.ZodObject<{
91
+ id: z.ZodUUID;
92
+ }, z.core.$strip>;
93
+ export declare const reorderServersSchema: z.ZodObject<{
94
+ servers: z.ZodArray<z.ZodObject<{
95
+ id: z.ZodUUID;
96
+ displayOrder: z.ZodNumber;
97
+ }, z.core.$strip>>;
98
+ }, z.core.$strip>;
99
+ export declare const updateServerSchema: z.ZodObject<{
100
+ name: z.ZodOptional<z.ZodString>;
101
+ url: z.ZodOptional<z.ZodURL>;
102
+ clientIdentifier: z.ZodOptional<z.ZodString>;
103
+ color: z.ZodNullable<z.ZodOptional<z.ZodString>>;
104
+ }, z.core.$strip>;
105
+ export declare const updateUserSchema: z.ZodObject<{
106
+ allowGuest: z.ZodOptional<z.ZodBoolean>;
107
+ trustScore: z.ZodOptional<z.ZodNumber>;
108
+ }, z.core.$strip>;
109
+ export declare const updateUserIdentitySchema: z.ZodObject<{
110
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
111
+ }, z.core.$strip>;
112
+ export type UpdateUserIdentityInput = z.infer<typeof updateUserIdentitySchema>;
113
+ export declare const userIdParamSchema: z.ZodObject<{
114
+ id: z.ZodUUID;
115
+ }, z.core.$strip>;
116
+ export declare const identityScopeQuerySchema: z.ZodObject<{
117
+ scope: z.ZodOptional<z.ZodEnum<{
118
+ identity: "identity";
119
+ }>>;
120
+ }, z.core.$strip>;
121
+ export type IdentityScopeQuery = z.infer<typeof identityScopeQuerySchema>;
122
+ export declare const identityScopedPaginationSchema: z.ZodObject<{
123
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
124
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
125
+ scope: z.ZodOptional<z.ZodEnum<{
126
+ identity: "identity";
127
+ }>>;
128
+ }, z.core.$strip>;
129
+ export declare const mergeUsersBodySchema: z.ZodObject<{
130
+ targetUserId: z.ZodUUID;
131
+ confirmSameServerCombine: z.ZodDefault<z.ZodBoolean>;
132
+ }, z.core.$strip>;
133
+ export type MergeUsersBody = z.infer<typeof mergeUsersBodySchema>;
134
+ export declare const mergeUserParamSchema: z.ZodObject<{
135
+ id: z.ZodUUID;
136
+ }, z.core.$strip>;
137
+ export declare const splitServerUserParamSchema: z.ZodObject<{
138
+ id: z.ZodUUID;
139
+ }, z.core.$strip>;
140
+ export declare const userSortFieldSchema: z.ZodEnum<{
141
+ trustScore: "trustScore";
142
+ username: "username";
143
+ joinedAt: "joinedAt";
144
+ lastActivityAt: "lastActivityAt";
145
+ }>;
146
+ export type UserSortField = z.infer<typeof userSortFieldSchema>;
147
+ export declare const sessionQuerySchema: z.ZodObject<{
148
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
149
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
150
+ serverUserId: z.ZodOptional<z.ZodUUID>;
151
+ serverId: z.ZodOptional<z.ZodUUID>;
152
+ state: z.ZodOptional<z.ZodEnum<{
153
+ playing: "playing";
154
+ stopped: "stopped";
155
+ paused: "paused";
156
+ }>>;
157
+ mediaType: z.ZodOptional<z.ZodEnum<{
158
+ movie: "movie";
159
+ episode: "episode";
160
+ track: "track";
161
+ live: "live";
162
+ }>>;
163
+ startDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
164
+ endDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
165
+ }, z.core.$strip>;
166
+ export declare const historyQuerySchema: z.ZodObject<{
167
+ cursor: z.ZodOptional<z.ZodString>;
168
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
169
+ serverUserIds: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
170
+ serverId: z.ZodOptional<z.ZodUUID>;
171
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
172
+ state: z.ZodOptional<z.ZodEnum<{
173
+ playing: "playing";
174
+ stopped: "stopped";
175
+ paused: "paused";
176
+ }>>;
177
+ mediaTypes: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
178
+ startDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
179
+ endDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
180
+ search: z.ZodOptional<z.ZodString>;
181
+ platforms: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
182
+ product: z.ZodOptional<z.ZodString>;
183
+ device: z.ZodOptional<z.ZodString>;
184
+ playerName: z.ZodOptional<z.ZodString>;
185
+ ipAddress: z.ZodOptional<z.ZodString>;
186
+ geoCountries: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
187
+ geoCity: z.ZodOptional<z.ZodString>;
188
+ geoRegion: z.ZodOptional<z.ZodString>;
189
+ transcodeDecisions: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
190
+ watched: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
191
+ excludeShortSessions: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
192
+ orderBy: z.ZodDefault<z.ZodEnum<{
193
+ startedAt: "startedAt";
194
+ durationMs: "durationMs";
195
+ mediaTitle: "mediaTitle";
196
+ }>>;
197
+ orderDir: z.ZodDefault<z.ZodEnum<{
198
+ asc: "asc";
199
+ desc: "desc";
200
+ }>>;
201
+ }, z.core.$strip>;
202
+ export declare const historyAggregatesQuerySchema: z.ZodObject<{
203
+ serverId: z.ZodOptional<z.ZodUUID>;
204
+ state: z.ZodOptional<z.ZodEnum<{
205
+ playing: "playing";
206
+ stopped: "stopped";
207
+ paused: "paused";
208
+ }>>;
209
+ startDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
210
+ endDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
211
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
212
+ search: z.ZodOptional<z.ZodString>;
213
+ serverUserIds: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
214
+ mediaTypes: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
215
+ platforms: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
216
+ product: z.ZodOptional<z.ZodString>;
217
+ device: z.ZodOptional<z.ZodString>;
218
+ playerName: z.ZodOptional<z.ZodString>;
219
+ ipAddress: z.ZodOptional<z.ZodString>;
220
+ geoCountries: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
221
+ geoCity: z.ZodOptional<z.ZodString>;
222
+ geoRegion: z.ZodOptional<z.ZodString>;
223
+ transcodeDecisions: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
224
+ watched: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
225
+ excludeShortSessions: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
226
+ }, z.core.$strip>;
227
+ export declare const filterOptionsQuerySchema: z.ZodObject<{
228
+ serverId: z.ZodOptional<z.ZodUUID>;
229
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
230
+ startDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
231
+ endDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
232
+ includeAllCountries: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
233
+ }, z.core.$strip>;
234
+ export declare const sessionIdParamSchema: z.ZodObject<{
235
+ id: z.ZodUUID;
236
+ }, z.core.$strip>;
237
+ export declare const terminateSessionBodySchema: z.ZodObject<{
238
+ reason: z.ZodOptional<z.ZodString>;
239
+ }, z.core.$strip>;
240
+ export declare const impossibleTravelParamsSchema: z.ZodObject<{
241
+ maxSpeedKmh: z.ZodDefault<z.ZodNumber>;
242
+ ignoreVpnRanges: z.ZodOptional<z.ZodBoolean>;
243
+ }, z.core.$strip>;
244
+ export declare const simultaneousLocationsParamsSchema: z.ZodObject<{
245
+ minDistanceKm: z.ZodDefault<z.ZodNumber>;
246
+ }, z.core.$strip>;
247
+ export declare const deviceVelocityParamsSchema: z.ZodObject<{
248
+ maxIps: z.ZodDefault<z.ZodNumber>;
249
+ windowHours: z.ZodDefault<z.ZodNumber>;
250
+ }, z.core.$strip>;
251
+ export declare const concurrentStreamsParamsSchema: z.ZodObject<{
252
+ maxStreams: z.ZodDefault<z.ZodNumber>;
253
+ }, z.core.$strip>;
254
+ export declare const geoRestrictionParamsSchema: z.ZodObject<{
255
+ mode: z.ZodDefault<z.ZodEnum<{
256
+ blocklist: "blocklist";
257
+ allowlist: "allowlist";
258
+ }>>;
259
+ countries: z.ZodDefault<z.ZodArray<z.ZodString>>;
260
+ }, z.core.$strip>;
261
+ export declare const accountInactivityParamsSchema: z.ZodObject<{
262
+ inactivityValue: z.ZodDefault<z.ZodNumber>;
263
+ inactivityUnit: z.ZodDefault<z.ZodEnum<{
264
+ days: "days";
265
+ weeks: "weeks";
266
+ months: "months";
267
+ }>>;
268
+ }, z.core.$strip>;
269
+ export declare const ruleParamsSchema: z.ZodUnion<readonly [z.ZodObject<{
270
+ maxSpeedKmh: z.ZodDefault<z.ZodNumber>;
271
+ ignoreVpnRanges: z.ZodOptional<z.ZodBoolean>;
272
+ }, z.core.$strip>, z.ZodObject<{
273
+ minDistanceKm: z.ZodDefault<z.ZodNumber>;
274
+ }, z.core.$strip>, z.ZodObject<{
275
+ maxIps: z.ZodDefault<z.ZodNumber>;
276
+ windowHours: z.ZodDefault<z.ZodNumber>;
277
+ }, z.core.$strip>, z.ZodObject<{
278
+ maxStreams: z.ZodDefault<z.ZodNumber>;
279
+ }, z.core.$strip>, z.ZodObject<{
280
+ mode: z.ZodDefault<z.ZodEnum<{
281
+ blocklist: "blocklist";
282
+ allowlist: "allowlist";
283
+ }>>;
284
+ countries: z.ZodDefault<z.ZodArray<z.ZodString>>;
285
+ }, z.core.$strip>, z.ZodObject<{
286
+ inactivityValue: z.ZodDefault<z.ZodNumber>;
287
+ inactivityUnit: z.ZodDefault<z.ZodEnum<{
288
+ days: "days";
289
+ weeks: "weeks";
290
+ months: "months";
291
+ }>>;
292
+ }, z.core.$strip>]>;
293
+ export declare const createRuleSchema: z.ZodObject<{
294
+ name: z.ZodString;
295
+ type: z.ZodEnum<{
296
+ concurrent_streams: "concurrent_streams";
297
+ impossible_travel: "impossible_travel";
298
+ simultaneous_locations: "simultaneous_locations";
299
+ device_velocity: "device_velocity";
300
+ geo_restriction: "geo_restriction";
301
+ account_inactivity: "account_inactivity";
302
+ }>;
303
+ params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
304
+ serverUserId: z.ZodDefault<z.ZodNullable<z.ZodUUID>>;
305
+ isActive: z.ZodDefault<z.ZodBoolean>;
306
+ }, z.core.$strip>;
307
+ export declare const updateRuleSchema: z.ZodObject<{
308
+ name: z.ZodOptional<z.ZodString>;
309
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
310
+ isActive: z.ZodOptional<z.ZodBoolean>;
311
+ }, z.core.$strip>;
312
+ export declare const ruleIdParamSchema: z.ZodObject<{
313
+ id: z.ZodUUID;
314
+ }, z.core.$strip>;
315
+ export declare const comparisonOperatorSchema: z.ZodEnum<{
316
+ eq: "eq";
317
+ neq: "neq";
318
+ gt: "gt";
319
+ gte: "gte";
320
+ lt: "lt";
321
+ lte: "lte";
322
+ }>;
323
+ export declare const arrayOperatorSchema: z.ZodEnum<{
324
+ in: "in";
325
+ not_in: "not_in";
326
+ }>;
327
+ export declare const stringOperatorSchema: z.ZodEnum<{
328
+ contains: "contains";
329
+ not_contains: "not_contains";
330
+ }>;
331
+ export declare const operatorSchema: z.ZodUnion<readonly [z.ZodEnum<{
332
+ eq: "eq";
333
+ neq: "neq";
334
+ gt: "gt";
335
+ gte: "gte";
336
+ lt: "lt";
337
+ lte: "lte";
338
+ }>, z.ZodEnum<{
339
+ in: "in";
340
+ not_in: "not_in";
341
+ }>, z.ZodEnum<{
342
+ contains: "contains";
343
+ not_contains: "not_contains";
344
+ }>]>;
345
+ export declare const sessionBehaviorFieldSchema: z.ZodEnum<{
346
+ concurrent_streams: "concurrent_streams";
347
+ active_session_distance_km: "active_session_distance_km";
348
+ travel_speed_kmh: "travel_speed_kmh";
349
+ unique_ips_in_window: "unique_ips_in_window";
350
+ unique_devices_in_window: "unique_devices_in_window";
351
+ inactive_days: "inactive_days";
352
+ current_pause_minutes: "current_pause_minutes";
353
+ total_pause_minutes: "total_pause_minutes";
354
+ }>;
355
+ export declare const streamQualityFieldSchema: z.ZodEnum<{
356
+ source_resolution: "source_resolution";
357
+ output_resolution: "output_resolution";
358
+ is_transcoding: "is_transcoding";
359
+ is_transcode_downgrade: "is_transcode_downgrade";
360
+ source_bitrate_mbps: "source_bitrate_mbps";
361
+ }>;
362
+ export declare const transcodingConditionValueSchema: z.ZodEnum<{
363
+ video: "video";
364
+ audio: "audio";
365
+ video_or_audio: "video_or_audio";
366
+ neither: "neither";
367
+ }>;
368
+ export declare const userAttributeFieldSchema: z.ZodEnum<{
369
+ user_id: "user_id";
370
+ trust_score: "trust_score";
371
+ account_age_days: "account_age_days";
372
+ }>;
373
+ export declare const deviceClientFieldSchema: z.ZodEnum<{
374
+ device_type: "device_type";
375
+ client_name: "client_name";
376
+ platform: "platform";
377
+ }>;
378
+ export declare const networkLocationFieldSchema: z.ZodEnum<{
379
+ is_local_network: "is_local_network";
380
+ country: "country";
381
+ ip_in_range: "ip_in_range";
382
+ }>;
383
+ export declare const scopeFieldSchema: z.ZodEnum<{
384
+ server_id: "server_id";
385
+ media_type: "media_type";
386
+ }>;
387
+ export declare const conditionFieldSchema: z.ZodUnion<readonly [z.ZodEnum<{
388
+ concurrent_streams: "concurrent_streams";
389
+ active_session_distance_km: "active_session_distance_km";
390
+ travel_speed_kmh: "travel_speed_kmh";
391
+ unique_ips_in_window: "unique_ips_in_window";
392
+ unique_devices_in_window: "unique_devices_in_window";
393
+ inactive_days: "inactive_days";
394
+ current_pause_minutes: "current_pause_minutes";
395
+ total_pause_minutes: "total_pause_minutes";
396
+ }>, z.ZodEnum<{
397
+ source_resolution: "source_resolution";
398
+ output_resolution: "output_resolution";
399
+ is_transcoding: "is_transcoding";
400
+ is_transcode_downgrade: "is_transcode_downgrade";
401
+ source_bitrate_mbps: "source_bitrate_mbps";
402
+ }>, z.ZodEnum<{
403
+ user_id: "user_id";
404
+ trust_score: "trust_score";
405
+ account_age_days: "account_age_days";
406
+ }>, z.ZodEnum<{
407
+ device_type: "device_type";
408
+ client_name: "client_name";
409
+ platform: "platform";
410
+ }>, z.ZodEnum<{
411
+ is_local_network: "is_local_network";
412
+ country: "country";
413
+ ip_in_range: "ip_in_range";
414
+ }>, z.ZodEnum<{
415
+ server_id: "server_id";
416
+ media_type: "media_type";
417
+ }>]>;
418
+ export declare const videoResolutionSchema: z.ZodEnum<{
419
+ "4K": "4K";
420
+ SD: "SD";
421
+ "1080p": "1080p";
422
+ "720p": "720p";
423
+ "480p": "480p";
424
+ unknown: "unknown";
425
+ }>;
426
+ export declare const deviceTypeSchema: z.ZodEnum<{
427
+ unknown: "unknown";
428
+ mobile: "mobile";
429
+ tablet: "tablet";
430
+ tv: "tv";
431
+ desktop: "desktop";
432
+ browser: "browser";
433
+ }>;
434
+ export declare const platformSchema: z.ZodEnum<{
435
+ unknown: "unknown";
436
+ ios: "ios";
437
+ android: "android";
438
+ windows: "windows";
439
+ macos: "macos";
440
+ linux: "linux";
441
+ tvos: "tvos";
442
+ androidtv: "androidtv";
443
+ roku: "roku";
444
+ webos: "webos";
445
+ tizen: "tizen";
446
+ }>;
447
+ export declare const mediaTypeEnumSchema: z.ZodEnum<{
448
+ movie: "movie";
449
+ episode: "episode";
450
+ track: "track";
451
+ live: "live";
452
+ photo: "photo";
453
+ trailer: "trailer";
454
+ }>;
455
+ export declare const conditionValueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
456
+ export declare const conditionSchema: z.ZodObject<{
457
+ field: z.ZodUnion<readonly [z.ZodEnum<{
458
+ concurrent_streams: "concurrent_streams";
459
+ active_session_distance_km: "active_session_distance_km";
460
+ travel_speed_kmh: "travel_speed_kmh";
461
+ unique_ips_in_window: "unique_ips_in_window";
462
+ unique_devices_in_window: "unique_devices_in_window";
463
+ inactive_days: "inactive_days";
464
+ current_pause_minutes: "current_pause_minutes";
465
+ total_pause_minutes: "total_pause_minutes";
466
+ }>, z.ZodEnum<{
467
+ source_resolution: "source_resolution";
468
+ output_resolution: "output_resolution";
469
+ is_transcoding: "is_transcoding";
470
+ is_transcode_downgrade: "is_transcode_downgrade";
471
+ source_bitrate_mbps: "source_bitrate_mbps";
472
+ }>, z.ZodEnum<{
473
+ user_id: "user_id";
474
+ trust_score: "trust_score";
475
+ account_age_days: "account_age_days";
476
+ }>, z.ZodEnum<{
477
+ device_type: "device_type";
478
+ client_name: "client_name";
479
+ platform: "platform";
480
+ }>, z.ZodEnum<{
481
+ is_local_network: "is_local_network";
482
+ country: "country";
483
+ ip_in_range: "ip_in_range";
484
+ }>, z.ZodEnum<{
485
+ server_id: "server_id";
486
+ media_type: "media_type";
487
+ }>]>;
488
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
489
+ eq: "eq";
490
+ neq: "neq";
491
+ gt: "gt";
492
+ gte: "gte";
493
+ lt: "lt";
494
+ lte: "lte";
495
+ }>, z.ZodEnum<{
496
+ in: "in";
497
+ not_in: "not_in";
498
+ }>, z.ZodEnum<{
499
+ contains: "contains";
500
+ not_contains: "not_contains";
501
+ }>]>;
502
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
503
+ params: z.ZodOptional<z.ZodObject<{
504
+ window_hours: z.ZodOptional<z.ZodNumber>;
505
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
506
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
507
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
508
+ unknown: "unknown";
509
+ mobile: "mobile";
510
+ tablet: "tablet";
511
+ tv: "tv";
512
+ desktop: "desktop";
513
+ browser: "browser";
514
+ }>>>;
515
+ }, z.core.$strip>>;
516
+ }, z.core.$strip>;
517
+ export declare const conditionGroupSchema: z.ZodObject<{
518
+ conditions: z.ZodArray<z.ZodObject<{
519
+ field: z.ZodUnion<readonly [z.ZodEnum<{
520
+ concurrent_streams: "concurrent_streams";
521
+ active_session_distance_km: "active_session_distance_km";
522
+ travel_speed_kmh: "travel_speed_kmh";
523
+ unique_ips_in_window: "unique_ips_in_window";
524
+ unique_devices_in_window: "unique_devices_in_window";
525
+ inactive_days: "inactive_days";
526
+ current_pause_minutes: "current_pause_minutes";
527
+ total_pause_minutes: "total_pause_minutes";
528
+ }>, z.ZodEnum<{
529
+ source_resolution: "source_resolution";
530
+ output_resolution: "output_resolution";
531
+ is_transcoding: "is_transcoding";
532
+ is_transcode_downgrade: "is_transcode_downgrade";
533
+ source_bitrate_mbps: "source_bitrate_mbps";
534
+ }>, z.ZodEnum<{
535
+ user_id: "user_id";
536
+ trust_score: "trust_score";
537
+ account_age_days: "account_age_days";
538
+ }>, z.ZodEnum<{
539
+ device_type: "device_type";
540
+ client_name: "client_name";
541
+ platform: "platform";
542
+ }>, z.ZodEnum<{
543
+ is_local_network: "is_local_network";
544
+ country: "country";
545
+ ip_in_range: "ip_in_range";
546
+ }>, z.ZodEnum<{
547
+ server_id: "server_id";
548
+ media_type: "media_type";
549
+ }>]>;
550
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
551
+ eq: "eq";
552
+ neq: "neq";
553
+ gt: "gt";
554
+ gte: "gte";
555
+ lt: "lt";
556
+ lte: "lte";
557
+ }>, z.ZodEnum<{
558
+ in: "in";
559
+ not_in: "not_in";
560
+ }>, z.ZodEnum<{
561
+ contains: "contains";
562
+ not_contains: "not_contains";
563
+ }>]>;
564
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
565
+ params: z.ZodOptional<z.ZodObject<{
566
+ window_hours: z.ZodOptional<z.ZodNumber>;
567
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
568
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
569
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
570
+ unknown: "unknown";
571
+ mobile: "mobile";
572
+ tablet: "tablet";
573
+ tv: "tv";
574
+ desktop: "desktop";
575
+ browser: "browser";
576
+ }>>>;
577
+ }, z.core.$strip>>;
578
+ }, z.core.$strip>>;
579
+ }, z.core.$strip>;
580
+ /**
581
+ * Condition fields evaluable for a dormant account outside a playback
582
+ * session. Rules containing inactive_days run in the hourly inactivity
583
+ * worker, where no session exists, so they may only use these fields.
584
+ */
585
+ export declare const INACTIVITY_COMPATIBLE_FIELDS: readonly ["inactive_days", "server_id", "user_id", "trust_score", "account_age_days"];
586
+ export declare const ruleConditionsSchema: z.ZodObject<{
587
+ groups: z.ZodArray<z.ZodObject<{
588
+ conditions: z.ZodArray<z.ZodObject<{
589
+ field: z.ZodUnion<readonly [z.ZodEnum<{
590
+ concurrent_streams: "concurrent_streams";
591
+ active_session_distance_km: "active_session_distance_km";
592
+ travel_speed_kmh: "travel_speed_kmh";
593
+ unique_ips_in_window: "unique_ips_in_window";
594
+ unique_devices_in_window: "unique_devices_in_window";
595
+ inactive_days: "inactive_days";
596
+ current_pause_minutes: "current_pause_minutes";
597
+ total_pause_minutes: "total_pause_minutes";
598
+ }>, z.ZodEnum<{
599
+ source_resolution: "source_resolution";
600
+ output_resolution: "output_resolution";
601
+ is_transcoding: "is_transcoding";
602
+ is_transcode_downgrade: "is_transcode_downgrade";
603
+ source_bitrate_mbps: "source_bitrate_mbps";
604
+ }>, z.ZodEnum<{
605
+ user_id: "user_id";
606
+ trust_score: "trust_score";
607
+ account_age_days: "account_age_days";
608
+ }>, z.ZodEnum<{
609
+ device_type: "device_type";
610
+ client_name: "client_name";
611
+ platform: "platform";
612
+ }>, z.ZodEnum<{
613
+ is_local_network: "is_local_network";
614
+ country: "country";
615
+ ip_in_range: "ip_in_range";
616
+ }>, z.ZodEnum<{
617
+ server_id: "server_id";
618
+ media_type: "media_type";
619
+ }>]>;
620
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
621
+ eq: "eq";
622
+ neq: "neq";
623
+ gt: "gt";
624
+ gte: "gte";
625
+ lt: "lt";
626
+ lte: "lte";
627
+ }>, z.ZodEnum<{
628
+ in: "in";
629
+ not_in: "not_in";
630
+ }>, z.ZodEnum<{
631
+ contains: "contains";
632
+ not_contains: "not_contains";
633
+ }>]>;
634
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
635
+ params: z.ZodOptional<z.ZodObject<{
636
+ window_hours: z.ZodOptional<z.ZodNumber>;
637
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
638
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
639
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
640
+ unknown: "unknown";
641
+ mobile: "mobile";
642
+ tablet: "tablet";
643
+ tv: "tv";
644
+ desktop: "desktop";
645
+ browser: "browser";
646
+ }>>>;
647
+ }, z.core.$strip>>;
648
+ }, z.core.$strip>>;
649
+ }, z.core.$strip>>;
650
+ }, z.core.$strip>;
651
+ export declare const actionTypeSchema: z.ZodEnum<{
652
+ log_only: "log_only";
653
+ notify: "notify";
654
+ adjust_trust: "adjust_trust";
655
+ set_trust: "set_trust";
656
+ reset_trust: "reset_trust";
657
+ kill_stream: "kill_stream";
658
+ message_client: "message_client";
659
+ }>;
660
+ export declare const notificationChannelV2Schema: z.ZodEnum<{
661
+ push: "push";
662
+ discord: "discord";
663
+ email: "email";
664
+ webhook: "webhook";
665
+ }>;
666
+ export declare const logOnlyActionSchema: z.ZodObject<{
667
+ type: z.ZodLiteral<"log_only">;
668
+ message: z.ZodOptional<z.ZodString>;
669
+ }, z.core.$strip>;
670
+ export declare const notifyActionSchema: z.ZodObject<{
671
+ type: z.ZodLiteral<"notify">;
672
+ channels: z.ZodArray<z.ZodEnum<{
673
+ push: "push";
674
+ discord: "discord";
675
+ email: "email";
676
+ webhook: "webhook";
677
+ }>>;
678
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
679
+ }, z.core.$strip>;
680
+ export declare const adjustTrustActionSchema: z.ZodObject<{
681
+ type: z.ZodLiteral<"adjust_trust">;
682
+ amount: z.ZodNumber;
683
+ }, z.core.$strip>;
684
+ export declare const setTrustActionSchema: z.ZodObject<{
685
+ type: z.ZodLiteral<"set_trust">;
686
+ value: z.ZodNumber;
687
+ }, z.core.$strip>;
688
+ export declare const resetTrustActionSchema: z.ZodObject<{
689
+ type: z.ZodLiteral<"reset_trust">;
690
+ }, z.core.$strip>;
691
+ export declare const sessionTargetSchema: z.ZodEnum<{
692
+ triggering: "triggering";
693
+ oldest: "oldest";
694
+ newest: "newest";
695
+ all_except_one: "all_except_one";
696
+ all_user: "all_user";
697
+ }>;
698
+ export type SessionTarget = z.infer<typeof sessionTargetSchema>;
699
+ export declare const killStreamActionSchema: z.ZodObject<{
700
+ type: z.ZodLiteral<"kill_stream">;
701
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
702
+ require_confirmation: z.ZodOptional<z.ZodBoolean>;
703
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
704
+ message: z.ZodOptional<z.ZodString>;
705
+ target: z.ZodOptional<z.ZodEnum<{
706
+ triggering: "triggering";
707
+ oldest: "oldest";
708
+ newest: "newest";
709
+ all_except_one: "all_except_one";
710
+ all_user: "all_user";
711
+ }>>;
712
+ }, z.core.$strip>;
713
+ export declare const messageClientActionSchema: z.ZodObject<{
714
+ type: z.ZodLiteral<"message_client">;
715
+ message: z.ZodString;
716
+ target: z.ZodOptional<z.ZodEnum<{
717
+ triggering: "triggering";
718
+ oldest: "oldest";
719
+ newest: "newest";
720
+ all_except_one: "all_except_one";
721
+ all_user: "all_user";
722
+ }>>;
723
+ }, z.core.$strip>;
724
+ export declare const actionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
725
+ type: z.ZodLiteral<"log_only">;
726
+ message: z.ZodOptional<z.ZodString>;
727
+ }, z.core.$strip>, z.ZodObject<{
728
+ type: z.ZodLiteral<"notify">;
729
+ channels: z.ZodArray<z.ZodEnum<{
730
+ push: "push";
731
+ discord: "discord";
732
+ email: "email";
733
+ webhook: "webhook";
734
+ }>>;
735
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
736
+ }, z.core.$strip>, z.ZodObject<{
737
+ type: z.ZodLiteral<"adjust_trust">;
738
+ amount: z.ZodNumber;
739
+ }, z.core.$strip>, z.ZodObject<{
740
+ type: z.ZodLiteral<"set_trust">;
741
+ value: z.ZodNumber;
742
+ }, z.core.$strip>, z.ZodObject<{
743
+ type: z.ZodLiteral<"reset_trust">;
744
+ }, z.core.$strip>, z.ZodObject<{
745
+ type: z.ZodLiteral<"kill_stream">;
746
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
747
+ require_confirmation: z.ZodOptional<z.ZodBoolean>;
748
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
749
+ message: z.ZodOptional<z.ZodString>;
750
+ target: z.ZodOptional<z.ZodEnum<{
751
+ triggering: "triggering";
752
+ oldest: "oldest";
753
+ newest: "newest";
754
+ all_except_one: "all_except_one";
755
+ all_user: "all_user";
756
+ }>>;
757
+ }, z.core.$strip>, z.ZodObject<{
758
+ type: z.ZodLiteral<"message_client">;
759
+ message: z.ZodString;
760
+ target: z.ZodOptional<z.ZodEnum<{
761
+ triggering: "triggering";
762
+ oldest: "oldest";
763
+ newest: "newest";
764
+ all_except_one: "all_except_one";
765
+ all_user: "all_user";
766
+ }>>;
767
+ }, z.core.$strip>], "type">;
768
+ export declare const ruleActionsSchema: z.ZodObject<{
769
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
770
+ type: z.ZodLiteral<"log_only">;
771
+ message: z.ZodOptional<z.ZodString>;
772
+ }, z.core.$strip>, z.ZodObject<{
773
+ type: z.ZodLiteral<"notify">;
774
+ channels: z.ZodArray<z.ZodEnum<{
775
+ push: "push";
776
+ discord: "discord";
777
+ email: "email";
778
+ webhook: "webhook";
779
+ }>>;
780
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
781
+ }, z.core.$strip>, z.ZodObject<{
782
+ type: z.ZodLiteral<"adjust_trust">;
783
+ amount: z.ZodNumber;
784
+ }, z.core.$strip>, z.ZodObject<{
785
+ type: z.ZodLiteral<"set_trust">;
786
+ value: z.ZodNumber;
787
+ }, z.core.$strip>, z.ZodObject<{
788
+ type: z.ZodLiteral<"reset_trust">;
789
+ }, z.core.$strip>, z.ZodObject<{
790
+ type: z.ZodLiteral<"kill_stream">;
791
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
792
+ require_confirmation: z.ZodOptional<z.ZodBoolean>;
793
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
794
+ message: z.ZodOptional<z.ZodString>;
795
+ target: z.ZodOptional<z.ZodEnum<{
796
+ triggering: "triggering";
797
+ oldest: "oldest";
798
+ newest: "newest";
799
+ all_except_one: "all_except_one";
800
+ all_user: "all_user";
801
+ }>>;
802
+ }, z.core.$strip>, z.ZodObject<{
803
+ type: z.ZodLiteral<"message_client">;
804
+ message: z.ZodString;
805
+ target: z.ZodOptional<z.ZodEnum<{
806
+ triggering: "triggering";
807
+ oldest: "oldest";
808
+ newest: "newest";
809
+ all_except_one: "all_except_one";
810
+ all_user: "all_user";
811
+ }>>;
812
+ }, z.core.$strip>], "type">>;
813
+ }, z.core.$strip>;
814
+ export declare const violationSeveritySchema: z.ZodEnum<{
815
+ low: "low";
816
+ warning: "warning";
817
+ high: "high";
818
+ }>;
819
+ export declare function hasAtMostOneScope(data: {
820
+ serverId?: string | null;
821
+ serverUserId?: string | null;
822
+ userId?: string | null;
823
+ }): boolean;
824
+ export declare const RULE_SCOPE_ERROR_MESSAGE = "A rule can only be scoped to one of server, account, or person";
825
+ export declare function scopeAllowsCrossServerEnforcement(data: {
826
+ serverId?: string | null;
827
+ enforceAcrossServers?: boolean;
828
+ }): boolean;
829
+ export declare const RULE_CROSS_SERVER_ENFORCEMENT_ERROR_MESSAGE = "A server-scoped rule cannot enforce actions across all servers";
830
+ export declare const createRuleV2Schema: z.ZodObject<{
831
+ name: z.ZodString;
832
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
833
+ serverId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
834
+ serverUserId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
835
+ userId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
836
+ enforceAcrossServers: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
837
+ isActive: z.ZodDefault<z.ZodBoolean>;
838
+ severity: z.ZodDefault<z.ZodEnum<{
839
+ low: "low";
840
+ warning: "warning";
841
+ high: "high";
842
+ }>>;
843
+ conditions: z.ZodObject<{
844
+ groups: z.ZodArray<z.ZodObject<{
845
+ conditions: z.ZodArray<z.ZodObject<{
846
+ field: z.ZodUnion<readonly [z.ZodEnum<{
847
+ concurrent_streams: "concurrent_streams";
848
+ active_session_distance_km: "active_session_distance_km";
849
+ travel_speed_kmh: "travel_speed_kmh";
850
+ unique_ips_in_window: "unique_ips_in_window";
851
+ unique_devices_in_window: "unique_devices_in_window";
852
+ inactive_days: "inactive_days";
853
+ current_pause_minutes: "current_pause_minutes";
854
+ total_pause_minutes: "total_pause_minutes";
855
+ }>, z.ZodEnum<{
856
+ source_resolution: "source_resolution";
857
+ output_resolution: "output_resolution";
858
+ is_transcoding: "is_transcoding";
859
+ is_transcode_downgrade: "is_transcode_downgrade";
860
+ source_bitrate_mbps: "source_bitrate_mbps";
861
+ }>, z.ZodEnum<{
862
+ user_id: "user_id";
863
+ trust_score: "trust_score";
864
+ account_age_days: "account_age_days";
865
+ }>, z.ZodEnum<{
866
+ device_type: "device_type";
867
+ client_name: "client_name";
868
+ platform: "platform";
869
+ }>, z.ZodEnum<{
870
+ is_local_network: "is_local_network";
871
+ country: "country";
872
+ ip_in_range: "ip_in_range";
873
+ }>, z.ZodEnum<{
874
+ server_id: "server_id";
875
+ media_type: "media_type";
876
+ }>]>;
877
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
878
+ eq: "eq";
879
+ neq: "neq";
880
+ gt: "gt";
881
+ gte: "gte";
882
+ lt: "lt";
883
+ lte: "lte";
884
+ }>, z.ZodEnum<{
885
+ in: "in";
886
+ not_in: "not_in";
887
+ }>, z.ZodEnum<{
888
+ contains: "contains";
889
+ not_contains: "not_contains";
890
+ }>]>;
891
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
892
+ params: z.ZodOptional<z.ZodObject<{
893
+ window_hours: z.ZodOptional<z.ZodNumber>;
894
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
895
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
896
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
897
+ unknown: "unknown";
898
+ mobile: "mobile";
899
+ tablet: "tablet";
900
+ tv: "tv";
901
+ desktop: "desktop";
902
+ browser: "browser";
903
+ }>>>;
904
+ }, z.core.$strip>>;
905
+ }, z.core.$strip>>;
906
+ }, z.core.$strip>>;
907
+ }, z.core.$strip>;
908
+ actions: z.ZodObject<{
909
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
910
+ type: z.ZodLiteral<"log_only">;
911
+ message: z.ZodOptional<z.ZodString>;
912
+ }, z.core.$strip>, z.ZodObject<{
913
+ type: z.ZodLiteral<"notify">;
914
+ channels: z.ZodArray<z.ZodEnum<{
915
+ push: "push";
916
+ discord: "discord";
917
+ email: "email";
918
+ webhook: "webhook";
919
+ }>>;
920
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
921
+ }, z.core.$strip>, z.ZodObject<{
922
+ type: z.ZodLiteral<"adjust_trust">;
923
+ amount: z.ZodNumber;
924
+ }, z.core.$strip>, z.ZodObject<{
925
+ type: z.ZodLiteral<"set_trust">;
926
+ value: z.ZodNumber;
927
+ }, z.core.$strip>, z.ZodObject<{
928
+ type: z.ZodLiteral<"reset_trust">;
929
+ }, z.core.$strip>, z.ZodObject<{
930
+ type: z.ZodLiteral<"kill_stream">;
931
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
932
+ require_confirmation: z.ZodOptional<z.ZodBoolean>;
933
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
934
+ message: z.ZodOptional<z.ZodString>;
935
+ target: z.ZodOptional<z.ZodEnum<{
936
+ triggering: "triggering";
937
+ oldest: "oldest";
938
+ newest: "newest";
939
+ all_except_one: "all_except_one";
940
+ all_user: "all_user";
941
+ }>>;
942
+ }, z.core.$strip>, z.ZodObject<{
943
+ type: z.ZodLiteral<"message_client">;
944
+ message: z.ZodString;
945
+ target: z.ZodOptional<z.ZodEnum<{
946
+ triggering: "triggering";
947
+ oldest: "oldest";
948
+ newest: "newest";
949
+ all_except_one: "all_except_one";
950
+ all_user: "all_user";
951
+ }>>;
952
+ }, z.core.$strip>], "type">>;
953
+ }, z.core.$strip>;
954
+ }, z.core.$strip>;
955
+ export declare const updateRuleV2Schema: z.ZodObject<{
956
+ name: z.ZodOptional<z.ZodString>;
957
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
958
+ serverId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
959
+ serverUserId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
960
+ userId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
961
+ enforceAcrossServers: z.ZodOptional<z.ZodBoolean>;
962
+ isActive: z.ZodOptional<z.ZodBoolean>;
963
+ severity: z.ZodOptional<z.ZodEnum<{
964
+ low: "low";
965
+ warning: "warning";
966
+ high: "high";
967
+ }>>;
968
+ conditions: z.ZodOptional<z.ZodObject<{
969
+ groups: z.ZodArray<z.ZodObject<{
970
+ conditions: z.ZodArray<z.ZodObject<{
971
+ field: z.ZodUnion<readonly [z.ZodEnum<{
972
+ concurrent_streams: "concurrent_streams";
973
+ active_session_distance_km: "active_session_distance_km";
974
+ travel_speed_kmh: "travel_speed_kmh";
975
+ unique_ips_in_window: "unique_ips_in_window";
976
+ unique_devices_in_window: "unique_devices_in_window";
977
+ inactive_days: "inactive_days";
978
+ current_pause_minutes: "current_pause_minutes";
979
+ total_pause_minutes: "total_pause_minutes";
980
+ }>, z.ZodEnum<{
981
+ source_resolution: "source_resolution";
982
+ output_resolution: "output_resolution";
983
+ is_transcoding: "is_transcoding";
984
+ is_transcode_downgrade: "is_transcode_downgrade";
985
+ source_bitrate_mbps: "source_bitrate_mbps";
986
+ }>, z.ZodEnum<{
987
+ user_id: "user_id";
988
+ trust_score: "trust_score";
989
+ account_age_days: "account_age_days";
990
+ }>, z.ZodEnum<{
991
+ device_type: "device_type";
992
+ client_name: "client_name";
993
+ platform: "platform";
994
+ }>, z.ZodEnum<{
995
+ is_local_network: "is_local_network";
996
+ country: "country";
997
+ ip_in_range: "ip_in_range";
998
+ }>, z.ZodEnum<{
999
+ server_id: "server_id";
1000
+ media_type: "media_type";
1001
+ }>]>;
1002
+ operator: z.ZodUnion<readonly [z.ZodEnum<{
1003
+ eq: "eq";
1004
+ neq: "neq";
1005
+ gt: "gt";
1006
+ gte: "gte";
1007
+ lt: "lt";
1008
+ lte: "lte";
1009
+ }>, z.ZodEnum<{
1010
+ in: "in";
1011
+ not_in: "not_in";
1012
+ }>, z.ZodEnum<{
1013
+ contains: "contains";
1014
+ not_contains: "not_contains";
1015
+ }>]>;
1016
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>]>;
1017
+ params: z.ZodOptional<z.ZodObject<{
1018
+ window_hours: z.ZodOptional<z.ZodNumber>;
1019
+ exclude_same_device: z.ZodOptional<z.ZodBoolean>;
1020
+ exclude_same_ip: z.ZodOptional<z.ZodBoolean>;
1021
+ count_device_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1022
+ unknown: "unknown";
1023
+ mobile: "mobile";
1024
+ tablet: "tablet";
1025
+ tv: "tv";
1026
+ desktop: "desktop";
1027
+ browser: "browser";
1028
+ }>>>;
1029
+ }, z.core.$strip>>;
1030
+ }, z.core.$strip>>;
1031
+ }, z.core.$strip>>;
1032
+ }, z.core.$strip>>;
1033
+ actions: z.ZodOptional<z.ZodObject<{
1034
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1035
+ type: z.ZodLiteral<"log_only">;
1036
+ message: z.ZodOptional<z.ZodString>;
1037
+ }, z.core.$strip>, z.ZodObject<{
1038
+ type: z.ZodLiteral<"notify">;
1039
+ channels: z.ZodArray<z.ZodEnum<{
1040
+ push: "push";
1041
+ discord: "discord";
1042
+ email: "email";
1043
+ webhook: "webhook";
1044
+ }>>;
1045
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1046
+ }, z.core.$strip>, z.ZodObject<{
1047
+ type: z.ZodLiteral<"adjust_trust">;
1048
+ amount: z.ZodNumber;
1049
+ }, z.core.$strip>, z.ZodObject<{
1050
+ type: z.ZodLiteral<"set_trust">;
1051
+ value: z.ZodNumber;
1052
+ }, z.core.$strip>, z.ZodObject<{
1053
+ type: z.ZodLiteral<"reset_trust">;
1054
+ }, z.core.$strip>, z.ZodObject<{
1055
+ type: z.ZodLiteral<"kill_stream">;
1056
+ delay_seconds: z.ZodOptional<z.ZodNumber>;
1057
+ require_confirmation: z.ZodOptional<z.ZodBoolean>;
1058
+ cooldown_minutes: z.ZodOptional<z.ZodNumber>;
1059
+ message: z.ZodOptional<z.ZodString>;
1060
+ target: z.ZodOptional<z.ZodEnum<{
1061
+ triggering: "triggering";
1062
+ oldest: "oldest";
1063
+ newest: "newest";
1064
+ all_except_one: "all_except_one";
1065
+ all_user: "all_user";
1066
+ }>>;
1067
+ }, z.core.$strip>, z.ZodObject<{
1068
+ type: z.ZodLiteral<"message_client">;
1069
+ message: z.ZodString;
1070
+ target: z.ZodOptional<z.ZodEnum<{
1071
+ triggering: "triggering";
1072
+ oldest: "oldest";
1073
+ newest: "newest";
1074
+ all_except_one: "all_except_one";
1075
+ all_user: "all_user";
1076
+ }>>;
1077
+ }, z.core.$strip>], "type">>;
1078
+ }, z.core.$strip>>;
1079
+ }, z.core.$strip>;
1080
+ export declare const bulkUpdateRulesSchema: z.ZodObject<{
1081
+ ids: z.ZodArray<z.ZodUUID>;
1082
+ isActive: z.ZodBoolean;
1083
+ }, z.core.$strip>;
1084
+ export declare const bulkDeleteRulesSchema: z.ZodObject<{
1085
+ ids: z.ZodArray<z.ZodUUID>;
1086
+ }, z.core.$strip>;
1087
+ export declare const bulkMigrateRulesSchema: z.ZodObject<{
1088
+ ids: z.ZodOptional<z.ZodArray<z.ZodUUID>>;
1089
+ }, z.core.$strip>;
1090
+ export declare const violationSortFieldSchema: z.ZodEnum<{
1091
+ severity: "severity";
1092
+ createdAt: "createdAt";
1093
+ user: "user";
1094
+ rule: "rule";
1095
+ }>;
1096
+ export type ViolationSortField = z.infer<typeof violationSortFieldSchema>;
1097
+ export declare const violationQuerySchema: z.ZodObject<{
1098
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1099
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1100
+ serverId: z.ZodOptional<z.ZodUUID>;
1101
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1102
+ serverUserId: z.ZodOptional<z.ZodUUID>;
1103
+ userId: z.ZodOptional<z.ZodUUID>;
1104
+ userIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1105
+ ruleId: z.ZodOptional<z.ZodUUID>;
1106
+ severity: z.ZodOptional<z.ZodEnum<{
1107
+ low: "low";
1108
+ warning: "warning";
1109
+ high: "high";
1110
+ }>>;
1111
+ acknowledged: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
1112
+ startDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
1113
+ endDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
1114
+ orderBy: z.ZodOptional<z.ZodEnum<{
1115
+ severity: "severity";
1116
+ createdAt: "createdAt";
1117
+ user: "user";
1118
+ rule: "rule";
1119
+ }>>;
1120
+ orderDir: z.ZodOptional<z.ZodEnum<{
1121
+ asc: "asc";
1122
+ desc: "desc";
1123
+ }>>;
1124
+ }, z.core.$strip>;
1125
+ export declare const violationIdParamSchema: z.ZodObject<{
1126
+ id: z.ZodUUID;
1127
+ }, z.core.$strip>;
1128
+ export declare const serverIdFilterSchema: z.ZodObject<{
1129
+ serverId: z.ZodOptional<z.ZodUUID>;
1130
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1131
+ }, z.core.$strip>;
1132
+ export declare const dashboardQuerySchema: z.ZodObject<{
1133
+ serverId: z.ZodOptional<z.ZodUUID>;
1134
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1135
+ timezone: z.ZodOptional<z.ZodString>;
1136
+ }, z.core.$strip>;
1137
+ export declare const statsQuerySchema: z.ZodObject<{
1138
+ period: z.ZodDefault<z.ZodEnum<{
1139
+ all: "all";
1140
+ day: "day";
1141
+ week: "week";
1142
+ month: "month";
1143
+ year: "year";
1144
+ custom: "custom";
1145
+ }>>;
1146
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1147
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1148
+ serverId: z.ZodOptional<z.ZodUUID>;
1149
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1150
+ timezone: z.ZodOptional<z.ZodString>;
1151
+ }, z.core.$strip>;
1152
+ export declare const locationStatsQuerySchema: z.ZodObject<{
1153
+ period: z.ZodDefault<z.ZodEnum<{
1154
+ all: "all";
1155
+ day: "day";
1156
+ week: "week";
1157
+ month: "month";
1158
+ year: "year";
1159
+ custom: "custom";
1160
+ }>>;
1161
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1162
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1163
+ serverUserId: z.ZodOptional<z.ZodUUID>;
1164
+ serverUserIds: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>>, z.ZodTransform<unknown[] | undefined, string[] | unknown[] | undefined>>;
1165
+ serverId: z.ZodOptional<z.ZodUUID>;
1166
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1167
+ mediaType: z.ZodOptional<z.ZodEnum<{
1168
+ movie: "movie";
1169
+ episode: "episode";
1170
+ track: "track";
1171
+ live: "live";
1172
+ }>>;
1173
+ }, z.core.$strip>;
1174
+ export declare const webhookFormatSchema: z.ZodEnum<{
1175
+ json: "json";
1176
+ ntfy: "ntfy";
1177
+ apprise: "apprise";
1178
+ pushover: "pushover";
1179
+ gotify: "gotify";
1180
+ }>;
1181
+ export declare const unitSystemSchema: z.ZodEnum<{
1182
+ metric: "metric";
1183
+ imperial: "imperial";
1184
+ }>;
1185
+ export declare const updateSettingsSchema: z.ZodObject<{
1186
+ allowGuestAccess: z.ZodOptional<z.ZodBoolean>;
1187
+ unitSystem: z.ZodOptional<z.ZodEnum<{
1188
+ metric: "metric";
1189
+ imperial: "imperial";
1190
+ }>>;
1191
+ discordWebhookUrl: z.ZodOptional<z.ZodPreprocess<z.ZodNullable<z.ZodString>>>;
1192
+ customWebhookUrl: z.ZodOptional<z.ZodPreprocess<z.ZodNullable<z.ZodString>>>;
1193
+ webhookFormat: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1194
+ json: "json";
1195
+ ntfy: "ntfy";
1196
+ apprise: "apprise";
1197
+ pushover: "pushover";
1198
+ gotify: "gotify";
1199
+ }>>>;
1200
+ ntfyTopic: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1201
+ ntfyAuthToken: z.ZodOptional<z.ZodPreprocess<z.ZodNullable<z.ZodString>>>;
1202
+ pushoverUserKey: z.ZodOptional<z.ZodPreprocess<z.ZodNullable<z.ZodString>>>;
1203
+ pushoverApiToken: z.ZodOptional<z.ZodPreprocess<z.ZodNullable<z.ZodString>>>;
1204
+ pollerEnabled: z.ZodOptional<z.ZodBoolean>;
1205
+ pollerIntervalMs: z.ZodOptional<z.ZodNumber>;
1206
+ usePlexGeoip: z.ZodOptional<z.ZodBoolean>;
1207
+ tautulliUrl: z.ZodOptional<z.ZodPreprocess<z.ZodNullable<z.ZodString>>>;
1208
+ tautulliApiKey: z.ZodOptional<z.ZodPreprocess<z.ZodNullable<z.ZodString>>>;
1209
+ externalUrl: z.ZodOptional<z.ZodPreprocess<z.ZodNullable<z.ZodString>>>;
1210
+ trustProxy: z.ZodOptional<z.ZodBoolean>;
1211
+ tailscaleHostname: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1212
+ backupScheduleType: z.ZodOptional<z.ZodEnum<{
1213
+ disabled: "disabled";
1214
+ daily: "daily";
1215
+ weekly: "weekly";
1216
+ monthly: "monthly";
1217
+ }>>;
1218
+ backupScheduleTime: z.ZodOptional<z.ZodString>;
1219
+ backupScheduleDayOfWeek: z.ZodOptional<z.ZodNumber>;
1220
+ backupScheduleDayOfMonth: z.ZodOptional<z.ZodNumber>;
1221
+ backupRetentionCount: z.ZodOptional<z.ZodNumber>;
1222
+ watchedThresholdMovie: z.ZodOptional<z.ZodNumber>;
1223
+ watchedThresholdTv: z.ZodOptional<z.ZodNumber>;
1224
+ watchedThresholdMusic: z.ZodOptional<z.ZodNumber>;
1225
+ publicApiRateLimitPerMinute: z.ZodOptional<z.ZodNumber>;
1226
+ imagePrecacheEnabled: z.ZodOptional<z.ZodBoolean>;
1227
+ preferredPosterServerId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1228
+ }, z.core.$strip>;
1229
+ export declare const tailscaleEnableSchema: z.ZodObject<{
1230
+ hostname: z.ZodOptional<z.ZodString>;
1231
+ }, z.core.$strip>;
1232
+ export declare const tailscaleExitNodeSchema: z.ZodObject<{
1233
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1234
+ }, z.core.$strip>;
1235
+ export declare const tautulliImportSchema: z.ZodObject<{
1236
+ serverId: z.ZodUUID;
1237
+ overwriteFriendlyNames: z.ZodOptional<z.ZodBoolean>;
1238
+ includeStreamDetails: z.ZodOptional<z.ZodBoolean>;
1239
+ }, z.core.$strip>;
1240
+ /**
1241
+ * PlayState object from Jellystat backup
1242
+ * Uses loose() to allow extra fields that Jellystat may include
1243
+ */
1244
+ export declare const jellystatPlayStateSchema: z.ZodObject<{
1245
+ IsPaused: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1246
+ PositionTicks: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1247
+ RuntimeTicks: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1248
+ Completed: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1249
+ }, z.core.$loose>;
1250
+ /**
1251
+ * TranscodingInfo object from Jellystat backup
1252
+ * Uses looseObject() to allow extra fields like AudioCodec, VideoCodec, etc.
1253
+ */
1254
+ export declare const jellystatTranscodingInfoSchema: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1255
+ Bitrate: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1256
+ }, z.core.$loose>>>;
1257
+ /**
1258
+ * Individual playback activity record from Jellystat export
1259
+ * Uses looseObject() to allow extra fields like ApplicationVersion, MediaStreams, etc.
1260
+ */
1261
+ export declare const jellystatPlaybackActivitySchema: z.ZodObject<{
1262
+ Id: z.ZodString;
1263
+ UserId: z.ZodString;
1264
+ UserName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1265
+ NowPlayingItemId: z.ZodString;
1266
+ NowPlayingItemName: z.ZodString;
1267
+ SeriesName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1268
+ SeasonId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1269
+ EpisodeId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1270
+ PlaybackDuration: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
1271
+ ActivityDateInserted: z.ZodString;
1272
+ PlayMethod: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1273
+ PlayState: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1274
+ IsPaused: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1275
+ PositionTicks: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1276
+ RuntimeTicks: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1277
+ Completed: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1278
+ }, z.core.$loose>>>;
1279
+ TranscodingInfo: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1280
+ Bitrate: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1281
+ }, z.core.$loose>>>;
1282
+ RemoteEndPoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1283
+ Client: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1284
+ DeviceName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1285
+ DeviceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1286
+ IsPaused: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1287
+ }, z.core.$loose>;
1288
+ /**
1289
+ * Jellystat backup file structure
1290
+ * The backup is an array with a single object containing table data
1291
+ * Individual activity records are validated separately during import to skip bad records
1292
+ */
1293
+ export declare const jellystatBackupSchema: z.ZodArray<z.ZodObject<{
1294
+ jf_playback_activity: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
1295
+ }, z.core.$strip>>;
1296
+ /**
1297
+ * Request body for Jellystat import (multipart form data is parsed separately)
1298
+ */
1299
+ export declare const jellystatImportBodySchema: z.ZodObject<{
1300
+ serverId: z.ZodUUID;
1301
+ enrichMedia: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
1302
+ updateStreamDetails: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
1303
+ }, z.core.$strip>;
1304
+ /**
1305
+ * Import job status response
1306
+ */
1307
+ export declare const importJobStatusSchema: z.ZodObject<{
1308
+ jobId: z.ZodString;
1309
+ state: z.ZodEnum<{
1310
+ queued: "queued";
1311
+ active: "active";
1312
+ completed: "completed";
1313
+ failed: "failed";
1314
+ delayed: "delayed";
1315
+ }>;
1316
+ progress: z.ZodOptional<z.ZodNumber>;
1317
+ result: z.ZodOptional<z.ZodObject<{
1318
+ imported: z.ZodNumber;
1319
+ skipped: z.ZodNumber;
1320
+ errors: z.ZodNumber;
1321
+ enriched: z.ZodOptional<z.ZodNumber>;
1322
+ }, z.core.$strip>>;
1323
+ failedReason: z.ZodOptional<z.ZodString>;
1324
+ }, z.core.$strip>;
1325
+ export declare const engagementTierSchema: z.ZodEnum<{
1326
+ unknown: "unknown";
1327
+ watched: "watched";
1328
+ abandoned: "abandoned";
1329
+ sampled: "sampled";
1330
+ engaged: "engaged";
1331
+ rewatched: "rewatched";
1332
+ }>;
1333
+ export type EngagementTier = z.infer<typeof engagementTierSchema>;
1334
+ export declare const userBehaviorTypeSchema: z.ZodEnum<{
1335
+ inactive: "inactive";
1336
+ sampler: "sampler";
1337
+ casual: "casual";
1338
+ completionist: "completionist";
1339
+ rewatcher: "rewatcher";
1340
+ }>;
1341
+ export type UserBehaviorType = z.infer<typeof userBehaviorTypeSchema>;
1342
+ export declare const engagementQuerySchema: z.ZodObject<{
1343
+ period: z.ZodDefault<z.ZodEnum<{
1344
+ all: "all";
1345
+ day: "day";
1346
+ week: "week";
1347
+ month: "month";
1348
+ year: "year";
1349
+ custom: "custom";
1350
+ }>>;
1351
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1352
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1353
+ serverId: z.ZodOptional<z.ZodUUID>;
1354
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1355
+ timezone: z.ZodOptional<z.ZodString>;
1356
+ mediaType: z.ZodOptional<z.ZodEnum<{
1357
+ movie: "movie";
1358
+ episode: "episode";
1359
+ track: "track";
1360
+ live: "live";
1361
+ }>>;
1362
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1363
+ }, z.core.$strip>;
1364
+ export declare const showsQuerySchema: z.ZodObject<{
1365
+ period: z.ZodDefault<z.ZodEnum<{
1366
+ all: "all";
1367
+ day: "day";
1368
+ week: "week";
1369
+ month: "month";
1370
+ year: "year";
1371
+ custom: "custom";
1372
+ }>>;
1373
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1374
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1375
+ serverId: z.ZodOptional<z.ZodUUID>;
1376
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1377
+ timezone: z.ZodOptional<z.ZodString>;
1378
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1379
+ orderBy: z.ZodDefault<z.ZodEnum<{
1380
+ totalEpisodeViews: "totalEpisodeViews";
1381
+ totalWatchHours: "totalWatchHours";
1382
+ bingeScore: "bingeScore";
1383
+ uniqueViewers: "uniqueViewers";
1384
+ }>>;
1385
+ }, z.core.$strip>;
1386
+ export declare const libraryStatsQuerySchema: z.ZodObject<{
1387
+ serverId: z.ZodOptional<z.ZodUUID>;
1388
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1389
+ libraryId: z.ZodOptional<z.ZodUUID>;
1390
+ timezone: z.ZodOptional<z.ZodString>;
1391
+ }, z.core.$strip>;
1392
+ export declare const libraryStatusQuerySchema: z.ZodObject<{
1393
+ serverId: z.ZodOptional<z.ZodUUID>;
1394
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1395
+ }, z.core.$strip>;
1396
+ export declare const libraryGrowthQuerySchema: z.ZodObject<{
1397
+ serverId: z.ZodOptional<z.ZodUUID>;
1398
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1399
+ libraryId: z.ZodOptional<z.ZodUUID>;
1400
+ period: z.ZodDefault<z.ZodEnum<{
1401
+ all: "all";
1402
+ "30d": "30d";
1403
+ "7d": "7d";
1404
+ "90d": "90d";
1405
+ "1y": "1y";
1406
+ }>>;
1407
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1408
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1409
+ timezone: z.ZodOptional<z.ZodString>;
1410
+ }, z.core.$strip>;
1411
+ export declare const libraryQualityQuerySchema: z.ZodObject<{
1412
+ serverId: z.ZodOptional<z.ZodUUID>;
1413
+ period: z.ZodDefault<z.ZodEnum<{
1414
+ all: "all";
1415
+ "30d": "30d";
1416
+ "7d": "7d";
1417
+ "90d": "90d";
1418
+ "1y": "1y";
1419
+ }>>;
1420
+ mediaType: z.ZodDefault<z.ZodEnum<{
1421
+ all: "all";
1422
+ movies: "movies";
1423
+ shows: "shows";
1424
+ }>>;
1425
+ timezone: z.ZodOptional<z.ZodString>;
1426
+ }, z.core.$strip>;
1427
+ export declare const libraryStorageQuerySchema: z.ZodObject<{
1428
+ serverId: z.ZodOptional<z.ZodUUID>;
1429
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1430
+ libraryId: z.ZodOptional<z.ZodUUID>;
1431
+ period: z.ZodDefault<z.ZodEnum<{
1432
+ all: "all";
1433
+ "30d": "30d";
1434
+ "7d": "7d";
1435
+ "90d": "90d";
1436
+ "1y": "1y";
1437
+ }>>;
1438
+ timezone: z.ZodOptional<z.ZodString>;
1439
+ }, z.core.$strip>;
1440
+ export declare const libraryDuplicatesQuerySchema: z.ZodObject<{
1441
+ serverId: z.ZodOptional<z.ZodUUID>;
1442
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1443
+ mediaType: z.ZodOptional<z.ZodEnum<{
1444
+ movie: "movie";
1445
+ episode: "episode";
1446
+ show: "show";
1447
+ }>>;
1448
+ minConfidence: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1449
+ includeFuzzy: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
1450
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1451
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1452
+ }, z.core.$strip>;
1453
+ export declare const libraryStaleQuerySchema: z.ZodObject<{
1454
+ serverId: z.ZodOptional<z.ZodUUID>;
1455
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1456
+ libraryId: z.ZodOptional<z.ZodUUID>;
1457
+ mediaType: z.ZodOptional<z.ZodEnum<{
1458
+ movie: "movie";
1459
+ show: "show";
1460
+ artist: "artist";
1461
+ }>>;
1462
+ staleDays: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1463
+ category: z.ZodDefault<z.ZodEnum<{
1464
+ all: "all";
1465
+ never_watched: "never_watched";
1466
+ stale: "stale";
1467
+ }>>;
1468
+ sortBy: z.ZodDefault<z.ZodEnum<{
1469
+ title: "title";
1470
+ size: "size";
1471
+ days_stale: "days_stale";
1472
+ added_at: "added_at";
1473
+ }>>;
1474
+ sortOrder: z.ZodDefault<z.ZodEnum<{
1475
+ asc: "asc";
1476
+ desc: "desc";
1477
+ }>>;
1478
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1479
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1480
+ timezone: z.ZodOptional<z.ZodString>;
1481
+ }, z.core.$strip>;
1482
+ export declare const libraryWatchQuerySchema: z.ZodObject<{
1483
+ serverId: z.ZodOptional<z.ZodUUID>;
1484
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1485
+ libraryId: z.ZodOptional<z.ZodString>;
1486
+ mediaType: z.ZodOptional<z.ZodEnum<{
1487
+ movie: "movie";
1488
+ episode: "episode";
1489
+ show: "show";
1490
+ }>>;
1491
+ minWatchCount: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1492
+ maxWatchCount: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1493
+ includeUnwatched: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
1494
+ sortBy: z.ZodDefault<z.ZodEnum<{
1495
+ title: "title";
1496
+ watch_count: "watch_count";
1497
+ last_watched: "last_watched";
1498
+ file_size: "file_size";
1499
+ }>>;
1500
+ sortOrder: z.ZodDefault<z.ZodEnum<{
1501
+ asc: "asc";
1502
+ desc: "desc";
1503
+ }>>;
1504
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1505
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1506
+ }, z.core.$strip>;
1507
+ export declare const libraryRoiQuerySchema: z.ZodObject<{
1508
+ serverId: z.ZodOptional<z.ZodUUID>;
1509
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1510
+ libraryId: z.ZodOptional<z.ZodString>;
1511
+ mediaType: z.ZodDefault<z.ZodEnum<{
1512
+ all: "all";
1513
+ movie: "movie";
1514
+ show: "show";
1515
+ artist: "artist";
1516
+ }>>;
1517
+ valueCategory: z.ZodDefault<z.ZodEnum<{
1518
+ all: "all";
1519
+ low_value: "low_value";
1520
+ moderate_value: "moderate_value";
1521
+ high_value: "high_value";
1522
+ }>>;
1523
+ periodDays: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1524
+ includeAgeDecay: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
1525
+ minFileSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1526
+ sortBy: z.ZodDefault<z.ZodEnum<{
1527
+ title: "title";
1528
+ file_size: "file_size";
1529
+ watch_hours_per_gb: "watch_hours_per_gb";
1530
+ value_score: "value_score";
1531
+ }>>;
1532
+ sortOrder: z.ZodDefault<z.ZodEnum<{
1533
+ asc: "asc";
1534
+ desc: "desc";
1535
+ }>>;
1536
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1537
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1538
+ }, z.core.$strip>;
1539
+ export declare const libraryPatternsQuerySchema: z.ZodObject<{
1540
+ serverId: z.ZodOptional<z.ZodUUID>;
1541
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1542
+ libraryId: z.ZodOptional<z.ZodString>;
1543
+ periodWeeks: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1544
+ scope: z.ZodDefault<z.ZodEnum<{
1545
+ user: "user";
1546
+ server: "server";
1547
+ }>>;
1548
+ includeBinge: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
1549
+ includePeakTimes: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
1550
+ includeSeasonalTrends: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
1551
+ bingeThreshold: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1552
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1553
+ timezone: z.ZodOptional<z.ZodString>;
1554
+ }, z.core.$strip>;
1555
+ export declare const libraryCompletionQuerySchema: z.ZodObject<{
1556
+ serverId: z.ZodOptional<z.ZodUUID>;
1557
+ libraryId: z.ZodOptional<z.ZodString>;
1558
+ mediaType: z.ZodOptional<z.ZodEnum<{
1559
+ movie: "movie";
1560
+ episode: "episode";
1561
+ show: "show";
1562
+ }>>;
1563
+ aggregateLevel: z.ZodDefault<z.ZodEnum<{
1564
+ item: "item";
1565
+ season: "season";
1566
+ series: "series";
1567
+ }>>;
1568
+ status: z.ZodDefault<z.ZodEnum<{
1569
+ all: "all";
1570
+ completed: "completed";
1571
+ in_progress: "in_progress";
1572
+ not_started: "not_started";
1573
+ }>>;
1574
+ minCompletionPct: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1575
+ maxCompletionPct: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1576
+ sortBy: z.ZodDefault<z.ZodEnum<{
1577
+ title: "title";
1578
+ last_watched: "last_watched";
1579
+ completion_pct: "completion_pct";
1580
+ }>>;
1581
+ sortOrder: z.ZodDefault<z.ZodEnum<{
1582
+ asc: "asc";
1583
+ desc: "desc";
1584
+ }>>;
1585
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1586
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1587
+ }, z.core.$strip>;
1588
+ export declare const topContentQuerySchema: z.ZodObject<{
1589
+ serverId: z.ZodOptional<z.ZodUUID>;
1590
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1591
+ period: z.ZodDefault<z.ZodEnum<{
1592
+ all: "all";
1593
+ "30d": "30d";
1594
+ "7d": "7d";
1595
+ "90d": "90d";
1596
+ "1y": "1y";
1597
+ }>>;
1598
+ sortBy: z.ZodDefault<z.ZodEnum<{
1599
+ plays: "plays";
1600
+ watch_hours: "watch_hours";
1601
+ viewers: "viewers";
1602
+ completion_rate: "completion_rate";
1603
+ binge_score: "binge_score";
1604
+ }>>;
1605
+ sortOrder: z.ZodDefault<z.ZodEnum<{
1606
+ asc: "asc";
1607
+ desc: "desc";
1608
+ }>>;
1609
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1610
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1611
+ }, z.core.$strip>;
1612
+ export declare const shelvesQuerySchema: z.ZodObject<{
1613
+ period: z.ZodDefault<z.ZodEnum<{
1614
+ all: "all";
1615
+ day: "day";
1616
+ week: "week";
1617
+ month: "month";
1618
+ year: "year";
1619
+ custom: "custom";
1620
+ }>>;
1621
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1622
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1623
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1624
+ includeDeadWeight: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
1625
+ }, z.core.$strip>;
1626
+ export type LibraryStatsQueryInput = z.infer<typeof libraryStatsQuerySchema>;
1627
+ export type LibraryStatusQueryInput = z.infer<typeof libraryStatusQuerySchema>;
1628
+ export type LibraryGrowthQueryInput = z.infer<typeof libraryGrowthQuerySchema>;
1629
+ export type LibraryQualityQueryInput = z.infer<typeof libraryQualityQuerySchema>;
1630
+ export type LibraryStorageQueryInput = z.infer<typeof libraryStorageQuerySchema>;
1631
+ export type LibraryDuplicatesQueryInput = z.infer<typeof libraryDuplicatesQuerySchema>;
1632
+ export type LibraryStaleQueryInput = z.infer<typeof libraryStaleQuerySchema>;
1633
+ export type LibraryWatchQueryInput = z.infer<typeof libraryWatchQuerySchema>;
1634
+ export type LibraryRoiQueryInput = z.infer<typeof libraryRoiQuerySchema>;
1635
+ export type LibraryPatternsQueryInput = z.infer<typeof libraryPatternsQuerySchema>;
1636
+ export type LibraryCompletionQueryInput = z.infer<typeof libraryCompletionQuerySchema>;
1637
+ export type TopContentQueryInput = z.infer<typeof topContentQuerySchema>;
1638
+ export type ShelvesQueryInput = z.infer<typeof shelvesQuerySchema>;
1639
+ export type LoginInput = z.infer<typeof loginSchema>;
1640
+ export type CallbackInput = z.infer<typeof callbackSchema>;
1641
+ export type CreateServerInput = z.infer<typeof createServerSchema>;
1642
+ export type ReorderServersInput = z.infer<typeof reorderServersSchema>;
1643
+ export type UpdateServerInput = z.infer<typeof updateServerSchema>;
1644
+ export type UpdateUserInput = z.infer<typeof updateUserSchema>;
1645
+ export type SessionQueryInput = z.infer<typeof sessionQuerySchema>;
1646
+ export type HistoryQueryInput = z.infer<typeof historyQuerySchema>;
1647
+ export type HistoryAggregatesQueryInput = z.infer<typeof historyAggregatesQuerySchema>;
1648
+ export type FilterOptionsQueryInput = z.infer<typeof filterOptionsQuerySchema>;
1649
+ export type CreateRuleInput = z.infer<typeof createRuleSchema>;
1650
+ export type UpdateRuleInput = z.infer<typeof updateRuleSchema>;
1651
+ export type ComparisonOperator = z.infer<typeof comparisonOperatorSchema>;
1652
+ export type ArrayOperator = z.infer<typeof arrayOperatorSchema>;
1653
+ export type StringOperator = z.infer<typeof stringOperatorSchema>;
1654
+ export type Operator = z.infer<typeof operatorSchema>;
1655
+ export type SessionBehaviorField = z.infer<typeof sessionBehaviorFieldSchema>;
1656
+ export type StreamQualityField = z.infer<typeof streamQualityFieldSchema>;
1657
+ export type UserAttributeField = z.infer<typeof userAttributeFieldSchema>;
1658
+ export type DeviceClientField = z.infer<typeof deviceClientFieldSchema>;
1659
+ export type NetworkLocationField = z.infer<typeof networkLocationFieldSchema>;
1660
+ export type ScopeField = z.infer<typeof scopeFieldSchema>;
1661
+ export type ConditionField = z.infer<typeof conditionFieldSchema>;
1662
+ export type VideoResolution = z.infer<typeof videoResolutionSchema>;
1663
+ export type DeviceType = z.infer<typeof deviceTypeSchema>;
1664
+ export type Platform = z.infer<typeof platformSchema>;
1665
+ export type MediaTypeEnum = z.infer<typeof mediaTypeEnumSchema>;
1666
+ export type ConditionValue = z.infer<typeof conditionValueSchema>;
1667
+ export type Condition = z.infer<typeof conditionSchema>;
1668
+ export type ConditionGroup = z.infer<typeof conditionGroupSchema>;
1669
+ export type RuleConditions = z.infer<typeof ruleConditionsSchema>;
1670
+ export type ActionType = z.infer<typeof actionTypeSchema>;
1671
+ export type NotificationChannelV2 = z.infer<typeof notificationChannelV2Schema>;
1672
+ export type LogOnlyAction = z.infer<typeof logOnlyActionSchema>;
1673
+ export type NotifyAction = z.infer<typeof notifyActionSchema>;
1674
+ export type AdjustTrustAction = z.infer<typeof adjustTrustActionSchema>;
1675
+ export type SetTrustAction = z.infer<typeof setTrustActionSchema>;
1676
+ export type ResetTrustAction = z.infer<typeof resetTrustActionSchema>;
1677
+ export type KillStreamAction = z.infer<typeof killStreamActionSchema>;
1678
+ export type MessageClientAction = z.infer<typeof messageClientActionSchema>;
1679
+ export type Action = z.infer<typeof actionSchema>;
1680
+ export type RuleActions = z.infer<typeof ruleActionsSchema>;
1681
+ export type CreateRuleV2Input = z.infer<typeof createRuleV2Schema>;
1682
+ export type UpdateRuleV2Input = z.infer<typeof updateRuleV2Schema>;
1683
+ export type BulkUpdateRulesInput = z.infer<typeof bulkUpdateRulesSchema>;
1684
+ export type BulkDeleteRulesInput = z.infer<typeof bulkDeleteRulesSchema>;
1685
+ export type BulkMigrateRulesInput = z.infer<typeof bulkMigrateRulesSchema>;
1686
+ export type ViolationQueryInput = z.infer<typeof violationQuerySchema>;
1687
+ export type ServerIdFilterInput = z.infer<typeof serverIdFilterSchema>;
1688
+ export type DashboardQueryInput = z.infer<typeof dashboardQuerySchema>;
1689
+ export type StatsQueryInput = z.infer<typeof statsQuerySchema>;
1690
+ export type LocationStatsQueryInput = z.infer<typeof locationStatsQuerySchema>;
1691
+ export type UpdateSettingsInput = z.infer<typeof updateSettingsSchema>;
1692
+ export type TautulliImportInput = z.infer<typeof tautulliImportSchema>;
1693
+ export type JellystatPlayState = z.infer<typeof jellystatPlayStateSchema>;
1694
+ export type JellystatTranscodingInfo = z.infer<typeof jellystatTranscodingInfoSchema>;
1695
+ export type JellystatPlaybackActivity = z.infer<typeof jellystatPlaybackActivitySchema>;
1696
+ export type JellystatBackup = z.infer<typeof jellystatBackupSchema>;
1697
+ export type JellystatImportBody = z.infer<typeof jellystatImportBodySchema>;
1698
+ export type ImportJobStatus = z.infer<typeof importJobStatusSchema>;
1699
+ export type EngagementQueryInput = z.infer<typeof engagementQuerySchema>;
1700
+ export type ShowsQueryInput = z.infer<typeof showsQuerySchema>;
1701
+ export {};
1702
+ //# sourceMappingURL=schemas.d.ts.map