@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
@@ -29,64 +29,354 @@ 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
+ }>, z.ZodObject<{
187
+ main_category: z.ZodLiteral<"relay">;
188
+ }, "strip", z.ZodTypeAny, {
189
+ main_category: "relay";
190
+ }, {
191
+ main_category: "relay";
192
+ }>]>;
193
+ declare const base_device_model_v1: z.ZodObject<{
194
+ device_model_id: z.ZodString;
195
+ manufacturer: z.ZodObject<{
196
+ manufacturer_id: z.ZodString;
197
+ display_name: z.ZodString;
198
+ logo: z.ZodOptional<z.ZodObject<{
199
+ url: z.ZodString;
200
+ width: z.ZodNumber;
201
+ height: z.ZodNumber;
202
+ }, "strip", z.ZodTypeAny, {
203
+ url: string;
204
+ width: number;
205
+ height: number;
206
+ }, {
207
+ url: string;
208
+ width: number;
209
+ height: number;
210
+ }>>;
211
+ integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
212
+ is_connect_webview_supported: z.ZodBoolean;
213
+ requires_seam_support_to_add_account: z.ZodBoolean;
214
+ }, "strip", z.ZodTypeAny, {
215
+ display_name: string;
216
+ manufacturer_id: string;
217
+ integration: "stable" | "beta" | "unsupported" | "planned";
218
+ is_connect_webview_supported: boolean;
219
+ requires_seam_support_to_add_account: boolean;
220
+ logo?: {
221
+ url: string;
222
+ width: number;
223
+ height: number;
224
+ } | undefined;
225
+ }, {
226
+ display_name: string;
227
+ manufacturer_id: string;
228
+ integration: "stable" | "beta" | "unsupported" | "planned";
229
+ is_connect_webview_supported: boolean;
230
+ requires_seam_support_to_add_account: boolean;
231
+ logo?: {
232
+ url: string;
233
+ width: number;
234
+ height: number;
235
+ } | undefined;
236
+ }>;
237
+ is_device_supported: z.ZodBoolean;
48
238
  display_name: z.ZodString;
49
- logo: z.ZodOptional<z.ZodObject<{
50
- url: z.ZodString;
51
- width: z.ZodNumber;
52
- height: z.ZodNumber;
239
+ description: z.ZodString;
240
+ product_url: z.ZodString;
241
+ main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
242
+ aesthetic_variants: z.ZodArray<z.ZodObject<{
243
+ slug: z.ZodString;
244
+ display_name: z.ZodString;
245
+ primary_color_hex: z.ZodOptional<z.ZodString>;
246
+ manufacturer_sku: z.ZodString;
247
+ front_image: z.ZodOptional<z.ZodObject<{
248
+ url: z.ZodString;
249
+ width: z.ZodNumber;
250
+ height: z.ZodNumber;
251
+ }, "strip", z.ZodTypeAny, {
252
+ url: string;
253
+ width: number;
254
+ height: number;
255
+ }, {
256
+ url: string;
257
+ width: number;
258
+ height: number;
259
+ }>>;
260
+ back_image: z.ZodOptional<z.ZodObject<{
261
+ url: z.ZodString;
262
+ width: z.ZodNumber;
263
+ height: z.ZodNumber;
264
+ }, "strip", z.ZodTypeAny, {
265
+ url: string;
266
+ width: number;
267
+ height: number;
268
+ }, {
269
+ url: string;
270
+ width: number;
271
+ height: number;
272
+ }>>;
53
273
  }, "strip", z.ZodTypeAny, {
54
- url: string;
55
- width: number;
56
- height: number;
274
+ display_name: string;
275
+ slug: string;
276
+ manufacturer_sku: string;
277
+ primary_color_hex?: string | undefined;
278
+ front_image?: {
279
+ url: string;
280
+ width: number;
281
+ height: number;
282
+ } | undefined;
283
+ back_image?: {
284
+ url: string;
285
+ width: number;
286
+ height: number;
287
+ } | undefined;
57
288
  }, {
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;
289
+ display_name: string;
290
+ slug: string;
291
+ manufacturer_sku: string;
292
+ primary_color_hex?: string | undefined;
293
+ front_image?: {
294
+ url: string;
295
+ width: number;
296
+ height: number;
297
+ } | undefined;
298
+ back_image?: {
299
+ url: string;
300
+ width: number;
301
+ height: number;
302
+ } | undefined;
303
+ }>, "many">;
304
+ power_sources: z.ZodArray<z.ZodEnum<["battery", "hardwired", "mechanical_harvesting", "wireless", "ethernet"]>, "many">;
65
305
  }, "strip", z.ZodTypeAny, {
66
306
  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;
307
+ description: string;
308
+ device_model_id: string;
309
+ manufacturer: {
310
+ display_name: string;
311
+ manufacturer_id: string;
312
+ integration: "stable" | "beta" | "unsupported" | "planned";
313
+ is_connect_webview_supported: boolean;
314
+ requires_seam_support_to_add_account: boolean;
315
+ logo?: {
316
+ url: string;
317
+ width: number;
318
+ height: number;
319
+ } | undefined;
320
+ };
321
+ is_device_supported: boolean;
322
+ product_url: string;
323
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
324
+ aesthetic_variants: {
325
+ display_name: string;
326
+ slug: string;
327
+ manufacturer_sku: string;
328
+ primary_color_hex?: string | undefined;
329
+ front_image?: {
330
+ url: string;
331
+ width: number;
332
+ height: number;
333
+ } | undefined;
334
+ back_image?: {
335
+ url: string;
336
+ width: number;
337
+ height: number;
338
+ } | undefined;
339
+ }[];
340
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
76
341
  }, {
77
342
  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;
343
+ description: string;
344
+ device_model_id: string;
345
+ manufacturer: {
346
+ display_name: string;
347
+ manufacturer_id: string;
348
+ integration: "stable" | "beta" | "unsupported" | "planned";
349
+ is_connect_webview_supported: boolean;
350
+ requires_seam_support_to_add_account: boolean;
351
+ logo?: {
352
+ url: string;
353
+ width: number;
354
+ height: number;
355
+ } | undefined;
356
+ };
357
+ is_device_supported: boolean;
358
+ product_url: string;
359
+ main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
360
+ aesthetic_variants: {
361
+ display_name: string;
362
+ slug: string;
363
+ manufacturer_sku: string;
364
+ primary_color_hex?: string | undefined;
365
+ front_image?: {
366
+ url: string;
367
+ width: number;
368
+ height: number;
369
+ } | undefined;
370
+ back_image?: {
371
+ url: string;
372
+ width: number;
373
+ height: number;
374
+ } | undefined;
375
+ }[];
376
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
87
377
  }>;
88
- type Manufacturer = z.infer<typeof manufacturer>;
89
- declare const device_model_v1: z.ZodObject<{
378
+ type BaseDeviceModelV1 = z.infer<typeof base_device_model_v1>;
379
+ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
90
380
  device_model_id: z.ZodString;
91
381
  manufacturer: z.ZodObject<{
92
382
  manufacturer_id: z.ZodString;
@@ -135,7 +425,6 @@ declare const device_model_v1: z.ZodObject<{
135
425
  description: z.ZodString;
136
426
  product_url: z.ZodString;
137
427
  main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
138
- main_category: z.ZodEnum<["smartlock", "thermostat", "noise_sensor"]>;
139
428
  aesthetic_variants: z.ZodArray<z.ZodObject<{
140
429
  slug: z.ZodString;
141
430
  display_name: z.ZodString;
@@ -198,10 +487,10 @@ declare const device_model_v1: z.ZodObject<{
198
487
  height: number;
199
488
  } | undefined;
200
489
  }>, "many">;
490
+ power_sources: z.ZodArray<z.ZodEnum<["battery", "hardwired", "mechanical_harvesting", "wireless", "ethernet"]>, "many">;
201
491
  }, "strip", z.ZodTypeAny, {
202
492
  display_name: string;
203
493
  description: string;
204
- main_category: "thermostat" | "smartlock" | "noise_sensor";
205
494
  device_model_id: string;
206
495
  manufacturer: {
207
496
  display_name: string;
@@ -234,10 +523,10 @@ declare const device_model_v1: z.ZodObject<{
234
523
  height: number;
235
524
  } | undefined;
236
525
  }[];
526
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
237
527
  }, {
238
528
  display_name: string;
239
529
  description: string;
240
- main_category: "thermostat" | "smartlock" | "noise_sensor";
241
530
  device_model_id: string;
242
531
  manufacturer: {
243
532
  display_name: string;
@@ -270,27 +559,252 @@ declare const device_model_v1: z.ZodObject<{
270
559
  height: number;
271
560
  } | undefined;
272
561
  }[];
273
- }>;
562
+ power_sources: ("battery" | "hardwired" | "mechanical_harvesting" | "wireless" | "ethernet")[];
563
+ }>, z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
564
+ main_category: z.ZodLiteral<"smartlock">;
565
+ physical_properties: z.ZodObject<{
566
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
567
+ has_physical_key: z.ZodBoolean;
568
+ has_camera: z.ZodBoolean;
569
+ }, "strip", z.ZodTypeAny, {
570
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
571
+ has_physical_key: boolean;
572
+ has_camera: boolean;
573
+ }, {
574
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
575
+ has_physical_key: boolean;
576
+ has_camera: boolean;
577
+ }>;
578
+ software_features: z.ZodObject<{
579
+ can_remotely_unlock: z.ZodBoolean;
580
+ can_program_access_codes: z.ZodBoolean;
581
+ can_program_access_schedules: z.ZodBoolean;
582
+ can_program_access_codes_offline: z.ZodBoolean;
583
+ }, "strip", z.ZodTypeAny, {
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
+ can_remotely_unlock: boolean;
590
+ can_program_access_codes: boolean;
591
+ can_program_access_schedules: boolean;
592
+ can_program_access_codes_offline: boolean;
593
+ }>;
594
+ }, "strip", z.ZodTypeAny, {
595
+ main_category: "smartlock";
596
+ physical_properties: {
597
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
598
+ has_physical_key: boolean;
599
+ has_camera: boolean;
600
+ };
601
+ software_features: {
602
+ can_remotely_unlock: boolean;
603
+ can_program_access_codes: boolean;
604
+ can_program_access_schedules: boolean;
605
+ can_program_access_codes_offline: boolean;
606
+ };
607
+ }, {
608
+ main_category: "smartlock";
609
+ physical_properties: {
610
+ lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
611
+ has_physical_key: boolean;
612
+ has_camera: boolean;
613
+ };
614
+ software_features: {
615
+ can_remotely_unlock: boolean;
616
+ can_program_access_codes: boolean;
617
+ can_program_access_schedules: boolean;
618
+ can_program_access_codes_offline: boolean;
619
+ };
620
+ }>, z.ZodObject<{
621
+ main_category: z.ZodLiteral<"sensor">;
622
+ physical_properties: z.ZodObject<{
623
+ has_noise_sensor: z.ZodBoolean;
624
+ has_humidity_sensor: z.ZodBoolean;
625
+ has_temperature_sensor: z.ZodBoolean;
626
+ has_occupancy_detection: z.ZodBoolean;
627
+ }, "strip", z.ZodTypeAny, {
628
+ has_noise_sensor: boolean;
629
+ has_humidity_sensor: boolean;
630
+ has_temperature_sensor: boolean;
631
+ has_occupancy_detection: boolean;
632
+ }, {
633
+ has_noise_sensor: boolean;
634
+ has_humidity_sensor: boolean;
635
+ has_temperature_sensor: boolean;
636
+ has_occupancy_detection: boolean;
637
+ }>;
638
+ }, "strip", z.ZodTypeAny, {
639
+ main_category: "sensor";
640
+ physical_properties: {
641
+ has_noise_sensor: boolean;
642
+ has_humidity_sensor: boolean;
643
+ has_temperature_sensor: boolean;
644
+ has_occupancy_detection: boolean;
645
+ };
646
+ }, {
647
+ main_category: "sensor";
648
+ physical_properties: {
649
+ has_noise_sensor: boolean;
650
+ has_humidity_sensor: boolean;
651
+ has_temperature_sensor: boolean;
652
+ has_occupancy_detection: boolean;
653
+ };
654
+ }>, z.ZodObject<{
655
+ main_category: z.ZodLiteral<"thermostat">;
656
+ physical_properties: z.ZodObject<{
657
+ available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
658
+ is_heat_pump_compatible: z.ZodBoolean;
659
+ has_occupancy_detection: z.ZodBoolean;
660
+ supports_demand_response: z.ZodBoolean;
661
+ has_humidity_sensor: z.ZodBoolean;
662
+ has_temperature_sensor: z.ZodBoolean;
663
+ supports_emergency_heating_mode: z.ZodBoolean;
664
+ }, "strip", z.ZodTypeAny, {
665
+ has_humidity_sensor: boolean;
666
+ has_temperature_sensor: boolean;
667
+ has_occupancy_detection: boolean;
668
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
669
+ is_heat_pump_compatible: boolean;
670
+ supports_demand_response: boolean;
671
+ supports_emergency_heating_mode: boolean;
672
+ }, {
673
+ has_humidity_sensor: boolean;
674
+ has_temperature_sensor: boolean;
675
+ has_occupancy_detection: boolean;
676
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
677
+ is_heat_pump_compatible: boolean;
678
+ supports_demand_response: boolean;
679
+ supports_emergency_heating_mode: boolean;
680
+ }>;
681
+ software_features: z.ZodObject<{
682
+ can_program_climate_schedules: z.ZodBoolean;
683
+ }, "strip", z.ZodTypeAny, {
684
+ can_program_climate_schedules: boolean;
685
+ }, {
686
+ can_program_climate_schedules: boolean;
687
+ }>;
688
+ }, "strip", z.ZodTypeAny, {
689
+ main_category: "thermostat";
690
+ physical_properties: {
691
+ has_humidity_sensor: boolean;
692
+ has_temperature_sensor: boolean;
693
+ has_occupancy_detection: boolean;
694
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
695
+ is_heat_pump_compatible: boolean;
696
+ supports_demand_response: boolean;
697
+ supports_emergency_heating_mode: boolean;
698
+ };
699
+ software_features: {
700
+ can_program_climate_schedules: boolean;
701
+ };
702
+ }, {
703
+ main_category: "thermostat";
704
+ physical_properties: {
705
+ has_humidity_sensor: boolean;
706
+ has_temperature_sensor: boolean;
707
+ has_occupancy_detection: boolean;
708
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
709
+ is_heat_pump_compatible: boolean;
710
+ supports_demand_response: boolean;
711
+ supports_emergency_heating_mode: boolean;
712
+ };
713
+ software_features: {
714
+ can_program_climate_schedules: boolean;
715
+ };
716
+ }>, z.ZodObject<{
717
+ main_category: z.ZodLiteral<"relay">;
718
+ }, "strip", z.ZodTypeAny, {
719
+ main_category: "relay";
720
+ }, {
721
+ main_category: "relay";
722
+ }>]>>;
274
723
  type DeviceModelV1 = z.infer<typeof device_model_v1>;
