@seamapi/types 1.18.3 → 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 +648 -74
  4. package/lib/seam/devicedb/index.d.ts +2 -1
  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 +76 -4
  23. package/package.json +1 -1
  24. package/src/lib/seam/devicedb/index.ts +7 -1
  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 +148 -40
  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
@@ -29,64 +29,348 @@ declare const device_model_v0: z.ZodObject<{
29
29
  seam_device_model_page_url: string;
30
30
  }>;
31
31
  type DeviceModelV0 = z.infer<typeof device_model_v0>;
32
- declare const image_reference: z.ZodObject<{
33
- url: z.ZodString;
34
- width: z.ZodNumber;
35
- height: z.ZodNumber;
32
+
33
+ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
34
+ main_category: z.ZodLiteral<"smartlock">;
35
+ physical_properties: z.ZodObject<{
36
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
37
+ has_physical_key: z.ZodBoolean;
38
+ has_camera: z.ZodBoolean;
39
+ }, "strip", z.ZodTypeAny, {
40
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
41
+ has_physical_key: boolean;
42
+ has_camera: boolean;
43
+ }, {
44
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
45
+ has_physical_key: boolean;
46
+ has_camera: boolean;
47
+ }>;
48
+ software_features: z.ZodObject<{
49
+ can_remotely_unlock: z.ZodBoolean;
50
+ can_program_access_codes: z.ZodBoolean;
51
+ can_program_access_schedules: z.ZodBoolean;
52
+ can_program_access_codes_offline: z.ZodBoolean;
53
+ }, "strip", z.ZodTypeAny, {
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
+ can_remotely_unlock: boolean;
60
+ can_program_access_codes: boolean;
61
+ can_program_access_schedules: boolean;
62
+ can_program_access_codes_offline: boolean;
63
+ }>;
36
64
  }, "strip", z.ZodTypeAny, {
37
- url: string;
38
- width: number;
39
- height: number;
65
+ main_category: "smartlock";
66
+ physical_properties: {
67
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
68
+ has_physical_key: boolean;
69
+ has_camera: boolean;
70
+ };
71
+ software_features: {
72
+ can_remotely_unlock: boolean;
73
+ can_program_access_codes: boolean;
74
+ can_program_access_schedules: boolean;
75
+ can_program_access_codes_offline: boolean;
76
+ };
40
77
  }, {
41
- url: string;
42
- width: number;
43
- height: number;
44
- }>;
45
- type ImageReference = z.infer<typeof image_reference>;
46
- declare const manufacturer: z.ZodObject<{
47
- manufacturer_id: z.ZodString;
78
+ main_category: "smartlock";
79
+ physical_properties: {
80
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
81
+ has_physical_key: boolean;
82
+ has_camera: boolean;
83
+ };
84
+ software_features: {
85
+ can_remotely_unlock: boolean;
86
+ can_program_access_codes: boolean;
87
+ can_program_access_schedules: boolean;
88
+ can_program_access_codes_offline: boolean;
89
+ };
90
+ }>, z.ZodObject<{
91
+ main_category: z.ZodLiteral<"sensor">;
92
+ physical_properties: z.ZodObject<{
93
+ has_noise_sensor: z.ZodBoolean;
94
+ has_humidity_sensor: z.ZodBoolean;
95
+ has_temperature_sensor: z.ZodBoolean;
96
+ has_occupancy_detection: z.ZodBoolean;
97
+ }, "strip", z.ZodTypeAny, {
98
+ has_noise_sensor: boolean;
99
+ has_humidity_sensor: boolean;
100
+ has_temperature_sensor: boolean;
101
+ has_occupancy_detection: boolean;
102
+ }, {
103
+ has_noise_sensor: boolean;
104
+ has_humidity_sensor: boolean;
105
+ has_temperature_sensor: boolean;
106
+ has_occupancy_detection: boolean;
107
+ }>;
108
+ }, "strip", z.ZodTypeAny, {
109
+ main_category: "sensor";
110
+ physical_properties: {
111
+ has_noise_sensor: boolean;
112
+ has_humidity_sensor: boolean;
113
+ has_temperature_sensor: boolean;
114
+ has_occupancy_detection: boolean;
115
+ };
116
+ }, {
117
+ main_category: "sensor";
118
+ physical_properties: {
119
+ has_noise_sensor: boolean;
120
+ has_humidity_sensor: boolean;
121
+ has_temperature_sensor: boolean;
122
+ has_occupancy_detection: boolean;
123
+ };
124
+ }>, z.ZodObject<{
125
+ main_category: z.ZodLiteral<"thermostat">;
126
+ physical_properties: z.ZodObject<{
127
+ available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
128
+ is_heat_pump_compatible: z.ZodBoolean;
129
+ has_occupancy_detection: z.ZodBoolean;
130
+ supports_demand_response: z.ZodBoolean;
131
+ has_humidity_sensor: z.ZodBoolean;
132
+ has_temperature_sensor: z.ZodBoolean;
133
+ supports_emergency_heating_mode: z.ZodBoolean;
134
+ }, "strip", z.ZodTypeAny, {
135
+ has_humidity_sensor: boolean;
136
+ has_temperature_sensor: boolean;
137
+ has_occupancy_detection: boolean;
138
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
139
+ is_heat_pump_compatible: boolean;
140
+ supports_demand_response: boolean;
141
+ supports_emergency_heating_mode: boolean;
142
+ }, {
143
+ has_humidity_sensor: boolean;
144
+ has_temperature_sensor: boolean;
145
+ has_occupancy_detection: boolean;
146
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
147
+ is_heat_pump_compatible: boolean;
148
+ supports_demand_response: boolean;
149
+ supports_emergency_heating_mode: boolean;
150
+ }>;
151
+ software_features: z.ZodObject<{
152
+ can_program_climate_schedules: z.ZodBoolean;
153
+ }, "strip", z.ZodTypeAny, {
154
+ can_program_climate_schedules: boolean;
155
+ }, {
156
+ can_program_climate_schedules: boolean;
157
+ }>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ main_category: "thermostat";
160
+ physical_properties: {
161
+ has_humidity_sensor: boolean;
162
+ has_temperature_sensor: boolean;
163
+ has_occupancy_detection: boolean;
164
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
165
+ is_heat_pump_compatible: boolean;
166
+ supports_demand_response: boolean;
167
+ supports_emergency_heating_mode: boolean;
168
+ };
169
+ software_features: {
170
+ can_program_climate_schedules: boolean;
171
+ };
172
+ }, {
173
+ main_category: "thermostat";
174
+ physical_properties: {
175
+ has_humidity_sensor: boolean;
176
+ has_temperature_sensor: boolean;
177
+ has_occupancy_detection: boolean;
178
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
179
+ is_heat_pump_compatible: boolean;
180
+ supports_demand_response: boolean;
181
+ supports_emergency_heating_mode: boolean;
182
+ };
183
+ software_features: {
184
+ can_program_climate_schedules: boolean;
185
+ };
186
+ }>]>;
187
+ declare const base_device_model_v1: z.ZodObject<{
188
+ device_model_id: z.ZodString;
189
+ manufacturer: z.ZodObject<{
190
+ manufacturer_id: z.ZodString;
191
+ display_name: z.ZodString;
192
+ logo: z.ZodOptional<z.ZodObject<{
193
+ url: z.ZodString;
194
+ width: z.ZodNumber;
195
+ height: z.ZodNumber;
196
+ }, "strip", z.ZodTypeAny, {
197
+ url: string;
198
+ width: number;
199
+ height: number;
200
+ }, {
201
+ url: string;
202
+ width: number;
203
+ height: number;
204
+ }>>;
205
+ integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
206
+ is_connect_webview_supported: z.ZodBoolean;
207
+ requires_seam_support_to_add_account: z.ZodBoolean;
208
+ }, "strip", z.ZodTypeAny, {
209
+ display_name: string;
210
+ manufacturer_id: string;
211
+ integration: "stable" | "beta" | "unsupported" | "planned";
212
+ is_connect_webview_supported: boolean;
213
+ requires_seam_support_to_add_account: boolean;
214
+ logo?: {
215
+ url: string;
216
+ width: number;
217
+ height: number;
218
+ } | undefined;
219
+ }, {
220
+ display_name: string;
221
+ manufacturer_id: string;
222
+ integration: "stable" | "beta" | "unsupported" | "planned";
223
+ is_connect_webview_supported: boolean;
224
+ requires_seam_support_to_add_account: boolean;
225
+ logo?: {
226
+ url: string;
227
+ width: number;
228
+ height: number;
229
+ } | undefined;
230
+ }>;
231
+ is_device_supported: z.ZodBoolean;
48
232
  display_name: z.ZodString;
49
- logo: z.ZodOptional<z.ZodObject<{
50
- url: z.ZodString;
51
- width: z.ZodNumber;
52
- height: z.ZodNumber;
233
+ description: z.ZodString;
234
+ product_url: z.ZodString;
235
+ main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
236
+ aesthetic_variants: z.ZodArray<z.ZodObject<{
237
+ slug: z.ZodString;
238
+ display_name: z.ZodString;
239
+ primary_color_hex: z.ZodOptional<z.ZodString>;
240
+ manufacturer_sku: z.ZodString;
241
+ front_image: z.ZodOptional<z.ZodObject<{
242
+ url: z.ZodString;
243
+ width: z.ZodNumber;
244
+ height: z.ZodNumber;
245
+ }, "strip", z.ZodTypeAny, {
246
+ url: string;
247
+ width: number;
248
+ height: number;
249
+ }, {
250
+ url: string;
251
+ width: number;
252
+ height: number;
253
+ }>>;
254
+ back_image: z.ZodOptional<z.ZodObject<{
255
+ url: z.ZodString;
256
+ width: z.ZodNumber;
257
+ height: z.ZodNumber;
258
+ }, "strip", z.ZodTypeAny, {
259
+ url: string;
260
+ width: number;
261
+ height: number;
262
+ }, {
263
+ url: string;
264
+ width: number;
265
+ height: number;
266
+ }>>;
53
267
  }, "strip", z.ZodTypeAny, {
54
- url: string;
55
- width: number;
56
- height: number;
268
+ display_name: string;
269
+ slug: string;
270
+ manufacturer_sku: string;
271
+ primary_color_hex?: string | undefined;
272
+ front_image?: {
273
+ url: string;
274
+ width: number;
275
+ height: number;
276
+ } | undefined;
277
+ back_image?: {
278
+ url: string;
279
+ width: number;
280
+ height: number;
281
+ } | undefined;
57
282
  }, {
58
- url: string;
59
- width: number;
60
- height: number;
61
- }>>;
62
- integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
63
- is_connect_webview_supported: z.ZodBoolean;
64
- requires_seam_support_to_add_account: z.ZodBoolean;
283
+ display_name: string;
284
+ slug: string;
285
+ manufacturer_sku: string;
286
+ primary_color_hex?: string | undefined;
287
+ front_image?: {
288
+ url: string;
289
+ width: number;
290
+ height: number;
291
+ } | undefined;
292
+ back_image?: {
293
+ url: string;
294
+ width: number;
295
+ height: number;
296
+ } | undefined;
297
+ }>, "many">;
298
+ power_sources: z.ZodArray<z.ZodEnum<["battery", "hardwired", "mechanical_harvesting", "wireless", "ethernet"]>, "many">;
65
299
  }, "strip", z.ZodTypeAny, {
66
300
  display_name: string;
67
- manufacturer_id: string;
68
- integration: "stable" | "beta" | "unsupported" | "planned";
69
- is_connect_webview_supported: boolean;
70
- requires_seam_support_to_add_account: boolean;
71
- logo?: {
72
- url: string;
73
- width: number;
74
- height: number;
75
- } | undefined;
301
+ description: string;
302
+ device_model_id: string;
303
+ manufacturer: {
304
+ display_name: string;
305
+ manufacturer_id: string;
306
+ integration: "stable" | "beta" | "unsupported" | "planned";
307
+ is_connect_webview_supported: boolean;
308
+ requires_seam_support_to_add_account: boolean;
309
+ logo?: {
310
+ url: string;
311
+ width: number;
312
+ height: number;
313
+ } | undefined;
314
+ };
315
+ is_device_supported: boolean;
316
+ product_url: string;
317
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
318
+ aesthetic_variants: {
319
+ display_name: string;
320
+ slug: string;
321
+ manufacturer_sku: string;
322
+ primary_color_hex?: string | undefined;
323
+ front_image?: {
324
+ url: string;
325
+ width: number;
326
+ height: number;
327
+ } | undefined;
328
+ back_image?: {
329
+ url: string;
330
+ width: number;
331
+ height: number;
332
+ } | undefined;
333
+ }[];
334
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
76
335
  }, {
77
336
  display_name: string;
78
- manufacturer_id: string;
79
- integration: "stable" | "beta" | "unsupported" | "planned";
80
- is_connect_webview_supported: boolean;
81
- requires_seam_support_to_add_account: boolean;
82
- logo?: {
83
- url: string;
84
- width: number;
85
- height: number;
86
- } | undefined;
337
+ description: string;
338
+ device_model_id: string;
339
+ manufacturer: {
340
+ display_name: string;
341
+ manufacturer_id: string;
342
+ integration: "stable" | "beta" | "unsupported" | "planned";
343
+ is_connect_webview_supported: boolean;
344
+ requires_seam_support_to_add_account: boolean;
345
+ logo?: {
346
+ url: string;
347
+ width: number;
348
+ height: number;
349
+ } | undefined;
350
+ };
351
+ is_device_supported: boolean;
352
+ product_url: string;
353
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
354
+ aesthetic_variants: {
355
+ display_name: string;
356
+ slug: string;
357
+ manufacturer_sku: string;
358
+ primary_color_hex?: string | undefined;
359
+ front_image?: {
360
+ url: string;
361
+ width: number;
362
+ height: number;
363
+ } | undefined;
364
+ back_image?: {
365
+ url: string;
366
+ width: number;
367
+ height: number;
368
+ } | undefined;
369
+ }[];
370
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
87
371
  }>;
