@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,504 @@
1
+ /**
2
+ * Razer control protocol: 90-byte feature reports exchanged on report ID 0.
3
+ *
4
+ * Razer does not declare this report in its HID descriptor, so the collection
5
+ * carries no feature report of its own; the exchange still succeeds because
6
+ * WebHID does not validate report IDs against the descriptor. The control
7
+ * interface is the one whose only collection is Generic Desktop Mouse.
8
+ */
9
+ export declare const RAZER_REPORT_ID = 0;
10
+ export declare const RAZER_PACKET_LENGTH = 90;
11
+ /**
12
+ * Razer's three transaction ids.
13
+ *
14
+ * Named by value on purpose. They carry no meaning beyond "which firmware
15
+ * generation answers to this", they do not order neatly by device age, and
16
+ * every name that tried to describe them has been wrong: `_LEGACY` for `0x3f`
17
+ * read as "the oldest one" when `0xff` is older, and `_DEFAULT` for `0xff`
18
+ * read as "use this when unsure" when there is no safe default at all. A
19
+ * mismatch is silent — the mouse simply never replies — so every product must
20
+ * state its own id and none may be inferred from a family name.
21
+ *
22
+ * The same three values are what OpenRazer's driver selects between, and what
23
+ * the reference notes type as `"ff" | "3f" | "1f"`.
24
+ */
25
+ export declare const RAZER_TRANSACTION_ID_FF = 255;
26
+ export declare const RAZER_TRANSACTION_ID_3F = 63;
27
+ export declare const RAZER_TRANSACTION_ID_1F = 31;
28
+ /**
29
+ * Default for `encodeRazerRequest`. Verified against Viper V3 Pro firmware 1.12
30
+ * on both transports; the per-product table overrides it for everything else.
31
+ */
32
+ export declare const RAZER_TRANSACTION_ID = 31;
33
+ /**
34
+ * The button-mapping write (class `0x02`) is the one command on this mouse
35
+ * that rejects `RAZER_TRANSACTION_ID` silently: status `0x02` (ok), the
36
+ * read-back even changes, but the physical button keeps its old function.
37
+ * Confirmed on hardware by writing a plain mouse-button action, pressing the
38
+ * button, and finding it unchanged with `0x1f` and correct with any other id
39
+ * (`0x02` and `0x10` both round-tripped and worked physically). Every other
40
+ * write on this mouse uses `0x1f` without issue, so this is specific to class
41
+ * `0x02` rather than a general transport quirk.
42
+ */
43
+ export declare const RAZER_BUTTON_TRANSACTION_ID = 16;
44
+ export declare const RAZER_STATUS: {
45
+ readonly busy: 1;
46
+ readonly ok: 2;
47
+ readonly failure: 3;
48
+ readonly timeout: 4;
49
+ readonly unsupported: 5;
50
+ };
51
+ export interface RazerCommand {
52
+ commandClass: number;
53
+ commandId: number;
54
+ dataSize: number;
55
+ args?: readonly number[];
56
+ /** Overrides the per-product transaction id for this command alone. See `RAZER_BUTTON_TRANSACTION_ID`. */
57
+ transactionId?: number;
58
+ }
59
+ /**
60
+ * Razer selects a value store per command. Firmware 1.12 reports the same DPI
61
+ * from either store, and writes were confirmed against this one, so reads and
62
+ * writes both use it rather than risking a stale read from the other. The V2
63
+ * generation (DeathAdder V2 and its siblings) reads and writes through
64
+ * NOSTORE (`0x00`) instead, which OpenRazer's driver selects per device.
65
+ */
66
+ export declare const RAZER_STORAGE = 1;
67
+ /** Read-only commands confirmed against Viper V3 Pro firmware 1.12. */
68
+ export declare const RAZER_READ: {
69
+ readonly firmware: {
70
+ readonly commandClass: 0;
71
+ readonly commandId: 129;
72
+ readonly dataSize: 2;
73
+ };
74
+ readonly serial: {
75
+ readonly commandClass: 0;
76
+ readonly commandId: 130;
77
+ readonly dataSize: 22;
78
+ };
79
+ readonly battery: {
80
+ readonly commandClass: 7;
81
+ readonly commandId: 128;
82
+ readonly dataSize: 2;
83
+ };
84
+ readonly charging: {
85
+ readonly commandClass: 7;
86
+ readonly commandId: 132;
87
+ readonly dataSize: 2;
88
+ };
89
+ readonly sleepTimeout: {
90
+ readonly commandClass: 7;
91
+ readonly commandId: 131;
92
+ readonly dataSize: 2;
93
+ };
94
+ readonly lowPowerThreshold: {
95
+ readonly commandClass: 7;
96
+ readonly commandId: 129;
97
+ readonly dataSize: 2;
98
+ };
99
+ readonly dpi: {
100
+ readonly commandClass: 4;
101
+ readonly commandId: 133;
102
+ readonly dataSize: 7;
103
+ readonly args: readonly [1];
104
+ };
105
+ readonly dpiStages: {
106
+ readonly commandClass: 4;
107
+ readonly commandId: 134;
108
+ readonly dataSize: 38;
109
+ readonly args: readonly [0];
110
+ };
111
+ readonly pollingRate: {
112
+ readonly commandClass: 0;
113
+ readonly commandId: 133;
114
+ readonly dataSize: 1;
115
+ };
116
+ readonly pollingRateExtended: {
117
+ readonly commandClass: 0;
118
+ readonly commandId: 192;
119
+ readonly dataSize: 2;
120
+ readonly args: readonly [0];
121
+ };
122
+ readonly liftOff: {
123
+ readonly commandClass: 11;
124
+ readonly commandId: 133;
125
+ readonly dataSize: 5;
126
+ };
127
+ /**
128
+ * One control's button mapping. `args` is `[0x01, controlIndex, layer]`.
129
+ * `controlIndex` reliably selects the right control — confirmed by reading
130
+ * several controls back to back and always getting that control's own data.
131
+ * `layer` is not honored the same way: requesting Hypershift (`0x01`) for a
132
+ * control whose Standard mapping was just read back returned the Standard
133
+ * value again. Only Standard-layer reads are trusted.
134
+ */
135
+ readonly buttonMapping: {
136
+ readonly commandClass: 2;
137
+ readonly commandId: 140;
138
+ readonly dataSize: 10;
139
+ };
140
+ };
141
+ /**
142
+ * Write commands confirmed against Viper V3 Pro firmware 1.12.
143
+ *
144
+ * Razer pairs each read with a write that clears the high bit of the command
145
+ * id. Only commands verified on hardware belong here — in particular the DPI
146
+ * stage table (`0x04`/`0x06`) is absent on purpose, because a wrong length
147
+ * there is the one realistic way to corrupt stored settings.
148
+ */
149
+ export declare const RAZER_WRITE: {
150
+ readonly dpi: {
151
+ readonly commandClass: 4;
152
+ readonly commandId: 5;
153
+ readonly dataSize: 7;
154
+ };
155
+ readonly pollingRate: {
156
+ readonly commandClass: 0;
157
+ readonly commandId: 5;
158
+ readonly dataSize: 1;
159
+ };
160
+ readonly pollingRateExtended: {
161
+ readonly commandClass: 0;
162
+ readonly commandId: 64;
163
+ readonly dataSize: 2;
164
+ };
165
+ readonly liftOff: {
166
+ readonly commandClass: 11;
167
+ readonly commandId: 5;
168
+ readonly dataSize: 10;
169
+ };
170
+ readonly sensorSetting: {
171
+ readonly commandClass: 11;
172
+ readonly commandId: 11;
173
+ readonly dataSize: 4;
174
+ };
175
+ readonly sleepTimeout: {
176
+ readonly commandClass: 7;
177
+ readonly commandId: 3;
178
+ readonly dataSize: 2;
179
+ };
180
+ readonly lowPowerThreshold: {
181
+ readonly commandClass: 7;
182
+ readonly commandId: 1;
183
+ readonly dataSize: 2;
184
+ };
185
+ /**
186
+ * Silently rejects `RAZER_TRANSACTION_ID` — see `RAZER_BUTTON_TRANSACTION_ID`.
187
+ * `razerSetButtonMappingCommand` and `razerSetToggleControlCommand` are the
188
+ * only places that should build this.
189
+ *
190
+ * **Stored in device memory, not volatile.** Confirmed on a Viper V3 Pro
191
+ * (`0x00c1`): Mouse Button 4 was disabled, the host application closed, the
192
+ * mouse powered off at its switch for 10 seconds and powered back on. The
193
+ * button was still dead on reconnect and the read reported Disabled, with
194
+ * Synapse never running. So a caller does not need to re-apply mappings
195
+ * after a power cycle, and a user's change survives independently of any
196
+ * host software.
197
+ *
198
+ * The leading argument byte is always `0x01` here. On this device `0x01` is
199
+ * also `RAZER_STORAGE`, the persistent store DPI writes through, which makes
200
+ * a storage selector the obvious reading — but that byte has never been
201
+ * varied on this command, so it is recorded as an unknown rather than
202
+ * assigned that meaning.
203
+ */
204
+ readonly buttonMapping: {
205
+ readonly commandClass: 2;
206
+ readonly commandId: 12;
207
+ readonly dataSize: 10;
208
+ readonly transactionId: 16;
209
+ };
210
+ };
211
+ export declare function razerSetDpiCommand(x: number, y: number, storageByte?: number): RazerCommand;
212
+ /**
213
+ * The DPI read, parameterized by the store byte. The V3 family reads the
214
+ * storage byte (`0x01`), but the V2 generation reads the no-store byte (`0x00`)
215
+ * — OpenRazer's driver calls `get_dpi_xy(NOSTORE)` for them — so the shared
216
+ * `RAZER_READ.dpi` cannot be used verbatim.
217
+ */
218
+ export declare function razerReadDpiCommand(storageByte?: number): RazerCommand;
219
+ /** Seconds, big-endian, in the same encoding the matching read returns. */
220
+ export declare function razerSetSleepTimeoutCommand(seconds: number): RazerCommand;
221
+ /**
222
+ * The payload mirrors the matching read byte for byte: the level on the 0–255
223
+ * scale first, then a trailing zero. Confirmed on hardware by writing 85% and
224
+ * finding `d9 00` still held after a reload.
225
+ */
226
+ export declare function razerSetLowPowerThresholdCommand(percent: number): RazerCommand;
227
+ export declare function razerSetLegacyPollingCommand(pollingRateHz: number): RazerCommand;
228
+ /** The receiver takes the same leading argument its read echoes back. */
229
+ export declare function razerSetExtendedPollingCommand(pollingRateHz: number): RazerCommand;
230
+ export type RazerExtendedEffect = "off" | "static" | "spectrum" | "reactive" | "breathing-random" | "breathing-single" | "breathing-dual";
231
+ /** Effect ids from openrazer's `razer_chroma_extended_matrix_effect_*` family. */
232
+ export declare const RAZER_EFFECT: {
233
+ readonly off: 0;
234
+ readonly static: 1;
235
+ readonly spectrum: 3;
236
+ readonly reactive: 5;
237
+ readonly "breathing-random": 2;
238
+ readonly "breathing-single": 2;
239
+ readonly "breathing-dual": 2;
240
+ };
241
+ export type RazerReactiveSpeed = 1 | 2 | 3 | 4;
242
+ /** Synapse's reactive speed scale: 1 is fast, 4 is slow. */
243
+ export declare const RAZER_EFFECT_SPEED: {
244
+ readonly 1: 1;
245
+ readonly 2: 2;
246
+ readonly 3: 3;
247
+ readonly 4: 4;
248
+ };
249
+ export declare function parseRazerColor(hex: string): [number, number, number];
250
+ /**
251
+ * Extended effect command for the Viper Mini's extended-matrix family (`0x0f` /
252
+ * `0x02`), matching openrazer's `razer_chroma_extended_matrix_effect_*`
253
+ * functions, which this mouse dispatches through with `VARSTORE` and the logo
254
+ * led. The mouse's one 1x1 matrix means a single underglow zone.
255
+ *
256
+ * All effects share the `[VARSTORE, logo, effect]` header. Breathing variants
257
+ * differ only in the colour count byte and payload length, and reactive adds a
258
+ * speed level between the header and its single colour.
259
+ */
260
+ export declare function razerSetExtendedEffectCommand(effect: RazerExtendedEffect, options?: {
261
+ color?: string;
262
+ color2?: string;
263
+ speed?: RazerReactiveSpeed;
264
+ }): RazerCommand;
265
+ export declare class RazerProtocolError extends Error {
266
+ readonly status: number | null;
267
+ /**
268
+ * The reply belonged to an earlier exchange, so re-reading may still find the
269
+ * right one. Distinct from a failure status, which the mouse meant for us.
270
+ */
271
+ readonly stale: boolean;
272
+ constructor(message: string, status?: number | null, stale?: boolean);
273
+ }
274
+ /**
275
+ * Razer pairs each read with a write that clears the high bit of the command
276
+ * id, so the bit is what separates a question from an instruction. Repeating a
277
+ * question costs nothing; repeating an instruction is what the reference means
278
+ * by "do not automatically retry writes".
279
+ */
280
+ export declare function isRazerGetter(command: RazerCommand): boolean;
281
+ export declare function razerChecksum(packet: Uint8Array): number;
282
+ export declare function encodeRazerRequest(command: RazerCommand, transactionId?: number): Uint8Array<ArrayBuffer>;
283
+ /** Returns the reply arguments, or throws with the reported status. */
284
+ export declare function decodeRazerResponse(packet: Uint8Array, command: RazerCommand): Uint8Array;
285
+ export declare function decodeFirmwareVersion(args: Uint8Array): string;
286
+ export declare function decodeSerial(args: Uint8Array): string;
287
+ export declare function decodeBatteryPercent(args: Uint8Array): number;
288
+ /**
289
+ * The low-power threshold shares the battery level's 0–255 scale rather than
290
+ * being a percentage, so 0x4d is 30% and reading it as a percent is wrong by a
291
+ * factor of two and a half.
292
+ *
293
+ * It also sits in the *first* argument byte, where battery, charging and sleep
294
+ * all pad with a leading zero and answer in the second. The mouse replied
295
+ * `4d 00` where Synapse showed 30%, so the class is not consistent about this
296
+ * and the shared decoder cannot be reused.
297
+ */
298
+ export declare function decodeLowPowerThreshold(args: Uint8Array): number;
299
+ export declare function encodeBatteryLevel(percent: number): number;
300
+ export declare function decodeCharging(args: Uint8Array): boolean;
301
+ /**
302
+ * Idle sleep is a whole number of seconds, unlike battery and charging in the
303
+ * same class, which pad their one meaningful byte with a leading zero.
304
+ */
305
+ export declare function decodeSleepTimeout(args: Uint8Array): number;
306
+ export interface RazerDpi {
307
+ x: number;
308
+ y: number;
309
+ }
310
+ export declare function decodeDpi(args: Uint8Array): RazerDpi;
311
+ export interface RazerDpiStages {
312
+ /** One-based index into `stages`, as reported by the mouse. */
313
+ active: number;
314
+ stages: RazerDpi[];
315
+ }
316
+ export declare function decodeDpiStages(args: Uint8Array): RazerDpiStages;
317
+ /**
318
+ * Lift-off distance. The vendor software presents this as two different
319
+ * controls behind one checkbox, and the mouse stores both independently:
320
+ *
321
+ * - Asymmetric off: a single three-stop slider, "Tracking Distance".
322
+ * - Asymmetric on: two 26-step sliders, lift-off and landing.
323
+ *
324
+ * Switching modes leaves the other mode's stored value untouched, so neither
325
+ * reading destroys the other.
326
+ */
327
+ export type RazerTrackingDistance = "Low" | "Medium" | "High";
328
+ /** Indexed by the byte the mouse reports, so the order is the encoding. */
329
+ export declare const RAZER_TRACKING_DISTANCES: readonly RazerTrackingDistance[];
330
+ /** Synapse's own numbering. Landing must stay strictly below lift-off. */
331
+ export declare const RAZER_LIFT_OFF_MIN = 2;
332
+ export declare const RAZER_LIFT_OFF_MAX = 26;
333
+ export declare const RAZER_LANDING_MIN = 1;
334
+ export declare const RAZER_LANDING_MAX = 25;
335
+ export interface RazerLiftOff {
336
+ /** Null when the mouse reports a level outside the three the slider offers. */
337
+ tracking: RazerTrackingDistance | null;
338
+ liftOff: number;
339
+ landing: number;
340
+ }
341
+ /**
342
+ * Both asymmetric levels are stored one below the number Synapse displays, so
343
+ * lift-off 26 is 0x19 and landing 25 is 0x18. Confirmed at 5/4, 16/11 and 26/25,
344
+ * with the middle reading predicted before it was measured.
345
+ *
346
+ * Byte[0] echoes whatever argument the request carried and byte[1] was zero in
347
+ * every capture, so neither is read here — arguments 0x00 through 0x07 all
348
+ * returned the same levels, which rules out a per-profile store.
349
+ */
350
+ export declare function decodeLiftOff(args: Uint8Array): RazerLiftOff;
351
+ /**
352
+ * The highest landing a given lift-off permits: lift-off 10 allows 9, and so on
353
+ * down to the floor of 1.
354
+ *
355
+ * Landing is bounded by lift-off rather than locked to it — the vendor software
356
+ * caps its own slider the same way, and 16/11 is a perfectly ordinary pair. The
357
+ * firmware stores an inverted pair without complaint, and one session left the
358
+ * mouse holding lift-off 2 with landing 26, which the vendor software cannot
359
+ * even express. Nothing downstream catches that, so the rule is enforced here.
360
+ */
361
+ export declare function razerMaxLanding(liftOff: number): number;
362
+ /**
363
+ * Selects the mouse's symmetric tracking distance, and by doing so switches it
364
+ * out of asymmetric mode.
365
+ *
366
+ * The mouse has no readable mode bit and no mode flag to set. It honours
367
+ * whichever of the two stores was written most recently, so writing a tracking
368
+ * level *is* the way to return to symmetric — confirmed by the asymmetric pair
369
+ * write being rejected immediately afterwards.
370
+ */
371
+ export declare function razerSetTrackingDistanceCommand(distance: RazerTrackingDistance): RazerCommand;
372
+ /**
373
+ * Unlocks the asymmetric pair write, which the mouse rejects with status `0x03`
374
+ * in symmetric mode — and rejects while still moving what the read reports, so
375
+ * skipping this produces a driver that appears to work and never touches the
376
+ * sensor.
377
+ *
378
+ * There is no matching disable. Sending value `0x00` was accepted and changed
379
+ * nothing; the vendor software leaves asymmetric mode by writing a tracking
380
+ * level instead, which is what `razerSetTrackingDistanceCommand` does.
381
+ */
382
+ export declare function razerEnableAsymmetricLiftOffCommand(): RazerCommand;
383
+ /**
384
+ * Canonical asymmetric lift-off unlock: the same sensor-setting write as
385
+ * `razerEnableAsymmetricLiftOffCommand` with value `0x00`. The 1.14 sweep found
386
+ * both values arm the pair write, but only the `0x01` form is verified on
387
+ * 1.12, so this is the driver's fallback arm, never the shipped form.
388
+ */
389
+ export declare function razerEnableAsymmetricLiftOffCanonicalCommand(): RazerCommand;
390
+ /**
391
+ * Calibration-mode-on step, `0x0b`/`0x03` `00 04 01`. Not required on the
392
+ * swept firmware 1.14 units, where the unlock alone arms the pair write, so it
393
+ * is sent only as the last-resort arm in `setLiftOff` for a unit that refuses
394
+ * both unlock values. Carries the same sensor selector as the settings writes;
395
+ * the layout is read off the experiment notes rather than verified on
396
+ * hardware, which is why it comes last.
397
+ */
398
+ export declare function razerEnableSensorCalibrationCommand(): RazerCommand;
399
+ /**
400
+ * Lift-off write, transcribed from the vendor software's own packet rather than
401
+ * inferred: `dataSize 0x0a`, then `00 04` before the pair. It does NOT mirror
402
+ * the read's layout, which is what three earlier guesses assumed — each was
403
+ * answered `0x03` while still disturbing the stored values.
404
+ *
405
+ * Must be preceded by `razerEnableAsymmetricLiftOffCommand`.
406
+ *
407
+ * Confirmed on hardware: status `0x02`, read-back exact, and the change is
408
+ * felt at the sensor, which a read-back alone cannot establish.
409
+ */
410
+ export declare function razerSetLiftOffCommand(liftOff: number, landing: number): RazerCommand;
411
+ /**
412
+ * Legacy polling encodes the rate as a divisor of 1000, so it cannot express
413
+ * the HyperPolling rates. Wireless answers this command as unsupported.
414
+ */
415
+ export declare function decodeLegacyPollingRate(args: Uint8Array): number;
416
+ /**
417
+ * HyperPolling rates encode as a divisor of 8000. The first reply byte echoes
418
+ * the request argument, so the rate lives in the second. Wired answers this
419
+ * command as unsupported.
420
+ */
421
+ export declare function decodeExtendedPollingRate(args: Uint8Array): number;
422
+ /**
423
+ * The four controls the button-mapping write has been confirmed against, on
424
+ * the Viper V3 Pro's Standard layer. Left Click and Right Click use standard
425
+ * USB HID button numbering (1, 2), confirmed physically rather than assumed —
426
+ * writing Mouse Button 4's slot with each index and pressing it produced a
427
+ * real left-click and right-click. Mouse Button 4/5 matched their Synapse
428
+ * names directly. Cross-assignable among each other, plus Disabled.
429
+ *
430
+ * Scroll Up, Scroll Down and the bottom sensitivity button ship too, but as a
431
+ * separate, narrower kind of control — see `RazerToggleControl`. Scroll Click
432
+ * and Hypershift remain unshipped: Scroll Click's index is known but this
433
+ * driver's own write to it has only been physically checked against the wrong
434
+ * action, and Hypershift's read does not honour a requested layer at all.
435
+ */
436
+ export type RazerButtonControl = "leftClick" | "rightClick" | "mouse4" | "mouse5";
437
+ export declare const RAZER_BUTTON_CONTROLS: readonly RazerButtonControl[];
438
+ /** Every mapping the panel can offer: each control's own action, plus Disabled. */
439
+ export declare const RAZER_BUTTON_MAPPINGS: readonly ["Left Click", "Right Click", "Mouse Button 4", "Mouse Button 5", "Disabled"];
440
+ export type RazerButtonMapping = (typeof RAZER_BUTTON_MAPPINGS)[number];
441
+ export declare const RAZER_BUTTON_CONTROL_LABEL: Record<RazerButtonControl, RazerButtonMapping>;
442
+ /**
443
+ * Decodes a button-mapping reply back to a label. Returns null for an
444
+ * encoding this driver does not recognise — a keyboard shortcut, a control
445
+ * outside the four shipped here, or anything else unmapped — so a caller can
446
+ * preserve it rather than misrepresent it as one of the known five.
447
+ */
448
+ export declare function razerDecodeButtonMapping(args: Uint8Array): RazerButtonMapping | null;
449
+ /** Only the Standard layer is trusted for reads — see `RAZER_READ.buttonMapping`. */
450
+ export declare function razerReadButtonMappingCommand(control: RazerButtonControl): RazerCommand;
451
+ /**
452
+ * Left Click cannot be reassigned or disabled on the Standard layer — Synapse
453
+ * enforces the same restriction, presumably because it is the only reliable
454
+ * way to interact with Windows (and with Synapse itself) at all. Exported so
455
+ * the UI can disable the control outright instead of letting a user hit the
456
+ * error.
457
+ */
458
+ export declare const RAZER_LOCKED_BUTTON_CONTROL: RazerButtonControl;
459
+ export declare function razerSetButtonMappingCommand(control: RazerButtonControl, mapping: RazerButtonMapping): RazerCommand;
460
+ /**
461
+ * Scroll Up, Scroll Down and the bottom sensitivity button, each restricted
462
+ * to exactly two states: their own factory action, or Disabled. Unlike
463
+ * `RazerButtonControl`, these are not cross-assignable — assigning one of
464
+ * these an action from `RAZER_BUTTON_MAPPINGS`, or assigning a button one of
465
+ * these controls' actions, has never been attempted on hardware and is not
466
+ * exposed here. Deliberately a separate type from `RazerButtonControl` and
467
+ * kept out of `RAZER_BUTTON_MAPPINGS` for that reason, even though three of
468
+ * these four values would otherwise fit the same plain-action shape.
469
+ *
470
+ * Each control's enabled state is a fixed, opaque payload captured verbatim
471
+ * from the mouse rather than something constructed from a shared formula,
472
+ * because the bottom sensitivity button's default ("Cycle Up Sensitivity
473
+ * Stages") is not a plain-button action at all — `actionType=0x06`, a type
474
+ * this driver otherwise never decodes.
475
+ *
476
+ * Scroll Click (index `0x03`) is deliberately not included: its index is
477
+ * known and Synapse's own disable was physically confirmed, but the one
478
+ * physical test run against this driver's own write to that index checked
479
+ * the wrong result (scroll-down instead of the click), so it has not
480
+ * separately cleared this driver's own bar yet.
481
+ */
482
+ export type RazerToggleControl = "scrollUp" | "scrollDown" | "sensitivityButton";
483
+ export declare const RAZER_TOGGLE_CONTROLS: readonly RazerToggleControl[];
484
+ export interface RazerToggleControlInfo {
485
+ index: number;
486
+ /** Display heading for the control itself, independent of its current state. */
487
+ label: string;
488
+ /** The label for this control's one non-Disabled state. */
489
+ enabledLabel: string;
490
+ /** `[actionType, actionLen, actionValue]` for the enabled state, captured verbatim from the mouse. */
491
+ enabledArgs: readonly [number, number, number];
492
+ }
493
+ export declare const RAZER_TOGGLE_CONTROL_INFO: Record<RazerToggleControl, RazerToggleControlInfo>;
494
+ /** Only the Standard layer is trusted for reads — see `RAZER_READ.buttonMapping`. */
495
+ export declare function razerReadToggleControlCommand(control: RazerToggleControl): RazerCommand;
496
+ /**
497
+ * Decodes a toggle control's reply to its own enabled label or "Disabled".
498
+ * Returns null for anything else — Hypershift data, a Synapse reassignment
499
+ * this driver has never captured, or noise — so a caller can preserve it
500
+ * rather than misrepresent it as one of the two known states.
501
+ */
502
+ export declare function razerDecodeToggleControl(control: RazerToggleControl, args: Uint8Array): string | null;
503
+ export declare function razerSetToggleControlCommand(control: RazerToggleControl, label: string): RazerCommand;
504
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/razer/codec.ts"],"names":[],"mappings":"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"}