275
724
 
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 {
725
+ declare const image_reference: z.ZodObject<{
726
+ url: z.ZodString;
727
+ width: z.ZodNumber;
728
+ height: z.ZodNumber;
729
+ }, "strip", z.ZodTypeAny, {
730
+ url: string;
731
+ width: number;
732
+ height: number;
733
+ }, {
734
+ url: string;
735
+ width: number;
736
+ height: number;
737
+ }>;
738
+ type ImageReference = z.infer<typeof image_reference>;
739
+
740
+ declare const manufacturer: z.ZodObject<{
741
+ manufacturer_id: z.ZodString;
742
+ display_name: z.ZodString;
743
+ logo: z.ZodOptional<z.ZodObject<{
744
+ url: z.ZodString;
745
+ width: z.ZodNumber;
746
+ height: z.ZodNumber;
747
+ }, "strip", z.ZodTypeAny, {
748
+ url: string;
749
+ width: number;
750
+ height: number;
751
+ }, {
752
+ url: string;
753
+ width: number;
754
+ height: number;
755
+ }>>;
756
+ integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
757
+ is_connect_webview_supported: z.ZodBoolean;
758
+ requires_seam_support_to_add_account: z.ZodBoolean;
759
+ }, "strip", z.ZodTypeAny, {
760
+ display_name: string;
761
+ manufacturer_id: string;
762
+ integration: "stable" | "beta" | "unsupported" | "planned";
763
+ is_connect_webview_supported: boolean;
764
+ requires_seam_support_to_add_account: boolean;
765
+ logo?: {
766
+ url: string;
767
+ width: number;
768
+ height: number;
769
+ } | undefined;
770
+ }, {
771
+ display_name: string;
772
+ manufacturer_id: string;
773
+ integration: "stable" | "beta" | "unsupported" | "planned";
774
+ is_connect_webview_supported: boolean;
775
+ requires_seam_support_to_add_account: boolean;
776
+ logo?: {
777
+ url: string;
778
+ width: number;
779
+ height: number;
780
+ } | undefined;
781
+ }>;
782
+ type Manufacturer = z.infer<typeof manufacturer>;
783
+
784
+ type index_BaseDeviceModelV1 = BaseDeviceModelV1;
785
+ type index_DeviceModelV0 = DeviceModelV0;
786
+ type index_DeviceModelV1 = DeviceModelV1;
787
+ type index_ImageReference = ImageReference;
788
+ type index_Manufacturer = Manufacturer;
789
+ declare const index_base_device_model_v1: typeof base_device_model_v1;
790
+ declare const index_device_model_category_specific_properties: typeof device_model_category_specific_properties;
791
+ declare const index_device_model_v0: typeof device_model_v0;
792
+ declare const index_device_model_v1: typeof device_model_v1;
793
+ declare const index_image_reference: typeof image_reference;
794
+ declare const index_manufacturer: typeof manufacturer;
795
+ declare namespace index {
285
796
  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,
797
+ index_BaseDeviceModelV1 as BaseDeviceModelV1,
798
+ index_DeviceModelV0 as DeviceModelV0,
799
+ index_DeviceModelV1 as DeviceModelV1,
800
+ index_ImageReference as ImageReference,
801
+ index_Manufacturer as Manufacturer,
802
+ index_base_device_model_v1 as base_device_model_v1,
803
+ index_device_model_category_specific_properties as device_model_category_specific_properties,
804
+ index_device_model_v0 as device_model_v0,
805
+ index_device_model_v1 as device_model_v1,
806
+ index_image_reference as image_reference,
807
+ index_manufacturer as manufacturer,
294
808
  };
295
809
  }
