@seamapi/types 1.18.4 → 1.18.6

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 (34) hide show
  1. package/dist/devicedb.cjs +70 -4
  2. package/dist/devicedb.cjs.map +1 -1
  3. package/dist/devicedb.d.cts +662 -74
  4. package/lib/seam/devicedb/index.d.ts +2 -2
  5. package/lib/seam/devicedb/index.js +1 -1
  6. package/lib/seam/devicedb/index.js.map +1 -1
  7. package/lib/seam/devicedb/public-models/device-model-v0.d.ts +30 -0
  8. package/lib/seam/devicedb/public-models/device-model-v0.js +12 -0
  9. package/lib/seam/devicedb/public-models/device-model-v0.js.map +1 -0
  10. package/lib/seam/devicedb/public-models/device-model-v1.d.ts +692 -0
  11. package/lib/seam/devicedb/public-models/device-model-v1.js +83 -0
  12. package/lib/seam/devicedb/public-models/device-model-v1.js.map +1 -0
  13. package/lib/seam/devicedb/public-models/image-reference.d.ts +15 -0
  14. package/lib/seam/devicedb/public-models/image-reference.js +7 -0
  15. package/lib/seam/devicedb/public-models/image-reference.js.map +1 -0
  16. package/lib/seam/devicedb/public-models/index.d.ts +4 -0
  17. package/lib/seam/devicedb/public-models/index.js +5 -0
  18. package/lib/seam/devicedb/public-models/index.js.map +1 -0
  19. package/lib/seam/devicedb/public-models/manufacturer.d.ts +44 -0
  20. package/lib/seam/devicedb/public-models/manufacturer.js +11 -0
  21. package/lib/seam/devicedb/public-models/manufacturer.js.map +1 -0
  22. package/lib/seam/devicedb/route-types.d.ts +78 -4
  23. package/package.json +1 -1
  24. package/src/lib/seam/devicedb/index.ts +2 -2
  25. package/src/lib/seam/devicedb/public-models/device-model-v0.ts +14 -0
  26. package/src/lib/seam/devicedb/public-models/device-model-v1.ts +99 -0
  27. package/src/lib/seam/devicedb/public-models/image-reference.ts +9 -0
  28. package/src/lib/seam/devicedb/public-models/index.ts +4 -0
  29. package/src/lib/seam/devicedb/public-models/manufacturer.ts +14 -0
  30. package/src/lib/seam/devicedb/route-types.ts +153 -41
  31. package/lib/seam/devicedb/public-models.d.ts +0 -273
  32. package/lib/seam/devicedb/public-models.js +0 -45
  33. package/lib/seam/devicedb/public-models.js.map +0 -1
  34. package/src/lib/seam/devicedb/public-models.ts +0 -56