88
- type Manufacturer = z.infer<typeof manufacturer>;
89
- declare const device_model_v1: z.ZodObject<{
372
+ type BaseDeviceModelV1 = z.infer<typeof base_device_model_v1>;
373
+ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
90
374
  device_model_id: z.ZodString;
91
375
  manufacturer: z.ZodObject<{
92
376
  manufacturer_id: z.ZodString;
@@ -135,7 +419,6 @@ declare const device_model_v1: z.ZodObject<{
135
419
  description: z.ZodString;
136
420
  product_url: z.ZodString;
137
421
  main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
138
- main_category: z.ZodEnum<["smartlock", "thermostat", "noise_sensor"]>;
139
422
  aesthetic_variants: z.ZodArray<z.ZodObject<{
140
423
  slug: z.ZodString;
141
424
  display_name: z.ZodString;
@@ -198,10 +481,10 @@ declare const device_model_v1: z.ZodObject<{
198
481
  height: number;
199
482
  } | undefined;
200
483
  }>, "many">;
484
+ power_sources: z.ZodArray<z.ZodEnum<["battery", "hardwired", "mechanical_harvesting", "wireless", "ethernet"]>, "many">;
201
485
  }, "strip", z.ZodTypeAny, {
202
486
  display_name: string;
203
487
  description: string;
204
- main_category: "thermostat" | "smartlock" | "noise_sensor";
205
488
  device_model_id: string;
206
489
  manufacturer: {
207
490
  display_name: string;
@@ -234,10 +517,10 @@ declare const device_model_v1: z.ZodObject<{
234
517
  height: number;
235
518
  } | undefined;
236
519
  }[];
520
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
237
521
  }, {
238
522
  display_name: string;
239
523
  description: string;
240
- main_category: "thermostat" | "smartlock" | "noise_sensor";
241
524
  device_model_id: string;
242
525
  manufacturer: {
243
526
  display_name: string;
@@ -270,27 +553,246 @@ declare const device_model_v1: z.ZodObject<{
270
553
  height: number;
271
554
  } | undefined;
272
555
  }[];
273
- }>;
556
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
557
+ }>, z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
558
+ main_category: z.ZodLiteral<"smartlock">;
559
+ physical_properties: z.ZodObject<{
560
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
561
+ has_physical_key: z.ZodBoolean;
562
+ has_camera: z.ZodBoolean;
563
+ }, "strip", z.ZodTypeAny, {
564
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
565
+ has_physical_key: boolean;
566
+ has_camera: boolean;
567
+ }, {
568
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
569
+ has_physical_key: boolean;
570
+ has_camera: boolean;
571
+ }>;
572
+ software_features: z.ZodObject<{
573
+ can_remotely_unlock: z.ZodBoolean;
574
+ can_program_access_codes: z.ZodBoolean;
575
+ can_program_access_schedules: z.ZodBoolean;
576
+ can_program_access_codes_offline: z.ZodBoolean;
577
+ }, "strip", z.ZodTypeAny, {
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
+ can_remotely_unlock: boolean;
584
+ can_program_access_codes: boolean;
585
+ can_program_access_schedules: boolean;
586
+ can_program_access_codes_offline: boolean;
587
+ }>;
588
+ }, "strip", z.ZodTypeAny, {
589
+ main_category: "smartlock";
590
+ physical_properties: {
591
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
592
+ has_physical_key: boolean;
593
+ has_camera: boolean;
594
+ };
595
+ software_features: {
596
+ can_remotely_unlock: boolean;
597
+ can_program_access_codes: boolean;
598
+ can_program_access_schedules: boolean;
599
+ can_program_access_codes_offline: boolean;
600
+ };
601
+ }, {
602
+ main_category: "smartlock";
603
+ physical_properties: {
604
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
605
+ has_physical_key: boolean;
606
+ has_camera: boolean;
607
+ };
608
+ software_features: {
609
+ can_remotely_unlock: boolean;
610
+ can_program_access_codes: boolean;
611
+ can_program_access_schedules: boolean;
612
+ can_program_access_codes_offline: boolean;
613
+ };
614
+ }>, z.ZodObject<{
615
+ main_category: z.ZodLiteral<"sensor">;
616
+ physical_properties: z.ZodObject<{
617
+ has_noise_sensor: z.ZodBoolean;
618
+ has_humidity_sensor: z.ZodBoolean;
619
+ has_temperature_sensor: z.ZodBoolean;
620
+ has_occupancy_detection: z.ZodBoolean;
621
+ }, "strip", z.ZodTypeAny, {
622
+ has_noise_sensor: boolean;
623
+ has_humidity_sensor: boolean;
624
+ has_temperature_sensor: boolean;
625
+ has_occupancy_detection: boolean;
626
+ }, {
627
+ has_noise_sensor: boolean;
628
+ has_humidity_sensor: boolean;
629
+ has_temperature_sensor: boolean;
630
+ has_occupancy_detection: boolean;
631
+ }>;
632
+ }, "strip", z.ZodTypeAny, {
633
+ main_category: "sensor";
634
+ physical_properties: {
635
+ has_noise_sensor: boolean;
636
+ has_humidity_sensor: boolean;
637
+ has_temperature_sensor: boolean;
638
+ has_occupancy_detection: boolean;
639
+ };
640
+ }, {
641
+ main_category: "sensor";
642
+ physical_properties: {
643
+ has_noise_sensor: boolean;
644
+ has_humidity_sensor: boolean;
645
+ has_temperature_sensor: boolean;
646
+ has_occupancy_detection: boolean;
647
+ };
648
+ }>, z.ZodObject<{
649
+ main_category: z.ZodLiteral<"thermostat">;
650
+ physical_properties: z.ZodObject<{
651
+ available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
652
+ is_heat_pump_compatible: z.ZodBoolean;
653
+ has_occupancy_detection: z.ZodBoolean;
654
+ supports_demand_response: z.ZodBoolean;
655
+ has_humidity_sensor: z.ZodBoolean;
656
+ has_temperature_sensor: z.ZodBoolean;
657
+ supports_emergency_heating_mode: z.ZodBoolean;
658
+ }, "strip", z.ZodTypeAny, {
659
+ has_humidity_sensor: boolean;
660
+ has_temperature_sensor: boolean;
661
+ has_occupancy_detection: boolean;
662
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
663
+ is_heat_pump_compatible: boolean;
664
+ supports_demand_response: boolean;
665
+ supports_emergency_heating_mode: boolean;
666
+ }, {
667
+ has_humidity_sensor: boolean;
668
+ has_temperature_sensor: boolean;
669
+ has_occupancy_detection: boolean;
670
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
671
+ is_heat_pump_compatible: boolean;
672
+ supports_demand_response: boolean;
673
+ supports_emergency_heating_mode: boolean;
674
+ }>;
675
+ software_features: z.ZodObject<{
676
+ can_program_climate_schedules: z.ZodBoolean;
677
+ }, "strip", z.ZodTypeAny, {
678
+ can_program_climate_schedules: boolean;
679
+ }, {
680
+ can_program_climate_schedules: boolean;
681
+ }>;
682
+ }, "strip", z.ZodTypeAny, {
683
+ main_category: "thermostat";
684
+ physical_properties: {
685
+ has_humidity_sensor: boolean;
686
+ has_temperature_sensor: boolean;
687
+ has_occupancy_detection: boolean;
688
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
689
+ is_heat_pump_compatible: boolean;
690
+ supports_demand_response: boolean;
691
+ supports_emergency_heating_mode: boolean;
692
+ };
693
+ software_features: {
694
+ can_program_climate_schedules: boolean;
695
+ };
696
+ }, {
697
+ main_category: "thermostat";
698
+ physical_properties: {
699
+ has_humidity_sensor: boolean;
700
+ has_temperature_sensor: boolean;
701
+ has_occupancy_detection: boolean;
702
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
703
+ is_heat_pump_compatible: boolean;
704
+ supports_demand_response: boolean;
705
+ supports_emergency_heating_mode: boolean;
706
+ };
707
+ software_features: {
708
+ can_program_climate_schedules: boolean;
709
+ };
710
+ }>]>>;
274
711
  type DeviceModelV1 = z.infer<typeof device_model_v1>;