296
810
 
@@ -324,7 +838,6 @@ interface Routes {
324
838
  description: string;
325
839
  product_url: string;
326
840
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
327
- main_category: 'smartlock' | 'thermostat' | 'noise_sensor';
328
841
  aesthetic_variants: Array<{
329
842
  slug: string;
330
843
  display_name: string;
@@ -341,7 +854,45 @@ interface Routes {
341
854
  height: number;
342
855
  } | undefined;
343
856
  }>;
344
- };
857
+ power_sources: Array<'battery' | 'hardwired' | 'mechanical_harvesting' | 'wireless' | 'ethernet'>;
858
+ } & ({
859
+ main_category: 'smartlock';
860
+ physical_properties: {
861
+ lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker';
862
+ has_physical_key: boolean;
863
+ has_camera: boolean;
864
+ };
865
+ software_features: {
866
+ can_remotely_unlock: boolean;
867
+ can_program_access_codes: boolean;
868
+ can_program_access_schedules: boolean;
869
+ can_program_access_codes_offline: boolean;
870
+ };
871
+ } | {
872
+ main_category: 'sensor';
873
+ physical_properties: {
874
+ has_noise_sensor: boolean;
875
+ has_humidity_sensor: boolean;
876
+ has_temperature_sensor: boolean;
877
+ has_occupancy_detection: boolean;
878
+ };
879
+ } | {
880
+ main_category: 'thermostat';
881
+ physical_properties: {
882
+ available_modes: Array<'heat' | 'cool' | 'fan' | 'eco'>;
883
+ is_heat_pump_compatible: boolean;
884
+ has_occupancy_detection: boolean;
885
+ supports_demand_response: boolean;
886
+ has_humidity_sensor: boolean;
887
+ has_temperature_sensor: boolean;
888
+ supports_emergency_heating_mode: boolean;
889
+ };
890
+ software_features: {
891
+ can_program_climate_schedules: boolean;
892
+ };
893
+ } | {
894
+ main_category: 'relay';
895
+ });
345
896
  };
