@seamapi/types 1.241.0 → 1.242.1

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 (46) hide show
  1. package/dist/connect.cjs +281 -137
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +370 -182
  4. package/dist/devicedb.cjs +9 -6
  5. package/dist/devicedb.cjs.map +1 -1
  6. package/dist/devicedb.d.cts +123 -70
  7. package/lib/seam/connect/models/acs/acs-system.d.ts +86 -42
  8. package/lib/seam/connect/models/acs/acs-system.js +23 -20
  9. package/lib/seam/connect/models/acs/acs-system.js.map +1 -1
  10. package/lib/seam/connect/models/acs/acs-user.d.ts +169 -140
  11. package/lib/seam/connect/models/acs/acs-user.js +32 -30
  12. package/lib/seam/connect/models/acs/acs-user.js.map +1 -1
  13. package/lib/seam/connect/models/devices/capability-properties/index.d.ts +5 -5
  14. package/lib/seam/connect/models/devices/capability-properties/thermostat.d.ts +5 -5
  15. package/lib/seam/connect/models/devices/device.d.ts +6 -6
  16. package/lib/seam/connect/models/devices/phone.d.ts +5 -5
  17. package/lib/seam/connect/models/devices/unmanaged-device.d.ts +5 -5
  18. package/lib/seam/connect/models/thermostats/climate-preset.d.ts +3 -3
  19. package/lib/seam/connect/models/thermostats/climate-preset.js +1 -1
  20. package/lib/seam/connect/models/thermostats/climate-preset.js.map +1 -1
  21. package/lib/seam/connect/models/thermostats/index.d.ts +1 -1
  22. package/lib/seam/connect/models/thermostats/index.js +1 -1
  23. package/lib/seam/connect/models/thermostats/index.js.map +1 -1
  24. package/lib/seam/connect/models/thermostats/{climate-setting-schedule.js → thermostat-schedule.js} +1 -1
  25. package/lib/seam/connect/models/thermostats/thermostat-schedule.js.map +1 -0
  26. package/lib/seam/connect/openapi.d.ts +45 -18
  27. package/lib/seam/connect/openapi.js +219 -90
  28. package/lib/seam/connect/openapi.js.map +1 -1
  29. package/lib/seam/connect/route-types.d.ts +176 -78
  30. package/lib/seam/devicedb/models/device-model.d.ts +59 -24
  31. package/lib/seam/devicedb/models/device-model.js +9 -6
  32. package/lib/seam/devicedb/models/device-model.js.map +1 -1
  33. package/lib/seam/devicedb/route-specs.d.ts +56 -38
  34. package/lib/seam/devicedb/route-types.d.ts +8 -8
  35. package/package.json +1 -1
  36. package/src/lib/seam/connect/models/acs/acs-system.ts +32 -24
  37. package/src/lib/seam/connect/models/acs/acs-user.ts +41 -35
  38. package/src/lib/seam/connect/models/thermostats/climate-preset.ts +1 -1
  39. package/src/lib/seam/connect/models/thermostats/index.ts +1 -1
  40. package/src/lib/seam/connect/openapi.ts +249 -90
  41. package/src/lib/seam/connect/route-types.ts +187 -78
  42. package/src/lib/seam/devicedb/models/device-model.ts +24 -19
  43. package/src/lib/seam/devicedb/route-types.ts +8 -8
  44. package/lib/seam/connect/models/thermostats/climate-setting-schedule.js.map +0 -1
  45. /package/lib/seam/connect/models/thermostats/{climate-setting-schedule.d.ts → thermostat-schedule.d.ts} +0 -0
  46. /package/src/lib/seam/connect/models/thermostats/{climate-setting-schedule.ts → thermostat-schedule.ts} +0 -0
package/dist/devicedb.cjs CHANGED
@@ -131,11 +131,7 @@ var smartlock = zod.z.object({
131
131
  can_remotely_lock: true,
132
132
  can_remotely_unlock: true,
133
133
  can_program_offline_access_codes: true,
134
- can_program_online_access_codes: true,
135
- can_hvac_heat: true,
136
- can_hvac_cool: true,
137
- can_hvac_heat_cool: true,
138
- can_turn_off_hvac: true
134
+ can_program_online_access_codes: true
139
135
  })
140
136
  );
