@matter/types 0.13.0-alpha.0-20250304-d4a7592a4 → 0.13.0-alpha.0-20250307-ebf84a05a

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 (807) hide show
  1. package/dist/cjs/clusters/access-control.d.ts +3972 -522
  2. package/dist/cjs/clusters/access-control.d.ts.map +1 -1
  3. package/dist/cjs/clusters/access-control.js +640 -116
  4. package/dist/cjs/clusters/access-control.js.map +2 -2
  5. package/dist/cjs/clusters/actions.d.ts +10 -9
  6. package/dist/cjs/clusters/actions.d.ts.map +1 -1
  7. package/dist/cjs/clusters/actions.js +4 -4
  8. package/dist/cjs/clusters/actions.js.map +1 -1
  9. package/dist/cjs/clusters/administrator-commissioning.d.ts +156 -129
  10. package/dist/cjs/clusters/administrator-commissioning.d.ts.map +1 -1
  11. package/dist/cjs/clusters/administrator-commissioning.js +40 -35
  12. package/dist/cjs/clusters/administrator-commissioning.js.map +1 -1
  13. package/dist/cjs/clusters/alarm-base.d.ts +9 -12
  14. package/dist/cjs/clusters/alarm-base.d.ts.map +1 -1
  15. package/dist/cjs/clusters/alarm-base.js +3 -4
  16. package/dist/cjs/clusters/alarm-base.js.map +1 -1
  17. package/dist/cjs/clusters/application-launcher.d.ts +27 -15
  18. package/dist/cjs/clusters/application-launcher.d.ts.map +1 -1
  19. package/dist/cjs/clusters/application-launcher.js +7 -4
  20. package/dist/cjs/clusters/application-launcher.js.map +1 -1
  21. package/dist/cjs/clusters/ballast-configuration.d.ts +7 -7
  22. package/dist/cjs/clusters/ballast-configuration.js +7 -7
  23. package/dist/cjs/clusters/basic-information.d.ts +29 -21
  24. package/dist/cjs/clusters/basic-information.d.ts.map +1 -1
  25. package/dist/cjs/clusters/basic-information.js +29 -21
  26. package/dist/cjs/clusters/basic-information.js.map +1 -1
  27. package/dist/cjs/clusters/bridged-device-basic-information.d.ts +816 -34
  28. package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
  29. package/dist/cjs/clusters/bridged-device-basic-information.js +182 -29
  30. package/dist/cjs/clusters/bridged-device-basic-information.js.map +2 -2
  31. package/dist/cjs/clusters/channel.d.ts +115 -124
  32. package/dist/cjs/clusters/channel.d.ts.map +1 -1
  33. package/dist/cjs/clusters/channel.js +15 -16
  34. package/dist/cjs/clusters/channel.js.map +1 -1
  35. package/dist/cjs/clusters/color-control.d.ts +3076 -1366
  36. package/dist/cjs/clusters/color-control.d.ts.map +1 -1
  37. package/dist/cjs/clusters/color-control.js +423 -357
  38. package/dist/cjs/clusters/color-control.js.map +2 -2
  39. package/dist/cjs/clusters/commissioner-control.d.ts +268 -0
  40. package/dist/cjs/clusters/commissioner-control.d.ts.map +1 -0
  41. package/dist/cjs/clusters/commissioner-control.js +194 -0
  42. package/dist/cjs/clusters/commissioner-control.js.map +6 -0
  43. package/dist/cjs/clusters/content-control.d.ts +497 -221
  44. package/dist/cjs/clusters/content-control.d.ts.map +1 -1
  45. package/dist/cjs/clusters/content-control.js +59 -41
  46. package/dist/cjs/clusters/content-control.js.map +2 -2
  47. package/dist/cjs/clusters/content-launcher.d.ts +248 -215
  48. package/dist/cjs/clusters/content-launcher.d.ts.map +1 -1
  49. package/dist/cjs/clusters/content-launcher.js +16 -15
  50. package/dist/cjs/clusters/content-launcher.js.map +1 -1
  51. package/dist/cjs/clusters/device-energy-management-mode.d.ts +76 -333
  52. package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
  53. package/dist/cjs/clusters/device-energy-management-mode.js +26 -73
  54. package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
  55. package/dist/cjs/clusters/device-energy-management.d.ts +1299 -930
  56. package/dist/cjs/clusters/device-energy-management.d.ts.map +1 -1
  57. package/dist/cjs/clusters/device-energy-management.js +189 -160
  58. package/dist/cjs/clusters/device-energy-management.js.map +2 -2
  59. package/dist/cjs/clusters/dishwasher-alarm.d.ts +14 -17
  60. package/dist/cjs/clusters/dishwasher-alarm.d.ts.map +1 -1
  61. package/dist/cjs/clusters/dishwasher-alarm.js +3 -4
  62. package/dist/cjs/clusters/dishwasher-alarm.js.map +1 -1
  63. package/dist/cjs/clusters/dishwasher-mode.d.ts +65 -105
  64. package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
  65. package/dist/cjs/clusters/dishwasher-mode.js +12 -24
  66. package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
  67. package/dist/cjs/clusters/door-lock.d.ts +2751 -5427
  68. package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
  69. package/dist/cjs/clusters/door-lock.js +480 -802
  70. package/dist/cjs/clusters/door-lock.js.map +2 -2
  71. package/dist/cjs/clusters/ecosystem-information.d.ts +186 -0
  72. package/dist/cjs/clusters/ecosystem-information.d.ts.map +1 -0
  73. package/dist/cjs/clusters/ecosystem-information.js +154 -0
  74. package/dist/cjs/clusters/ecosystem-information.js.map +6 -0
  75. package/dist/cjs/clusters/electrical-energy-measurement.d.ts +363 -368
  76. package/dist/cjs/clusters/electrical-energy-measurement.d.ts.map +1 -1
  77. package/dist/cjs/clusters/electrical-energy-measurement.js +15 -16
  78. package/dist/cjs/clusters/electrical-energy-measurement.js.map +1 -1
  79. package/dist/cjs/clusters/energy-evse-mode.d.ts +92 -330
  80. package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
  81. package/dist/cjs/clusters/energy-evse-mode.js +25 -72
  82. package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
  83. package/dist/cjs/clusters/energy-evse.d.ts +557 -273
  84. package/dist/cjs/clusters/energy-evse.d.ts.map +1 -1
  85. package/dist/cjs/clusters/energy-evse.js +107 -55
  86. package/dist/cjs/clusters/energy-evse.js.map +1 -1
  87. package/dist/cjs/clusters/energy-preference.d.ts +76 -76
  88. package/dist/cjs/clusters/energy-preference.d.ts.map +1 -1
  89. package/dist/cjs/clusters/energy-preference.js +15 -18
  90. package/dist/cjs/clusters/energy-preference.js.map +1 -1
  91. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts +3 -9
  92. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  93. package/dist/cjs/clusters/ethernet-network-diagnostics.js +1 -3
  94. package/dist/cjs/clusters/ethernet-network-diagnostics.js.map +1 -1
  95. package/dist/cjs/clusters/fan-control.d.ts +12 -12
  96. package/dist/cjs/clusters/fan-control.js +4 -4
  97. package/dist/cjs/clusters/fixed-label.d.ts +7 -2
  98. package/dist/cjs/clusters/fixed-label.d.ts.map +1 -1
  99. package/dist/cjs/clusters/fixed-label.js.map +1 -1
  100. package/dist/cjs/clusters/flow-measurement.d.ts +4 -4
  101. package/dist/cjs/clusters/flow-measurement.d.ts.map +1 -1
  102. package/dist/cjs/clusters/flow-measurement.js +6 -6
  103. package/dist/cjs/clusters/flow-measurement.js.map +1 -1
  104. package/dist/cjs/clusters/general-commissioning.d.ts +1416 -111
  105. package/dist/cjs/clusters/general-commissioning.d.ts.map +1 -1
  106. package/dist/cjs/clusters/general-commissioning.js +272 -54
  107. package/dist/cjs/clusters/general-commissioning.js.map +2 -2
  108. package/dist/cjs/clusters/general-diagnostics.d.ts +115 -122
  109. package/dist/cjs/clusters/general-diagnostics.d.ts.map +1 -1
  110. package/dist/cjs/clusters/general-diagnostics.js +31 -33
  111. package/dist/cjs/clusters/general-diagnostics.js.map +1 -1
  112. package/dist/cjs/clusters/group-key-management.d.ts +72 -82
  113. package/dist/cjs/clusters/group-key-management.d.ts.map +1 -1
  114. package/dist/cjs/clusters/group-key-management.js +19 -22
  115. package/dist/cjs/clusters/group-key-management.js.map +1 -1
  116. package/dist/cjs/clusters/groups.d.ts +9 -6
  117. package/dist/cjs/clusters/groups.d.ts.map +1 -1
  118. package/dist/cjs/clusters/groups.js +3 -2
  119. package/dist/cjs/clusters/groups.js.map +1 -1
  120. package/dist/cjs/clusters/icd-management.d.ts +223 -66
  121. package/dist/cjs/clusters/icd-management.d.ts.map +1 -1
  122. package/dist/cjs/clusters/icd-management.js +61 -23
  123. package/dist/cjs/clusters/icd-management.js.map +2 -2
  124. package/dist/cjs/clusters/identify.d.ts +12 -13
  125. package/dist/cjs/clusters/identify.d.ts.map +1 -1
  126. package/dist/cjs/clusters/identify.js +9 -10
  127. package/dist/cjs/clusters/identify.js.map +1 -1
  128. package/dist/cjs/clusters/illuminance-measurement.d.ts +7 -8
  129. package/dist/cjs/clusters/illuminance-measurement.d.ts.map +1 -1
  130. package/dist/cjs/clusters/illuminance-measurement.js +9 -10
  131. package/dist/cjs/clusters/illuminance-measurement.js.map +1 -1
  132. package/dist/cjs/clusters/index.d.ts +11 -1
  133. package/dist/cjs/clusters/index.d.ts.map +1 -1
  134. package/dist/cjs/clusters/index.js +33 -3
  135. package/dist/cjs/clusters/index.js.map +1 -1
  136. package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
  137. package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
  138. package/dist/cjs/clusters/joint-fabric-datastore-cluster.js +490 -0
  139. package/dist/cjs/clusters/joint-fabric-datastore-cluster.js.map +6 -0
  140. package/dist/cjs/clusters/joint-fabric-pki.d.ts +174 -0
  141. package/dist/cjs/clusters/joint-fabric-pki.d.ts.map +1 -0
  142. package/dist/cjs/clusters/joint-fabric-pki.js +120 -0
  143. package/dist/cjs/clusters/joint-fabric-pki.js.map +6 -0
  144. package/dist/cjs/clusters/keypad-input.d.ts +2 -2
  145. package/dist/cjs/clusters/laundry-dryer-controls.d.ts +6 -7
  146. package/dist/cjs/clusters/laundry-dryer-controls.d.ts.map +1 -1
  147. package/dist/cjs/clusters/laundry-dryer-controls.js +5 -9
  148. package/dist/cjs/clusters/laundry-dryer-controls.js.map +1 -1
  149. package/dist/cjs/clusters/laundry-washer-controls.d.ts +74 -62
  150. package/dist/cjs/clusters/laundry-washer-controls.d.ts.map +1 -1
  151. package/dist/cjs/clusters/laundry-washer-controls.js +26 -25
  152. package/dist/cjs/clusters/laundry-washer-controls.js.map +1 -1
  153. package/dist/cjs/clusters/laundry-washer-mode.d.ts +69 -109
  154. package/dist/cjs/clusters/laundry-washer-mode.d.ts.map +1 -1
  155. package/dist/cjs/clusters/laundry-washer-mode.js +13 -25
  156. package/dist/cjs/clusters/laundry-washer-mode.js.map +1 -1
  157. package/dist/cjs/clusters/level-control.d.ts +209 -70
  158. package/dist/cjs/clusters/level-control.d.ts.map +1 -1
  159. package/dist/cjs/clusters/level-control.js +45 -12
  160. package/dist/cjs/clusters/level-control.js.map +1 -1
  161. package/dist/cjs/clusters/localization-configuration.d.ts +5 -6
  162. package/dist/cjs/clusters/localization-configuration.d.ts.map +1 -1
  163. package/dist/cjs/clusters/localization-configuration.js +5 -6
  164. package/dist/cjs/clusters/localization-configuration.js.map +1 -1
  165. package/dist/cjs/clusters/media-input.d.ts +9 -6
  166. package/dist/cjs/clusters/media-input.d.ts.map +1 -1
  167. package/dist/cjs/clusters/media-input.js +3 -2
  168. package/dist/cjs/clusters/media-input.js.map +1 -1
  169. package/dist/cjs/clusters/media-playback.d.ts +29 -24
  170. package/dist/cjs/clusters/media-playback.d.ts.map +1 -1
  171. package/dist/cjs/clusters/media-playback.js +5 -4
  172. package/dist/cjs/clusters/media-playback.js.map +1 -1
  173. package/dist/cjs/clusters/microwave-oven-control.d.ts +54 -48
  174. package/dist/cjs/clusters/microwave-oven-control.d.ts.map +1 -1
  175. package/dist/cjs/clusters/microwave-oven-control.js +19 -17
  176. package/dist/cjs/clusters/microwave-oven-control.js.map +1 -1
  177. package/dist/cjs/clusters/microwave-oven-mode.d.ts +63 -69
  178. package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
  179. package/dist/cjs/clusters/microwave-oven-mode.js +14 -11
  180. package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
  181. package/dist/cjs/clusters/mode-base.d.ts +27 -46
  182. package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
  183. package/dist/cjs/clusters/mode-base.js +9 -10
  184. package/dist/cjs/clusters/mode-base.js.map +1 -1
  185. package/dist/cjs/clusters/mode-select.d.ts +33 -27
  186. package/dist/cjs/clusters/mode-select.d.ts.map +1 -1
  187. package/dist/cjs/clusters/mode-select.js +14 -13
  188. package/dist/cjs/clusters/mode-select.js.map +1 -1
  189. package/dist/cjs/clusters/network-commissioning.d.ts +263 -240
  190. package/dist/cjs/clusters/network-commissioning.d.ts.map +1 -1
  191. package/dist/cjs/clusters/network-commissioning.js +46 -39
  192. package/dist/cjs/clusters/network-commissioning.js.map +1 -1
  193. package/dist/cjs/clusters/occupancy-sensing.d.ts +1002 -63
  194. package/dist/cjs/clusters/occupancy-sensing.d.ts.map +1 -1
  195. package/dist/cjs/clusters/occupancy-sensing.js +278 -63
  196. package/dist/cjs/clusters/occupancy-sensing.js.map +2 -2
  197. package/dist/cjs/clusters/on-off.d.ts +18 -24
  198. package/dist/cjs/clusters/on-off.d.ts.map +1 -1
  199. package/dist/cjs/clusters/on-off.js +3 -4
  200. package/dist/cjs/clusters/on-off.js.map +1 -1
  201. package/dist/cjs/clusters/operational-credentials.d.ts +98 -85
  202. package/dist/cjs/clusters/operational-credentials.d.ts.map +1 -1
  203. package/dist/cjs/clusters/operational-credentials.js +56 -49
  204. package/dist/cjs/clusters/operational-credentials.js.map +1 -1
  205. package/dist/cjs/clusters/operational-state.d.ts +136 -57
  206. package/dist/cjs/clusters/operational-state.d.ts.map +1 -1
  207. package/dist/cjs/clusters/operational-state.js +62 -36
  208. package/dist/cjs/clusters/operational-state.js.map +2 -2
  209. package/dist/cjs/clusters/ota-software-update-provider.d.ts +43 -42
  210. package/dist/cjs/clusters/ota-software-update-provider.d.ts.map +1 -1
  211. package/dist/cjs/clusters/ota-software-update-provider.js +20 -19
  212. package/dist/cjs/clusters/ota-software-update-provider.js.map +1 -1
  213. package/dist/cjs/clusters/ota-software-update-requestor.d.ts +6 -10
  214. package/dist/cjs/clusters/ota-software-update-requestor.d.ts.map +1 -1
  215. package/dist/cjs/clusters/ota-software-update-requestor.js +4 -6
  216. package/dist/cjs/clusters/ota-software-update-requestor.js.map +1 -1
  217. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts +44 -154
  218. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts.map +1 -1
  219. package/dist/cjs/clusters/oven-cavity-operational-state.js +39 -156
  220. package/dist/cjs/clusters/oven-cavity-operational-state.js.map +1 -1
  221. package/dist/cjs/clusters/oven-mode.d.ts +79 -349
  222. package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
  223. package/dist/cjs/clusters/oven-mode.js +26 -82
  224. package/dist/cjs/clusters/oven-mode.js.map +1 -1
  225. package/dist/cjs/clusters/power-source.d.ts +169 -44
  226. package/dist/cjs/clusters/power-source.d.ts.map +1 -1
  227. package/dist/cjs/clusters/power-source.js +40 -16
  228. package/dist/cjs/clusters/power-source.js.map +1 -1
  229. package/dist/cjs/clusters/pressure-measurement.js +2 -2
  230. package/dist/cjs/clusters/pressure-measurement.js.map +1 -1
  231. package/dist/cjs/clusters/pump-configuration-and-control.d.ts +73 -63
  232. package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
  233. package/dist/cjs/clusters/pump-configuration-and-control.js +19 -20
  234. package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
  235. package/dist/cjs/clusters/refrigerator-alarm.d.ts +2 -1
  236. package/dist/cjs/clusters/refrigerator-alarm.d.ts.map +1 -1
  237. package/dist/cjs/clusters/refrigerator-alarm.js.map +1 -1
  238. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
  239. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  240. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +11 -19
  241. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  242. package/dist/cjs/clusters/relative-humidity-measurement.js +1 -1
  243. package/dist/cjs/clusters/relative-humidity-measurement.js.map +1 -1
  244. package/dist/cjs/clusters/rvc-clean-mode.d.ts +59 -103
  245. package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
  246. package/dist/cjs/clusters/rvc-clean-mode.js +11 -15
  247. package/dist/cjs/clusters/rvc-clean-mode.js.map +1 -1
  248. package/dist/cjs/clusters/rvc-operational-state.d.ts +81 -25
  249. package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
  250. package/dist/cjs/clusters/rvc-operational-state.js +49 -20
  251. package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
  252. package/dist/cjs/clusters/rvc-run-mode.d.ts +85 -129
  253. package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
  254. package/dist/cjs/clusters/rvc-run-mode.js +16 -15
  255. package/dist/cjs/clusters/rvc-run-mode.js.map +1 -1
  256. package/dist/cjs/clusters/scenes-management.d.ts +328 -181
  257. package/dist/cjs/clusters/scenes-management.d.ts.map +1 -1
  258. package/dist/cjs/clusters/scenes-management.js +37 -22
  259. package/dist/cjs/clusters/scenes-management.js.map +1 -1
  260. package/dist/cjs/clusters/service-area.d.ts +2052 -0
  261. package/dist/cjs/clusters/service-area.d.ts.map +1 -0
  262. package/dist/cjs/clusters/service-area.js +582 -0
  263. package/dist/cjs/clusters/service-area.js.map +6 -0
  264. package/dist/cjs/clusters/smoke-co-alarm.d.ts +10 -18
  265. package/dist/cjs/clusters/smoke-co-alarm.d.ts.map +1 -1
  266. package/dist/cjs/clusters/smoke-co-alarm.js +2 -3
  267. package/dist/cjs/clusters/smoke-co-alarm.js.map +1 -1
  268. package/dist/cjs/clusters/switch.d.ts +478 -191
  269. package/dist/cjs/clusters/switch.d.ts.map +1 -1
  270. package/dist/cjs/clusters/switch.js +145 -57
  271. package/dist/cjs/clusters/switch.js.map +1 -1
  272. package/dist/cjs/clusters/target-navigator.d.ts +1 -1
  273. package/dist/cjs/clusters/target-navigator.js +1 -1
  274. package/dist/cjs/clusters/thermostat.d.ts +3877 -830
  275. package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
  276. package/dist/cjs/clusters/thermostat.js +841 -159
  277. package/dist/cjs/clusters/thermostat.js.map +2 -2
  278. package/dist/cjs/clusters/thread-border-router-management.d.ts +711 -0
  279. package/dist/cjs/clusters/thread-border-router-management.d.ts.map +1 -0
  280. package/dist/cjs/clusters/thread-border-router-management.js +265 -0
  281. package/dist/cjs/clusters/thread-border-router-management.js.map +6 -0
  282. package/dist/cjs/clusters/thread-network-diagnostics.d.ts +81 -55
  283. package/dist/cjs/clusters/thread-network-diagnostics.d.ts.map +1 -1
  284. package/dist/cjs/clusters/thread-network-diagnostics.js +32 -21
  285. package/dist/cjs/clusters/thread-network-diagnostics.js.map +1 -1
  286. package/dist/cjs/clusters/thread-network-directory.d.ts +250 -0
  287. package/dist/cjs/clusters/thread-network-directory.d.ts.map +1 -0
  288. package/dist/cjs/clusters/thread-network-directory.js +187 -0
  289. package/dist/cjs/clusters/thread-network-directory.js.map +6 -0
  290. package/dist/cjs/clusters/time-synchronization.d.ts +101 -76
  291. package/dist/cjs/clusters/time-synchronization.d.ts.map +1 -1
  292. package/dist/cjs/clusters/time-synchronization.js +30 -23
  293. package/dist/cjs/clusters/time-synchronization.js.map +1 -1
  294. package/dist/cjs/clusters/unit-localization.d.ts +3 -4
  295. package/dist/cjs/clusters/unit-localization.d.ts.map +1 -1
  296. package/dist/cjs/clusters/unit-localization.js.map +1 -1
  297. package/dist/cjs/clusters/user-label.d.ts +2 -1
  298. package/dist/cjs/clusters/user-label.d.ts.map +1 -1
  299. package/dist/cjs/clusters/user-label.js.map +1 -1
  300. package/dist/cjs/clusters/water-heater-management.d.ts +1371 -0
  301. package/dist/cjs/clusters/water-heater-management.d.ts.map +1 -0
  302. package/dist/cjs/clusters/water-heater-management.js +336 -0
  303. package/dist/cjs/clusters/water-heater-management.js.map +6 -0
  304. package/dist/cjs/clusters/water-heater-mode.d.ts +491 -0
  305. package/dist/cjs/clusters/water-heater-mode.d.ts.map +1 -0
  306. package/dist/cjs/clusters/water-heater-mode.js +195 -0
  307. package/dist/cjs/clusters/water-heater-mode.js.map +6 -0
  308. package/dist/cjs/clusters/water-tank-level-monitoring.d.ts +162 -0
  309. package/dist/cjs/clusters/water-tank-level-monitoring.d.ts.map +1 -0
  310. package/dist/cjs/clusters/water-tank-level-monitoring.js +47 -0
  311. package/dist/cjs/clusters/water-tank-level-monitoring.js.map +6 -0
  312. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts +20 -27
  313. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  314. package/dist/cjs/clusters/wi-fi-network-diagnostics.js +6 -8
  315. package/dist/cjs/clusters/wi-fi-network-diagnostics.js.map +1 -1
  316. package/dist/cjs/clusters/wi-fi-network-management.d.ts +91 -0
  317. package/dist/cjs/clusters/wi-fi-network-management.d.ts.map +1 -0
  318. package/dist/cjs/clusters/wi-fi-network-management.js +122 -0
  319. package/dist/cjs/clusters/wi-fi-network-management.js.map +6 -0
  320. package/dist/cjs/clusters/window-covering.d.ts +66 -78
  321. package/dist/cjs/clusters/window-covering.d.ts.map +1 -1
  322. package/dist/cjs/clusters/window-covering.js +26 -37
  323. package/dist/cjs/clusters/window-covering.js.map +1 -1
  324. package/dist/cjs/globals/AtomicAttributeStatus.d.ts +34 -0
  325. package/dist/cjs/globals/AtomicAttributeStatus.d.ts.map +1 -0
  326. package/dist/cjs/globals/AtomicAttributeStatus.js +46 -0
  327. package/dist/cjs/globals/AtomicAttributeStatus.js.map +6 -0
  328. package/dist/cjs/globals/AtomicRequestType.d.ts +24 -0
  329. package/dist/cjs/globals/AtomicRequestType.d.ts.map +1 -0
  330. package/dist/cjs/globals/AtomicRequestType.js +35 -0
  331. package/dist/cjs/globals/AtomicRequestType.js.map +6 -0
  332. package/dist/cjs/globals/Locationdesc.d.ts +79 -0
  333. package/dist/cjs/globals/Locationdesc.d.ts.map +1 -0
  334. package/dist/cjs/globals/Locationdesc.js +89 -0
  335. package/dist/cjs/globals/Locationdesc.js.map +6 -0
  336. package/dist/cjs/globals/Priority.d.ts +1 -1
  337. package/dist/cjs/globals/Semtag.d.ts +6 -6
  338. package/dist/cjs/globals/Semtag.js +4 -4
  339. package/dist/cjs/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  340. package/dist/cjs/globals/Status.d.ts +18 -3
  341. package/dist/cjs/globals/Status.d.ts.map +1 -1
  342. package/dist/cjs/globals/Status.js +3 -1
  343. package/dist/cjs/globals/Status.js.map +1 -1
  344. package/dist/cjs/globals/Tod.d.ts +2 -2
  345. package/dist/cjs/globals/index.d.ts +3 -0
  346. package/dist/cjs/globals/index.d.ts.map +1 -1
  347. package/dist/cjs/globals/index.js +3 -0
  348. package/dist/cjs/globals/index.js.map +1 -1
  349. package/dist/cjs/schema/QrCodeSchema.d.ts.map +1 -1
  350. package/dist/cjs/schema/QrCodeSchema.js +4 -1
  351. package/dist/cjs/schema/QrCodeSchema.js.map +1 -1
  352. package/dist/esm/clusters/access-control.d.ts +3972 -522
  353. package/dist/esm/clusters/access-control.d.ts.map +1 -1
  354. package/dist/esm/clusters/access-control.js +645 -120
  355. package/dist/esm/clusters/access-control.js.map +2 -2
  356. package/dist/esm/clusters/actions.d.ts +10 -9
  357. package/dist/esm/clusters/actions.d.ts.map +1 -1
  358. package/dist/esm/clusters/actions.js +4 -4
  359. package/dist/esm/clusters/actions.js.map +1 -1
  360. package/dist/esm/clusters/administrator-commissioning.d.ts +156 -129
  361. package/dist/esm/clusters/administrator-commissioning.d.ts.map +1 -1
  362. package/dist/esm/clusters/administrator-commissioning.js +40 -35
  363. package/dist/esm/clusters/administrator-commissioning.js.map +1 -1
  364. package/dist/esm/clusters/alarm-base.d.ts +9 -12
  365. package/dist/esm/clusters/alarm-base.d.ts.map +1 -1
  366. package/dist/esm/clusters/alarm-base.js +3 -4
  367. package/dist/esm/clusters/alarm-base.js.map +1 -1
  368. package/dist/esm/clusters/application-launcher.d.ts +27 -15
  369. package/dist/esm/clusters/application-launcher.d.ts.map +1 -1
  370. package/dist/esm/clusters/application-launcher.js +7 -4
  371. package/dist/esm/clusters/application-launcher.js.map +1 -1
  372. package/dist/esm/clusters/ballast-configuration.d.ts +7 -7
  373. package/dist/esm/clusters/ballast-configuration.js +7 -7
  374. package/dist/esm/clusters/basic-information.d.ts +29 -21
  375. package/dist/esm/clusters/basic-information.d.ts.map +1 -1
  376. package/dist/esm/clusters/basic-information.js +29 -21
  377. package/dist/esm/clusters/basic-information.js.map +1 -1
  378. package/dist/esm/clusters/bridged-device-basic-information.d.ts +816 -34
  379. package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
  380. package/dist/esm/clusters/bridged-device-basic-information.js +188 -32
  381. package/dist/esm/clusters/bridged-device-basic-information.js.map +2 -2
  382. package/dist/esm/clusters/channel.d.ts +115 -124
  383. package/dist/esm/clusters/channel.d.ts.map +1 -1
  384. package/dist/esm/clusters/channel.js +15 -16
  385. package/dist/esm/clusters/channel.js.map +1 -1
  386. package/dist/esm/clusters/color-control.d.ts +3076 -1366
  387. package/dist/esm/clusters/color-control.d.ts.map +1 -1
  388. package/dist/esm/clusters/color-control.js +424 -358
  389. package/dist/esm/clusters/color-control.js.map +2 -2
  390. package/dist/esm/clusters/commissioner-control.d.ts +268 -0
  391. package/dist/esm/clusters/commissioner-control.d.ts.map +1 -0
  392. package/dist/esm/clusters/commissioner-control.js +174 -0
  393. package/dist/esm/clusters/commissioner-control.js.map +6 -0
  394. package/dist/esm/clusters/content-control.d.ts +497 -221
  395. package/dist/esm/clusters/content-control.d.ts.map +1 -1
  396. package/dist/esm/clusters/content-control.js +60 -42
  397. package/dist/esm/clusters/content-control.js.map +2 -2
  398. package/dist/esm/clusters/content-launcher.d.ts +248 -215
  399. package/dist/esm/clusters/content-launcher.d.ts.map +1 -1
  400. package/dist/esm/clusters/content-launcher.js +16 -15
  401. package/dist/esm/clusters/content-launcher.js.map +1 -1
  402. package/dist/esm/clusters/device-energy-management-mode.d.ts +76 -333
  403. package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
  404. package/dist/esm/clusters/device-energy-management-mode.js +26 -80
  405. package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
  406. package/dist/esm/clusters/device-energy-management.d.ts +1299 -930
  407. package/dist/esm/clusters/device-energy-management.d.ts.map +1 -1
  408. package/dist/esm/clusters/device-energy-management.js +189 -160
  409. package/dist/esm/clusters/device-energy-management.js.map +2 -2
  410. package/dist/esm/clusters/dishwasher-alarm.d.ts +14 -17
  411. package/dist/esm/clusters/dishwasher-alarm.d.ts.map +1 -1
  412. package/dist/esm/clusters/dishwasher-alarm.js +3 -4
  413. package/dist/esm/clusters/dishwasher-alarm.js.map +1 -1
  414. package/dist/esm/clusters/dishwasher-mode.d.ts +65 -105
  415. package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
  416. package/dist/esm/clusters/dishwasher-mode.js +13 -25
  417. package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
  418. package/dist/esm/clusters/door-lock.d.ts +2751 -5427
  419. package/dist/esm/clusters/door-lock.d.ts.map +1 -1
  420. package/dist/esm/clusters/door-lock.js +482 -804
  421. package/dist/esm/clusters/door-lock.js.map +2 -2
  422. package/dist/esm/clusters/ecosystem-information.d.ts +186 -0
  423. package/dist/esm/clusters/ecosystem-information.d.ts.map +1 -0
  424. package/dist/esm/clusters/ecosystem-information.js +134 -0
  425. package/dist/esm/clusters/ecosystem-information.js.map +6 -0
  426. package/dist/esm/clusters/electrical-energy-measurement.d.ts +363 -368
  427. package/dist/esm/clusters/electrical-energy-measurement.d.ts.map +1 -1
  428. package/dist/esm/clusters/electrical-energy-measurement.js +15 -16
  429. package/dist/esm/clusters/electrical-energy-measurement.js.map +1 -1
  430. package/dist/esm/clusters/energy-evse-mode.d.ts +92 -330
  431. package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
  432. package/dist/esm/clusters/energy-evse-mode.js +25 -79
  433. package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
  434. package/dist/esm/clusters/energy-evse.d.ts +557 -273
  435. package/dist/esm/clusters/energy-evse.d.ts.map +1 -1
  436. package/dist/esm/clusters/energy-evse.js +107 -55
  437. package/dist/esm/clusters/energy-evse.js.map +1 -1
  438. package/dist/esm/clusters/energy-preference.d.ts +76 -76
  439. package/dist/esm/clusters/energy-preference.d.ts.map +1 -1
  440. package/dist/esm/clusters/energy-preference.js +15 -18
  441. package/dist/esm/clusters/energy-preference.js.map +1 -1
  442. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts +3 -9
  443. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  444. package/dist/esm/clusters/ethernet-network-diagnostics.js +1 -3
  445. package/dist/esm/clusters/ethernet-network-diagnostics.js.map +1 -1
  446. package/dist/esm/clusters/fan-control.d.ts +12 -12
  447. package/dist/esm/clusters/fan-control.js +4 -4
  448. package/dist/esm/clusters/fixed-label.d.ts +7 -2
  449. package/dist/esm/clusters/fixed-label.d.ts.map +1 -1
  450. package/dist/esm/clusters/fixed-label.js.map +1 -1
  451. package/dist/esm/clusters/flow-measurement.d.ts +4 -4
  452. package/dist/esm/clusters/flow-measurement.d.ts.map +1 -1
  453. package/dist/esm/clusters/flow-measurement.js +6 -6
  454. package/dist/esm/clusters/flow-measurement.js.map +1 -1
  455. package/dist/esm/clusters/general-commissioning.d.ts +1416 -111
  456. package/dist/esm/clusters/general-commissioning.d.ts.map +1 -1
  457. package/dist/esm/clusters/general-commissioning.js +274 -56
  458. package/dist/esm/clusters/general-commissioning.js.map +2 -2
  459. package/dist/esm/clusters/general-diagnostics.d.ts +115 -122
  460. package/dist/esm/clusters/general-diagnostics.d.ts.map +1 -1
  461. package/dist/esm/clusters/general-diagnostics.js +31 -33
  462. package/dist/esm/clusters/general-diagnostics.js.map +1 -1
  463. package/dist/esm/clusters/group-key-management.d.ts +72 -82
  464. package/dist/esm/clusters/group-key-management.d.ts.map +1 -1
  465. package/dist/esm/clusters/group-key-management.js +19 -22
  466. package/dist/esm/clusters/group-key-management.js.map +1 -1
  467. package/dist/esm/clusters/groups.d.ts +9 -6
  468. package/dist/esm/clusters/groups.d.ts.map +1 -1
  469. package/dist/esm/clusters/groups.js +3 -2
  470. package/dist/esm/clusters/groups.js.map +1 -1
  471. package/dist/esm/clusters/icd-management.d.ts +223 -66
  472. package/dist/esm/clusters/icd-management.d.ts.map +1 -1
  473. package/dist/esm/clusters/icd-management.js +61 -23
  474. package/dist/esm/clusters/icd-management.js.map +2 -2
  475. package/dist/esm/clusters/identify.d.ts +12 -13
  476. package/dist/esm/clusters/identify.d.ts.map +1 -1
  477. package/dist/esm/clusters/identify.js +9 -10
  478. package/dist/esm/clusters/identify.js.map +1 -1
  479. package/dist/esm/clusters/illuminance-measurement.d.ts +7 -8
  480. package/dist/esm/clusters/illuminance-measurement.d.ts.map +1 -1
  481. package/dist/esm/clusters/illuminance-measurement.js +9 -10
  482. package/dist/esm/clusters/illuminance-measurement.js.map +1 -1
  483. package/dist/esm/clusters/index.d.ts +11 -1
  484. package/dist/esm/clusters/index.d.ts.map +1 -1
  485. package/dist/esm/clusters/index.js +36 -3
  486. package/dist/esm/clusters/index.js.map +1 -1
  487. package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
  488. package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
  489. package/dist/esm/clusters/joint-fabric-datastore-cluster.js +470 -0
  490. package/dist/esm/clusters/joint-fabric-datastore-cluster.js.map +6 -0
  491. package/dist/esm/clusters/joint-fabric-pki.d.ts +174 -0
  492. package/dist/esm/clusters/joint-fabric-pki.d.ts.map +1 -0
  493. package/dist/esm/clusters/joint-fabric-pki.js +100 -0
  494. package/dist/esm/clusters/joint-fabric-pki.js.map +6 -0
  495. package/dist/esm/clusters/keypad-input.d.ts +2 -2
  496. package/dist/esm/clusters/laundry-dryer-controls.d.ts +6 -7
  497. package/dist/esm/clusters/laundry-dryer-controls.d.ts.map +1 -1
  498. package/dist/esm/clusters/laundry-dryer-controls.js +6 -10
  499. package/dist/esm/clusters/laundry-dryer-controls.js.map +1 -1
  500. package/dist/esm/clusters/laundry-washer-controls.d.ts +74 -62
  501. package/dist/esm/clusters/laundry-washer-controls.d.ts.map +1 -1
  502. package/dist/esm/clusters/laundry-washer-controls.js +26 -25
  503. package/dist/esm/clusters/laundry-washer-controls.js.map +1 -1
  504. package/dist/esm/clusters/laundry-washer-mode.d.ts +69 -109
  505. package/dist/esm/clusters/laundry-washer-mode.d.ts.map +1 -1
  506. package/dist/esm/clusters/laundry-washer-mode.js +14 -26
  507. package/dist/esm/clusters/laundry-washer-mode.js.map +1 -1
  508. package/dist/esm/clusters/level-control.d.ts +209 -70
  509. package/dist/esm/clusters/level-control.d.ts.map +1 -1
  510. package/dist/esm/clusters/level-control.js +45 -12
  511. package/dist/esm/clusters/level-control.js.map +1 -1
  512. package/dist/esm/clusters/localization-configuration.d.ts +5 -6
  513. package/dist/esm/clusters/localization-configuration.d.ts.map +1 -1
  514. package/dist/esm/clusters/localization-configuration.js +5 -6
  515. package/dist/esm/clusters/localization-configuration.js.map +1 -1
  516. package/dist/esm/clusters/media-input.d.ts +9 -6
  517. package/dist/esm/clusters/media-input.d.ts.map +1 -1
  518. package/dist/esm/clusters/media-input.js +3 -2
  519. package/dist/esm/clusters/media-input.js.map +1 -1
  520. package/dist/esm/clusters/media-playback.d.ts +29 -24
  521. package/dist/esm/clusters/media-playback.d.ts.map +1 -1
  522. package/dist/esm/clusters/media-playback.js +5 -4
  523. package/dist/esm/clusters/media-playback.js.map +1 -1
  524. package/dist/esm/clusters/microwave-oven-control.d.ts +54 -48
  525. package/dist/esm/clusters/microwave-oven-control.d.ts.map +1 -1
  526. package/dist/esm/clusters/microwave-oven-control.js +19 -17
  527. package/dist/esm/clusters/microwave-oven-control.js.map +1 -1
  528. package/dist/esm/clusters/microwave-oven-mode.d.ts +63 -69
  529. package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
  530. package/dist/esm/clusters/microwave-oven-mode.js +14 -11
  531. package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
  532. package/dist/esm/clusters/mode-base.d.ts +27 -46
  533. package/dist/esm/clusters/mode-base.d.ts.map +1 -1
  534. package/dist/esm/clusters/mode-base.js +9 -10
  535. package/dist/esm/clusters/mode-base.js.map +1 -1
  536. package/dist/esm/clusters/mode-select.d.ts +33 -27
  537. package/dist/esm/clusters/mode-select.d.ts.map +1 -1
  538. package/dist/esm/clusters/mode-select.js +14 -13
  539. package/dist/esm/clusters/mode-select.js.map +1 -1
  540. package/dist/esm/clusters/network-commissioning.d.ts +263 -240
  541. package/dist/esm/clusters/network-commissioning.d.ts.map +1 -1
  542. package/dist/esm/clusters/network-commissioning.js +46 -39
  543. package/dist/esm/clusters/network-commissioning.js.map +1 -1
  544. package/dist/esm/clusters/occupancy-sensing.d.ts +1002 -63
  545. package/dist/esm/clusters/occupancy-sensing.d.ts.map +1 -1
  546. package/dist/esm/clusters/occupancy-sensing.js +287 -65
  547. package/dist/esm/clusters/occupancy-sensing.js.map +2 -2
  548. package/dist/esm/clusters/on-off.d.ts +18 -24
  549. package/dist/esm/clusters/on-off.d.ts.map +1 -1
  550. package/dist/esm/clusters/on-off.js +3 -4
  551. package/dist/esm/clusters/on-off.js.map +1 -1
  552. package/dist/esm/clusters/operational-credentials.d.ts +98 -85
  553. package/dist/esm/clusters/operational-credentials.d.ts.map +1 -1
  554. package/dist/esm/clusters/operational-credentials.js +56 -49
  555. package/dist/esm/clusters/operational-credentials.js.map +1 -1
  556. package/dist/esm/clusters/operational-state.d.ts +136 -57
  557. package/dist/esm/clusters/operational-state.d.ts.map +1 -1
  558. package/dist/esm/clusters/operational-state.js +63 -37
  559. package/dist/esm/clusters/operational-state.js.map +2 -2
  560. package/dist/esm/clusters/ota-software-update-provider.d.ts +43 -42
  561. package/dist/esm/clusters/ota-software-update-provider.d.ts.map +1 -1
  562. package/dist/esm/clusters/ota-software-update-provider.js +20 -19
  563. package/dist/esm/clusters/ota-software-update-provider.js.map +1 -1
  564. package/dist/esm/clusters/ota-software-update-requestor.d.ts +6 -10
  565. package/dist/esm/clusters/ota-software-update-requestor.d.ts.map +1 -1
  566. package/dist/esm/clusters/ota-software-update-requestor.js +4 -6
  567. package/dist/esm/clusters/ota-software-update-requestor.js.map +1 -1
  568. package/dist/esm/clusters/oven-cavity-operational-state.d.ts +44 -154
  569. package/dist/esm/clusters/oven-cavity-operational-state.d.ts.map +1 -1
  570. package/dist/esm/clusters/oven-cavity-operational-state.js +41 -166
  571. package/dist/esm/clusters/oven-cavity-operational-state.js.map +1 -1
  572. package/dist/esm/clusters/oven-mode.d.ts +79 -349
  573. package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
  574. package/dist/esm/clusters/oven-mode.js +26 -89
  575. package/dist/esm/clusters/oven-mode.js.map +1 -1
  576. package/dist/esm/clusters/power-source.d.ts +169 -44
  577. package/dist/esm/clusters/power-source.d.ts.map +1 -1
  578. package/dist/esm/clusters/power-source.js +40 -16
  579. package/dist/esm/clusters/power-source.js.map +1 -1
  580. package/dist/esm/clusters/pressure-measurement.js +2 -2
  581. package/dist/esm/clusters/pressure-measurement.js.map +1 -1
  582. package/dist/esm/clusters/pump-configuration-and-control.d.ts +73 -63
  583. package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
  584. package/dist/esm/clusters/pump-configuration-and-control.js +19 -20
  585. package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
  586. package/dist/esm/clusters/refrigerator-alarm.d.ts +2 -1
  587. package/dist/esm/clusters/refrigerator-alarm.d.ts.map +1 -1
  588. package/dist/esm/clusters/refrigerator-alarm.js.map +1 -1
  589. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
  590. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  591. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +12 -20
  592. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  593. package/dist/esm/clusters/relative-humidity-measurement.js +1 -1
  594. package/dist/esm/clusters/relative-humidity-measurement.js.map +1 -1
  595. package/dist/esm/clusters/rvc-clean-mode.d.ts +59 -103
  596. package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
  597. package/dist/esm/clusters/rvc-clean-mode.js +11 -15
  598. package/dist/esm/clusters/rvc-clean-mode.js.map +1 -1
  599. package/dist/esm/clusters/rvc-operational-state.d.ts +81 -25
  600. package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
  601. package/dist/esm/clusters/rvc-operational-state.js +49 -20
  602. package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
  603. package/dist/esm/clusters/rvc-run-mode.d.ts +85 -129
  604. package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
  605. package/dist/esm/clusters/rvc-run-mode.js +16 -15
  606. package/dist/esm/clusters/rvc-run-mode.js.map +1 -1
  607. package/dist/esm/clusters/scenes-management.d.ts +328 -181
  608. package/dist/esm/clusters/scenes-management.d.ts.map +1 -1
  609. package/dist/esm/clusters/scenes-management.js +37 -22
  610. package/dist/esm/clusters/scenes-management.js.map +1 -1
  611. package/dist/esm/clusters/service-area.d.ts +2052 -0
  612. package/dist/esm/clusters/service-area.d.ts.map +1 -0
  613. package/dist/esm/clusters/service-area.js +562 -0
  614. package/dist/esm/clusters/service-area.js.map +6 -0
  615. package/dist/esm/clusters/smoke-co-alarm.d.ts +10 -18
  616. package/dist/esm/clusters/smoke-co-alarm.d.ts.map +1 -1
  617. package/dist/esm/clusters/smoke-co-alarm.js +2 -3
  618. package/dist/esm/clusters/smoke-co-alarm.js.map +1 -1
  619. package/dist/esm/clusters/switch.d.ts +478 -191
  620. package/dist/esm/clusters/switch.d.ts.map +1 -1
  621. package/dist/esm/clusters/switch.js +145 -57
  622. package/dist/esm/clusters/switch.js.map +1 -1
  623. package/dist/esm/clusters/target-navigator.d.ts +1 -1
  624. package/dist/esm/clusters/target-navigator.js +1 -1
  625. package/dist/esm/clusters/thermostat.d.ts +3877 -830
  626. package/dist/esm/clusters/thermostat.d.ts.map +1 -1
  627. package/dist/esm/clusters/thermostat.js +842 -160
  628. package/dist/esm/clusters/thermostat.js.map +2 -2
  629. package/dist/esm/clusters/thread-border-router-management.d.ts +711 -0
  630. package/dist/esm/clusters/thread-border-router-management.d.ts.map +1 -0
  631. package/dist/esm/clusters/thread-border-router-management.js +245 -0
  632. package/dist/esm/clusters/thread-border-router-management.js.map +6 -0
  633. package/dist/esm/clusters/thread-network-diagnostics.d.ts +81 -55
  634. package/dist/esm/clusters/thread-network-diagnostics.d.ts.map +1 -1
  635. package/dist/esm/clusters/thread-network-diagnostics.js +32 -21
  636. package/dist/esm/clusters/thread-network-diagnostics.js.map +1 -1
  637. package/dist/esm/clusters/thread-network-directory.d.ts +250 -0
  638. package/dist/esm/clusters/thread-network-directory.d.ts.map +1 -0
  639. package/dist/esm/clusters/thread-network-directory.js +167 -0
  640. package/dist/esm/clusters/thread-network-directory.js.map +6 -0
  641. package/dist/esm/clusters/time-synchronization.d.ts +101 -76
  642. package/dist/esm/clusters/time-synchronization.d.ts.map +1 -1
  643. package/dist/esm/clusters/time-synchronization.js +30 -23
  644. package/dist/esm/clusters/time-synchronization.js.map +1 -1
  645. package/dist/esm/clusters/unit-localization.d.ts +3 -4
  646. package/dist/esm/clusters/unit-localization.d.ts.map +1 -1
  647. package/dist/esm/clusters/unit-localization.js.map +1 -1
  648. package/dist/esm/clusters/user-label.d.ts +2 -1
  649. package/dist/esm/clusters/user-label.d.ts.map +1 -1
  650. package/dist/esm/clusters/user-label.js.map +1 -1
  651. package/dist/esm/clusters/water-heater-management.d.ts +1371 -0
  652. package/dist/esm/clusters/water-heater-management.d.ts.map +1 -0
  653. package/dist/esm/clusters/water-heater-management.js +325 -0
  654. package/dist/esm/clusters/water-heater-management.js.map +6 -0
  655. package/dist/esm/clusters/water-heater-mode.d.ts +491 -0
  656. package/dist/esm/clusters/water-heater-mode.d.ts.map +1 -0
  657. package/dist/esm/clusters/water-heater-mode.js +175 -0
  658. package/dist/esm/clusters/water-heater-mode.js.map +6 -0
  659. package/dist/esm/clusters/water-tank-level-monitoring.d.ts +162 -0
  660. package/dist/esm/clusters/water-tank-level-monitoring.d.ts.map +1 -0
  661. package/dist/esm/clusters/water-tank-level-monitoring.js +27 -0
  662. package/dist/esm/clusters/water-tank-level-monitoring.js.map +6 -0
  663. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts +20 -27
  664. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  665. package/dist/esm/clusters/wi-fi-network-diagnostics.js +6 -8
  666. package/dist/esm/clusters/wi-fi-network-diagnostics.js.map +1 -1
  667. package/dist/esm/clusters/wi-fi-network-management.d.ts +91 -0
  668. package/dist/esm/clusters/wi-fi-network-management.d.ts.map +1 -0
  669. package/dist/esm/clusters/wi-fi-network-management.js +102 -0
  670. package/dist/esm/clusters/wi-fi-network-management.js.map +6 -0
  671. package/dist/esm/clusters/window-covering.d.ts +66 -78
  672. package/dist/esm/clusters/window-covering.d.ts.map +1 -1
  673. package/dist/esm/clusters/window-covering.js +26 -37
  674. package/dist/esm/clusters/window-covering.js.map +1 -1
  675. package/dist/esm/globals/AtomicAttributeStatus.d.ts +34 -0
  676. package/dist/esm/globals/AtomicAttributeStatus.d.ts.map +1 -0
  677. package/dist/esm/globals/AtomicAttributeStatus.js +26 -0
  678. package/dist/esm/globals/AtomicAttributeStatus.js.map +6 -0
  679. package/dist/esm/globals/AtomicRequestType.d.ts +24 -0
  680. package/dist/esm/globals/AtomicRequestType.d.ts.map +1 -0
  681. package/dist/esm/globals/AtomicRequestType.js +15 -0
  682. package/dist/esm/globals/AtomicRequestType.js.map +6 -0
  683. package/dist/esm/globals/Locationdesc.d.ts +79 -0
  684. package/dist/esm/globals/Locationdesc.d.ts.map +1 -0
  685. package/dist/esm/globals/Locationdesc.js +69 -0
  686. package/dist/esm/globals/Locationdesc.js.map +6 -0
  687. package/dist/esm/globals/Priority.d.ts +1 -1
  688. package/dist/esm/globals/Semtag.d.ts +6 -6
  689. package/dist/esm/globals/Semtag.js +4 -4
  690. package/dist/esm/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  691. package/dist/esm/globals/Status.d.ts +18 -3
  692. package/dist/esm/globals/Status.d.ts.map +1 -1
  693. package/dist/esm/globals/Status.js +3 -1
  694. package/dist/esm/globals/Status.js.map +1 -1
  695. package/dist/esm/globals/Tod.d.ts +2 -2
  696. package/dist/esm/globals/index.d.ts +3 -0
  697. package/dist/esm/globals/index.d.ts.map +1 -1
  698. package/dist/esm/globals/index.js +3 -0
  699. package/dist/esm/globals/index.js.map +1 -1
  700. package/dist/esm/schema/QrCodeSchema.d.ts.map +1 -1
  701. package/dist/esm/schema/QrCodeSchema.js +4 -1
  702. package/dist/esm/schema/QrCodeSchema.js.map +1 -1
  703. package/package.json +5 -5
  704. package/src/clusters/access-control.ts +926 -171
  705. package/src/clusters/actions.ts +12 -11
  706. package/src/clusters/administrator-commissioning.ts +54 -35
  707. package/src/clusters/alarm-base.ts +3 -4
  708. package/src/clusters/application-launcher.ts +22 -7
  709. package/src/clusters/ballast-configuration.ts +7 -7
  710. package/src/clusters/basic-information.ts +29 -21
  711. package/src/clusters/bridged-device-basic-information.ts +264 -41
  712. package/src/clusters/channel.ts +20 -17
  713. package/src/clusters/color-control.ts +589 -426
  714. package/src/clusters/commissioner-control.ts +282 -0
  715. package/src/clusters/content-control.ts +48 -54
  716. package/src/clusters/content-launcher.ts +16 -15
  717. package/src/clusters/device-energy-management-mode.ts +63 -161
  718. package/src/clusters/device-energy-management.ts +246 -193
  719. package/src/clusters/dishwasher-alarm.ts +5 -5
  720. package/src/clusters/dishwasher-mode.ts +46 -87
  721. package/src/clusters/door-lock.ts +786 -1235
  722. package/src/clusters/ecosystem-information.ts +200 -0
  723. package/src/clusters/electrical-energy-measurement.ts +15 -16
  724. package/src/clusters/energy-evse-mode.ts +81 -158
  725. package/src/clusters/energy-evse.ts +138 -72
  726. package/src/clusters/energy-preference.ts +34 -28
  727. package/src/clusters/ethernet-network-diagnostics.ts +1 -3
  728. package/src/clusters/fan-control.ts +5 -5
  729. package/src/clusters/fixed-label.ts +7 -2
  730. package/src/clusters/flow-measurement.ts +6 -6
  731. package/src/clusters/general-commissioning.ts +396 -96
  732. package/src/clusters/general-diagnostics.ts +31 -33
  733. package/src/clusters/group-key-management.ts +22 -24
  734. package/src/clusters/groups.ts +3 -2
  735. package/src/clusters/icd-management.ts +88 -31
  736. package/src/clusters/identify.ts +9 -10
  737. package/src/clusters/illuminance-measurement.ts +9 -10
  738. package/src/clusters/index.ts +14 -1
  739. package/src/clusters/joint-fabric-datastore-cluster.ts +657 -0
  740. package/src/clusters/joint-fabric-pki.ts +202 -0
  741. package/src/clusters/keypad-input.ts +2 -2
  742. package/src/clusters/laundry-dryer-controls.ts +6 -10
  743. package/src/clusters/laundry-washer-controls.ts +28 -27
  744. package/src/clusters/laundry-washer-mode.ts +49 -90
  745. package/src/clusters/level-control.ts +45 -12
  746. package/src/clusters/localization-configuration.ts +5 -6
  747. package/src/clusters/media-input.ts +3 -2
  748. package/src/clusters/media-playback.ts +9 -7
  749. package/src/clusters/microwave-oven-control.ts +19 -17
  750. package/src/clusters/microwave-oven-mode.ts +42 -61
  751. package/src/clusters/mode-base.ts +16 -33
  752. package/src/clusters/mode-select.ts +17 -14
  753. package/src/clusters/network-commissioning.ts +47 -40
  754. package/src/clusters/occupancy-sensing.ts +433 -72
  755. package/src/clusters/on-off.ts +6 -8
  756. package/src/clusters/operational-credentials.ts +54 -47
  757. package/src/clusters/operational-state.ts +136 -58
  758. package/src/clusters/ota-software-update-provider.ts +23 -23
  759. package/src/clusters/ota-software-update-requestor.ts +4 -6
  760. package/src/clusters/oven-cavity-operational-state.ts +43 -171
  761. package/src/clusters/oven-mode.ts +76 -178
  762. package/src/clusters/power-source.ts +45 -21
  763. package/src/clusters/pressure-measurement.ts +2 -2
  764. package/src/clusters/pump-configuration-and-control.ts +35 -23
  765. package/src/clusters/refrigerator-alarm.ts +2 -1
  766. package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +41 -78
  767. package/src/clusters/relative-humidity-measurement.ts +1 -1
  768. package/src/clusters/rvc-clean-mode.ts +42 -101
  769. package/src/clusters/rvc-operational-state.ts +87 -25
  770. package/src/clusters/rvc-run-mode.ts +62 -126
  771. package/src/clusters/scenes-management.ts +38 -23
  772. package/src/clusters/service-area.ts +904 -0
  773. package/src/clusters/smoke-co-alarm.ts +6 -12
  774. package/src/clusters/switch.ts +177 -78
  775. package/src/clusters/target-navigator.ts +1 -1
  776. package/src/clusters/thermostat.ts +1245 -214
  777. package/src/clusters/thread-border-router-management.ts +355 -0
  778. package/src/clusters/thread-network-diagnostics.ts +34 -21
  779. package/src/clusters/thread-network-directory.ts +256 -0
  780. package/src/clusters/time-synchronization.ts +30 -23
  781. package/src/clusters/unit-localization.ts +3 -4
  782. package/src/clusters/user-label.ts +2 -1
  783. package/src/clusters/water-heater-management.ts +457 -0
  784. package/src/clusters/water-heater-mode.ts +301 -0
  785. package/src/clusters/water-tank-level-monitoring.ts +50 -0
  786. package/src/clusters/wi-fi-network-diagnostics.ts +6 -8
  787. package/src/clusters/wi-fi-network-management.ts +119 -0
  788. package/src/clusters/window-covering.ts +26 -37
  789. package/src/globals/AtomicAttributeStatus.ts +41 -0
  790. package/src/globals/AtomicRequestType.ts +27 -0
  791. package/src/globals/Locationdesc.ts +88 -0
  792. package/src/globals/Priority.ts +1 -1
  793. package/src/globals/Semtag.ts +6 -6
  794. package/src/globals/SoftwareVersionCertificationStatus.ts +1 -1
  795. package/src/globals/Status.ts +20 -3
  796. package/src/globals/Tod.ts +2 -2
  797. package/src/globals/index.ts +3 -0
  798. package/src/schema/QrCodeSchema.ts +7 -2
  799. package/dist/cjs/clusters/pulse-width-modulation.d.ts +0 -2023
  800. package/dist/cjs/clusters/pulse-width-modulation.d.ts.map +0 -1
  801. package/dist/cjs/clusters/pulse-width-modulation.js +0 -51
  802. package/dist/cjs/clusters/pulse-width-modulation.js.map +0 -6
  803. package/dist/esm/clusters/pulse-width-modulation.d.ts +0 -2023
  804. package/dist/esm/clusters/pulse-width-modulation.d.ts.map +0 -1
  805. package/dist/esm/clusters/pulse-width-modulation.js +0 -31
  806. package/dist/esm/clusters/pulse-width-modulation.js.map +0 -6
  807. package/src/clusters/pulse-width-modulation.ts +0 -54