275
712
 
276
- type publicModels_DeviceModelV0 = DeviceModelV0;
277
- type publicModels_DeviceModelV1 = DeviceModelV1;
278
- type publicModels_ImageReference = ImageReference;
279
- type publicModels_Manufacturer = Manufacturer;
280
- declare const publicModels_device_model_v0: typeof device_model_v0;
281
- declare const publicModels_device_model_v1: typeof device_model_v1;
282
- declare const publicModels_image_reference: typeof image_reference;
283
- declare const publicModels_manufacturer: typeof manufacturer;
284
- declare namespace publicModels {
713
+ declare const image_reference: z.ZodObject<{
714
+ url: z.ZodString;
715
+ width: z.ZodNumber;
716
+ height: z.ZodNumber;
717
+ }, "strip", z.ZodTypeAny, {
718
+ url: string;
719
+ width: number;
720
+ height: number;
721
+ }, {
722
+ url: string;
723
+ width: number;
724
+ height: number;
725
+ }>;
726
+ type ImageReference = z.infer<typeof image_reference>;
727
+
728
+ declare const manufacturer: z.ZodObject<{
729
+ manufacturer_id: z.ZodString;
730
+ display_name: z.ZodString;
731
+ logo: z.ZodOptional<z.ZodObject<{
732
+ url: z.ZodString;
733
+ width: z.ZodNumber;
734
+ height: z.ZodNumber;
735
+ }, "strip", z.ZodTypeAny, {
736
+ url: string;
737
+ width: number;
738
+ height: number;
739
+ }, {
740
+ url: string;
741
+ width: number;
742
+ height: number;
743
+ }>>;
744
+ integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
745
+ is_connect_webview_supported: z.ZodBoolean;
746
+ requires_seam_support_to_add_account: z.ZodBoolean;
747
+ }, "strip", z.ZodTypeAny, {
748
+ display_name: string;
749
+ manufacturer_id: string;
750
+ integration: "stable" | "beta" | "unsupported" | "planned";
751
+ is_connect_webview_supported: boolean;
752
+ requires_seam_support_to_add_account: boolean;
753
+ logo?: {
754
+ url: string;
755
+ width: number;
756
+ height: number;
757
+ } | undefined;
758
+ }, {
759
+ display_name: string;
760
+ manufacturer_id: string;
761
+ integration: "stable" | "beta" | "unsupported" | "planned";
762
+ is_connect_webview_supported: boolean;
763
+ requires_seam_support_to_add_account: boolean;
764
+ logo?: {
765
+ url: string;
766
+ width: number;
767
+ height: number;
768
+ } | undefined;
769
+ }>;
770
+ type Manufacturer = z.infer<typeof manufacturer>;
771
+
772
+ type index_BaseDeviceModelV1 = BaseDeviceModelV1;
773
+ type index_DeviceModelV0 = DeviceModelV0;
774
+ type index_DeviceModelV1 = DeviceModelV1;
775
+ type index_ImageReference = ImageReference;
776
+ type index_Manufacturer = Manufacturer;
777
+ declare const index_base_device_model_v1: typeof base_device_model_v1;
778
+ declare const index_device_model_category_specific_properties: typeof device_model_category_specific_properties;
779
+ declare const index_device_model_v0: typeof device_model_v0;
780
+ declare const index_device_model_v1: typeof device_model_v1;
781
+ declare const index_image_reference: typeof image_reference;
782
+ declare const index_manufacturer: typeof manufacturer;
783
+ declare namespace index {
285
784
  export {
286
- publicModels_DeviceModelV0 as DeviceModelV0,
287
- publicModels_DeviceModelV1 as DeviceModelV1,
288
- publicModels_ImageReference as ImageReference,
289
- publicModels_Manufacturer as Manufacturer,
290
- publicModels_device_model_v0 as device_model_v0,
291
- publicModels_device_model_v1 as device_model_v1,
292
- publicModels_image_reference as image_reference,
293
- publicModels_manufacturer as manufacturer,
785
+ index_BaseDeviceModelV1 as BaseDeviceModelV1,
786
+ index_DeviceModelV0 as DeviceModelV0,
787
+ index_DeviceModelV1 as DeviceModelV1,
788
+ index_ImageReference as ImageReference,
789
+ index_Manufacturer as Manufacturer,
790
+ index_base_device_model_v1 as base_device_model_v1,
791
+ index_device_model_category_specific_properties as device_model_category_specific_properties,
792
+ index_device_model_v0 as device_model_v0,
793
+ index_device_model_v1 as device_model_v1,
794
+ index_image_reference as image_reference,
795
+ index_manufacturer as manufacturer,
294
796
  };
295
797
  }
296
798
 
@@ -321,9 +823,9 @@ interface Routes {
321
823
  };
322
824
  is_device_supported: boolean;
323
825
  display_name: string;
826
+ description: string;
324
827
  product_url: string;
325
828
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
326
- main_category: 'smartlock' | 'thermostat' | 'noise_sensor';
327
829
  aesthetic_variants: Array<{
328
830
  slug: string;
329
831
  display_name: string;
@@ -340,7 +842,43 @@ interface Routes {
340
842
  height: number;
341
843
  } | undefined;
342
844
  }>;
343
- };
845
+ power_sources: Array<'battery' | 'hardwired' | 'mechanical_harvesting' | 'wireless' | 'ethernet'>;
846
+ } & ({
847
+ main_category: 'smartlock';
848
+ physical_properties: {
849
+ lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker';
850
+ has_physical_key: boolean;
851
+ has_camera: boolean;
852
+ };
853
+ software_features: {
854
+ can_remotely_unlock: boolean;
855
+ can_program_access_codes: boolean;
856
+ can_program_access_schedules: boolean;
857
+ can_program_access_codes_offline: boolean;
858
+ };
859
+ } | {
860
+ main_category: 'sensor';
861
+ physical_properties: {
862
+ has_noise_sensor: boolean;
863
+ has_humidity_sensor: boolean;
864
+ has_temperature_sensor: boolean;
865
+ has_occupancy_detection: boolean;
866
+ };
867
+ } | {
868
+ main_category: 'thermostat';
869
+ physical_properties: {
870
+ available_modes: Array<'heat' | 'cool' | 'fan' | 'eco'>;
871
+ is_heat_pump_compatible: boolean;
872
+ has_occupancy_detection: boolean;
873
+ supports_demand_response: boolean;
874
+ has_humidity_sensor: boolean;
875
+ has_temperature_sensor: boolean;
876
+ supports_emergency_heating_mode: boolean;
877
+ };
878
+ software_features: {
879
+ can_program_climate_schedules: boolean;
880
+ };
881
+ });
344
882
  };
