homeassistant-stubs 2025.3.3__py3-none-any.whl → 2025.4.0__py3-none-any.whl

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 (334) hide show
  1. homeassistant-stubs/bootstrap.pyi +3 -2
  2. homeassistant-stubs/components/accuweather/const.pyi +3 -1
  3. homeassistant-stubs/components/accuweather/sensor.pyi +1 -1
  4. homeassistant-stubs/components/anova/config_flow.pyi +4 -1
  5. homeassistant-stubs/components/anthemav/media_player.pyi +2 -0
  6. homeassistant-stubs/components/arwn/sensor.pyi +3 -2
  7. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +14 -5
  8. homeassistant-stubs/components/assist_satellite/const.pyi +3 -0
  9. homeassistant-stubs/components/assist_satellite/entity.pyi +6 -4
  10. homeassistant-stubs/components/azure_storage/__init__.pyi +1 -1
  11. homeassistant-stubs/components/azure_storage/backup.pyi +1 -1
  12. homeassistant-stubs/components/azure_storage/config_flow.pyi +7 -0
  13. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  14. homeassistant-stubs/components/backup/agent.pyi +1 -1
  15. homeassistant-stubs/components/backup/backup.pyi +1 -1
  16. homeassistant-stubs/components/backup/config_flow.pyi +7 -0
  17. homeassistant-stubs/components/backup/coordinator.pyi +28 -0
  18. homeassistant-stubs/components/backup/diagnostics.pyi +7 -0
  19. homeassistant-stubs/components/backup/entity.pyi +13 -0
  20. homeassistant-stubs/components/backup/http.pyi +1 -0
  21. homeassistant-stubs/components/backup/manager.pyi +8 -3
  22. homeassistant-stubs/components/backup/sensor.pyi +23 -0
  23. homeassistant-stubs/components/bosch_alarm/__init__.pyi +12 -0
  24. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +31 -0
  25. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +20 -0
  26. homeassistant-stubs/components/bosch_alarm/const.pyi +4 -0
  27. homeassistant-stubs/components/bring/diagnostics.pyi +5 -0
  28. homeassistant-stubs/components/brother/__init__.pyi +1 -0
  29. homeassistant-stubs/components/brother/coordinator.pyi +1 -0
  30. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  31. homeassistant-stubs/components/cloud/http_api.pyi +6 -3
  32. homeassistant-stubs/components/cloud/tts.pyi +2 -2
  33. homeassistant-stubs/components/comelit/__init__.pyi +11 -0
  34. homeassistant-stubs/components/comelit/alarm_control_panel.pyi +44 -0
  35. homeassistant-stubs/components/comelit/binary_sensor.pyi +22 -0
  36. homeassistant-stubs/components/comelit/climate.pyi +60 -0
  37. homeassistant-stubs/components/comelit/config_flow.pyi +28 -0
  38. homeassistant-stubs/components/comelit/const.pyi +7 -0
  39. homeassistant-stubs/components/comelit/coordinator.pyi +38 -0
  40. homeassistant-stubs/components/comelit/cover.pyi +39 -0
  41. homeassistant-stubs/components/comelit/diagnostics.pyi +10 -0
  42. homeassistant-stubs/components/comelit/humidifier.pyi +61 -0
  43. homeassistant-stubs/components/comelit/light.pyi +28 -0
  44. homeassistant-stubs/components/comelit/sensor.pyi +45 -0
  45. homeassistant-stubs/components/comelit/switch.pyi +27 -0
  46. homeassistant-stubs/components/cover/reproduce_state.pyi +17 -6
  47. homeassistant-stubs/components/demo/valve.pyi +30 -0
  48. homeassistant-stubs/components/discovergy/__init__.pyi +1 -1
  49. homeassistant-stubs/components/energy/data.pyi +1 -0
  50. homeassistant-stubs/components/enigma2/config_flow.pyi +1 -0
  51. homeassistant-stubs/components/esphome/__init__.pyi +1 -1
  52. homeassistant-stubs/components/esphome/assist_satellite.pyi +2 -0
  53. homeassistant-stubs/components/esphome/config_flow.pyi +1 -0
  54. homeassistant-stubs/components/esphome/const.pyi +1 -0
  55. homeassistant-stubs/components/esphome/diagnostics.pyi +0 -1
  56. homeassistant-stubs/components/esphome/event.pyi +2 -0
  57. homeassistant-stubs/components/esphome/manager.pyi +1 -1
  58. homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
  59. homeassistant-stubs/components/frontend/__init__.pyi +9 -10
  60. homeassistant-stubs/components/frontend/storage.pyi +2 -1
  61. homeassistant-stubs/components/gios/__init__.pyi +1 -0
  62. homeassistant-stubs/components/gios/config_flow.pyi +1 -0
  63. homeassistant-stubs/components/gios/coordinator.pyi +2 -2
  64. homeassistant-stubs/components/google/calendar.pyi +3 -2
  65. homeassistant-stubs/components/google_drive/backup.pyi +2 -2
  66. homeassistant-stubs/components/habitica/const.pyi +25 -0
  67. homeassistant-stubs/components/habitica/services.pyi +6 -2
  68. homeassistant-stubs/components/heos/const.pyi +1 -0
  69. homeassistant-stubs/components/heos/coordinator.pyi +5 -5
  70. homeassistant-stubs/components/heos/media_player.pyi +18 -8
  71. homeassistant-stubs/components/home_connect/__init__.pyi +6 -17
  72. homeassistant-stubs/components/home_connect/button.pyi +0 -2
  73. homeassistant-stubs/components/home_connect/const.pyi +1 -6
  74. homeassistant-stubs/components/home_connect/coordinator.pyi +4 -2
  75. homeassistant-stubs/components/home_connect/entity.pyi +7 -2
  76. homeassistant-stubs/components/home_connect/light.pyi +1 -1
  77. homeassistant-stubs/components/home_connect/number.pyi +4 -3
  78. homeassistant-stubs/components/home_connect/select.pyi +7 -3
  79. homeassistant-stubs/components/home_connect/sensor.pyi +3 -1
  80. homeassistant-stubs/components/home_connect/services.pyi +35 -0
  81. homeassistant-stubs/components/home_connect/switch.pyi +2 -1
  82. homeassistant-stubs/components/home_connect/time.pyi +6 -1
  83. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +15 -0
  84. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +2 -1
  85. homeassistant-stubs/components/homeassistant_hardware/update.pyi +68 -0
  86. homeassistant-stubs/components/homeassistant_hardware/util.pyi +6 -1
  87. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +7 -1
  88. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +1 -1
  89. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +10 -0
  90. homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +29 -0
  91. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +1 -1
  92. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -1
  93. homeassistant-stubs/components/homeassistant_yellow/const.pyi +4 -0
  94. homeassistant-stubs/components/homeassistant_yellow/update.pyi +29 -0
  95. homeassistant-stubs/components/homee/binary_sensor.pyi +21 -0
  96. homeassistant-stubs/components/homee/button.pyi +1 -0
  97. homeassistant-stubs/components/homee/cover.pyi +1 -0
  98. homeassistant-stubs/components/homee/light.pyi +1 -0
  99. homeassistant-stubs/components/homee/lock.pyi +25 -0
  100. homeassistant-stubs/components/homee/number.pyi +1 -0
  101. homeassistant-stubs/components/homee/select.pyi +23 -0
  102. homeassistant-stubs/components/homee/sensor.pyi +2 -0
  103. homeassistant-stubs/components/homee/switch.pyi +2 -0
  104. homeassistant-stubs/components/homee/valve.pyi +1 -0
  105. homeassistant-stubs/components/homekit/__init__.pyi +3 -1
  106. homeassistant-stubs/components/homekit/accessories.pyi +1 -0
  107. homeassistant-stubs/components/homekit/type_switches.pyi +6 -0
  108. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -1
  109. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +7 -7
  110. homeassistant-stubs/components/incomfort/config_flow.pyi +1 -0
  111. homeassistant-stubs/components/iron_os/coordinator.pyi +2 -0
  112. homeassistant-stubs/components/iron_os/number.pyi +2 -0
  113. homeassistant-stubs/components/iron_os/select.pyi +3 -0
  114. homeassistant-stubs/components/jewish_calendar/__init__.pyi +9 -2
  115. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +4 -4
  116. homeassistant-stubs/components/jewish_calendar/const.pyi +3 -0
  117. homeassistant-stubs/components/jewish_calendar/entity.pyi +2 -2
  118. homeassistant-stubs/components/jewish_calendar/sensor.pyi +5 -6
  119. homeassistant-stubs/components/jewish_calendar/service.pyi +10 -0
  120. homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -0
  121. homeassistant-stubs/components/linkplay/entity.pyi +0 -1
  122. homeassistant-stubs/components/linkplay/media_player.pyi +3 -2
  123. homeassistant-stubs/components/linkplay/utils.pyi +0 -32
  124. homeassistant-stubs/components/lovelace/__init__.pyi +3 -1
  125. homeassistant-stubs/components/mastodon/__init__.pyi +2 -2
  126. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -1
  127. homeassistant-stubs/components/mastodon/const.pyi +0 -7
  128. homeassistant-stubs/components/mastodon/coordinator.pyi +5 -5
  129. homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -1
  130. homeassistant-stubs/components/mastodon/entity.pyi +1 -1
  131. homeassistant-stubs/components/mastodon/notify.pyi +3 -2
  132. homeassistant-stubs/components/mastodon/sensor.pyi +2 -3
  133. homeassistant-stubs/components/mastodon/services.pyi +1 -0
  134. homeassistant-stubs/components/mastodon/utils.pyi +3 -2
  135. homeassistant-stubs/components/mcp/coordinator.pyi +2 -9
  136. homeassistant-stubs/components/mcp_server/config_flow.pyi +1 -1
  137. homeassistant-stubs/components/mcp_server/const.pyi +1 -2
  138. homeassistant-stubs/components/mcp_server/server.pyi +1 -0
  139. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  140. homeassistant-stubs/components/modbus/climate.pyi +6 -2
  141. homeassistant-stubs/components/modbus/const.pyi +10 -0
  142. homeassistant-stubs/components/mqtt/config_flow.pyi +95 -7
  143. homeassistant-stubs/components/mqtt/const.pyi +65 -0
  144. homeassistant-stubs/components/mqtt/cover.pyi +2 -0
  145. homeassistant-stubs/components/mqtt/entity.pyi +4 -4
  146. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -2
  147. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +2 -48
  148. homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -14
  149. homeassistant-stubs/components/mqtt/light/schema_template.pyi +3 -14
  150. homeassistant-stubs/components/mqtt/models.pyi +25 -1
  151. homeassistant-stubs/components/mqtt/sensor.pyi +6 -5
  152. homeassistant-stubs/components/mqtt/update.pyi +1 -1
  153. homeassistant-stubs/components/mqtt/util.pyi +2 -0
  154. homeassistant-stubs/components/mysensors/__init__.pyi +1 -1
  155. homeassistant-stubs/components/mysensors/binary_sensor.pyi +0 -1
  156. homeassistant-stubs/components/mysensors/climate.pyi +0 -1
  157. homeassistant-stubs/components/mysensors/const.pyi +0 -1
  158. homeassistant-stubs/components/mysensors/cover.pyi +1 -2
  159. homeassistant-stubs/components/mysensors/device_tracker.pyi +0 -1
  160. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  161. homeassistant-stubs/components/mysensors/helpers.pyi +1 -3
  162. homeassistant-stubs/components/mysensors/light.pyi +4 -5
  163. homeassistant-stubs/components/mysensors/remote.pyi +0 -1
  164. homeassistant-stubs/components/mysensors/sensor.pyi +0 -1
  165. homeassistant-stubs/components/mysensors/switch.pyi +1 -2
  166. homeassistant-stubs/components/mysensors/text.pyi +0 -1
  167. homeassistant-stubs/components/nam/button.pyi +2 -0
  168. homeassistant-stubs/components/nam/const.pyi +1 -0
  169. homeassistant-stubs/components/nam/sensor.pyi +2 -2
  170. homeassistant-stubs/components/nest/media_source.pyi +5 -0
  171. homeassistant-stubs/components/nextdns/__init__.pyi +1 -1
  172. homeassistant-stubs/components/nextdns/button.pyi +2 -0
  173. homeassistant-stubs/components/nextdns/config_flow.pyi +1 -0
  174. homeassistant-stubs/components/nextdns/switch.pyi +1 -0
  175. homeassistant-stubs/components/nut/__init__.pyi +1 -0
  176. homeassistant-stubs/components/nut/button.pyi +14 -0
  177. homeassistant-stubs/components/nut/entity.pyi +19 -0
  178. homeassistant-stubs/components/nut/sensor.pyi +8 -13
  179. homeassistant-stubs/components/nut/switch.pyi +18 -0
  180. homeassistant-stubs/components/onboarding/views.pyi +2 -1
  181. homeassistant-stubs/components/onedrive/__init__.pyi +4 -0
  182. homeassistant-stubs/components/onedrive/backup.pyi +1 -1
  183. homeassistant-stubs/components/onedrive/services.pyi +15 -0
  184. homeassistant-stubs/components/openai_conversation/__init__.pyi +5 -1
  185. homeassistant-stubs/components/openai_conversation/config_flow.pyi +5 -2
  186. homeassistant-stubs/components/openai_conversation/const.pyi +22 -11
  187. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -7
  188. homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +1 -0
  189. homeassistant-stubs/components/overkiz/water_heater/atlantic_domestic_hot_water_production_v2_io_component.pyi +41 -0
  190. homeassistant-stubs/components/purpleair/__init__.pyi +5 -10
  191. homeassistant-stubs/components/purpleair/const.pyi +6 -4
  192. homeassistant-stubs/components/purpleair/coordinator.pyi +3 -2
  193. homeassistant-stubs/components/purpleair/diagnostics.pyi +2 -4
  194. homeassistant-stubs/components/purpleair/entity.pyi +2 -3
  195. homeassistant-stubs/components/purpleair/sensor.pyi +4 -5
  196. homeassistant-stubs/components/pyload/__init__.pyi +12 -0
  197. homeassistant-stubs/components/pyload/button.pyi +32 -0
  198. homeassistant-stubs/components/pyload/config_flow.pyi +23 -0
  199. homeassistant-stubs/components/pyload/const.pyi +6 -0
  200. homeassistant-stubs/components/pyload/coordinator.pyi +34 -0
  201. homeassistant-stubs/components/pyload/diagnostics.pyi +10 -0
  202. homeassistant-stubs/components/pyload/entity.pyi +13 -0
  203. homeassistant-stubs/components/pyload/sensor.pyi +33 -0
  204. homeassistant-stubs/components/pyload/switch.pyi +37 -0
  205. homeassistant-stubs/components/qbus/climate.pyi +41 -0
  206. homeassistant-stubs/components/qbus/light.pyi +3 -3
  207. homeassistant-stubs/components/recorder/const.pyi +1 -0
  208. homeassistant-stubs/components/recorder/core.pyi +1 -2
  209. homeassistant-stubs/components/recorder/db_schema.pyi +3 -1
  210. homeassistant-stubs/components/recorder/migration.pyi +16 -2
  211. homeassistant-stubs/components/recorder/models/__init__.pyi +2 -2
  212. homeassistant-stubs/components/recorder/models/statistics.pyi +10 -2
  213. homeassistant-stubs/components/recorder/statistics.pyi +27 -9
  214. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +5 -3
  215. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  216. homeassistant-stubs/components/remote_calendar/__init__.pyi +11 -0
  217. homeassistant-stubs/components/remote_calendar/calendar.pyi +26 -0
  218. homeassistant-stubs/components/remote_calendar/config_flow.pyi +13 -0
  219. homeassistant-stubs/components/remote_calendar/const.pyi +2 -0
  220. homeassistant-stubs/components/remote_calendar/coordinator.pyi +20 -0
  221. homeassistant-stubs/components/remote_calendar/diagnostics.pyi +5 -0
  222. homeassistant-stubs/components/renault/config_flow.pyi +1 -0
  223. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  224. homeassistant-stubs/components/reolink/binary_sensor.pyi +17 -1
  225. homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
  226. homeassistant-stubs/components/reolink/const.pyi +1 -0
  227. homeassistant-stubs/components/reolink/host.pyi +4 -4
  228. homeassistant-stubs/components/reolink/number.pyi +21 -1
  229. homeassistant-stubs/components/reolink/select.pyi +17 -1
  230. homeassistant-stubs/components/reolink/update.pyi +2 -1
  231. homeassistant-stubs/components/reolink/util.pyi +7 -0
  232. homeassistant-stubs/components/roborock/__init__.pyi +5 -3
  233. homeassistant-stubs/components/roborock/binary_sensor.pyi +4 -1
  234. homeassistant-stubs/components/roborock/button.pyi +11 -1
  235. homeassistant-stubs/components/roborock/config_flow.pyi +7 -3
  236. homeassistant-stubs/components/roborock/const.pyi +7 -1
  237. homeassistant-stubs/components/roborock/coordinator.pyi +18 -3
  238. homeassistant-stubs/components/roborock/entity.pyi +3 -1
  239. homeassistant-stubs/components/roborock/image.pyi +2 -7
  240. homeassistant-stubs/components/roborock/models.pyi +7 -0
  241. homeassistant-stubs/components/roborock/number.pyi +1 -0
  242. homeassistant-stubs/components/roborock/select.pyi +7 -5
  243. homeassistant-stubs/components/roborock/sensor.pyi +14 -1
  244. homeassistant-stubs/components/roborock/switch.pyi +2 -0
  245. homeassistant-stubs/components/roborock/time.pyi +1 -0
  246. homeassistant-stubs/components/roborock/vacuum.pyi +1 -1
  247. homeassistant-stubs/components/sensor/const.pyi +2 -0
  248. homeassistant-stubs/components/sensor/recorder.pyi +15 -3
  249. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  250. homeassistant-stubs/components/shelly/bluetooth/__init__.pyi +4 -2
  251. homeassistant-stubs/components/shelly/button.pyi +22 -7
  252. homeassistant-stubs/components/shelly/climate.pyi +1 -1
  253. homeassistant-stubs/components/shelly/config_flow.pyi +5 -5
  254. homeassistant-stubs/components/shelly/const.pyi +0 -1
  255. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  256. homeassistant-stubs/components/shelly/diagnostics.pyi +1 -2
  257. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  258. homeassistant-stubs/components/shelly/event.pyi +1 -1
  259. homeassistant-stubs/components/shelly/number.pyi +1 -1
  260. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  261. homeassistant-stubs/components/shelly/switch.pyi +14 -14
  262. homeassistant-stubs/components/shelly/update.pyi +1 -1
  263. homeassistant-stubs/components/shelly/utils.pyi +6 -2
  264. homeassistant-stubs/components/skybell/config_flow.pyi +3 -0
  265. homeassistant-stubs/components/smlight/__init__.pyi +0 -2
  266. homeassistant-stubs/components/smlight/sensor.pyi +5 -2
  267. homeassistant-stubs/components/smlight/update.pyi +0 -1
  268. homeassistant-stubs/components/squeezebox/browse_media.pyi +6 -11
  269. homeassistant-stubs/components/squeezebox/button.pyi +31 -0
  270. homeassistant-stubs/components/squeezebox/entity.pyi +8 -2
  271. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -5
  272. homeassistant-stubs/components/synology_dsm/__init__.pyi +5 -7
  273. homeassistant-stubs/components/synology_dsm/backup.pyi +3 -4
  274. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -5
  275. homeassistant-stubs/components/synology_dsm/button.pyi +2 -3
  276. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -4
  277. homeassistant-stubs/components/synology_dsm/config_flow.pyi +3 -2
  278. homeassistant-stubs/components/synology_dsm/coordinator.pyi +15 -5
  279. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +3 -4
  280. homeassistant-stubs/components/synology_dsm/media_source.pyi +3 -1
  281. homeassistant-stubs/components/synology_dsm/repairs.pyi +2 -3
  282. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -5
  283. homeassistant-stubs/components/synology_dsm/service.pyi +1 -1
  284. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -4
  285. homeassistant-stubs/components/synology_dsm/update.pyi +2 -5
  286. homeassistant-stubs/components/tibber/coordinator.pyi +1 -1
  287. homeassistant-stubs/components/todo/intent.pyi +8 -0
  288. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +1 -0
  289. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +3 -0
  290. homeassistant-stubs/components/tts/__init__.pyi +66 -51
  291. homeassistant-stubs/components/tts/entity.pyi +54 -0
  292. homeassistant-stubs/components/tts/media_source.pyi +1 -1
  293. homeassistant-stubs/components/update/__init__.pyi +2 -2
  294. homeassistant-stubs/components/usb/__init__.pyi +1 -5
  295. homeassistant-stubs/components/usb/utils.pyi +2 -0
  296. homeassistant-stubs/components/vodafone_station/__init__.pyi +11 -0
  297. homeassistant-stubs/components/vodafone_station/button.pyi +31 -0
  298. homeassistant-stubs/components/vodafone_station/config_flow.pyi +29 -0
  299. homeassistant-stubs/components/vodafone_station/const.pyi +9 -0
  300. homeassistant-stubs/components/vodafone_station/coordinator.pyi +43 -0
  301. homeassistant-stubs/components/vodafone_station/device_tracker.pyi +30 -0
  302. homeassistant-stubs/components/vodafone_station/diagnostics.pyi +10 -0
  303. homeassistant-stubs/components/vodafone_station/helpers.pyi +8 -0
  304. homeassistant-stubs/components/vodafone_station/sensor.pyi +38 -0
  305. homeassistant-stubs/components/zwave_js/__init__.pyi +5 -9
  306. homeassistant-stubs/components/zwave_js/api.pyi +15 -0
  307. homeassistant-stubs/components/zwave_js/config_flow.pyi +0 -1
  308. homeassistant-stubs/config_entries.pyi +2 -5
  309. homeassistant-stubs/helpers/backup.pyi +4 -1
  310. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +14 -0
  311. homeassistant-stubs/helpers/config_validation.pyi +5 -2
  312. homeassistant-stubs/helpers/frame.pyi +14 -5
  313. homeassistant-stubs/helpers/intent.pyi +13 -4
  314. homeassistant-stubs/helpers/llm.pyi +7 -1
  315. homeassistant-stubs/helpers/script.pyi +1 -1
  316. homeassistant-stubs/helpers/selector.pyi +1 -0
  317. homeassistant-stubs/helpers/template.pyi +14 -1
  318. homeassistant-stubs/loader.pyi +18 -8
  319. homeassistant-stubs/scripts/check_config.pyi +0 -1
  320. homeassistant-stubs/util/logging.pyi +18 -1
  321. homeassistant-stubs/util/unit_conversion.pyi +3 -0
  322. homeassistant-stubs/util/unit_system.pyi +12 -10
  323. homeassistant-stubs/util/yaml/__init__.pyi +3 -4
  324. homeassistant-stubs/util/yaml/dumper.pyi +2 -8
  325. homeassistant-stubs/util/yaml/input.pyi +2 -9
  326. homeassistant-stubs/util/yaml/loader.pyi +4 -72
  327. homeassistant-stubs/util/yaml/objects.pyi +2 -26
  328. {homeassistant_stubs-2025.3.3.dist-info → homeassistant_stubs-2025.4.0.dist-info}/METADATA +2 -2
  329. {homeassistant_stubs-2025.3.3.dist-info → homeassistant_stubs-2025.4.0.dist-info}/RECORD +331 -270
  330. homeassistant-stubs/components/mcp_server/llm_api.pyi +0 -15
  331. homeassistant-stubs/components/synology_dsm/models.pyi +0 -10
  332. homeassistant-stubs/util/yaml/const.pyi +0 -1
  333. {homeassistant_stubs-2025.3.3.dist-info → homeassistant_stubs-2025.4.0.dist-info}/WHEEL +0 -0
  334. {homeassistant_stubs-2025.3.3.dist-info → homeassistant_stubs-2025.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -5,11 +5,12 @@ from .components import http as http
5
5
  from .const import BASE_PLATFORMS as BASE_PLATFORMS, FORMAT_DATETIME as FORMAT_DATETIME, REQUIRED_NEXT_PYTHON_HA_RELEASE as REQUIRED_NEXT_PYTHON_HA_RELEASE, REQUIRED_NEXT_PYTHON_VER as REQUIRED_NEXT_PYTHON_VER, SIGNAL_BOOTSTRAP_INTEGRATIONS as SIGNAL_BOOTSTRAP_INTEGRATIONS
6
6
  from .core_config import async_process_ha_core_config as async_process_ha_core_config
7
7
  from .exceptions import HomeAssistantError as HomeAssistantError
8
- from .helpers import area_registry as area_registry, backup as backup, category_registry as category_registry, device_registry as device_registry, entity as entity, entity_registry as entity_registry, floor_registry as floor_registry, issue_registry as issue_registry, label_registry as label_registry, recorder as recorder, restore_state as restore_state, template as template, translation as translation
8
+ from .helpers import area_registry as area_registry, backup as backup, category_registry as category_registry, device_registry as device_registry, entity as entity, entity_registry as entity_registry, floor_registry as floor_registry, frame as frame, issue_registry as issue_registry, label_registry as label_registry, recorder as recorder, restore_state as restore_state, template as template, translation as translation
9
9
  from .helpers.dispatcher import async_dispatcher_send_internal as async_dispatcher_send_internal
10
10
  from .helpers.storage import get_internal_store_manager as get_internal_store_manager
11
11
  from .helpers.system_info import async_get_system_info as async_get_system_info
12
12
  from .helpers.typing import ConfigType as ConfigType
13
+ from .loader import Integration as Integration
13
14
  from .runner import RuntimeConfig as RuntimeConfig
14
15
  from .setup import _setup_started as _setup_started, async_get_setup_timings as async_get_setup_timings, async_notify_setup_error as async_notify_setup_error, async_set_domains_to_be_loaded as async_set_domains_to_be_loaded, async_setup_component as async_setup_component
15
16
  from .util.async_ import create_eager_task as create_eager_task
@@ -58,7 +59,7 @@ class _RotatingFileHandlerWithoutShouldRollOver(RotatingFileHandler):
58
59
 
59
60
  async def async_mount_local_lib_path(config_dir: str) -> str: ...
60
61
  def _get_domains(hass: core.HomeAssistant, config: dict[str, Any]) -> set[str]: ...
61
- async def _async_resolve_domains_to_setup(hass: core.HomeAssistant, config: dict[str, Any]) -> tuple[set[str], dict[str, loader.Integration]]: ...
62
+ async def _async_resolve_domains_and_preload(hass: core.HomeAssistant, config: dict[str, Any]) -> tuple[dict[str, Integration], dict[str, Integration]]: ...
62
63
  async def _async_set_up_integrations(hass: core.HomeAssistant, config: dict[str, Any]) -> None: ...
63
64
 
64
65
  class _WatchPendingSetups:
@@ -4,7 +4,7 @@ from typing import Final
4
4
 
5
5
  API_METRIC: Final[str]
6
6
  ATTRIBUTION: Final[str]
7
- ATTR_CATEGORY: Final[str]
7
+ ATTR_CATEGORY_VALUE: str
8
8
  ATTR_DIRECTION: Final[str]
9
9
  ATTR_ENGLISH: Final[str]
10
10
  ATTR_LEVEL: Final[str]
@@ -15,5 +15,7 @@ MANUFACTURER: Final[str]
15
15
  MAX_FORECAST_DAYS: Final[int]
16
16
  CONDITION_CLASSES: Final[dict[str, list[int]]]
17
17
  CONDITION_MAP: Incomplete
18
+ AIR_QUALITY_CATEGORY_MAP: Incomplete
19
+ POLLEN_CATEGORY_MAP: Incomplete
18
20
  UPDATE_INTERVAL_OBSERVATION: Incomplete
19
21
  UPDATE_INTERVAL_DAILY_FORECAST: Incomplete
@@ -1,4 +1,4 @@
1
- from .const import API_METRIC as API_METRIC, ATTRIBUTION as ATTRIBUTION, ATTR_CATEGORY as ATTR_CATEGORY, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_ENGLISH as ATTR_ENGLISH, ATTR_LEVEL as ATTR_LEVEL, ATTR_SPEED as ATTR_SPEED, ATTR_VALUE as ATTR_VALUE, MAX_FORECAST_DAYS as MAX_FORECAST_DAYS
1
+ from .const import AIR_QUALITY_CATEGORY_MAP as AIR_QUALITY_CATEGORY_MAP, API_METRIC as API_METRIC, ATTRIBUTION as ATTRIBUTION, ATTR_CATEGORY_VALUE as ATTR_CATEGORY_VALUE, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_ENGLISH as ATTR_ENGLISH, ATTR_LEVEL as ATTR_LEVEL, ATTR_SPEED as ATTR_SPEED, ATTR_VALUE as ATTR_VALUE, MAX_FORECAST_DAYS as MAX_FORECAST_DAYS, POLLEN_CATEGORY_MAP as POLLEN_CATEGORY_MAP
2
2
  from .coordinator import AccuWeatherConfigEntry as AccuWeatherConfigEntry, AccuWeatherDailyForecastDataUpdateCoordinator as AccuWeatherDailyForecastDataUpdateCoordinator, AccuWeatherObservationDataUpdateCoordinator as AccuWeatherObservationDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
@@ -1,9 +1,12 @@
1
1
  from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
2
3
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
3
4
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
4
5
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
6
 
6
- class AnovaConfligFlow(ConfigFlow, domain=DOMAIN):
7
+ _LOGGER: Incomplete
8
+
9
+ class AnovaConfigFlow(ConfigFlow, domain=DOMAIN):
7
10
  VERSION: int
8
11
  MINOR_VERSION: int
9
12
  async def async_step_user(self, user_input: dict[str, str] | None = None) -> ConfigFlowResult: ...
@@ -10,6 +10,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_d
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
11
 
12
12
  _LOGGER: Incomplete
13
+ VOLUME_STEP: float
13
14
 
14
15
  async def async_setup_entry(hass: HomeAssistant, config_entry: AnthemavConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
16
 
@@ -19,6 +20,7 @@ class AnthemAVR(MediaPlayerEntity):
19
20
  _attr_should_poll: bool
20
21
  _attr_device_class: Incomplete
21
22
  _attr_supported_features: Incomplete
23
+ _attr_volume_step = VOLUME_STEP
22
24
  avr: Incomplete
23
25
  _entry_id: Incomplete
24
26
  _zone_number: Incomplete
@@ -1,6 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
  from homeassistant.components import mqtt as mqtt
3
- from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity
3
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorStateClass as SensorStateClass
4
4
  from homeassistant.const import DEGREE as DEGREE, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfTemperature as UnitOfTemperature
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
6
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -27,7 +27,8 @@ class ArwnSensor(SensorEntity):
27
27
  _attr_native_unit_of_measurement: Incomplete
28
28
  _attr_icon: Incomplete
29
29
  _attr_device_class: Incomplete
30
- def __init__(self, topic: str, name: str, state_key: str, units: str, icon: str | None = None, device_class: SensorDeviceClass | None = None) -> None: ...
30
+ _attr_state_class: Incomplete
31
+ def __init__(self, topic: str, name: str, state_key: str, units: str, icon: str | None = None, device_class: SensorDeviceClass | None = None, state_class: SensorStateClass | None = None) -> None: ...
31
32
  _attr_extra_state_attributes: Incomplete
32
33
  _attr_native_value: Incomplete
33
34
  def set_event(self, event: dict[str, Any]) -> None: ...
@@ -9,7 +9,7 @@ from collections.abc import AsyncGenerator, AsyncIterable, Callable
9
9
  from dataclasses import dataclass, field
10
10
  from enum import StrEnum
11
11
  from hassil.recognize import RecognizeResult as RecognizeResult
12
- from homeassistant.components import conversation as conversation, media_source as media_source, stt as stt, tts as tts, wake_word as wake_word, websocket_api as websocket_api
12
+ from homeassistant.components import conversation as conversation, stt as stt, tts as tts, wake_word as wake_word, websocket_api as websocket_api
13
13
  from homeassistant.const import ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, MATCH_ALL as MATCH_ALL
14
14
  from homeassistant.core import Context as Context, HomeAssistant as HomeAssistant, callback as callback
15
15
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
@@ -32,6 +32,7 @@ STORAGE_VERSION: int
32
32
  STORAGE_VERSION_MINOR: int
33
33
  ENGINE_LANGUAGE_PAIRS: Incomplete
34
34
  KEY_ASSIST_PIPELINE: HassKey[PipelineData]
35
+ KEY_PIPELINE_CONVERSATION_DATA: HassKey[dict[str, PipelineConversationData]]
35
36
 
36
37
  def validate_language(data: dict[str, Any]) -> Any: ...
37
38
 
@@ -141,8 +142,7 @@ class PipelineRun:
141
142
  audio_settings: AudioSettings = field(default_factory=AudioSettings)
142
143
  id: str = field(default_factory=ulid_util.ulid_now)
143
144
  stt_provider: stt.SpeechToTextEntity | stt.Provider = field(init=False, repr=False)
144
- tts_engine: str = field(init=False, repr=False)
145
- tts_options: dict | None = field(init=False, default=None)
145
+ tts_stream: tts.ResultStream | None = field(init=False, default=None)
146
146
  wake_word_entity_id: str | None = field(init=False, default=None, repr=False)
147
147
  wake_word_entity: wake_word.WakeWordDetectionEntity = field(init=False, repr=False)
148
148
  abort_wake_word_detection: bool = field(init=False, default=False)
@@ -151,6 +151,8 @@ class PipelineRun:
151
151
  audio_enhancer: AudioEnhancer | None = ...
152
152
  audio_chunking_buffer: AudioBuffer = field(default_factory=Incomplete)
153
153
  _device_id: str | None = ...
154
+ _conversation_data: PipelineConversationData | None = ...
155
+ _intent_agent_only = ...
154
156
  def __post_init__(self) -> None: ...
155
157
  def __eq__(self, other: object) -> bool: ...
156
158
  @callback
@@ -163,7 +165,7 @@ class PipelineRun:
163
165
  async def prepare_speech_to_text(self, metadata: stt.SpeechMetadata) -> None: ...
164
166
  async def speech_to_text(self, metadata: stt.SpeechMetadata, stream: AsyncIterable[EnhancedAudioChunk]) -> str: ...
165
167
  async def _speech_to_text_stream(self, audio_stream: AsyncIterable[EnhancedAudioChunk], stt_vad: VoiceCommandSegmenter | None, sample_rate: int = ..., sample_width: int = ...) -> AsyncGenerator[bytes]: ...
166
- async def prepare_recognize_intent(self) -> None: ...
168
+ async def prepare_recognize_intent(self, session: chat_session.ChatSession) -> None: ...
167
169
  async def recognize_intent(self, intent_input: str, conversation_id: str, device_id: str | None, conversation_extra_system_prompt: str | None) -> str: ...
168
170
  async def prepare_text_to_speech(self) -> None: ...
169
171
  async def text_to_speech(self, tts_input: str) -> None: ...
@@ -179,7 +181,7 @@ def _pipeline_debug_recording_thread_proc(run_recording_dir: Path, queue: Queue[
179
181
  @dataclass(kw_only=True)
180
182
  class PipelineInput:
181
183
  run: PipelineRun
182
- conversation_id: str
184
+ session: chat_session.ChatSession
183
185
  stt_metadata: stt.SpeechMetadata | None = ...
184
186
  stt_stream: AsyncIterable[bytes] | None = ...
185
187
  wake_word_phrase: str | None = ...
@@ -264,3 +266,10 @@ async def async_setup_pipeline_store(hass: HomeAssistant) -> PipelineData: ...
264
266
  @callback
265
267
  def async_migrate_engine(hass: HomeAssistant, engine_type: Literal['conversation', 'stt', 'tts', 'wake_word'], old_value: str, new_value: str) -> None: ...
266
268
  async def async_run_migrations(hass: HomeAssistant) -> None: ...
269
+
270
+ @dataclass
271
+ class PipelineConversationData:
272
+ continue_conversation_agent: str | None = ...
273
+
274
+ @callback
275
+ def async_get_pipeline_conversation_data(hass: HomeAssistant, session: chat_session.ChatSession) -> PipelineConversationData: ...
@@ -1,5 +1,6 @@
1
1
  import asyncio
2
2
  from .entity import AssistSatelliteEntity as AssistSatelliteEntity
3
+ from _typeshed import Incomplete
3
4
  from enum import IntFlag
4
5
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
5
6
  from homeassistant.util.hass_dict import HassKey as HassKey
@@ -7,6 +8,8 @@ from homeassistant.util.hass_dict import HassKey as HassKey
7
8
  DOMAIN: str
8
9
  DATA_COMPONENT: HassKey[EntityComponent[AssistSatelliteEntity]]
9
10
  CONNECTION_TEST_DATA: HassKey[dict[str, asyncio.Event]]
11
+ PREANNOUNCE_FILENAME: str
12
+ PREANNOUNCE_URL: Incomplete
10
13
 
11
14
  class AssistSatelliteEntityFeature(IntFlag):
12
15
  ANNOUNCE = 1
@@ -1,6 +1,6 @@
1
1
  import abc
2
2
  import asyncio
3
- from .const import AssistSatelliteEntityFeature as AssistSatelliteEntityFeature
3
+ from .const import AssistSatelliteEntityFeature as AssistSatelliteEntityFeature, PREANNOUNCE_URL as PREANNOUNCE_URL
4
4
  from .errors import AssistSatelliteError as AssistSatelliteError, SatelliteBusyError as SatelliteBusyError
5
5
  from _typeshed import Incomplete
6
6
  from abc import abstractmethod
@@ -43,7 +43,9 @@ class AssistSatelliteAnnouncement:
43
43
  message: str
44
44
  media_id: str
45
45
  original_media_id: str
46
+ tts_token: str | None
46
47
  media_id_source: Literal['url', 'media_id', 'tts']
48
+ preannounce_media_id: str | None = ...
47
49
 
48
50
  class AssistSatelliteEntity(entity.Entity, metaclass=abc.ABCMeta):
49
51
  entity_description: AssistSatelliteEntityDescription
@@ -74,9 +76,9 @@ class AssistSatelliteEntity(entity.Entity, metaclass=abc.ABCMeta):
74
76
  @abstractmethod
75
77
  async def async_set_configuration(self, config: AssistSatelliteConfiguration) -> None: ...
76
78
  async def async_intercept_wake_word(self) -> str | None: ...
77
- async def async_internal_announce(self, message: str | None = None, media_id: str | None = None) -> None: ...
79
+ async def async_internal_announce(self, message: str | None = None, media_id: str | None = None, preannounce: bool = True, preannounce_media_id: str = ...) -> None: ...
78
80
  async def async_announce(self, announcement: AssistSatelliteAnnouncement) -> None: ...
79
- async def async_internal_start_conversation(self, start_message: str | None = None, start_media_id: str | None = None, extra_system_prompt: str | None = None) -> None: ...
81
+ async def async_internal_start_conversation(self, start_message: str | None = None, start_media_id: str | None = None, extra_system_prompt: str | None = None, preannounce: bool = True, preannounce_media_id: str = ...) -> None: ...
80
82
  async def async_start_conversation(self, start_announcement: AssistSatelliteAnnouncement) -> None: ...
81
83
  async def async_accept_pipeline_from_satellite(self, audio_stream: AsyncIterable[bytes], start_stage: PipelineStage = ..., end_stage: PipelineStage = ..., wake_word_phrase: str | None = None) -> None: ...
82
84
  async def _cancel_running_pipeline(self) -> None: ...
@@ -92,4 +94,4 @@ class AssistSatelliteEntity(entity.Entity, metaclass=abc.ABCMeta):
92
94
  def _resolve_pipeline(self) -> str | None: ...
93
95
  @callback
94
96
  def _resolve_vad_sensitivity(self) -> float: ...
95
- async def _resolve_announcement_media_id(self, message: str, media_id: str | None) -> AssistSatelliteAnnouncement: ...
97
+ async def _resolve_announcement_media_id(self, message: str, media_id: str | None, preannounce_media_id: str | None = None) -> AssistSatelliteAnnouncement: ...
@@ -2,7 +2,7 @@ from .const import CONF_ACCOUNT_NAME as CONF_ACCOUNT_NAME, CONF_CONTAINER_NAME a
2
2
  from azure.storage.blob.aio import ContainerClient
3
3
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
- from homeassistant.exceptions import ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
5
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
6
6
  from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
7
7
 
8
8
  type AzureStorageConfigEntry = ConfigEntry[ContainerClient]
@@ -30,5 +30,5 @@ class AzureStorageBackupAgent(BackupAgent):
30
30
  @handle_backup_errors
31
31
  async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]: ...
32
32
  @handle_backup_errors
33
- async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup | None: ...
33
+ async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup: ...
34
34
  async def _find_blob_by_backup_id(self, backup_id: str) -> BlobProperties | None: ...
@@ -1,5 +1,7 @@
1
1
  from .const import CONF_ACCOUNT_NAME as CONF_ACCOUNT_NAME, CONF_CONTAINER_NAME as CONF_CONTAINER_NAME, CONF_STORAGE_ACCOUNT_KEY as CONF_STORAGE_ACCOUNT_KEY, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
+ from azure.storage.blob.aio import ContainerClient
4
+ from collections.abc import Mapping
3
5
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
6
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
7
  from typing import Any
@@ -7,4 +9,9 @@ from typing import Any
7
9
  _LOGGER: Incomplete
8
10
 
9
11
  class AzureStorageConfigFlow(ConfigFlow, domain=DOMAIN):
12
+ def get_account_url(self, account_name: str) -> str: ...
13
+ async def validate_config(self, container_client: ContainerClient) -> dict[str, str]: ...
10
14
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
15
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
16
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,7 +1,7 @@
1
1
  from .agent import BackupAgent as BackupAgent, BackupAgentError as BackupAgentError, BackupAgentPlatformProtocol as BackupAgentPlatformProtocol, LocalBackupAgent as LocalBackupAgent
2
2
  from .config import BackupConfig as BackupConfig, CreateBackupParametersDict as CreateBackupParametersDict
3
- from .manager import BackupManagerError as BackupManagerError, BackupPlatformProtocol as BackupPlatformProtocol, BackupReaderWriter as BackupReaderWriter, BackupReaderWriterError as BackupReaderWriterError, CreateBackupEvent as CreateBackupEvent, CreateBackupStage as CreateBackupStage, CreateBackupState as CreateBackupState, IdleEvent as IdleEvent, IncorrectPasswordError as IncorrectPasswordError, ManagerBackup as ManagerBackup, ManagerStateEvent as ManagerStateEvent, NewBackup as NewBackup, RestoreBackupEvent as RestoreBackupEvent, RestoreBackupStage as RestoreBackupStage, RestoreBackupState as RestoreBackupState, WrittenBackup as WrittenBackup
3
+ from .manager import BackupManagerError as BackupManagerError, BackupPlatformEvent as BackupPlatformEvent, BackupPlatformProtocol as BackupPlatformProtocol, BackupReaderWriter as BackupReaderWriter, BackupReaderWriterError as BackupReaderWriterError, CreateBackupEvent as CreateBackupEvent, CreateBackupStage as CreateBackupStage, CreateBackupState as CreateBackupState, IdleEvent as IdleEvent, IncorrectPasswordError as IncorrectPasswordError, ManagerBackup as ManagerBackup, ManagerStateEvent as ManagerStateEvent, NewBackup as NewBackup, RestoreBackupEvent as RestoreBackupEvent, RestoreBackupStage as RestoreBackupStage, RestoreBackupState as RestoreBackupState, WrittenBackup as WrittenBackup
4
4
  from .models import AddonInfo as AddonInfo, AgentBackup as AgentBackup, BackupNotFound as BackupNotFound, Folder as Folder
5
5
  from .util import suggested_filename as suggested_filename, suggested_filename_from_name_date as suggested_filename_from_name_date
6
6
 
7
- __all__ = ['AddonInfo', 'AgentBackup', 'BackupAgent', 'BackupAgentError', 'BackupAgentPlatformProtocol', 'BackupConfig', 'BackupManagerError', 'BackupNotFound', 'BackupPlatformProtocol', 'BackupReaderWriter', 'BackupReaderWriterError', 'CreateBackupEvent', 'CreateBackupParametersDict', 'CreateBackupStage', 'CreateBackupState', 'Folder', 'IdleEvent', 'IncorrectPasswordError', 'LocalBackupAgent', 'ManagerBackup', 'ManagerStateEvent', 'NewBackup', 'RestoreBackupEvent', 'RestoreBackupStage', 'RestoreBackupState', 'WrittenBackup', 'suggested_filename', 'suggested_filename_from_name_date']
7
+ __all__ = ['AddonInfo', 'AgentBackup', 'BackupAgent', 'BackupAgentError', 'BackupAgentPlatformProtocol', 'BackupConfig', 'BackupManagerError', 'BackupNotFound', 'BackupPlatformEvent', 'BackupPlatformProtocol', 'BackupReaderWriter', 'BackupReaderWriterError', 'CreateBackupEvent', 'CreateBackupParametersDict', 'CreateBackupStage', 'CreateBackupState', 'Folder', 'IdleEvent', 'IncorrectPasswordError', 'LocalBackupAgent', 'ManagerBackup', 'ManagerStateEvent', 'NewBackup', 'RestoreBackupEvent', 'RestoreBackupStage', 'RestoreBackupState', 'WrittenBackup', 'suggested_filename', 'suggested_filename_from_name_date']
@@ -25,7 +25,7 @@ class BackupAgent(abc.ABC, metaclass=abc.ABCMeta):
25
25
  @abc.abstractmethod
26
26
  async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]: ...
27
27
  @abc.abstractmethod
28
- async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup | None: ...
28
+ async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup: ...
29
29
 
30
30
  class LocalBackupAgent(BackupAgent, metaclass=abc.ABCMeta):
31
31
  @abc.abstractmethod
@@ -25,7 +25,7 @@ class CoreLocalBackupAgent(LocalBackupAgent):
25
25
  async def async_download_backup(self, backup_id: str, **kwargs: Any) -> AsyncIterator[bytes]: ...
26
26
  async def async_upload_backup(self, *, open_stream: Callable[[], Coroutine[Any, Any, AsyncIterator[bytes]]], backup: AgentBackup, **kwargs: Any) -> None: ...
27
27
  async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]: ...
28
- async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup | None: ...
28
+ async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup: ...
29
29
  def get_backup_path(self, backup_id: str) -> Path: ...
30
30
  def get_new_backup_path(self, backup: AgentBackup) -> Path: ...
31
31
  async def async_delete_backup(self, backup_id: str, **kwargs: Any) -> None: ...
@@ -0,0 +1,7 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
3
+ from typing import Any
4
+
5
+ class BackupConfigFlow(ConfigFlow, domain=DOMAIN):
6
+ VERSION: int
7
+ async def async_step_system(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,28 @@
1
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
+ from .manager import BackupManager as BackupManager, BackupManagerState as BackupManagerState, BackupPlatformEvent as BackupPlatformEvent, ManagerStateEvent as ManagerStateEvent
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from datetime import datetime
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.helpers.backup import async_subscribe_events as async_subscribe_events, async_subscribe_platform_events as async_subscribe_platform_events
10
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
11
+
12
+ type BackupConfigEntry = ConfigEntry[BackupDataUpdateCoordinator]
13
+ @dataclass
14
+ class BackupCoordinatorData:
15
+ backup_manager_state: BackupManagerState
16
+ last_successful_automatic_backup: datetime | None
17
+ next_scheduled_automatic_backup: datetime | None
18
+
19
+ class BackupDataUpdateCoordinator(DataUpdateCoordinator[BackupCoordinatorData]):
20
+ config_entry: ConfigEntry
21
+ unsubscribe: list[Callable[[], None]]
22
+ backup_manager: Incomplete
23
+ def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry, backup_manager: BackupManager) -> None: ...
24
+ @callback
25
+ def _on_event(self, event: ManagerStateEvent | BackupPlatformEvent) -> None: ...
26
+ async def _async_update_data(self) -> BackupCoordinatorData: ...
27
+ @callback
28
+ def async_unsubscribe(self) -> None: ...
@@ -0,0 +1,7 @@
1
+ from .coordinator import BackupConfigEntry as BackupConfigEntry
2
+ from homeassistant.components.diagnostics import async_redact_data as async_redact_data
3
+ from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from typing import Any
6
+
7
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: BackupConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,13 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import BackupDataUpdateCoordinator as BackupDataUpdateCoordinator
3
+ from _typeshed import Incomplete
4
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
5
+ from homeassistant.helpers.entity import EntityDescription as EntityDescription
6
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
+
8
+ class BackupManagerEntity(CoordinatorEntity[BackupDataUpdateCoordinator]):
9
+ _attr_has_entity_name: bool
10
+ entity_description: Incomplete
11
+ _attr_unique_id: Incomplete
12
+ _attr_device_info: Incomplete
13
+ def __init__(self, coordinator: BackupDataUpdateCoordinator, entity_description: EntityDescription) -> None: ...
@@ -7,6 +7,7 @@ from aiohttp.web import FileResponse, Request as Request, Response, StreamRespon
7
7
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView, KEY_HASS as KEY_HASS, require_admin as require_admin
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
+ from homeassistant.helpers import frame as frame
10
11
  from homeassistant.util import slugify as slugify
11
12
  from multidict import istr
12
13
 
@@ -4,7 +4,7 @@ import asyncio
4
4
  from .agent import BackupAgent as BackupAgent, BackupAgentError as BackupAgentError, BackupAgentPlatformProtocol as BackupAgentPlatformProtocol, LocalBackupAgent as LocalBackupAgent
5
5
  from .config import BackupConfig as BackupConfig, CreateBackupParametersDict as CreateBackupParametersDict, check_unavailable_agents as check_unavailable_agents, delete_backups_exceeding_configured_count as delete_backups_exceeding_configured_count
6
6
  from .const import BUF_SIZE as BUF_SIZE, DATA_MANAGER as DATA_MANAGER, DOMAIN as DOMAIN, EXCLUDE_DATABASE_FROM_BACKUP as EXCLUDE_DATABASE_FROM_BACKUP, EXCLUDE_FROM_BACKUP as EXCLUDE_FROM_BACKUP, LOGGER as LOGGER
7
- from .models import AgentBackup as AgentBackup, BackupError as BackupError, BackupManagerError as BackupManagerError, BackupReaderWriterError as BackupReaderWriterError, BaseBackup as BaseBackup, Folder as Folder
7
+ from .models import AgentBackup as AgentBackup, BackupError as BackupError, BackupManagerError as BackupManagerError, BackupNotFound as BackupNotFound, BackupReaderWriterError as BackupReaderWriterError, BaseBackup as BaseBackup, Folder as Folder
8
8
  from .store import BackupStore as BackupStore
9
9
  from .util import AsyncIteratorReader as AsyncIteratorReader, DecryptedBackupStreamer as DecryptedBackupStreamer, EncryptedBackupStreamer as EncryptedBackupStreamer, make_backup_dir as make_backup_dir, read_backup as read_backup, validate_password as validate_password, validate_password_stream as validate_password_stream
10
10
  from _typeshed import Incomplete
@@ -13,7 +13,7 @@ from dataclasses import dataclass
13
13
  from enum import StrEnum
14
14
  from homeassistant.backup_restore import RESTORE_BACKUP_FILE as RESTORE_BACKUP_FILE, RESTORE_BACKUP_RESULT_FILE as RESTORE_BACKUP_RESULT_FILE, password_to_key as password_to_key
15
15
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
16
- from homeassistant.helpers import instance_id as instance_id, integration_platform as integration_platform, start as start
16
+ from homeassistant.helpers import frame as frame, instance_id as instance_id, integration_platform as integration_platform, start as start
17
17
  from homeassistant.helpers.backup import DATA_BACKUP as DATA_BACKUP
18
18
  from homeassistant.helpers.json import json_bytes as json_bytes
19
19
  from pathlib import Path
@@ -118,6 +118,10 @@ class RestoreBackupEvent(ManagerStateEvent):
118
118
  stage: RestoreBackupStage | None
119
119
  state: RestoreBackupState
120
120
 
121
+ @dataclass(frozen=True, kw_only=True, slots=True)
122
+ class BackupPlatformEvent:
123
+ domain: str
124
+
121
125
  @dataclass(frozen=True, kw_only=True, slots=True)
122
126
  class BlockedEvent(ManagerStateEvent):
123
127
  manager_state: BackupManagerState = ...
@@ -164,8 +168,9 @@ class BackupManager:
164
168
  remove_next_backup_event: Callable[[], None] | None
165
169
  remove_next_delete_event: Callable[[], None] | None
166
170
  last_event: ManagerStateEvent
167
- last_non_idle_event: ManagerStateEvent | None
171
+ last_action_event: ManagerStateEvent | None
168
172
  _backup_event_subscriptions: Incomplete
173
+ _backup_platform_event_subscriptions: Incomplete
169
174
  def __init__(self, hass: HomeAssistant, reader_writer: BackupReaderWriter) -> None: ...
170
175
  async def async_setup(self) -> None: ...
171
176
  @property
@@ -0,0 +1,23 @@
1
+ from .coordinator import BackupConfigEntry as BackupConfigEntry, BackupCoordinatorData as BackupCoordinatorData
2
+ from .entity import BackupManagerEntity as BackupManagerEntity
3
+ from .manager import BackupManagerState as BackupManagerState
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from dataclasses import dataclass
7
+ from datetime import datetime
8
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+
12
+ @dataclass(kw_only=True, frozen=True)
13
+ class BackupSensorEntityDescription(SensorEntityDescription):
14
+ value_fn: Callable[[BackupCoordinatorData], str | datetime | None]
15
+
16
+ BACKUP_MANAGER_DESCRIPTIONS: Incomplete
17
+
18
+ async def async_setup_entry(hass: HomeAssistant, config_entry: BackupConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
19
+
20
+ class BackupManagerSensor(BackupManagerEntity, SensorEntity):
21
+ entity_description: BackupSensorEntityDescription
22
+ @property
23
+ def native_value(self) -> str | datetime | None: ...
@@ -0,0 +1,12 @@
1
+ from .const import CONF_INSTALLER_CODE as CONF_INSTALLER_CODE, CONF_USER_CODE as CONF_USER_CODE, DOMAIN as DOMAIN
2
+ from bosch_alarm_mode2 import Panel
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, Platform as Platform
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
7
+
8
+ PLATFORMS: list[Platform]
9
+ type BoschAlarmConfigEntry = ConfigEntry[Panel]
10
+
11
+ async def async_setup_entry(hass: HomeAssistant, entry: BoschAlarmConfigEntry) -> bool: ...
12
+ async def async_unload_entry(hass: HomeAssistant, entry: BoschAlarmConfigEntry) -> bool: ...
@@ -0,0 +1,31 @@
1
+ from . import BoschAlarmConfigEntry as BoschAlarmConfigEntry
2
+ from .const import DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from bosch_alarm_mode2 import Panel as Panel
5
+ from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity as AlarmControlPanelEntity, AlarmControlPanelEntityFeature as AlarmControlPanelEntityFeature, AlarmControlPanelState as AlarmControlPanelState
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
+
10
+ async def async_setup_entry(hass: HomeAssistant, config_entry: BoschAlarmConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
11
+
12
+ class AreaAlarmControlPanel(AlarmControlPanelEntity):
13
+ _attr_has_entity_name: bool
14
+ _attr_supported_features: Incomplete
15
+ _attr_code_arm_required: bool
16
+ _attr_name: Incomplete
17
+ panel: Incomplete
18
+ _area: Incomplete
19
+ _area_id: Incomplete
20
+ _attr_unique_id: Incomplete
21
+ _attr_device_info: Incomplete
22
+ def __init__(self, panel: Panel, area_id: int, unique_id: str) -> None: ...
23
+ @property
24
+ def alarm_state(self) -> AlarmControlPanelState | None: ...
25
+ async def async_alarm_disarm(self, code: str | None = None) -> None: ...
26
+ async def async_alarm_arm_home(self, code: str | None = None) -> None: ...
27
+ async def async_alarm_arm_away(self, code: str | None = None) -> None: ...
28
+ @property
29
+ def available(self) -> bool: ...
30
+ async def async_added_to_hass(self) -> None: ...
31
+ async def async_will_remove_from_hass(self) -> None: ...
@@ -0,0 +1,20 @@
1
+ from .const import CONF_INSTALLER_CODE as CONF_INSTALLER_CODE, CONF_USER_CODE as CONF_USER_CODE, DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
+ from homeassistant.const import CONF_CODE as CONF_CODE, CONF_HOST as CONF_HOST, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT
5
+ from typing import Any
6
+
7
+ _LOGGER: Incomplete
8
+ STEP_USER_DATA_SCHEMA: Incomplete
9
+ STEP_AUTH_DATA_SCHEMA_SOLUTION: Incomplete
10
+ STEP_AUTH_DATA_SCHEMA_AMAX: Incomplete
11
+ STEP_AUTH_DATA_SCHEMA_BG: Incomplete
12
+ STEP_INIT_DATA_SCHEMA: Incomplete
13
+
14
+ async def try_connect(data: dict[str, Any], load_selector: int = 0) -> tuple[str, int | None]: ...
15
+
16
+ class BoschAlarmConfigFlow(ConfigFlow, domain=DOMAIN):
17
+ _data: dict[str, Any]
18
+ def __init__(self) -> None: ...
19
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
20
+ async def async_step_auth(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,4 @@
1
+ DOMAIN: str
2
+ HISTORY_ATTR: str
3
+ CONF_INSTALLER_CODE: str
4
+ CONF_USER_CODE: str
@@ -1,5 +1,10 @@
1
1
  from .coordinator import BringConfigEntry as BringConfigEntry
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components.diagnostics import async_redact_data as async_redact_data
4
+ from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_NAME as CONF_NAME
2
5
  from homeassistant.core import HomeAssistant as HomeAssistant
3
6
  from typing import Any
4
7
 
8
+ TO_REDACT: Incomplete
9
+
5
10
  async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: BringConfigEntry) -> dict[str, Any]: ...
@@ -1,3 +1,4 @@
1
+ from .const import DOMAIN as DOMAIN
1
2
  from .coordinator import BrotherConfigEntry as BrotherConfigEntry, BrotherDataUpdateCoordinator as BrotherDataUpdateCoordinator
2
3
  from _typeshed import Incomplete
3
4
  from homeassistant.components.snmp import async_get_snmp_engine as async_get_snmp_engine
@@ -11,5 +11,6 @@ type BrotherConfigEntry = ConfigEntry[BrotherDataUpdateCoordinator]
11
11
  class BrotherDataUpdateCoordinator(DataUpdateCoordinator[BrotherSensors]):
12
12
  config_entry: BrotherConfigEntry
13
13
  brother: Incomplete
14
+ device_name: Incomplete
14
15
  def __init__(self, hass: HomeAssistant, config_entry: BrotherConfigEntry, brother: Brother) -> None: ...
15
16
  async def _async_update_data(self) -> BrotherSensors: ...
@@ -4,7 +4,7 @@ from _typeshed import Incomplete
4
4
  from collections.abc import AsyncIterator, Callable as Callable, Coroutine
5
5
  from hass_nabucasa import Cloud as Cloud
6
6
  from hass_nabucasa.cloud_api import FilesHandlerListEntry as FilesHandlerListEntry
7
- from homeassistant.components.backup import AgentBackup as AgentBackup, BackupAgent as BackupAgent, BackupAgentError as BackupAgentError
7
+ from homeassistant.components.backup import AgentBackup as AgentBackup, BackupAgent as BackupAgent, BackupAgentError as BackupAgentError, BackupNotFound as BackupNotFound
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.aiohttp_client import ChunkAsyncStreamIterator as ChunkAsyncStreamIterator
10
10
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
@@ -31,5 +31,5 @@ class CloudBackupAgent(BackupAgent):
31
31
  async def async_delete_backup(self, backup_id: str, **kwargs: Any) -> None: ...
32
32
  async def async_list_backups(self, **kwargs: Any) -> list[AgentBackup]: ...
33
33
  async def _async_list_backups(self) -> list[FilesHandlerListEntry]: ...
34
- async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup | None: ...
35
- async def _async_get_backup(self, backup_id: str) -> FilesHandlerListEntry | None: ...
34
+ async def async_get_backup(self, backup_id: str, **kwargs: Any) -> AgentBackup: ...
35
+ async def _async_get_backup(self, backup_id: str) -> FilesHandlerListEntry: ...
@@ -45,15 +45,17 @@ class CloudLoginView(HomeAssistantView):
45
45
  url: str
46
46
  name: str
47
47
  @require_admin
48
+ async def post(self, request: web.Request) -> web.Response: ...
48
49
  @_handle_cloud_errors
49
- async def post(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
50
+ async def _post(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
50
51
 
51
52
  class CloudLogoutView(HomeAssistantView):
52
53
  url: str
53
54
  name: str
54
55
  @require_admin
55
- @_handle_cloud_errors
56
56
  async def post(self, request: web.Request) -> web.Response: ...
57
+ @_handle_cloud_errors
58
+ async def _post(self, request: web.Request) -> web.Response: ...
57
59
 
58
60
  class CloudRegisterView(HomeAssistantView):
59
61
  url: str
@@ -73,8 +75,9 @@ class CloudForgotPasswordView(HomeAssistantView):
73
75
  url: str
74
76
  name: str
75
77
  @require_admin
78
+ async def post(self, request: web.Request) -> web.Response: ...
76
79
  @_handle_cloud_errors
77
- async def post(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
80
+ async def _post(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
78
81
 
79
82
  class DownloadSupportPackageView(HomeAssistantView):
80
83
  url: str
@@ -38,7 +38,7 @@ class CloudTTSEntity(TextToSpeechEntity):
38
38
  @property
39
39
  def default_language(self) -> str: ...
40
40
  @property
41
- def default_options(self) -> dict[str, Any]: ...
41
+ def default_options(self) -> dict[str, str]: ...
42
42
  @property
43
43
  def supported_languages(self) -> list[str]: ...
44
44
  @property
@@ -62,7 +62,7 @@ class CloudProvider(Provider):
62
62
  @callback
63
63
  def async_get_supported_voices(self, language: str) -> list[Voice] | None: ...
64
64
  @property
65
- def default_options(self) -> dict[str, Any]: ...
65
+ def default_options(self) -> dict[str, str]: ...
66
66
  async def async_get_tts_audio(self, message: str, language: str, options: dict[str, Any]) -> TtsAudioType: ...
67
67
 
68
68
  @callback
@@ -0,0 +1,11 @@
1
+ from .const import DEFAULT_PORT as DEFAULT_PORT
2
+ from .coordinator import ComelitBaseCoordinator as ComelitBaseCoordinator, ComelitConfigEntry as ComelitConfigEntry, ComelitSerialBridge as ComelitSerialBridge, ComelitVedoSystem as ComelitVedoSystem
3
+ from _typeshed import Incomplete
4
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PIN as CONF_PIN, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE, Platform as Platform
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+
7
+ BRIDGE_PLATFORMS: Incomplete
8
+ VEDO_PLATFORMS: Incomplete
9
+
10
+ async def async_setup_entry(hass: HomeAssistant, entry: ComelitConfigEntry) -> bool: ...
11
+ async def async_unload_entry(hass: HomeAssistant, entry: ComelitConfigEntry) -> bool: ...