@seamapi/types 1.18.4 → 1.18.5

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 +67 -4
  2. package/dist/devicedb.cjs.map +1 -1
  3. package/dist/devicedb.d.cts +646 -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 +680 -0
  11. package/lib/seam/devicedb/public-models/device-model-v1.js +80 -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 +74 -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 +95 -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 +147 -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,680 @@
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
+ }>]>;
156
+ export declare const base_device_model_v1: z.ZodObject<{
157
+ device_model_id: z.ZodString;
158
+ manufacturer: z.ZodObject<{
159
+ manufacturer_id: z.ZodString;
160
+ display_name: z.ZodString;
161
+ logo: z.ZodOptional<z.ZodObject<{
162
+ url: z.ZodString;
163
+ width: z.ZodNumber;
164
+ height: z.ZodNumber;
165
+ }, "strip", z.ZodTypeAny, {
166
+ height: number;
167
+ width: number;
168
+ url: string;
169
+ }, {
170
+ height: number;
171
+ width: number;
172
+ url: string;
173
+ }>>;
174
+ integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
175
+ is_connect_webview_supported: z.ZodBoolean;
176
+ requires_seam_support_to_add_account: z.ZodBoolean;
177
+ }, "strip", z.ZodTypeAny, {
178
+ display_name: string;
179
+ manufacturer_id: string;
180
+ integration: "beta" | "stable" | "unsupported" | "planned";
181
+ is_connect_webview_supported: boolean;
182
+ requires_seam_support_to_add_account: boolean;
183
+ logo?: {
184
+ height: number;
185
+ width: number;
186
+ url: string;
187
+ } | undefined;
188
+ }, {
189
+ display_name: string;
190
+ manufacturer_id: string;
191
+ integration: "beta" | "stable" | "unsupported" | "planned";
192
+ is_connect_webview_supported: boolean;
193
+ requires_seam_support_to_add_account: boolean;
194
+ logo?: {
195
+ height: number;
196
+ width: number;
197
+ url: string;
198
+ } | undefined;
199
+ }>;
200
+ is_device_supported: z.ZodBoolean;
201
+ display_name: z.ZodString;
202
+ description: z.ZodString;
203
+ product_url: z.ZodString;
204
+ main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
205
+ aesthetic_variants: z.ZodArray<z.ZodObject<{
206
+ slug: z.ZodString;
207
+ display_name: z.ZodString;
208
+ primary_color_hex: z.ZodOptional<z.ZodString>;
209
+ manufacturer_sku: z.ZodString;
210
+ front_image: z.ZodOptional<z.ZodObject<{
211
+ url: z.ZodString;
212
+ width: z.ZodNumber;
213
+ height: z.ZodNumber;
214
+ }, "strip", z.ZodTypeAny, {
215
+ height: number;
216
+ width: number;
217
+ url: string;
218
+ }, {
219
+ height: number;
220
+ width: number;
221
+ url: string;
222
+ }>>;
223
+ back_image: z.ZodOptional<z.ZodObject<{
224
+ url: z.ZodString;
225
+ width: z.ZodNumber;
226
+ height: z.ZodNumber;
227
+ }, "strip", z.ZodTypeAny, {
228
+ height: number;
229
+ width: number;
230
+ url: string;
231
+ }, {
232
+ height: number;
233
+ width: number;
234
+ url: string;
235
+ }>>;
236
+ }, "strip", z.ZodTypeAny, {
237
+ display_name: string;
238
+ slug: string;
239
+ manufacturer_sku: string;
240
+ primary_color_hex?: string | undefined;
241
+ front_image?: {
242
+ height: number;
243
+ width: number;
244
+ url: string;
245
+ } | undefined;
246
+ back_image?: {
247
+ height: number;
248
+ width: number;
249
+ url: string;
250
+ } | undefined;
251
+ }, {
252
+ display_name: string;
253
+ slug: string;
254
+ manufacturer_sku: string;
255
+ primary_color_hex?: string | undefined;
256
+ front_image?: {
257
+ height: number;
258
+ width: number;
259
+ url: string;
260
+ } | undefined;
261
+ back_image?: {
262
+ height: number;
263
+ width: number;
264
+ url: string;
265
+ } | undefined;
266
+ }>, "many">;
267
+ power_sources: z.ZodArray<z.ZodEnum<["battery", "hardwired", "mechanical_harvesting", "wireless", "ethernet"]>, "many">;
268
+ }, "strip", z.ZodTypeAny, {
269
+ description: string;
270
+ display_name: string;
271
+ device_model_id: string;
272
+ manufacturer: {
273
+ display_name: string;
274
+ manufacturer_id: string;
275
+ integration: "beta" | "stable" | "unsupported" | "planned";
276
+ is_connect_webview_supported: boolean;
277
+ requires_seam_support_to_add_account: boolean;
278
+ logo?: {
279
+ height: number;
280
+ width: number;
281
+ url: string;
282
+ } | undefined;
283
+ };
284
+ is_device_supported: boolean;
285
+ product_url: string;
286
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
287
+ aesthetic_variants: {
288
+ display_name: string;
289
+ slug: string;
290
+ manufacturer_sku: string;
291
+ primary_color_hex?: string | undefined;
292
+ front_image?: {
293
+ height: number;
294
+ width: number;
295
+ url: string;
296
+ } | undefined;
297
+ back_image?: {
298
+ height: number;
299
+ width: number;
300
+ url: string;
301
+ } | undefined;
302
+ }[];
303
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
304
+ }, {
305
+ description: string;
306
+ display_name: string;
307
+ device_model_id: string;
308
+ manufacturer: {
309
+ display_name: string;
310
+ manufacturer_id: string;
311
+ integration: "beta" | "stable" | "unsupported" | "planned";
312
+ is_connect_webview_supported: boolean;
313
+ requires_seam_support_to_add_account: boolean;
314
+ logo?: {
315
+ height: number;
316
+ width: number;
317
+ url: string;
318
+ } | undefined;
319
+ };
320
+ is_device_supported: boolean;
321
+ product_url: string;
322
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
323
+ aesthetic_variants: {
324
+ display_name: string;
325
+ slug: string;
326
+ manufacturer_sku: string;
327
+ primary_color_hex?: string | undefined;
328
+ front_image?: {
329
+ height: number;
330
+ width: number;
331
+ url: string;
332
+ } | undefined;
333
+ back_image?: {
334
+ height: number;
335
+ width: number;
336
+ url: string;
337
+ } | undefined;
338
+ }[];
339
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
340
+ }>;
341
+ export type BaseDeviceModelV1 = z.infer<typeof base_device_model_v1>;
342
+ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
343
+ device_model_id: z.ZodString;
344
+ manufacturer: z.ZodObject<{
345
+ manufacturer_id: z.ZodString;
346
+ display_name: z.ZodString;
347
+ logo: z.ZodOptional<z.ZodObject<{
348
+ url: z.ZodString;
349
+ width: z.ZodNumber;
350
+ height: z.ZodNumber;
351
+ }, "strip", z.ZodTypeAny, {
352
+ height: number;
353
+ width: number;
354
+ url: string;
355
+ }, {
356
+ height: number;
357
+ width: number;
358
+ url: string;
359
+ }>>;
360
+ integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
361
+ is_connect_webview_supported: z.ZodBoolean;
362
+ requires_seam_support_to_add_account: z.ZodBoolean;
363
+ }, "strip", z.ZodTypeAny, {
364
+ display_name: string;
365
+ manufacturer_id: string;
366
+ integration: "beta" | "stable" | "unsupported" | "planned";
367
+ is_connect_webview_supported: boolean;
368
+ requires_seam_support_to_add_account: boolean;
369
+ logo?: {
370
+ height: number;
371
+ width: number;
372
+ url: string;
373
+ } | undefined;
374
+ }, {
375
+ display_name: string;
376
+ manufacturer_id: string;
377
+ integration: "beta" | "stable" | "unsupported" | "planned";
378
+ is_connect_webview_supported: boolean;
379
+ requires_seam_support_to_add_account: boolean;
380
+ logo?: {
381
+ height: number;
382
+ width: number;
383
+ url: string;
384
+ } | undefined;
385
+ }>;
386
+ is_device_supported: z.ZodBoolean;
387
+ display_name: z.ZodString;
388
+ description: z.ZodString;
389
+ product_url: z.ZodString;
390
+ main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
391
+ aesthetic_variants: z.ZodArray<z.ZodObject<{
392
+ slug: z.ZodString;
393
+ display_name: z.ZodString;
394
+ primary_color_hex: z.ZodOptional<z.ZodString>;
395
+ manufacturer_sku: z.ZodString;
396
+ front_image: z.ZodOptional<z.ZodObject<{
397
+ url: z.ZodString;
398
+ width: z.ZodNumber;
399
+ height: z.ZodNumber;
400
+ }, "strip", z.ZodTypeAny, {
401
+ height: number;
402
+ width: number;
403
+ url: string;
404
+ }, {
405
+ height: number;
406
+ width: number;
407
+ url: string;
408
+ }>>;
409
+ back_image: z.ZodOptional<z.ZodObject<{
410
+ url: z.ZodString;
411
+ width: z.ZodNumber;
412
+ height: z.ZodNumber;
413
+ }, "strip", z.ZodTypeAny, {
414
+ height: number;
415
+ width: number;
416
+ url: string;
417
+ }, {
418
+ height: number;
419
+ width: number;
420
+ url: string;
421
+ }>>;
422
+ }, "strip", z.ZodTypeAny, {
423
+ display_name: string;
424
+ slug: string;
425
+ manufacturer_sku: string;
426
+ primary_color_hex?: string | undefined;
427
+ front_image?: {
428
+ height: number;
429
+ width: number;
430
+ url: string;
431
+ } | undefined;
432
+ back_image?: {
433
+ height: number;
434
+ width: number;
435
+ url: string;
436
+ } | undefined;
437
+ }, {
438
+ display_name: string;
439
+ slug: string;
440
+ manufacturer_sku: string;
441
+ primary_color_hex?: string | undefined;
442
+ front_image?: {
443
+ height: number;
444
+ width: number;
445
+ url: string;
446
+ } | undefined;
447
+ back_image?: {
448
+ height: number;
449
+ width: number;
450
+ url: string;
451
+ } | undefined;
452
+ }>, "many">;
453
+ power_sources: z.ZodArray<z.ZodEnum<["battery", "hardwired", "mechanical_harvesting", "wireless", "ethernet"]>, "many">;
454
+ }, "strip", z.ZodTypeAny, {
455
+ description: string;
456
+ display_name: string;
457
+ device_model_id: string;
458
+ manufacturer: {
459
+ display_name: string;
460
+ manufacturer_id: string;
461
+ integration: "beta" | "stable" | "unsupported" | "planned";
462
+ is_connect_webview_supported: boolean;
463
+ requires_seam_support_to_add_account: boolean;
464
+ logo?: {
465
+ height: number;
466
+ width: number;
467
+ url: string;
468
+ } | undefined;
469
+ };
470
+ is_device_supported: boolean;
471
+ product_url: string;
472
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
473
+ aesthetic_variants: {
474
+ display_name: string;
475
+ slug: string;
476
+ manufacturer_sku: string;
477
+ primary_color_hex?: string | undefined;
478
+ front_image?: {
479
+ height: number;
480
+ width: number;
481
+ url: string;
482
+ } | undefined;
483
+ back_image?: {
484
+ height: number;
485
+ width: number;
486
+ url: string;
487
+ } | undefined;
488
+ }[];
489
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
490
+ }, {
491
+ description: string;
492
+ display_name: string;
493
+ device_model_id: string;
494
+ manufacturer: {
495
+ display_name: string;
496
+ manufacturer_id: string;
497
+ integration: "beta" | "stable" | "unsupported" | "planned";
498
+ is_connect_webview_supported: boolean;
499
+ requires_seam_support_to_add_account: boolean;
500
+ logo?: {
501
+ height: number;
502
+ width: number;
503
+ url: string;
504
+ } | undefined;
505
+ };
506
+ is_device_supported: boolean;
507
+ product_url: string;
508
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
509
+ aesthetic_variants: {
510
+ display_name: string;
511
+ slug: string;
512
+ manufacturer_sku: string;
513
+ primary_color_hex?: string | undefined;
514
+ front_image?: {
515
+ height: number;
516
+ width: number;
517
+ url: string;
518
+ } | undefined;
519
+ back_image?: {
520
+ height: number;
521
+ width: number;
522
+ url: string;
523
+ } | undefined;
524
+ }[];
525
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
526
+ }>, z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
527
+ main_category: z.ZodLiteral<"smartlock">;
528
+ physical_properties: z.ZodObject<{
529
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
530
+ has_physical_key: z.ZodBoolean;
531
+ has_camera: z.ZodBoolean;
532
+ }, "strip", z.ZodTypeAny, {
533
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
534
+ has_physical_key: boolean;
535
+ has_camera: boolean;
536
+ }, {
537
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
538
+ has_physical_key: boolean;
539
+ has_camera: boolean;
540
+ }>;
541
+ software_features: z.ZodObject<{
542
+ can_remotely_unlock: z.ZodBoolean;
543
+ can_program_access_codes: z.ZodBoolean;
544
+ can_program_access_schedules: z.ZodBoolean;
545
+ can_program_access_codes_offline: z.ZodBoolean;
546
+ }, "strip", z.ZodTypeAny, {
547
+ can_remotely_unlock: boolean;
548
+ can_program_access_codes: boolean;
549
+ can_program_access_schedules: boolean;
550
+ can_program_access_codes_offline: boolean;
551
+ }, {
552
+ can_remotely_unlock: boolean;
553
+ can_program_access_codes: boolean;
554
+ can_program_access_schedules: boolean;
555
+ can_program_access_codes_offline: boolean;
556
+ }>;
557
+ }, "strip", z.ZodTypeAny, {
558
+ main_category: "smartlock";
559
+ physical_properties: {
560
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
561
+ has_physical_key: boolean;
562
+ has_camera: boolean;
563
+ };
564
+ software_features: {
565
+ can_remotely_unlock: boolean;
566
+ can_program_access_codes: boolean;
567
+ can_program_access_schedules: boolean;
568
+ can_program_access_codes_offline: boolean;
569
+ };
570
+ }, {
571
+ main_category: "smartlock";
572
+ physical_properties: {
573
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
574
+ has_physical_key: boolean;
575
+ has_camera: boolean;
576
+ };
577
+ software_features: {
578
+ can_remotely_unlock: boolean;
579
+ can_program_access_codes: boolean;
580
+ can_program_access_schedules: boolean;
581
+ can_program_access_codes_offline: boolean;
582
+ };
583
+ }>, z.ZodObject<{
584
+ main_category: z.ZodLiteral<"sensor">;
585
+ physical_properties: z.ZodObject<{
586
+ has_noise_sensor: z.ZodBoolean;
587
+ has_humidity_sensor: z.ZodBoolean;
588
+ has_temperature_sensor: z.ZodBoolean;
589
+ has_occupancy_detection: z.ZodBoolean;
590
+ }, "strip", z.ZodTypeAny, {
591
+ has_noise_sensor: boolean;
592
+ has_humidity_sensor: boolean;
593
+ has_temperature_sensor: boolean;
594
+ has_occupancy_detection: boolean;
595
+ }, {
596
+ has_noise_sensor: boolean;
597
+ has_humidity_sensor: boolean;
598
+ has_temperature_sensor: boolean;
599
+ has_occupancy_detection: boolean;
600
+ }>;
601
+ }, "strip", z.ZodTypeAny, {
602
+ main_category: "sensor";
603
+ physical_properties: {
604
+ has_noise_sensor: boolean;
605
+ has_humidity_sensor: boolean;
606
+ has_temperature_sensor: boolean;
607
+ has_occupancy_detection: boolean;
608
+ };
609
+ }, {
610
+ main_category: "sensor";
611
+ physical_properties: {
612
+ has_noise_sensor: boolean;
613
+ has_humidity_sensor: boolean;
614
+ has_temperature_sensor: boolean;
615
+ has_occupancy_detection: boolean;
616
+ };
617
+ }>, z.ZodObject<{
618
+ main_category: z.ZodLiteral<"thermostat">;
619
+ physical_properties: z.ZodObject<{
620
+ available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
621
+ is_heat_pump_compatible: z.ZodBoolean;
622
+ has_occupancy_detection: z.ZodBoolean;
623
+ supports_demand_response: z.ZodBoolean;
624
+ has_humidity_sensor: z.ZodBoolean;
625
+ has_temperature_sensor: z.ZodBoolean;
626
+ supports_emergency_heating_mode: z.ZodBoolean;
627
+ }, "strip", z.ZodTypeAny, {
628
+ has_humidity_sensor: boolean;
629
+ has_temperature_sensor: boolean;
630
+ has_occupancy_detection: boolean;
631
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
632
+ is_heat_pump_compatible: boolean;
633
+ supports_demand_response: boolean;
634
+ supports_emergency_heating_mode: boolean;
635
+ }, {
636
+ has_humidity_sensor: boolean;
637
+ has_temperature_sensor: boolean;
638
+ has_occupancy_detection: boolean;
639
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
640
+ is_heat_pump_compatible: boolean;
641
+ supports_demand_response: boolean;
642
+ supports_emergency_heating_mode: boolean;
643
+ }>;
644
+ software_features: z.ZodObject<{
645
+ can_program_climate_schedules: z.ZodBoolean;
646
+ }, "strip", z.ZodTypeAny, {
647
+ can_program_climate_schedules: boolean;
648
+ }, {
649
+ can_program_climate_schedules: boolean;
650
+ }>;
651
+ }, "strip", z.ZodTypeAny, {
652
+ main_category: "thermostat";
653
+ physical_properties: {
654
+ has_humidity_sensor: boolean;
655
+ has_temperature_sensor: boolean;
656
+ has_occupancy_detection: boolean;
657
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
658
+ is_heat_pump_compatible: boolean;
659
+ supports_demand_response: boolean;
660
+ supports_emergency_heating_mode: boolean;
661
+ };
662
+ software_features: {
663
+ can_program_climate_schedules: boolean;
664
+ };
665
+ }, {
666
+ main_category: "thermostat";
667
+ physical_properties: {
668
+ has_humidity_sensor: boolean;
669
+ has_temperature_sensor: boolean;
670
+ has_occupancy_detection: boolean;
671
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
672
+ is_heat_pump_compatible: boolean;
673
+ supports_demand_response: boolean;
674
+ supports_emergency_heating_mode: boolean;
675
+ };
676
+ software_features: {
677
+ can_program_climate_schedules: boolean;
678
+ };
679
+ }>]>>;
680
+ export type DeviceModelV1 = z.infer<typeof device_model_v1>;