@@ -0,0 +1,692 @@
1
+ import { z } from 'zod';
2
+ export declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
3
+ main_category: z.ZodLiteral<"smartlock">;
4
+ physical_properties: z.ZodObject<{
5
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
6
+ has_physical_key: z.ZodBoolean;
7
+ has_camera: z.ZodBoolean;
8
+ }, "strip", z.ZodTypeAny, {
9
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
10
+ has_physical_key: boolean;
11
+ has_camera: boolean;
12
+ }, {
13
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
14
+ has_physical_key: boolean;
15
+ has_camera: boolean;
16
+ }>;
17
+ software_features: z.ZodObject<{
18
+ can_remotely_unlock: z.ZodBoolean;
19
+ can_program_access_codes: z.ZodBoolean;
20
+ can_program_access_schedules: z.ZodBoolean;
21
+ can_program_access_codes_offline: z.ZodBoolean;
22
+ }, "strip", z.ZodTypeAny, {
23
+ can_remotely_unlock: boolean;
24
+ can_program_access_codes: boolean;
25
+ can_program_access_schedules: boolean;
26
+ can_program_access_codes_offline: boolean;
27
+ }, {
28
+ can_remotely_unlock: boolean;
29
+ can_program_access_codes: boolean;
30
+ can_program_access_schedules: boolean;
31
+ can_program_access_codes_offline: boolean;
32
+ }>;
33
+ }, "strip", z.ZodTypeAny, {
34
+ main_category: "smartlock";
35
+ physical_properties: {
36
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
37
+ has_physical_key: boolean;
38
+ has_camera: boolean;
39
+ };
40
+ software_features: {
41
+ can_remotely_unlock: boolean;
42
+ can_program_access_codes: boolean;
43
+ can_program_access_schedules: boolean;
44
+ can_program_access_codes_offline: boolean;
45
+ };
46
+ }, {
47
+ main_category: "smartlock";
48
+ physical_properties: {
49
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
50
+ has_physical_key: boolean;
51
+ has_camera: boolean;
52
+ };
53
+ software_features: {
54
+ can_remotely_unlock: boolean;
55
+ can_program_access_codes: boolean;
56
+ can_program_access_schedules: boolean;
57
+ can_program_access_codes_offline: boolean;
58
+ };
59
+ }>, z.ZodObject<{
60
+ main_category: z.ZodLiteral<"sensor">;
61
+ physical_properties: z.ZodObject<{
62
+ has_noise_sensor: z.ZodBoolean;
63
+ has_humidity_sensor: z.ZodBoolean;
64
+ has_temperature_sensor: z.ZodBoolean;
65
+ has_occupancy_detection: z.ZodBoolean;
66
+ }, "strip", z.ZodTypeAny, {
67
+ has_noise_sensor: boolean;
68
+ has_humidity_sensor: boolean;
69
+ has_temperature_sensor: boolean;
70
+ has_occupancy_detection: boolean;
71
+ }, {
72
+ has_noise_sensor: boolean;
73
+ has_humidity_sensor: boolean;
74
+ has_temperature_sensor: boolean;
75
+ has_occupancy_detection: boolean;
76
+ }>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ main_category: "sensor";
79
+ physical_properties: {
80
+ has_noise_sensor: boolean;
81
+ has_humidity_sensor: boolean;
82
+ has_temperature_sensor: boolean;
83
+ has_occupancy_detection: boolean;
84
+ };
85
+ }, {
86
+ main_category: "sensor";
87
+ physical_properties: {
88
+ has_noise_sensor: boolean;
89
+ has_humidity_sensor: boolean;
90
+ has_temperature_sensor: boolean;
91
+ has_occupancy_detection: boolean;
92
+ };
93
+ }>, z.ZodObject<{
94
+ main_category: z.ZodLiteral<"thermostat">;
95
+ physical_properties: z.ZodObject<{
96
+ available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
97
+ is_heat_pump_compatible: z.ZodBoolean;
98
+ has_occupancy_detection: z.ZodBoolean;
99
+ supports_demand_response: z.ZodBoolean;
100
+ has_humidity_sensor: z.ZodBoolean;
101
+ has_temperature_sensor: z.ZodBoolean;
102
+ supports_emergency_heating_mode: z.ZodBoolean;
103
+ }, "strip", z.ZodTypeAny, {
104
+ has_humidity_sensor: boolean;
105
+ has_temperature_sensor: boolean;
106
+ has_occupancy_detection: boolean;
107
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
108
+ is_heat_pump_compatible: boolean;
109
+ supports_demand_response: boolean;
110
+ supports_emergency_heating_mode: boolean;
111
+ }, {
112
+ has_humidity_sensor: boolean;
113
+ has_temperature_sensor: boolean;
114
+ has_occupancy_detection: boolean;
115
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
116
+ is_heat_pump_compatible: boolean;
117
+ supports_demand_response: boolean;
118
+ supports_emergency_heating_mode: boolean;
119
+ }>;
120
+ software_features: z.ZodObject<{
121
+ can_program_climate_schedules: z.ZodBoolean;
122
+ }, "strip", z.ZodTypeAny, {
123
+ can_program_climate_schedules: boolean;
124
+ }, {
125
+ can_program_climate_schedules: boolean;
126
+ }>;
127
+ }, "strip", z.ZodTypeAny, {
128
+ main_category: "thermostat";
129
+ physical_properties: {
130
+ has_humidity_sensor: boolean;
131
+ has_temperature_sensor: boolean;
132
+ has_occupancy_detection: boolean;
133
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
134
+ is_heat_pump_compatible: boolean;
135
+ supports_demand_response: boolean;
136
+ supports_emergency_heating_mode: boolean;
137
+ };
138
+ software_features: {
139
+ can_program_climate_schedules: boolean;
140
+ };
141
+ }, {
142
+ main_category: "thermostat";
143
+ physical_properties: {
144
+ has_humidity_sensor: boolean;
145
+ has_temperature_sensor: boolean;
146
+ has_occupancy_detection: boolean;
147
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
148
+ is_heat_pump_compatible: boolean;
149
+ supports_demand_response: boolean;
150
+ supports_emergency_heating_mode: boolean;
151
+ };
152
+ software_features: {
153
+ can_program_climate_schedules: boolean;
154
+ };
155
+ }>, z.ZodObject<{
156
+ main_category: z.ZodLiteral<"relay">;
157
+ }, "strip", z.ZodTypeAny, {
158
+ main_category: "relay";
159
+ }, {
160
+ main_category: "relay";
161
+ }>]>;
162
+ export declare const base_device_model_v1: z.ZodObject<{
163
+ device_model_id: z.ZodString;
164
+ manufacturer: z.ZodObject<{
165
+ manufacturer_id: z.ZodString;
166
+ display_name: z.ZodString;
167
+ logo: z.ZodOptional<z.ZodObject<{
168
+ url: z.ZodString;
169
+ width: z.ZodNumber;
170
+ height: z.ZodNumber;
171
+ }, "strip", z.ZodTypeAny, {
172
+ height: number;
173
+ width: number;
174
+ url: string;
175
+ }, {
176
+ height: number;
177
+ width: number;
178
+ url: string;
179
+ }>>;
180
+ integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
181
+ is_connect_webview_supported: z.ZodBoolean;
182
+ requires_seam_support_to_add_account: z.ZodBoolean;
183
+ }, "strip", z.ZodTypeAny, {
184
+ display_name: string;
185
+ manufacturer_id: string;
186
+ integration: "beta" | "stable" | "unsupported" | "planned";
187
+ is_connect_webview_supported: boolean;
188
+ requires_seam_support_to_add_account: boolean;
189
+ logo?: {
190
+ height: number;
191
+ width: number;
192
+ url: string;
193
+ } | undefined;
194
+ }, {
195
+ display_name: string;
196
+ manufacturer_id: string;
197
+ integration: "beta" | "stable" | "unsupported" | "planned";
198
+ is_connect_webview_supported: boolean;
199
+ requires_seam_support_to_add_account: boolean;
200
+ logo?: {
201
+ height: number;
202
+ width: number;
203
+ url: string;
204
+ } | undefined;
205
+ }>;
206
+ is_device_supported: z.ZodBoolean;
207
+ display_name: z.ZodString;
208
+ description: z.ZodString;
209
+ product_url: z.ZodString;
210
+ main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
211
+ aesthetic_variants: z.ZodArray<z.ZodObject<{
212
+ slug: z.ZodString;
213
+ display_name: z.ZodString;
214
+ primary_color_hex: z.ZodOptional<z.ZodString>;
215
+ manufacturer_sku: z.ZodString;
216
+ front_image: z.ZodOptional<z.ZodObject<{
217
+ url: z.ZodString;
218
+ width: z.ZodNumber;
219
+ height: z.ZodNumber;
220
+ }, "strip", z.ZodTypeAny, {
221
+ height: number;
222
+ width: number;
223
+ url: string;
224
+ }, {
225
+ height: number;
226
+ width: number;
227
+ url: string;
228
+ }>>;
229
+ back_image: z.ZodOptional<z.ZodObject<{
230
+ url: z.ZodString;
231
+ width: z.ZodNumber;
232
+ height: z.ZodNumber;
233
+ }, "strip", z.ZodTypeAny, {
234
+ height: number;
235
+ width: number;
236
+ url: string;
237
+ }, {
238
+ height: number;
239
+ width: number;
240
+ url: string;
241
+ }>>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ display_name: string;
244
+ slug: string;
245
+ manufacturer_sku: string;
246
+ primary_color_hex?: string | undefined;
247
+ front_image?: {
248
+ height: number;
249
+ width: number;
250
+ url: string;
251
+ } | undefined;
252
+ back_image?: {
253
+ height: number;
254
+ width: number;
255
+ url: string;
256
+ } | undefined;
257
+ }, {
258
+ display_name: string;
259
+ slug: string;
260
+ manufacturer_sku: string;
261
+ primary_color_hex?: string | undefined;
262
+ front_image?: {
263
+ height: number;
264
+ width: number;
265
+ url: string;
266
+ } | undefined;
267
+ back_image?: {
268
+ height: number;
269
+ width: number;
270
+ url: string;
271
+ } | undefined;
272
+ }>, "many">;
273
+ power_sources: z.ZodArray<z.ZodEnum<["battery", "hardwired", "mechanical_harvesting", "wireless", "ethernet"]>, "many">;
274
+ }, "strip", z.ZodTypeAny, {
275
+ description: string;
276
+ display_name: string;
277
+ device_model_id: string;
278
+ manufacturer: {
279
+ display_name: string;
280
+ manufacturer_id: string;
281
+ integration: "beta" | "stable" | "unsupported" | "planned";
282
+ is_connect_webview_supported: boolean;
283
+ requires_seam_support_to_add_account: boolean;
284
+ logo?: {
285
+ height: number;
286
+ width: number;
287
+ url: string;
288
+ } | undefined;
289
+ };
290
+ is_device_supported: boolean;
291
+ product_url: string;
292
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
293
+ aesthetic_variants: {
294
+ display_name: string;
295
+ slug: string;
296
+ manufacturer_sku: string;
297
+ primary_color_hex?: string | undefined;
298
+ front_image?: {
299
+ height: number;
300
+ width: number;
301
+ url: string;
302
+ } | undefined;
303
+ back_image?: {
304
+ height: number;
305
+ width: number;
306
+ url: string;
307
+ } | undefined;
308
+ }[];
309
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
310
+ }, {
311
+ description: string;
312
+ display_name: string;
313
+ device_model_id: string;
314
+ manufacturer: {
315
+ display_name: string;
316
+ manufacturer_id: string;
317
+ integration: "beta" | "stable" | "unsupported" | "planned";
318
+ is_connect_webview_supported: boolean;
319
+ requires_seam_support_to_add_account: boolean;
320
+ logo?: {
321
+ height: number;
322
+ width: number;
323
+ url: string;
324
+ } | undefined;
325
+ };
326
+ is_device_supported: boolean;
327
+ product_url: string;
328
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
329
+ aesthetic_variants: {
330
+ display_name: string;
331
+ slug: string;
332
+ manufacturer_sku: string;
333
+ primary_color_hex?: string | undefined;
334
+ front_image?: {
335
+ height: number;
336
+ width: number;
337
+ url: string;
338
+ } | undefined;
339
+ back_image?: {
340
+ height: number;
341
+ width: number;
342
+ url: string;
343
+ } | undefined;
344
+ }[];
345
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
346
+ }>;
347
+ export type BaseDeviceModelV1 = z.infer<typeof base_device_model_v1>;
348
+ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
349
+ device_model_id: z.ZodString;
350
+ manufacturer: z.ZodObject<{
351
+ manufacturer_id: z.ZodString;
352
+ display_name: z.ZodString;
353
+ logo: z.ZodOptional<z.ZodObject<{
354
+ url: z.ZodString;
355
+ width: z.ZodNumber;
356
+ height: z.ZodNumber;
357
+ }, "strip", z.ZodTypeAny, {
358
+ height: number;
359
+ width: number;
360
+ url: string;
361
+ }, {
362
+ height: number;
363
+ width: number;
364
+ url: string;
365
+ }>>;
366
+ integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
367
+ is_connect_webview_supported: z.ZodBoolean;
368
+ requires_seam_support_to_add_account: z.ZodBoolean;
369
+ }, "strip", z.ZodTypeAny, {
370
+ display_name: string;
371
+ manufacturer_id: string;
372
+ integration: "beta" | "stable" | "unsupported" | "planned";
373
+ is_connect_webview_supported: boolean;
374
+ requires_seam_support_to_add_account: boolean;
375
+ logo?: {
376
+ height: number;
377
+ width: number;
378
+ url: string;
379
+ } | undefined;
380
+ }, {
381
+ display_name: string;
382
+ manufacturer_id: string;
383
+ integration: "beta" | "stable" | "unsupported" | "planned";
384
+ is_connect_webview_supported: boolean;
385
+ requires_seam_support_to_add_account: boolean;
386
+ logo?: {
387
+ height: number;
388
+ width: number;
389
+ url: string;
390
+ } | undefined;
391
+ }>;
392
+ is_device_supported: z.ZodBoolean;
393
+ display_name: z.ZodString;
394
+ description: z.ZodString;
395
+ product_url: z.ZodString;
396
+ main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
397
+ aesthetic_variants: z.ZodArray<z.ZodObject<{
398
+ slug: z.ZodString;
399
+ display_name: z.ZodString;
400
+ primary_color_hex: z.ZodOptional<z.ZodString>;
401
+ manufacturer_sku: z.ZodString;
402
+ front_image: z.ZodOptional<z.ZodObject<{
403
+ url: z.ZodString;
404
+ width: z.ZodNumber;
405
+ height: z.ZodNumber;
406
+ }, "strip", z.ZodTypeAny, {
407
+ height: number;
408
+ width: number;
409
+ url: string;
410
+ }, {
411
+ height: number;
412
+ width: number;
413
+ url: string;
414
+ }>>;
415
+ back_image: z.ZodOptional<z.ZodObject<{
416
+ url: z.ZodString;
417
+ width: z.ZodNumber;
418
+ height: z.ZodNumber;
419
+ }, "strip", z.ZodTypeAny, {
420
+ height: number;
421
+ width: number;
422
+ url: string;
423
+ }, {
424
+ height: number;
425
+ width: number;
426
+ url: string;
427
+ }>>;
428
+ }, "strip", z.ZodTypeAny, {
429
+ display_name: string;
430
+ slug: string;
431
+ manufacturer_sku: string;
432
+ primary_color_hex?: string | undefined;
433
+ front_image?: {
434
+ height: number;
435
+ width: number;
436
+ url: string;
437
+ } | undefined;
438
+ back_image?: {
439
+ height: number;
440
+ width: number;
441
+ url: string;
442
+ } | undefined;
443
+ }, {
444
+ display_name: string;
445
+ slug: string;
446
+ manufacturer_sku: string;
447
+ primary_color_hex?: string | undefined;
448
+ front_image?: {
449
+ height: number;
450
+ width: number;
451
+ url: string;
452
+ } | undefined;
453
+ back_image?: {
454
+ height: number;
455
+ width: number;
456
+ url: string;
457
+ } | undefined;
458
+ }>, "many">;
459
+ power_sources: z.ZodArray<z.ZodEnum<["battery", "hardwired", "mechanical_harvesting", "wireless", "ethernet"]>, "many">;
460
+ }, "strip", z.ZodTypeAny, {
461
+ description: string;
462
+ display_name: string;
463
+ device_model_id: string;
464
+ manufacturer: {
465
+ display_name: string;
466
+ manufacturer_id: string;
467
+ integration: "beta" | "stable" | "unsupported" | "planned";
468
+ is_connect_webview_supported: boolean;
469
+ requires_seam_support_to_add_account: boolean;
470
+ logo?: {
471
+ height: number;
472
+ width: number;
473
+ url: string;
474
+ } | undefined;
475
+ };
476
+ is_device_supported: boolean;
477
+ product_url: string;
478
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
479
+ aesthetic_variants: {
480
+ display_name: string;
481
+ slug: string;
482
+ manufacturer_sku: string;
483
+ primary_color_hex?: string | undefined;
484
+ front_image?: {
485
+ height: number;
486
+ width: number;
487
+ url: string;
488
+ } | undefined;
489
+ back_image?: {
490
+ height: number;
491
+ width: number;
492
+ url: string;
493
+ } | undefined;
494
+ }[];
495
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
496
+ }, {
497
+ description: string;
498
+ display_name: string;
499
+ device_model_id: string;
500
+ manufacturer: {
501
+ display_name: string;
502
+ manufacturer_id: string;
503
+ integration: "beta" | "stable" | "unsupported" | "planned";
504
+ is_connect_webview_supported: boolean;
505
+ requires_seam_support_to_add_account: boolean;
506
+ logo?: {
507
+ height: number;
508
+ width: number;
509
+ url: string;
510
+ } | undefined;
511
+ };
512
+ is_device_supported: boolean;
513
+ product_url: string;
514
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
515
+ aesthetic_variants: {
516
+ display_name: string;
517
+ slug: string;
518
+ manufacturer_sku: string;
519
+ primary_color_hex?: string | undefined;
520
+ front_image?: {
521
+ height: number;
522
+ width: number;
523
+ url: string;
524
+ } | undefined;
525
+ back_image?: {
526
+ height: number;
527
+ width: number;
528
+ url: string;
529
+ } | undefined;
530
+ }[];
531
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
532
+ }>, z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
533
+ main_category: z.ZodLiteral<"smartlock">;
534
+ physical_properties: z.ZodObject<{
535
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
536
+ has_physical_key: z.ZodBoolean;
537
+ has_camera: z.ZodBoolean;
538
+ }, "strip", z.ZodTypeAny, {
539
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
540
+ has_physical_key: boolean;
541
+ has_camera: boolean;
542
+ }, {
543
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
544
+ has_physical_key: boolean;
545
+ has_camera: boolean;
546
+ }>;
547
+ software_features: z.ZodObject<{
548
+ can_remotely_unlock: z.ZodBoolean;
549
+ can_program_access_codes: z.ZodBoolean;
550
+ can_program_access_schedules: z.ZodBoolean;
551
+ can_program_access_codes_offline: z.ZodBoolean;
552
+ }, "strip", z.ZodTypeAny, {
553
+ can_remotely_unlock: boolean;
554
+ can_program_access_codes: boolean;
555
+ can_program_access_schedules: boolean;
556
+ can_program_access_codes_offline: boolean;
557
+ }, {
558
+ can_remotely_unlock: boolean;
559
+ can_program_access_codes: boolean;
560
+ can_program_access_schedules: boolean;
561
+ can_program_access_codes_offline: boolean;
562
+ }>;
563
+ }, "strip", z.ZodTypeAny, {
564
+ main_category: "smartlock";
565
+ physical_properties: {
566
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
567
+ has_physical_key: boolean;
568
+ has_camera: boolean;
569
+ };
570
+ software_features: {
571
+ can_remotely_unlock: boolean;
572
+ can_program_access_codes: boolean;
573
+ can_program_access_schedules: boolean;
574
+ can_program_access_codes_offline: boolean;
575
+ };
576
+ }, {
577
+ main_category: "smartlock";
578
+ physical_properties: {
579
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
580
+ has_physical_key: boolean;
581
+ has_camera: boolean;
582
+ };
583
+ software_features: {
584
+ can_remotely_unlock: boolean;
585
+ can_program_access_codes: boolean;
586
+ can_program_access_schedules: boolean;
587
+ can_program_access_codes_offline: boolean;
588
+ };
589
+ }>, z.ZodObject<{
590
+ main_category: z.ZodLiteral<"sensor">;
591
+ physical_properties: z.ZodObject<{
592
+ has_noise_sensor: z.ZodBoolean;
593
+ has_humidity_sensor: z.ZodBoolean;
594
+ has_temperature_sensor: z.ZodBoolean;
595
+ has_occupancy_detection: z.ZodBoolean;
596
+ }, "strip", z.ZodTypeAny, {
597
+ has_noise_sensor: boolean;
598
+ has_humidity_sensor: boolean;
599
+ has_temperature_sensor: boolean;
600
+ has_occupancy_detection: boolean;
601
+ }, {
602
+ has_noise_sensor: boolean;
603
+ has_humidity_sensor: boolean;
604
+ has_temperature_sensor: boolean;
605
+ has_occupancy_detection: boolean;
606
+ }>;
607
+ }, "strip", z.ZodTypeAny, {
608
+ main_category: "sensor";
609
+ physical_properties: {
610
+ has_noise_sensor: boolean;
611
+ has_humidity_sensor: boolean;
612
+ has_temperature_sensor: boolean;
613
+ has_occupancy_detection: boolean;
614
+ };
615
+ }, {
616
+ main_category: "sensor";
617
+ physical_properties: {
618
+ has_noise_sensor: boolean;
619
+ has_humidity_sensor: boolean;
620
+ has_temperature_sensor: boolean;
621
+ has_occupancy_detection: boolean;
622
+ };
623
+ }>, z.ZodObject<{
624
+ main_category: z.ZodLiteral<"thermostat">;
625
+ physical_properties: z.ZodObject<{
626
+ available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
627
+ is_heat_pump_compatible: z.ZodBoolean;
628
+ has_occupancy_detection: z.ZodBoolean;
629
+ supports_demand_response: z.ZodBoolean;
630
+ has_humidity_sensor: z.ZodBoolean;
631
+ has_temperature_sensor: z.ZodBoolean;
632
+ supports_emergency_heating_mode: z.ZodBoolean;
633
+ }, "strip", z.ZodTypeAny, {
634
+ has_humidity_sensor: boolean;
635
+ has_temperature_sensor: boolean;
636
+ has_occupancy_detection: boolean;
637
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
638
+ is_heat_pump_compatible: boolean;
639
+ supports_demand_response: boolean;
640
+ supports_emergency_heating_mode: boolean;
641
+ }, {
642
+ has_humidity_sensor: boolean;
643
+ has_temperature_sensor: boolean;
644
+ has_occupancy_detection: boolean;
645
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
646
+ is_heat_pump_compatible: boolean;
647
+ supports_demand_response: boolean;
648
+ supports_emergency_heating_mode: boolean;
649
+ }>;
650
+ software_features: z.ZodObject<{
651
+ can_program_climate_schedules: z.ZodBoolean;
652
+ }, "strip", z.ZodTypeAny, {
653
+ can_program_climate_schedules: boolean;
654
+ }, {
655
+ can_program_climate_schedules: boolean;
656
+ }>;
657
+ }, "strip", z.ZodTypeAny, {
658
+ main_category: "thermostat";
659
+ physical_properties: {
660
+ has_humidity_sensor: boolean;
661
+ has_temperature_sensor: boolean;
662
+ has_occupancy_detection: boolean;
663
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
664
+ is_heat_pump_compatible: boolean;
665
+ supports_demand_response: boolean;
666
+ supports_emergency_heating_mode: boolean;
667
+ };
668
+ software_features: {
669
+ can_program_climate_schedules: boolean;
670
+ };
671
+ }, {
672
+ main_category: "thermostat";
673
+ physical_properties: {
674
+ has_humidity_sensor: boolean;
675
+ has_temperature_sensor: boolean;
676
+ has_occupancy_detection: boolean;
677
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
678
+ is_heat_pump_compatible: boolean;
679
+ supports_demand_response: boolean;
680
+ supports_emergency_heating_mode: boolean;
681
+ };
682
+ software_features: {
683
+ can_program_climate_schedules: boolean;
684
+ };
685
+ }>, z.ZodObject<{
686
+ main_category: z.ZodLiteral<"relay">;
687
+ }, "strip", z.ZodTypeAny, {
688
+ main_category: "relay";
689
+ }, {
690
+ main_category: "relay";
691
+ }>]>>;
692
+ export type DeviceModelV1 = z.infer<typeof device_model_v1>;