@matterbridge/core 3.5.3

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 (295) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +22 -0
  3. package/dist/cli.d.ts +29 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +268 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/cliEmitter.d.ts +50 -0
  8. package/dist/cliEmitter.d.ts.map +1 -0
  9. package/dist/cliEmitter.js +49 -0
  10. package/dist/cliEmitter.js.map +1 -0
  11. package/dist/cliHistory.d.ts +48 -0
  12. package/dist/cliHistory.d.ts.map +1 -0
  13. package/dist/cliHistory.js +826 -0
  14. package/dist/cliHistory.js.map +1 -0
  15. package/dist/clusters/export.d.ts +2 -0
  16. package/dist/clusters/export.d.ts.map +1 -0
  17. package/dist/clusters/export.js +3 -0
  18. package/dist/clusters/export.js.map +1 -0
  19. package/dist/crypto/attestationDecoder.d.ts +180 -0
  20. package/dist/crypto/attestationDecoder.d.ts.map +1 -0
  21. package/dist/crypto/attestationDecoder.js +176 -0
  22. package/dist/crypto/attestationDecoder.js.map +1 -0
  23. package/dist/crypto/declarationDecoder.d.ts +72 -0
  24. package/dist/crypto/declarationDecoder.d.ts.map +1 -0
  25. package/dist/crypto/declarationDecoder.js +241 -0
  26. package/dist/crypto/declarationDecoder.js.map +1 -0
  27. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts +9 -0
  28. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts.map +1 -0
  29. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js +120 -0
  30. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js.map +1 -0
  31. package/dist/crypto/read-extensions.d.ts +2 -0
  32. package/dist/crypto/read-extensions.d.ts.map +1 -0
  33. package/dist/crypto/read-extensions.js +81 -0
  34. package/dist/crypto/read-extensions.js.map +1 -0
  35. package/dist/crypto/testData.d.ts +31 -0
  36. package/dist/crypto/testData.d.ts.map +1 -0
  37. package/dist/crypto/testData.js +131 -0
  38. package/dist/crypto/testData.js.map +1 -0
  39. package/dist/crypto/walk-der.d.ts +2 -0
  40. package/dist/crypto/walk-der.d.ts.map +1 -0
  41. package/dist/crypto/walk-der.js +165 -0
  42. package/dist/crypto/walk-der.js.map +1 -0
  43. package/dist/deviceManager.d.ts +135 -0
  44. package/dist/deviceManager.d.ts.map +1 -0
  45. package/dist/deviceManager.js +270 -0
  46. package/dist/deviceManager.js.map +1 -0
  47. package/dist/devices/airConditioner.d.ts +98 -0
  48. package/dist/devices/airConditioner.d.ts.map +1 -0
  49. package/dist/devices/airConditioner.js +74 -0
  50. package/dist/devices/airConditioner.js.map +1 -0
  51. package/dist/devices/basicVideoPlayer.d.ts +88 -0
  52. package/dist/devices/basicVideoPlayer.d.ts.map +1 -0
  53. package/dist/devices/basicVideoPlayer.js +155 -0
  54. package/dist/devices/basicVideoPlayer.js.map +1 -0
  55. package/dist/devices/batteryStorage.d.ts +48 -0
  56. package/dist/devices/batteryStorage.d.ts.map +1 -0
  57. package/dist/devices/batteryStorage.js +75 -0
  58. package/dist/devices/batteryStorage.js.map +1 -0
  59. package/dist/devices/castingVideoPlayer.d.ts +79 -0
  60. package/dist/devices/castingVideoPlayer.d.ts.map +1 -0
  61. package/dist/devices/castingVideoPlayer.js +101 -0
  62. package/dist/devices/castingVideoPlayer.js.map +1 -0
  63. package/dist/devices/cooktop.d.ts +61 -0
  64. package/dist/devices/cooktop.d.ts.map +1 -0
  65. package/dist/devices/cooktop.js +77 -0
  66. package/dist/devices/cooktop.js.map +1 -0
  67. package/dist/devices/dishwasher.d.ts +71 -0
  68. package/dist/devices/dishwasher.d.ts.map +1 -0
  69. package/dist/devices/dishwasher.js +130 -0
  70. package/dist/devices/dishwasher.js.map +1 -0
  71. package/dist/devices/evse.d.ts +76 -0
  72. package/dist/devices/evse.d.ts.map +1 -0
  73. package/dist/devices/evse.js +156 -0
  74. package/dist/devices/evse.js.map +1 -0
  75. package/dist/devices/export.d.ts +19 -0
  76. package/dist/devices/export.d.ts.map +1 -0
  77. package/dist/devices/export.js +23 -0
  78. package/dist/devices/export.js.map +1 -0
  79. package/dist/devices/extractorHood.d.ts +46 -0
  80. package/dist/devices/extractorHood.d.ts.map +1 -0
  81. package/dist/devices/extractorHood.js +78 -0
  82. package/dist/devices/extractorHood.js.map +1 -0
  83. package/dist/devices/heatPump.d.ts +47 -0
  84. package/dist/devices/heatPump.d.ts.map +1 -0
  85. package/dist/devices/heatPump.js +84 -0
  86. package/dist/devices/heatPump.js.map +1 -0
  87. package/dist/devices/laundryDryer.d.ts +67 -0
  88. package/dist/devices/laundryDryer.d.ts.map +1 -0
  89. package/dist/devices/laundryDryer.js +106 -0
  90. package/dist/devices/laundryDryer.js.map +1 -0
  91. package/dist/devices/laundryWasher.d.ts +81 -0
  92. package/dist/devices/laundryWasher.d.ts.map +1 -0
  93. package/dist/devices/laundryWasher.js +147 -0
  94. package/dist/devices/laundryWasher.js.map +1 -0
  95. package/dist/devices/microwaveOven.d.ts +168 -0
  96. package/dist/devices/microwaveOven.d.ts.map +1 -0
  97. package/dist/devices/microwaveOven.js +179 -0
  98. package/dist/devices/microwaveOven.js.map +1 -0
  99. package/dist/devices/oven.d.ts +105 -0
  100. package/dist/devices/oven.d.ts.map +1 -0
  101. package/dist/devices/oven.js +190 -0
  102. package/dist/devices/oven.js.map +1 -0
  103. package/dist/devices/refrigerator.d.ts +118 -0
  104. package/dist/devices/refrigerator.d.ts.map +1 -0
  105. package/dist/devices/refrigerator.js +186 -0
  106. package/dist/devices/refrigerator.js.map +1 -0
  107. package/dist/devices/roboticVacuumCleaner.d.ts +112 -0
  108. package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
  109. package/dist/devices/roboticVacuumCleaner.js +268 -0
  110. package/dist/devices/roboticVacuumCleaner.js.map +1 -0
  111. package/dist/devices/solarPower.d.ts +40 -0
  112. package/dist/devices/solarPower.d.ts.map +1 -0
  113. package/dist/devices/solarPower.js +59 -0
  114. package/dist/devices/solarPower.js.map +1 -0
  115. package/dist/devices/speaker.d.ts +87 -0
  116. package/dist/devices/speaker.d.ts.map +1 -0
  117. package/dist/devices/speaker.js +120 -0
  118. package/dist/devices/speaker.js.map +1 -0
  119. package/dist/devices/temperatureControl.d.ts +166 -0
  120. package/dist/devices/temperatureControl.d.ts.map +1 -0
  121. package/dist/devices/temperatureControl.js +78 -0
  122. package/dist/devices/temperatureControl.js.map +1 -0
  123. package/dist/devices/waterHeater.d.ts +111 -0
  124. package/dist/devices/waterHeater.d.ts.map +1 -0
  125. package/dist/devices/waterHeater.js +166 -0
  126. package/dist/devices/waterHeater.js.map +1 -0
  127. package/dist/dgram/export.d.ts +2 -0
  128. package/dist/dgram/export.d.ts.map +1 -0
  129. package/dist/dgram/export.js +2 -0
  130. package/dist/dgram/export.js.map +1 -0
  131. package/dist/export.d.ts +32 -0
  132. package/dist/export.d.ts.map +1 -0
  133. package/dist/export.js +39 -0
  134. package/dist/export.js.map +1 -0
  135. package/dist/frontend.d.ts +248 -0
  136. package/dist/frontend.d.ts.map +1 -0
  137. package/dist/frontend.js +2605 -0
  138. package/dist/frontend.js.map +1 -0
  139. package/dist/helpers.d.ts +48 -0
  140. package/dist/helpers.d.ts.map +1 -0
  141. package/dist/helpers.js +161 -0
  142. package/dist/helpers.js.map +1 -0
  143. package/dist/jestutils/export.d.ts +2 -0
  144. package/dist/jestutils/export.d.ts.map +1 -0
  145. package/dist/jestutils/export.js +2 -0
  146. package/dist/jestutils/export.js.map +1 -0
  147. package/dist/jestutils/jestHelpers.d.ts +349 -0
  148. package/dist/jestutils/jestHelpers.d.ts.map +1 -0
  149. package/dist/jestutils/jestHelpers.js +980 -0
  150. package/dist/jestutils/jestHelpers.js.map +1 -0
  151. package/dist/matter/behaviors.d.ts +2 -0
  152. package/dist/matter/behaviors.d.ts.map +1 -0
  153. package/dist/matter/behaviors.js +3 -0
  154. package/dist/matter/behaviors.js.map +1 -0
  155. package/dist/matter/clusters.d.ts +2 -0
  156. package/dist/matter/clusters.d.ts.map +1 -0
  157. package/dist/matter/clusters.js +3 -0
  158. package/dist/matter/clusters.js.map +1 -0
  159. package/dist/matter/devices.d.ts +2 -0
  160. package/dist/matter/devices.d.ts.map +1 -0
  161. package/dist/matter/devices.js +3 -0
  162. package/dist/matter/devices.js.map +1 -0
  163. package/dist/matter/endpoints.d.ts +2 -0
  164. package/dist/matter/endpoints.d.ts.map +1 -0
  165. package/dist/matter/endpoints.js +3 -0
  166. package/dist/matter/endpoints.js.map +1 -0
  167. package/dist/matter/export.d.ts +4 -0
  168. package/dist/matter/export.d.ts.map +1 -0
  169. package/dist/matter/export.js +5 -0
  170. package/dist/matter/export.js.map +1 -0
  171. package/dist/matter/types.d.ts +2 -0
  172. package/dist/matter/types.d.ts.map +1 -0
  173. package/dist/matter/types.js +3 -0
  174. package/dist/matter/types.js.map +1 -0
  175. package/dist/matterNode.d.ts +341 -0
  176. package/dist/matterNode.d.ts.map +1 -0
  177. package/dist/matterNode.js +1329 -0
  178. package/dist/matterNode.js.map +1 -0
  179. package/dist/matterbridge.d.ts +544 -0
  180. package/dist/matterbridge.d.ts.map +1 -0
  181. package/dist/matterbridge.js +2880 -0
  182. package/dist/matterbridge.js.map +1 -0
  183. package/dist/matterbridgeAccessoryPlatform.d.ts +49 -0
  184. package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
  185. package/dist/matterbridgeAccessoryPlatform.js +80 -0
  186. package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
  187. package/dist/matterbridgeBehaviors.d.ts +2428 -0
  188. package/dist/matterbridgeBehaviors.d.ts.map +1 -0
  189. package/dist/matterbridgeBehaviors.js +620 -0
  190. package/dist/matterbridgeBehaviors.js.map +1 -0
  191. package/dist/matterbridgeDeviceTypes.d.ts +744 -0
  192. package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
  193. package/dist/matterbridgeDeviceTypes.js +1312 -0
  194. package/dist/matterbridgeDeviceTypes.js.map +1 -0
  195. package/dist/matterbridgeDynamicPlatform.d.ts +49 -0
  196. package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
  197. package/dist/matterbridgeDynamicPlatform.js +80 -0
  198. package/dist/matterbridgeDynamicPlatform.js.map +1 -0
  199. package/dist/matterbridgeEndpoint.d.ts +1548 -0
  200. package/dist/matterbridgeEndpoint.d.ts.map +1 -0
  201. package/dist/matterbridgeEndpoint.js +2883 -0
  202. package/dist/matterbridgeEndpoint.js.map +1 -0
  203. package/dist/matterbridgeEndpointHelpers.d.ts +1855 -0
  204. package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
  205. package/dist/matterbridgeEndpointHelpers.js +1270 -0
  206. package/dist/matterbridgeEndpointHelpers.js.map +1 -0
  207. package/dist/matterbridgeEndpointTypes.d.ts +172 -0
  208. package/dist/matterbridgeEndpointTypes.d.ts.map +1 -0
  209. package/dist/matterbridgeEndpointTypes.js +28 -0
  210. package/dist/matterbridgeEndpointTypes.js.map +1 -0
  211. package/dist/matterbridgePlatform.d.ts +520 -0
  212. package/dist/matterbridgePlatform.d.ts.map +1 -0
  213. package/dist/matterbridgePlatform.js +921 -0
  214. package/dist/matterbridgePlatform.js.map +1 -0
  215. package/dist/mb_coap.d.ts +24 -0
  216. package/dist/mb_coap.d.ts.map +1 -0
  217. package/dist/mb_coap.js +89 -0
  218. package/dist/mb_coap.js.map +1 -0
  219. package/dist/mb_health.d.ts +77 -0
  220. package/dist/mb_health.d.ts.map +1 -0
  221. package/dist/mb_health.js +147 -0
  222. package/dist/mb_health.js.map +1 -0
  223. package/dist/mb_mdns.d.ts +24 -0
  224. package/dist/mb_mdns.d.ts.map +1 -0
  225. package/dist/mb_mdns.js +285 -0
  226. package/dist/mb_mdns.js.map +1 -0
  227. package/dist/pluginManager.d.ts +388 -0
  228. package/dist/pluginManager.d.ts.map +1 -0
  229. package/dist/pluginManager.js +1574 -0
  230. package/dist/pluginManager.js.map +1 -0
  231. package/dist/spawn.d.ts +33 -0
  232. package/dist/spawn.d.ts.map +1 -0
  233. package/dist/spawn.js +165 -0
  234. package/dist/spawn.js.map +1 -0
  235. package/dist/utils/export.d.ts +2 -0
  236. package/dist/utils/export.d.ts.map +1 -0
  237. package/dist/utils/export.js +2 -0
  238. package/dist/utils/export.js.map +1 -0
  239. package/dist/workers/brand.d.ts +25 -0
  240. package/dist/workers/brand.d.ts.map +1 -0
  241. package/dist/workers/brand.extend.d.ts +10 -0
  242. package/dist/workers/brand.extend.d.ts.map +1 -0
  243. package/dist/workers/brand.extend.js +15 -0
  244. package/dist/workers/brand.extend.js.map +1 -0
  245. package/dist/workers/brand.invalid.d.ts +9 -0
  246. package/dist/workers/brand.invalid.d.ts.map +1 -0
  247. package/dist/workers/brand.invalid.js +19 -0
  248. package/dist/workers/brand.invalid.js.map +1 -0
  249. package/dist/workers/brand.js +67 -0
  250. package/dist/workers/brand.js.map +1 -0
  251. package/dist/workers/clusterTypes.d.ts +47 -0
  252. package/dist/workers/clusterTypes.d.ts.map +1 -0
  253. package/dist/workers/clusterTypes.js +57 -0
  254. package/dist/workers/clusterTypes.js.map +1 -0
  255. package/dist/workers/frontendWorker.d.ts +2 -0
  256. package/dist/workers/frontendWorker.d.ts.map +1 -0
  257. package/dist/workers/frontendWorker.js +90 -0
  258. package/dist/workers/frontendWorker.js.map +1 -0
  259. package/dist/workers/helloWorld.d.ts +2 -0
  260. package/dist/workers/helloWorld.d.ts.map +1 -0
  261. package/dist/workers/helloWorld.js +135 -0
  262. package/dist/workers/helloWorld.js.map +1 -0
  263. package/dist/workers/matterWorker.d.ts +2 -0
  264. package/dist/workers/matterWorker.d.ts.map +1 -0
  265. package/dist/workers/matterWorker.js +104 -0
  266. package/dist/workers/matterWorker.js.map +1 -0
  267. package/dist/workers/matterbridgeWorker.d.ts +2 -0
  268. package/dist/workers/matterbridgeWorker.d.ts.map +1 -0
  269. package/dist/workers/matterbridgeWorker.js +75 -0
  270. package/dist/workers/matterbridgeWorker.js.map +1 -0
  271. package/dist/workers/messageLab.d.ts +134 -0
  272. package/dist/workers/messageLab.d.ts.map +1 -0
  273. package/dist/workers/messageLab.js +129 -0
  274. package/dist/workers/messageLab.js.map +1 -0
  275. package/dist/workers/testWorker.d.ts +2 -0
  276. package/dist/workers/testWorker.d.ts.map +1 -0
  277. package/dist/workers/testWorker.js +45 -0
  278. package/dist/workers/testWorker.js.map +1 -0
  279. package/dist/workers/usage.d.ts +19 -0
  280. package/dist/workers/usage.d.ts.map +1 -0
  281. package/dist/workers/usage.js +140 -0
  282. package/dist/workers/usage.js.map +1 -0
  283. package/dist/workers/workerManager.d.ts +115 -0
  284. package/dist/workers/workerManager.d.ts.map +1 -0
  285. package/dist/workers/workerManager.js +464 -0
  286. package/dist/workers/workerManager.js.map +1 -0
  287. package/dist/workers/workerServer.d.ts +126 -0
  288. package/dist/workers/workerServer.d.ts.map +1 -0
  289. package/dist/workers/workerServer.js +340 -0
  290. package/dist/workers/workerServer.js.map +1 -0
  291. package/dist/workers/workerTypes.d.ts +23 -0
  292. package/dist/workers/workerTypes.d.ts.map +1 -0
  293. package/dist/workers/workerTypes.js +3 -0
  294. package/dist/workers/workerTypes.js.map +1 -0
  295. package/package.json +120 -0