141
137
  var sensor = zod.z.object({
@@ -161,7 +157,14 @@ var thermostat = zod.z.object({
161
157
  software_features: zod.z.object({
162
158
  can_program_climate_schedules: zod.z.boolean()
163
159
  })
164
- });
160
+ }).merge(
161
+ device_model_capability_flags.pick({
162
+ can_hvac_heat: true,
163
+ can_hvac_cool: true,
164
+ can_hvac_heat_cool: true,
165
+ can_turn_off_hvac: true
166
+ })
167
+ );
165
168
  var relay = zod.z.object({
166
169
  main_category: zod.z.literal(device_category.enum.relay)
167
170
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/seam/devicedb/models/index.ts","../src/lib/seam/devicedb/models/device-capability.ts","../src/lib/seam/devicedb/models/device-model.ts","../src/lib/seam/devicedb/models/hardware.ts","../src/lib/seam/devicedb/models/image-reference.ts","../src/lib/seam/devicedb/models/manufacturer.ts","../src/lib/seam/devicedb/route-specs.ts"],"names":["z"],"mappings":"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","sourcesContent":["export { device_capability_flags } from './device-capability.js'\nexport * from './device-model.js'\nexport * from './image-reference.js'\nexport * from './manufacturer.js'\n","import { z, type ZodLiteral } from 'zod'\n\nexport const device_capability_flags = z\n .object({\n can_remotely_unlock: z.boolean(),\n can_remotely_lock: z.boolean(),\n can_program_offline_access_codes: z.boolean(),\n can_program_online_access_codes: z.boolean(),\n can_hvac_heat: z.boolean(),\n can_hvac_cool: z.boolean(),\n can_hvac_heat_cool: z.boolean(),\n can_turn_off_hvac: z.boolean(),\n })\n .partial()\n\nconst device_model_capability_flags_map: Record<\n keyof z.infer<typeof device_capability_flags>,\n ZodLiteral<true>\n> = {\n can_remotely_lock: z.literal(true),\n can_remotely_unlock: z.literal(true),\n can_program_offline_access_codes: z.literal(true),\n can_program_online_access_codes: z.literal(true),\n can_hvac_heat: z.literal(true),\n can_hvac_cool: z.literal(true),\n can_hvac_heat_cool: z.literal(true),\n can_turn_off_hvac: z.literal(true),\n}\n\nexport const device_model_capability_flags = z\n .object(device_model_capability_flags_map)\n .partial()\n","import { z } from 'zod'\n\nimport { device_model_capability_flags } from './device-capability.js'\nimport { hardware } from './hardware.js'\nimport { image_reference } from './image-reference.js'\nimport { manufacturer } from './manufacturer.js'\n\nexport const device_category = z.enum([\n 'smartlock',\n 'sensor',\n 'thermostat',\n 'relay',\n 'intercom',\n 'accessory',\n])\n\nexport type DeviceCategory = z.infer<typeof device_category>\n\nexport const device_connection_type = z.enum([\n 'wifi',\n 'zwave',\n 'zigbee',\n 'unknown',\n])\n\nexport type DeviceConnectionType = z.infer<typeof device_connection_type>\n\nconst smartlock = z\n .object({\n main_category: z.literal(device_category.enum.smartlock),\n physical_properties: z.object({\n lock_type: z.enum([\n 'deadbolt',\n 'lever',\n 'mortise',\n 'lockbox',\n 'cylinder',\n 'padlock',\n 'locker',\n 'unknown',\n ]),\n has_physical_key: z.boolean(),\n has_camera: z.boolean(),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_program_access_schedules: z.boolean(),\n can_program_access_codes_offline: z.boolean(),\n }),\n })\n .merge(\n device_model_capability_flags.pick({\n can_remotely_lock: true,\n can_remotely_unlock: true,\n can_program_offline_access_codes: true,\n can_program_online_access_codes: true,\n can_hvac_heat: true,\n can_hvac_cool: true,\n can_hvac_heat_cool: true,\n can_turn_off_hvac: true,\n }),\n )\n\nconst sensor = z.object({\n main_category: z.literal(device_category.enum.sensor),\n physical_properties: z.object({\n has_noise_sensor: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n has_occupancy_detection: z.boolean(),\n }),\n})\n\nexport const thermostat = z.object({\n main_category: z.literal(device_category.enum.thermostat),\n physical_properties: z.object({\n available_modes: z.enum(['heat', 'cool', 'fan', 'eco']).array(),\n is_heat_pump_compatible: z.boolean(),\n has_occupancy_detection: z.boolean(),\n supports_demand_response: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n supports_emergency_heating_mode: z.boolean(),\n }),\n software_features: z.object({\n can_program_climate_schedules: z.boolean(),\n }),\n})\n\nexport type ThermostatProperties = z.infer<typeof thermostat>\n\nconst relay = z.object({\n main_category: z.literal(device_category.enum.relay),\n})\n\nconst intercom = z.object({\n main_category: z.literal(device_category.enum.intercom),\n physical_properties: z.object({\n has_camera: z.boolean(),\n has_rfid_reader: z.boolean().default(false),\n has_nfc_reader: z.boolean().default(false),\n has_wiegand_interface: z.boolean().default(false),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_unlock_with_face_recognition: z.boolean().default(false),\n supports_onvif: z.boolean().default(false),\n }),\n})\n\nconst accessory = z.object({\n main_category: z.literal(device_category.enum.accessory),\n})\n\nexport const device_model_category_specific_properties = z.discriminatedUnion(\n 'main_category',\n [smartlock, sensor, thermostat, relay, intercom, accessory],\n)\n\nexport const base_device_model_v1 = z.object({\n device_model_id: z.string().uuid(),\n manufacturer: manufacturer.omit({\n device_model_count: true,\n }),\n is_device_supported: z.boolean(),\n display_name: z.string(),\n description: z.string(),\n product_url: z.string().optional(),\n main_connection_type: device_connection_type,\n hardware,\n aesthetic_variants: z\n .object({\n slug: z.string(),\n display_name: z.string(),\n primary_color_hex: z.string().optional(),\n manufacturer_sku: z.string().optional(),\n front_image: image_reference.optional(),\n back_image: image_reference.optional(),\n images: image_reference.array(),\n })\n .array(),\n power_sources: z\n .enum([\n 'battery',\n 'hardwired',\n 'mechanical_harvesting',\n 'wireless',\n 'ethernet',\n ])\n .array(),\n})\n\nexport type BaseDeviceModel = z.infer<typeof base_device_model_v1>\n\nexport const device_model_v1 = base_device_model_v1.and(\n device_model_category_specific_properties,\n)\n\nexport type DeviceModel = z.infer<typeof device_model_v1>\n","import { z } from 'zod'\n\nexport const hardware = z\n .object({\n has_physical_key: z.boolean(),\n })\n .partial()\n","import { z } from 'zod'\n\nexport const image_reference = z.object({\n url: z.string().url(),\n width: z.number(),\n height: z.number(),\n})\n\nexport type ImageReference = z.infer<typeof image_reference>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\n\nexport const manufacturer_integration_support_level = z.enum([\n 'stable',\n 'beta',\n 'planned',\n 'unsupported',\n 'inquire',\n])\n\nexport type ManufacturerIntegrationSupportLevel = z.infer<\n typeof manufacturer_integration_support_level\n>\n\nexport const manufacturer_annotation_code = z.enum(['subscription_required'])\n\nexport type ManufacturerAnnotationCode = z.infer<\n typeof manufacturer_annotation_code\n>\n\nexport const manufacturer_annotation = z.object({\n annotation_code: manufacturer_annotation_code,\n message: z.string().trim().nonempty(),\n})\n\nexport type ManufacturerAnnotation = z.infer<typeof manufacturer_annotation>\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n /** @deprecated */\n integration: manufacturer_integration_support_level,\n integration_support_level: manufacturer_integration_support_level,\n is_connect_webview_supported: z.boolean(),\n requires_seam_support_to_add_account: z.boolean(),\n device_model_count: z.number(),\n annotations: z.array(manufacturer_annotation),\n website: z.string().url().optional(),\n legal_name: z.string().optional(),\n parent_organization: z.string().optional(),\n headquarters: z.array(z.string()).optional(),\n countries_of_origin: z.array(z.string()).optional(),\n founding_year: z.string().optional(),\n us_customer_support_tel: z.string().optional(),\n us_customer_support_email: z.string().email().optional(),\n us_customer_support_contact_url: z.string().url().optional(),\n seam_api_guide: z.string().optional(),\n description: z.string().optional(),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n","import { z } from 'zod'\n\nimport * as schemas from './models/index.js'\n\nconst dot_path = z.string().regex(/^([a-z])[a-z_.]*[a-z]+$/)\n\nexport const routes = {\n '/api/v1/device_models/get': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n device_model_id: z.string().uuid(),\n }),\n jsonResponse: z.object({\n device_model: schemas.device_model_v1,\n }),\n },\n '/api/v1/device_models/list': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n main_category: schemas.device_category.optional(),\n manufacturer_id: z.string().uuid().optional(),\n manufacturer_ids: z.string().uuid().array().optional(),\n /** @deprecated */\n integration_status: schemas.manufacturer.shape.integration.optional(),\n integration_support_levels: z\n .array(schemas.manufacturer_integration_support_level)\n .optional(),\n text_search: z.string().optional(),\n include_if: z.array(dot_path).optional(),\n exclude_if: z.array(dot_path).optional(),\n }),\n jsonResponse: z.object({\n device_models: schemas.device_model_v1.array(),\n }),\n },\n '/api/v1/manufacturers/get': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n manufacturer_id: z.string().uuid(),\n }),\n jsonResponse: z.object({\n manufacturer: schemas.manufacturer,\n }),\n },\n '/api/v1/manufacturers/list': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n /** @deprecated */\n integration_status: schemas.manufacturer.shape.integration.optional(),\n integration_support_levels: z\n .array(schemas.manufacturer_integration_support_level)\n .optional(),\n liqe_query: z.string().optional(),\n }),\n jsonResponse: z.object({\n manufacturers: schemas.manufacturer.array(),\n }),\n },\n} as const\n"]}
1
+ {"version":3,"sources":["../src/lib/seam/devicedb/models/index.ts","../src/lib/seam/devicedb/models/device-capability.ts","../src/lib/seam/devicedb/models/device-model.ts","../src/lib/seam/devicedb/models/hardware.ts","../src/lib/seam/devicedb/models/image-reference.ts","../src/lib/seam/devicedb/models/manufacturer.ts","../src/lib/seam/devicedb/route-specs.ts"],"names":["z"],"mappings":"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","sourcesContent":["export { device_capability_flags } from './device-capability.js'\nexport * from './device-model.js'\nexport * from './image-reference.js'\nexport * from './manufacturer.js'\n","import { z, type ZodLiteral } from 'zod'\n\nexport const device_capability_flags = z\n .object({\n can_remotely_unlock: z.boolean(),\n can_remotely_lock: z.boolean(),\n can_program_offline_access_codes: z.boolean(),\n can_program_online_access_codes: z.boolean(),\n can_hvac_heat: z.boolean(),\n can_hvac_cool: z.boolean(),\n can_hvac_heat_cool: z.boolean(),\n can_turn_off_hvac: z.boolean(),\n })\n .partial()\n\nconst device_model_capability_flags_map: Record<\n keyof z.infer<typeof device_capability_flags>,\n ZodLiteral<true>\n> = {\n can_remotely_lock: z.literal(true),\n can_remotely_unlock: z.literal(true),\n can_program_offline_access_codes: z.literal(true),\n can_program_online_access_codes: z.literal(true),\n can_hvac_heat: z.literal(true),\n can_hvac_cool: z.literal(true),\n can_hvac_heat_cool: z.literal(true),\n can_turn_off_hvac: z.literal(true),\n}\n\nexport const device_model_capability_flags = z\n .object(device_model_capability_flags_map)\n .partial()\n","import { z } from 'zod'\n\nimport { device_model_capability_flags } from './device-capability.js'\nimport { hardware } from './hardware.js'\nimport { image_reference } from './image-reference.js'\nimport { manufacturer } from './manufacturer.js'\n\nexport const device_category = z.enum([\n 'smartlock',\n 'sensor',\n 'thermostat',\n 'relay',\n 'intercom',\n 'accessory',\n])\n\nexport type DeviceCategory = z.infer<typeof device_category>\n\nexport const device_connection_type = z.enum([\n 'wifi',\n 'zwave',\n 'zigbee',\n 'unknown',\n])\n\nexport type DeviceConnectionType = z.infer<typeof device_connection_type>\n\nconst smartlock = z\n .object({\n main_category: z.literal(device_category.enum.smartlock),\n physical_properties: z.object({\n lock_type: z.enum([\n 'deadbolt',\n 'lever',\n 'mortise',\n 'lockbox',\n 'cylinder',\n 'padlock',\n 'locker',\n 'unknown',\n ]),\n has_physical_key: z.boolean(),\n has_camera: z.boolean(),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_program_access_schedules: z.boolean(),\n can_program_access_codes_offline: z.boolean(),\n }),\n })\n .merge(\n device_model_capability_flags.pick({\n can_remotely_lock: true,\n can_remotely_unlock: true,\n can_program_offline_access_codes: true,\n can_program_online_access_codes: true,\n }),\n )\n\nconst sensor = z.object({\n main_category: z.literal(device_category.enum.sensor),\n physical_properties: z.object({\n has_noise_sensor: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n has_occupancy_detection: z.boolean(),\n }),\n})\n\nexport const thermostat = z\n .object({\n main_category: z.literal(device_category.enum.thermostat),\n physical_properties: z.object({\n available_modes: z.enum(['heat', 'cool', 'fan', 'eco']).array(),\n is_heat_pump_compatible: z.boolean(),\n has_occupancy_detection: z.boolean(),\n supports_demand_response: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n supports_emergency_heating_mode: z.boolean(),\n }),\n software_features: z.object({\n can_program_climate_schedules: z.boolean(),\n }),\n })\n .merge(\n device_model_capability_flags.pick({\n can_hvac_heat: true,\n can_hvac_cool: true,\n can_hvac_heat_cool: true,\n can_turn_off_hvac: true,\n }),\n )\n\nexport type ThermostatProperties = z.infer<typeof thermostat>\n\nconst relay = z.object({\n main_category: z.literal(device_category.enum.relay),\n})\n\nconst intercom = z.object({\n main_category: z.literal(device_category.enum.intercom),\n physical_properties: z.object({\n has_camera: z.boolean(),\n has_rfid_reader: z.boolean().default(false),\n has_nfc_reader: z.boolean().default(false),\n has_wiegand_interface: z.boolean().default(false),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_unlock_with_face_recognition: z.boolean().default(false),\n supports_onvif: z.boolean().default(false),\n }),\n})\n\nconst accessory = z.object({\n main_category: z.literal(device_category.enum.accessory),\n})\n\nexport const device_model_category_specific_properties = z.discriminatedUnion(\n 'main_category',\n [smartlock, sensor, thermostat, relay, intercom, accessory],\n)\n\nexport const base_device_model_v1 = z.object({\n device_model_id: z.string().uuid(),\n manufacturer: manufacturer.omit({\n device_model_count: true,\n }),\n is_device_supported: z.boolean(),\n display_name: z.string(),\n description: z.string(),\n product_url: z.string().optional(),\n main_connection_type: device_connection_type,\n hardware,\n aesthetic_variants: z\n .object({\n slug: z.string(),\n display_name: z.string(),\n primary_color_hex: z.string().optional(),\n manufacturer_sku: z.string().optional(),\n front_image: image_reference.optional(),\n back_image: image_reference.optional(),\n images: image_reference.array(),\n })\n .array(),\n power_sources: z\n .enum([\n 'battery',\n 'hardwired',\n 'mechanical_harvesting',\n 'wireless',\n 'ethernet',\n ])\n .array(),\n})\n\nexport type BaseDeviceModel = z.infer<typeof base_device_model_v1>\n\nexport const device_model_v1 = base_device_model_v1.and(\n device_model_category_specific_properties,\n)\n\nexport type DeviceModel = z.infer<typeof device_model_v1>\n","import { z } from 'zod'\n\nexport const hardware = z\n .object({\n has_physical_key: z.boolean(),\n })\n .partial()\n","import { z } from 'zod'\n\nexport const image_reference = z.object({\n url: z.string().url(),\n width: z.number(),\n height: z.number(),\n})\n\nexport type ImageReference = z.infer<typeof image_reference>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\n\nexport const manufacturer_integration_support_level = z.enum([\n 'stable',\n 'beta',\n 'planned',\n 'unsupported',\n 'inquire',\n])\n\nexport type ManufacturerIntegrationSupportLevel = z.infer<\n typeof manufacturer_integration_support_level\n>\n\nexport const manufacturer_annotation_code = z.enum(['subscription_required'])\n\nexport type ManufacturerAnnotationCode = z.infer<\n typeof manufacturer_annotation_code\n>\n\nexport const manufacturer_annotation = z.object({\n annotation_code: manufacturer_annotation_code,\n message: z.string().trim().nonempty(),\n})\n\nexport type ManufacturerAnnotation = z.infer<typeof manufacturer_annotation>\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n /** @deprecated */\n integration: manufacturer_integration_support_level,\n integration_support_level: manufacturer_integration_support_level,\n is_connect_webview_supported: z.boolean(),\n requires_seam_support_to_add_account: z.boolean(),\n device_model_count: z.number(),\n annotations: z.array(manufacturer_annotation),\n website: z.string().url().optional(),\n legal_name: z.string().optional(),\n parent_organization: z.string().optional(),\n headquarters: z.array(z.string()).optional(),\n countries_of_origin: z.array(z.string()).optional(),\n founding_year: z.string().optional(),\n us_customer_support_tel: z.string().optional(),\n us_customer_support_email: z.string().email().optional(),\n us_customer_support_contact_url: z.string().url().optional(),\n seam_api_guide: z.string().optional(),\n description: z.string().optional(),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n","import { z } from 'zod'\n\nimport * as schemas from './models/index.js'\n\nconst dot_path = z.string().regex(/^([a-z])[a-z_.]*[a-z]+$/)\n\nexport const routes = {\n '/api/v1/device_models/get': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n device_model_id: z.string().uuid(),\n }),\n jsonResponse: z.object({\n device_model: schemas.device_model_v1,\n }),\n },\n '/api/v1/device_models/list': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n main_category: schemas.device_category.optional(),\n manufacturer_id: z.string().uuid().optional(),\n manufacturer_ids: z.string().uuid().array().optional(),\n /** @deprecated */\n integration_status: schemas.manufacturer.shape.integration.optional(),\n integration_support_levels: z\n .array(schemas.manufacturer_integration_support_level)\n .optional(),\n text_search: z.string().optional(),\n include_if: z.array(dot_path).optional(),\n exclude_if: z.array(dot_path).optional(),\n }),\n jsonResponse: z.object({\n device_models: schemas.device_model_v1.array(),\n }),\n },\n '/api/v1/manufacturers/get': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n manufacturer_id: z.string().uuid(),\n }),\n jsonResponse: z.object({\n manufacturer: schemas.manufacturer,\n }),\n },\n '/api/v1/manufacturers/list': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n /** @deprecated */\n integration_status: schemas.manufacturer.shape.integration.optional(),\n integration_support_levels: z\n .array(schemas.manufacturer_integration_support_level)\n .optional(),\n liqe_query: z.string().optional(),\n }),\n jsonResponse: z.object({\n manufacturers: schemas.manufacturer.array(),\n }),\n },\n} as const\n"]}
@@ -33,7 +33,7 @@ declare const device_category: z.ZodEnum<["smartlock", "sensor", "thermostat", "
33
33
  type DeviceCategory = z.infer<typeof device_category>;
34
34
  declare const device_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
35
35
  type DeviceConnectionType = z.infer<typeof device_connection_type>;
36
- declare const thermostat: z.ZodObject<{
36
+ declare const thermostat: z.ZodObject<z.objectUtil.extendShape<{
37
37
  main_category: z.ZodLiteral<"thermostat">;
38
38
  physical_properties: z.ZodObject<{
39
39
  available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
@@ -67,7 +67,16 @@ declare const thermostat: z.ZodObject<{
67
67
  }, {
68
68
  can_program_climate_schedules: boolean;
69
69
  }>;
70
- }, "strip", z.ZodTypeAny, {
70
+ }, Pick<{
71
+ can_remotely_unlock: z.ZodOptional<z.ZodLiteral<true>>;
72
+ can_remotely_lock: z.ZodOptional<z.ZodLiteral<true>>;
73
+ can_program_offline_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
74
+ can_program_online_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
75
+ can_hvac_heat: z.ZodOptional<z.ZodLiteral<true>>;
76
+ can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
77
+ can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
78
+ can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
79
+ }, "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
71
80
  main_category: "thermostat";
72
81
  physical_properties: {
73
82
  has_humidity_sensor: boolean;
@@ -81,6 +90,10 @@ declare const thermostat: z.ZodObject<{
81
90
  software_features: {
82
91
  can_program_climate_schedules: boolean;
83
92
  };
93
+ can_hvac_heat?: true | undefined;
94
+ can_hvac_cool?: true | undefined;
95
+ can_hvac_heat_cool?: true | undefined;
96
+ can_turn_off_hvac?: true | undefined;
84
97
  }, {
85
98
  main_category: "thermostat";
86
99
  physical_properties: {
@@ -95,6 +108,10 @@ declare const thermostat: z.ZodObject<{
95
108
  software_features: {
96
109
  can_program_climate_schedules: boolean;
97
110
  };
111
+ can_hvac_heat?: true | undefined;
112
+ can_hvac_cool?: true | undefined;
113
+ can_hvac_heat_cool?: true | undefined;
114
+ can_turn_off_hvac?: true | undefined;
98
115
  }>;
99
116
  type ThermostatProperties = z.infer<typeof thermostat>;
100
117
  declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<z.objectUtil.extendShape<{
@@ -137,7 +154,7 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
137
154
  can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
138
155
  can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
139
156
  can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
140
- }, "can_remotely_unlock" | "can_remotely_lock" | "can_program_offline_access_codes" | "can_program_online_access_codes" | "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
157
+ }, "can_remotely_unlock" | "can_remotely_lock" | "can_program_offline_access_codes" | "can_program_online_access_codes">>, "strip", z.ZodTypeAny, {
141
158
  main_category: "smartlock";
142
159
  physical_properties: {
143
160
  has_physical_key: boolean;
@@ -154,10 +171,6 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
154
171
  can_remotely_lock?: true | undefined;
155
172
  can_program_offline_access_codes?: true | undefined;
156
173
  can_program_online_access_codes?: true | undefined;
157
- can_hvac_heat?: true | undefined;
158
- can_hvac_cool?: true | undefined;
159
- can_hvac_heat_cool?: true | undefined;
160
- can_turn_off_hvac?: true | undefined;
161
174
  }, {
162
175
  main_category: "smartlock";
163
176
  physical_properties: {
@@ -175,10 +188,6 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
175
188
  can_remotely_lock?: true | undefined;
176
189
  can_program_offline_access_codes?: true | undefined;
177
190
  can_program_online_access_codes?: true | undefined;
178
- can_hvac_heat?: true | undefined;
179
- can_hvac_cool?: true | undefined;
180
- can_hvac_heat_cool?: true | undefined;
181
- can_turn_off_hvac?: true | undefined;
182
191
  }>, z.ZodObject<{
183
192
  main_category: z.ZodLiteral<"sensor">;
184
193
  physical_properties: z.ZodObject<{
@@ -213,7 +222,7 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
213
222
  has_temperature_sensor: boolean;
214
223
  has_occupancy_detection: boolean;
215
224
  };
216
- }>, z.ZodObject<{
225
+ }>, z.ZodObject<z.objectUtil.extendShape<{
217
226
  main_category: z.ZodLiteral<"thermostat">;
218
227
  physical_properties: z.ZodObject<{
219
228
  available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
@@ -247,7 +256,16 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
247
256
  }, {
248
257
  can_program_climate_schedules: boolean;
249
258
  }>;
250
- }, "strip", z.ZodTypeAny, {
259
+ }, Pick<{
260
+ can_remotely_unlock: z.ZodOptional<z.ZodLiteral<true>>;
261
+ can_remotely_lock: z.ZodOptional<z.ZodLiteral<true>>;
262
+ can_program_offline_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
263
+ can_program_online_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
264
+ can_hvac_heat: z.ZodOptional<z.ZodLiteral<true>>;
265
+ can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
266
+ can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
267
+ can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
268
+ }, "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
251
269
  main_category: "thermostat";
252
270
  physical_properties: {
253
271
  has_humidity_sensor: boolean;
@@ -261,6 +279,10 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
261
279
  software_features: {
262
280
  can_program_climate_schedules: boolean;
263
281
  };
282
+ can_hvac_heat?: true | undefined;
283
+ can_hvac_cool?: true | undefined;
284
+ can_hvac_heat_cool?: true | undefined;
285
+ can_turn_off_hvac?: true | undefined;
264
286
  }, {
265
287
  main_category: "thermostat";
266
288
  physical_properties: {
@@ -275,6 +297,10 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
275
297
  software_features: {
276
298
  can_program_climate_schedules: boolean;
277
299
  };
300
+ can_hvac_heat?: true | undefined;
301
+ can_hvac_cool?: true | undefined;
302
+ can_hvac_heat_cool?: true | undefined;
303
+ can_turn_off_hvac?: true | undefined;
278
304
  }>, z.ZodObject<{
279
305
  main_category: z.ZodLiteral<"relay">;
280
306
  }, "strip", z.ZodTypeAny, {
@@ -1026,7 +1052,7 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
1026
1052
  can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
1027
1053
  can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
1028
1054
  can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
1029
- }, "can_remotely_unlock" | "can_remotely_lock" | "can_program_offline_access_codes" | "can_program_online_access_codes" | "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
1055
+ }, "can_remotely_unlock" | "can_remotely_lock" | "can_program_offline_access_codes" | "can_program_online_access_codes">>, "strip", z.ZodTypeAny, {
1030
1056
  main_category: "smartlock";
1031
1057
  physical_properties: {
1032
1058
  has_physical_key: boolean;
@@ -1043,10 +1069,6 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
1043
1069
  can_remotely_lock?: true | undefined;
1044
1070
  can_program_offline_access_codes?: true | undefined;
1045
1071
  can_program_online_access_codes?: true | undefined;
1046
- can_hvac_heat?: true | undefined;
1047
- can_hvac_cool?: true | undefined;
1048
- can_hvac_heat_cool?: true | undefined;
1049
- can_turn_off_hvac?: true | undefined;
1050
1072
  }, {
1051
1073
  main_category: "smartlock";
1052
1074
  physical_properties: {
@@ -1064,10 +1086,6 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
1064
1086
  can_remotely_lock?: true | undefined;
1065
1087
  can_program_offline_access_codes?: true | undefined;
1066
1088
  can_program_online_access_codes?: true | undefined;
1067
- can_hvac_heat?: true | undefined;
1068
- can_hvac_cool?: true | undefined;
1069
- can_hvac_heat_cool?: true | undefined;
1070
- can_turn_off_hvac?: true | undefined;
1071
1089
  }>, z.ZodObject<{
1072
1090
  main_category: z.ZodLiteral<"sensor">;
1073
1091
  physical_properties: z.ZodObject<{
@@ -1102,7 +1120,7 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
1102
1120
  has_temperature_sensor: boolean;
1103
1121
  has_occupancy_detection: boolean;
1104
1122
  };
1105
- }>, z.ZodObject<{
1123
+ }>, z.ZodObject<z.objectUtil.extendShape<{
1106
1124
  main_category: z.ZodLiteral<"thermostat">;
1107
1125
  physical_properties: z.ZodObject<{
1108
1126
  available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
@@ -1136,7 +1154,16 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
1136
1154
  }, {
1137
1155
  can_program_climate_schedules: boolean;
1138
1156
  }>;
1139
- }, "strip", z.ZodTypeAny, {
1157
+ }, Pick<{
1158
+ can_remotely_unlock: z.ZodOptional<z.ZodLiteral<true>>;
1159
+ can_remotely_lock: z.ZodOptional<z.ZodLiteral<true>>;
1160
+ can_program_offline_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
1161
+ can_program_online_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
1162
+ can_hvac_heat: z.ZodOptional<z.ZodLiteral<true>>;
1163
+ can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
1164
+ can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
1165
+ can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
1166
+ }, "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
1140
1167
  main_category: "thermostat";
1141
1168
  physical_properties: {
1142
1169
  has_humidity_sensor: boolean;
@@ -1150,6 +1177,10 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
1150
1177
  software_features: {
1151
1178
  can_program_climate_schedules: boolean;
1152
1179
  };
1180
+ can_hvac_heat?: true | undefined;
1181
+ can_hvac_cool?: true | undefined;
1182
+ can_hvac_heat_cool?: true | undefined;
1183
+ can_turn_off_hvac?: true | undefined;
1153
1184
  }, {
1154
1185
  main_category: "thermostat";
1155
1186
  physical_properties: {
@@ -1164,6 +1195,10 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
1164
1195
  software_features: {
1165
1196
  can_program_climate_schedules: boolean;
1166
1197
  };
1198
+ can_hvac_heat?: true | undefined;
1199
+ can_hvac_cool?: true | undefined;
1200
+ can_hvac_heat_cool?: true | undefined;
1201
+ can_turn_off_hvac?: true | undefined;
1167
1202
  }>, z.ZodObject<{
1168
1203
  main_category: z.ZodLiteral<"relay">;
1169
1204
  }, "strip", z.ZodTypeAny, {
@@ -1769,7 +1804,7 @@ declare const routes: {
1769
1804
  can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
1770
1805
  can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
1771
1806
  can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
1772
- }, "can_remotely_unlock" | "can_remotely_lock" | "can_program_offline_access_codes" | "can_program_online_access_codes" | "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
1807
+ }, "can_remotely_unlock" | "can_remotely_lock" | "can_program_offline_access_codes" | "can_program_online_access_codes">>, "strip", z.ZodTypeAny, {
1773
1808
  main_category: "smartlock";
1774
1809
  physical_properties: {
1775
1810
  has_physical_key: boolean;
@@ -1786,10 +1821,6 @@ declare const routes: {
1786
1821
  can_remotely_lock?: true | undefined;
1787
1822
  can_program_offline_access_codes?: true | undefined;
1788
1823
  can_program_online_access_codes?: true | undefined;
1789
- can_hvac_heat?: true | undefined;
1790
- can_hvac_cool?: true | undefined;
1791
- can_hvac_heat_cool?: true | undefined;
1792
- can_turn_off_hvac?: true | undefined;
1793
1824
  }, {
1794
1825
  main_category: "smartlock";
1795
1826
  physical_properties: {
@@ -1807,10 +1838,6 @@ declare const routes: {
1807
1838
  can_remotely_lock?: true | undefined;
1808
1839
  can_program_offline_access_codes?: true | undefined;
1809
1840
  can_program_online_access_codes?: true | undefined;
1810
- can_hvac_heat?: true | undefined;
1811
- can_hvac_cool?: true | undefined;
1812
- can_hvac_heat_cool?: true | undefined;
1813
- can_turn_off_hvac?: true | undefined;
1814
1841
  }>, z.ZodObject<{
1815
1842
  main_category: z.ZodLiteral<"sensor">;
1816
1843
  physical_properties: z.ZodObject<{
@@ -1845,7 +1872,7 @@ declare const routes: {
1845
1872
  has_temperature_sensor: boolean;
1846
1873
  has_occupancy_detection: boolean;
1847
1874
  };
1848
- }>, z.ZodObject<{
1875
+ }>, z.ZodObject<z.objectUtil.extendShape<{
1849
1876
  main_category: z.ZodLiteral<"thermostat">;
1850
1877
  physical_properties: z.ZodObject<{
1851
1878
  available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
@@ -1879,7 +1906,16 @@ declare const routes: {
1879
1906
  }, {
1880
1907
  can_program_climate_schedules: boolean;
1881
1908
  }>;
1882
- }, "strip", z.ZodTypeAny, {
1909
+ }, Pick<{
1910
+ can_remotely_unlock: z.ZodOptional<z.ZodLiteral<true>>;
1911
+ can_remotely_lock: z.ZodOptional<z.ZodLiteral<true>>;
1912
+ can_program_offline_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
1913
+ can_program_online_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
1914
+ can_hvac_heat: z.ZodOptional<z.ZodLiteral<true>>;
1915
+ can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
1916
+ can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
1917
+ can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
1918
+ }, "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
1883
1919
  main_category: "thermostat";
1884
1920
  physical_properties: {
1885
1921
  has_humidity_sensor: boolean;
@@ -1893,6 +1929,10 @@ declare const routes: {
1893
1929
  software_features: {
1894
1930
  can_program_climate_schedules: boolean;
1895
1931
  };
1932
+ can_hvac_heat?: true | undefined;
1933
+ can_hvac_cool?: true | undefined;
1934
+ can_hvac_heat_cool?: true | undefined;
1935
+ can_turn_off_hvac?: true | undefined;
1896
1936
  }, {
1897
1937
  main_category: "thermostat";
1898
1938
  physical_properties: {
@@ -1907,6 +1947,10 @@ declare const routes: {
1907
1947
  software_features: {
1908
1948
  can_program_climate_schedules: boolean;
1909
1949
  };
1950
+ can_hvac_heat?: true | undefined;
1951
+ can_hvac_cool?: true | undefined;
1952
+ can_hvac_heat_cool?: true | undefined;
1953
+ can_turn_off_hvac?: true | undefined;
1910
1954
  }>, z.ZodObject<{
1911
1955
  main_category: z.ZodLiteral<"relay">;
1912
1956
  }, "strip", z.ZodTypeAny, {
@@ -2060,10 +2104,6 @@ declare const routes: {
2060
2104
  can_remotely_lock?: true | undefined;
2061
2105
  can_program_offline_access_codes?: true | undefined;
2062
2106
  can_program_online_access_codes?: true | undefined;
2063
- can_hvac_heat?: true | undefined;
2064
- can_hvac_cool?: true | undefined;
2065
- can_hvac_heat_cool?: true | undefined;
2066
- can_turn_off_hvac?: true | undefined;
2067
2107
  } | {
2068
2108
  main_category: "sensor";
2069
2109
  physical_properties: {
@@ -2086,6 +2126,10 @@ declare const routes: {
2086
2126
  software_features: {
2087
2127
  can_program_climate_schedules: boolean;
2088
2128
  };
2129
+ can_hvac_heat?: true | undefined;
2130
+ can_hvac_cool?: true | undefined;
2131
+ can_hvac_heat_cool?: true | undefined;
2132
+ can_turn_off_hvac?: true | undefined;
2089
2133
  } | {
2090
2134
  main_category: "relay";
2091
2135
  } | {
@@ -2183,10 +2227,6 @@ declare const routes: {
2183
2227
  can_remotely_lock?: true | undefined;
2184
2228
  can_program_offline_access_codes?: true | undefined;
2185
2229
  can_program_online_access_codes?: true | undefined;
2186
- can_hvac_heat?: true | undefined;
2187
- can_hvac_cool?: true | undefined;
2188
- can_hvac_heat_cool?: true | undefined;
2189
- can_turn_off_hvac?: true | undefined;
2190
2230
  } | {
2191
2231
  main_category: "sensor";
2192
2232
  physical_properties: {
@@ -2209,6 +2249,10 @@ declare const routes: {
2209
2249
  software_features: {
2210
2250
  can_program_climate_schedules: boolean;
2211
2251
  };
2252
+ can_hvac_heat?: true | undefined;
2253
+ can_hvac_cool?: true | undefined;
2254
+ can_hvac_heat_cool?: true | undefined;
2255
+ can_turn_off_hvac?: true | undefined;
2212
2256
  } | {
2213
2257
  main_category: "relay";
2214
2258
  } | {
@@ -2621,7 +2665,7 @@ declare const routes: {
2621
2665
  can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
2622
2666
  can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
2623
2667
  can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
2624
- }, "can_remotely_unlock" | "can_remotely_lock" | "can_program_offline_access_codes" | "can_program_online_access_codes" | "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
2668
+ }, "can_remotely_unlock" | "can_remotely_lock" | "can_program_offline_access_codes" | "can_program_online_access_codes">>, "strip", z.ZodTypeAny, {
2625
2669
  main_category: "smartlock";
2626
2670
  physical_properties: {
2627
2671
  has_physical_key: boolean;
@@ -2638,10 +2682,6 @@ declare const routes: {
2638
2682
  can_remotely_lock?: true | undefined;
2639
2683
  can_program_offline_access_codes?: true | undefined;
2640
2684
  can_program_online_access_codes?: true | undefined;
2641
- can_hvac_heat?: true | undefined;
2642
- can_hvac_cool?: true | undefined;
2643
- can_hvac_heat_cool?: true | undefined;
2644
- can_turn_off_hvac?: true | undefined;
2645
2685
  }, {
2646
2686
  main_category: "smartlock";
2647
2687
  physical_properties: {
@@ -2659,10 +2699,6 @@ declare const routes: {
2659
2699
  can_remotely_lock?: true | undefined;
2660
2700
  can_program_offline_access_codes?: true | undefined;
2661
2701
  can_program_online_access_codes?: true | undefined;
2662
- can_hvac_heat?: true | undefined;
2663
- can_hvac_cool?: true | undefined;
2664
- can_hvac_heat_cool?: true | undefined;
2665
- can_turn_off_hvac?: true | undefined;
2666
2702
  }>, z.ZodObject<{
2667
2703
  main_category: z.ZodLiteral<"sensor">;
2668
2704
  physical_properties: z.ZodObject<{
@@ -2697,7 +2733,7 @@ declare const routes: {
2697
2733
  has_temperature_sensor: boolean;
2698
2734
  has_occupancy_detection: boolean;
2699
2735
  };
2700
- }>, z.ZodObject<{
2736
+ }>, z.ZodObject<z.objectUtil.extendShape<{
2701
2737
  main_category: z.ZodLiteral<"thermostat">;
2702
2738
  physical_properties: z.ZodObject<{
2703
2739
  available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
@@ -2731,7 +2767,16 @@ declare const routes: {
2731
2767
  }, {
2732
2768
  can_program_climate_schedules: boolean;
2733
2769
  }>;
2734
- }, "strip", z.ZodTypeAny, {
2770
+ }, Pick<{
2771
+ can_remotely_unlock: z.ZodOptional<z.ZodLiteral<true>>;
2772
+ can_remotely_lock: z.ZodOptional<z.ZodLiteral<true>>;
2773
+ can_program_offline_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
2774
+ can_program_online_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
2775
+ can_hvac_heat: z.ZodOptional<z.ZodLiteral<true>>;
2776
+ can_hvac_cool: z.ZodOptional<z.ZodLiteral<true>>;
2777
+ can_hvac_heat_cool: z.ZodOptional<z.ZodLiteral<true>>;
2778
+ can_turn_off_hvac: z.ZodOptional<z.ZodLiteral<true>>;
2779
+ }, "can_hvac_heat" | "can_hvac_cool" | "can_hvac_heat_cool" | "can_turn_off_hvac">>, "strip", z.ZodTypeAny, {
2735
2780
  main_category: "thermostat";
2736
2781
  physical_properties: {
2737
2782
  has_humidity_sensor: boolean;
@@ -2745,6 +2790,10 @@ declare const routes: {
2745
2790
  software_features: {
2746
2791
  can_program_climate_schedules: boolean;
2747
2792
  };
2793
+ can_hvac_heat?: true | undefined;
2794
+ can_hvac_cool?: true | undefined;
2795
+ can_hvac_heat_cool?: true | undefined;
2796
+ can_turn_off_hvac?: true | undefined;
2748
2797
  }, {
2749
2798
  main_category: "thermostat";
2750
2799
  physical_properties: {
@@ -2759,6 +2808,10 @@ declare const routes: {
2759
2808
  software_features: {
2760
2809
  can_program_climate_schedules: boolean;
2761
2810
  };
2811
+ can_hvac_heat?: true | undefined;
2812
+ can_hvac_cool?: true | undefined;
2813
+ can_hvac_heat_cool?: true | undefined;
2814
+ can_turn_off_hvac?: true | undefined;
2762
2815
  }>, z.ZodObject<{
2763
2816
  main_category: z.ZodLiteral<"relay">;
2764
2817
  }, "strip", z.ZodTypeAny, {
@@ -2912,10 +2965,6 @@ declare const routes: {
2912
2965
  can_remotely_lock?: true | undefined;
2913
2966
  can_program_offline_access_codes?: true | undefined;
2914
2967
  can_program_online_access_codes?: true | undefined;
2915
- can_hvac_heat?: true | undefined;
2916
- can_hvac_cool?: true | undefined;
2917
- can_hvac_heat_cool?: true | undefined;
2918
- can_turn_off_hvac?: true | undefined;
2919
2968
  } | {
2920
2969
  main_category: "sensor";
2921
2970
  physical_properties: {
@@ -2938,6 +2987,10 @@ declare const routes: {
2938
2987
  software_features: {
2939
2988
  can_program_climate_schedules: boolean;
2940
2989
  };
2990
+ can_hvac_heat?: true | undefined;
2991
+ can_hvac_cool?: true | undefined;
2992
+ can_hvac_heat_cool?: true | undefined;
2993
+ can_turn_off_hvac?: true | undefined;
2941
2994
  } | {
2942
2995
  main_category: "relay";
2943
2996
  } | {
@@ -3035,10 +3088,6 @@ declare const routes: {
3035
3088
  can_remotely_lock?: true | undefined;
3036
3089
  can_program_offline_access_codes?: true | undefined;
3037
3090
  can_program_online_access_codes?: true | undefined;
3038
- can_hvac_heat?: true | undefined;
3039
- can_hvac_cool?: true | undefined;
3040
- can_hvac_heat_cool?: true | undefined;
3041
- can_turn_off_hvac?: true | undefined;
3042
3091
  } | {
3043
3092
  main_category: "sensor";
3044
3093
  physical_properties: {
@@ -3061,6 +3110,10 @@ declare const routes: {
3061
3110
  software_features: {
3062
3111
  can_program_climate_schedules: boolean;
3063
3112
  };
3113
+ can_hvac_heat?: true | undefined;
3114
+ can_hvac_cool?: true | undefined;
3115
+ can_hvac_heat_cool?: true | undefined;
3116
+ can_turn_off_hvac?: true | undefined;
3064
3117
  } | {
3065
3118
  main_category: "relay";
3066
3119
  } | {
@@ -3525,10 +3578,6 @@ interface Routes {
3525
3578
  can_remotely_unlock?: true | undefined;
3526
3579
  can_program_offline_access_codes?: true | undefined;
3527
3580
  can_program_online_access_codes?: true | undefined;
3528
- can_hvac_heat?: true | undefined;
3529
- can_hvac_cool?: true | undefined;
3530
- can_hvac_heat_cool?: true | undefined;
3531
- can_turn_off_hvac?: true | undefined;
3532
3581
  } | {
3533
3582
  main_category: 'sensor';
3534
3583
  physical_properties: {
@@ -3551,6 +3600,10 @@ interface Routes {
3551
3600
  software_features: {
3552
3601
  can_program_climate_schedules: boolean;
3553
3602
  };
3603
+ can_hvac_heat?: true | undefined;
3604
+ can_hvac_cool?: true | undefined;
3605
+ can_hvac_heat_cool?: true | undefined;
3606
+ can_turn_off_hvac?: true | undefined;
3554
3607
  } | {
3555
3608
  main_category: 'relay';
3556
3609
  } | {
@@ -3666,10 +3719,6 @@ interface Routes {
3666
3719
  can_remotely_unlock?: true | undefined;
3667
3720
  can_program_offline_access_codes?: true | undefined;
3668
3721
  can_program_online_access_codes?: true | undefined;
3669
- can_hvac_heat?: true | undefined;
3670
- can_hvac_cool?: true | undefined;
3671
- can_hvac_heat_cool?: true | undefined;
3672
- can_turn_off_hvac?: true | undefined;
3673
3722
  } | {
3674
3723
  main_category: 'sensor';
3675
3724
  physical_properties: {
@@ -3692,6 +3741,10 @@ interface Routes {
3692
3741
  software_features: {
3693
3742
  can_program_climate_schedules: boolean;
3694
3743
  };
3744
+ can_hvac_heat?: true | undefined;
3745
+ can_hvac_cool?: true | undefined;
3746
+ can_hvac_heat_cool?: true | undefined;
3747
+ can_turn_off_hvac?: true | undefined;
3695
3748
  } | {
3696
3749
  main_category: 'relay';
3697
3750
  } | {