@openmouse/protocol 0.1.0

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 (547) hide show
  1. package/CONTRIBUTING.md +167 -0
  2. package/README.md +89 -0
  3. package/dist/asus/index.d.ts +52 -0
  4. package/dist/asus/index.d.ts.map +1 -0
  5. package/dist/asus/index.js +248 -0
  6. package/dist/asus/index.js.map +1 -0
  7. package/dist/atk/index.d.ts +200 -0
  8. package/dist/atk/index.d.ts.map +1 -0
  9. package/dist/atk/index.js +480 -0
  10. package/dist/atk/index.js.map +1 -0
  11. package/dist/bitmouse/index.d.ts +284 -0
  12. package/dist/bitmouse/index.d.ts.map +1 -0
  13. package/dist/bitmouse/index.js +396 -0
  14. package/dist/bitmouse/index.js.map +1 -0
  15. package/dist/compx/codec.d.ts +31 -0
  16. package/dist/compx/codec.d.ts.map +1 -0
  17. package/dist/compx/codec.js +50 -0
  18. package/dist/compx/codec.js.map +1 -0
  19. package/dist/corsair/index.d.ts +147 -0
  20. package/dist/corsair/index.d.ts.map +1 -0
  21. package/dist/corsair/index.js +223 -0
  22. package/dist/corsair/index.js.map +1 -0
  23. package/dist/dareu/index.d.ts +136 -0
  24. package/dist/dareu/index.d.ts.map +1 -0
  25. package/dist/dareu/index.js +344 -0
  26. package/dist/dareu/index.js.map +1 -0
  27. package/dist/drivers/asus/hid.d.ts +29 -0
  28. package/dist/drivers/asus/hid.d.ts.map +1 -0
  29. package/dist/drivers/asus/hid.js +419 -0
  30. package/dist/drivers/asus/hid.js.map +1 -0
  31. package/dist/drivers/atk/bitmouse-hid.d.ts +80 -0
  32. package/dist/drivers/atk/bitmouse-hid.d.ts.map +1 -0
  33. package/dist/drivers/atk/bitmouse-hid.js +501 -0
  34. package/dist/drivers/atk/bitmouse-hid.js.map +1 -0
  35. package/dist/drivers/atk/hid.d.ts +163 -0
  36. package/dist/drivers/atk/hid.d.ts.map +1 -0
  37. package/dist/drivers/atk/hid.js +1368 -0
  38. package/dist/drivers/atk/hid.js.map +1 -0
  39. package/dist/drivers/atk/products.d.ts +13 -0
  40. package/dist/drivers/atk/products.d.ts.map +1 -0
  41. package/dist/drivers/atk/products.js +13 -0
  42. package/dist/drivers/atk/products.js.map +1 -0
  43. package/dist/drivers/attackshark/dpi.d.ts +41 -0
  44. package/dist/drivers/attackshark/dpi.d.ts.map +1 -0
  45. package/dist/drivers/attackshark/dpi.js +215 -0
  46. package/dist/drivers/attackshark/dpi.js.map +1 -0
  47. package/dist/drivers/attackshark/hid.d.ts +124 -0
  48. package/dist/drivers/attackshark/hid.d.ts.map +1 -0
  49. package/dist/drivers/attackshark/hid.js +728 -0
  50. package/dist/drivers/attackshark/hid.js.map +1 -0
  51. package/dist/drivers/corsair/hid.d.ts +70 -0
  52. package/dist/drivers/corsair/hid.d.ts.map +1 -0
  53. package/dist/drivers/corsair/hid.js +414 -0
  54. package/dist/drivers/corsair/hid.js.map +1 -0
  55. package/dist/drivers/dareu/hid.d.ts +59 -0
  56. package/dist/drivers/dareu/hid.d.ts.map +1 -0
  57. package/dist/drivers/dareu/hid.js +478 -0
  58. package/dist/drivers/dareu/hid.js.map +1 -0
  59. package/dist/drivers/endgame/egg-op1-hid.d.ts +107 -0
  60. package/dist/drivers/endgame/egg-op1-hid.d.ts.map +1 -0
  61. package/dist/drivers/endgame/egg-op1-hid.js +605 -0
  62. package/dist/drivers/endgame/egg-op1-hid.js.map +1 -0
  63. package/dist/drivers/endgame/egg-we-control.d.ts +42 -0
  64. package/dist/drivers/endgame/egg-we-control.d.ts.map +1 -0
  65. package/dist/drivers/endgame/egg-we-control.js +87 -0
  66. package/dist/drivers/endgame/egg-we-control.js.map +1 -0
  67. package/dist/drivers/endgame/egg-we-hid.d.ts +58 -0
  68. package/dist/drivers/endgame/egg-we-hid.d.ts.map +1 -0
  69. package/dist/drivers/endgame/egg-we-hid.js +514 -0
  70. package/dist/drivers/endgame/egg-we-hid.js.map +1 -0
  71. package/dist/drivers/fantech/hid.d.ts +106 -0
  72. package/dist/drivers/fantech/hid.d.ts.map +1 -0
  73. package/dist/drivers/fantech/hid.js +295 -0
  74. package/dist/drivers/fantech/hid.js.map +1 -0
  75. package/dist/drivers/finalmouse/hid.d.ts +31 -0
  76. package/dist/drivers/finalmouse/hid.d.ts.map +1 -0
  77. package/dist/drivers/finalmouse/hid.js +181 -0
  78. package/dist/drivers/finalmouse/hid.js.map +1 -0
  79. package/dist/drivers/gearhub/hid.d.ts +191 -0
  80. package/dist/drivers/gearhub/hid.d.ts.map +1 -0
  81. package/dist/drivers/gearhub/hid.js +542 -0
  82. package/dist/drivers/gearhub/hid.js.map +1 -0
  83. package/dist/drivers/glorious/classic-hid.d.ts +62 -0
  84. package/dist/drivers/glorious/classic-hid.d.ts.map +1 -0
  85. package/dist/drivers/glorious/classic-hid.js +326 -0
  86. package/dist/drivers/glorious/classic-hid.js.map +1 -0
  87. package/dist/drivers/glorious/hid.d.ts +39 -0
  88. package/dist/drivers/glorious/hid.d.ts.map +1 -0
  89. package/dist/drivers/glorious/hid.js +203 -0
  90. package/dist/drivers/glorious/hid.js.map +1 -0
  91. package/dist/drivers/gwolves/hid.d.ts +27 -0
  92. package/dist/drivers/gwolves/hid.d.ts.map +1 -0
  93. package/dist/drivers/gwolves/hid.js +225 -0
  94. package/dist/drivers/gwolves/hid.js.map +1 -0
  95. package/dist/drivers/gwolves/products.d.ts +17 -0
  96. package/dist/drivers/gwolves/products.d.ts.map +1 -0
  97. package/dist/drivers/gwolves/products.js +58 -0
  98. package/dist/drivers/gwolves/products.js.map +1 -0
  99. package/dist/drivers/hyperx/hid.d.ts +59 -0
  100. package/dist/drivers/hyperx/hid.d.ts.map +1 -0
  101. package/dist/drivers/hyperx/hid.js +229 -0
  102. package/dist/drivers/hyperx/hid.js.map +1 -0
  103. package/dist/drivers/incott/hid.d.ts +513 -0
  104. package/dist/drivers/incott/hid.d.ts.map +1 -0
  105. package/dist/drivers/incott/hid.js +1173 -0
  106. package/dist/drivers/incott/hid.js.map +1 -0
  107. package/dist/drivers/index.d.ts +5 -0
  108. package/dist/drivers/index.d.ts.map +1 -0
  109. package/dist/drivers/index.js +5 -0
  110. package/dist/drivers/index.js.map +1 -0
  111. package/dist/drivers/keychron/m6-hid.d.ts +81 -0
  112. package/dist/drivers/keychron/m6-hid.d.ts.map +1 -0
  113. package/dist/drivers/keychron/m6-hid.js +486 -0
  114. package/dist/drivers/keychron/m6-hid.js.map +1 -0
  115. package/dist/drivers/keychron/nape-hid.d.ts +60 -0
  116. package/dist/drivers/keychron/nape-hid.d.ts.map +1 -0
  117. package/dist/drivers/keychron/nape-hid.js +432 -0
  118. package/dist/drivers/keychron/nape-hid.js.map +1 -0
  119. package/dist/drivers/ksnake/hid.d.ts +74 -0
  120. package/dist/drivers/ksnake/hid.d.ts.map +1 -0
  121. package/dist/drivers/ksnake/hid.js +368 -0
  122. package/dist/drivers/ksnake/hid.js.map +1 -0
  123. package/dist/drivers/lamzu/hid.d.ts +58 -0
  124. package/dist/drivers/lamzu/hid.d.ts.map +1 -0
  125. package/dist/drivers/lamzu/hid.js +414 -0
  126. package/dist/drivers/lamzu/hid.js.map +1 -0
  127. package/dist/drivers/lamzu-atlantis/hid.d.ts +148 -0
  128. package/dist/drivers/lamzu-atlantis/hid.d.ts.map +1 -0
  129. package/dist/drivers/lamzu-atlantis/hid.js +587 -0
  130. package/dist/drivers/lamzu-atlantis/hid.js.map +1 -0
  131. package/dist/drivers/logitech/bolt.d.ts +41 -0
  132. package/dist/drivers/logitech/bolt.d.ts.map +1 -0
  133. package/dist/drivers/logitech/bolt.js +105 -0
  134. package/dist/drivers/logitech/bolt.js.map +1 -0
  135. package/dist/drivers/logitech/hidpp.d.ts +525 -0
  136. package/dist/drivers/logitech/hidpp.d.ts.map +1 -0
  137. package/dist/drivers/logitech/hidpp.js +2774 -0
  138. package/dist/drivers/logitech/hidpp.js.map +1 -0
  139. package/dist/drivers/logitech/mode-status.d.ts +53 -0
  140. package/dist/drivers/logitech/mode-status.d.ts.map +1 -0
  141. package/dist/drivers/logitech/mode-status.js +52 -0
  142. package/dist/drivers/logitech/mode-status.js.map +1 -0
  143. package/dist/drivers/logitech/onboard-profiles.d.ts +298 -0
  144. package/dist/drivers/logitech/onboard-profiles.d.ts.map +1 -0
  145. package/dist/drivers/logitech/onboard-profiles.js +965 -0
  146. package/dist/drivers/logitech/onboard-profiles.js.map +1 -0
  147. package/dist/drivers/logitech/rgb-effects.d.ts +20 -0
  148. package/dist/drivers/logitech/rgb-effects.d.ts.map +1 -0
  149. package/dist/drivers/logitech/rgb-effects.js +93 -0
  150. package/dist/drivers/logitech/rgb-effects.js.map +1 -0
  151. package/dist/drivers/mchose/a5-gen1-hid.d.ts +36 -0
  152. package/dist/drivers/mchose/a5-gen1-hid.d.ts.map +1 -0
  153. package/dist/drivers/mchose/a5-gen1-hid.js +219 -0
  154. package/dist/drivers/mchose/a5-gen1-hid.js.map +1 -0
  155. package/dist/drivers/mchose/dock-hid.d.ts +26 -0
  156. package/dist/drivers/mchose/dock-hid.d.ts.map +1 -0
  157. package/dist/drivers/mchose/dock-hid.js +176 -0
  158. package/dist/drivers/mchose/dock-hid.js.map +1 -0
  159. package/dist/drivers/mchose/hid.d.ts +118 -0
  160. package/dist/drivers/mchose/hid.d.ts.map +1 -0
  161. package/dist/drivers/mchose/hid.js +550 -0
  162. package/dist/drivers/mchose/hid.js.map +1 -0
  163. package/dist/drivers/mchose/v3-hid.d.ts +109 -0
  164. package/dist/drivers/mchose/v3-hid.d.ts.map +1 -0
  165. package/dist/drivers/mchose/v3-hid.js +572 -0
  166. package/dist/drivers/mchose/v3-hid.js.map +1 -0
  167. package/dist/drivers/microsoft/hid.d.ts +25 -0
  168. package/dist/drivers/microsoft/hid.d.ts.map +1 -0
  169. package/dist/drivers/microsoft/hid.js +247 -0
  170. package/dist/drivers/microsoft/hid.js.map +1 -0
  171. package/dist/drivers/moddo/hid.d.ts +31 -0
  172. package/dist/drivers/moddo/hid.d.ts.map +1 -0
  173. package/dist/drivers/moddo/hid.js +154 -0
  174. package/dist/drivers/moddo/hid.js.map +1 -0
  175. package/dist/drivers/mouse-types.d.ts +388 -0
  176. package/dist/drivers/mouse-types.d.ts.map +1 -0
  177. package/dist/drivers/mouse-types.js +2 -0
  178. package/dist/drivers/mouse-types.js.map +1 -0
  179. package/dist/drivers/ninjutso/hid.d.ts +62 -0
  180. package/dist/drivers/ninjutso/hid.d.ts.map +1 -0
  181. package/dist/drivers/ninjutso/hid.js +680 -0
  182. package/dist/drivers/ninjutso/hid.js.map +1 -0
  183. package/dist/drivers/orbital/hid.d.ts +24 -0
  184. package/dist/drivers/orbital/hid.d.ts.map +1 -0
  185. package/dist/drivers/orbital/hid.js +85 -0
  186. package/dist/drivers/orbital/hid.js.map +1 -0
  187. package/dist/drivers/orbital/host-protocol.d.ts +59 -0
  188. package/dist/drivers/orbital/host-protocol.d.ts.map +1 -0
  189. package/dist/drivers/orbital/host-protocol.js +884 -0
  190. package/dist/drivers/orbital/host-protocol.js.map +1 -0
  191. package/dist/drivers/pulsar/pulsar-hid.d.ts +63 -0
  192. package/dist/drivers/pulsar/pulsar-hid.d.ts.map +1 -0
  193. package/dist/drivers/pulsar/pulsar-hid.js +381 -0
  194. package/dist/drivers/pulsar/pulsar-hid.js.map +1 -0
  195. package/dist/drivers/pulsar/pulsar-pro-hid.d.ts +46 -0
  196. package/dist/drivers/pulsar/pulsar-pro-hid.d.ts.map +1 -0
  197. package/dist/drivers/pulsar/pulsar-pro-hid.js +343 -0
  198. package/dist/drivers/pulsar/pulsar-pro-hid.js.map +1 -0
  199. package/dist/drivers/pulsar/pulsar-xs1-hid.d.ts +40 -0
  200. package/dist/drivers/pulsar/pulsar-xs1-hid.d.ts.map +1 -0
  201. package/dist/drivers/pulsar/pulsar-xs1-hid.js +251 -0
  202. package/dist/drivers/pulsar/pulsar-xs1-hid.js.map +1 -0
  203. package/dist/drivers/rawm/hid.d.ts +29 -0
  204. package/dist/drivers/rawm/hid.d.ts.map +1 -0
  205. package/dist/drivers/rawm/hid.js +210 -0
  206. package/dist/drivers/rawm/hid.js.map +1 -0
  207. package/dist/drivers/razer/cobra-hid.d.ts +63 -0
  208. package/dist/drivers/razer/cobra-hid.d.ts.map +1 -0
  209. package/dist/drivers/razer/cobra-hid.js +282 -0
  210. package/dist/drivers/razer/cobra-hid.js.map +1 -0
  211. package/dist/drivers/razer/hid-open.d.ts +13 -0
  212. package/dist/drivers/razer/hid-open.d.ts.map +1 -0
  213. package/dist/drivers/razer/hid-open.js +29 -0
  214. package/dist/drivers/razer/hid-open.js.map +1 -0
  215. package/dist/drivers/razer/hid.d.ts +231 -0
  216. package/dist/drivers/razer/hid.d.ts.map +1 -0
  217. package/dist/drivers/razer/hid.js +772 -0
  218. package/dist/drivers/razer/hid.js.map +1 -0
  219. package/dist/drivers/razer/viper-hid.d.ts +33 -0
  220. package/dist/drivers/razer/viper-hid.d.ts.map +1 -0
  221. package/dist/drivers/razer/viper-hid.js +177 -0
  222. package/dist/drivers/razer/viper-hid.js.map +1 -0
  223. package/dist/drivers/razer/viper-mini-hid.d.ts +58 -0
  224. package/dist/drivers/razer/viper-mini-hid.d.ts.map +1 -0
  225. package/dist/drivers/razer/viper-mini-hid.js +273 -0
  226. package/dist/drivers/razer/viper-mini-hid.js.map +1 -0
  227. package/dist/drivers/razer/viper-v4-pro-hid.d.ts +26 -0
  228. package/dist/drivers/razer/viper-v4-pro-hid.d.ts.map +1 -0
  229. package/dist/drivers/razer/viper-v4-pro-hid.js +154 -0
  230. package/dist/drivers/razer/viper-v4-pro-hid.js.map +1 -0
  231. package/dist/drivers/registry.d.ts +70 -0
  232. package/dist/drivers/registry.d.ts.map +1 -0
  233. package/dist/drivers/registry.js +146 -0
  234. package/dist/drivers/registry.js.map +1 -0
  235. package/dist/drivers/steelseries/aerox3-hid.d.ts +53 -0
  236. package/dist/drivers/steelseries/aerox3-hid.d.ts.map +1 -0
  237. package/dist/drivers/steelseries/aerox3-hid.js +172 -0
  238. package/dist/drivers/steelseries/aerox3-hid.js.map +1 -0
  239. package/dist/drivers/steelseries/aerox5-hid.d.ts +54 -0
  240. package/dist/drivers/steelseries/aerox5-hid.d.ts.map +1 -0
  241. package/dist/drivers/steelseries/aerox5-hid.js +173 -0
  242. package/dist/drivers/steelseries/aerox5-hid.js.map +1 -0
  243. package/dist/drivers/steelseries/aerox5-wireless-hid.d.ts +69 -0
  244. package/dist/drivers/steelseries/aerox5-wireless-hid.d.ts.map +1 -0
  245. package/dist/drivers/steelseries/aerox5-wireless-hid.js +234 -0
  246. package/dist/drivers/steelseries/aerox5-wireless-hid.js.map +1 -0
  247. package/dist/drivers/steelseries/aerox9-wireless-hid.d.ts +70 -0
  248. package/dist/drivers/steelseries/aerox9-wireless-hid.d.ts.map +1 -0
  249. package/dist/drivers/steelseries/aerox9-wireless-hid.js +227 -0
  250. package/dist/drivers/steelseries/aerox9-wireless-hid.js.map +1 -0
  251. package/dist/drivers/steelseries/hid.d.ts +48 -0
  252. package/dist/drivers/steelseries/hid.d.ts.map +1 -0
  253. package/dist/drivers/steelseries/hid.js +157 -0
  254. package/dist/drivers/steelseries/hid.js.map +1 -0
  255. package/dist/drivers/steelseries/prime-mini-wireless-hid.d.ts +62 -0
  256. package/dist/drivers/steelseries/prime-mini-wireless-hid.d.ts.map +1 -0
  257. package/dist/drivers/steelseries/prime-mini-wireless-hid.js +215 -0
  258. package/dist/drivers/steelseries/prime-mini-wireless-hid.js.map +1 -0
  259. package/dist/drivers/steelseries/prime-plus-hid.d.ts +51 -0
  260. package/dist/drivers/steelseries/prime-plus-hid.d.ts.map +1 -0
  261. package/dist/drivers/steelseries/prime-plus-hid.js +150 -0
  262. package/dist/drivers/steelseries/prime-plus-hid.js.map +1 -0
  263. package/dist/drivers/steelseries/rival3-wireless-hid.d.ts +61 -0
  264. package/dist/drivers/steelseries/rival3-wireless-hid.d.ts.map +1 -0
  265. package/dist/drivers/steelseries/rival3-wireless-hid.js +185 -0
  266. package/dist/drivers/steelseries/rival3-wireless-hid.js.map +1 -0
  267. package/dist/drivers/steelseries/rival310-hid.d.ts +59 -0
  268. package/dist/drivers/steelseries/rival310-hid.d.ts.map +1 -0
  269. package/dist/drivers/steelseries/rival310-hid.js +182 -0
  270. package/dist/drivers/steelseries/rival310-hid.js.map +1 -0
  271. package/dist/drivers/steelseries/rival650-hid.d.ts +68 -0
  272. package/dist/drivers/steelseries/rival650-hid.d.ts.map +1 -0
  273. package/dist/drivers/steelseries/rival650-hid.js +209 -0
  274. package/dist/drivers/steelseries/rival650-hid.js.map +1 -0
  275. package/dist/drivers/steelseries/sensei-ten-hid.d.ts +62 -0
  276. package/dist/drivers/steelseries/sensei-ten-hid.d.ts.map +1 -0
  277. package/dist/drivers/steelseries/sensei-ten-hid.js +186 -0
  278. package/dist/drivers/steelseries/sensei-ten-hid.js.map +1 -0
  279. package/dist/drivers/teevolution/hid.d.ts +82 -0
  280. package/dist/drivers/teevolution/hid.d.ts.map +1 -0
  281. package/dist/drivers/teevolution/hid.js +607 -0
  282. package/dist/drivers/teevolution/hid.js.map +1 -0
  283. package/dist/drivers/vendors.d.ts +254 -0
  284. package/dist/drivers/vendors.d.ts.map +1 -0
  285. package/dist/drivers/vendors.js +587 -0
  286. package/dist/drivers/vendors.js.map +1 -0
  287. package/dist/drivers/vgn/hid.d.ts +33 -0
  288. package/dist/drivers/vgn/hid.d.ts.map +1 -0
  289. package/dist/drivers/vgn/hid.js +213 -0
  290. package/dist/drivers/vgn/hid.js.map +1 -0
  291. package/dist/drivers/wallhack/keyboard-hid.d.ts +28 -0
  292. package/dist/drivers/wallhack/keyboard-hid.d.ts.map +1 -0
  293. package/dist/drivers/wallhack/keyboard-hid.js +80 -0
  294. package/dist/drivers/wallhack/keyboard-hid.js.map +1 -0
  295. package/dist/drivers/wallhack/mouse-hid.d.ts +45 -0
  296. package/dist/drivers/wallhack/mouse-hid.d.ts.map +1 -0
  297. package/dist/drivers/wallhack/mouse-hid.js +288 -0
  298. package/dist/drivers/wallhack/mouse-hid.js.map +1 -0
  299. package/dist/drivers/webhid.d.ts +59 -0
  300. package/dist/drivers/webhid.d.ts.map +1 -0
  301. package/dist/drivers/webhid.js +2 -0
  302. package/dist/drivers/webhid.js.map +1 -0
  303. package/dist/drivers/wlmouse/hid.d.ts +81 -0
  304. package/dist/drivers/wlmouse/hid.d.ts.map +1 -0
  305. package/dist/drivers/wlmouse/hid.js +576 -0
  306. package/dist/drivers/wlmouse/hid.js.map +1 -0
  307. package/dist/drivers/wooting/hid.d.ts +86 -0
  308. package/dist/drivers/wooting/hid.d.ts.map +1 -0
  309. package/dist/drivers/wooting/hid.js +320 -0
  310. package/dist/drivers/wooting/hid.js.map +1 -0
  311. package/dist/drivers/zaunkoenig/hid.d.ts +31 -0
  312. package/dist/drivers/zaunkoenig/hid.d.ts.map +1 -0
  313. package/dist/drivers/zaunkoenig/hid.js +162 -0
  314. package/dist/drivers/zaunkoenig/hid.js.map +1 -0
  315. package/dist/endgame-gear/op1.d.ts +165 -0
  316. package/dist/endgame-gear/op1.d.ts.map +1 -0
  317. package/dist/endgame-gear/op1.js +384 -0
  318. package/dist/endgame-gear/op1.js.map +1 -0
  319. package/dist/endgame-gear/wireless.d.ts +93 -0
  320. package/dist/endgame-gear/wireless.d.ts.map +1 -0
  321. package/dist/endgame-gear/wireless.js +242 -0
  322. package/dist/endgame-gear/wireless.js.map +1 -0
  323. package/dist/fantech/index.d.ts +9 -0
  324. package/dist/fantech/index.d.ts.map +1 -0
  325. package/dist/fantech/index.js +11 -0
  326. package/dist/fantech/index.js.map +1 -0
  327. package/dist/finalmouse/index.d.ts +41 -0
  328. package/dist/finalmouse/index.d.ts.map +1 -0
  329. package/dist/finalmouse/index.js +106 -0
  330. package/dist/finalmouse/index.js.map +1 -0
  331. package/dist/gearhub/index.d.ts +210 -0
  332. package/dist/gearhub/index.d.ts.map +1 -0
  333. package/dist/gearhub/index.js +282 -0
  334. package/dist/gearhub/index.js.map +1 -0
  335. package/dist/glorious/index.d.ts +89 -0
  336. package/dist/glorious/index.d.ts.map +1 -0
  337. package/dist/glorious/index.js +236 -0
  338. package/dist/glorious/index.js.map +1 -0
  339. package/dist/glorious-classic/index.d.ts +103 -0
  340. package/dist/glorious-classic/index.d.ts.map +1 -0
  341. package/dist/glorious-classic/index.js +304 -0
  342. package/dist/glorious-classic/index.js.map +1 -0
  343. package/dist/gwolves/index.d.ts +82 -0
  344. package/dist/gwolves/index.d.ts.map +1 -0
  345. package/dist/gwolves/index.js +197 -0
  346. package/dist/gwolves/index.js.map +1 -0
  347. package/dist/hyperx/index.d.ts +181 -0
  348. package/dist/hyperx/index.d.ts.map +1 -0
  349. package/dist/hyperx/index.js +303 -0
  350. package/dist/hyperx/index.js.map +1 -0
  351. package/dist/incott/index.d.ts +1067 -0
  352. package/dist/incott/index.d.ts.map +1 -0
  353. package/dist/incott/index.js +1482 -0
  354. package/dist/incott/index.js.map +1 -0
  355. package/dist/index.d.ts +30 -0
  356. package/dist/index.d.ts.map +1 -0
  357. package/dist/index.js +30 -0
  358. package/dist/index.js.map +1 -0
  359. package/dist/keychron/index.d.ts +194 -0
  360. package/dist/keychron/index.d.ts.map +1 -0
  361. package/dist/keychron/index.js +341 -0
  362. package/dist/keychron/index.js.map +1 -0
  363. package/dist/ksnake/index.d.ts +157 -0
  364. package/dist/ksnake/index.d.ts.map +1 -0
  365. package/dist/ksnake/index.js +314 -0
  366. package/dist/ksnake/index.js.map +1 -0
  367. package/dist/lamzu/atlantis.d.ts +237 -0
  368. package/dist/lamzu/atlantis.d.ts.map +1 -0
  369. package/dist/lamzu/atlantis.js +263 -0
  370. package/dist/lamzu/atlantis.js.map +1 -0
  371. package/dist/lamzu/index.d.ts +60 -0
  372. package/dist/lamzu/index.d.ts.map +1 -0
  373. package/dist/lamzu/index.js +86 -0
  374. package/dist/lamzu/index.js.map +1 -0
  375. package/dist/logitech/controls.d.ts +138 -0
  376. package/dist/logitech/controls.d.ts.map +1 -0
  377. package/dist/logitech/controls.js +184 -0
  378. package/dist/logitech/controls.js.map +1 -0
  379. package/dist/logitech/friendly-name.d.ts +50 -0
  380. package/dist/logitech/friendly-name.d.ts.map +1 -0
  381. package/dist/logitech/friendly-name.js +74 -0
  382. package/dist/logitech/friendly-name.js.map +1 -0
  383. package/dist/logitech/haptics.d.ts +97 -0
  384. package/dist/logitech/haptics.d.ts.map +1 -0
  385. package/dist/logitech/haptics.js +116 -0
  386. package/dist/logitech/haptics.js.map +1 -0
  387. package/dist/logitech/hosts.d.ts +55 -0
  388. package/dist/logitech/hosts.d.ts.map +1 -0
  389. package/dist/logitech/hosts.js +80 -0
  390. package/dist/logitech/hosts.js.map +1 -0
  391. package/dist/logitech/index.d.ts +127 -0
  392. package/dist/logitech/index.d.ts.map +1 -0
  393. package/dist/logitech/index.js +233 -0
  394. package/dist/logitech/index.js.map +1 -0
  395. package/dist/logitech/wheel.d.ts +117 -0
  396. package/dist/logitech/wheel.d.ts.map +1 -0
  397. package/dist/logitech/wheel.js +133 -0
  398. package/dist/logitech/wheel.js.map +1 -0
  399. package/dist/mchose/a5-gen1.d.ts +38 -0
  400. package/dist/mchose/a5-gen1.d.ts.map +1 -0
  401. package/dist/mchose/a5-gen1.js +60 -0
  402. package/dist/mchose/a5-gen1.js.map +1 -0
  403. package/dist/mchose/buttons.d.ts +66 -0
  404. package/dist/mchose/buttons.d.ts.map +1 -0
  405. package/dist/mchose/buttons.js +184 -0
  406. package/dist/mchose/buttons.js.map +1 -0
  407. package/dist/mchose/dock.d.ts +77 -0
  408. package/dist/mchose/dock.d.ts.map +1 -0
  409. package/dist/mchose/dock.js +133 -0
  410. package/dist/mchose/dock.js.map +1 -0
  411. package/dist/mchose/index.d.ts +299 -0
  412. package/dist/mchose/index.d.ts.map +1 -0
  413. package/dist/mchose/index.js +429 -0
  414. package/dist/mchose/index.js.map +1 -0
  415. package/dist/mchose/v3-buttons.d.ts +64 -0
  416. package/dist/mchose/v3-buttons.d.ts.map +1 -0
  417. package/dist/mchose/v3-buttons.js +258 -0
  418. package/dist/mchose/v3-buttons.js.map +1 -0
  419. package/dist/mchose/v3.d.ts +380 -0
  420. package/dist/mchose/v3.d.ts.map +1 -0
  421. package/dist/mchose/v3.js +608 -0
  422. package/dist/mchose/v3.js.map +1 -0
  423. package/dist/microsoft/index.d.ts +19 -0
  424. package/dist/microsoft/index.d.ts.map +1 -0
  425. package/dist/microsoft/index.js +22 -0
  426. package/dist/microsoft/index.js.map +1 -0
  427. package/dist/moddo/index.d.ts +72 -0
  428. package/dist/moddo/index.d.ts.map +1 -0
  429. package/dist/moddo/index.js +147 -0
  430. package/dist/moddo/index.js.map +1 -0
  431. package/dist/ninjutso/index.d.ts +74 -0
  432. package/dist/ninjutso/index.d.ts.map +1 -0
  433. package/dist/ninjutso/index.js +133 -0
  434. package/dist/ninjutso/index.js.map +1 -0
  435. package/dist/orbital/index.d.ts +14 -0
  436. package/dist/orbital/index.d.ts.map +1 -0
  437. package/dist/orbital/index.js +19 -0
  438. package/dist/orbital/index.js.map +1 -0
  439. package/dist/pulsar/index.d.ts +81 -0
  440. package/dist/pulsar/index.d.ts.map +1 -0
  441. package/dist/pulsar/index.js +185 -0
  442. package/dist/pulsar/index.js.map +1 -0
  443. package/dist/rawm/index.d.ts +55 -0
  444. package/dist/rawm/index.d.ts.map +1 -0
  445. package/dist/rawm/index.js +229 -0
  446. package/dist/rawm/index.js.map +1 -0
  447. package/dist/razer/codec.d.ts +504 -0
  448. package/dist/razer/codec.d.ts.map +1 -0
  449. package/dist/razer/codec.js +648 -0
  450. package/dist/razer/codec.js.map +1 -0
  451. package/dist/razer/devices.d.ts +156 -0
  452. package/dist/razer/devices.d.ts.map +1 -0
  453. package/dist/razer/devices.js +540 -0
  454. package/dist/razer/devices.js.map +1 -0
  455. package/dist/razer/index.d.ts +2 -0
  456. package/dist/razer/index.d.ts.map +1 -0
  457. package/dist/razer/index.js +2 -0
  458. package/dist/razer/index.js.map +1 -0
  459. package/dist/razer/v4.d.ts +19 -0
  460. package/dist/razer/v4.d.ts.map +1 -0
  461. package/dist/razer/v4.js +51 -0
  462. package/dist/razer/v4.js.map +1 -0
  463. package/dist/steelseries/aerox3.d.ts +236 -0
  464. package/dist/steelseries/aerox3.d.ts.map +1 -0
  465. package/dist/steelseries/aerox3.js +311 -0
  466. package/dist/steelseries/aerox3.js.map +1 -0
  467. package/dist/steelseries/aerox5-wireless.d.ts +300 -0
  468. package/dist/steelseries/aerox5-wireless.d.ts.map +1 -0
  469. package/dist/steelseries/aerox5-wireless.js +389 -0
  470. package/dist/steelseries/aerox5-wireless.js.map +1 -0
  471. package/dist/steelseries/aerox5.d.ts +228 -0
  472. package/dist/steelseries/aerox5.d.ts.map +1 -0
  473. package/dist/steelseries/aerox5.js +294 -0
  474. package/dist/steelseries/aerox5.js.map +1 -0
  475. package/dist/steelseries/aerox9-wireless.d.ts +213 -0
  476. package/dist/steelseries/aerox9-wireless.d.ts.map +1 -0
  477. package/dist/steelseries/aerox9-wireless.js +305 -0
  478. package/dist/steelseries/aerox9-wireless.js.map +1 -0
  479. package/dist/steelseries/devices.d.ts +82 -0
  480. package/dist/steelseries/devices.d.ts.map +1 -0
  481. package/dist/steelseries/devices.js +310 -0
  482. package/dist/steelseries/devices.js.map +1 -0
  483. package/dist/steelseries/index.d.ts +13 -0
  484. package/dist/steelseries/index.d.ts.map +1 -0
  485. package/dist/steelseries/index.js +13 -0
  486. package/dist/steelseries/index.js.map +1 -0
  487. package/dist/steelseries/prime-mini-wireless.d.ts +253 -0
  488. package/dist/steelseries/prime-mini-wireless.d.ts.map +1 -0
  489. package/dist/steelseries/prime-mini-wireless.js +351 -0
  490. package/dist/steelseries/prime-mini-wireless.js.map +1 -0
  491. package/dist/steelseries/prime-plus.d.ts +179 -0
  492. package/dist/steelseries/prime-plus.d.ts.map +1 -0
  493. package/dist/steelseries/prime-plus.js +275 -0
  494. package/dist/steelseries/prime-plus.js.map +1 -0
  495. package/dist/steelseries/rival3-wireless.d.ts +222 -0
  496. package/dist/steelseries/rival3-wireless.d.ts.map +1 -0
  497. package/dist/steelseries/rival3-wireless.js +308 -0
  498. package/dist/steelseries/rival3-wireless.js.map +1 -0
  499. package/dist/steelseries/rival3.d.ts +99 -0
  500. package/dist/steelseries/rival3.d.ts.map +1 -0
  501. package/dist/steelseries/rival3.js +147 -0
  502. package/dist/steelseries/rival3.js.map +1 -0
  503. package/dist/steelseries/rival310.d.ts +230 -0
  504. package/dist/steelseries/rival310.d.ts.map +1 -0
  505. package/dist/steelseries/rival310.js +322 -0
  506. package/dist/steelseries/rival310.js.map +1 -0
  507. package/dist/steelseries/rival650.d.ts +215 -0
  508. package/dist/steelseries/rival650.d.ts.map +1 -0
  509. package/dist/steelseries/rival650.js +284 -0
  510. package/dist/steelseries/rival650.js.map +1 -0
  511. package/dist/steelseries/sensei-ten.d.ts +283 -0
  512. package/dist/steelseries/sensei-ten.d.ts.map +1 -0
  513. package/dist/steelseries/sensei-ten.js +389 -0
  514. package/dist/steelseries/sensei-ten.js.map +1 -0
  515. package/dist/teevolution/index.d.ts +211 -0
  516. package/dist/teevolution/index.d.ts.map +1 -0
  517. package/dist/teevolution/index.js +458 -0
  518. package/dist/teevolution/index.js.map +1 -0
  519. package/dist/valkyrie/index.d.ts +19 -0
  520. package/dist/valkyrie/index.d.ts.map +1 -0
  521. package/dist/valkyrie/index.js +43 -0
  522. package/dist/valkyrie/index.js.map +1 -0
  523. package/dist/valkyrie/settings.d.ts +28 -0
  524. package/dist/valkyrie/settings.d.ts.map +1 -0
  525. package/dist/valkyrie/settings.js +84 -0
  526. package/dist/valkyrie/settings.js.map +1 -0
  527. package/dist/vgn/index.d.ts +59 -0
  528. package/dist/vgn/index.d.ts.map +1 -0
  529. package/dist/vgn/index.js +165 -0
  530. package/dist/vgn/index.js.map +1 -0
  531. package/dist/wallhack/index.d.ts +165 -0
  532. package/dist/wallhack/index.d.ts.map +1 -0
  533. package/dist/wallhack/index.js +226 -0
  534. package/dist/wallhack/index.js.map +1 -0
  535. package/dist/wlmouse/index.d.ts +4 -0
  536. package/dist/wlmouse/index.d.ts.map +1 -0
  537. package/dist/wlmouse/index.js +7 -0
  538. package/dist/wlmouse/index.js.map +1 -0
  539. package/dist/wooting/index.d.ts +225 -0
  540. package/dist/wooting/index.d.ts.map +1 -0
  541. package/dist/wooting/index.js +296 -0
  542. package/dist/wooting/index.js.map +1 -0
  543. package/dist/zaunkoenig/index.d.ts +49 -0
  544. package/dist/zaunkoenig/index.d.ts.map +1 -0
  545. package/dist/zaunkoenig/index.js +127 -0
  546. package/dist/zaunkoenig/index.js.map +1 -0
  547. package/package.json +193 -0