@@ -0,0 +1,2052 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
7
+ import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
8
+ import { Attribute, OptionalAttribute, Command, OptionalCommand } from "../cluster/Cluster.js";
9
+ import { TypeFromSchema } from "../tlv/TlvSchema.js";
10
+ import { BitFlag } from "../schema/BitmapSchema.js";
11
+ import { Identity } from "#general";
12
+ export declare namespace ServiceArea {
13
+ /**
14
+ * These are optional features supported by ServiceAreaCluster.
15
+ *
16
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.4
17
+ */
18
+ enum Feature {
19
+ /**
20
+ * SelectWhileRunning (SELRUN)
21
+ *
22
+ * This feature indicates whether this device allows changing the selected areas, by using the SelectAreas
23
+ * command, while operating.
24
+ *
25
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.4.1
26
+ */
27
+ SelectWhileRunning = "SelectWhileRunning",
28
+ /**
29
+ * ProgressReporting (PROG)
30
+ *
31
+ * The device implements the progress reporting feature
32
+ */
33
+ ProgressReporting = "ProgressReporting",
34
+ /**
35
+ * Maps (MAPS)
36
+ *
37
+ * The device has map support
38
+ */
39
+ Maps = "Maps"
40
+ }
41
+ /**
42
+ * This is a struct representing a map.
43
+ *
44
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3
45
+ */
46
+ const TlvMap: import("../tlv/TlvObject.js").ObjectSchema<{
47
+ /**
48
+ * This field shall represent the map’s identifier.
49
+ *
50
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.1
51
+ */
52
+ mapId: import("../tlv/TlvObject.js").FieldType<number>;
53
+ /**
54
+ * This field shall represent a human understandable map description. For example: "Main Floor", or "Second
55
+ * Level".
56
+ *
57
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.2
58
+ */
59
+ name: import("../tlv/TlvObject.js").FieldType<string>;
60
+ }>;
61
+ /**
62
+ * This is a struct representing a map.
63
+ *
64
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3
65
+ */
66
+ interface Map extends TypeFromSchema<typeof TlvMap> {
67
+ }
68
+ /**
69
+ * The following table defines the status values.
70
+ *
71
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.6
72
+ */
73
+ enum OperationalStatus {
74
+ /**
75
+ * The device has not yet started operating at the given area, or has not finished operating at that area but
76
+ * it is not currently operating at the area
77
+ */
78
+ Pending = 0,
79
+ /**
80
+ * The device is currently operating at the given area
81
+ */
82
+ Operating = 1,
83
+ /**
84
+ * The device has skipped the given area, before or during operating at it, due to a SkipArea command, due an
85
+ * out of band command (e.g. from the vendor’s application), due to a vendor specific reason, such as a time
86
+ * limit used by the device, or due the device ending operating unsuccessfully
87
+ */
88
+ Skipped = 2,
89
+ /**
90
+ * The device has completed operating at the given area
91
+ */
92
+ Completed = 3
93
+ }
94
+ /**
95
+ * This is a struct indicating the progress.
96
+ *
97
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5
98
+ */
99
+ const TlvProgress: import("../tlv/TlvObject.js").ObjectSchema<{
100
+ /**
101
+ * This field shall indicate the identifier of the area, and the identifier shall be an entry in the
102
+ * SupportedAreas attribute’s list.
103
+ *
104
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.1
105
+ */
106
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
107
+ /**
108
+ * This field shall indicate the operational status of the device regarding the area indicated by the AreaID
109
+ * field.
110
+ *
111
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.2
112
+ */
113
+ status: import("../tlv/TlvObject.js").FieldType<OperationalStatus>;
114
+ /**
115
+ * This field shall indicate the total operational time, in seconds, from when the device started to operate at
116
+ * the area indicated by the AreaID field, until the operation finished, due to completion or due to skipping,
117
+ * including any time spent while paused.
118
+ *
119
+ * A value of null indicates that the total operational time is unknown.
120
+ *
121
+ * There may be cases where the total operational time exceeds the maximum value that can be conveyed by this
122
+ * attribute, and in such instances this attribute shall be populated with null.
123
+ *
124
+ * Null if the Status field is not set to Completed or Skipped.
125
+ *
126
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.3
127
+ */
128
+ totalOperationalTime: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
129
+ /**
130
+ * This field shall indicate the estimated time for the operation, in seconds, from when the device will start
131
+ * operating at the area indicated by the AreaID field, until the operation completes, excluding any time spent
132
+ * while not operating in the area.
133
+ *
134
+ * A value of null indicates that the estimated time is unknown. If the estimated time is unknown, or if it
135
+ * exceeds the maximum value that can be conveyed by this attribute, this attribute shall be null.
136
+ *
137
+ * After initializing the ProgressStruct instance, the server SHOULD NOT change the value of this field, except
138
+ * when repopulating the entire instance, to avoid excessive reporting of the Progress attribute changes.
139
+ *
140
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.4
141
+ */
142
+ initialTimeEstimate: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
143
+ }>;
144
+ /**
145
+ * This is a struct indicating the progress.
146
+ *
147
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5
148
+ */
149
+ interface Progress extends TypeFromSchema<typeof TlvProgress> {
150
+ }
151
+ /**
152
+ * The data from this structure indicates a landmark and position relative to the landmark.
153
+ *
154
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1
155
+ */
156
+ const TlvLandmarkInfo: import("../tlv/TlvObject.js").ObjectSchema<{
157
+ /**
158
+ * This field shall indicate that the area is associated with a landmark.
159
+ *
160
+ * This field shall be the ID of a landmark semantic tag, located within the Common Landmark Namespace. For
161
+ * example, this tag may indicate that the area refers to an area next to a table.
162
+ *
163
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.1
164
+ */
165
+ landmarkTag: import("../tlv/TlvObject.js").FieldType<number>;
166
+ /**
167
+ * This field shall identify the position of the area relative to a landmark. This is a static description of a
168
+ * zone known to the server, and this field never reflects the device’s own proximity or position relative to
169
+ * the landmark, but that of the zone.
170
+ *
171
+ * This field shall be the ID of a relative position semantic tag, located within the Common Relative Position
172
+ * Namespace.
173
+ *
174
+ * If the RelativePositionTag field is null, this field indicates proximity to the landmark. Otherwise, the
175
+ * RelativePositionTag field indicates the position of the area relative to the landmark indicated by the
176
+ * LandmarkTag field. For example, this tag, in conjunction with the LandmarkTag field, may indicate that the
177
+ * area refers to a zone under a table.
178
+ *
179
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.2
180
+ */
181
+ relativePositionTag: import("../tlv/TlvObject.js").FieldType<number | null>;
182
+ }>;
183
+ /**
184
+ * The data from this structure indicates a landmark and position relative to the landmark.
185
+ *
186
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1
187
+ */
188
+ interface LandmarkInfo extends TypeFromSchema<typeof TlvLandmarkInfo> {
189
+ }
190
+ /**
191
+ * The data from this structure indicates the name and/or semantic data describing an area, as detailed below.
192
+ *
193
+ * This data type includes the LocationInfo field, with the following fields: LocationName, FloorNumber, AreaType.
194
+ * Additional semantic data may be available in the LandmarkInfo field.
195
+ *
196
+ * For an area description to be meaningful, it shall have at least one of the following:
197
+ *
198
+ * • a non-empty name (LocationInfo’s LocationName field) OR
199
+ *
200
+ * • some semantic data (one or more of these: FloorNumber, AreaType or LandmarkTag) The normative text from the
201
+ * remainder of this section describes these constraints.
202
+ *
203
+ * If the LocationInfo field is null, the LandmarkInfo field shall NOT be null. If the LandmarkInfo field is null,
204
+ * the LocationInfo field shall NOT be null.
205
+ *
206
+ * If LocationInfo is not null, and its LocationName field is an empty string, at least one of the following shall
207
+ * NOT be null:
208
+ *
209
+ * • LocationInfo’s FloorNumber field
210
+ *
211
+ * • LocationInfo’s AreaType field
212
+ *
213
+ * • LandmarkInfo field
214
+ *
215
+ * If all three of the following are null, LocationInfo’s LocationName field shall NOT be an empty string:
216
+ *
217
+ * • LocationInfo’s FloorNumber field
218
+ *
219
+ * • LocationInfo’s AreaType field
220
+ *
221
+ * • LandmarkInfo field
222
+ *
223
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2
224
+ */
225
+ const TlvAreaInfo: import("../tlv/TlvObject.js").ObjectSchema<{
226
+ /**
227
+ * This field shall indicate the name of the area, floor number and/or area type. A few examples are provided
228
+ * below.
229
+ *
230
+ * • An area can have LocationInfo’s LocationName field set to "blue room", and the AreaType field set to the
231
+ * ID of a "Living Room" semantic tag. Clients wishing to direct the device to operate in (or service) the
232
+ * living room can use this area.
233
+ *
234
+ * • An area can have LocationInfo set to null, the LandmarkInfo’s LandmarkTag field set to the ID of the
235
+ * "Table" landmark semantic tag, and the RelativePositionTag field set to the ID of the "Under" position
236
+ * semantic tag. With such an area indication, the client can request the device to operate in (or service)
237
+ * the area located under the table.
238
+ *
239
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.1
240
+ */
241
+ locationInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
242
+ locationName: import("../tlv/TlvObject.js").FieldType<string>;
243
+ floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
244
+ areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
245
+ }> | null>;
246
+ /**
247
+ * This field shall indicate an association with a landmark. A value of null indicates that the information is
248
+ * not available or known. For example, this may indicate that the area refers to a zone next to a table.
249
+ *
250
+ * If this field is not null, that indicates that the area is restricted to the zone where the landmark is
251
+ * located, as indicated by the LandmarkTag and, if not null, by the RelativePositionTag fields, rather than to
252
+ * the entire room or floor where the landmark is located, if those are indicated by the LocationInfo field.
253
+ *
254
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.2
255
+ */
256
+ landmarkInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
257
+ /**
258
+ * This field shall indicate that the area is associated with a landmark.
259
+ *
260
+ * This field shall be the ID of a landmark semantic tag, located within the Common Landmark Namespace. For
261
+ * example, this tag may indicate that the area refers to an area next to a table.
262
+ *
263
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.1
264
+ */
265
+ landmarkTag: import("../tlv/TlvObject.js").FieldType<number>;
266
+ /**
267
+ * This field shall identify the position of the area relative to a landmark. This is a static description of a
268
+ * zone known to the server, and this field never reflects the device’s own proximity or position relative to
269
+ * the landmark, but that of the zone.
270
+ *
271
+ * This field shall be the ID of a relative position semantic tag, located within the Common Relative Position
272
+ * Namespace.
273
+ *
274
+ * If the RelativePositionTag field is null, this field indicates proximity to the landmark. Otherwise, the
275
+ * RelativePositionTag field indicates the position of the area relative to the landmark indicated by the
276
+ * LandmarkTag field. For example, this tag, in conjunction with the LandmarkTag field, may indicate that the
277
+ * area refers to a zone under a table.
278
+ *
279
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.2
280
+ */
281
+ relativePositionTag: import("../tlv/TlvObject.js").FieldType<number | null>;
282
+ }> | null>;
283
+ }>;
284
+ /**
285
+ * The data from this structure indicates the name and/or semantic data describing an area, as detailed below.
286
+ *
287
+ * This data type includes the LocationInfo field, with the following fields: LocationName, FloorNumber, AreaType.
288
+ * Additional semantic data may be available in the LandmarkInfo field.
289
+ *
290
+ * For an area description to be meaningful, it shall have at least one of the following:
291
+ *
292
+ * • a non-empty name (LocationInfo’s LocationName field) OR
293
+ *
294
+ * • some semantic data (one or more of these: FloorNumber, AreaType or LandmarkTag) The normative text from the
295
+ * remainder of this section describes these constraints.
296
+ *
297
+ * If the LocationInfo field is null, the LandmarkInfo field shall NOT be null. If the LandmarkInfo field is null,
298
+ * the LocationInfo field shall NOT be null.
299
+ *
300
+ * If LocationInfo is not null, and its LocationName field is an empty string, at least one of the following shall
301
+ * NOT be null:
302
+ *
303
+ * • LocationInfo’s FloorNumber field
304
+ *
305
+ * • LocationInfo’s AreaType field
306
+ *
307
+ * • LandmarkInfo field
308
+ *
309
+ * If all three of the following are null, LocationInfo’s LocationName field shall NOT be an empty string:
310
+ *
311
+ * • LocationInfo’s FloorNumber field
312
+ *
313
+ * • LocationInfo’s AreaType field
314
+ *
315
+ * • LandmarkInfo field
316
+ *
317
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2
318
+ */
319
+ interface AreaInfo extends TypeFromSchema<typeof TlvAreaInfo> {
320
+ }
321
+ /**
322
+ * This is a struct representing an area known to the server.
323
+ *
324
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4
325
+ */
326
+ const TlvArea: import("../tlv/TlvObject.js").ObjectSchema<{
327
+ /**
328
+ * This field shall represent the identifier of the area.
329
+ *
330
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.1
331
+ */
332
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
333
+ /**
334
+ * This field shall indicate the map identifier which the area is associated with. A value of null indicates
335
+ * that the area is not associated with a map.
336
+ *
337
+ * If the SupportedMaps attribute is not empty, this field shall match the MapID field of an entry from the
338
+ * SupportedMaps attribute’s list. If the SupportedMaps attribute is empty, this field shall be null.
339
+ *
340
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.2
341
+ */
342
+ mapId: import("../tlv/TlvObject.js").FieldType<number | null>;
343
+ /**
344
+ * This field shall contain data describing the area.
345
+ *
346
+ * This SHOULD be used by clients to determine the name and/or the full, or the partial, semantics of a certain
347
+ * area.
348
+ *
349
+ * NOTE
350
+ *
351
+ * If any entries on the SupportedAreas attribute’s list have the AreaInfo field missing the semantic data, the
352
+ * client may remind the user to assign the respective data.
353
+ *
354
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.3
355
+ */
356
+ areaInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
357
+ /**
358
+ * This field shall indicate the name of the area, floor number and/or area type. A few examples are provided
359
+ * below.
360
+ *
361
+ * • An area can have LocationInfo’s LocationName field set to "blue room", and the AreaType field set to the
362
+ * ID of a "Living Room" semantic tag. Clients wishing to direct the device to operate in (or service) the
363
+ * living room can use this area.
364
+ *
365
+ * • An area can have LocationInfo set to null, the LandmarkInfo’s LandmarkTag field set to the ID of the
366
+ * "Table" landmark semantic tag, and the RelativePositionTag field set to the ID of the "Under" position
367
+ * semantic tag. With such an area indication, the client can request the device to operate in (or service)
368
+ * the area located under the table.
369
+ *
370
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.1
371
+ */
372
+ locationInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
373
+ locationName: import("../tlv/TlvObject.js").FieldType<string>;
374
+ floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
375
+ areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
376
+ }> | null>;
377
+ /**
378
+ * This field shall indicate an association with a landmark. A value of null indicates that the information is
379
+ * not available or known. For example, this may indicate that the area refers to a zone next to a table.
380
+ *
381
+ * If this field is not null, that indicates that the area is restricted to the zone where the landmark is
382
+ * located, as indicated by the LandmarkTag and, if not null, by the RelativePositionTag fields, rather than to
383
+ * the entire room or floor where the landmark is located, if those are indicated by the LocationInfo field.
384
+ *
385
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.2
386
+ */
387
+ landmarkInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
388
+ /**
389
+ * This field shall indicate that the area is associated with a landmark.
390
+ *
391
+ * This field shall be the ID of a landmark semantic tag, located within the Common Landmark Namespace. For
392
+ * example, this tag may indicate that the area refers to an area next to a table.
393
+ *
394
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.1
395
+ */
396
+ landmarkTag: import("../tlv/TlvObject.js").FieldType<number>;
397
+ /**
398
+ * This field shall identify the position of the area relative to a landmark. This is a static description of a
399
+ * zone known to the server, and this field never reflects the device’s own proximity or position relative to
400
+ * the landmark, but that of the zone.
401
+ *
402
+ * This field shall be the ID of a relative position semantic tag, located within the Common Relative Position
403
+ * Namespace.
404
+ *
405
+ * If the RelativePositionTag field is null, this field indicates proximity to the landmark. Otherwise, the
406
+ * RelativePositionTag field indicates the position of the area relative to the landmark indicated by the
407
+ * LandmarkTag field. For example, this tag, in conjunction with the LandmarkTag field, may indicate that the
408
+ * area refers to a zone under a table.
409
+ *
410
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.2
411
+ */
412
+ relativePositionTag: import("../tlv/TlvObject.js").FieldType<number | null>;
413
+ }> | null>;
414
+ }>>;
415
+ }>;
416
+ /**
417
+ * This is a struct representing an area known to the server.
418
+ *
419
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4
420
+ */
421
+ interface Area extends TypeFromSchema<typeof TlvArea> {
422
+ }
423
+ /**
424
+ * Input to the ServiceArea selectAreas command
425
+ *
426
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1
427
+ */
428
+ const TlvSelectAreasRequest: import("../tlv/TlvObject.js").ObjectSchema<{
429
+ /**
430
+ * This field indicates which areas the device is to operate at.
431
+ *
432
+ * If this field is empty, that indicates that the device is to operate without being constrained to any
433
+ * specific areas, and the operation will not allow skipping using the SkipArea Command, otherwise the field
434
+ * shall be a list of unique values that match the AreaID field of entries on the SupportedAreas list.
435
+ *
436
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1.1
437
+ */
438
+ newAreas: import("../tlv/TlvObject.js").FieldType<number[]>;
439
+ }>;
440
+ /**
441
+ * Input to the ServiceArea selectAreas command
442
+ *
443
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1
444
+ */
445
+ interface SelectAreasRequest extends TypeFromSchema<typeof TlvSelectAreasRequest> {
446
+ }
447
+ /**
448
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.6.1
449
+ */
450
+ enum SelectAreasStatus {
451
+ /**
452
+ * Attempting to operate in the areas identified by the entries of the NewAreas field is allowed and possible.
453
+ * The SelectedAreas attribute is set to the value of the NewAreas field.
454
+ */
455
+ Success = 0,
456
+ /**
457
+ * The value of at least one of the entries of the NewAreas field doesn’t match any entries in the
458
+ * SupportedAreas attribute.
459
+ */
460
+ UnsupportedArea = 1,
461
+ /**
462
+ * The received request cannot be handled due to the current mode of the device.
463
+ */
464
+ InvalidInMode = 2,
465
+ /**
466
+ * The set of values is invalid. For example, areas on different floors, that a robot knows it can’t reach on
467
+ * its own.
468
+ */
469
+ InvalidSet = 3
470
+ }
471
+ /**
472
+ * This command is sent by the device on receipt of the SelectAreas command.
473
+ *
474
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.2
475
+ */
476
+ const TlvSelectAreasResponse: import("../tlv/TlvObject.js").ObjectSchema<{
477
+ /**
478
+ * If the Status field is set to Success or UnsupportedArea, the server may use a non-empty string for the
479
+ * StatusText field to provide additional information. For example, if Status is set to Unsupport
480
+ *
481
+ * edArea, the server may use StatusText to indicate which areas are unsupported.
482
+ *
483
+ * If the Status field is not set to Success, or UnsupportedArea, the StatusText field shall include a
484
+ * vendor-defined error description which can be used to explain the error to the user. For example, if the
485
+ * Status field is set to InvalidInMode, the StatusText field SHOULD indicate why the request is not allowed,
486
+ * given the current mode of the device, which may involve other clusters.
487
+ *
488
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.2.1
489
+ */
490
+ status: import("../tlv/TlvObject.js").FieldType<SelectAreasStatus>;
491
+ statusText: import("../tlv/TlvObject.js").FieldType<string>;
492
+ }>;
493
+ /**
494
+ * This command is sent by the device on receipt of the SelectAreas command.
495
+ *
496
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.2
497
+ */
498
+ interface SelectAreasResponse extends TypeFromSchema<typeof TlvSelectAreasResponse> {
499
+ }
500
+ /**
501
+ * Input to the ServiceArea skipArea command
502
+ *
503
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3
504
+ */
505
+ const TlvSkipAreaRequest: import("../tlv/TlvObject.js").ObjectSchema<{
506
+ /**
507
+ * The SkippedArea field indicates the area to be skipped.
508
+ *
509
+ * The SkippedArea field shall match an entry in the SupportedAreas list.
510
+ *
511
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3.1
512
+ */
513
+ skippedArea: import("../tlv/TlvObject.js").FieldType<number>;
514
+ }>;
515
+ /**
516
+ * Input to the ServiceArea skipArea command
517
+ *
518
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3
519
+ */
520
+ interface SkipAreaRequest extends TypeFromSchema<typeof TlvSkipAreaRequest> {
521
+ }
522
+ /**
523
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.6.2
524
+ */
525
+ enum SkipAreaStatus {
526
+ /**
527
+ * Skipping the area is allowed and possible, or the device was operating at the last available area and has
528
+ * stopped.
529
+ */
530
+ Success = 0,
531
+ /**
532
+ * The SelectedAreas attribute is empty.
533
+ */
534
+ InvalidAreaList = 1,
535
+ /**
536
+ * The received request cannot be handled due to the current mode of the device. For example, the CurrentArea
537
+ * attribute is null or the device is not operating.
538
+ */
539
+ InvalidInMode = 2,
540
+ /**
541
+ * The SkippedArea field doesn’t match an entry in the SupportedAreas list.
542
+ */
543
+ InvalidSkippedArea = 3
544
+ }
545
+ /**
546
+ * This command is sent by the device on receipt of the SkipArea command.
547
+ *
548
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.4
549
+ */
550
+ const TlvSkipAreaResponse: import("../tlv/TlvObject.js").ObjectSchema<{
551
+ /**
552
+ * If the Status field is set to Success or InvalidAreaList, the server may use a non-empty string for the
553
+ * StatusText field to provide additional information. For example, if Status is set to InvalidAreaList, the
554
+ * server may use StatusText to indicate why this list is invalid.
555
+ *
556
+ * If the Status field is not set to Success or InvalidAreaList, the StatusText field shall include a vendor
557
+ * defined error description which can be used to explain the error to the user. For example, if the Status
558
+ * field is set to InvalidInMode, the StatusText field SHOULD indicate why the request is not allowed, given
559
+ * the current mode of the device, which may involve other clusters.
560
+ *
561
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.4.1
562
+ */
563
+ status: import("../tlv/TlvObject.js").FieldType<SkipAreaStatus>;
564
+ statusText: import("../tlv/TlvObject.js").FieldType<string>;
565
+ }>;
566
+ /**
567
+ * This command is sent by the device on receipt of the SkipArea command.
568
+ *
569
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.4
570
+ */
571
+ interface SkipAreaResponse extends TypeFromSchema<typeof TlvSkipAreaResponse> {
572
+ }
573
+ /**
574
+ * A ServiceAreaCluster supports these elements if it supports feature Maps.
575
+ */
576
+ const MapsComponent: {
577
+ readonly attributes: {
578
+ /**
579
+ * This attribute shall contain the list of supported maps.
580
+ *
581
+ * A map is a full or a partial representation of a home, known to the device. For example:
582
+ *
583
+ * • a single level home may be represented using a single map
584
+ *
585
+ * • a two level home may be represented using two maps, one for each level
586
+ *
587
+ * • a single level home may be represented using two maps, each including a different set of rooms, such
588
+ * as "map of living room and kitchen" and "map of bedrooms and hallway"
589
+ *
590
+ * • a single level home may be represented using one map for the indoor areas (living room, bedrooms
591
+ * etc.) and one for the outdoor areas (garden, swimming pool etc.)
592
+ *
593
+ * Each map includes one or more areas - see the SupportedAreas attribute. In the context of this cluster
594
+ * specification, a map is effectively a group label for a set of areas, rather than a graphical
595
+ * representation that the clients can display to the users. The clients that present the list of available
596
+ * areas for user selection (see the SelectAreas command) may choose to filter the SupportedAreas list
597
+ * based on the associated map. For example, the clients may allow the user to indicate that the device is
598
+ * to operate on the first floor, and allow the user to choose only from the areas situated on that level.
599
+ *
600
+ * If empty, that indicates that the device is currently unable to provide this information. Each entry in
601
+ * this list shall have a unique value for the MapID field.
602
+ *
603
+ * Each entry in this list shall have a unique value for the Name field.
604
+ *
605
+ * NOTE
606
+ *
607
+ * due to the maximum size of this list and to the fact that the entries may include strings (see the Name
608
+ * field of the MapStruct data type), care must be taken by implementers to avoid creating a data structure
609
+ * that is overly large, which can result in significant latency in accessing this attribute.
610
+ *
611
+ * The value of this attribute may change at any time via an out-of-band interaction outside of the server,
612
+ * such as interactions with a user interface.
613
+ *
614
+ * When updating the SupportedMaps attribute list by deleting entries, or by setting the attribute to an
615
+ * empty list, the SupportedLocations attribute shall be updated such that all entries in that list meet
616
+ * the constraints indicated in the description of the SupportedLocations attribute. This may result in
617
+ *
618
+ * the server removing entries from the SupportedAreas attribute list. See the SupportedAreas attribute
619
+ * description for the implications of changing that attribute.
620
+ *
621
+ * The SupportedMaps attribute list changes mentioned above SHOULD NOT be allowed while the device is
622
+ * operating, to reduce the impact on the clients, and the potential confusion for the users.
623
+ *
624
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.2
625
+ */
626
+ readonly supportedMaps: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
627
+ /**
628
+ * This field shall represent the map’s identifier.
629
+ *
630
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.1
631
+ */
632
+ mapId: import("../tlv/TlvObject.js").FieldType<number>;
633
+ /**
634
+ * This field shall represent a human understandable map description. For example: "Main Floor", or "Second
635
+ * Level".
636
+ *
637
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.2
638
+ */
639
+ name: import("../tlv/TlvObject.js").FieldType<string>;
640
+ }>[], any>;
641
+ };
642
+ };
643
+ /**
644
+ * A ServiceAreaCluster supports these elements if it supports feature ProgressReporting.
645
+ */
646
+ const ProgressReportingComponent: {
647
+ readonly attributes: {
648
+ /**
649
+ * Indicates the operating status at one or more areas. Each entry in this list shall have a unique value
650
+ * for the AreaID field.
651
+ *
652
+ * For each entry in this list, the AreaID field shall match an entry on the SupportedAreas attribute’s
653
+ * list.
654
+ *
655
+ * When this attribute is empty, that represents that no progress information is currently available.
656
+ *
657
+ * If the SelectedAreas attribute is empty, indicating the device is not constrained to operate in any
658
+ * specific areas, the Progress attribute list may change while the device operates, due to the device
659
+ * adding new entries dynamically, when it determines which ones it can attempt to operate at.
660
+ *
661
+ * If the SelectedAreas attribute is not empty, and the device starts operating:
662
+ *
663
+ * • the Progress attribute list shall be updated so each entry of SelectedAreas has a matching Progress
664
+ * list entry, based on the AreaID field
665
+ *
666
+ * • the length of the Progress and SelectedAreas list shall be the same
667
+ *
668
+ * • the entries in the Progress list shall be initialized by the server, by having their status set to
669
+ * Pending or Operating, and the TotalOperationalTime field set to null
670
+ *
671
+ * When the device ends operation unexpectedly, such as due to an error, the server shall update all
672
+ * Progress list entries with the Status field set to Operating or Pending to Skipped.
673
+ *
674
+ * When the device finishes operating, successfully or not, it shall NOT change the Progress attribute,
675
+ * except in the case of an unexpected end of operation as described above, or due to changes to the
676
+ * SupportedMaps or SupportedAreas attributes, so the clients can retrieve the progress information at that
677
+ * time.
678
+ *
679
+ * NOTE
680
+ *
681
+ * if the device implements the Operational Status cluster, or a derivation of it, in case the device fails
682
+ * to service any locations in the SelectedAreas list before ending the operation, it SHOULD use the
683
+ * Operational Status cluster to indicate that the device was unable to complete the operation (see the
684
+ * UnableToCompleteOperation error from that cluster specification). The clients SHOULD then read the
685
+ * Progress attribute, and indicate which areas have been successfully serviced (marked as completed).
686
+ *
687
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.6
688
+ */
689
+ readonly progress: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
690
+ /**
691
+ * This field shall indicate the identifier of the area, and the identifier shall be an entry in the
692
+ * SupportedAreas attribute’s list.
693
+ *
694
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.1
695
+ */
696
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
697
+ /**
698
+ * This field shall indicate the operational status of the device regarding the area indicated by the AreaID
699
+ * field.
700
+ *
701
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.2
702
+ */
703
+ status: import("../tlv/TlvObject.js").FieldType<OperationalStatus>;
704
+ /**
705
+ * This field shall indicate the total operational time, in seconds, from when the device started to operate at
706
+ * the area indicated by the AreaID field, until the operation finished, due to completion or due to skipping,
707
+ * including any time spent while paused.
708
+ *
709
+ * A value of null indicates that the total operational time is unknown.
710
+ *
711
+ * There may be cases where the total operational time exceeds the maximum value that can be conveyed by this
712
+ * attribute, and in such instances this attribute shall be populated with null.
713
+ *
714
+ * Null if the Status field is not set to Completed or Skipped.
715
+ *
716
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.3
717
+ */
718
+ totalOperationalTime: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
719
+ /**
720
+ * This field shall indicate the estimated time for the operation, in seconds, from when the device will start
721
+ * operating at the area indicated by the AreaID field, until the operation completes, excluding any time spent
722
+ * while not operating in the area.
723
+ *
724
+ * A value of null indicates that the estimated time is unknown. If the estimated time is unknown, or if it
725
+ * exceeds the maximum value that can be conveyed by this attribute, this attribute shall be null.
726
+ *
727
+ * After initializing the ProgressStruct instance, the server SHOULD NOT change the value of this field, except
728
+ * when repopulating the entire instance, to avoid excessive reporting of the Progress attribute changes.
729
+ *
730
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.4
731
+ */
732
+ initialTimeEstimate: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
733
+ }>[], any>;
734
+ };
735
+ };
736
+ /**
737
+ * These elements and properties are present in all ServiceArea clusters.
738
+ */
739
+ const Base: {
740
+ readonly id: 336;
741
+ readonly name: "ServiceArea";
742
+ readonly revision: 1;
743
+ readonly features: {
744
+ /**
745
+ * SelectWhileRunning
746
+ *
747
+ * This feature indicates whether this device allows changing the selected areas, by using the SelectAreas
748
+ * command, while operating.
749
+ *
750
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.4.1
751
+ */
752
+ readonly selectWhileRunning: BitFlag;
753
+ /**
754
+ * ProgressReporting
755
+ *
756
+ * The device implements the progress reporting feature
757
+ */
758
+ readonly progressReporting: BitFlag;
759
+ /**
760
+ * Maps
761
+ *
762
+ * The device has map support
763
+ */
764
+ readonly maps: BitFlag;
765
+ };
766
+ readonly attributes: {
767
+ /**
768
+ * This attribute shall contain the list of areas that can be included in the SelectedAreas attribute’s
769
+ * list. Each item in this list represents a unique area, as indicated by the AreaID field of AreaStruct.
770
+ *
771
+ * Each entry in this list shall have a unique value for the AreaID field.
772
+ *
773
+ * If the SupportedMaps attribute is not empty, each entry in this list shall have a unique value for the
774
+ * combination of the MapID and AreaInfo fields.
775
+ *
776
+ * If the SupportedMaps attribute is empty, each entry in this list shall have a unique value for the
777
+ * AreaInfo field and shall have the MapID field set to null.
778
+ *
779
+ * An empty value indicates that the device is currently unable to provide the list of supported areas.
780
+ *
781
+ * NOTE
782
+ *
783
+ * due to the maximum size of this list and to the fact that the entries may include strings (see
784
+ * LocationName), care must be taken by implementers to avoid creating a data structure that is overly
785
+ * large, which can result in significant latency in accessing this attribute.
786
+ *
787
+ * The value of this attribute may change at any time via an out-of-band interaction outside of the server,
788
+ * such as interactions with a user interface, or due to internal device changes.
789
+ *
790
+ * When removing entries in the SupportedAreas attribute list the server shall adjust the values of the
791
+ * SelectedAreas, CurrentArea, and Progress attributes such that they only reference valid entries in the
792
+ * updated SupportedAreas attribute list. These changes to the SelectedAreas, CurrentArea, and Progress
793
+ * attributes may result in the server setting some or all of them to empty (for SelectedAreas and
794
+ * Progress) or null (for CurrentArea), or updating them with data that matches the constraints from the
795
+ * description of the respective attributes. These actions are required to ensure having a consistent
796
+ * representation of the maps and locations available to the clients.
797
+ *
798
+ * The SupportedAreas attribute list changes mentioned above SHOULD NOT be allowed while the device is
799
+ * operating, to reduce the impact on the clients, and the potential confusion for the users.
800
+ *
801
+ * A few examples are provided below. Valid list of areas:
802
+ *
803
+ * • AreaID=0, LocationName="yellow bedroom", MapID=null
804
+ *
805
+ * • AreaID=1, LocationName="orange bedroom", MapID=null Valid list of areas:
806
+ *
807
+ * • AreaID=5, LocationName="hallway", MapID=1
808
+ *
809
+ * • AreaID=3, LocationName="hallway", MapID=2
810
+ *
811
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.1
812
+ */
813
+ readonly supportedAreas: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
814
+ /**
815
+ * This field shall represent the identifier of the area.
816
+ *
817
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.1
818
+ */
819
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
820
+ /**
821
+ * This field shall indicate the map identifier which the area is associated with. A value of null indicates
822
+ * that the area is not associated with a map.
823
+ *
824
+ * If the SupportedMaps attribute is not empty, this field shall match the MapID field of an entry from the
825
+ * SupportedMaps attribute’s list. If the SupportedMaps attribute is empty, this field shall be null.
826
+ *
827
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.2
828
+ */
829
+ mapId: import("../tlv/TlvObject.js").FieldType<number | null>;
830
+ /**
831
+ * This field shall contain data describing the area.
832
+ *
833
+ * This SHOULD be used by clients to determine the name and/or the full, or the partial, semantics of a certain
834
+ * area.
835
+ *
836
+ * NOTE
837
+ *
838
+ * If any entries on the SupportedAreas attribute’s list have the AreaInfo field missing the semantic data, the
839
+ * client may remind the user to assign the respective data.
840
+ *
841
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.3
842
+ */
843
+ areaInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
844
+ /**
845
+ * This field shall indicate the name of the area, floor number and/or area type. A few examples are provided
846
+ * below.
847
+ *
848
+ * • An area can have LocationInfo’s LocationName field set to "blue room", and the AreaType field set to the
849
+ * ID of a "Living Room" semantic tag. Clients wishing to direct the device to operate in (or service) the
850
+ * living room can use this area.
851
+ *
852
+ * • An area can have LocationInfo set to null, the LandmarkInfo’s LandmarkTag field set to the ID of the
853
+ * "Table" landmark semantic tag, and the RelativePositionTag field set to the ID of the "Under" position
854
+ * semantic tag. With such an area indication, the client can request the device to operate in (or service)
855
+ * the area located under the table.
856
+ *
857
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.1
858
+ */
859
+ locationInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
860
+ locationName: import("../tlv/TlvObject.js").FieldType<string>;
861
+ floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
862
+ areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
863
+ }> | null>;
864
+ /**
865
+ * This field shall indicate an association with a landmark. A value of null indicates that the information is
866
+ * not available or known. For example, this may indicate that the area refers to a zone next to a table.
867
+ *
868
+ * If this field is not null, that indicates that the area is restricted to the zone where the landmark is
869
+ * located, as indicated by the LandmarkTag and, if not null, by the RelativePositionTag fields, rather than to
870
+ * the entire room or floor where the landmark is located, if those are indicated by the LocationInfo field.
871
+ *
872
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.2
873
+ */
874
+ landmarkInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
875
+ /**
876
+ * This field shall indicate that the area is associated with a landmark.
877
+ *
878
+ * This field shall be the ID of a landmark semantic tag, located within the Common Landmark Namespace. For
879
+ * example, this tag may indicate that the area refers to an area next to a table.
880
+ *
881
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.1
882
+ */
883
+ landmarkTag: import("../tlv/TlvObject.js").FieldType<number>;
884
+ /**
885
+ * This field shall identify the position of the area relative to a landmark. This is a static description of a
886
+ * zone known to the server, and this field never reflects the device’s own proximity or position relative to
887
+ * the landmark, but that of the zone.
888
+ *
889
+ * This field shall be the ID of a relative position semantic tag, located within the Common Relative Position
890
+ * Namespace.
891
+ *
892
+ * If the RelativePositionTag field is null, this field indicates proximity to the landmark. Otherwise, the
893
+ * RelativePositionTag field indicates the position of the area relative to the landmark indicated by the
894
+ * LandmarkTag field. For example, this tag, in conjunction with the LandmarkTag field, may indicate that the
895
+ * area refers to a zone under a table.
896
+ *
897
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.2
898
+ */
899
+ relativePositionTag: import("../tlv/TlvObject.js").FieldType<number | null>;
900
+ }> | null>;
901
+ }>>;
902
+ }>[], any>;
903
+ /**
904
+ * Indicates the set of areas where the device SHOULD attempt to operate.
905
+ *
906
+ * The mobile devices may travel without operating across any areas while attempting to reach the areas
907
+ * indicated by the SelectedAreas attribute. For example, a robotic vacuum cleaner may drive without
908
+ * cleaning when traveling without operating.
909
+ *
910
+ * If this attribute is empty, the device is not constrained to operate in any specific areas. If this
911
+ * attribute is not empty:
912
+ *
913
+ * • each item in this list shall match the AreaID field of an entry in the SupportedAreas attribute’s
914
+ * list
915
+ *
916
+ * • each entry in this list shall have a unique value
917
+ *
918
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.3
919
+ */
920
+ readonly selectedAreas: Attribute<number[], any>;
921
+ /**
922
+ * If the device is mobile, this attribute shall indicate the area where the device is currently located,
923
+ * regardless of whether it is operating or not, such as while traveling between areas.
924
+ *
925
+ * If the device is not mobile and can operate at multiple areas sequentially, this attribute shall
926
+ * indicate the area which is currently being serviced, or the area which is currently traversed by the
927
+ * device. For example, a camera device may use this attribute to indicate which area it currently takes
928
+ * video of (serviced area) or which area it currently has in view but not taking video of (e.g. an area
929
+ * which is traversed while panning).
930
+ *
931
+ * NOTE
932
+ *
933
+ * A device may traverse an area regardless of the status of the area (pending, skipped, or completed).
934
+ *
935
+ * If a device can simultaneously operate at multiple areas, such as in the case of a sensor that can
936
+ * monitor multiple areas at the same time, the CurrentArea attribute shall NOT be implemented, since it
937
+ * doesn’t apply. Else this attribute shall be optionally implemented.
938
+ *
939
+ * A null value indicates that the device is currently unable to provide this information. For example, the
940
+ * device is traversing an unknown area, or the SupportedAreas attribute was updated and the area where the
941
+ * device is located was removed from that list.
942
+ *
943
+ * If not null, the value of this attribute shall match the AreaID field of an entry on the SupportedAreas
944
+ * attribute’s list.
945
+ *
946
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.4
947
+ */
948
+ readonly currentArea: OptionalAttribute<number | null, any>;
949
+ /**
950
+ * Indicates the estimated Epoch time for completing operating at the area indicated by the CurrentArea
951
+ * attribute, in seconds.
952
+ *
953
+ * A value of 0 means that the operation has completed.
954
+ *
955
+ * When this attribute is null, that represents that there is no time currently defined until operation
956
+ * completion. This may happen, for example, because no operation is in progress or because the completion
957
+ * time is unknown.
958
+ *
959
+ * Null if the CurrentArea attribute is null.
960
+ *
961
+ * If the Progress attribute is available, and it contains an entry matching CurrentArea, the server may
962
+ * use the time estimate provided in the InitialTimeEstimate field of that entry to compute the
963
+ * EstimatedEndTime attribute.
964
+ *
965
+ * The value of this attribute shall only be reported in the following cases:
966
+ *
967
+ * • when it changes to or from 0
968
+ *
969
+ * • when it decreases
970
+ *
971
+ * • when it changes to or from null
972
+ *
973
+ * NOTE
974
+ *
975
+ * If the device is capable of pausing its operation, this attribute may be set to null, to indicate that
976
+ * completion time is unknown, or increment the value while being in the paused state.
977
+ *
978
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.5
979
+ */
980
+ readonly estimatedEndTime: Attribute<number | null, any>;
981
+ };
982
+ readonly commands: {
983
+ /**
984
+ * This command is used to select a set of device areas, where the device is to operate.
985
+ *
986
+ * On receipt of this command the device shall respond with a SelectAreasResponse command.
987
+ *
988
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1
989
+ */
990
+ readonly selectAreas: Command<import("../tlv/TlvObject.js").TypeFromFields<{
991
+ /**
992
+ * This field indicates which areas the device is to operate at.
993
+ *
994
+ * If this field is empty, that indicates that the device is to operate without being constrained to any
995
+ * specific areas, and the operation will not allow skipping using the SkipArea Command, otherwise the field
996
+ * shall be a list of unique values that match the AreaID field of entries on the SupportedAreas list.
997
+ *
998
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1.1
999
+ */
1000
+ newAreas: import("../tlv/TlvObject.js").FieldType<number[]>;
1001
+ }>, import("../tlv/TlvObject.js").TypeFromFields<{
1002
+ /**
1003
+ * If the Status field is set to Success or UnsupportedArea, the server may use a non-empty string for the
1004
+ * StatusText field to provide additional information. For example, if Status is set to Unsupport
1005
+ *
1006
+ * edArea, the server may use StatusText to indicate which areas are unsupported.
1007
+ *
1008
+ * If the Status field is not set to Success, or UnsupportedArea, the StatusText field shall include a
1009
+ * vendor-defined error description which can be used to explain the error to the user. For example, if the
1010
+ * Status field is set to InvalidInMode, the StatusText field SHOULD indicate why the request is not allowed,
1011
+ * given the current mode of the device, which may involve other clusters.
1012
+ *
1013
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.2.1
1014
+ */
1015
+ status: import("../tlv/TlvObject.js").FieldType<SelectAreasStatus>;
1016
+ statusText: import("../tlv/TlvObject.js").FieldType<string>;
1017
+ }>, any>;
1018
+ /**
1019
+ * This command is used to skip the given area, and to attempt operating at other areas on the
1020
+ * SupportedAreas attribute list.
1021
+ *
1022
+ * This command shall NOT be implemented if the CurrentArea attribute and the Progress attribute are both
1023
+ * not implemented. Else, this command shall be optionally implemented.
1024
+ *
1025
+ * On receipt of this command the device shall respond with a SkipAreaResponse command.
1026
+ *
1027
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3
1028
+ */
1029
+ readonly skipArea: OptionalCommand<import("../tlv/TlvObject.js").TypeFromFields<{
1030
+ /**
1031
+ * The SkippedArea field indicates the area to be skipped.
1032
+ *
1033
+ * The SkippedArea field shall match an entry in the SupportedAreas list.
1034
+ *
1035
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3.1
1036
+ */
1037
+ skippedArea: import("../tlv/TlvObject.js").FieldType<number>;
1038
+ }>, import("../tlv/TlvObject.js").TypeFromFields<{
1039
+ /**
1040
+ * If the Status field is set to Success or InvalidAreaList, the server may use a non-empty string for the
1041
+ * StatusText field to provide additional information. For example, if Status is set to InvalidAreaList, the
1042
+ * server may use StatusText to indicate why this list is invalid.
1043
+ *
1044
+ * If the Status field is not set to Success or InvalidAreaList, the StatusText field shall include a vendor
1045
+ * defined error description which can be used to explain the error to the user. For example, if the Status
1046
+ * field is set to InvalidInMode, the StatusText field SHOULD indicate why the request is not allowed, given
1047
+ * the current mode of the device, which may involve other clusters.
1048
+ *
1049
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.4.1
1050
+ */
1051
+ status: import("../tlv/TlvObject.js").FieldType<SkipAreaStatus>;
1052
+ statusText: import("../tlv/TlvObject.js").FieldType<string>;
1053
+ }>, any>;
1054
+ };
1055
+ /**
1056
+ * This metadata controls which ServiceAreaCluster elements matter.js activates for specific feature
1057
+ * combinations.
1058
+ */
1059
+ readonly extensions: readonly [{
1060
+ readonly flags: {
1061
+ readonly maps: true;
1062
+ };
1063
+ readonly component: {
1064
+ readonly attributes: {
1065
+ /**
1066
+ * This attribute shall contain the list of supported maps.
1067
+ *
1068
+ * A map is a full or a partial representation of a home, known to the device. For example:
1069
+ *
1070
+ * • a single level home may be represented using a single map
1071
+ *
1072
+ * • a two level home may be represented using two maps, one for each level
1073
+ *
1074
+ * • a single level home may be represented using two maps, each including a different set of rooms, such
1075
+ * as "map of living room and kitchen" and "map of bedrooms and hallway"
1076
+ *
1077
+ * • a single level home may be represented using one map for the indoor areas (living room, bedrooms
1078
+ * etc.) and one for the outdoor areas (garden, swimming pool etc.)
1079
+ *
1080
+ * Each map includes one or more areas - see the SupportedAreas attribute. In the context of this cluster
1081
+ * specification, a map is effectively a group label for a set of areas, rather than a graphical
1082
+ * representation that the clients can display to the users. The clients that present the list of available
1083
+ * areas for user selection (see the SelectAreas command) may choose to filter the SupportedAreas list
1084
+ * based on the associated map. For example, the clients may allow the user to indicate that the device is
1085
+ * to operate on the first floor, and allow the user to choose only from the areas situated on that level.
1086
+ *
1087
+ * If empty, that indicates that the device is currently unable to provide this information. Each entry in
1088
+ * this list shall have a unique value for the MapID field.
1089
+ *
1090
+ * Each entry in this list shall have a unique value for the Name field.
1091
+ *
1092
+ * NOTE
1093
+ *
1094
+ * due to the maximum size of this list and to the fact that the entries may include strings (see the Name
1095
+ * field of the MapStruct data type), care must be taken by implementers to avoid creating a data structure
1096
+ * that is overly large, which can result in significant latency in accessing this attribute.
1097
+ *
1098
+ * The value of this attribute may change at any time via an out-of-band interaction outside of the server,
1099
+ * such as interactions with a user interface.
1100
+ *
1101
+ * When updating the SupportedMaps attribute list by deleting entries, or by setting the attribute to an
1102
+ * empty list, the SupportedLocations attribute shall be updated such that all entries in that list meet
1103
+ * the constraints indicated in the description of the SupportedLocations attribute. This may result in
1104
+ *
1105
+ * the server removing entries from the SupportedAreas attribute list. See the SupportedAreas attribute
1106
+ * description for the implications of changing that attribute.
1107
+ *
1108
+ * The SupportedMaps attribute list changes mentioned above SHOULD NOT be allowed while the device is
1109
+ * operating, to reduce the impact on the clients, and the potential confusion for the users.
1110
+ *
1111
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.2
1112
+ */
1113
+ readonly supportedMaps: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
1114
+ /**
1115
+ * This field shall represent the map’s identifier.
1116
+ *
1117
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.1
1118
+ */
1119
+ mapId: import("../tlv/TlvObject.js").FieldType<number>;
1120
+ /**
1121
+ * This field shall represent a human understandable map description. For example: "Main Floor", or "Second
1122
+ * Level".
1123
+ *
1124
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.2
1125
+ */
1126
+ name: import("../tlv/TlvObject.js").FieldType<string>;
1127
+ }>[], any>;
1128
+ };
1129
+ };
1130
+ }, {
1131
+ readonly flags: {
1132
+ readonly progressReporting: true;
1133
+ };
1134
+ readonly component: {
1135
+ readonly attributes: {
1136
+ /**
1137
+ * Indicates the operating status at one or more areas. Each entry in this list shall have a unique value
1138
+ * for the AreaID field.
1139
+ *
1140
+ * For each entry in this list, the AreaID field shall match an entry on the SupportedAreas attribute’s
1141
+ * list.
1142
+ *
1143
+ * When this attribute is empty, that represents that no progress information is currently available.
1144
+ *
1145
+ * If the SelectedAreas attribute is empty, indicating the device is not constrained to operate in any
1146
+ * specific areas, the Progress attribute list may change while the device operates, due to the device
1147
+ * adding new entries dynamically, when it determines which ones it can attempt to operate at.
1148
+ *
1149
+ * If the SelectedAreas attribute is not empty, and the device starts operating:
1150
+ *
1151
+ * • the Progress attribute list shall be updated so each entry of SelectedAreas has a matching Progress
1152
+ * list entry, based on the AreaID field
1153
+ *
1154
+ * • the length of the Progress and SelectedAreas list shall be the same
1155
+ *
1156
+ * • the entries in the Progress list shall be initialized by the server, by having their status set to
1157
+ * Pending or Operating, and the TotalOperationalTime field set to null
1158
+ *
1159
+ * When the device ends operation unexpectedly, such as due to an error, the server shall update all
1160
+ * Progress list entries with the Status field set to Operating or Pending to Skipped.
1161
+ *
1162
+ * When the device finishes operating, successfully or not, it shall NOT change the Progress attribute,
1163
+ * except in the case of an unexpected end of operation as described above, or due to changes to the
1164
+ * SupportedMaps or SupportedAreas attributes, so the clients can retrieve the progress information at that
1165
+ * time.
1166
+ *
1167
+ * NOTE
1168
+ *
1169
+ * if the device implements the Operational Status cluster, or a derivation of it, in case the device fails
1170
+ * to service any locations in the SelectedAreas list before ending the operation, it SHOULD use the
1171
+ * Operational Status cluster to indicate that the device was unable to complete the operation (see the
1172
+ * UnableToCompleteOperation error from that cluster specification). The clients SHOULD then read the
1173
+ * Progress attribute, and indicate which areas have been successfully serviced (marked as completed).
1174
+ *
1175
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.6
1176
+ */
1177
+ readonly progress: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
1178
+ /**
1179
+ * This field shall indicate the identifier of the area, and the identifier shall be an entry in the
1180
+ * SupportedAreas attribute’s list.
1181
+ *
1182
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.1
1183
+ */
1184
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
1185
+ /**
1186
+ * This field shall indicate the operational status of the device regarding the area indicated by the AreaID
1187
+ * field.
1188
+ *
1189
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.2
1190
+ */
1191
+ status: import("../tlv/TlvObject.js").FieldType<OperationalStatus>;
1192
+ /**
1193
+ * This field shall indicate the total operational time, in seconds, from when the device started to operate at
1194
+ * the area indicated by the AreaID field, until the operation finished, due to completion or due to skipping,
1195
+ * including any time spent while paused.
1196
+ *
1197
+ * A value of null indicates that the total operational time is unknown.
1198
+ *
1199
+ * There may be cases where the total operational time exceeds the maximum value that can be conveyed by this
1200
+ * attribute, and in such instances this attribute shall be populated with null.
1201
+ *
1202
+ * Null if the Status field is not set to Completed or Skipped.
1203
+ *
1204
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.3
1205
+ */
1206
+ totalOperationalTime: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
1207
+ /**
1208
+ * This field shall indicate the estimated time for the operation, in seconds, from when the device will start
1209
+ * operating at the area indicated by the AreaID field, until the operation completes, excluding any time spent
1210
+ * while not operating in the area.
1211
+ *
1212
+ * A value of null indicates that the estimated time is unknown. If the estimated time is unknown, or if it
1213
+ * exceeds the maximum value that can be conveyed by this attribute, this attribute shall be null.
1214
+ *
1215
+ * After initializing the ProgressStruct instance, the server SHOULD NOT change the value of this field, except
1216
+ * when repopulating the entire instance, to avoid excessive reporting of the Progress attribute changes.
1217
+ *
1218
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.4
1219
+ */
1220
+ initialTimeEstimate: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
1221
+ }>[], any>;
1222
+ };
1223
+ };
1224
+ }];
1225
+ };
1226
+ /**
1227
+ * @see {@link Cluster}
1228
+ */
1229
+ const ClusterInstance: MutableCluster<{
1230
+ readonly id: 336;
1231
+ readonly name: "ServiceArea";
1232
+ readonly revision: 1;
1233
+ readonly features: {
1234
+ /**
1235
+ * SelectWhileRunning
1236
+ *
1237
+ * This feature indicates whether this device allows changing the selected areas, by using the SelectAreas
1238
+ * command, while operating.
1239
+ *
1240
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.4.1
1241
+ */
1242
+ readonly selectWhileRunning: BitFlag;
1243
+ /**
1244
+ * ProgressReporting
1245
+ *
1246
+ * The device implements the progress reporting feature
1247
+ */
1248
+ readonly progressReporting: BitFlag;
1249
+ /**
1250
+ * Maps
1251
+ *
1252
+ * The device has map support
1253
+ */
1254
+ readonly maps: BitFlag;
1255
+ };
1256
+ readonly attributes: {
1257
+ /**
1258
+ * This attribute shall contain the list of areas that can be included in the SelectedAreas attribute’s
1259
+ * list. Each item in this list represents a unique area, as indicated by the AreaID field of AreaStruct.
1260
+ *
1261
+ * Each entry in this list shall have a unique value for the AreaID field.
1262
+ *
1263
+ * If the SupportedMaps attribute is not empty, each entry in this list shall have a unique value for the
1264
+ * combination of the MapID and AreaInfo fields.
1265
+ *
1266
+ * If the SupportedMaps attribute is empty, each entry in this list shall have a unique value for the
1267
+ * AreaInfo field and shall have the MapID field set to null.
1268
+ *
1269
+ * An empty value indicates that the device is currently unable to provide the list of supported areas.
1270
+ *
1271
+ * NOTE
1272
+ *
1273
+ * due to the maximum size of this list and to the fact that the entries may include strings (see
1274
+ * LocationName), care must be taken by implementers to avoid creating a data structure that is overly
1275
+ * large, which can result in significant latency in accessing this attribute.
1276
+ *
1277
+ * The value of this attribute may change at any time via an out-of-band interaction outside of the server,
1278
+ * such as interactions with a user interface, or due to internal device changes.
1279
+ *
1280
+ * When removing entries in the SupportedAreas attribute list the server shall adjust the values of the
1281
+ * SelectedAreas, CurrentArea, and Progress attributes such that they only reference valid entries in the
1282
+ * updated SupportedAreas attribute list. These changes to the SelectedAreas, CurrentArea, and Progress
1283
+ * attributes may result in the server setting some or all of them to empty (for SelectedAreas and
1284
+ * Progress) or null (for CurrentArea), or updating them with data that matches the constraints from the
1285
+ * description of the respective attributes. These actions are required to ensure having a consistent
1286
+ * representation of the maps and locations available to the clients.
1287
+ *
1288
+ * The SupportedAreas attribute list changes mentioned above SHOULD NOT be allowed while the device is
1289
+ * operating, to reduce the impact on the clients, and the potential confusion for the users.
1290
+ *
1291
+ * A few examples are provided below. Valid list of areas:
1292
+ *
1293
+ * • AreaID=0, LocationName="yellow bedroom", MapID=null
1294
+ *
1295
+ * • AreaID=1, LocationName="orange bedroom", MapID=null Valid list of areas:
1296
+ *
1297
+ * • AreaID=5, LocationName="hallway", MapID=1
1298
+ *
1299
+ * • AreaID=3, LocationName="hallway", MapID=2
1300
+ *
1301
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.1
1302
+ */
1303
+ readonly supportedAreas: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
1304
+ /**
1305
+ * This field shall represent the identifier of the area.
1306
+ *
1307
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.1
1308
+ */
1309
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
1310
+ /**
1311
+ * This field shall indicate the map identifier which the area is associated with. A value of null indicates
1312
+ * that the area is not associated with a map.
1313
+ *
1314
+ * If the SupportedMaps attribute is not empty, this field shall match the MapID field of an entry from the
1315
+ * SupportedMaps attribute’s list. If the SupportedMaps attribute is empty, this field shall be null.
1316
+ *
1317
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.2
1318
+ */
1319
+ mapId: import("../tlv/TlvObject.js").FieldType<number | null>;
1320
+ /**
1321
+ * This field shall contain data describing the area.
1322
+ *
1323
+ * This SHOULD be used by clients to determine the name and/or the full, or the partial, semantics of a certain
1324
+ * area.
1325
+ *
1326
+ * NOTE
1327
+ *
1328
+ * If any entries on the SupportedAreas attribute’s list have the AreaInfo field missing the semantic data, the
1329
+ * client may remind the user to assign the respective data.
1330
+ *
1331
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.3
1332
+ */
1333
+ areaInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
1334
+ /**
1335
+ * This field shall indicate the name of the area, floor number and/or area type. A few examples are provided
1336
+ * below.
1337
+ *
1338
+ * • An area can have LocationInfo’s LocationName field set to "blue room", and the AreaType field set to the
1339
+ * ID of a "Living Room" semantic tag. Clients wishing to direct the device to operate in (or service) the
1340
+ * living room can use this area.
1341
+ *
1342
+ * • An area can have LocationInfo set to null, the LandmarkInfo’s LandmarkTag field set to the ID of the
1343
+ * "Table" landmark semantic tag, and the RelativePositionTag field set to the ID of the "Under" position
1344
+ * semantic tag. With such an area indication, the client can request the device to operate in (or service)
1345
+ * the area located under the table.
1346
+ *
1347
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.1
1348
+ */
1349
+ locationInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
1350
+ locationName: import("../tlv/TlvObject.js").FieldType<string>;
1351
+ floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
1352
+ areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
1353
+ }> | null>;
1354
+ /**
1355
+ * This field shall indicate an association with a landmark. A value of null indicates that the information is
1356
+ * not available or known. For example, this may indicate that the area refers to a zone next to a table.
1357
+ *
1358
+ * If this field is not null, that indicates that the area is restricted to the zone where the landmark is
1359
+ * located, as indicated by the LandmarkTag and, if not null, by the RelativePositionTag fields, rather than to
1360
+ * the entire room or floor where the landmark is located, if those are indicated by the LocationInfo field.
1361
+ *
1362
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.2
1363
+ */
1364
+ landmarkInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
1365
+ /**
1366
+ * This field shall indicate that the area is associated with a landmark.
1367
+ *
1368
+ * This field shall be the ID of a landmark semantic tag, located within the Common Landmark Namespace. For
1369
+ * example, this tag may indicate that the area refers to an area next to a table.
1370
+ *
1371
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.1
1372
+ */
1373
+ landmarkTag: import("../tlv/TlvObject.js").FieldType<number>;
1374
+ /**
1375
+ * This field shall identify the position of the area relative to a landmark. This is a static description of a
1376
+ * zone known to the server, and this field never reflects the device’s own proximity or position relative to
1377
+ * the landmark, but that of the zone.
1378
+ *
1379
+ * This field shall be the ID of a relative position semantic tag, located within the Common Relative Position
1380
+ * Namespace.
1381
+ *
1382
+ * If the RelativePositionTag field is null, this field indicates proximity to the landmark. Otherwise, the
1383
+ * RelativePositionTag field indicates the position of the area relative to the landmark indicated by the
1384
+ * LandmarkTag field. For example, this tag, in conjunction with the LandmarkTag field, may indicate that the
1385
+ * area refers to a zone under a table.
1386
+ *
1387
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.2
1388
+ */
1389
+ relativePositionTag: import("../tlv/TlvObject.js").FieldType<number | null>;
1390
+ }> | null>;
1391
+ }>>;
1392
+ }>[], any>;
1393
+ /**
1394
+ * Indicates the set of areas where the device SHOULD attempt to operate.
1395
+ *
1396
+ * The mobile devices may travel without operating across any areas while attempting to reach the areas
1397
+ * indicated by the SelectedAreas attribute. For example, a robotic vacuum cleaner may drive without
1398
+ * cleaning when traveling without operating.
1399
+ *
1400
+ * If this attribute is empty, the device is not constrained to operate in any specific areas. If this
1401
+ * attribute is not empty:
1402
+ *
1403
+ * • each item in this list shall match the AreaID field of an entry in the SupportedAreas attribute’s
1404
+ * list
1405
+ *
1406
+ * • each entry in this list shall have a unique value
1407
+ *
1408
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.3
1409
+ */
1410
+ readonly selectedAreas: Attribute<number[], any>;
1411
+ /**
1412
+ * If the device is mobile, this attribute shall indicate the area where the device is currently located,
1413
+ * regardless of whether it is operating or not, such as while traveling between areas.
1414
+ *
1415
+ * If the device is not mobile and can operate at multiple areas sequentially, this attribute shall
1416
+ * indicate the area which is currently being serviced, or the area which is currently traversed by the
1417
+ * device. For example, a camera device may use this attribute to indicate which area it currently takes
1418
+ * video of (serviced area) or which area it currently has in view but not taking video of (e.g. an area
1419
+ * which is traversed while panning).
1420
+ *
1421
+ * NOTE
1422
+ *
1423
+ * A device may traverse an area regardless of the status of the area (pending, skipped, or completed).
1424
+ *
1425
+ * If a device can simultaneously operate at multiple areas, such as in the case of a sensor that can
1426
+ * monitor multiple areas at the same time, the CurrentArea attribute shall NOT be implemented, since it
1427
+ * doesn’t apply. Else this attribute shall be optionally implemented.
1428
+ *
1429
+ * A null value indicates that the device is currently unable to provide this information. For example, the
1430
+ * device is traversing an unknown area, or the SupportedAreas attribute was updated and the area where the
1431
+ * device is located was removed from that list.
1432
+ *
1433
+ * If not null, the value of this attribute shall match the AreaID field of an entry on the SupportedAreas
1434
+ * attribute’s list.
1435
+ *
1436
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.4
1437
+ */
1438
+ readonly currentArea: OptionalAttribute<number | null, any>;
1439
+ /**
1440
+ * Indicates the estimated Epoch time for completing operating at the area indicated by the CurrentArea
1441
+ * attribute, in seconds.
1442
+ *
1443
+ * A value of 0 means that the operation has completed.
1444
+ *
1445
+ * When this attribute is null, that represents that there is no time currently defined until operation
1446
+ * completion. This may happen, for example, because no operation is in progress or because the completion
1447
+ * time is unknown.
1448
+ *
1449
+ * Null if the CurrentArea attribute is null.
1450
+ *
1451
+ * If the Progress attribute is available, and it contains an entry matching CurrentArea, the server may
1452
+ * use the time estimate provided in the InitialTimeEstimate field of that entry to compute the
1453
+ * EstimatedEndTime attribute.
1454
+ *
1455
+ * The value of this attribute shall only be reported in the following cases:
1456
+ *
1457
+ * • when it changes to or from 0
1458
+ *
1459
+ * • when it decreases
1460
+ *
1461
+ * • when it changes to or from null
1462
+ *
1463
+ * NOTE
1464
+ *
1465
+ * If the device is capable of pausing its operation, this attribute may be set to null, to indicate that
1466
+ * completion time is unknown, or increment the value while being in the paused state.
1467
+ *
1468
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.5
1469
+ */
1470
+ readonly estimatedEndTime: Attribute<number | null, any>;
1471
+ };
1472
+ readonly commands: {
1473
+ /**
1474
+ * This command is used to select a set of device areas, where the device is to operate.
1475
+ *
1476
+ * On receipt of this command the device shall respond with a SelectAreasResponse command.
1477
+ *
1478
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1
1479
+ */
1480
+ readonly selectAreas: Command<import("../tlv/TlvObject.js").TypeFromFields<{
1481
+ /**
1482
+ * This field indicates which areas the device is to operate at.
1483
+ *
1484
+ * If this field is empty, that indicates that the device is to operate without being constrained to any
1485
+ * specific areas, and the operation will not allow skipping using the SkipArea Command, otherwise the field
1486
+ * shall be a list of unique values that match the AreaID field of entries on the SupportedAreas list.
1487
+ *
1488
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1.1
1489
+ */
1490
+ newAreas: import("../tlv/TlvObject.js").FieldType<number[]>;
1491
+ }>, import("../tlv/TlvObject.js").TypeFromFields<{
1492
+ /**
1493
+ * If the Status field is set to Success or UnsupportedArea, the server may use a non-empty string for the
1494
+ * StatusText field to provide additional information. For example, if Status is set to Unsupport
1495
+ *
1496
+ * edArea, the server may use StatusText to indicate which areas are unsupported.
1497
+ *
1498
+ * If the Status field is not set to Success, or UnsupportedArea, the StatusText field shall include a
1499
+ * vendor-defined error description which can be used to explain the error to the user. For example, if the
1500
+ * Status field is set to InvalidInMode, the StatusText field SHOULD indicate why the request is not allowed,
1501
+ * given the current mode of the device, which may involve other clusters.
1502
+ *
1503
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.2.1
1504
+ */
1505
+ status: import("../tlv/TlvObject.js").FieldType<SelectAreasStatus>;
1506
+ statusText: import("../tlv/TlvObject.js").FieldType<string>;
1507
+ }>, any>;
1508
+ /**
1509
+ * This command is used to skip the given area, and to attempt operating at other areas on the
1510
+ * SupportedAreas attribute list.
1511
+ *
1512
+ * This command shall NOT be implemented if the CurrentArea attribute and the Progress attribute are both
1513
+ * not implemented. Else, this command shall be optionally implemented.
1514
+ *
1515
+ * On receipt of this command the device shall respond with a SkipAreaResponse command.
1516
+ *
1517
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3
1518
+ */
1519
+ readonly skipArea: OptionalCommand<import("../tlv/TlvObject.js").TypeFromFields<{
1520
+ /**
1521
+ * The SkippedArea field indicates the area to be skipped.
1522
+ *
1523
+ * The SkippedArea field shall match an entry in the SupportedAreas list.
1524
+ *
1525
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3.1
1526
+ */
1527
+ skippedArea: import("../tlv/TlvObject.js").FieldType<number>;
1528
+ }>, import("../tlv/TlvObject.js").TypeFromFields<{
1529
+ /**
1530
+ * If the Status field is set to Success or InvalidAreaList, the server may use a non-empty string for the
1531
+ * StatusText field to provide additional information. For example, if Status is set to InvalidAreaList, the
1532
+ * server may use StatusText to indicate why this list is invalid.
1533
+ *
1534
+ * If the Status field is not set to Success or InvalidAreaList, the StatusText field shall include a vendor
1535
+ * defined error description which can be used to explain the error to the user. For example, if the Status
1536
+ * field is set to InvalidInMode, the StatusText field SHOULD indicate why the request is not allowed, given
1537
+ * the current mode of the device, which may involve other clusters.
1538
+ *
1539
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.4.1
1540
+ */
1541
+ status: import("../tlv/TlvObject.js").FieldType<SkipAreaStatus>;
1542
+ statusText: import("../tlv/TlvObject.js").FieldType<string>;
1543
+ }>, any>;
1544
+ };
1545
+ /**
1546
+ * This metadata controls which ServiceAreaCluster elements matter.js activates for specific feature
1547
+ * combinations.
1548
+ */
1549
+ readonly extensions: readonly [{
1550
+ readonly flags: {
1551
+ readonly maps: true;
1552
+ };
1553
+ readonly component: {
1554
+ readonly attributes: {
1555
+ /**
1556
+ * This attribute shall contain the list of supported maps.
1557
+ *
1558
+ * A map is a full or a partial representation of a home, known to the device. For example:
1559
+ *
1560
+ * • a single level home may be represented using a single map
1561
+ *
1562
+ * • a two level home may be represented using two maps, one for each level
1563
+ *
1564
+ * • a single level home may be represented using two maps, each including a different set of rooms, such
1565
+ * as "map of living room and kitchen" and "map of bedrooms and hallway"
1566
+ *
1567
+ * • a single level home may be represented using one map for the indoor areas (living room, bedrooms
1568
+ * etc.) and one for the outdoor areas (garden, swimming pool etc.)
1569
+ *
1570
+ * Each map includes one or more areas - see the SupportedAreas attribute. In the context of this cluster
1571
+ * specification, a map is effectively a group label for a set of areas, rather than a graphical
1572
+ * representation that the clients can display to the users. The clients that present the list of available
1573
+ * areas for user selection (see the SelectAreas command) may choose to filter the SupportedAreas list
1574
+ * based on the associated map. For example, the clients may allow the user to indicate that the device is
1575
+ * to operate on the first floor, and allow the user to choose only from the areas situated on that level.
1576
+ *
1577
+ * If empty, that indicates that the device is currently unable to provide this information. Each entry in
1578
+ * this list shall have a unique value for the MapID field.
1579
+ *
1580
+ * Each entry in this list shall have a unique value for the Name field.
1581
+ *
1582
+ * NOTE
1583
+ *
1584
+ * due to the maximum size of this list and to the fact that the entries may include strings (see the Name
1585
+ * field of the MapStruct data type), care must be taken by implementers to avoid creating a data structure
1586
+ * that is overly large, which can result in significant latency in accessing this attribute.
1587
+ *
1588
+ * The value of this attribute may change at any time via an out-of-band interaction outside of the server,
1589
+ * such as interactions with a user interface.
1590
+ *
1591
+ * When updating the SupportedMaps attribute list by deleting entries, or by setting the attribute to an
1592
+ * empty list, the SupportedLocations attribute shall be updated such that all entries in that list meet
1593
+ * the constraints indicated in the description of the SupportedLocations attribute. This may result in
1594
+ *
1595
+ * the server removing entries from the SupportedAreas attribute list. See the SupportedAreas attribute
1596
+ * description for the implications of changing that attribute.
1597
+ *
1598
+ * The SupportedMaps attribute list changes mentioned above SHOULD NOT be allowed while the device is
1599
+ * operating, to reduce the impact on the clients, and the potential confusion for the users.
1600
+ *
1601
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.2
1602
+ */
1603
+ readonly supportedMaps: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
1604
+ /**
1605
+ * This field shall represent the map’s identifier.
1606
+ *
1607
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.1
1608
+ */
1609
+ mapId: import("../tlv/TlvObject.js").FieldType<number>;
1610
+ /**
1611
+ * This field shall represent a human understandable map description. For example: "Main Floor", or "Second
1612
+ * Level".
1613
+ *
1614
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.2
1615
+ */
1616
+ name: import("../tlv/TlvObject.js").FieldType<string>;
1617
+ }>[], any>;
1618
+ };
1619
+ };
1620
+ }, {
1621
+ readonly flags: {
1622
+ readonly progressReporting: true;
1623
+ };
1624
+ readonly component: {
1625
+ readonly attributes: {
1626
+ /**
1627
+ * Indicates the operating status at one or more areas. Each entry in this list shall have a unique value
1628
+ * for the AreaID field.
1629
+ *
1630
+ * For each entry in this list, the AreaID field shall match an entry on the SupportedAreas attribute’s
1631
+ * list.
1632
+ *
1633
+ * When this attribute is empty, that represents that no progress information is currently available.
1634
+ *
1635
+ * If the SelectedAreas attribute is empty, indicating the device is not constrained to operate in any
1636
+ * specific areas, the Progress attribute list may change while the device operates, due to the device
1637
+ * adding new entries dynamically, when it determines which ones it can attempt to operate at.
1638
+ *
1639
+ * If the SelectedAreas attribute is not empty, and the device starts operating:
1640
+ *
1641
+ * • the Progress attribute list shall be updated so each entry of SelectedAreas has a matching Progress
1642
+ * list entry, based on the AreaID field
1643
+ *
1644
+ * • the length of the Progress and SelectedAreas list shall be the same
1645
+ *
1646
+ * • the entries in the Progress list shall be initialized by the server, by having their status set to
1647
+ * Pending or Operating, and the TotalOperationalTime field set to null
1648
+ *
1649
+ * When the device ends operation unexpectedly, such as due to an error, the server shall update all
1650
+ * Progress list entries with the Status field set to Operating or Pending to Skipped.
1651
+ *
1652
+ * When the device finishes operating, successfully or not, it shall NOT change the Progress attribute,
1653
+ * except in the case of an unexpected end of operation as described above, or due to changes to the
1654
+ * SupportedMaps or SupportedAreas attributes, so the clients can retrieve the progress information at that
1655
+ * time.
1656
+ *
1657
+ * NOTE
1658
+ *
1659
+ * if the device implements the Operational Status cluster, or a derivation of it, in case the device fails
1660
+ * to service any locations in the SelectedAreas list before ending the operation, it SHOULD use the
1661
+ * Operational Status cluster to indicate that the device was unable to complete the operation (see the
1662
+ * UnableToCompleteOperation error from that cluster specification). The clients SHOULD then read the
1663
+ * Progress attribute, and indicate which areas have been successfully serviced (marked as completed).
1664
+ *
1665
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.6.6
1666
+ */
1667
+ readonly progress: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
1668
+ /**
1669
+ * This field shall indicate the identifier of the area, and the identifier shall be an entry in the
1670
+ * SupportedAreas attribute’s list.
1671
+ *
1672
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.1
1673
+ */
1674
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
1675
+ /**
1676
+ * This field shall indicate the operational status of the device regarding the area indicated by the AreaID
1677
+ * field.
1678
+ *
1679
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.2
1680
+ */
1681
+ status: import("../tlv/TlvObject.js").FieldType<OperationalStatus>;
1682
+ /**
1683
+ * This field shall indicate the total operational time, in seconds, from when the device started to operate at
1684
+ * the area indicated by the AreaID field, until the operation finished, due to completion or due to skipping,
1685
+ * including any time spent while paused.
1686
+ *
1687
+ * A value of null indicates that the total operational time is unknown.
1688
+ *
1689
+ * There may be cases where the total operational time exceeds the maximum value that can be conveyed by this
1690
+ * attribute, and in such instances this attribute shall be populated with null.
1691
+ *
1692
+ * Null if the Status field is not set to Completed or Skipped.
1693
+ *
1694
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.3
1695
+ */
1696
+ totalOperationalTime: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
1697
+ /**
1698
+ * This field shall indicate the estimated time for the operation, in seconds, from when the device will start
1699
+ * operating at the area indicated by the AreaID field, until the operation completes, excluding any time spent
1700
+ * while not operating in the area.
1701
+ *
1702
+ * A value of null indicates that the estimated time is unknown. If the estimated time is unknown, or if it
1703
+ * exceeds the maximum value that can be conveyed by this attribute, this attribute shall be null.
1704
+ *
1705
+ * After initializing the ProgressStruct instance, the server SHOULD NOT change the value of this field, except
1706
+ * when repopulating the entire instance, to avoid excessive reporting of the Progress attribute changes.
1707
+ *
1708
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.4
1709
+ */
1710
+ initialTimeEstimate: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
1711
+ }>[], any>;
1712
+ };
1713
+ };
1714
+ }];
1715
+ }, []>;
1716
+ /**
1717
+ * This cluster provides an interface for controlling the areas where a device should operate, for reporting the
1718
+ * status at each area, and for querying the current area.
1719
+ *
1720
+ * The device may operate at one area at a time, as in the case of a mobile device, such as a robot. Other devices
1721
+ * may operate at (service) multiple areas simultaneously, as in the case of a sensor that can monitor multiple
1722
+ * areas. This cluster specification uses the term "operate" to describe both the operating and servicing actions,
1723
+ * regardless of the device type.
1724
+ *
1725
+ * The cluster allows the client to select one or more areas on the server, to indicate where the device SHOULD
1726
+ * attempt to operate. An area is one of a list of options that may be presented by a client for a user choice, or
1727
+ * understood by the client, via the semantic data of the area.
1728
+ *
1729
+ * The area semantic data is a combination of semantic tags, indicating one or more of the following: the building
1730
+ * floor, area type, landmark, and relative position.
1731
+ *
1732
+ * ServiceAreaCluster supports optional features that you can enable with the ServiceAreaCluster.with() factory
1733
+ * method.
1734
+ *
1735
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17
1736
+ */
1737
+ interface Cluster extends Identity<typeof ClusterInstance> {
1738
+ }
1739
+ const Cluster: Cluster;
1740
+ /**
1741
+ * @see {@link Complete}
1742
+ */
1743
+ const CompleteInstance: MutableCluster<{
1744
+ readonly id: import("#general").Branded<336, "ClusterId">;
1745
+ readonly name: "ServiceArea";
1746
+ readonly revision: 1;
1747
+ readonly features: {
1748
+ /**
1749
+ * SelectWhileRunning
1750
+ *
1751
+ * This feature indicates whether this device allows changing the selected areas, by using the SelectAreas
1752
+ * command, while operating.
1753
+ *
1754
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.4.1
1755
+ */
1756
+ readonly selectWhileRunning: BitFlag;
1757
+ /**
1758
+ * ProgressReporting
1759
+ *
1760
+ * The device implements the progress reporting feature
1761
+ */
1762
+ readonly progressReporting: BitFlag;
1763
+ /**
1764
+ * Maps
1765
+ *
1766
+ * The device has map support
1767
+ */
1768
+ readonly maps: BitFlag;
1769
+ };
1770
+ readonly attributes: {
1771
+ readonly supportedMaps: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
1772
+ /**
1773
+ * This field shall represent the map’s identifier.
1774
+ *
1775
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.1
1776
+ */
1777
+ mapId: import("../tlv/TlvObject.js").FieldType<number>;
1778
+ /**
1779
+ * This field shall represent a human understandable map description. For example: "Main Floor", or "Second
1780
+ * Level".
1781
+ *
1782
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.3.2
1783
+ */
1784
+ name: import("../tlv/TlvObject.js").FieldType<string>;
1785
+ }>[], any> & {
1786
+ readonly optional: true;
1787
+ readonly isConditional: true;
1788
+ readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
1789
+ readonly mandatoryIf: [] | [{
1790
+ maps: boolean;
1791
+ }];
1792
+ };
1793
+ readonly progress: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
1794
+ /**
1795
+ * This field shall indicate the identifier of the area, and the identifier shall be an entry in the
1796
+ * SupportedAreas attribute’s list.
1797
+ *
1798
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.1
1799
+ */
1800
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
1801
+ /**
1802
+ * This field shall indicate the operational status of the device regarding the area indicated by the AreaID
1803
+ * field.
1804
+ *
1805
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.2
1806
+ */
1807
+ status: import("../tlv/TlvObject.js").FieldType<OperationalStatus>;
1808
+ /**
1809
+ * This field shall indicate the total operational time, in seconds, from when the device started to operate at
1810
+ * the area indicated by the AreaID field, until the operation finished, due to completion or due to skipping,
1811
+ * including any time spent while paused.
1812
+ *
1813
+ * A value of null indicates that the total operational time is unknown.
1814
+ *
1815
+ * There may be cases where the total operational time exceeds the maximum value that can be conveyed by this
1816
+ * attribute, and in such instances this attribute shall be populated with null.
1817
+ *
1818
+ * Null if the Status field is not set to Completed or Skipped.
1819
+ *
1820
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.3
1821
+ */
1822
+ totalOperationalTime: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
1823
+ /**
1824
+ * This field shall indicate the estimated time for the operation, in seconds, from when the device will start
1825
+ * operating at the area indicated by the AreaID field, until the operation completes, excluding any time spent
1826
+ * while not operating in the area.
1827
+ *
1828
+ * A value of null indicates that the estimated time is unknown. If the estimated time is unknown, or if it
1829
+ * exceeds the maximum value that can be conveyed by this attribute, this attribute shall be null.
1830
+ *
1831
+ * After initializing the ProgressStruct instance, the server SHOULD NOT change the value of this field, except
1832
+ * when repopulating the entire instance, to avoid excessive reporting of the Progress attribute changes.
1833
+ *
1834
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.5.4
1835
+ */
1836
+ initialTimeEstimate: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
1837
+ }>[], any> & {
1838
+ readonly optional: true;
1839
+ readonly isConditional: true;
1840
+ readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
1841
+ readonly mandatoryIf: [] | [{
1842
+ progressReporting: boolean;
1843
+ }];
1844
+ };
1845
+ readonly supportedAreas: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
1846
+ /**
1847
+ * This field shall represent the identifier of the area.
1848
+ *
1849
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.1
1850
+ */
1851
+ areaId: import("../tlv/TlvObject.js").FieldType<number>;
1852
+ /**
1853
+ * This field shall indicate the map identifier which the area is associated with. A value of null indicates
1854
+ * that the area is not associated with a map.
1855
+ *
1856
+ * If the SupportedMaps attribute is not empty, this field shall match the MapID field of an entry from the
1857
+ * SupportedMaps attribute’s list. If the SupportedMaps attribute is empty, this field shall be null.
1858
+ *
1859
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.2
1860
+ */
1861
+ mapId: import("../tlv/TlvObject.js").FieldType<number | null>;
1862
+ /**
1863
+ * This field shall contain data describing the area.
1864
+ *
1865
+ * This SHOULD be used by clients to determine the name and/or the full, or the partial, semantics of a certain
1866
+ * area.
1867
+ *
1868
+ * NOTE
1869
+ *
1870
+ * If any entries on the SupportedAreas attribute’s list have the AreaInfo field missing the semantic data, the
1871
+ * client may remind the user to assign the respective data.
1872
+ *
1873
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.4.3
1874
+ */
1875
+ areaInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
1876
+ /**
1877
+ * This field shall indicate the name of the area, floor number and/or area type. A few examples are provided
1878
+ * below.
1879
+ *
1880
+ * • An area can have LocationInfo’s LocationName field set to "blue room", and the AreaType field set to the
1881
+ * ID of a "Living Room" semantic tag. Clients wishing to direct the device to operate in (or service) the
1882
+ * living room can use this area.
1883
+ *
1884
+ * • An area can have LocationInfo set to null, the LandmarkInfo’s LandmarkTag field set to the ID of the
1885
+ * "Table" landmark semantic tag, and the RelativePositionTag field set to the ID of the "Under" position
1886
+ * semantic tag. With such an area indication, the client can request the device to operate in (or service)
1887
+ * the area located under the table.
1888
+ *
1889
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.1
1890
+ */
1891
+ locationInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
1892
+ locationName: import("../tlv/TlvObject.js").FieldType<string>;
1893
+ floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
1894
+ areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
1895
+ }> | null>;
1896
+ /**
1897
+ * This field shall indicate an association with a landmark. A value of null indicates that the information is
1898
+ * not available or known. For example, this may indicate that the area refers to a zone next to a table.
1899
+ *
1900
+ * If this field is not null, that indicates that the area is restricted to the zone where the landmark is
1901
+ * located, as indicated by the LandmarkTag and, if not null, by the RelativePositionTag fields, rather than to
1902
+ * the entire room or floor where the landmark is located, if those are indicated by the LocationInfo field.
1903
+ *
1904
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.2.2
1905
+ */
1906
+ landmarkInfo: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
1907
+ /**
1908
+ * This field shall indicate that the area is associated with a landmark.
1909
+ *
1910
+ * This field shall be the ID of a landmark semantic tag, located within the Common Landmark Namespace. For
1911
+ * example, this tag may indicate that the area refers to an area next to a table.
1912
+ *
1913
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.1
1914
+ */
1915
+ landmarkTag: import("../tlv/TlvObject.js").FieldType<number>;
1916
+ /**
1917
+ * This field shall identify the position of the area relative to a landmark. This is a static description of a
1918
+ * zone known to the server, and this field never reflects the device’s own proximity or position relative to
1919
+ * the landmark, but that of the zone.
1920
+ *
1921
+ * This field shall be the ID of a relative position semantic tag, located within the Common Relative Position
1922
+ * Namespace.
1923
+ *
1924
+ * If the RelativePositionTag field is null, this field indicates proximity to the landmark. Otherwise, the
1925
+ * RelativePositionTag field indicates the position of the area relative to the landmark indicated by the
1926
+ * LandmarkTag field. For example, this tag, in conjunction with the LandmarkTag field, may indicate that the
1927
+ * area refers to a zone under a table.
1928
+ *
1929
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.5.1.2
1930
+ */
1931
+ relativePositionTag: import("../tlv/TlvObject.js").FieldType<number | null>;
1932
+ }> | null>;
1933
+ }>>;
1934
+ }>[], any>;
1935
+ readonly selectedAreas: Attribute<number[], any>;
1936
+ readonly currentArea: OptionalAttribute<number | null, any>;
1937
+ readonly estimatedEndTime: Attribute<number | null, any>;
1938
+ readonly clusterRevision: Attribute<number, never>;
1939
+ readonly featureMap: Attribute<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
1940
+ /**
1941
+ * SelectWhileRunning
1942
+ *
1943
+ * This feature indicates whether this device allows changing the selected areas, by using the SelectAreas
1944
+ * command, while operating.
1945
+ *
1946
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.4.1
1947
+ */
1948
+ readonly selectWhileRunning: BitFlag;
1949
+ /**
1950
+ * ProgressReporting
1951
+ *
1952
+ * The device implements the progress reporting feature
1953
+ */
1954
+ readonly progressReporting: BitFlag;
1955
+ /**
1956
+ * Maps
1957
+ *
1958
+ * The device has map support
1959
+ */
1960
+ readonly maps: BitFlag;
1961
+ }>, never>;
1962
+ readonly attributeList: Attribute<import("../index.js").AttributeId[], never>;
1963
+ readonly acceptedCommandList: Attribute<import("../index.js").CommandId[], never>;
1964
+ readonly generatedCommandList: Attribute<import("../index.js").CommandId[], never>;
1965
+ };
1966
+ readonly commands: {
1967
+ /**
1968
+ * This command is used to select a set of device areas, where the device is to operate.
1969
+ *
1970
+ * On receipt of this command the device shall respond with a SelectAreasResponse command.
1971
+ *
1972
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1
1973
+ */
1974
+ readonly selectAreas: Command<import("../tlv/TlvObject.js").TypeFromFields<{
1975
+ /**
1976
+ * This field indicates which areas the device is to operate at.
1977
+ *
1978
+ * If this field is empty, that indicates that the device is to operate without being constrained to any
1979
+ * specific areas, and the operation will not allow skipping using the SkipArea Command, otherwise the field
1980
+ * shall be a list of unique values that match the AreaID field of entries on the SupportedAreas list.
1981
+ *
1982
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.1.1
1983
+ */
1984
+ newAreas: import("../tlv/TlvObject.js").FieldType<number[]>;
1985
+ }>, import("../tlv/TlvObject.js").TypeFromFields<{
1986
+ /**
1987
+ * If the Status field is set to Success or UnsupportedArea, the server may use a non-empty string for the
1988
+ * StatusText field to provide additional information. For example, if Status is set to Unsupport
1989
+ *
1990
+ * edArea, the server may use StatusText to indicate which areas are unsupported.
1991
+ *
1992
+ * If the Status field is not set to Success, or UnsupportedArea, the StatusText field shall include a
1993
+ * vendor-defined error description which can be used to explain the error to the user. For example, if the
1994
+ * Status field is set to InvalidInMode, the StatusText field SHOULD indicate why the request is not allowed,
1995
+ * given the current mode of the device, which may involve other clusters.
1996
+ *
1997
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.2.1
1998
+ */
1999
+ status: import("../tlv/TlvObject.js").FieldType<SelectAreasStatus>;
2000
+ statusText: import("../tlv/TlvObject.js").FieldType<string>;
2001
+ }>, any>;
2002
+ /**
2003
+ * This command is used to skip the given area, and to attempt operating at other areas on the
2004
+ * SupportedAreas attribute list.
2005
+ *
2006
+ * This command shall NOT be implemented if the CurrentArea attribute and the Progress attribute are both
2007
+ * not implemented. Else, this command shall be optionally implemented.
2008
+ *
2009
+ * On receipt of this command the device shall respond with a SkipAreaResponse command.
2010
+ *
2011
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3
2012
+ */
2013
+ readonly skipArea: OptionalCommand<import("../tlv/TlvObject.js").TypeFromFields<{
2014
+ /**
2015
+ * The SkippedArea field indicates the area to be skipped.
2016
+ *
2017
+ * The SkippedArea field shall match an entry in the SupportedAreas list.
2018
+ *
2019
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.3.1
2020
+ */
2021
+ skippedArea: import("../tlv/TlvObject.js").FieldType<number>;
2022
+ }>, import("../tlv/TlvObject.js").TypeFromFields<{
2023
+ /**
2024
+ * If the Status field is set to Success or InvalidAreaList, the server may use a non-empty string for the
2025
+ * StatusText field to provide additional information. For example, if Status is set to InvalidAreaList, the
2026
+ * server may use StatusText to indicate why this list is invalid.
2027
+ *
2028
+ * If the Status field is not set to Success or InvalidAreaList, the StatusText field shall include a vendor
2029
+ * defined error description which can be used to explain the error to the user. For example, if the Status
2030
+ * field is set to InvalidInMode, the StatusText field SHOULD indicate why the request is not allowed, given
2031
+ * the current mode of the device, which may involve other clusters.
2032
+ *
2033
+ * @see {@link MatterSpecification.v13.Cluster} § 1.17.7.4.1
2034
+ */
2035
+ status: import("../tlv/TlvObject.js").FieldType<SkipAreaStatus>;
2036
+ statusText: import("../tlv/TlvObject.js").FieldType<string>;
2037
+ }>, any>;
2038
+ };
2039
+ }, []>;
2040
+ /**
2041
+ * This cluster supports all ServiceArea features. It may support illegal feature combinations.
2042
+ *
2043
+ * If you use this cluster you must manually specify which features are active and ensure the set of active
2044
+ * features is legal per the Matter specification.
2045
+ */
2046
+ interface Complete extends Identity<typeof CompleteInstance> {
2047
+ }
2048
+ const Complete: Complete;
2049
+ }
2050
+ export type ServiceAreaCluster = ServiceArea.Cluster;
2051
+ export declare const ServiceAreaCluster: ServiceArea.Cluster;
2052
+ //# sourceMappingURL=service-area.d.ts.map