345
883
  };
346
884
  '/v1/device_models/list': {
@@ -372,9 +910,9 @@ interface Routes {
372
910
  };
373
911
  is_device_supported: boolean;
374
912
  display_name: string;
913
+ description: string;
375
914
  product_url: string;
376
915
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
377
- main_category: 'smartlock' | 'thermostat' | 'noise_sensor';
378
916
  aesthetic_variants: Array<{
379
917
  slug: string;
380
918
  display_name: string;
@@ -391,7 +929,43 @@ interface Routes {
391
929
  height: number;
392
930
  } | undefined;
393
931
  }>;
394
- }>;
932
+ power_sources: Array<'battery' | 'hardwired' | 'mechanical_harvesting' | 'wireless' | 'ethernet'>;
933
+ } & ({
934
+ main_category: 'smartlock';
935
+ physical_properties: {
936
+ lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker';
937
+ has_physical_key: boolean;
938
+ has_camera: boolean;
939
+ };
940
+ software_features: {
941
+ can_remotely_unlock: boolean;
942
+ can_program_access_codes: boolean;
943
+ can_program_access_schedules: boolean;
944
+ can_program_access_codes_offline: boolean;
945
+ };
946
+ } | {
947
+ main_category: 'sensor';
948
+ physical_properties: {
949
+ has_noise_sensor: boolean;
950
+ has_humidity_sensor: boolean;
951
+ has_temperature_sensor: boolean;
952
+ has_occupancy_detection: boolean;
953
+ };
954
+ } | {
955
+ main_category: 'thermostat';
956
+ physical_properties: {
957
+ available_modes: Array<'heat' | 'cool' | 'fan' | 'eco'>;
958
+ is_heat_pump_compatible: boolean;
959
+ has_occupancy_detection: boolean;
960
+ supports_demand_response: boolean;
961
+ has_humidity_sensor: boolean;
962
+ has_temperature_sensor: boolean;
963
+ supports_emergency_heating_mode: boolean;
964
+ };
965
+ software_features: {
966
+ can_program_climate_schedules: boolean;
967
+ };
968
+ })>;
395
969
  };
396
970
  };
397
971
  '/v1/manufacturers/get': {
@@ -442,4 +1016,4 @@ interface Routes {
442
1016
  };
443
1017
  }
444
1018
 
445
- export { Routes, publicModels as schemas };
1019
+ export { DeviceModelV1, ImageReference, Manufacturer, Routes, index as schemas };