@@ -0,0 +1,1855 @@
1
+ /**
2
+ * This file contains the helpers for the class MatterbridgeEndpoint.
3
+ *
4
+ * @file matterbridgeEndpointHelpers.ts
5
+ * @author Luca Liguori
6
+ * @created 2024-10-01
7
+ * @version 2.1.0
8
+ * @license Apache-2.0
9
+ *
10
+ * Copyright 2024, 2025, 2026 Luca Liguori.
11
+ *
12
+ * Licensed under the Apache License, Version 2.0 (the "License");
13
+ * you may not use this file except in compliance with the License.
14
+ * You may obtain a copy of the License at
15
+ *
16
+ * http://www.apache.org/licenses/LICENSE-2.0
17
+ *
18
+ * Unless required by applicable law or agreed to in writing, software
19
+ * distributed under the License is distributed on an "AS IS" BASIS,
20
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ * See the License for the specific language governing permissions and
22
+ * limitations under the License.
23
+ */
24
+ import { AnsiLogger } from 'node-ansi-logger';
25
+ import { ActionContext, Behavior, ClusterBehavior, Endpoint } from '@matter/node';
26
+ import { ClusterId } from '@matter/types/datatype';
27
+ import { MeasurementType } from '@matter/types/globals';
28
+ import { ClusterType } from '@matter/types/cluster';
29
+ import { PowerSource } from '@matter/types/clusters/power-source';
30
+ import { ElectricalPowerMeasurement } from '@matter/types/clusters/electrical-power-measurement';
31
+ import { ElectricalEnergyMeasurement } from '@matter/types/clusters/electrical-energy-measurement';
32
+ import { TemperatureMeasurement } from '@matter/types/clusters/temperature-measurement';
33
+ import { RelativeHumidityMeasurement } from '@matter/types/clusters/relative-humidity-measurement';
34
+ import { PressureMeasurement } from '@matter/types/clusters/pressure-measurement';
35
+ import { FlowMeasurement } from '@matter/types/clusters/flow-measurement';
36
+ import { IlluminanceMeasurement } from '@matter/types/clusters/illuminance-measurement';
37
+ import { OccupancySensing } from '@matter/types/clusters/occupancy-sensing';
38
+ import { OperationalState } from '@matter/types/clusters/operational-state';
39
+ import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-management';
40
+ import { DeviceEnergyManagementMode } from '@matter/types/clusters/device-energy-management-mode';
41
+ import { ElectricalPowerMeasurementServer } from '@matter/node/behaviors/electrical-power-measurement';
42
+ import { ElectricalEnergyMeasurementServer } from '@matter/node/behaviors/electrical-energy-measurement';
43
+ import { OccupancySensingServer } from '@matter/node/behaviors/occupancy-sensing';
44
+ import { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
45
+ import { MatterbridgeEndpointCommands } from './matterbridgeEndpointTypes.js';
46
+ import { MatterbridgeOperationalStateServer, MatterbridgePowerSourceServer, MatterbridgeDeviceEnergyManagementServer, MatterbridgeDeviceEnergyManagementModeServer } from './matterbridgeBehaviors.js';
47
+ /**
48
+ * Capitalizes the first letter of a string.
49
+ *
50
+ * @param {string} name - The string to capitalize.
51
+ * @returns {string} The string with the first letter capitalized.
52
+ */
53
+ export declare function capitalizeFirstLetter(name: string): string;
54
+ /**
55
+ * Lowercases the first letter of a string.
56
+ *
57
+ * @param {string} name - The string to lowercase the first letter of.
58
+ * @returns {string} The string with the first letter lowercased.
59
+ */
60
+ export declare function lowercaseFirstLetter(name: string): string;
61
+ /**
62
+ * Checks if the device name contains non-Latin characters.
63
+ *
64
+ * @param {string} deviceName - The name of the device to check.
65
+ * @returns {boolean} Returns true if the device name contains non-Latin characters, false otherwise.
66
+ */
67
+ export declare function checkNotLatinCharacters(deviceName: string): boolean;
68
+ /**
69
+ * Generates a unique ID based on the device name.
70
+ *
71
+ * @param {string} deviceName - The name of the device to generate a unique ID for.
72
+ * @returns {string} A unique ID generated from the device name using MD5 hashing.
73
+ */
74
+ export declare function generateUniqueId(deviceName: string): string;
75
+ /**
76
+ * Generates a unique ID based on four parameters.
77
+ *
78
+ * @param {string} param1 - The first parameter.
79
+ * @param {string} param2 - The second parameter.
80
+ * @param {string} param3 - The third parameter.
81
+ * @param {string} param4 - The fourth parameter.
82
+ * @returns {string} A unique ID generated from the concatenation of the parameters using MD5 hashing.
83
+ */
84
+ export declare function createUniqueId(param1: string, param2: string, param3: string, param4: string): string;
85
+ /**
86
+ * Retrieves the features for a specific behavior.
87
+ *
88
+ * @param {Endpoint} endpoint - The endpoint to retrieve the features from.
89
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to retrieve the features for.
90
+ *
91
+ * @returns {Record<string, boolean | undefined>} The features for the specified behavior.
92
+ *
93
+ * @remarks Use with:
94
+ * ```typescript
95
+ * expect(featuresFor(device, 'powerSource').wired).toBe(true);
96
+ * ```
97
+ */
98
+ export declare function featuresFor(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string): Record<string, boolean | undefined>;
99
+ /**
100
+ * Maps a list of ClusterId to Behavior.Type for server clusters.
101
+ *
102
+ * @param {ClusterId[]} clusterServerList - The list of ClusterId to map.
103
+ * @returns {Behavior.Type[]} An array of Behavior.Type corresponding to the ClusterId in the server list.
104
+ */
105
+ export declare function getBehaviourTypesFromClusterServerIds(clusterServerList: ClusterId[]): Behavior.Type[];
106
+ /**
107
+ * Maps a list of ClusterId to Behavior.Type for client clusters.
108
+ *
109
+ * @param {ClusterId[]} clusterClientList - The list of ClusterId to map.
110
+ * @returns {Behavior.Type[]} An array of Behavior.Type corresponding to the ClusterId in the client list.
111
+ */
112
+ export declare function getBehaviourTypesFromClusterClientIds(clusterClientList: ClusterId[]): Behavior.Type[];
113
+ /**
114
+ * Maps a ClusterId to a Behavior.Type for server clusters.
115
+ *
116
+ * @param {ClusterId} clusterId - The ClusterId to map.
117
+ * @returns {Behavior.Type} The corresponding Behavior.Type for the given ClusterId.
118
+ */
119
+ export declare function getBehaviourTypeFromClusterServerId(clusterId: ClusterId): Behavior.Type;
120
+ /**
121
+ * Maps a ClusterId to a Behavior.Type for client clusters.
122
+ *
123
+ * @param {ClusterId} _clusterId - The ClusterId to map.
124
+ */
125
+ export declare function getBehaviourTypeFromClusterClientId(_clusterId: ClusterId): void;
126
+ /**
127
+ * Retrieves the Behavior.Type for a given cluster from the endpoint's supported behaviors.
128
+ *
129
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to retrieve the behavior from.
130
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to retrieve the behavior for.
131
+ * @returns {Behavior.Type | undefined} The Behavior.Type for the given cluster, or undefined if not found.
132
+ */
133
+ export declare function getBehavior(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string): Behavior.Type | undefined;
134
+ /**
135
+ * Invokes a command on the specified behavior of the endpoint. Used ONLY in Jest tests.
136
+ *
137
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to invoke the command on.
138
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to invoke the command on.
139
+ * @param {keyof MatterbridgeEndpointCommands} command - The command to invoke.
140
+ * @param {Record<string, boolean | number | bigint | string | object | null>} [params] - The parameters to pass to the command.
141
+ *
142
+ * @returns {Promise<boolean>} A promise that resolves to true if the command was invoked successfully, false otherwise.
143
+ *
144
+ * @deprecated Used ONLY in Jest tests.
145
+ */
146
+ export declare function invokeBehaviorCommand(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string, command: keyof MatterbridgeEndpointCommands, params?: Record<string, boolean | number | bigint | string | object | null>): Promise<boolean>;
147
+ /**
148
+ * Invokes the subscription handler on the specified cluster and attribute of the endpoint. Used ONLY in Jest tests.
149
+ *
150
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to invoke the subscription handler on.
151
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to invoke the subscription handler on.
152
+ * @param {string} attribute - The attribute to invoke the subscription handler on.
153
+ * @param {unknown} newValue - The new value of the attribute.
154
+ * @param {unknown} oldValue - The old value of the attribute.
155
+ *
156
+ * @returns {Promise<boolean>} A promise that resolves to true if the subscription handler was invoked successfully, false otherwise.
157
+ *
158
+ * @deprecated Used ONLY in Jest tests.
159
+ */
160
+ export declare function invokeSubscribeHandler(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string, attribute: string, newValue: unknown, oldValue: unknown): Promise<boolean>;
161
+ /**
162
+ * Adds required cluster servers to the specified endpoint based on the device types.
163
+ *
164
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to add the required cluster servers to.
165
+ * @returns {void}
166
+ */
167
+ export declare function addRequiredClusterServers(endpoint: MatterbridgeEndpoint): void;
168
+ /**
169
+ * Adds optional cluster servers to the specified endpoint based on the device types.
170
+ *
171
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to add the optional cluster servers to.
172
+ * @returns {void}
173
+ */
174
+ export declare function addOptionalClusterServers(endpoint: MatterbridgeEndpoint): void;
175
+ /**
176
+ * Adds cluster servers to the specified endpoint based on the provided server list.
177
+ *
178
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to add the cluster servers to.
179
+ * @param {ClusterId[]} serverList - The list of cluster IDs to add.
180
+ */
181
+ export declare function addClusterServers(endpoint: MatterbridgeEndpoint, serverList: ClusterId[]): void;
182
+ /**
183
+ * Adds a fixed label to the FixedLabel cluster. The FixedLabel cluster is created if it does not exist.
184
+ *
185
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to add the cluster servers to.
186
+ * @param {string} label - The label to add. Max 16 characters.
187
+ * @param {string} value - The value of the label. Max 16 characters.
188
+ */
189
+ export declare function addFixedLabel(endpoint: MatterbridgeEndpoint, label: string, value: string): Promise<void>;
190
+ /**
191
+ * Adds a user label to the UserLabel cluster. The UserLabel cluster is created if it does not exist.
192
+ *
193
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to add the cluster servers to.
194
+ * @param {string} label - The label to add. Max 16 characters.
195
+ * @param {string} value - The value of the label. Max 16 characters.
196
+ */
197
+ export declare function addUserLabel(endpoint: MatterbridgeEndpoint, label: string, value: string): Promise<void>;
198
+ /**
199
+ * Returns the options for a given behavior type.
200
+ *
201
+ * @param {T} type - The behavior type.
202
+ * @param {Behavior.Options<T>} options - The options for the behavior type.
203
+ * @returns {Behavior.Options<T>} The options for the behavior type.
204
+ */
205
+ export declare function optionsFor<T extends Behavior.Type>(type: T, options: Behavior.Options<T>): Behavior.Options<T>;
206
+ /**
207
+ * Retrieves the cluster ID.
208
+ *
209
+ * @param {Endpoint} endpoint - The endpoint to retrieve the cluster ID from.
210
+ * @param {ClusterId} cluster - The ID of the cluster.
211
+ * @returns {number | undefined} The ID of the cluster.
212
+ */
213
+ export declare function getClusterId(endpoint: Endpoint, cluster: string): number | undefined;
214
+ /**
215
+ * Retrieves the ID of an attribute from a cluster behavior.
216
+ *
217
+ * @param {Endpoint} endpoint - The endpoint to retrieve the attribute ID from.
218
+ * @param {string} cluster - The name of the cluster.
219
+ * @param {string} attribute - The name of the attribute.
220
+ * @returns {number | undefined} The ID of the attribute, or undefined if not found.
221
+ */
222
+ export declare function getAttributeId(endpoint: Endpoint, cluster: string, attribute: string): number | undefined;
223
+ /**
224
+ * Retrieves the value of the provided attribute from the given cluster.
225
+ *
226
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to retrieve the attribute from.
227
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to retrieve the attribute from.
228
+ * @param {string} attribute - The name of the attribute to retrieve.
229
+ * @param {AnsiLogger} [log] - (Optional) The logger to use for logging the retrieve. Errors are logged to the endpoint logger.
230
+ * @returns {any} The value of the attribute, or undefined if the attribute is not found.
231
+ */
232
+ export declare function getAttribute(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string, attribute: string, log?: AnsiLogger): any;
233
+ /**
234
+ * Sets the value of an attribute on a cluster server.
235
+ *
236
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to set the attribute on.
237
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to set the attribute on.
238
+ * @param {string} attribute - The name of the attribute.
239
+ * @param {boolean | number | bigint | string | object | null} value - The value to set for the attribute.
240
+ * @param {AnsiLogger} [log] - (Optional) The logger to use for logging the set. Errors are logged to the endpoint logger.
241
+ * @returns {Promise<boolean>} - A promise that resolves to a boolean indicating whether the attribute was successfully set.
242
+ */
243
+ export declare function setAttribute(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string, attribute: string, value: boolean | number | bigint | string | object | null, log?: AnsiLogger): Promise<boolean>;
244
+ /**
245
+ * Sets the value of an attribute on a cluster server.
246
+ *
247
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to update the attribute on.
248
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to update the attribute on.
249
+ * @param {string} attribute - The name of the attribute.
250
+ * @param {boolean | number | bigint | string | object | null} value - The value to set for the attribute.
251
+ * @param {AnsiLogger} [log] - (Optional) The logger to use for logging the update. Errors are logged to the endpoint logger.
252
+ * @returns {Promise<boolean>} - A promise that resolves to a boolean indicating whether the attribute was successfully set.
253
+ */
254
+ export declare function updateAttribute(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string, attribute: string, value: boolean | number | bigint | string | object | null, log?: AnsiLogger): Promise<boolean>;
255
+ /**
256
+ * Subscribes to the provided attribute on a cluster.
257
+ *
258
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to subscribe the attribute to.
259
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to subscribe the attribute to.
260
+ * @param {string} attribute - The name of the attribute to subscribe to.
261
+ * @param {(newValue: any, oldValue: any, context: ActionContext) => void} listener - A callback function that will be called when the attribute value changes. When context.offline === true then the change is locally generated and not from the controller.
262
+ * @param {AnsiLogger} [log] - Optional logger for logging errors and information.
263
+ * @returns {boolean} - A boolean indicating whether the subscription was successful.
264
+ *
265
+ * @remarks The listener function (cannot be async) will receive three parameters:
266
+ * - `newValue`: The new value of the attribute.
267
+ * - `oldValue`: The old value of the attribute.
268
+ * - `context`: The action context, which includes information about the action that triggered the change. When context.offline === true then the change is locally generated and not from the controller.
269
+ */
270
+ export declare function subscribeAttribute(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string, attribute: string, listener: (newValue: any, oldValue: any, context: ActionContext) => void, log?: AnsiLogger): Promise<boolean>;
271
+ /**
272
+ * Triggers an event on the specified cluster.
273
+ *
274
+ * @param {MatterbridgeEndpoint} endpoint - The endpoint to trigger the event on.
275
+ * @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The ID of the cluster.
276
+ * @param {string} event - The name of the event to trigger.
277
+ * @param {Record<string, boolean | number | bigint | string | object | undefined | null>} payload - The payload to pass to the event.
278
+ * @param {AnsiLogger} [log] - Optional logger for logging information.
279
+ *
280
+ * @returns {Promise<boolean>} - A promise that resolves to a boolean indicating whether the event was successfully triggered.
281
+ */
282
+ export declare function triggerEvent(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string, event: string, payload: Record<string, boolean | number | bigint | string | object | undefined | null>, log?: AnsiLogger): Promise<boolean>;
283
+ /** Utility Cluster Helpers */
284
+ /**
285
+ * Get the default power source wired cluster server options.
286
+ *
287
+ * @param {PowerSource.WiredCurrentType} wiredCurrentType - The type of wired current (default: PowerSource.WiredCurrentType.Ac)
288
+ * @returns {Behavior.Options<PowerSourceClusterServer>} The options for the power source wired cluster server.
289
+ *
290
+ * @remarks
291
+ * - order: The order of the power source is a persisted attribute that indicates the order in which the power sources are used.
292
+ * - description: The description of the power source is a fixed attribute that describes the power source type.
293
+ * - wiredCurrentType: The type of wired current is a fixed attribute that indicates the type of wired current used by the power source (AC or DC).
294
+ */
295
+ export declare function getDefaultPowerSourceWiredClusterServer(wiredCurrentType?: PowerSource.WiredCurrentType): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
296
+ readonly id: 47;
297
+ readonly name: "PowerSource";
298
+ readonly revision: 3;
299
+ readonly features: {
300
+ readonly wired: import("@matter/types").BitFlag;
301
+ readonly battery: import("@matter/types").BitFlag;
302
+ readonly rechargeable: import("@matter/types").BitFlag;
303
+ readonly replaceable: import("@matter/types").BitFlag;
304
+ };
305
+ readonly attributes: {
306
+ readonly status: import("@matter/types/cluster").Attribute<PowerSource.PowerSourceStatus, any>;
307
+ readonly order: import("@matter/types/cluster").Attribute<number, any>;
308
+ readonly description: import("@matter/types/cluster").FixedAttribute<string, any>;
309
+ readonly endpointList: import("@matter/types/cluster").Attribute<import("@matter/types/datatype").EndpointNumber[], any>;
310
+ };
311
+ readonly extensions: readonly [{
312
+ readonly flags: {
313
+ readonly wired: true;
314
+ };
315
+ readonly component: {
316
+ readonly attributes: {
317
+ readonly wiredAssessedInputVoltage: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
318
+ readonly wiredAssessedInputFrequency: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
319
+ readonly wiredCurrentType: import("@matter/types/cluster").FixedAttribute<PowerSource.WiredCurrentType, any>;
320
+ readonly wiredAssessedCurrent: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
321
+ readonly wiredNominalVoltage: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
322
+ readonly wiredMaximumCurrent: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
323
+ readonly wiredPresent: import("@matter/types/cluster").OptionalAttribute<boolean, any>;
324
+ readonly activeWiredFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.WiredFault[], any>;
325
+ };
326
+ readonly events: {
327
+ readonly wiredFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
328
+ current: import("@matter/types").FieldType<PowerSource.WiredFault[]>;
329
+ previous: import("@matter/types").FieldType<PowerSource.WiredFault[]>;
330
+ }>, any>;
331
+ };
332
+ };
333
+ }, {
334
+ readonly flags: {
335
+ readonly battery: true;
336
+ };
337
+ readonly component: {
338
+ readonly attributes: {
339
+ readonly batVoltage: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
340
+ readonly batPercentRemaining: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
341
+ readonly batTimeRemaining: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
342
+ readonly batChargeLevel: import("@matter/types/cluster").Attribute<PowerSource.BatChargeLevel, any>;
343
+ readonly batReplacementNeeded: import("@matter/types/cluster").Attribute<boolean, any>;
344
+ readonly batReplaceability: import("@matter/types/cluster").FixedAttribute<PowerSource.BatReplaceability, any>;
345
+ readonly batPresent: import("@matter/types/cluster").OptionalAttribute<boolean, any>;
346
+ readonly activeBatFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.BatFault[], any>;
347
+ };
348
+ readonly events: {
349
+ readonly batFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
350
+ current: import("@matter/types").FieldType<PowerSource.BatFault[]>;
351
+ previous: import("@matter/types").FieldType<PowerSource.BatFault[]>;
352
+ }>, any>;
353
+ };
354
+ };
355
+ }, {
356
+ readonly flags: {
357
+ readonly replaceable: true;
358
+ };
359
+ readonly component: {
360
+ readonly attributes: {
361
+ readonly batReplacementDescription: import("@matter/types/cluster").FixedAttribute<string, any>;
362
+ readonly batCommonDesignation: import("@matter/types/cluster").OptionalFixedAttribute<PowerSource.BatCommonDesignation, any>;
363
+ readonly batAnsiDesignation: import("@matter/types/cluster").OptionalFixedAttribute<string, any>;
364
+ readonly batIecDesignation: import("@matter/types/cluster").OptionalFixedAttribute<string, any>;
365
+ readonly batApprovedChemistry: import("@matter/types/cluster").OptionalFixedAttribute<PowerSource.BatApprovedChemistry, any>;
366
+ readonly batQuantity: import("@matter/types/cluster").FixedAttribute<number, any>;
367
+ };
368
+ };
369
+ }, {
370
+ readonly flags: {
371
+ readonly replaceable: true;
372
+ };
373
+ readonly component: {
374
+ readonly attributes: {
375
+ readonly batCapacity: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
376
+ };
377
+ };
378
+ }, {
379
+ readonly flags: {
380
+ readonly rechargeable: true;
381
+ };
382
+ readonly component: {
383
+ readonly attributes: {
384
+ readonly batCapacity: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
385
+ };
386
+ };
387
+ }, {
388
+ readonly flags: {
389
+ readonly rechargeable: true;
390
+ };
391
+ readonly component: {
392
+ readonly attributes: {
393
+ readonly batChargeState: import("@matter/types/cluster").Attribute<PowerSource.BatChargeState, any>;
394
+ readonly batTimeToFullCharge: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
395
+ readonly batFunctionalWhileCharging: import("@matter/types/cluster").Attribute<boolean, any>;
396
+ readonly batChargingCurrent: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
397
+ readonly activeBatChargeFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.BatChargeFault[], any>;
398
+ };
399
+ readonly events: {
400
+ readonly batChargeFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
401
+ current: import("@matter/types").FieldType<PowerSource.BatChargeFault[]>;
402
+ previous: import("@matter/types").FieldType<PowerSource.BatChargeFault[]>;
403
+ }>, any>;
404
+ };
405
+ };
406
+ }, {
407
+ readonly flags: {
408
+ readonly rechargeable: true;
409
+ readonly battery: false;
410
+ };
411
+ readonly component: false;
412
+ }, {
413
+ readonly flags: {
414
+ readonly replaceable: true;
415
+ readonly battery: false;
416
+ };
417
+ readonly component: false;
418
+ }, {
419
+ readonly flags: {
420
+ readonly wired: true;
421
+ readonly battery: true;
422
+ };
423
+ readonly component: false;
424
+ }, {
425
+ readonly flags: {
426
+ readonly wired: false;
427
+ readonly battery: false;
428
+ };
429
+ readonly component: false;
430
+ }];
431
+ }>, readonly [PowerSource.Feature.Wired]>, typeof MatterbridgePowerSourceServer>>;
432
+ /**
433
+ * Get the default power source battery cluster server options.
434
+ *
435
+ * @param {null | number} batPercentRemaining - The remaining battery percentage (default: null). The attribute is in the range 0-200.
436
+ * @param {PowerSource.BatChargeLevel} batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
437
+ * @param {null | number} batVoltage - The battery voltage (default: null).
438
+ * @param {PowerSource.BatReplaceability} batReplaceability - The replaceability of the battery (default: PowerSource.BatReplaceability.Unspecified).
439
+ * @returns {Behavior.Options<PowerSourceClusterServer>} The options for the power source replaceable battery cluster server.
440
+ *
441
+ * @remarks
442
+ * - order: The order of the power source is a persisted attribute that indicates the order in which the power sources are used.
443
+ * - description: The description of the power source is a fixed attribute that describes the power source type.
444
+ * - batReplaceability: The replaceability of the battery is a fixed attribute that indicates whether the battery is user-replaceable or not.
445
+ */
446
+ export declare function getDefaultPowerSourceBatteryClusterServer(batPercentRemaining?: null | number, batChargeLevel?: PowerSource.BatChargeLevel, batVoltage?: null | number, batReplaceability?: PowerSource.BatReplaceability): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
447
+ readonly id: 47;
448
+ readonly name: "PowerSource";
449
+ readonly revision: 3;
450
+ readonly features: {
451
+ readonly wired: import("@matter/types").BitFlag;
452
+ readonly battery: import("@matter/types").BitFlag;
453
+ readonly rechargeable: import("@matter/types").BitFlag;
454
+ readonly replaceable: import("@matter/types").BitFlag;
455
+ };
456
+ readonly attributes: {
457
+ readonly status: import("@matter/types/cluster").Attribute<PowerSource.PowerSourceStatus, any>;
458
+ readonly order: import("@matter/types/cluster").Attribute<number, any>;
459
+ readonly description: import("@matter/types/cluster").FixedAttribute<string, any>;
460
+ readonly endpointList: import("@matter/types/cluster").Attribute<import("@matter/types/datatype").EndpointNumber[], any>;
461
+ };
462
+ readonly extensions: readonly [{
463
+ readonly flags: {
464
+ readonly wired: true;
465
+ };
466
+ readonly component: {
467
+ readonly attributes: {
468
+ readonly wiredAssessedInputVoltage: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
469
+ readonly wiredAssessedInputFrequency: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
470
+ readonly wiredCurrentType: import("@matter/types/cluster").FixedAttribute<PowerSource.WiredCurrentType, any>;
471
+ readonly wiredAssessedCurrent: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
472
+ readonly wiredNominalVoltage: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
473
+ readonly wiredMaximumCurrent: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
474
+ readonly wiredPresent: import("@matter/types/cluster").OptionalAttribute<boolean, any>;
475
+ readonly activeWiredFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.WiredFault[], any>;
476
+ };
477
+ readonly events: {
478
+ readonly wiredFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
479
+ current: import("@matter/types").FieldType<PowerSource.WiredFault[]>;
480
+ previous: import("@matter/types").FieldType<PowerSource.WiredFault[]>;
481
+ }>, any>;
482
+ };
483
+ };
484
+ }, {
485
+ readonly flags: {
486
+ readonly battery: true;
487
+ };
488
+ readonly component: {
489
+ readonly attributes: {
490
+ readonly batVoltage: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
491
+ readonly batPercentRemaining: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
492
+ readonly batTimeRemaining: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
493
+ readonly batChargeLevel: import("@matter/types/cluster").Attribute<PowerSource.BatChargeLevel, any>;
494
+ readonly batReplacementNeeded: import("@matter/types/cluster").Attribute<boolean, any>;
495
+ readonly batReplaceability: import("@matter/types/cluster").FixedAttribute<PowerSource.BatReplaceability, any>;
496
+ readonly batPresent: import("@matter/types/cluster").OptionalAttribute<boolean, any>;
497
+ readonly activeBatFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.BatFault[], any>;
498
+ };
499
+ readonly events: {
500
+ readonly batFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
501
+ current: import("@matter/types").FieldType<PowerSource.BatFault[]>;
502
+ previous: import("@matter/types").FieldType<PowerSource.BatFault[]>;
503
+ }>, any>;
504
+ };
505
+ };
506
+ }, {
507
+ readonly flags: {
508
+ readonly replaceable: true;
509
+ };
510
+ readonly component: {
511
+ readonly attributes: {
512
+ readonly batReplacementDescription: import("@matter/types/cluster").FixedAttribute<string, any>;
513
+ readonly batCommonDesignation: import("@matter/types/cluster").OptionalFixedAttribute<PowerSource.BatCommonDesignation, any>;
514
+ readonly batAnsiDesignation: import("@matter/types/cluster").OptionalFixedAttribute<string, any>;
515
+ readonly batIecDesignation: import("@matter/types/cluster").OptionalFixedAttribute<string, any>;
516
+ readonly batApprovedChemistry: import("@matter/types/cluster").OptionalFixedAttribute<PowerSource.BatApprovedChemistry, any>;
517
+ readonly batQuantity: import("@matter/types/cluster").FixedAttribute<number, any>;
518
+ };
519
+ };
520
+ }, {
521
+ readonly flags: {
522
+ readonly replaceable: true;
523
+ };
524
+ readonly component: {
525
+ readonly attributes: {
526
+ readonly batCapacity: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
527
+ };
528
+ };
529
+ }, {
530
+ readonly flags: {
531
+ readonly rechargeable: true;
532
+ };
533
+ readonly component: {
534
+ readonly attributes: {
535
+ readonly batCapacity: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
536
+ };
537
+ };
538
+ }, {
539
+ readonly flags: {
540
+ readonly rechargeable: true;
541
+ };
542
+ readonly component: {
543
+ readonly attributes: {
544
+ readonly batChargeState: import("@matter/types/cluster").Attribute<PowerSource.BatChargeState, any>;
545
+ readonly batTimeToFullCharge: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
546
+ readonly batFunctionalWhileCharging: import("@matter/types/cluster").Attribute<boolean, any>;
547
+ readonly batChargingCurrent: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
548
+ readonly activeBatChargeFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.BatChargeFault[], any>;
549
+ };
550
+ readonly events: {
551
+ readonly batChargeFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
552
+ current: import("@matter/types").FieldType<PowerSource.BatChargeFault[]>;
553
+ previous: import("@matter/types").FieldType<PowerSource.BatChargeFault[]>;
554
+ }>, any>;
555
+ };
556
+ };
557
+ }, {
558
+ readonly flags: {
559
+ readonly rechargeable: true;
560
+ readonly battery: false;
561
+ };
562
+ readonly component: false;
563
+ }, {
564
+ readonly flags: {
565
+ readonly replaceable: true;
566
+ readonly battery: false;
567
+ };
568
+ readonly component: false;
569
+ }, {
570
+ readonly flags: {
571
+ readonly wired: true;
572
+ readonly battery: true;
573
+ };
574
+ readonly component: false;
575
+ }, {
576
+ readonly flags: {
577
+ readonly wired: false;
578
+ readonly battery: false;
579
+ };
580
+ readonly component: false;
581
+ }];
582
+ }>, readonly [PowerSource.Feature.Battery]>, typeof MatterbridgePowerSourceServer>>;
583
+ /**
584
+ * Get the default power source replaceable battery cluster server options.
585
+ *
586
+ * @param {number} batPercentRemaining - The remaining battery percentage (default: 100). The attribute is in the range 0-200.
587
+ * @param {PowerSource.BatChargeLevel} batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
588
+ * @param {number} batVoltage - The battery voltage (default: 1500).
589
+ * @param {string} batReplacementDescription - The description of the battery replacement (default: 'Battery type').
590
+ * @param {number} batQuantity - The quantity of the battery (default: 1).
591
+ * @param {PowerSource.BatReplaceability} batReplaceability - The replaceability of the battery (default: PowerSource.BatReplaceability.UserReplaceable).
592
+ * @returns {Behavior.Options<PowerSourceClusterServer>} The options for the power source replaceable battery cluster server.
593
+ *
594
+ * @remarks
595
+ * - order: The order of the power source is a persisted attribute that indicates the order in which the power sources are used.
596
+ * - description: The description of the power source is a fixed attribute that describes the power source type.
597
+ * - batReplaceability: The replaceability of the battery is a fixed attribute that indicates whether the battery is user-replaceable or not.
598
+ * - batReplacementDescription: The description of the battery replacement is a fixed attribute that describes the battery type.
599
+ * - batQuantity: The quantity of the battery is a fixed attribute that indicates how many batteries are present in the device.
600
+ */
601
+ export declare function getDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining?: number, batChargeLevel?: PowerSource.BatChargeLevel, batVoltage?: number, batReplacementDescription?: string, batQuantity?: number, batReplaceability?: PowerSource.BatReplaceability): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
602
+ readonly id: 47;
603
+ readonly name: "PowerSource";
604
+ readonly revision: 3;
605
+ readonly features: {
606
+ readonly wired: import("@matter/types").BitFlag;
607
+ readonly battery: import("@matter/types").BitFlag;
608
+ readonly rechargeable: import("@matter/types").BitFlag;
609
+ readonly replaceable: import("@matter/types").BitFlag;
610
+ };
611
+ readonly attributes: {
612
+ readonly status: import("@matter/types/cluster").Attribute<PowerSource.PowerSourceStatus, any>;
613
+ readonly order: import("@matter/types/cluster").Attribute<number, any>;
614
+ readonly description: import("@matter/types/cluster").FixedAttribute<string, any>;
615
+ readonly endpointList: import("@matter/types/cluster").Attribute<import("@matter/types/datatype").EndpointNumber[], any>;
616
+ };
617
+ readonly extensions: readonly [{
618
+ readonly flags: {
619
+ readonly wired: true;
620
+ };
621
+ readonly component: {
622
+ readonly attributes: {
623
+ readonly wiredAssessedInputVoltage: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
624
+ readonly wiredAssessedInputFrequency: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
625
+ readonly wiredCurrentType: import("@matter/types/cluster").FixedAttribute<PowerSource.WiredCurrentType, any>;
626
+ readonly wiredAssessedCurrent: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
627
+ readonly wiredNominalVoltage: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
628
+ readonly wiredMaximumCurrent: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
629
+ readonly wiredPresent: import("@matter/types/cluster").OptionalAttribute<boolean, any>;
630
+ readonly activeWiredFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.WiredFault[], any>;
631
+ };
632
+ readonly events: {
633
+ readonly wiredFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
634
+ current: import("@matter/types").FieldType<PowerSource.WiredFault[]>;
635
+ previous: import("@matter/types").FieldType<PowerSource.WiredFault[]>;
636
+ }>, any>;
637
+ };
638
+ };
639
+ }, {
640
+ readonly flags: {
641
+ readonly battery: true;
642
+ };
643
+ readonly component: {
644
+ readonly attributes: {
645
+ readonly batVoltage: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
646
+ readonly batPercentRemaining: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
647
+ readonly batTimeRemaining: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
648
+ readonly batChargeLevel: import("@matter/types/cluster").Attribute<PowerSource.BatChargeLevel, any>;
649
+ readonly batReplacementNeeded: import("@matter/types/cluster").Attribute<boolean, any>;
650
+ readonly batReplaceability: import("@matter/types/cluster").FixedAttribute<PowerSource.BatReplaceability, any>;
651
+ readonly batPresent: import("@matter/types/cluster").OptionalAttribute<boolean, any>;
652
+ readonly activeBatFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.BatFault[], any>;
653
+ };
654
+ readonly events: {
655
+ readonly batFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
656
+ current: import("@matter/types").FieldType<PowerSource.BatFault[]>;
657
+ previous: import("@matter/types").FieldType<PowerSource.BatFault[]>;
658
+ }>, any>;
659
+ };
660
+ };
661
+ }, {
662
+ readonly flags: {
663
+ readonly replaceable: true;
664
+ };
665
+ readonly component: {
666
+ readonly attributes: {
667
+ readonly batReplacementDescription: import("@matter/types/cluster").FixedAttribute<string, any>;
668
+ readonly batCommonDesignation: import("@matter/types/cluster").OptionalFixedAttribute<PowerSource.BatCommonDesignation, any>;
669
+ readonly batAnsiDesignation: import("@matter/types/cluster").OptionalFixedAttribute<string, any>;
670
+ readonly batIecDesignation: import("@matter/types/cluster").OptionalFixedAttribute<string, any>;
671
+ readonly batApprovedChemistry: import("@matter/types/cluster").OptionalFixedAttribute<PowerSource.BatApprovedChemistry, any>;
672
+ readonly batQuantity: import("@matter/types/cluster").FixedAttribute<number, any>;
673
+ };
674
+ };
675
+ }, {
676
+ readonly flags: {
677
+ readonly replaceable: true;
678
+ };
679
+ readonly component: {
680
+ readonly attributes: {
681
+ readonly batCapacity: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
682
+ };
683
+ };
684
+ }, {
685
+ readonly flags: {
686
+ readonly rechargeable: true;
687
+ };
688
+ readonly component: {
689
+ readonly attributes: {
690
+ readonly batCapacity: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
691
+ };
692
+ };
693
+ }, {
694
+ readonly flags: {
695
+ readonly rechargeable: true;
696
+ };
697
+ readonly component: {
698
+ readonly attributes: {
699
+ readonly batChargeState: import("@matter/types/cluster").Attribute<PowerSource.BatChargeState, any>;
700
+ readonly batTimeToFullCharge: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
701
+ readonly batFunctionalWhileCharging: import("@matter/types/cluster").Attribute<boolean, any>;
702
+ readonly batChargingCurrent: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
703
+ readonly activeBatChargeFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.BatChargeFault[], any>;
704
+ };
705
+ readonly events: {
706
+ readonly batChargeFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
707
+ current: import("@matter/types").FieldType<PowerSource.BatChargeFault[]>;
708
+ previous: import("@matter/types").FieldType<PowerSource.BatChargeFault[]>;
709
+ }>, any>;
710
+ };
711
+ };
712
+ }, {
713
+ readonly flags: {
714
+ readonly rechargeable: true;
715
+ readonly battery: false;
716
+ };
717
+ readonly component: false;
718
+ }, {
719
+ readonly flags: {
720
+ readonly replaceable: true;
721
+ readonly battery: false;
722
+ };
723
+ readonly component: false;
724
+ }, {
725
+ readonly flags: {
726
+ readonly wired: true;
727
+ readonly battery: true;
728
+ };
729
+ readonly component: false;
730
+ }, {
731
+ readonly flags: {
732
+ readonly wired: false;
733
+ readonly battery: false;
734
+ };
735
+ readonly component: false;
736
+ }];
737
+ }>, readonly [PowerSource.Feature.Battery, PowerSource.Feature.Replaceable]>, typeof MatterbridgePowerSourceServer>>;
738
+ /**
739
+ * Creates a default power source rechargeable battery cluster server.
740
+ *
741
+ * @param {number} [batPercentRemaining] - The remaining battery percentage (default: 100). The attribute is in the range 0-200.
742
+ * @param {PowerSource.BatChargeLevel} [batChargeLevel] - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
743
+ * @param {number} [batVoltage] - The battery voltage in mV (default: 1500).
744
+ * @param {PowerSource.BatReplaceability} [batReplaceability] - The replaceability of the battery (default: PowerSource.BatReplaceability.Unspecified).
745
+ * @returns {Behavior.Options<PowerSourceClusterServer>} The options for the power source rechargeable battery cluster server.
746
+ *
747
+ * @remarks
748
+ * - order: The order of the power source is a persisted attribute that indicates the order in which the power sources are used.
749
+ * - description: The description of the power source is a fixed attribute that describes the power source type.
750
+ * - batReplaceability: The replaceability of the battery is a fixed attribute that indicates whether the battery is user-replaceable or not.
751
+ */
752
+ export declare function getDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining?: number, batChargeLevel?: PowerSource.BatChargeLevel, batVoltage?: number, batReplaceability?: PowerSource.BatReplaceability): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
753
+ readonly id: 47;
754
+ readonly name: "PowerSource";
755
+ readonly revision: 3;
756
+ readonly features: {
757
+ readonly wired: import("@matter/types").BitFlag;
758
+ readonly battery: import("@matter/types").BitFlag;
759
+ readonly rechargeable: import("@matter/types").BitFlag;
760
+ readonly replaceable: import("@matter/types").BitFlag;
761
+ };
762
+ readonly attributes: {
763
+ readonly status: import("@matter/types/cluster").Attribute<PowerSource.PowerSourceStatus, any>;
764
+ readonly order: import("@matter/types/cluster").Attribute<number, any>;
765
+ readonly description: import("@matter/types/cluster").FixedAttribute<string, any>;
766
+ readonly endpointList: import("@matter/types/cluster").Attribute<import("@matter/types/datatype").EndpointNumber[], any>;
767
+ };
768
+ readonly extensions: readonly [{
769
+ readonly flags: {
770
+ readonly wired: true;
771
+ };
772
+ readonly component: {
773
+ readonly attributes: {
774
+ readonly wiredAssessedInputVoltage: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
775
+ readonly wiredAssessedInputFrequency: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
776
+ readonly wiredCurrentType: import("@matter/types/cluster").FixedAttribute<PowerSource.WiredCurrentType, any>;
777
+ readonly wiredAssessedCurrent: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
778
+ readonly wiredNominalVoltage: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
779
+ readonly wiredMaximumCurrent: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
780
+ readonly wiredPresent: import("@matter/types/cluster").OptionalAttribute<boolean, any>;
781
+ readonly activeWiredFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.WiredFault[], any>;
782
+ };
783
+ readonly events: {
784
+ readonly wiredFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
785
+ current: import("@matter/types").FieldType<PowerSource.WiredFault[]>;
786
+ previous: import("@matter/types").FieldType<PowerSource.WiredFault[]>;
787
+ }>, any>;
788
+ };
789
+ };
790
+ }, {
791
+ readonly flags: {
792
+ readonly battery: true;
793
+ };
794
+ readonly component: {
795
+ readonly attributes: {
796
+ readonly batVoltage: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
797
+ readonly batPercentRemaining: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
798
+ readonly batTimeRemaining: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
799
+ readonly batChargeLevel: import("@matter/types/cluster").Attribute<PowerSource.BatChargeLevel, any>;
800
+ readonly batReplacementNeeded: import("@matter/types/cluster").Attribute<boolean, any>;
801
+ readonly batReplaceability: import("@matter/types/cluster").FixedAttribute<PowerSource.BatReplaceability, any>;
802
+ readonly batPresent: import("@matter/types/cluster").OptionalAttribute<boolean, any>;
803
+ readonly activeBatFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.BatFault[], any>;
804
+ };
805
+ readonly events: {
806
+ readonly batFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
807
+ current: import("@matter/types").FieldType<PowerSource.BatFault[]>;
808
+ previous: import("@matter/types").FieldType<PowerSource.BatFault[]>;
809
+ }>, any>;
810
+ };
811
+ };
812
+ }, {
813
+ readonly flags: {
814
+ readonly replaceable: true;
815
+ };
816
+ readonly component: {
817
+ readonly attributes: {
818
+ readonly batReplacementDescription: import("@matter/types/cluster").FixedAttribute<string, any>;
819
+ readonly batCommonDesignation: import("@matter/types/cluster").OptionalFixedAttribute<PowerSource.BatCommonDesignation, any>;
820
+ readonly batAnsiDesignation: import("@matter/types/cluster").OptionalFixedAttribute<string, any>;
821
+ readonly batIecDesignation: import("@matter/types/cluster").OptionalFixedAttribute<string, any>;
822
+ readonly batApprovedChemistry: import("@matter/types/cluster").OptionalFixedAttribute<PowerSource.BatApprovedChemistry, any>;
823
+ readonly batQuantity: import("@matter/types/cluster").FixedAttribute<number, any>;
824
+ };
825
+ };
826
+ }, {
827
+ readonly flags: {
828
+ readonly replaceable: true;
829
+ };
830
+ readonly component: {
831
+ readonly attributes: {
832
+ readonly batCapacity: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
833
+ };
834
+ };
835
+ }, {
836
+ readonly flags: {
837
+ readonly rechargeable: true;
838
+ };
839
+ readonly component: {
840
+ readonly attributes: {
841
+ readonly batCapacity: import("@matter/types/cluster").OptionalFixedAttribute<number, any>;
842
+ };
843
+ };
844
+ }, {
845
+ readonly flags: {
846
+ readonly rechargeable: true;
847
+ };
848
+ readonly component: {
849
+ readonly attributes: {
850
+ readonly batChargeState: import("@matter/types/cluster").Attribute<PowerSource.BatChargeState, any>;
851
+ readonly batTimeToFullCharge: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
852
+ readonly batFunctionalWhileCharging: import("@matter/types/cluster").Attribute<boolean, any>;
853
+ readonly batChargingCurrent: import("@matter/types/cluster").OptionalAttribute<number | null, any>;
854
+ readonly activeBatChargeFaults: import("@matter/types/cluster").OptionalAttribute<PowerSource.BatChargeFault[], any>;
855
+ };
856
+ readonly events: {
857
+ readonly batChargeFaultChange: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
858
+ current: import("@matter/types").FieldType<PowerSource.BatChargeFault[]>;
859
+ previous: import("@matter/types").FieldType<PowerSource.BatChargeFault[]>;
860
+ }>, any>;
861
+ };
862
+ };
863
+ }, {
864
+ readonly flags: {
865
+ readonly rechargeable: true;
866
+ readonly battery: false;
867
+ };
868
+ readonly component: false;
869
+ }, {
870
+ readonly flags: {
871
+ readonly replaceable: true;
872
+ readonly battery: false;
873
+ };
874
+ readonly component: false;
875
+ }, {
876
+ readonly flags: {
877
+ readonly wired: true;
878
+ readonly battery: true;
879
+ };
880
+ readonly component: false;
881
+ }, {
882
+ readonly flags: {
883
+ readonly wired: false;
884
+ readonly battery: false;
885
+ };
886
+ readonly component: false;
887
+ }];
888
+ }>, readonly [PowerSource.Feature.Battery, PowerSource.Feature.Rechargeable]>, typeof MatterbridgePowerSourceServer>>;
889
+ /**
890
+ * Get the default Electrical Energy Measurement Cluster Server options with features ImportedEnergy, ExportedEnergy, and CumulativeEnergy.
891
+ *
892
+ * @param {number} energyImported - The total consumption value in mW/h.
893
+ * @param {number} energyExported - The total production value in mW/h.
894
+ * @returns {Behavior.Options<ElectricalEnergyMeasurementServer>} - The default options for the Electrical Energy Measurement Cluster Server.
895
+ */
896
+ export declare function getDefaultElectricalEnergyMeasurementClusterServer(energyImported?: number | bigint | null, energyExported?: number | bigint | null): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
897
+ readonly id: 145;
898
+ readonly name: "ElectricalEnergyMeasurement";
899
+ readonly revision: 1;
900
+ readonly features: {
901
+ readonly importedEnergy: import("@matter/types").BitFlag;
902
+ readonly exportedEnergy: import("@matter/types").BitFlag;
903
+ readonly cumulativeEnergy: import("@matter/types").BitFlag;
904
+ readonly periodicEnergy: import("@matter/types").BitFlag;
905
+ };
906
+ readonly attributes: {
907
+ readonly accuracy: import("@matter/types/cluster").FixedAttribute<import("@matter/types").TypeFromFields<{
908
+ measurementType: import("@matter/types").FieldType<import("@matter/types").MeasurementType>;
909
+ measured: import("@matter/types").FieldType<boolean>;
910
+ minMeasuredValue: import("@matter/types").FieldType<number | bigint>;
911
+ maxMeasuredValue: import("@matter/types").FieldType<number | bigint>;
912
+ accuracyRanges: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
913
+ rangeMin: import("@matter/types").FieldType<number | bigint>;
914
+ rangeMax: import("@matter/types").FieldType<number | bigint>;
915
+ percentMax: import("@matter/types").OptionalFieldType<number>;
916
+ percentMin: import("@matter/types").OptionalFieldType<number>;
917
+ percentTypical: import("@matter/types").OptionalFieldType<number>;
918
+ fixedMax: import("@matter/types").OptionalFieldType<number | bigint>;
919
+ fixedMin: import("@matter/types").OptionalFieldType<number | bigint>;
920
+ fixedTypical: import("@matter/types").OptionalFieldType<number | bigint>;
921
+ }>[]>;
922
+ }>, any>;
923
+ };
924
+ readonly extensions: readonly [{
925
+ readonly flags: {
926
+ readonly importedEnergy: true;
927
+ readonly cumulativeEnergy: true;
928
+ };
929
+ readonly component: {
930
+ readonly attributes: {
931
+ readonly cumulativeEnergyImported: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
932
+ energy: import("@matter/types").FieldType<number | bigint>;
933
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
934
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
935
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
936
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
937
+ }> | null, any>;
938
+ };
939
+ };
940
+ }, {
941
+ readonly flags: {
942
+ readonly exportedEnergy: true;
943
+ readonly cumulativeEnergy: true;
944
+ };
945
+ readonly component: {
946
+ readonly attributes: {
947
+ readonly cumulativeEnergyExported: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
948
+ energy: import("@matter/types").FieldType<number | bigint>;
949
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
950
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
951
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
952
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
953
+ }> | null, any>;
954
+ };
955
+ };
956
+ }, {
957
+ readonly flags: {
958
+ readonly importedEnergy: true;
959
+ readonly periodicEnergy: true;
960
+ };
961
+ readonly component: {
962
+ readonly attributes: {
963
+ readonly periodicEnergyImported: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
964
+ energy: import("@matter/types").FieldType<number | bigint>;
965
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
966
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
967
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
968
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
969
+ }> | null, any>;
970
+ };
971
+ };
972
+ }, {
973
+ readonly flags: {
974
+ readonly exportedEnergy: true;
975
+ readonly periodicEnergy: true;
976
+ };
977
+ readonly component: {
978
+ readonly attributes: {
979
+ readonly periodicEnergyExported: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
980
+ energy: import("@matter/types").FieldType<number | bigint>;
981
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
982
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
983
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
984
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
985
+ }> | null, any>;
986
+ };
987
+ };
988
+ }, {
989
+ readonly flags: {
990
+ readonly cumulativeEnergy: true;
991
+ };
992
+ readonly component: {
993
+ readonly attributes: {
994
+ readonly cumulativeEnergyReset: import("@matter/types/cluster").OptionalAttribute<import("@matter/types").TypeFromFields<{
995
+ importedResetTimestamp: import("@matter/types").OptionalFieldType<number | null>;
996
+ exportedResetTimestamp: import("@matter/types").OptionalFieldType<number | null>;
997
+ importedResetSystime: import("@matter/types").OptionalFieldType<number | bigint | null>;
998
+ exportedResetSystime: import("@matter/types").OptionalFieldType<number | bigint | null>;
999
+ }> | null, any>;
1000
+ };
1001
+ readonly events: {
1002
+ readonly cumulativeEnergyMeasured: import("@matter/types/cluster").Event<import("@matter/types").TypeFromFields<{
1003
+ energyImported: import("@matter/types").OptionalFieldType<import("@matter/types").TypeFromFields<{
1004
+ energy: import("@matter/types").FieldType<number | bigint>;
1005
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
1006
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
1007
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1008
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1009
+ }>>;
1010
+ energyExported: import("@matter/types").OptionalFieldType<import("@matter/types").TypeFromFields<{
1011
+ energy: import("@matter/types").FieldType<number | bigint>;
1012
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
1013
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
1014
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1015
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1016
+ }>>;
1017
+ }>, any>;
1018
+ };
1019
+ };
1020
+ }, {
1021
+ readonly flags: {
1022
+ readonly periodicEnergy: true;
1023
+ };
1024
+ readonly component: {
1025
+ readonly events: {
1026
+ readonly periodicEnergyMeasured: import("@matter/types/cluster").Event<import("@matter/types").TypeFromFields<{
1027
+ energyImported: import("@matter/types").OptionalFieldType<import("@matter/types").TypeFromFields<{
1028
+ energy: import("@matter/types").FieldType<number | bigint>;
1029
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
1030
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
1031
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1032
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1033
+ }>>;
1034
+ energyExported: import("@matter/types").OptionalFieldType<import("@matter/types").TypeFromFields<{
1035
+ energy: import("@matter/types").FieldType<number | bigint>;
1036
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
1037
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
1038
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1039
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1040
+ }>>;
1041
+ }>, any>;
1042
+ };
1043
+ };
1044
+ }, {
1045
+ readonly flags: {
1046
+ readonly importedEnergy: false;
1047
+ readonly exportedEnergy: false;
1048
+ };
1049
+ readonly component: false;
1050
+ }, {
1051
+ readonly flags: {
1052
+ readonly cumulativeEnergy: false;
1053
+ readonly periodicEnergy: false;
1054
+ };
1055
+ readonly component: false;
1056
+ }];
1057
+ }>, readonly [ElectricalEnergyMeasurement.Feature.ImportedEnergy, ElectricalEnergyMeasurement.Feature.ExportedEnergy, ElectricalEnergyMeasurement.Feature.CumulativeEnergy]>, typeof ElectricalEnergyMeasurementServer>>;
1058
+ /**
1059
+ * Get the default Electrical Power Measurement Cluster Server options with features AlternatingCurrent.
1060
+ *
1061
+ * @param {number} voltage - The voltage value in millivolts.
1062
+ * @param {number} current - The current value in milliamperes.
1063
+ * @param {number} power - The power value in milliwatts.
1064
+ * @param {number} frequency - The frequency value in millihertz.
1065
+ * @returns {Behavior.Options<ElectricalPowerMeasurementServer>} - The default options for the Electrical Power Measurement Cluster Server.
1066
+ */
1067
+ export declare function getDefaultElectricalPowerMeasurementClusterServer(voltage?: number | bigint | null, current?: number | bigint | null, power?: number | bigint | null, frequency?: number | bigint | null): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
1068
+ readonly id: 144;
1069
+ readonly name: "ElectricalPowerMeasurement";
1070
+ readonly revision: 3;
1071
+ readonly features: {
1072
+ readonly directCurrent: import("@matter/types").BitFlag;
1073
+ readonly alternatingCurrent: import("@matter/types").BitFlag;
1074
+ readonly polyphasePower: import("@matter/types").BitFlag;
1075
+ readonly harmonics: import("@matter/types").BitFlag;
1076
+ readonly powerQuality: import("@matter/types").BitFlag;
1077
+ };
1078
+ readonly attributes: {
1079
+ readonly powerMode: import("@matter/types/cluster").Attribute<ElectricalPowerMeasurement.PowerMode, any>;
1080
+ readonly numberOfMeasurementTypes: import("@matter/types/cluster").FixedAttribute<number, any>;
1081
+ readonly accuracy: import("@matter/types/cluster").FixedAttribute<import("@matter/types").TypeFromFields<{
1082
+ measurementType: import("@matter/types").FieldType<import("@matter/types").MeasurementType>;
1083
+ measured: import("@matter/types").FieldType<boolean>;
1084
+ minMeasuredValue: import("@matter/types").FieldType<number | bigint>;
1085
+ maxMeasuredValue: import("@matter/types").FieldType<number | bigint>;
1086
+ accuracyRanges: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1087
+ rangeMin: import("@matter/types").FieldType<number | bigint>;
1088
+ rangeMax: import("@matter/types").FieldType<number | bigint>;
1089
+ percentMax: import("@matter/types").OptionalFieldType<number>;
1090
+ percentMin: import("@matter/types").OptionalFieldType<number>;
1091
+ percentTypical: import("@matter/types").OptionalFieldType<number>;
1092
+ fixedMax: import("@matter/types").OptionalFieldType<number | bigint>;
1093
+ fixedMin: import("@matter/types").OptionalFieldType<number | bigint>;
1094
+ fixedTypical: import("@matter/types").OptionalFieldType<number | bigint>;
1095
+ }>[]>;
1096
+ }>[], any>;
1097
+ readonly ranges: import("@matter/types/cluster").OptionalAttribute<import("@matter/types").TypeFromFields<{
1098
+ measurementType: import("@matter/types").FieldType<ElectricalPowerMeasurement.MeasurementType>;
1099
+ min: import("@matter/types").FieldType<number | bigint>;
1100
+ max: import("@matter/types").FieldType<number | bigint>;
1101
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
1102
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
1103
+ minTimestamp: import("@matter/types").OptionalFieldType<number>;
1104
+ maxTimestamp: import("@matter/types").OptionalFieldType<number>;
1105
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1106
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1107
+ minSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1108
+ maxSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1109
+ }>[], any>;
1110
+ readonly voltage: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1111
+ readonly activeCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1112
+ readonly activePower: import("@matter/types/cluster").Attribute<number | bigint | null, any>;
1113
+ };
1114
+ readonly events: {
1115
+ readonly measurementPeriodRanges: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
1116
+ ranges: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1117
+ measurementType: import("@matter/types").FieldType<ElectricalPowerMeasurement.MeasurementType>;
1118
+ min: import("@matter/types").FieldType<number | bigint>;
1119
+ max: import("@matter/types").FieldType<number | bigint>;
1120
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
1121
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
1122
+ minTimestamp: import("@matter/types").OptionalFieldType<number>;
1123
+ maxTimestamp: import("@matter/types").OptionalFieldType<number>;
1124
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1125
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1126
+ minSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1127
+ maxSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1128
+ }>[]>;
1129
+ }>, any>;
1130
+ };
1131
+ readonly extensions: readonly [{
1132
+ readonly flags: {
1133
+ readonly alternatingCurrent: true;
1134
+ };
1135
+ readonly component: {
1136
+ readonly attributes: {
1137
+ readonly reactiveCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1138
+ readonly apparentCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1139
+ readonly reactivePower: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1140
+ readonly apparentPower: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1141
+ readonly rmsVoltage: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1142
+ readonly rmsCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1143
+ readonly rmsPower: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1144
+ readonly frequency: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1145
+ readonly powerFactor: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1146
+ };
1147
+ };
1148
+ }, {
1149
+ readonly flags: {
1150
+ readonly harmonics: true;
1151
+ };
1152
+ readonly component: {
1153
+ readonly attributes: {
1154
+ readonly harmonicCurrents: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
1155
+ order: import("@matter/types").FieldType<number>;
1156
+ measurement: import("@matter/types").FieldType<number | bigint | null>;
1157
+ }>[] | null, any>;
1158
+ };
1159
+ };
1160
+ }, {
1161
+ readonly flags: {
1162
+ readonly powerQuality: true;
1163
+ };
1164
+ readonly component: {
1165
+ readonly attributes: {
1166
+ readonly harmonicPhases: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
1167
+ order: import("@matter/types").FieldType<number>;
1168
+ measurement: import("@matter/types").FieldType<number | bigint | null>;
1169
+ }>[] | null, any>;
1170
+ };
1171
+ };
1172
+ }, {
1173
+ readonly flags: {
1174
+ readonly polyphasePower: true;
1175
+ };
1176
+ readonly component: {
1177
+ readonly attributes: {
1178
+ readonly neutralCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1179
+ };
1180
+ };
1181
+ }, {
1182
+ readonly flags: {
1183
+ readonly polyphasePower: true;
1184
+ readonly alternatingCurrent: false;
1185
+ };
1186
+ readonly component: false;
1187
+ }, {
1188
+ readonly flags: {
1189
+ readonly harmonics: true;
1190
+ readonly alternatingCurrent: false;
1191
+ };
1192
+ readonly component: false;
1193
+ }, {
1194
+ readonly flags: {
1195
+ readonly powerQuality: true;
1196
+ readonly alternatingCurrent: false;
1197
+ };
1198
+ readonly component: false;
1199
+ }, {
1200
+ readonly flags: {
1201
+ readonly directCurrent: false;
1202
+ readonly alternatingCurrent: false;
1203
+ };
1204
+ readonly component: false;
1205
+ }];
1206
+ }>, readonly [ElectricalPowerMeasurement.Feature.AlternatingCurrent]>, typeof ElectricalPowerMeasurementServer>>;
1207
+ /**
1208
+ * Get the default Electrical Apparent Power Measurement Cluster Server with features AlternatingCurrent.
1209
+ *
1210
+ * @param {number} voltage - The voltage value in millivolts.
1211
+ * @param {number} apparentCurrent - The current value in milliamperes.
1212
+ * @param {number} apparentPower - The apparent power value in millivoltamperes.
1213
+ * @param {number} frequency - The frequency value in millihertz.
1214
+ * @returns {Behavior.Options<ElectricalPowerMeasurementServer>} - The default options for the Electrical Apparent Power Measurement Cluster Server.
1215
+ */
1216
+ export declare function getApparentElectricalPowerMeasurementClusterServer(voltage?: number | bigint | null, apparentCurrent?: number | bigint | null, apparentPower?: number | bigint | null, frequency?: number | bigint | null): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
1217
+ readonly id: 144;
1218
+ readonly name: "ElectricalPowerMeasurement";
1219
+ readonly revision: 3;
1220
+ readonly features: {
1221
+ readonly directCurrent: import("@matter/types").BitFlag;
1222
+ readonly alternatingCurrent: import("@matter/types").BitFlag;
1223
+ readonly polyphasePower: import("@matter/types").BitFlag;
1224
+ readonly harmonics: import("@matter/types").BitFlag;
1225
+ readonly powerQuality: import("@matter/types").BitFlag;
1226
+ };
1227
+ readonly attributes: {
1228
+ readonly powerMode: import("@matter/types/cluster").Attribute<ElectricalPowerMeasurement.PowerMode, any>;
1229
+ readonly numberOfMeasurementTypes: import("@matter/types/cluster").FixedAttribute<number, any>;
1230
+ readonly accuracy: import("@matter/types/cluster").FixedAttribute<import("@matter/types").TypeFromFields<{
1231
+ measurementType: import("@matter/types").FieldType<import("@matter/types").MeasurementType>;
1232
+ measured: import("@matter/types").FieldType<boolean>;
1233
+ minMeasuredValue: import("@matter/types").FieldType<number | bigint>;
1234
+ maxMeasuredValue: import("@matter/types").FieldType<number | bigint>;
1235
+ accuracyRanges: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1236
+ rangeMin: import("@matter/types").FieldType<number | bigint>;
1237
+ rangeMax: import("@matter/types").FieldType<number | bigint>;
1238
+ percentMax: import("@matter/types").OptionalFieldType<number>;
1239
+ percentMin: import("@matter/types").OptionalFieldType<number>;
1240
+ percentTypical: import("@matter/types").OptionalFieldType<number>;
1241
+ fixedMax: import("@matter/types").OptionalFieldType<number | bigint>;
1242
+ fixedMin: import("@matter/types").OptionalFieldType<number | bigint>;
1243
+ fixedTypical: import("@matter/types").OptionalFieldType<number | bigint>;
1244
+ }>[]>;
1245
+ }>[], any>;
1246
+ readonly ranges: import("@matter/types/cluster").OptionalAttribute<import("@matter/types").TypeFromFields<{
1247
+ measurementType: import("@matter/types").FieldType<ElectricalPowerMeasurement.MeasurementType>;
1248
+ min: import("@matter/types").FieldType<number | bigint>;
1249
+ max: import("@matter/types").FieldType<number | bigint>;
1250
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
1251
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
1252
+ minTimestamp: import("@matter/types").OptionalFieldType<number>;
1253
+ maxTimestamp: import("@matter/types").OptionalFieldType<number>;
1254
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1255
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1256
+ minSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1257
+ maxSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1258
+ }>[], any>;
1259
+ readonly voltage: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1260
+ readonly activeCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1261
+ readonly activePower: import("@matter/types/cluster").Attribute<number | bigint | null, any>;
1262
+ };
1263
+ readonly events: {
1264
+ readonly measurementPeriodRanges: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
1265
+ ranges: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1266
+ measurementType: import("@matter/types").FieldType<ElectricalPowerMeasurement.MeasurementType>;
1267
+ min: import("@matter/types").FieldType<number | bigint>;
1268
+ max: import("@matter/types").FieldType<number | bigint>;
1269
+ startTimestamp: import("@matter/types").OptionalFieldType<number>;
1270
+ endTimestamp: import("@matter/types").OptionalFieldType<number>;
1271
+ minTimestamp: import("@matter/types").OptionalFieldType<number>;
1272
+ maxTimestamp: import("@matter/types").OptionalFieldType<number>;
1273
+ startSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1274
+ endSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1275
+ minSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1276
+ maxSystime: import("@matter/types").OptionalFieldType<number | bigint>;
1277
+ }>[]>;
1278
+ }>, any>;
1279
+ };
1280
+ readonly extensions: readonly [{
1281
+ readonly flags: {
1282
+ readonly alternatingCurrent: true;
1283
+ };
1284
+ readonly component: {
1285
+ readonly attributes: {
1286
+ readonly reactiveCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1287
+ readonly apparentCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1288
+ readonly reactivePower: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1289
+ readonly apparentPower: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1290
+ readonly rmsVoltage: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1291
+ readonly rmsCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1292
+ readonly rmsPower: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1293
+ readonly frequency: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1294
+ readonly powerFactor: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1295
+ };
1296
+ };
1297
+ }, {
1298
+ readonly flags: {
1299
+ readonly harmonics: true;
1300
+ };
1301
+ readonly component: {
1302
+ readonly attributes: {
1303
+ readonly harmonicCurrents: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
1304
+ order: import("@matter/types").FieldType<number>;
1305
+ measurement: import("@matter/types").FieldType<number | bigint | null>;
1306
+ }>[] | null, any>;
1307
+ };
1308
+ };
1309
+ }, {
1310
+ readonly flags: {
1311
+ readonly powerQuality: true;
1312
+ };
1313
+ readonly component: {
1314
+ readonly attributes: {
1315
+ readonly harmonicPhases: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
1316
+ order: import("@matter/types").FieldType<number>;
1317
+ measurement: import("@matter/types").FieldType<number | bigint | null>;
1318
+ }>[] | null, any>;
1319
+ };
1320
+ };
1321
+ }, {
1322
+ readonly flags: {
1323
+ readonly polyphasePower: true;
1324
+ };
1325
+ readonly component: {
1326
+ readonly attributes: {
1327
+ readonly neutralCurrent: import("@matter/types/cluster").OptionalAttribute<number | bigint | null, any>;
1328
+ };
1329
+ };
1330
+ }, {
1331
+ readonly flags: {
1332
+ readonly polyphasePower: true;
1333
+ readonly alternatingCurrent: false;
1334
+ };
1335
+ readonly component: false;
1336
+ }, {
1337
+ readonly flags: {
1338
+ readonly harmonics: true;
1339
+ readonly alternatingCurrent: false;
1340
+ };
1341
+ readonly component: false;
1342
+ }, {
1343
+ readonly flags: {
1344
+ readonly powerQuality: true;
1345
+ readonly alternatingCurrent: false;
1346
+ };
1347
+ readonly component: false;
1348
+ }, {
1349
+ readonly flags: {
1350
+ readonly directCurrent: false;
1351
+ readonly alternatingCurrent: false;
1352
+ };
1353
+ readonly component: false;
1354
+ }];
1355
+ }>, readonly [ElectricalPowerMeasurement.Feature.AlternatingCurrent]>, typeof ElectricalPowerMeasurementServer>>;
1356
+ /**
1357
+ * Get the default Device Energy Management Cluster Server with feature PowerForecastReporting and with the specified ESA type, ESA canGenerate, ESA state, and power limits.
1358
+ *
1359
+ * @param {DeviceEnergyManagement.EsaType} [esaType] - The ESA type. Defaults to `DeviceEnergyManagement.EsaType.Other`.
1360
+ * @param {boolean} [esaCanGenerate] - Indicates if the ESA can generate energy. Defaults to `false`.
1361
+ * @param {DeviceEnergyManagement.EsaState} [esaState] - The ESA state. Defaults to `DeviceEnergyManagement.EsaState.Online`.
1362
+ * @param {number} [absMinPower] - Indicate the minimum electrical power in mw that the ESA can consume when switched on. Defaults to `0` if not provided.
1363
+ * @param {number} [absMaxPower] - Indicate the maximum electrical power in mw that the ESA can consume when switched on. Defaults to `0` if not provided.
1364
+ * @returns {Behavior.Options<DeviceEnergyManagementClusterServer>} - The default options for the Device Energy Management Cluster Server.
1365
+ *
1366
+ * @remarks
1367
+ * - The forecast attribute is set to null, indicating that there is no forecast currently available.
1368
+ * - The ESA type and canGenerate attributes are fixed and cannot be changed after creation.
1369
+ * - The ESA state is set to Online by default.
1370
+ * - The absolute minimum and maximum power attributes are set to 0 by default.
1371
+ * - For example, a battery storage inverter that can charge its battery at a maximum power of 2000W and can
1372
+ * discharge the battery at a maximum power of 3000W, would have a absMinPower: -3000W, absMaxPower: 2000W.
1373
+ */
1374
+ export declare function getDefaultDeviceEnergyManagementClusterServer(esaType?: DeviceEnergyManagement.EsaType, esaCanGenerate?: boolean, esaState?: DeviceEnergyManagement.EsaState, absMinPower?: number, absMaxPower?: number): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
1375
+ readonly id: 152;
1376
+ readonly name: "DeviceEnergyManagement";
1377
+ readonly revision: 4;
1378
+ readonly features: {
1379
+ readonly powerAdjustment: import("@matter/types").BitFlag;
1380
+ readonly powerForecastReporting: import("@matter/types").BitFlag;
1381
+ readonly stateForecastReporting: import("@matter/types").BitFlag;
1382
+ readonly startTimeAdjustment: import("@matter/types").BitFlag;
1383
+ readonly pausable: import("@matter/types").BitFlag;
1384
+ readonly forecastAdjustment: import("@matter/types").BitFlag;
1385
+ readonly constraintBasedAdjustment: import("@matter/types").BitFlag;
1386
+ };
1387
+ readonly attributes: {
1388
+ readonly esaType: import("@matter/types/cluster").FixedAttribute<DeviceEnergyManagement.EsaType, any>;
1389
+ readonly esaCanGenerate: import("@matter/types/cluster").FixedAttribute<boolean, any>;
1390
+ readonly esaState: import("@matter/types/cluster").Attribute<DeviceEnergyManagement.EsaState, any>;
1391
+ readonly absMinPower: import("@matter/types/cluster").Attribute<number | bigint, any>;
1392
+ readonly absMaxPower: import("@matter/types/cluster").Attribute<number | bigint, any>;
1393
+ };
1394
+ readonly extensions: readonly [{
1395
+ readonly flags: {
1396
+ readonly powerAdjustment: true;
1397
+ };
1398
+ readonly component: {
1399
+ readonly attributes: {
1400
+ readonly powerAdjustmentCapability: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
1401
+ powerAdjustCapability: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1402
+ minPower: import("@matter/types").FieldType<number | bigint>;
1403
+ maxPower: import("@matter/types").FieldType<number | bigint>;
1404
+ minDuration: import("@matter/types").FieldType<number>;
1405
+ maxDuration: import("@matter/types").FieldType<number>;
1406
+ }>[] | null>;
1407
+ cause: import("@matter/types").FieldType<DeviceEnergyManagement.PowerAdjustReason>;
1408
+ }> | null, any>;
1409
+ };
1410
+ readonly commands: {
1411
+ readonly powerAdjustRequest: import("@matter/types/cluster").Command<import("@matter/types").TypeFromFields<{
1412
+ power: import("@matter/types").FieldType<number | bigint>;
1413
+ duration: import("@matter/types").FieldType<number>;
1414
+ cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
1415
+ }>, void, any>;
1416
+ readonly cancelPowerAdjustRequest: import("@matter/types/cluster").Command<void, void, any>;
1417
+ };
1418
+ readonly events: {
1419
+ readonly powerAdjustStart: import("@matter/types/cluster").Event<void, any>;
1420
+ readonly powerAdjustEnd: import("@matter/types/cluster").Event<import("@matter/types").TypeFromFields<{
1421
+ cause: import("@matter/types").FieldType<DeviceEnergyManagement.Cause>;
1422
+ duration: import("@matter/types").FieldType<number>;
1423
+ energyUse: import("@matter/types").FieldType<number | bigint>;
1424
+ }>, any>;
1425
+ };
1426
+ };
1427
+ }, {
1428
+ readonly flags: {
1429
+ readonly powerForecastReporting: true;
1430
+ };
1431
+ readonly component: {
1432
+ readonly attributes: {
1433
+ readonly forecast: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
1434
+ forecastId: import("@matter/types").FieldType<number>;
1435
+ activeSlotNumber: import("@matter/types").FieldType<number | null>;
1436
+ startTime: import("@matter/types").FieldType<number>;
1437
+ endTime: import("@matter/types").FieldType<number>;
1438
+ earliestStartTime: import("@matter/types").OptionalFieldType<number | null>;
1439
+ latestEndTime: import("@matter/types").OptionalFieldType<number>;
1440
+ isPausable: import("@matter/types").FieldType<boolean>;
1441
+ slots: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1442
+ minDuration: import("@matter/types").FieldType<number>;
1443
+ maxDuration: import("@matter/types").FieldType<number>;
1444
+ defaultDuration: import("@matter/types").FieldType<number>;
1445
+ elapsedSlotTime: import("@matter/types").FieldType<number>;
1446
+ remainingSlotTime: import("@matter/types").FieldType<number>;
1447
+ slotIsPausable: import("@matter/types").OptionalFieldType<boolean>;
1448
+ minPauseDuration: import("@matter/types").OptionalFieldType<number>;
1449
+ maxPauseDuration: import("@matter/types").OptionalFieldType<number>;
1450
+ manufacturerEsaState: import("@matter/types").OptionalFieldType<number>;
1451
+ nominalPower: import("@matter/types").OptionalFieldType<number | bigint>;
1452
+ minPower: import("@matter/types").OptionalFieldType<number | bigint>;
1453
+ maxPower: import("@matter/types").OptionalFieldType<number | bigint>;
1454
+ nominalEnergy: import("@matter/types").OptionalFieldType<number | bigint>;
1455
+ costs: import("@matter/types").OptionalFieldType<import("@matter/types").TypeFromFields<{
1456
+ costType: import("@matter/types").FieldType<DeviceEnergyManagement.CostType>;
1457
+ value: import("@matter/types").FieldType<number>;
1458
+ decimalPoints: import("@matter/types").FieldType<number>;
1459
+ currency: import("@matter/types").OptionalFieldType<number>;
1460
+ }>[]>;
1461
+ minPowerAdjustment: import("@matter/types").OptionalFieldType<number | bigint>;
1462
+ maxPowerAdjustment: import("@matter/types").OptionalFieldType<number | bigint>;
1463
+ minDurationAdjustment: import("@matter/types").OptionalFieldType<number>;
1464
+ maxDurationAdjustment: import("@matter/types").OptionalFieldType<number>;
1465
+ }>[]>;
1466
+ forecastUpdateReason: import("@matter/types").FieldType<DeviceEnergyManagement.ForecastUpdateReason>;
1467
+ }> | null, any>;
1468
+ };
1469
+ };
1470
+ }, {
1471
+ readonly flags: {
1472
+ readonly stateForecastReporting: true;
1473
+ };
1474
+ readonly component: {
1475
+ readonly attributes: {
1476
+ readonly forecast: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromFields<{
1477
+ forecastId: import("@matter/types").FieldType<number>;
1478
+ activeSlotNumber: import("@matter/types").FieldType<number | null>;
1479
+ startTime: import("@matter/types").FieldType<number>;
1480
+ endTime: import("@matter/types").FieldType<number>;
1481
+ earliestStartTime: import("@matter/types").OptionalFieldType<number | null>;
1482
+ latestEndTime: import("@matter/types").OptionalFieldType<number>;
1483
+ isPausable: import("@matter/types").FieldType<boolean>;
1484
+ slots: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1485
+ minDuration: import("@matter/types").FieldType<number>;
1486
+ maxDuration: import("@matter/types").FieldType<number>;
1487
+ defaultDuration: import("@matter/types").FieldType<number>;
1488
+ elapsedSlotTime: import("@matter/types").FieldType<number>;
1489
+ remainingSlotTime: import("@matter/types").FieldType<number>;
1490
+ slotIsPausable: import("@matter/types").OptionalFieldType<boolean>;
1491
+ minPauseDuration: import("@matter/types").OptionalFieldType<number>;
1492
+ maxPauseDuration: import("@matter/types").OptionalFieldType<number>;
1493
+ manufacturerEsaState: import("@matter/types").OptionalFieldType<number>;
1494
+ nominalPower: import("@matter/types").OptionalFieldType<number | bigint>;
1495
+ minPower: import("@matter/types").OptionalFieldType<number | bigint>;
1496
+ maxPower: import("@matter/types").OptionalFieldType<number | bigint>;
1497
+ nominalEnergy: import("@matter/types").OptionalFieldType<number | bigint>;
1498
+ costs: import("@matter/types").OptionalFieldType<import("@matter/types").TypeFromFields<{
1499
+ costType: import("@matter/types").FieldType<DeviceEnergyManagement.CostType>;
1500
+ value: import("@matter/types").FieldType<number>;
1501
+ decimalPoints: import("@matter/types").FieldType<number>;
1502
+ currency: import("@matter/types").OptionalFieldType<number>;
1503
+ }>[]>;
1504
+ minPowerAdjustment: import("@matter/types").OptionalFieldType<number | bigint>;
1505
+ maxPowerAdjustment: import("@matter/types").OptionalFieldType<number | bigint>;
1506
+ minDurationAdjustment: import("@matter/types").OptionalFieldType<number>;
1507
+ maxDurationAdjustment: import("@matter/types").OptionalFieldType<number>;
1508
+ }>[]>;
1509
+ forecastUpdateReason: import("@matter/types").FieldType<DeviceEnergyManagement.ForecastUpdateReason>;
1510
+ }> | null, any>;
1511
+ };
1512
+ };
1513
+ }, {
1514
+ readonly flags: {
1515
+ readonly powerAdjustment: true;
1516
+ };
1517
+ readonly component: {
1518
+ readonly attributes: {
1519
+ readonly optOutState: import("@matter/types/cluster").Attribute<DeviceEnergyManagement.OptOutState, any>;
1520
+ };
1521
+ };
1522
+ }, {
1523
+ readonly flags: {
1524
+ readonly startTimeAdjustment: true;
1525
+ };
1526
+ readonly component: {
1527
+ readonly attributes: {
1528
+ readonly optOutState: import("@matter/types/cluster").Attribute<DeviceEnergyManagement.OptOutState, any>;
1529
+ };
1530
+ };
1531
+ }, {
1532
+ readonly flags: {
1533
+ readonly pausable: true;
1534
+ };
1535
+ readonly component: {
1536
+ readonly attributes: {
1537
+ readonly optOutState: import("@matter/types/cluster").Attribute<DeviceEnergyManagement.OptOutState, any>;
1538
+ };
1539
+ };
1540
+ }, {
1541
+ readonly flags: {
1542
+ readonly forecastAdjustment: true;
1543
+ };
1544
+ readonly component: {
1545
+ readonly attributes: {
1546
+ readonly optOutState: import("@matter/types/cluster").Attribute<DeviceEnergyManagement.OptOutState, any>;
1547
+ };
1548
+ };
1549
+ }, {
1550
+ readonly flags: {
1551
+ readonly constraintBasedAdjustment: true;
1552
+ };
1553
+ readonly component: {
1554
+ readonly attributes: {
1555
+ readonly optOutState: import("@matter/types/cluster").Attribute<DeviceEnergyManagement.OptOutState, any>;
1556
+ };
1557
+ };
1558
+ }, {
1559
+ readonly flags: {
1560
+ readonly pausable: true;
1561
+ };
1562
+ readonly component: {
1563
+ readonly commands: {
1564
+ readonly pauseRequest: import("@matter/types/cluster").Command<import("@matter/types").TypeFromFields<{
1565
+ duration: import("@matter/types").FieldType<number>;
1566
+ cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
1567
+ }>, void, any>;
1568
+ readonly resumeRequest: import("@matter/types/cluster").Command<void, void, any>;
1569
+ };
1570
+ readonly events: {
1571
+ readonly paused: import("@matter/types/cluster").Event<void, any>;
1572
+ readonly resumed: import("@matter/types/cluster").Event<import("@matter/types").TypeFromFields<{
1573
+ cause: import("@matter/types").FieldType<DeviceEnergyManagement.Cause>;
1574
+ }>, any>;
1575
+ };
1576
+ };
1577
+ }, {
1578
+ readonly flags: {
1579
+ readonly startTimeAdjustment: true;
1580
+ };
1581
+ readonly component: {
1582
+ readonly commands: {
1583
+ readonly startTimeAdjustRequest: import("@matter/types/cluster").Command<import("@matter/types").TypeFromFields<{
1584
+ requestedStartTime: import("@matter/types").FieldType<number>;
1585
+ cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
1586
+ }>, void, any>;
1587
+ };
1588
+ };
1589
+ }, {
1590
+ readonly flags: {
1591
+ readonly forecastAdjustment: true;
1592
+ };
1593
+ readonly component: {
1594
+ readonly commands: {
1595
+ readonly modifyForecastRequest: import("@matter/types/cluster").Command<import("@matter/types").TypeFromFields<{
1596
+ forecastId: import("@matter/types").FieldType<number>;
1597
+ slotAdjustments: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1598
+ slotIndex: import("@matter/types").FieldType<number>;
1599
+ nominalPower: import("@matter/types").OptionalFieldType<number | bigint>;
1600
+ duration: import("@matter/types").FieldType<number>;
1601
+ }>[]>;
1602
+ cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
1603
+ }>, void, any>;
1604
+ };
1605
+ };
1606
+ }, {
1607
+ readonly flags: {
1608
+ readonly constraintBasedAdjustment: true;
1609
+ };
1610
+ readonly component: {
1611
+ readonly commands: {
1612
+ readonly requestConstraintBasedForecast: import("@matter/types/cluster").Command<import("@matter/types").TypeFromFields<{
1613
+ constraints: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
1614
+ startTime: import("@matter/types").FieldType<number>;
1615
+ duration: import("@matter/types").FieldType<number>;
1616
+ nominalPower: import("@matter/types").OptionalFieldType<number | bigint>;
1617
+ maximumEnergy: import("@matter/types").OptionalFieldType<number | bigint>;
1618
+ loadControl: import("@matter/types").OptionalFieldType<number>;
1619
+ }>[]>;
1620
+ cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
1621
+ }>, void, any>;
1622
+ };
1623
+ };
1624
+ }, {
1625
+ readonly flags: {
1626
+ readonly startTimeAdjustment: true;
1627
+ };
1628
+ readonly component: {
1629
+ readonly commands: {
1630
+ readonly cancelRequest: import("@matter/types/cluster").Command<void, void, any>;
1631
+ };
1632
+ };
1633
+ }, {
1634
+ readonly flags: {
1635
+ readonly forecastAdjustment: true;
1636
+ };
1637
+ readonly component: {
1638
+ readonly commands: {
1639
+ readonly cancelRequest: import("@matter/types/cluster").Command<void, void, any>;
1640
+ };
1641
+ };
1642
+ }, {
1643
+ readonly flags: {
1644
+ readonly constraintBasedAdjustment: true;
1645
+ };
1646
+ readonly component: {
1647
+ readonly commands: {
1648
+ readonly cancelRequest: import("@matter/types/cluster").Command<void, void, any>;
1649
+ };
1650
+ };
1651
+ }, {
1652
+ readonly flags: {
1653
+ readonly staTrue: true;
1654
+ readonly pauTrue: false;
1655
+ readonly faTrue: false;
1656
+ readonly conTrue: false;
1657
+ };
1658
+ readonly component: false;
1659
+ }, {
1660
+ readonly flags: {
1661
+ readonly powerForecastReporting: true;
1662
+ readonly stateForecastReporting: true;
1663
+ };
1664
+ readonly component: false;
1665
+ }, {
1666
+ readonly flags: {
1667
+ readonly powerForecastReporting: false;
1668
+ readonly stateForecastReporting: false;
1669
+ };
1670
+ readonly component: false;
1671
+ }];
1672
+ }>, readonly [DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.PowerAdjustment]>, readonly [DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.PowerAdjustment]>, typeof MatterbridgeDeviceEnergyManagementServer>>;
1673
+ /**
1674
+ * Get the default EnergyManagementMode Cluster Server.
1675
+ *
1676
+ * @param {number} [currentMode] - The current mode of the EnergyManagementMode cluster. Defaults to mode 1 (DeviceEnergyManagementMode.ModeTag.NoOptimization).
1677
+ * @param {EnergyManagementMode.ModeOption[]} [supportedModes] - The supported modes for the DeviceEnergyManagementMode cluster. The attribute is fixed and defaults to a predefined set of cluster modes.
1678
+ * @returns {Behavior.Options<DeviceEnergyManagementModeClusterServer>} - The default options for the Device Energy Management Mode cluster server.
1679
+ *
1680
+ * @remarks
1681
+ * A few examples of Device Energy Management modes and their mode tags are provided below.
1682
+ * - For the "No Energy Management (Forecast reporting only)" mode, tags: 0x4000 (NoOptimization).
1683
+ * - For the "Device Energy Management" mode, tags: 0x4001 (DeviceOptimization).
1684
+ * - For the "Home Energy Management" mode, tags: 0x4001 (DeviceOptimization), 0x4002 (LocalOptimization).
1685
+ * - For the "Grid Energy Management" mode, tags: 0x4003 (GridOptimization).
1686
+ * - For the "Full Energy Management" mode, tags: 0x4001 (DeviceOptimization), 0x4002 (LocalOptimization), 0x4003 (GridOptimization).
1687
+ */
1688
+ export declare function getDefaultDeviceEnergyManagementModeClusterServer(currentMode?: number, supportedModes?: DeviceEnergyManagementMode.ModeOption[]): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<DeviceEnergyManagementMode.Cluster, readonly []>, typeof MatterbridgeDeviceEnergyManagementModeServer>>;
1689
+ /** Application Cluster Helpers */
1690
+ /**
1691
+ * Get the default OperationalState Cluster Server.
1692
+ *
1693
+ * @param {OperationalState.OperationalStateEnum} operationalState - The initial operational state id.
1694
+ * @returns {Behavior.Options<MatterbridgeOperationalStateServer>} - The default options for the OperationalState cluster server.
1695
+ *
1696
+ * @remarks
1697
+ * This method adds a cluster server with a default operational state configuration:
1698
+ * - { operationalStateId: OperationalState.OperationalStateEnum.Stopped, operationalStateLabel: 'Stopped' },
1699
+ * - { operationalStateId: OperationalState.OperationalStateEnum.Running, operationalStateLabel: 'Running' },
1700
+ * - { operationalStateId: OperationalState.OperationalStateEnum.Paused, operationalStateLabel: 'Paused' },
1701
+ * - { operationalStateId: OperationalState.OperationalStateEnum.Error, operationalStateLabel: 'Error' },
1702
+ */
1703
+ export declare function getDefaultOperationalStateClusterServer(operationalState?: OperationalState.OperationalStateEnum): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<OperationalState.Cluster, readonly []>, typeof MatterbridgeOperationalStateServer>>;
1704
+ /**
1705
+ * Get the default TemperatureMeasurement cluster server options.
1706
+ *
1707
+ * @param {number | null} measuredValue - The measured value of the temperature x 100.
1708
+ * @param {number | null} minMeasuredValue - The minimum measured value of the temperature x 100.
1709
+ * @param {number | null} maxMeasuredValue - The maximum measured value of the temperature x 100.
1710
+ * @returns {Behavior.Options<MatterbridgeTemperatureMeasurementServer>} - The default options for the TemperatureMeasurement cluster server.
1711
+ */
1712
+ export declare function getDefaultTemperatureMeasurementClusterServer(measuredValue?: number | null, minMeasuredValue?: number | null, maxMeasuredValue?: number | null): Partial<import("@matter/node").ClusterState.Type<TemperatureMeasurement.Cluster, typeof ClusterBehavior>>;
1713
+ /**
1714
+ * Get the default RelativeHumidityMeasurement cluster server options.
1715
+ *
1716
+ * @param {number | null} measuredValue - The measured value of the relative humidity x 100.
1717
+ * @param {number | null} minMeasuredValue - The minimum measured value of the relative humidity x 100.
1718
+ * @param {number | null} maxMeasuredValue - The maximum measured value of the relative humidity x 100.
1719
+ * @returns {Behavior.Options<MatterbridgeRelativeHumidityMeasurementServer>} - The default options for the RelativeHumidityMeasurement cluster server.
1720
+ */
1721
+ export declare function getDefaultRelativeHumidityMeasurementClusterServer(measuredValue?: number | null, minMeasuredValue?: number | null, maxMeasuredValue?: number | null): Partial<import("@matter/node").ClusterState.Type<RelativeHumidityMeasurement.Cluster, typeof ClusterBehavior>>;
1722
+ /**
1723
+ * Get the default PressureMeasurement cluster server options.
1724
+ *
1725
+ * @param {number | null} measuredValue - The measured value for the pressure in kPa x 10.
1726
+ * @param {number | null} minMeasuredValue - The minimum measured value for the pressure in kPa x 10.
1727
+ * @param {number | null} maxMeasuredValue - The maximum measured value for the pressure in kPa x 10.
1728
+ * @returns {Behavior.Options<MatterbridgePressureMeasurementServer>} - The default options for the PressureMeasurement cluster server.
1729
+ */
1730
+ export declare function getDefaultPressureMeasurementClusterServer(measuredValue?: number | null, minMeasuredValue?: number | null, maxMeasuredValue?: number | null): Partial<import("@matter/node").ClusterState.Type<PressureMeasurement.Cluster, typeof ClusterBehavior>>;
1731
+ /**
1732
+ * Get the default IlluminanceMeasurement cluster server options.
1733
+ *
1734
+ * @param {number | null} measuredValue - The measured value of illuminance.
1735
+ * @param {number | null} minMeasuredValue - The minimum measured value of illuminance.
1736
+ * @param {number | null} maxMeasuredValue - The maximum measured value of illuminance.
1737
+ * @returns {Behavior.Options<MatterbridgeIlluminanceMeasurementServer>} - The default options for the IlluminanceMeasurement cluster server.
1738
+ *
1739
+ * @remarks The default value for the illuminance measurement is null.
1740
+ * This attribute SHALL indicate the illuminance in Lux (symbol lx) as follows:
1741
+ * • MeasuredValue = 10,000 x log10(illuminance) + 1,
1742
+ * where 1 lx <= illuminance <= 3.576 Mlx, corresponding to a MeasuredValue in the range 1 to 0xFFFE.
1743
+ * • 0 indicates a value of illuminance that is too low to be measured
1744
+ * • null indicates that the illuminance measurement is invalid.
1745
+ */
1746
+ export declare function getDefaultIlluminanceMeasurementClusterServer(measuredValue?: number | null, minMeasuredValue?: number | null, maxMeasuredValue?: number | null): Partial<import("@matter/node").ClusterState.Type<IlluminanceMeasurement.Cluster, typeof ClusterBehavior>>;
1747
+ /**
1748
+ * Get the default FlowMeasurement cluster server options.
1749
+ *
1750
+ * @param {number | null} measuredValue - The measured value of the flow in 10 x m3/h.
1751
+ * @param {number | null} minMeasuredValue - The minimum measured value of the flow in 10 x m3/h.
1752
+ * @param {number | null} maxMeasuredValue - The maximum measured value of the flow in 10 x m3/h.
1753
+ * @returns {Behavior.Options<MatterbridgeFlowMeasurementServer>} - The default options for the FlowMeasurement cluster server.
1754
+ */
1755
+ export declare function getDefaultFlowMeasurementClusterServer(measuredValue?: number | null, minMeasuredValue?: number | null, maxMeasuredValue?: number | null): Partial<import("@matter/node").ClusterState.Type<FlowMeasurement.Cluster, typeof ClusterBehavior>>;
1756
+ /**
1757
+ * Get the default OccupancySensing cluster server options.
1758
+ *
1759
+ * @param {boolean} occupied - A boolean indicating whether the occupancy is occupied or not. Default is false.
1760
+ * @param {number} holdTime - The hold time in seconds. Default is 30.
1761
+ * @param {number} holdTimeMin - The minimum hold time in seconds. Default is 1.
1762
+ * @param {number} holdTimeMax - The maximum hold time in seconds. Default is 300.
1763
+ * @returns {Behavior.Options<MatterbridgeOccupancySensingServer>} - The default options for the OccupancySensing cluster server.
1764
+ *
1765
+ * @remarks The default value for the occupancy sensor type is PIR.
1766
+ * Servers SHALL set these attributes for backward compatibility with clients implementing a cluster revision <= 4 as
1767
+ * described in OccupancySensorType and OccupancySensorTypeBitmap Attributes.
1768
+ * This replaces the 9 legacy attributes PIROccupiedToUnoccupiedDelay through PhysicalContactUnoccupiedToOccupiedThreshold.
1769
+ */
1770
+ export declare function getDefaultOccupancySensingClusterServer(occupied?: boolean, holdTime?: number, holdTimeMin?: number, holdTimeMax?: number): Partial<import("@matter/node").ClusterState.Type<import("@matter/types/cluster").ClusterComposer.WithFeatures<ClusterType.Of<{
1771
+ readonly id: 1030;
1772
+ readonly name: "OccupancySensing";
1773
+ readonly revision: 5;
1774
+ readonly features: {
1775
+ readonly other: import("@matter/types").BitFlag;
1776
+ readonly passiveInfrared: import("@matter/types").BitFlag;
1777
+ readonly ultrasonic: import("@matter/types").BitFlag;
1778
+ readonly physicalContact: import("@matter/types").BitFlag;
1779
+ readonly activeInfrared: import("@matter/types").BitFlag;
1780
+ readonly radar: import("@matter/types").BitFlag;
1781
+ readonly rfSensing: import("@matter/types").BitFlag;
1782
+ readonly vision: import("@matter/types").BitFlag;
1783
+ };
1784
+ readonly attributes: {
1785
+ readonly occupancy: import("@matter/types/cluster").Attribute<import("@matter/types").TypeFromPartialBitSchema<{
1786
+ occupied: import("@matter/types").BitFlag;
1787
+ }>, any>;
1788
+ readonly occupancySensorType: import("@matter/types/cluster").FixedAttribute<OccupancySensing.OccupancySensorType, any>;
1789
+ readonly occupancySensorTypeBitmap: import("@matter/types/cluster").FixedAttribute<import("@matter/types").TypeFromPartialBitSchema<{
1790
+ pir: import("@matter/types").BitFlag;
1791
+ ultrasonic: import("@matter/types").BitFlag;
1792
+ physicalContact: import("@matter/types").BitFlag;
1793
+ }>, any>;
1794
+ readonly holdTime: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1795
+ readonly holdTimeLimits: import("@matter/types/cluster").OptionalFixedAttribute<import("@matter/types").TypeFromFields<{
1796
+ holdTimeMin: import("@matter/types").FieldType<number>;
1797
+ holdTimeMax: import("@matter/types").FieldType<number>;
1798
+ holdTimeDefault: import("@matter/types").FieldType<number>;
1799
+ }>, any>;
1800
+ };
1801
+ readonly events: {
1802
+ readonly occupancyChanged: import("@matter/types/cluster").OptionalEvent<import("@matter/types").TypeFromFields<{
1803
+ occupancy: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
1804
+ occupied: import("@matter/types").BitFlag;
1805
+ }>>;
1806
+ }>, any>;
1807
+ };
1808
+ readonly extensions: readonly [{
1809
+ readonly flags: {
1810
+ readonly passiveInfrared: true;
1811
+ };
1812
+ readonly component: {
1813
+ readonly attributes: {
1814
+ readonly pirOccupiedToUnoccupiedDelay: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1815
+ readonly pirUnoccupiedToOccupiedDelay: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1816
+ readonly pirUnoccupiedToOccupiedThreshold: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1817
+ };
1818
+ };
1819
+ }, {
1820
+ readonly flags: {
1821
+ readonly ultrasonic: true;
1822
+ };
1823
+ readonly component: {
1824
+ readonly attributes: {
1825
+ readonly ultrasonicOccupiedToUnoccupiedDelay: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1826
+ readonly ultrasonicUnoccupiedToOccupiedDelay: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1827
+ readonly ultrasonicUnoccupiedToOccupiedThreshold: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1828
+ };
1829
+ };
1830
+ }, {
1831
+ readonly flags: {
1832
+ readonly physicalContact: true;
1833
+ };
1834
+ readonly component: {
1835
+ readonly attributes: {
1836
+ readonly physicalContactOccupiedToUnoccupiedDelay: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1837
+ readonly physicalContactUnoccupiedToOccupiedDelay: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1838
+ readonly physicalContactUnoccupiedToOccupiedThreshold: import("@matter/types/cluster").OptionalWritableAttribute<number, any>;
1839
+ };
1840
+ };
1841
+ }, {
1842
+ readonly flags: {
1843
+ readonly other: false;
1844
+ readonly passiveInfrared: false;
1845
+ readonly ultrasonic: false;
1846
+ readonly physicalContact: false;
1847
+ readonly activeInfrared: false;
1848
+ readonly radar: false;
1849
+ readonly rfSensing: false;
1850
+ readonly vision: false;
1851
+ };
1852
+ readonly component: false;
1853
+ }];
1854
+ }>, readonly [OccupancySensing.Feature.PassiveInfrared]>, typeof OccupancySensingServer>>;
1855
+ //# sourceMappingURL=matterbridgeEndpointHelpers.d.ts.map