346
897
  };
347
898
  '/v1/device_models/list': {
@@ -376,7 +927,6 @@ interface Routes {
376
927
  description: string;
377
928
  product_url: string;
378
929
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
379
- main_category: 'smartlock' | 'thermostat' | 'noise_sensor';
380
930
  aesthetic_variants: Array<{
381
931
  slug: string;
382
932
  display_name: string;
@@ -393,7 +943,45 @@ interface Routes {
393
943
  height: number;
394
944
  } | undefined;
395
945
  }>;
396
- }>;
946
+ power_sources: Array<'battery' | 'hardwired' | 'mechanical_harvesting' | 'wireless' | 'ethernet'>;
947
+ } & ({
948
+ main_category: 'smartlock';
949
+ physical_properties: {
950
+ lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker';
951
+ has_physical_key: boolean;
952
+ has_camera: boolean;
953
+ };
954
+ software_features: {
955
+ can_remotely_unlock: boolean;
956
+ can_program_access_codes: boolean;
957
+ can_program_access_schedules: boolean;
958
+ can_program_access_codes_offline: boolean;
959
+ };
960
+ } | {
961
+ main_category: 'sensor';
962
+ physical_properties: {
963
+ has_noise_sensor: boolean;
964
+ has_humidity_sensor: boolean;
965
+ has_temperature_sensor: boolean;
966
+ has_occupancy_detection: boolean;
967
+ };
968
+ } | {
969
+ main_category: 'thermostat';
970
+ physical_properties: {
971
+ available_modes: Array<'heat' | 'cool' | 'fan' | 'eco'>;
972
+ is_heat_pump_compatible: boolean;
973
+ has_occupancy_detection: boolean;
974
+ supports_demand_response: boolean;
975
+ has_humidity_sensor: boolean;
976
+ has_temperature_sensor: boolean;
977
+ supports_emergency_heating_mode: boolean;
978
+ };
979
+ software_features: {
980
+ can_program_climate_schedules: boolean;
981
+ };
982
+ } | {
983
+ main_category: 'relay';
984
+ })>;
397
985
  };
398
986
  };
399
987
  '/v1/manufacturers/get': {
@@ -444,4 +1032,4 @@ interface Routes {
444
1032
  };
445
1033
  }
446
1034
 
447
- export { DeviceModelV1, ImageReference, Manufacturer, Routes, publicModels as schemas };
1035
+ export { DeviceModelV1, ImageReference, Manufacturer, Routes, index as schemas };