@@ -0,0 +1,298 @@
1
+ /**
2
+ * HID++ 0x8100 onboard profile decoding.
3
+ *
4
+ * Layouts recovered from Logitech's own registration code and verified against
5
+ * a Pro X Superlight 2 (profile format 7) — see
6
+ * docs/logitech-onboard-profiles.md. Pure functions only: the transport lives
7
+ * in hidpp.ts, so everything here is testable against captured bytes.
8
+ */
9
+ /** 0x8100 function ids. Write functions are deliberately absent. */
10
+ export declare const PROFILE_FN: {
11
+ readonly getInfo: 0;
12
+ readonly setMode: 16;
13
+ readonly getMode: 32;
14
+ readonly setCurrentProfile: 48;
15
+ readonly getCurrentProfile: 64;
16
+ readonly memoryRead: 80;
17
+ readonly memoryAddrWrite: 96;
18
+ readonly memoryWrite: 112;
19
+ readonly memoryWriteEnd: 128;
20
+ };
21
+ export declare const ONBOARD_MODE: {
22
+ readonly onboard: 1;
23
+ readonly host: 2;
24
+ };
25
+ /** Whether profile-content writes for `profileFormatId` are trusted at all. */
26
+ export declare function isProfileWritable(profileFormatId: number | null | undefined): boolean;
27
+ /** Whether the per-stage lift-off byte is trusted to write on this specific device. */
28
+ export declare function isLodWritableForProduct(profileFormatId: number | null | undefined, productId: number | null | undefined): boolean;
29
+ /** Whether this format has a reversible guided write probe. */
30
+ export declare function supportsProfileWriteProbe(profileFormatId: number | null | undefined): boolean;
31
+ /** Whether a complete, byte-for-byte reset image exists for this format. */
32
+ export declare function supportsFactoryReset(profileFormatId: number | null | undefined): boolean;
33
+ export interface ProfileFormat {
34
+ id: number;
35
+ name: string;
36
+ /** Which base layout applies; decides how a profile sector is decoded. */
37
+ base: "v1" | "v6";
38
+ /** A layout exists for this format. */
39
+ supported: boolean;
40
+ /** The layout has been confirmed against real hardware. */
41
+ verified: boolean;
42
+ /** Profile-content writes have been applied and restored on hardware. */
43
+ writable: boolean;
44
+ }
45
+ export declare function describeProfileFormat(profileFormatId: number): ProfileFormat;
46
+ export type LiftOffLevel = "Low" | "Medium" | "High";
47
+ /**
48
+ * Setting limits that vary by profile format rather than by model, keyed on the
49
+ * format the mouse reports through 0x8100 getInfo. A new mouse on a known
50
+ * format inherits them without a model check.
51
+ */
52
+ /**
53
+ * DPI slot limits for one format. Slot count and DPI range are properties of
54
+ * the mouse, not of the app: an older format can hold fewer slots and a much
55
+ * narrower range. Null means we have not established them for that format, in
56
+ * which case slots are not offered at all rather than guessed at.
57
+ */
58
+ export interface DpiStageCapabilities {
59
+ maxStages: number;
60
+ minDpi: number;
61
+ maxDpi: number;
62
+ stepDpi: number;
63
+ }
64
+ /**
65
+ * Report-rate ceilings, which differ per connection: the radio and the USB
66
+ * interface are not equally fast. Null when never established for a format.
67
+ */
68
+ export interface ReportRateCapabilities {
69
+ wirelessMaxHz: number;
70
+ wiredMaxHz: number;
71
+ }
72
+ export interface ProfileFormatCapabilities {
73
+ supportedLods: LiftOffLevel[];
74
+ /**
75
+ * Byte feature 0x2202 uses for each level. The same on every device — it is
76
+ * the feature's enum, not the format's — but kept here so a format that ever
77
+ * turns out to differ has somewhere to say so.
78
+ */
79
+ lodEncoding: Record<LiftOffLevel, number>;
80
+ dpiStages: DpiStageCapabilities | null;
81
+ reportRates: ReportRateCapabilities | null;
82
+ /** Characters the name region holds, or null when the format has no name. */
83
+ maxNameLength: number | null;
84
+ /**
85
+ * Whether the format has a bunny-hop byte at all. Kept separate from the
86
+ * stored value: an unwritten byte reads 0xff and decodes to null, which
87
+ * means "never set", not "not supported".
88
+ */
89
+ bunnyHop: boolean;
90
+ }
91
+ export declare const PROFILE_NAME_MAX_CHARS: number;
92
+ /** Narrows format storage limits to the DPI grid advertised by this sensor. */
93
+ export declare function dpiStageCapabilitiesForOptions(formatCapabilities: DpiStageCapabilities | null, dpiOptions: readonly number[]): DpiStageCapabilities | null;
94
+ export declare function capabilitiesForFormat(profileFormatId: number | null | undefined): ProfileFormatCapabilities;
95
+ /** Turns a raw 0x2202 lift-off byte back into a level for the given format. */
96
+ export declare function decodeLiftOffLevel(raw: number | null | undefined, capabilities: ProfileFormatCapabilities): LiftOffLevel | null;
97
+ export interface OnboardProfilesInfo {
98
+ memoryModelId: number;
99
+ profileFormatId: number;
100
+ macroFormatId: number;
101
+ profileCount: number;
102
+ buttonCount: number;
103
+ sectorCount: number;
104
+ sectorSize: number;
105
+ }
106
+ export interface DirectoryEntry {
107
+ sector: number;
108
+ enabled: boolean;
109
+ }
110
+ export interface DpiStage {
111
+ x: number;
112
+ y: number;
113
+ /** 0 marks an unused stage; real levels are 1-3 (low/medium/high). */
114
+ lod: number;
115
+ }
116
+ export interface OnboardProfile {
117
+ sector: number;
118
+ enabled: boolean;
119
+ isCurrent: boolean;
120
+ name: string | null;
121
+ dpiStages: DpiStage[];
122
+ defaultDpiIndex: number | null;
123
+ reportRateWireless: number | null;
124
+ reportRateWired: number | null;
125
+ angleSnapping: boolean | null;
126
+ powerSaveTimeoutSeconds: number | null;
127
+ powerOffTimeoutSeconds: number | null;
128
+ /**
129
+ * Bunny-hop timeout in milliseconds, or 0 when the feature is off. Stored as
130
+ * ms / 10, so G HUB's 100-1000 ms range is 0x0a-0x64 and "off" is 0x00. All
131
+ * three confirmed on hardware; 0xff is unwritten flash and decodes as null.
132
+ */
133
+ bunnyHoppingMs: number | null;
134
+ buttonAssignments: OnboardButtonAssignment[];
135
+ gShiftAssignments: OnboardButtonAssignment[];
136
+ crcValid: boolean;
137
+ /** Raw sector, kept so captures can diff before/after a vendor-app change. */
138
+ raw: Uint8Array;
139
+ }
140
+ export type LogitechButtonAction = "Disabled" | "Left click" | "Right click" | "Middle click" | "Back" | "Forward" | "Tilt left" | "Tilt right" | "Next DPI" | "Previous DPI" | "Cycle DPI" | "Default DPI" | "DPI Shift" | "Next profile" | "Previous profile" | "Cycle profiles" | "G-Shift" | "Battery indicator";
141
+ export interface OnboardButtonAssignment {
142
+ button: number;
143
+ action: LogitechButtonAction | "Custom";
144
+ raw: readonly number[];
145
+ }
146
+ export type LogitechButtonBinding = {
147
+ kind: "action";
148
+ action: LogitechButtonAction;
149
+ } | {
150
+ kind: "keyboard";
151
+ key: number;
152
+ modifiers: number;
153
+ } | {
154
+ kind: "consumer";
155
+ usage: number;
156
+ };
157
+ export interface LogitechMacroStep {
158
+ key: number;
159
+ modifiers: number;
160
+ /** Pause before this chord, in milliseconds. */
161
+ delayMs: number;
162
+ }
163
+ /** Encodes the HID++ macro format used by G502 onboard-memory sectors. */
164
+ export declare function encodeMacroSector(sectorSize: number, steps: readonly LogitechMacroStep[]): Uint8Array;
165
+ export declare function encodeMacroButtonAssignment(profile: Uint8Array, profileFormatId: number, layer: "primary" | "g-shift", button: number, macroSector: number): Uint8Array;
166
+ export declare const LOGITECH_BUTTON_ACTIONS: readonly LogitechButtonAction[];
167
+ export declare function encodeButtonAssignment(sector: Uint8Array, profileFormatId: number, layer: "primary" | "g-shift", button: number, binding: LogitechButtonAction | LogitechButtonBinding): Uint8Array;
168
+ /**
169
+ * Field offsets per profile format. Formats 1-5 use the v1 base, 6-8 the v6
170
+ * base; only the fields the UI reads are listed here.
171
+ */
172
+ interface ProfileLayout {
173
+ reportRateWireless: number | null;
174
+ reportRateWired: number | null;
175
+ /** Start of the DPI block: two index bytes, then five 5-byte stages. */
176
+ dpi: number | null;
177
+ angleSnapping: number;
178
+ powerSaveTimeout: number | null;
179
+ powerOffTimeout: number | null;
180
+ profileName: number;
181
+ /** Only formats 7+ register this component. */
182
+ bunnyHopping: number | null;
183
+ }
184
+ export declare function layoutForFormat(profileFormatId: number): ProfileLayout;
185
+ export interface ComponentSpec {
186
+ offset: number;
187
+ size: number;
188
+ name: string;
189
+ }
190
+ export declare function componentsForFormat(profileFormatId: number): ComponentSpec[];
191
+ /**
192
+ * Names the field a byte belongs to, so a diff reads as "dpi_v6 +2" rather
193
+ * than a bare offset. Returns null for bytes no component claims.
194
+ */
195
+ export declare function describeOffset(profileFormatId: number, offset: number, sectorSize?: number): string | null;
196
+ export declare function parseProfilesInfo(reply: Uint8Array): OnboardProfilesInfo;
197
+ /** Directory entries are 4 bytes: sector (big-endian), enabled, reserved. */
198
+ export declare function parseDirectory(bytes: Uint8Array): DirectoryEntry[];
199
+ /** CRC-16/CCITT-FALSE over everything but the trailing two checksum bytes. */
200
+ export declare function profileCrc(bytes: Uint8Array): number;
201
+ export declare function storedCrc(bytes: Uint8Array): number;
202
+ /** Writes the checksum into the last two bytes, big-endian. */
203
+ export declare function applyCrc(bytes: Uint8Array): Uint8Array;
204
+ /** Returns a fresh, CRC-valid factory sector only for a captured geometry. */
205
+ export declare function factoryProfileForFormat(profileFormatId: number, sectorSize: number): Uint8Array | null;
206
+ /**
207
+ * Returns a copy of the directory sector with one profile's enabled flag
208
+ * changed and the checksum recomputed. Every other byte is carried through
209
+ * untouched, so unknown directory fields survive.
210
+ */
211
+ export declare function setDirectoryEnabled(sector: Uint8Array, profileSector: number, enabled: boolean): Uint8Array;
212
+ /** Rates the byte can index, filtered to the ceiling for that connection. */
213
+ export declare function reportRatesFor(capabilities: ReportRateCapabilities | null, link: "wireless" | "wired"): number[];
214
+ /**
215
+ * Intersects format storage support with the rates advertised by the active
216
+ * hardware link. Legacy formats share one interval byte, so their live list
217
+ * applies to the whole profile; v6 formats retain the captured limit for the
218
+ * inactive link because the mouse cannot advertise that link while disconnected.
219
+ */
220
+ export declare function reportRatesForDevice(capabilities: ReportRateCapabilities | null, link: "wireless" | "wired", liveRates: readonly number[], activeLink: "wireless" | "wired", sharedInterval: boolean): number[];
221
+ export declare function validateReportRate(hz: number, capabilities: ReportRateCapabilities | null, link: "wireless" | "wired"): string | null;
222
+ /**
223
+ * Returns a copy of the sector with one connection's report rate replaced and
224
+ * the checksum reapplied. The two links are stored separately, so setting one
225
+ * leaves the other alone.
226
+ */
227
+ export declare function encodeReportRate(sector: Uint8Array, profileFormatId: number, link: "wireless" | "wired", hz: number, capabilitiesOverride?: ReportRateCapabilities | null): Uint8Array;
228
+ /** Returns why a profile name cannot be stored, or null when it fits. */
229
+ export declare function validateProfileName(name: string, maxLength: number | null): string | null;
230
+ /**
231
+ * Returns a copy of the sector with the profile name replaced and the checksum
232
+ * reapplied. The region is zero-filled first so a shorter name cannot leave the
233
+ * tail of the previous one behind it.
234
+ */
235
+ export declare function encodeProfileName(sector: Uint8Array, profileFormatId: number, name: string, maxLengthOverride?: number | null): Uint8Array;
236
+ export declare const BUNNY_HOP_LIMITS: {
237
+ readonly minMs: 100;
238
+ readonly maxMs: 1000;
239
+ readonly stepMs: 10;
240
+ };
241
+ /**
242
+ * Returns why a bunny-hop time is invalid, or null when it is acceptable.
243
+ * The byte stores ms / 10, so anything off-step cannot be represented.
244
+ */
245
+ export declare function validateBunnyHoppingMs(milliseconds: number): string | null;
246
+ export interface DpiStagePlan {
247
+ /** One entry per slot the user wants, within the format's limit. */
248
+ stages: DpiStage[];
249
+ /** Which slot the mouse starts on, as an index into `stages`. */
250
+ defaultIndex: number;
251
+ }
252
+ /**
253
+ * Returns why a stage plan cannot be written to this format, or null when it
254
+ * is writable. Every limit comes from the format, so an older mouse holding
255
+ * fewer slots or a narrower DPI range is checked against its own numbers.
256
+ */
257
+ export declare function validateDpiStagePlan(plan: DpiStagePlan, capabilities: DpiStageCapabilities | null, legacyScalar?: boolean): string | null;
258
+ /**
259
+ * Levels as stored inside a stage record, where 0 means the stage is unused.
260
+ * This is a property of the record itself, so it does not vary with whatever
261
+ * encoding feature 0x2202 happens to use on a given format.
262
+ */
263
+ export declare const PROFILE_STAGE_LOD: Record<LiftOffLevel, number>;
264
+ export declare function stageLodLevel(lod: number): LiftOffLevel | null;
265
+ /** Snaps a typed DPI onto the step and into the range the format allows. */
266
+ export declare function clampDpi(value: number, capabilities: DpiStageCapabilities): number;
267
+ /**
268
+ * Returns a copy of the sector with the DPI stage table replaced and the
269
+ * checksum reapplied. Slots past the plan are zeroed, which is how the vendor
270
+ * marks a stage unused, so the slot count is simply how many stages are set.
271
+ */
272
+ export declare function encodeDpiStages(sector: Uint8Array, profileFormatId: number, plan: DpiStagePlan, capabilitiesOverride?: DpiStageCapabilities | null,
273
+ /**
274
+ * False on hardware where the per-stage lift-off byte is unverified (see
275
+ * isLodWritableForProduct): the stage's x/y still get the plan's values,
276
+ * but its lift-off byte is left exactly as read rather than overwritten,
277
+ * since this format may not have lift-off storage there at all.
278
+ */
279
+ writeLod?: boolean): Uint8Array;
280
+ /**
281
+ * Snaps a typed bunny-hop time into the range and step the byte can hold.
282
+ * A number field only enforces min/max/step for its spinner, so a typed value
283
+ * has to be corrected here instead of being rejected.
284
+ */
285
+ export declare function clampBunnyHopMs(milliseconds: number): number;
286
+ /**
287
+ * Rebuilds `before` with every field we can encode set to the value found in
288
+ * `after`, then fixes the checksum.
289
+ *
290
+ * This is how a write path is proven without writing: if the result is
291
+ * byte-identical to what the vendor software actually produced, our encoding,
292
+ * offsets and CRC are all correct. Any byte that differs is something we either
293
+ * model wrongly or cannot write yet.
294
+ */
295
+ export declare function reproduceProfile(before: Uint8Array, after: Uint8Array, profileFormatId: number): Uint8Array;
296
+ export declare function decodeOnboardProfile(bytes: Uint8Array, profileFormatId: number, entry: DirectoryEntry, isCurrent: boolean): OnboardProfile;
297
+ export {};
298
+ //# sourceMappingURL=onboard-profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboard-profiles.d.ts","sourceRoot":"","sources":["../../../src/drivers/logitech/onboard-profiles.ts"],"names":[],"mappings":"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"}