@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,283 @@
1
+ /**
2
+ * SteelSeries Sensei TEN configuration protocol — pure encode/decode helpers.
3
+ *
4
+ * Reconstructed from public open-source implementations, not vendor software:
5
+ *
6
+ * - rivalcfg `rivalcfg/devices/sensei_ten.py` — the primary source for every
7
+ * command byte, default, and product id here.
8
+ * - rivalcfg `rivalcfg/test/devices/old_specs/test_sensei_ten.py` — the
9
+ * device-specific fixture test, which pins exact expected HID report bytes
10
+ * for polling rate, sensitivity presets, logo/wheel color gradients,
11
+ * buttons mapping, save, and the firmware query. Every byte sequence in
12
+ * this module's own tests was cross-checked against that file rather than
13
+ * re-derived solely from the handler source, since it is ground truth for
14
+ * how rivalcfg actually serializes this device's settings.
15
+ * - rivalcfg `rivalcfg/handlers/range.py` (the `range` value type the
16
+ * `multidpi_range` handler below builds on: linear input→output mapping,
17
+ * rounded to the nearest step) and `rivalcfg/handlers/rgbgradient.py` (the
18
+ * color/gradient wire format for `logo_color` and `wheel_color`).
19
+ * - `rivalcfg/devices/sensei_raw.py` and `rivalcfg/devices/sensei310.py` were
20
+ * read to confirm they are unrelated protocols (different command bytes,
21
+ * different DPI encodings) and were not a source for anything here.
22
+ *
23
+ * **Corroboration gap, flagged prominently per this rollout's instructions:**
24
+ * libratbag and the OpenRGB SteelSeries controller sources were not
25
+ * reachable from this environment (no network access to
26
+ * github.com/libratbag/libratbag or OpenRGB's SteelSeries controller files),
27
+ * so unlike some earlier SteelSeries clusters in this project, **nothing
28
+ * here has a second independent source** — rivalcfg (source + its own test
29
+ * fixture) is the only corroboration this module has. Treat every byte below
30
+ * as "rivalcfg says so", not "two independent projects agree".
31
+ *
32
+ * Every command is an HID **output report** (id `0x00`) except `logo_color`
33
+ * and `wheel_color`, which are HID **feature reports** — `sensei_ten.py`
34
+ * marks them `usbhid.HID_REPORT_TYPE_FEATURE` while every other setting is
35
+ * `HID_REPORT_TYPE_OUTPUT`. The functions here build the report *payload* —
36
+ * the bytes after the report id — unpadded, matching rivalcfg's `usbhid.py`
37
+ * writes (`_hid_write` always prepends `report_id = 0x00` and otherwise
38
+ * sends the payload as-is with no fixed packet length for this device).
39
+ *
40
+ * **This device is write-only except for firmware.** No public
41
+ * implementation has a getter for DPI, polling, or lighting/buttons; the
42
+ * single readable value is the two-byte firmware version behind `90 00`
43
+ * (`response_length: 2`, `report_type: OUTPUT`), the same shape as Rival 3
44
+ * Gen 1's `10 00` — see `steelseriesSenseiTenDecodeFirmware`, which reuses
45
+ * Rival 3's read-order-byte-join convention and the same byte-order caveat.
46
+ *
47
+ * Settings apply immediately; `save_command` (`59 00`) persists them to
48
+ * onboard flash — distinct from Rival 3 Gen 1's `09 00` and Aerox 3's
49
+ * `11 00`; do not reuse across families.
50
+ *
51
+ * ## Sensor / DPI encoding
52
+ *
53
+ * Unlike Rival 3 Gen 1 and Aerox 3 (TrueMove Core, a byte lookup table),
54
+ * Sensei TEN's `sensitivity` setting uses rivalcfg's plain `multidpi_range`
55
+ * handler with `input_range: [50, 18000, 50]` and `output_range: [1, 0x0168,
56
+ * 1]` — a **linear** mapping, not a table: `output = input / 50`, written as
57
+ * a 2-byte little-endian integer per preset (`dpi_length_byte: 2`). This
58
+ * matches SteelSeries marketing calling Sensei TEN's sensor a newer
59
+ * generation (TrueMove3+) than the TrueMove Core/Air families used by
60
+ * Rival 3 and Aerox 3/5 — confirmed here by the *shape* of the DPI handler
61
+ * (linear range vs. lookup table) rather than by an independent sensor-name
62
+ * source, which was not reachable (see corroboration gap above).
63
+ *
64
+ * `count_mode: "flag"` — like Aerox 3's `dpiPresets`, the on-wire preset
65
+ * count is a bitmask (`0b00000001` for 1 preset, `0b00001111` for 4, etc.),
66
+ * not a plain integer, unlike Rival 3 Gen 1's `count_mode: "number"`.
67
+ *
68
+ * ## RGB: `logo_color` / `wheel_color`
69
+ *
70
+ * Sensei TEN has two independently addressable RGB zones — the SteelSeries
71
+ * logo and the scroll-wheel light — both using rivalcfg's full `rgbgradient`
72
+ * value type (multi-stop animated gradients), not the simpler flat
73
+ * `rgbcolor`/zone-bitmask scheme Aerox 3 and Aerox 5 use. This module
74
+ * implements the complete gradient encoding (not just a solid-color special
75
+ * case), because the wire format is small and precisely pinned by
76
+ * `test_sensei_ten.py`'s `test_set_logo_color`/`test_set_wheel_color`
77
+ * fixtures, which this module's tests reproduce byte-for-byte.
78
+ *
79
+ * The packet layout, from `rgbgradient.py`'s `process_value` with Sensei
80
+ * TEN's `rgbgradient_header` (`header_length: 26`, `led_id_offsets: [0]`,
81
+ * `duration_offset: 1` (2 bytes, little-endian ms), `repeat_offset: 17`,
82
+ * `triggers_offset: 21`, `color_count_offset: 25`):
83
+ *
84
+ * ```
85
+ * 5B 00 <led_id> <duration_lo> <duration_hi> <14 zero bytes>
86
+ * <repeat> <3 zero bytes> <triggers> <3 zero bytes> <color_count>
87
+ * <initial_color r,g,b> <color1 r,g,b> <pos1> ... <colorN r,g,b> <posN>
88
+ * ```
89
+ *
90
+ * `led_id` is `0x00` for `logo_color`, `0x01` for `wheel_color` — the only
91
+ * difference between the two settings' commands. `repeat` is `0x01` for a
92
+ * solid color (no animation) or when the gradient has button triggers
93
+ * (`triggers` — not exposed by this module, always `0x00`, matching
94
+ * `sensei_ten.py`'s profile, which never sets it); `0x00` for an animated
95
+ * gradient with no trigger.
96
+ *
97
+ * **The per-stop `pos` byte is a *delta*, not an absolute position** — easy
98
+ * to get wrong reading `rgbgradient.py` casually, and this module's first
99
+ * draft did. Each stop's true 0–255 position is `Math.trunc(pos * 255 /
100
+ * 100)` (rivalcfg uses Python's `int()`, which truncates toward zero, not
101
+ * `round()`); the wire byte for that stop is the *difference* between this
102
+ * truncated position and the previous stop's, starting from 0. This was
103
+ * confirmed against `test_sensei_ten.py`'s `test_set_wheel_color` fixture:
104
+ * stops at 0/25/50/75/100% truncate to real positions 0/63/127/191/255, and
105
+ * the fixture's actual bytes are the deltas 0/63/64/64/64, not the absolute
106
+ * values — reproduced exactly by this module's own tests. rivalcfg
107
+ * auto-appends a final stop equal to the first color at pos 100 if the
108
+ * caller's last stop is not already at 100, "smoothing" the loop — this
109
+ * module requires the caller to pass every stop explicitly (including the
110
+ * closing one, if wanted) rather than silently appending one, to keep the
111
+ * encoder a pure function of its input.
112
+ *
113
+ * ## Buttons mapping — reduced scope, mirrors `aerox3.ts`
114
+ *
115
+ * `31 00` + one 40-byte (8 buttons × 5-byte field) packet, zero-filled
116
+ * except where a mapping is given — byte-identical field layout to Aerox 3's
117
+ * `buttons_mapping`, but Sensei TEN's `button_scroll_up`/`button_scroll_down`
118
+ * (`0x31`/`0x32`) are function **codes** a button's slot can hold (used when
119
+ * *another* button is remapped to act as a scroll action), unlike Aerox 3
120
+ * where `scrollUp`/`scrollDown` are physical button *sources* that cannot be
121
+ * remap targets. Sensei TEN has no such restriction — every one of its 8
122
+ * buttons is a valid remap target for another button's id (Button1–Button8,
123
+ * ids `0x01`–`0x08`). As with `aerox3.ts`, this module implements the exact
124
+ * packet shape and the mouse-button/disable/DPI-switch/scroll-up/scroll-down
125
+ * special actions, but does not re-implement rivalcfg's QWERTY/multimedia
126
+ * key-name tables — keyboard and multimedia targets are raw
127
+ * `{ type: "keyboard" | "multimedia", code }` scan-code bytes, matching
128
+ * `button_keyboard: 0x51` / `button_multimedia: 0x61` verbatim. The
129
+ * documented defaults (`test_set_buttons_mapping`'s `"default"` case) are
130
+ * exposed as `SENSEI_TEN_DEFAULT_BUTTONS_MAPPING` for callers/tests: Button6
131
+ * defaults to keyboard code `0x4E` (Page Down), Button7 to `0x4B` (Page Up),
132
+ * Button8 to DPI-switch — the rest map to themselves.
133
+ *
134
+ * None of this has been verified on physical Sensei TEN hardware by this
135
+ * project. The Sensei RAW (`sensei_raw.py`) and Sensei 310 (`sensei310.py`)
136
+ * use different, incompatible command sets and must not reuse this module.
137
+ */
138
+ export declare const SENSEI_TEN_REPORT_ID = 0;
139
+ /** Two-byte command prefixes; the payload is the prefix plus its arguments. */
140
+ export declare const SENSEI_TEN_COMMAND: {
141
+ readonly buttonsMapping: readonly [49, 0];
142
+ readonly pollingRate: readonly [84, 0];
143
+ readonly sensitivity: readonly [85, 0];
144
+ readonly logoColor: readonly [91, 0];
145
+ readonly wheelColor: readonly [91, 0];
146
+ readonly save: readonly [89, 0];
147
+ readonly firmware: readonly [144, 0];
148
+ };
149
+ export declare const SENSEI_TEN_POLLING_RATES: readonly [125, 250, 500, 1000];
150
+ export declare const SENSEI_TEN_DPI_MIN = 50;
151
+ export declare const SENSEI_TEN_DPI_MAX = 18000;
152
+ export declare const SENSEI_TEN_DPI_STEP = 50;
153
+ export declare const SENSEI_TEN_MAX_DPI_PRESETS = 5;
154
+ export declare const SENSEI_TEN_FIRMWARE_RESPONSE_LENGTH = 2;
155
+ export declare class SenseiTenProtocolError extends Error {
156
+ }
157
+ /** Every DPI value the linear 50–18,000 (step 50) range can express, ascending. */
158
+ export declare function steelseriesSenseiTenDpiOptions(): number[];
159
+ /**
160
+ * `55 00 <count flag> <selected> <v1 lo,hi> ... <vN lo,hi>` — replaces the
161
+ * mouse's whole preset table. Each DPI is 2 bytes little-endian
162
+ * (`dpi_length_byte: 2`); `count` is a bitmask of the preset count
163
+ * (`count_mode: "flag"`), not a plain integer. `selectedIndex` is 0-based
164
+ * here and encoded 1-based on the wire (`first_preset: 1`).
165
+ */
166
+ export declare function steelseriesSenseiTenEncodeDpiPresets(presets: readonly number[], selectedIndex: number): Uint8Array;
167
+ /** `54 00 <v>` with 1000→0x01, 500→0x02, 250→0x03, 125→0x04. */
168
+ export declare function steelseriesSenseiTenEncodePollingRate(pollingRateHz: number): Uint8Array;
169
+ export type SenseiTenLed = "logo" | "wheel";
170
+ /** One gradient stop: `pos` is a percentage 0–100. */
171
+ export interface SenseiTenColorStop {
172
+ pos: number;
173
+ r: number;
174
+ g: number;
175
+ b: number;
176
+ }
177
+ /**
178
+ * `5B 00 <led_id> ...` — encodes a color or animated gradient for the logo
179
+ * (`led: "logo"`) or scroll-wheel (`led: "wheel"`) LED. See the module doc
180
+ * comment for the full packet layout.
181
+ *
182
+ * - A single stop (`stops.length === 1`) is treated as a solid, non-animated
183
+ * color: `repeat` is set to `0x01` regardless of that stop's `pos`
184
+ * (matching `rgbgradient.py`'s `is_gradient = False` path for a bare color
185
+ * string/tuple, which always uses `pos = 0` internally — pass `pos: 0`
186
+ * here for parity, though the wire format ignores it for a single stop
187
+ * since there is nothing to interpolate toward).
188
+ * - Two or more stops are encoded as an animated gradient at `durationMs`,
189
+ * `repeat` `0x00`. Unlike rivalcfg's CLI parser, this function does **not**
190
+ * auto-append a closing stop equal to the first color at pos 100 — pass it
191
+ * explicitly if a smooth loop is wanted (see `test_set_logo_color`'s
192
+ * fixture, which does include that stop as its 4th entry).
193
+ */
194
+ export declare function steelseriesSenseiTenEncodeLedColor(led: SenseiTenLed, stops: readonly SenseiTenColorStop[], durationMs?: number): Uint8Array;
195
+ /** `59 00` — commit the current settings to onboard flash. */
196
+ export declare function steelseriesSenseiTenSaveCommand(): Uint8Array;
197
+ /** `90 00` — the two-byte firmware version query, this device's only readable value. */
198
+ export declare function steelseriesSenseiTenFirmwareQuery(): Uint8Array;
199
+ export interface SenseiTenFirmware {
200
+ /** The two raw response bytes, in the order the device sent them. */
201
+ bytes: [number, number];
202
+ /** The bytes joined in read order, e.g. "37.0". */
203
+ display: string;
204
+ }
205
+ /**
206
+ * Decode the two-byte firmware response, reusing Rival 3 Gen 1's read-order
207
+ * join convention (`steelseriesRival3DecodeFirmware`) — the byte order is
208
+ * contested between public implementations for that family, and no
209
+ * corroborating source (libratbag, OpenRGB) was reachable for Sensei TEN
210
+ * specifically to settle it independently. Both raw bytes are returned.
211
+ */
212
+ export declare function steelseriesSenseiTenDecodeFirmware(payload: Uint8Array): SenseiTenFirmware;
213
+ /** `buttons_mapping.buttons` from `sensei_ten.py`, id + byte offset into the packet. */
214
+ export declare const SENSEI_TEN_BUTTONS: {
215
+ readonly button1: {
216
+ readonly id: 1;
217
+ readonly offset: 0;
218
+ };
219
+ readonly button2: {
220
+ readonly id: 2;
221
+ readonly offset: 5;
222
+ };
223
+ readonly button3: {
224
+ readonly id: 3;
225
+ readonly offset: 10;
226
+ };
227
+ readonly button4: {
228
+ readonly id: 4;
229
+ readonly offset: 15;
230
+ };
231
+ readonly button5: {
232
+ readonly id: 5;
233
+ readonly offset: 20;
234
+ };
235
+ readonly button6: {
236
+ readonly id: 6;
237
+ readonly offset: 25;
238
+ };
239
+ readonly button7: {
240
+ readonly id: 7;
241
+ readonly offset: 30;
242
+ };
243
+ readonly button8: {
244
+ readonly id: 8;
245
+ readonly offset: 35;
246
+ };
247
+ };
248
+ export type SenseiTenButtonName = keyof typeof SENSEI_TEN_BUTTONS;
249
+ /** One button's target — see the module doc comment for why scroll actions
250
+ * are function codes here, unlike Aerox 3's fixed scroll-source buttons. */
251
+ export type SenseiTenButtonAction = {
252
+ type: "button";
253
+ target: SenseiTenButtonName;
254
+ } | {
255
+ type: "disabled";
256
+ } | {
257
+ type: "dpiSwitch";
258
+ } | {
259
+ type: "scrollUp";
260
+ } | {
261
+ type: "scrollDown";
262
+ } | {
263
+ type: "keyboard";
264
+ code: number;
265
+ } | {
266
+ type: "multimedia";
267
+ code: number;
268
+ };
269
+ /**
270
+ * `31 00` + one 40-byte (`8 buttons × 5-byte field length`) packet,
271
+ * zero-filled except where a mapping is given. Unmapped buttons are left as
272
+ * all-zero fields — pass every button explicitly for parity with rivalcfg's
273
+ * default profile (see `SENSEI_TEN_DEFAULT_BUTTONS_MAPPING`).
274
+ */
275
+ export declare function steelseriesSenseiTenEncodeButtonsMapping(mapping: Partial<Record<SenseiTenButtonName, SenseiTenButtonAction>>): Uint8Array;
276
+ /**
277
+ * `sensei_ten.py`'s documented default mapping (`test_set_buttons_mapping`'s
278
+ * `"default"` fixture): buttons 1–5 map to themselves, Button6 to keyboard
279
+ * Page Down (`0x4E`), Button7 to keyboard Page Up (`0x4B`), Button8 to the
280
+ * DPI switch.
281
+ */
282
+ export declare const SENSEI_TEN_DEFAULT_BUTTONS_MAPPING: Record<SenseiTenButtonName, SenseiTenButtonAction>;
283
+ //# sourceMappingURL=sensei-ten.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensei-ten.d.ts","sourceRoot":"","sources":["../../src/steelseries/sensei-ten.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwIG;AAEH,eAAO,MAAM,oBAAoB,IAAO,CAAC;AAEzC,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAEX,eAAO,MAAM,wBAAwB,gCAAiC,CAAC;AASvE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAErD,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AAEpD,mFAAmF;AACnF,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAMzD;AAgBD;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,GACpB,UAAU,CAkBZ;AAED,gEAAgE;AAChE,wBAAgB,qCAAqC,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAMvF;AAID,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAI5C,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAeD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,SAAS,kBAAkB,EAAE,EACpC,UAAU,SAAO,GAChB,UAAU,CAqCZ;AAED,8DAA8D;AAC9D,wBAAgB,+BAA+B,IAAI,UAAU,CAE5D;AAED,wFAAwF;AACxF,wBAAgB,iCAAiC,IAAI,UAAU,CAE9D;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,UAAU,GAAG,iBAAiB,CAMzF;AASD,wFAAwF;AACxF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASyB,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAUlE;4EAC4E;AAC5E,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,GACnE,UAAU,CAsDZ;AAED;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CASjG,CAAC"}