avke-sdk 1.0.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.
package/README.md ADDED
@@ -0,0 +1,267 @@
1
+ # AVKE - 爱客游戏外设开发者联盟
2
+
3
+ [![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://github.com/avke/avke-sdk)
4
+ [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://opensource.org/licenses/MIT)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)
6
+
7
+ > 引领游戏外设技术革新的专业SDK平台,为开发者提供企业级的硬件通信解决方案
8
+
9
+ AVKE 项目是由GDE 游戏驱动引擎团队开发和维护。
10
+
11
+ AVKE SDK 是专为游戏外设开发者打造的现代化JavaScript/TypeScript SDK,基于WEBHID技术实现键盘、鼠标等外设的深度硬件控制。无需额外驱动,即可在浏览器环境中实现设备连接、参数配置、灯光控制等高级功能,为游戏生态构建无限可能。
12
+
13
+ ## ✨ 核心特性
14
+
15
+ - 🚀 **企业级架构** - 模块化设计,支持键盘和鼠标设备类型区分
16
+ - 🌐 **现代Web技术** - 基于WEBHID标准,突破浏览器硬件访问限制
17
+ - 📱 **跨平台支持** - Windows、macOS、Linux全平台兼容
18
+ - 🔧 **TypeScript优先** - 完整的类型定义和智能提示
19
+ - 📊 **性能监控** - 内置性能追踪和错误处理机制
20
+ - 🧪 **完整测试** - 全面的单元测试和集成测试覆盖
21
+ - 📚 **官网文档** - 体系化的API文档和开发指南
22
+
23
+ ## 🛠️ 技术栈
24
+
25
+ - **前端框架**: Vue 3 + TypeScript
26
+ - **构建工具**: Vite
27
+ - **通信协议**: WEBHID
28
+ - **文档系统**: VitePress(已集成到官网开发与构建流程)
29
+ - **测试框架**: 自定义测试运行器
30
+ - **包管理**: npm
31
+
32
+ ## Installation
33
+
34
+ ```bash
35
+ npm install avke-sdk
36
+ ```
37
+
38
+ ## Usage
39
+
40
+ ### Keyboard SDK
41
+
42
+ ```javascript
43
+ import { ServiceKeyboard } from 'avke-sdk';
44
+
45
+ const keyboard = new ServiceKeyboard();
46
+
47
+ // Get available devices
48
+ const devices = await keyboard.getDevices();
49
+ console.log('Devices:', devices);
50
+
51
+ // Initialize a device
52
+ const device = await keyboard.init(devices[0].id);
53
+
54
+ // Get device info
55
+ const info = await keyboard.getDevicesInfo();
56
+ console.log('Device Info:', info);
57
+ ```
58
+
59
+ ### Mouse SDK
60
+
61
+ ```javascript
62
+ import { ServiceMouse } from 'avke-sdk';
63
+
64
+ const mouse = new ServiceMouse();
65
+
66
+ // Get available devices
67
+ const devices = await mouse.getDevices();
68
+ console.log('Devices:', devices);
69
+
70
+ // Initialize a device
71
+ const device = await mouse.init(devices[0].id);
72
+
73
+ // Get DPI setting
74
+ const dpi = await mouse.getDPI();
75
+ console.log('Current DPI:', dpi.value);
76
+ ```
77
+
78
+ ## 核心功能模块
79
+
80
+ ### 🔧 版本管理和兼容性
81
+
82
+ SDK 内置版本管理功能,支持设备固件兼容性检查:
83
+
84
+ ```javascript
85
+ import { versionManager } from 'avke-sdk';
86
+
87
+ // 获取SDK版本信息
88
+ const version = versionManager.getVersion();
89
+ console.log('SDK Version:', version.version);
90
+
91
+ // 检查设备兼容性
92
+ const compatibility = versionManager.checkCompatibility('keyboard', '1.0.1.0');
93
+ console.log('Compatible:', compatibility.compatible);
94
+ ```
95
+
96
+ ### 📊 错误处理和日志系统
97
+
98
+ 完整的错误处理和日志记录功能:
99
+
100
+ ```javascript
101
+ import { logger } from 'avke-sdk';
102
+
103
+ // 设置日志级别
104
+ logger.setLevel('DEBUG');
105
+
106
+ // 记录不同级别的日志
107
+ logger.info('Operation completed successfully');
108
+ logger.warn('Warning: device not responding');
109
+ logger.error('Error: connection failed');
110
+
111
+ // 获取日志记录
112
+ const logs = logger.getLogs('ERROR');
113
+ console.log('Error logs:', logs);
114
+ ```
115
+
116
+ ### 📈 性能监控
117
+
118
+ 实时性能监控和统计:
119
+
120
+ ```javascript
121
+ import { performanceMonitor } from 'avke-sdk';
122
+
123
+ // 获取性能报告
124
+ const report = performanceMonitor.getReport();
125
+ console.log('Total operations:', report.summary.totalOperations);
126
+ console.log('Active connections:', report.summary.activeConnections);
127
+
128
+ // 按操作类型查看性能
129
+ console.log('Operation metrics:', report.operations);
130
+ ```
131
+
132
+ ## 测试工具
133
+
134
+ ### 运行测试
135
+
136
+ ```bash
137
+ # 运行所有测试
138
+ npm test
139
+
140
+ # 在Node.js环境中运行
141
+ npm run test:node
142
+
143
+ # 在浏览器中运行(开发模式)
144
+ npm run test:browser
145
+ ```
146
+
147
+ ### 测试框架
148
+
149
+ SDK 包含完整的测试框架,支持:
150
+
151
+ - ✅ 单元测试
152
+ - ✅ 集成测试
153
+ - ✅ 性能测试
154
+ - ✅ 兼容性测试
155
+ - ✅ 错误处理测试
156
+
157
+ ## 开发和调试
158
+
159
+ ### 开发服务器
160
+
161
+ ```bash
162
+ # 启动调试工具
163
+ npm run dev
164
+
165
+ # 启动网站开发服务器
166
+ npm run website:dev
167
+
168
+ # 文档调试入口
169
+ # 官网开发模式可直接访问 /docs/
170
+ ```
171
+
172
+ ### 构建
173
+
174
+ ```bash
175
+ # 构建SDK
176
+ npm run build
177
+
178
+ # 构建调试版本
179
+ npm run build:debug
180
+
181
+ # 构建完整网站
182
+ npm run website:build
183
+
184
+ # 官网构建会自动构建文档并整合到 dist-website/docs
185
+ ```
186
+
187
+ ## 官网
188
+
189
+ 完整的项目官网已集成所有功能模块:
190
+
191
+ ```bash
192
+ # 启动官网开发服务器
193
+ npm run website:dev
194
+
195
+ # 构建完整官网
196
+ npm run website:build
197
+ ```
198
+
199
+ 官网包含:
200
+ - 🏠 **首页**:产品介绍和特性展示
201
+ - 📦 **SDK**:下载和使用指南
202
+ - 🔧 **调试工具**:在线API测试
203
+ - 📚 **文档中心**:完整的API文档
204
+
205
+ ## 国际化支持
206
+
207
+ 官网支持中英文切换:
208
+ - 🌐 自动检测浏览器语言
209
+ - 🔄 手动切换语言设置
210
+ - 💾 语言偏好自动保存到本地存储
211
+
212
+ ## Development
213
+
214
+ ```bash
215
+ # Install dependencies
216
+ npm install
217
+
218
+ # Start development server
219
+ npm run dev
220
+
221
+ # Build SDK
222
+ npm run build
223
+
224
+ # Start debug tool
225
+ npm run dev
226
+
227
+ # Website docs are available at /docs/ in website dev mode
228
+
229
+ # Start website
230
+ npm run website:dev
231
+ ```
232
+
233
+ ### 部署到 GitHub Pages
234
+
235
+ 构建后的 `dist-website` 目录可以直接部署到GitHub Pages,整个官网即可在线访问。
236
+
237
+ ## Development
238
+
239
+ ### 调试工具
240
+
241
+ 项目包含一个内置的网页调试工具,可以在浏览器中直接测试SDK接口。
242
+
243
+ ```bash
244
+ # 启动调试服务器
245
+ npm run dev
246
+
247
+ # 访问调试界面进行接口测试
248
+ ```
249
+
250
+ 调试工具提供:
251
+ - 左侧API方法列表
252
+ - 右侧参数输入和结果显示
253
+ - 实时调用SDK方法并查看返回结果
254
+
255
+ ### 构建
256
+
257
+ ```bash
258
+ # 构建SDK库(发布用)
259
+ npm run build
260
+
261
+ # 构建调试应用(可选)
262
+ npm run build:debug
263
+ ```
264
+
265
+ ## License
266
+
267
+ MIT
@@ -0,0 +1,24 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="iconGrad" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#4facfe;stop-opacity:1" />
5
+ <stop offset="100%" style="stop-color:#00f2fe;stop-opacity:1" />
6
+ </linearGradient>
7
+ </defs>
8
+
9
+ <!-- Background circle -->
10
+ <circle cx="16" cy="16" r="15" fill="url(#iconGrad)"/>
11
+
12
+ <!-- Keyboard keys -->
13
+ <rect x="6" y="10" width="4" height="3" rx="0.5" fill="#fff" opacity="0.9"/>
14
+ <rect x="11" y="10" width="4" height="3" rx="0.5" fill="#fff" opacity="0.9"/>
15
+ <rect x="16" y="10" width="4" height="3" rx="0.5" fill="#fff" opacity="0.9"/>
16
+ <rect x="6" y="14" width="4" height="3" rx="0.5" fill="#fff" opacity="0.9"/>
17
+ <rect x="11" y="14" width="4" height="3" rx="0.5" fill="#fff" opacity="0.9"/>
18
+ <rect x="16" y="14" width="4" height="3" rx="0.5" fill="#fff" opacity="0.9"/>
19
+
20
+ <!-- Mouse -->
21
+ <ellipse cx="21" cy="20" rx="3" ry="4" fill="#fff" opacity="0.8"/>
22
+ <rect x="19" y="18" width="4" height="4" rx="2" fill="#fff" opacity="0.8"/>
23
+ <circle cx="21" cy="16" r="0.8" fill="url(#iconGrad)"/>
24
+ </svg>
package/dist/icons.svg ADDED
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <symbol id="bluesky-icon" viewBox="0 0 16 17">
3
+ <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
4
+ <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
5
+ </symbol>
6
+ <symbol id="discord-icon" viewBox="0 0 20 19">
7
+ <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
8
+ </symbol>
9
+ <symbol id="documentation-icon" viewBox="0 0 21 20">
10
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
11
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
12
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
13
+ </symbol>
14
+ <symbol id="github-icon" viewBox="0 0 19 19">
15
+ <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
16
+ </symbol>
17
+ <symbol id="social-icon" viewBox="0 0 20 20">
18
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
19
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
20
+ </symbol>
21
+ <symbol id="x-icon" viewBox="0 0 19 19">
22
+ <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
23
+ </symbol>
24
+ </svg>
@@ -0,0 +1,296 @@
1
+ // Type definitions for AVKE SDK
2
+
3
+ export interface Device {
4
+ id: string;
5
+ usage: number;
6
+ usagePage: number;
7
+ vendorId: number;
8
+ productId: number;
9
+ productName: string;
10
+ data: any;
11
+ type?: string;
12
+ }
13
+
14
+ export interface BaseInfo {
15
+ type: number;
16
+ subType: number;
17
+ boardId: number;
18
+ appVersion: string;
19
+ pcbVersion: string;
20
+ runModeVersion: number;
21
+ sn: string;
22
+ timestamp: string;
23
+ }
24
+
25
+ export interface ProtocolVersion {
26
+ mainVersion: number;
27
+ subVersion: number;
28
+ hardwareVersion: number;
29
+ softwareVersion: number;
30
+ }
31
+
32
+ export interface ConfigList {
33
+ total: number;
34
+ list: string[];
35
+ }
36
+
37
+ export interface Config {
38
+ key: string;
39
+ value: number;
40
+ }
41
+
42
+ export interface SystemType {
43
+ key: string;
44
+ value: number;
45
+ }
46
+
47
+ export interface DPIList {
48
+ list: number[];
49
+ }
50
+
51
+ export interface DPI {
52
+ value: number;
53
+ }
54
+
55
+ export interface LiftOffDistance {
56
+ value: number;
57
+ }
58
+
59
+ export interface ButtonMapping {
60
+ left: string;
61
+ right: string;
62
+ middle: string;
63
+ dpi: string;
64
+ forward: string;
65
+ backward: string;
66
+ }
67
+
68
+ export interface SDKVersion {
69
+ version: string;
70
+ name: string;
71
+ buildDate: string;
72
+ }
73
+
74
+ export interface CompatibilityCheck {
75
+ compatible: boolean;
76
+ reason: string;
77
+ }
78
+
79
+ export interface LogEntry {
80
+ timestamp: string;
81
+ level: string;
82
+ message: string;
83
+ data?: any;
84
+ stack?: string;
85
+ }
86
+
87
+ export interface PerformanceMetrics {
88
+ count: number;
89
+ totalTime: number;
90
+ avgTime: number;
91
+ minTime: number;
92
+ maxTime: number;
93
+ successCount: number;
94
+ errorCount: number;
95
+ }
96
+
97
+ export interface ConnectionMetrics {
98
+ connectCount: number;
99
+ disconnectCount: number;
100
+ totalConnectedTime: number;
101
+ lastConnected: string | null;
102
+ lastDisconnected: string | null;
103
+ }
104
+
105
+ export interface ErrorMetrics {
106
+ count: number;
107
+ lastError: string | null;
108
+ messages: Array<{
109
+ timestamp: string;
110
+ message: string;
111
+ stack?: string;
112
+ }>;
113
+ }
114
+
115
+ export interface PerformanceReport {
116
+ uptime: number;
117
+ operations: Record<string, PerformanceMetrics>;
118
+ connections: Record<string, ConnectionMetrics>;
119
+ errors: Record<string, ErrorMetrics>;
120
+ summary: {
121
+ totalOperations: number;
122
+ totalErrors: number;
123
+ activeConnections: number;
124
+ };
125
+ }
126
+
127
+ export interface ServiceOptions {
128
+ autoReconnect?: boolean;
129
+ reconnectInterval?: number;
130
+ timeout?: number;
131
+ logLevel?: 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
132
+ }
133
+
134
+ declare class VersionManager {
135
+ constructor();
136
+ getVersion(): SDKVersion;
137
+ checkCompatibility(deviceType: string, firmwareVersion: string): CompatibilityCheck;
138
+ compareVersions(version1: string, version2: string): number;
139
+ getSupportedDeviceTypes(): string[];
140
+ }
141
+
142
+ declare class Logger {
143
+ constructor();
144
+ setLevel(level: string): void;
145
+ debug(message: string, data?: any): void;
146
+ info(message: string, data?: any): void;
147
+ warn(message: string, data?: any): void;
148
+ error(message: string, data?: any): void;
149
+ log(level: string, message: string, data?: any): void;
150
+ getLogs(level?: string | null, limit?: number): LogEntry[];
151
+ clearLogs(): void;
152
+ }
153
+
154
+ declare class PerformanceMonitor {
155
+ constructor();
156
+ recordOperation(operationName: string, startTime: number, endTime: number, success?: boolean): void;
157
+ recordConnection(deviceId: string, connected?: boolean): void;
158
+ recordError(errorType: string, error: Error | string): void;
159
+ getReport(): PerformanceReport;
160
+ reset(): void;
161
+ }
162
+
163
+ declare class ServiceKeyboard {
164
+ constructor(options?: ServiceOptions);
165
+ versionManager: VersionManager;
166
+ logger: Logger;
167
+ performanceMonitor: PerformanceMonitor;
168
+ config: ServiceOptions;
169
+ getDevices(): Promise<Device[]>;
170
+ init(deviceId: string): Promise<Device | null>;
171
+ getDevicesInfo(): Promise<BaseInfo>;
172
+ getProtocolVersion(): Promise<ProtocolVersion>;
173
+ getConfigList(): Promise<ConfigList>;
174
+ getConfig(): Promise<Config>;
175
+ setConfig(config: string): Promise<void>;
176
+ getConfigName(index: number): Promise<string>;
177
+ setConfigName(index: number, name: string): Promise<void>;
178
+ getRateOfReturnList(): Promise<{ list: string[] }>;
179
+ getRateOfReturn(): Promise<{ key: string }>;
180
+ setRateOfReturn(value: string): Promise<void>;
181
+ getRtPrecision(): Promise<{ min: number }>;
182
+ getPerformance(params: { row: number; col: number }): Promise<{
183
+ row: number;
184
+ col: number;
185
+ mode: number;
186
+ normalPress: number;
187
+ normalRelease: number;
188
+ rtFirstTouch: number;
189
+ rtPress: number;
190
+ rtRelease: number;
191
+ pressDeadStroke: number;
192
+ releaseDeadStroke: number;
193
+ axis?: number;
194
+ axisV2Id?: number;
195
+ axisRangeMax?: number;
196
+ axisCoefficient?: number;
197
+ calibrate: number;
198
+ }>;
199
+ setPerformance(params: {
200
+ row: number;
201
+ col: number;
202
+ mode: number;
203
+ normalPress: number;
204
+ normalRelease: number;
205
+ rtFirstTouch: number;
206
+ rtPress: number;
207
+ rtRelease: number;
208
+ pressDeadStroke: number;
209
+ releaseDeadStroke: number;
210
+ axis?: number;
211
+ axisV2Id?: number;
212
+ axisRangeMax?: number;
213
+ axisCoefficient?: number;
214
+ calibrate: number;
215
+ }): Promise<{
216
+ row: number;
217
+ col: number;
218
+ mode: number;
219
+ normalPress: number;
220
+ normalRelease: number;
221
+ rtFirstTouch: number;
222
+ rtPress: number;
223
+ rtRelease: number;
224
+ pressDeadStroke: number;
225
+ releaseDeadStroke: number;
226
+ axis?: number;
227
+ axisV2Id?: number;
228
+ axisRangeMax?: number;
229
+ axisCoefficient?: number;
230
+ calibrate: number;
231
+ }>;
232
+ getADCSample(params: { row: number }): Promise<{ adc: number; row: number; data: number[] }>;
233
+ getRoute(params: { row: number }): Promise<{ route: number; row: number; data: number[] }>;
234
+ calibrationStart(): Promise<{ status: number; message: string }>;
235
+ calibrationEnd(): Promise<{ status: number; message: string }>;
236
+ getCalibrationStatus(params: { row: number }): Promise<{ calibrate: number; row: number; data: number[] }>;
237
+ getAxisList(): Promise<{ total: number; list: number[] }>;
238
+ getShakeOptimizationSwitch(): Promise<{ enabled: boolean; status: number }>;
239
+ setShakeOptimizationSwitch(enabled: number): Promise<{ enabled: boolean; status: number }>;
240
+ getHigherKey(params: { row: number; col: number }): Promise<{ row: number; col: number; mode: number }>;
241
+ setHigherKeyNONE(params: { row: number; col: number; mode: string; data: { mode: number } }): Promise<{ row: number; col: number; mode: number; data: { mode: number } }>;
242
+ setHigherKeyDKS(params: { row: number; col: number; data: { kcs: number[]; trps: number[]; dbs: number[] } }): Promise<{ row: number; col: number; mode: number; data: { kcs: number[]; trps: number[]; dbs: number[] } }>;
243
+ setHigherKeyMPT(params: { row: number; col: number; data: { kcs: number[]; dbs: number[] } }): Promise<{ row: number; col: number; mode: number; data: { kcs: number[]; dbs: number[] } }>;
244
+ setHigherKeyMT(params: { row: number; col: number; mode?: string; data: { time: number; kcs: number[] } }): Promise<{ row: number; col: number; mode: number; data: { time: number; kcs: number[] } }>;
245
+ setHigherKeyTGL(params: { row: number; col: number; mode?: string; data: { kcs: number; delay: number } }): Promise<{ row: number; col: number; mode: number; data: { kcs: number; delay: number } }>;
246
+ setHigherKeyEND(params: { row: number; col: number; mode?: string; data: { kcs: number[]; delay: number } }): Promise<{ row: number; col: number; mode: number; data: { kcs: number[]; delay: number } }>;
247
+ setHigherKeySOCD(params: { row: number; col: number; row2: number; col2: number; mode: number; delay: number; kcs: number[] }): Promise<{ row: number; col: number; mode: number; data: { row2: number; col2: number; kcs: number[]; delay: number; mode: number } }>;
248
+ setHigherKeyRS(params: { row: number; col: number; mode?: string; data: { row2: number; col2: number; delay: number; kcs: number[] } }): Promise<{ row: number; col: number; mode: number; data: { row2: number; col2: number; delay: number; kcs: number[] } }>;
249
+ getLightingSleepTime(): Promise<number>;
250
+ setLightingSleepTime(time: number): Promise<void>;
251
+ closeDevice(): Promise<void>;
252
+ reconnection(device: Device, deviceId: string): Promise<void>;
253
+ on(eventName: string, callback: Function): void;
254
+ off(eventName: string, callback: Function): void;
255
+ appToBoot(): Promise<void>;
256
+ bootToApp(): Promise<void>;
257
+ upgrade(buffer: ArrayBuffer, callback?: Function, options?: any): Promise<{ success: boolean }>;
258
+ GFSRestore(): Promise<void>;
259
+ getSystemType(): Promise<SystemType>;
260
+ setSystemType(systemType: string): Promise<void>;
261
+ }
262
+
263
+ declare class ServiceMouse {
264
+ constructor(options?: ServiceOptions);
265
+ versionManager: VersionManager;
266
+ logger: Logger;
267
+ performanceMonitor: PerformanceMonitor;
268
+ config: ServiceOptions;
269
+ getDevices(): Promise<Device[]>;
270
+ init(deviceId: string): Promise<Device | null>;
271
+ getDevicesInfo(): Promise<BaseInfo>;
272
+ getProtocolVersion(): Promise<ProtocolVersion>;
273
+ getDPIList(): Promise<DPIList>;
274
+ getDPI(): Promise<DPI>;
275
+ setDPI(value: number): Promise<void>;
276
+ getRateOfReturnList(): Promise<{ list: string[] }>;
277
+ getRateOfReturn(): Promise<{ key: string }>;
278
+ setRateOfReturn(value: string): Promise<void>;
279
+ getLiftOffDistance(): Promise<LiftOffDistance>;
280
+ setLiftOffDistance(value: number): Promise<void>;
281
+ getButtonMapping(): Promise<ButtonMapping>;
282
+ setButtonMapping(mapping: ButtonMapping): Promise<void>;
283
+ closeDevice(): Promise<void>;
284
+ reconnection(device: Device, deviceId: string): Promise<void>;
285
+ on(eventName: string, callback: Function): void;
286
+ off(eventName: string, callback: Function): void;
287
+ appToBoot(): Promise<void>;
288
+ bootToApp(): Promise<void>;
289
+ upgrade(buffer: ArrayBuffer, callback?: Function, options?: any): Promise<{ success: boolean }>;
290
+ GFSRestore(): Promise<void>;
291
+ }
292
+
293
+ export { ServiceKeyboard, ServiceMouse };
294
+ export { VersionManager, Logger, PerformanceMonitor };
295
+ export { versionManager, logger, performanceMonitor };
296
+ export default ServiceKeyboard;