@busy-app/busy-lib 0.6.0 → 0.8.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/dist/index.d.ts CHANGED
@@ -2,46 +2,183 @@ export declare type AccountInfo = components["schemas"]["AccountInfo"];
2
2
 
3
3
  export declare type AccountLink = components["schemas"]["AccountLink"];
4
4
 
5
+ declare class AccountMethods {
6
+ /**
7
+ * Get account info.
8
+ *
9
+ * @param {TimeoutOptions} [params] - Optional parameters.
10
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
11
+ * @returns {Promise<AccountInfo>} A promise that resolves to the account information.
12
+ */
13
+ AccountInfoGet(this: BusyBar, params?: TimeoutOptions): Promise<AccountInfo>;
14
+ /**
15
+ * @deprecated Use `AccountInfoGet` instead. will be removed in the next release.
16
+ */
17
+ Account(this: BusyBar, params?: TimeoutOptions): Promise<AccountInfo>;
18
+ /**
19
+ * Get account state.
20
+ *
21
+ * @param {TimeoutOptions} [params] - Optional parameters.
22
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
23
+ * @returns {Promise<AccountState>} A promise that resolves to the account state.
24
+ */
25
+ AccountStateGet(this: BusyBar, params?: TimeoutOptions): Promise<AccountState>;
26
+ /**
27
+ * Get account profile.
28
+ *
29
+ * @param {TimeoutOptions} [params] - Optional parameters.
30
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
31
+ * @returns {Promise<AccountProfile>} A promise that resolves to the account profile.
32
+ */
33
+ AccountProfileGet(this: BusyBar, params?: TimeoutOptions): Promise<AccountProfile>;
34
+ /**
35
+ * Set account profile.
36
+ *
37
+ * @param {SetAccountProfileParams} params - Parameters for setting the account profile.
38
+ * @param {string} params.profile - Profile data string.
39
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
40
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
41
+ */
42
+ AccountProfileSet(this: BusyBar, params: AccountProfileSetParams): Promise<SuccessResponse>;
43
+ /**
44
+ * Unlink device from account. Removes association with the current account.
45
+ *
46
+ * @param {TimeoutOptions} [params] - Optional parameters.
47
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
48
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful unlinking.
49
+ */
50
+ AccountUnlink(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
51
+ /**
52
+ * Link device to account. Requests account link PIN. Works only if device is connected to MQTT and is not linked to account.
53
+ *
54
+ * @param {TimeoutOptions} [params] - Optional parameters.
55
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
56
+ * @returns {Promise<AccountLink>} A promise that resolves to the link information (e.g., PIN).
57
+ */
58
+ AccountLink(this: BusyBar, params?: TimeoutOptions): Promise<AccountLink>;
59
+ }
60
+
61
+ export declare type AccountProfile = components["schemas"]["AccountProfile"];
62
+
63
+ export declare interface AccountProfileSetParams extends TimeoutOptions {
64
+ profile: operations["setAccountProfile"]["parameters"]["query"]["profile"];
65
+ }
66
+
67
+ export declare type AccountState = components["schemas"]["AccountState"];
68
+
5
69
  declare type ApiKey = string;
6
70
 
7
71
  declare type ApiSemver = components["schemas"]["VersionInfo"]["api_semver"];
8
72
 
9
- export declare interface AssetsDeleteParams {
73
+ export declare interface AssetsDeleteParams extends TimeoutOptions {
10
74
  appId: paths["/assets/upload"]["delete"]["parameters"]["query"]["app_id"];
11
75
  }
12
76
 
13
- export declare interface AssetsUploadParams {
77
+ export declare interface AssetsUploadParams extends TimeoutOptions {
14
78
  appId: paths["/assets/upload"]["post"]["parameters"]["query"]["app_id"];
15
79
  fileName: paths["/assets/upload"]["post"]["parameters"]["query"]["file"];
16
80
  file: BusyFile;
17
81
  }
18
82
 
19
- export declare interface AudioPlayParams {
83
+ declare class AudioMethods {
84
+ /**
85
+ * Play audio file. Plays a file from internal storage.
86
+ *
87
+ * @param {AudioPlayParams} params - Parameters for audio playback.
88
+ * @param {string} params.appId - Application ID.
89
+ * @param {string} params.path - Path to the audio file.
90
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
91
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful play command.
92
+ */
93
+ AudioPlay(this: BusyBar, params: AudioPlayParams): Promise<SuccessResponse>;
94
+ /**
95
+ * @deprecated Use `AudioPlay` instead. will be removed in the next release.
96
+ */
97
+ Audio(this: BusyBar, params: AudioPlayParams): Promise<SuccessResponse>;
98
+ /**
99
+ * Stop audio playback. Stops any currently playing audio.
100
+ *
101
+ * @param {TimeoutOptions} [params] - Optional parameters.
102
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
103
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful stop command.
104
+ */
105
+ AudioStop(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
106
+ /**
107
+ * Get audio volume.
108
+ *
109
+ * @param {TimeoutOptions} [params] - Optional parameters.
110
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
111
+ * @returns {Promise<AudioVolumeInfo>} A promise that resolves to the audio volume information.
112
+ */
113
+ AudioVolumeGet(this: BusyBar, params?: TimeoutOptions): Promise<AudioVolumeInfo>;
114
+ /**
115
+ * @deprecated Use `AudioVolumeGet` instead. will be removed in the next release.
116
+ */
117
+ AudioVolume(this: BusyBar, params?: TimeoutOptions): Promise<AudioVolumeInfo>;
118
+ /**
119
+ * Set audio volume.
120
+ *
121
+ * @param {AudioVolumeParams} params - Volume parameters:
122
+ * @param {number} params.volume - Volume level (0-100).
123
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
124
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
125
+ */
126
+ AudioVolumeSet(this: BusyBar, params: AudioVolumeParams): Promise<SuccessResponse>;
127
+ }
128
+
129
+ export declare interface AudioPlayParams extends TimeoutOptions {
20
130
  appId: paths["/audio/play"]["post"]["parameters"]["query"]["app_id"];
21
131
  path: paths["/audio/play"]["post"]["parameters"]["query"]["path"];
22
132
  }
23
133
 
24
134
  export declare type AudioVolumeInfo = components["schemas"]["AudioVolumeInfo"];
25
135
 
26
- export declare interface AudioVolumeParams {
136
+ export declare interface AudioVolumeParams extends TimeoutOptions {
27
137
  volume: operations["setAudioVolume"]["parameters"]["query"]["volume"];
28
138
  }
29
139
 
30
- declare interface BaseConfig {
31
- deviceScreen: DeviceScreen;
32
- apiKey?: ApiKey;
33
- apiSemver?: ApiSemver;
34
- }
35
-
36
- declare interface BaseConfig_2 {
37
- apiKey?: ApiKey;
38
- apiSemver?: ApiSemver;
140
+ declare class BleMethods {
141
+ /**
142
+ * Enable BLE. Starts advertising.
143
+ *
144
+ * @param {TimeoutOptions} [params] - Optional parameters.
145
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
146
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
147
+ */
148
+ BleEnable(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
149
+ /**
150
+ * Disable BLE. Stops advertising.
151
+ *
152
+ * @param {TimeoutOptions} [params] - Optional parameters.
153
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
154
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
155
+ */
156
+ BleDisable(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
157
+ /**
158
+ * Remove pairing. Remove pairing with previous device.
159
+ *
160
+ * @param {TimeoutOptions} [params] - Optional parameters.
161
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
162
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
163
+ */
164
+ BleUnpair(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
165
+ /**
166
+ * Returns current BLE status.
167
+ *
168
+ * @param {TimeoutOptions} [params] - Optional parameters.
169
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
170
+ * @returns {Promise<BleStatusResponse>} A promise that resolves to the BLE status.
171
+ */
172
+ BleStatusGet(this: BusyBar, params?: TimeoutOptions): Promise<BleStatusResponse>;
39
173
  }
40
174
 
41
175
  export declare type BleStatusResponse = components["schemas"]["BleStatusResponse"];
42
176
 
43
177
  declare type Brightness = number | "auto";
44
178
 
179
+ export declare interface BusyBar extends SystemMethods, UpdateMethods, TimeMethods, AccountMethods, DisplayMethods, AudioMethods, WifiMethods, StorageMethods, SettingsMethods, BleMethods, InputMethods, MatterMethods {
180
+ }
181
+
45
182
  /**
46
183
  * Main library class for interacting with the Busy Bar API.
47
184
  *
@@ -53,12 +190,19 @@ export declare class BusyBar {
53
190
  * @type {BusyBarConfig['host']}
54
191
  * @readonly
55
192
  */
56
- readonly addr: BusyBarConfig["addr"];
193
+ readonly addr: string;
57
194
  /**
58
195
  * Current API semantic version.
59
196
  * @type {ApiSemver}
60
197
  */
61
198
  apiSemver: ApiSemver;
199
+ /**
200
+ * Detected connection type based on auth requirements.
201
+ * - "wifi": Device requires authentication (returned 401/403).
202
+ * - "usb": Device allows access without token (returned 200).
203
+ * - "unknown": Detection failed or not yet completed.
204
+ */
205
+ connectionType: "usb" | "wifi" | "unknown";
62
206
  /**
63
207
  * Creates an instance of BUSY Bar.
64
208
  * Initializes the API client with the provided host address.
@@ -83,340 +227,13 @@ export declare class BusyBar {
83
227
  */
84
228
  constructor(config?: BusyBarConfig);
85
229
  /**
86
- * Retrieves the API semantic version.
87
- *
88
- * @returns {Promise<VersionInfo>} A promise that resolves to an object containing the `api_semver` string.
89
- */
90
- getApiVersion(): Promise<VersionInfo>;
91
- /**
92
- * Updates the firmware.
93
- *
94
- * @param {UpdateParams} params - Parameters for the firmware update.
95
- * @param {UpdateParams['name']} params.name - Name for the update package.
96
- * @param {UpdateParams['file']} params.file - File data to upload.
97
- * @returns {Promise<SuccessResponse>} Result of the update operation.
98
- */
99
- updateFirmware(params: SystemUpdateParams): Promise<SuccessResponse>;
100
- /**
101
- * Gets the current status of the device, including system and power information.
102
- *
103
- * @returns {Promise<Status>} Current status of the device.
104
- */
105
- deviceStatus(): Promise<Status>;
106
- /**
107
- * Gets the current system status.
108
- *
109
- * @returns {Promise<StatusSystem>} Current system status.
110
- */
111
- systemStatus(): Promise<StatusSystem>;
112
- /**
113
- * Gets the current power status.
114
- *
115
- * @returns {Promise<StatusPower>} Current power status.
116
- */
117
- powerStatus(): Promise<StatusPower>;
118
- /**
119
- * Gets current device timestamp with timezone.
120
- *
121
- * @returns {Promise<TimestampInfo>} Current device timestamp as an ISO 8601 string.
122
- */
123
- getTime(): Promise<TimestampInfo>;
124
- /**
125
- * Sets the current device timestamp.
126
- *
127
- * @param {SetTimestampParams} params - The parameters for setting the timestamp.
128
- * @param {SetTimestampParams['timestamp']} params.timestamp - The new timestamp (ISO 8601 string).
129
- * @returns {Promise<SuccessResponse>} A success response if the timestamp was set.
130
- */
131
- setTimestamp(params: SystemTimestampParams): Promise<SuccessResponse>;
132
- /**
133
- * Sets the device timezone.
134
- *
135
- * @param {SetTimezoneParams} params - The parameters for setting the timezone.
136
- * @param {SetTimezoneParams['timezone']} params.timezone - The new timezone identifier (IANA TZ string).
137
- * @returns {Promise<SuccessResponse>} A success response if the timezone was set.
138
- */
139
- setTimezone(params: SystemTimezoneParams): Promise<SuccessResponse>;
140
- /**
141
- * Gets the status of the MQTT account linked to the device.
142
- *
143
- * @returns {Promise<AccountInfo>} Information about the current MQTT account status.
144
- */
145
- getMqttStatus(): Promise<AccountInfo>;
146
- /**
147
- * Unlinks the current account from the device.
148
- *
149
- * @returns {Promise<SuccessResponse>} Result of the account unlink operation.
150
- */
151
- unlinkAccount(): Promise<SuccessResponse>;
152
- /**
153
- * Links an account to the device.
154
- *
155
- * @returns {Promise<AccountLink>} Information about the account link operation.
156
- */
157
- linkAccount(): Promise<AccountLink>;
158
- /**
159
- * Uploads an asset to the device.
160
- *
161
- * @param {UploadParams} params - Parameters for the upload.
162
- * @param {UploadParams['appId']} params.appId - Application ID for organizing assets.
163
- * @param {UploadParams['fileName']} params.fileName - Filename for the uploaded asset.
164
- * @param {UploadParams['file']} params.file - File data to upload.
165
- * @returns {Promise<SuccessResponse>} Result of the upload operation.
166
- */
167
- uploadAsset(params: AssetsUploadParams): Promise<SuccessResponse>;
168
- /**
169
- * Deletes all assets for a specific application from the device.
170
- *
171
- * @param {DeleteParams} params - Parameters for the delete.
172
- * @param {DeleteParams['appId']} params.appId - Application ID whose assets should be deleted.
173
- * @returns {Promise<SuccessResponse>} Result of the delete operation.
174
- */
175
- deleteAssets(params: AssetsDeleteParams): Promise<SuccessResponse>;
176
- /**
177
- * Draws elements on the device display.
178
- *
179
- * @param {DrawParams} params - Parameters for the draw operation.
180
- * @param {DrawParams['appId']} params.appId - Application ID for organizing display elements.
181
- * @param {DrawParams['elements'][]} params.elements - Array of display elements (text or image).
182
- * @returns {Promise<SuccessResponse>} Result of the draw operation.
183
- */
184
- drawDisplay(params: DisplayDrawParams): Promise<SuccessResponse>;
185
- /**
186
- * Clears the device display and stops the Canvas application if running.
187
- *
188
- * @returns {Promise<SuccessResponse>} Result of the clear operation.
189
- */
190
- clearDisplay(): Promise<SuccessResponse>;
191
- /**
192
- * Plays an audio file from the assets directory.
193
- *
194
- * @param {AudioPlayParams} params - Parameters for the audio playback.
195
- * @param {AudioPlayParams['appId']} params.appId - Application ID for organizing assets.
196
- * @param {AudioPlayParams['path']} params.path - Path to the audio file within the app's assets directory.
197
- * @returns {Promise<SuccessResponse>} Result of the play operation.
198
- */
199
- playSound(params: AudioPlayParams): Promise<SuccessResponse>;
200
- /**
201
- * Stops any currently playing audio on the device.
202
- *
203
- * @returns {Promise<SuccessResponse>} Result of the stop operation.
204
- */
205
- stopSound(): Promise<SuccessResponse>;
206
- /**
207
- * @deprecated since 0.5.0 — will be removed in 0.7.0.
208
- *
209
- * This method is no longer supported and does nothing.
210
- *
211
- * Works only with BusyLib v0.5.0 and device firmware v0.3.0.
212
- *
213
- * Always throws an error.
214
- */
215
- enableWifi(): Promise<SuccessResponse>;
216
- /**
217
- * @deprecated since 0.5.0 — will be removed in 0.7.0.
218
- *
219
- * This method is no longer supported and does nothing.
220
- *
221
- * Works only with BusyLib v0.5.0 and device firmware v0.3.0.
222
- *
223
- * Always throws an error.
224
- */
225
- disableWifi(): Promise<SuccessResponse>;
226
- /**
227
- * Gets the current status of the Wi-Fi module.
228
- *
229
- * @returns {Promise<WifiStatusResponse>} Current Wi-Fi status.
230
- */
231
- statusWifi(): Promise<WifiStatusResponse>;
232
- /**
233
- * Connects the device to a Wi-Fi network with the specified parameters.
234
- *
235
- * @param {ConnectParams} params - Connection parameters:
236
- * @param {ConnectParams['ssid']} params.ssid - SSID (network name) to connect to.
237
- * @param {ConnectParams['password']} [params.password] - Password for the Wi-Fi network (if required).
238
- * @param {ConnectParams['security']} params.security - Security type (e.g., "open", "wpa2", etc.).
239
- * @param {ConnectParams['ipConfig']} params.ipConfig - IP configuration object:
240
- * @param {ConnectParams['ipConfig']['ipMethod']} params.ipConfig.ipMethod - IP assignment method ("dhcp" or "static").
241
- * @param {ConnectParams['ipConfig']['ipType']} params.ipConfig.ipType - IP type ("ipv4" or "ipv6").
242
- * @param {ConnectParams['ipConfig']['address']} [params.ipConfig.address] - Static IP address (if using "static" method).
243
- * @param {ConnectParams['ipConfig']['mask']} [params.ipConfig.mask] - Subnet mask (if using "static" method).
244
- * @param {ConnectParams['ipConfig']['gateway']} [params.ipConfig.gateway] - Gateway address (if using "static" method).
245
- * @returns {Promise<SuccessResponse>} Result of the connect operation.
246
- */
247
- connectWifi(params: WifiConnectParams): Promise<SuccessResponse>;
248
- /**
249
- * Disconnects the device from the current Wi-Fi network.
250
- *
251
- * @returns {Promise<SuccessResponse>} Result of the disconnect operation.
252
- */
253
- disconnectWifi(): Promise<SuccessResponse>;
254
- /**
255
- * Scans for available Wi-Fi networks near your device.
256
- *
257
- * @returns {Promise<WifiNetworkResponse>} List of discovered networks.
258
- */
259
- networksWifi(): Promise<WifiNetworkResponse>;
260
- /**
261
- * @deprecated since 0.5.0 — will be removed in 0.7.0.
262
- *
263
- * This method is no longer supported and does nothing.
264
- *
265
- * Works only with BusyLib v0.5.0 and device firmware v0.3.0.
266
- *
267
- * Always throws an error.
268
- */
269
- forgetWifi(): Promise<never>;
270
- /**
271
- * Uploads a file to the device's internal storage.
272
- *
273
- * @param {UploadFileParams} params - Upload parameters:
274
- * @param {UploadFileParams['path']} params.path - Path where the file will be saved (e.g., "/ext/test.png").
275
- * @param {UploadFileParams['file']} params.file - File data to upload.
276
- * @returns {Promise<SuccessResponse>} Result of the upload operation.
277
- */
278
- uploadFile(params: UploadFileParams): Promise<SuccessResponse>;
279
- /**
280
- * Downloads a file from the device's internal storage.
281
- *
282
- * @param {DownloadFileParams} params - Download parameters:
283
- * @param {DownloadFileParams['path']} params.path - Path to the file to download (e.g., "/ext/test.png").
284
- * @param {DownloadFileParams['asArrayBuffer']} [params.asArrayBuffer] - If true, returns data as ArrayBuffer; otherwise, as Blob.
285
- * @returns {Promise<StorageReadResponse>} The file data.
286
- */
287
- downloadFile(params: DownloadFileParams): Promise<StorageReadResponse>;
288
- /**
289
- * Reads the contents of a directory (files and subdirectories) at the specified path.
290
- *
291
- * @param {ReadDirectoryParams} params - List parameters:
292
- * @param {ReadDirectoryParams['path']} params.path - Path to the directory to list (e.g., "/ext").
293
- * @returns {Promise<StorageList>} List of files and directories.
294
- */
295
- readDirectory(params: ReadDirectoryParams): Promise<StorageList>;
296
- /**
297
- * Removes a file or a directory from the device's internal storage.
298
- *
299
- * @param {RemoveParams} params - Remove parameters:
300
- * @param {RemoveParams['path']} params.path - Path of the file to remove (e.g., "/ext/test.png").
301
- * @returns {Promise<SuccessResponse>} Result of the remove operation.
302
- */
303
- removeResource(params: RemoveParams): Promise<SuccessResponse>;
304
- /**
305
- * Creates a new directory in the device's internal storage.
306
- *
307
- * @param {CreateDirectoryParams} params - Directory creation parameters:
308
- * @param {CreateDirectoryParams['path']} params.path - Path to the new directory (e.g., "/ext/newdir").
309
- * @returns {Promise<SuccessResponse>} Result of the create operation.
310
- */
311
- createDirectory(params: CreateDirectoryParams): Promise<SuccessResponse>;
312
- /**
313
- * Gets the current status of the device's internal storage.
314
- *
315
- * @returns {Promise<StorageStatus>} Current storage status information.
316
- */
317
- statusStorage(): Promise<StorageStatus>;
318
- /**
319
- * Gets the current display brightness settings for the device.
320
- *
321
- * @returns {Promise<DisplayBrightnessInfo>} Current brightness information for front and back panels.
322
- */
323
- getDisplayBrightness(): Promise<DisplayBrightnessInfo>;
324
- /**
325
- * Sets the display brightness for the device.
326
- *
327
- * @param {BrightnessParams} params - Brightness parameters:
328
- * @param {BrightnessParams['front']} [params.front] - Brightness for the front panel (0-100 or "auto").
329
- * @param {BrightnessParams['back']} [params.back] - Brightness for the back panel (0-100 or "auto").
330
- * @returns {Promise<SuccessResponse>} Result of the brightness update operation.
331
- * @throws {Error} If brightness value is outside the range 0-100 or not "auto".
332
- */
333
- setDisplayBrightness(params: DisplayBrightnessParams): Promise<SuccessResponse>;
334
- /**
335
- * Gets the current audio volume value.
336
- *
337
- * @returns {Promise<AudioVolumeInfo>} Current audio volume (0-100).
338
- */
339
- getAudioVolume(): Promise<AudioVolumeInfo>;
340
- /**
341
- * Sets the audio volume value.
342
- *
343
- * @param {AudioVolumeParams} params - Audio volume parameters:
344
- * @param {AudioVolumeParams['volume']} params.volume - Audio volume (number from 0 to 100).
345
- * @returns {Promise<SuccessResponse>} Result of the volume update operation.
346
- * @throws {Error} If volume is outside the range 0-100 or request fails.
347
- */
348
- setAudioVolume(params: AudioVolumeParams): Promise<SuccessResponse>;
349
- /**
350
- * Gets the current HTTP API access configuration.
351
- *
352
- * @returns {Promise<HttpAccessInfo>} Current HTTP access info.
353
- */
354
- getHttpAccess(): Promise<HttpAccessInfo>;
355
- /**
356
- * Sets the HTTP API access configuration.
357
- *
358
- * @param {HttpAccessParams} params - Access parameters:
359
- * @param {HttpAccessParams['mode']} params.mode - Access mode ("disabled", "enabled", "key").
360
- * @param {HttpAccessParams['key']} params.key - Access key (4-10 digits).
361
- * @returns {Promise<SuccessResponse>} Result of the set operation.
362
- */
363
- setHttpAccess(params: HttpAccessParams): Promise<SuccessResponse>;
364
- /**
365
- * Gets the current device name.
366
- *
367
- * @returns {Promise<NameInfo>} The current device name information.
368
- */
369
- getName(): Promise<NameInfo>;
370
- /**
371
- * Sets the device name.
372
- *
373
- * @param {NameParams} params - The parameters for setting the device name.
374
- * @param {NameParams['name']} params.name - The new device name.
375
- * @returns {Promise<SuccessResponse>} Result of setting the device name.
376
- */
377
- setName(params: NameParams): Promise<SuccessResponse>;
378
- /**
379
- * Sets API key for all subsequent requests.
380
- * @param {string} key - API key to use in "X-API-Token" header.
381
- */
382
- setApiKey(key: string): void;
383
- /**
384
- * Enables BLE module.
385
- * @returns {Promise<SuccessResponse>} Result of the enable operation.
386
- */
387
- enableBle(): Promise<SuccessResponse>;
388
- /**
389
- * Disables BLE module.
390
- * @returns {Promise<SuccessResponse>} Result of the disable operation.
391
- */
392
- disableBle(): Promise<SuccessResponse>;
393
- /**
394
- * Removes all BLE pairings from the device.
395
- *
396
- * @returns {Promise<SuccessResponse>} Result of the BLE pairing removal operation.
397
- */
398
- pairingBle(): Promise<SuccessResponse>;
399
- /**
400
- * Gets the current BLE module status.
401
- *
402
- * @returns {Promise<BleStatusResponse>} Current BLE status information.
230
+ * Probes the device to determine connection type.
231
+ * Sends a request without authentication credentials.
403
232
  */
404
- statusBle(): Promise<BleStatusResponse>;
405
- /**
406
- * Sends a button press.
407
- *
408
- * @param params - Button press parameters:
409
- * @param {InputKeyParams['keyName']} params.keyName - Button key.
410
- * @example
411
- * {
412
- * keyName: "ok"
413
- * }
414
- * @returns {Promise<SuccessResponse>} Result of pressing the button.
415
- */
416
- pressButton(params: InputKeyParams): Promise<SuccessResponse>;
233
+ private detectConnectionType;
417
234
  }
418
235
 
419
- declare type BusyBarConfig = {
236
+ export declare type BusyBarConfig = {
420
237
  addr?: string;
421
238
  token?: string;
422
239
  };
@@ -453,11 +270,77 @@ declare interface components {
453
270
  */
454
271
  VersionInfo: {
455
272
  /**
456
- * @description Api SemVer
273
+ * @description API SemVer
457
274
  * @example 0.0.0
458
275
  */
459
276
  api_semver: string;
460
277
  };
278
+ /**
279
+ * @example {
280
+ * "install": {
281
+ * "is_allowed": true,
282
+ * "event": "none",
283
+ * "action": "none",
284
+ * "status": "ok",
285
+ * "detail": "",
286
+ * "download": {
287
+ * "speed_bytes_per_sec": 0,
288
+ * "received_bytes": 0,
289
+ * "total_bytes": 0
290
+ * }
291
+ * },
292
+ * "check": {
293
+ * "available_version": "1.2.3",
294
+ * "event": "stop",
295
+ * "result": "available"
296
+ * }
297
+ * }
298
+ */
299
+ UpdateStatus: {
300
+ install?: {
301
+ /** @description Whether update installation is allowed (battery check) */
302
+ is_allowed?: boolean;
303
+ /**
304
+ * @description Current update event
305
+ * @enum {string}
306
+ */
307
+ event?: "session_start" | "session_stop" | "action_begin" | "action_done" | "detail_change" | "action_progress" | "none";
308
+ /**
309
+ * @description Current update action
310
+ * @enum {string}
311
+ */
312
+ action?: "download" | "sha_verification" | "unpack" | "prepare" | "apply" | "none";
313
+ /**
314
+ * @description Current or last operation status
315
+ * @enum {string}
316
+ */
317
+ status?: "ok" | "battery_low" | "busy" | "download_failure" | "download_abort" | "sha_mismatch" | "unpack_staging_dir_failure" | "unpack_archive_open_failure" | "unpack_archive_unpack_failure" | "install_manifest_not_found" | "install_manifest_invalid" | "install_session_config_failure" | "install_pointer_setup_failure" | "unknown_failure";
318
+ /** @description Optional status detail string */
319
+ detail?: string;
320
+ download?: {
321
+ /** @description Current download speed in bytes per second */
322
+ speed_bytes_per_sec?: number;
323
+ /** @description Bytes received so far */
324
+ received_bytes?: number;
325
+ /** @description Total download size in bytes */
326
+ total_bytes?: number;
327
+ };
328
+ };
329
+ check?: {
330
+ /** @description Version of available update (empty if none) */
331
+ available_version?: string;
332
+ /**
333
+ * @description Current check event
334
+ * @enum {string}
335
+ */
336
+ event?: "start" | "stop" | "none";
337
+ /**
338
+ * @description Check result status
339
+ * @enum {string}
340
+ */
341
+ result?: "available" | "not_available" | "failure" | "none";
342
+ };
343
+ };
461
344
  /**
462
345
  * @example {
463
346
  * "name": "BUSY bar"
@@ -481,7 +364,7 @@ declare interface components {
481
364
  * @description Access key was set and is valid
482
365
  * @example true
483
366
  */
484
- key_valid?: Record<string, never>;
367
+ key_valid?: boolean;
485
368
  };
486
369
  /**
487
370
  * @example {
@@ -508,7 +391,7 @@ declare interface components {
508
391
  /** @example 654321 */
509
392
  free_bytes?: number;
510
393
  /**
511
- * @description Total size of the parition
394
+ * @description Total size of the partition
512
395
  * @example 777777
513
396
  */
514
397
  total_bytes?: number;
@@ -557,7 +440,7 @@ declare interface components {
557
440
  * "elements": [
558
441
  * {
559
442
  * "id": "0",
560
- * "timeout": 6,
443
+ * "timeout": 10,
561
444
  * "align": "center",
562
445
  * "x": 36,
563
446
  * "y": 10,
@@ -566,7 +449,7 @@ declare interface components {
566
449
  * "font": "medium",
567
450
  * "color": "#FFFFFFFF",
568
451
  * "width": 72,
569
- * "scroll_rate": 160,
452
+ * "scroll_rate": 1000,
570
453
  * "display": "front"
571
454
  * },
572
455
  * {
@@ -613,7 +496,7 @@ declare interface components {
613
496
  * @description Type of display element
614
497
  * @enum {string}
615
498
  */
616
- type: "text" | "image";
499
+ type: "text" | "image" | "anim" | "countdown";
617
500
  /** @description X coordinate of selected anchor point relative to top-left of display */
618
501
  x?: number;
619
502
  /** @description Y coordinate of selected anchor point relative to top-left of display */
@@ -646,7 +529,7 @@ declare interface components {
646
529
  color: string;
647
530
  /** @description Width of the label */
648
531
  width?: number;
649
- /** @description Scroll rate in characters per minute */
532
+ /** @description Scroll rate in pixels per minute */
650
533
  scroll_rate?: number;
651
534
  } & {
652
535
  /**
@@ -668,32 +551,90 @@ declare interface components {
668
551
  */
669
552
  type: "image";
670
553
  };
671
- DisplayBrightnessInfo: {
554
+ AnimElement: Omit<components["schemas"]["DisplayElement"], "type"> & (({
555
+ /** @description Path to the animation file in the app's assets */
556
+ path?: string;
557
+ } | {
558
+ /** @description Identifier of builtin animation */
559
+ builtin_anim?: string;
560
+ }) & {
672
561
  /**
673
- * @description Front display brightness (0-100/auto)
674
- * @example auto
562
+ * @description Whether to loop the requested part of the animation
563
+ * @default false
675
564
  */
676
- front?: string;
565
+ loop: boolean;
677
566
  /**
678
- * @description Back display brightness (0-100/auto)
679
- * @example 50
567
+ * @description If the element has been created before and this flag is true, the previous range will finish before the requested one starts.
568
+ * @default false
680
569
  */
681
- back?: string;
682
- };
683
- AudioVolumeInfo: {
570
+ await_previous_end: boolean;
571
+ /** @description Name of the section to play back. Specifying \"default\" selects the entire animation. */
572
+ section_name?: string;
573
+ }) & {
684
574
  /**
685
- * @description Audio volume value (0-100)
686
- * @example 50
575
+ * @description discriminator enum property added by openapi-typescript
576
+ * @enum {string}
687
577
  */
688
- volume?: number;
578
+ type: "anim";
689
579
  };
690
- TimestampInfo: {
580
+ CountdownElement: Omit<components["schemas"]["DisplayElement"], "type"> & {
581
+ /** @description Seconds-based Unix UTC timestamp to count down or up to. Note: it's a number in a string. */
582
+ timestamp: string;
691
583
  /**
692
- * @description ISO 8601 formatted timestamp with timezone
693
- * @example 2025-10-02T14:30:45+04:00
584
+ * @description Color to display the text in, in #RRGGBBAA format
585
+ * @default #FFFFFFFF
694
586
  */
695
- timestamp: string;
696
- };
587
+ color: string;
588
+ /**
589
+ * @description Whether to count up or down
590
+ * @enum {string}
591
+ */
592
+ direction: "time_left" | "time_since";
593
+ /**
594
+ * @description When to show the hours position
595
+ * @enum {string}
596
+ */
597
+ show_hours: "when_non_zero" | "always";
598
+ } & {
599
+ /**
600
+ * @description discriminator enum property added by openapi-typescript
601
+ * @enum {string}
602
+ */
603
+ type: "countdown";
604
+ };
605
+ DisplayBrightnessInfo: {
606
+ /**
607
+ * @description Front display brightness (0-100/auto)
608
+ * @example auto
609
+ */
610
+ front?: string;
611
+ /**
612
+ * @description Back display brightness (0-100/auto)
613
+ * @example 50
614
+ */
615
+ back?: string;
616
+ };
617
+ AudioVolumeInfo: {
618
+ /**
619
+ * @description Audio volume value (0-100)
620
+ * @example 50
621
+ */
622
+ volume?: number;
623
+ };
624
+ TimestampInfo: {
625
+ /**
626
+ * @description ISO 8601 formatted timestamp with timezone
627
+ * @example 2025-10-02T14:30:45+04:00
628
+ */
629
+ timestamp: string;
630
+ };
631
+ TimezoneInfo: {
632
+ /**
633
+ * @description Timezone name
634
+ * @example Berlin
635
+ */
636
+ timezone: string;
637
+ };
697
638
  Status: {
698
639
  system?: components["schemas"]["StatusSystem"];
699
640
  power?: components["schemas"]["StatusPower"];
@@ -780,7 +721,7 @@ declare interface components {
780
721
  * @example disconnected
781
722
  * @enum {string}
782
723
  */
783
- state?: "unknown" | "disconnected" | "connected" | "connecting" | "disconnecting";
724
+ state?: "unknown" | "disconnected" | "connected" | "connecting" | "disconnecting" | "reconnecting";
784
725
  /** @example Your_WIFI_SSID */
785
726
  ssid?: string;
786
727
  /** @example EC:5A:00:0B:55:1D */
@@ -824,15 +765,30 @@ declare interface components {
824
765
  */
825
766
  ScreenResponse: string;
826
767
  AccountInfo: {
827
- /**
828
- * @example linked
829
- * @enum {string}
830
- */
831
- state?: "error" | "disconnected" | "not_linked" | "linked";
768
+ /** @example true */
769
+ linked?: boolean;
832
770
  /** @example 12345678-9abc-def0-1234-56789abcdef0 */
833
771
  id?: string;
834
772
  /** @example name@example.com */
835
773
  email?: string;
774
+ /** @example 12345678-9abc-def0-1234-56789abcdef0 */
775
+ user_id?: string;
776
+ };
777
+ AccountState: {
778
+ /**
779
+ * @example connected
780
+ * @enum {string}
781
+ */
782
+ state?: "error" | "disconnected" | "connected";
783
+ };
784
+ AccountProfile: {
785
+ /**
786
+ * @example dev
787
+ * @enum {string}
788
+ */
789
+ state?: "dev" | "prod" | "local" | "custom";
790
+ /** @example mqtts://mqtt.example.com:8883 */
791
+ custom_url?: string;
836
792
  };
837
793
  AccountLink: {
838
794
  /** @example ABCD */
@@ -841,33 +797,173 @@ declare interface components {
841
797
  expires_at?: number;
842
798
  };
843
799
  BleStatusResponse: {
844
- /** @example connected */
845
- state?: string;
800
+ /**
801
+ * @example connected
802
+ * @enum {string}
803
+ */
804
+ state?: "reset" | "initialization" | "disabled" | "enabled" | "connected" | "internal error";
805
+ /** @example 50:DA:D6:FE:DD:A9 */
806
+ address?: string;
807
+ /**
808
+ * @example paired
809
+ * @enum {string}
810
+ */
811
+ pairing?: "unknown" | "not paired" | "paired";
812
+ };
813
+ BusySnapshot: {
814
+ snapshot: components["schemas"]["BusySnapshotNotStarted"] | components["schemas"]["BusySnapshotInfinite"] | components["schemas"]["BusySnapshotSimple"] | components["schemas"]["BusySnapshotInterval"];
815
+ /** @example 1761582532251 */
816
+ snapshot_timestamp_ms: number;
817
+ };
818
+ BusySnapshotNotStarted: {
819
+ /**
820
+ * @example NOT_STARTED
821
+ * @enum {string}
822
+ */
823
+ type: "NOT_STARTED";
824
+ };
825
+ BusySnapshotInfinite: {
826
+ /**
827
+ * @example INFINITE
828
+ * @enum {string}
829
+ */
830
+ type: "INFINITE";
831
+ /** @example 00000000-0000-0000-0000-000000000000 */
832
+ card_id: string;
833
+ /** @example false */
834
+ is_paused: boolean;
835
+ };
836
+ BusySnapshotSimple: {
837
+ /**
838
+ * @example SIMPLE
839
+ * @enum {string}
840
+ */
841
+ type: "SIMPLE";
842
+ /** @example 00000000-0000-0000-0000-000000000000 */
843
+ card_id: string;
844
+ /** @example 9000 */
845
+ time_left_ms: number;
846
+ /** @example false */
847
+ is_paused: boolean;
848
+ };
849
+ BusySnapshotInterval: {
850
+ /**
851
+ * @example INTERVAL
852
+ * @enum {string}
853
+ */
854
+ type: "INTERVAL";
855
+ /** @example 00000000-0000-0000-0000-000000000000 */
856
+ card_id: string;
857
+ /** @example 1 */
858
+ current_interval: number;
859
+ /** @example 60000 */
860
+ current_interval_time_total_ms: number;
861
+ /** @example 42690 */
862
+ current_interval_time_left_ms: number;
863
+ /** @example false */
864
+ is_paused: boolean;
865
+ interval_settings: components["schemas"]["BusySnapshotIntervalSettings"];
866
+ };
867
+ BusySnapshotIntervalSettings: {
868
+ /**
869
+ * @example INTERVAL
870
+ * @enum {string}
871
+ */
872
+ type?: "INTERVAL";
873
+ /** @example 120000 */
874
+ interval_work_ms?: number;
875
+ /** @example 60000 */
876
+ interval_rest_ms?: number;
877
+ /** @example 3 */
878
+ interval_work_cycles_count?: number;
879
+ /** @example false */
880
+ is_autostart_enabled?: boolean;
881
+ };
882
+ TimezoneListResponse: {
883
+ /**
884
+ * @description Time zone name
885
+ * @example Bangalore
886
+ */
887
+ name?: string;
888
+ /**
889
+ * @description Time zone offset from UTC
890
+ * @example +05:30
891
+ */
892
+ offset?: string;
893
+ /**
894
+ * @description Time zone abbreviation
895
+ * @example IST
896
+ */
897
+ abbr?: string;
898
+ }[];
899
+ MatterCommissionedFabrics: {
900
+ /**
901
+ * @description Number of Matter smart homes ("fabrics") that this device is linked with ("commissioned into")
902
+ * @example 1
903
+ */
904
+ fabric_count?: number;
905
+ latest_commissioning_status?: {
906
+ /**
907
+ * @description Latest state of Matter smart home linking ("commissioning") process. Note: "never_started" only refers to the current power cycle of the device; this status is not recorded across reboots.
908
+ * @example completed_successfully
909
+ * @enum {string}
910
+ */
911
+ value?: "never_started" | "started" | "completed_successfully" | "failed";
912
+ /**
913
+ * @description UTC Unix millisecond timestamp of latest state update. Note: it's a number in a string.
914
+ * @example 1769436711000
915
+ */
916
+ timestamp?: string;
917
+ };
918
+ };
919
+ MatterCommissioningPayload: {
920
+ /**
921
+ * @description Linking with ("commissioning into") a Matter smart home using the provided payload is possible before this UTC Unix millisecond timestamp. Note: it's a number in a string.
922
+ * @example 1769437579000
923
+ */
924
+ available_until?: string;
925
+ /**
926
+ * @description Payload of the QR code for linking with ("commissioning into") a Matter smart home
927
+ * @example MT:YNDA0-O913..VV7I000
928
+ */
929
+ qr_code?: string;
930
+ /**
931
+ * @description Manual code for linking with ("commissioning into") a Matter smart home
932
+ * @example 1155-360-0377
933
+ */
934
+ manual_code?: string;
935
+ };
936
+ MatterEndpointState: {
937
+ /**
938
+ * @description Type of device emulated by a Matter endpoint. Currently only "switch" is implemented.
939
+ * @example switch
940
+ * @enum {string}
941
+ */
942
+ type?: "switch";
943
+ /**
944
+ * @description State of device emulated by a Matter endpoint. Boolean for "switch" device type.
945
+ * @example false
946
+ */
947
+ state?: boolean;
948
+ /**
949
+ * @description For the "switch" device type, specifies the value on startup. Never sent by the server, but can be specified by the client.
950
+ * @enum {string}
951
+ */
952
+ startup?: "off" | "on" | "toggle" | "last";
846
953
  };
847
954
  };
848
955
  responses: never;
849
- parameters: never;
850
956
  requestBodies: never;
851
957
  headers: never;
852
958
  pathItems: never;
853
959
  }
854
960
 
855
- declare interface CreateDirectoryParams {
856
- path: operations["createStorageDir"]["parameters"]["query"]["path"];
857
- }
858
- export { CreateDirectoryParams }
859
- export { CreateDirectoryParams as StorageCreateDirectoryParams }
860
-
861
961
  declare type DataListener = (data: Uint8Array) => void;
862
962
 
863
963
  declare type DeepCamelize<T> = T extends (...args: any[]) => any ? T : T extends Array<infer U> ? Array<DeepCamelize<U>> : T extends object ? {
864
964
  [K in keyof T as SnakeToCamel<K & string>]: DeepCamelize<T[K]>;
865
965
  } : T;
866
966
 
867
- declare type DeviceConfig = LocalConfig | SiteConfig;
868
-
869
- declare type DeviceConfig_2 = LocalConfig_2 | SiteConfig_2;
870
-
871
967
  export declare enum DeviceScreen {
872
968
  FRONT = 0,
873
969
  BACK = 1
@@ -875,22 +971,67 @@ export declare enum DeviceScreen {
875
971
 
876
972
  export declare type DisplayBrightnessInfo = components["schemas"]["DisplayBrightnessInfo"];
877
973
 
878
- export declare interface DisplayBrightnessParams {
974
+ export declare interface DisplayBrightnessParams extends TimeoutOptions {
879
975
  front?: Brightness;
880
976
  back?: Brightness;
881
977
  }
882
978
 
883
- export declare interface DisplayDrawParams {
979
+ export declare interface DisplayDrawParams extends TimeoutOptions {
884
980
  appId: components["schemas"]["DisplayElements"]["app_id"];
885
981
  elements: components["schemas"]["DisplayElements"]["elements"];
886
982
  }
887
983
 
888
- declare interface DownloadFileParams {
889
- path: operations["readStorageFile"]["parameters"]["query"]["path"];
890
- asArrayBuffer?: boolean;
984
+ declare class DisplayMethods {
985
+ /**
986
+ * Draw on display. Starts the Canvas application if not running.
987
+ *
988
+ * @param {DrawParams} params - Parameters for the draw operation.
989
+ * @param {string} params.appId - Application ID.
990
+ * @param {any} params.elements - Display elements to draw.
991
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
992
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful draw command.
993
+ */
994
+ DisplayDraw(this: BusyBar, params: DisplayDrawParams): Promise<SuccessResponse>;
995
+ /**
996
+ * Clear display. Clears the display and stops the Canvas application if running.
997
+ *
998
+ * @param {TimeoutOptions} [params] - Optional parameters.
999
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
1000
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful clear command.
1001
+ */
1002
+ DisplayClear(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
1003
+ /**
1004
+ * Get single frame for requested screen.
1005
+ *
1006
+ * @param {GetScreenFrameParams} params - Parameters for the frame request.
1007
+ * @param {string} params.display - Display identifier.
1008
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
1009
+ * @returns {Promise<Blob>} A promise that resolves to the screen frame as a Blob.
1010
+ */
1011
+ DisplayScreenFrameGet(this: BusyBar, params: ScreenFrameGetParams): Promise<Blob>;
1012
+ /**
1013
+ * Get display brightness.
1014
+ *
1015
+ * @param {TimeoutOptions} [params] - Optional parameters.
1016
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
1017
+ * @returns {Promise<DisplayBrightnessInfo>} A promise that resolves to the brightness information.
1018
+ */
1019
+ DisplayBrightnessGet(this: BusyBar, params?: TimeoutOptions): Promise<DisplayBrightnessInfo>;
1020
+ /**
1021
+ * @deprecated Use `DisplayBrightnessGet` instead. will be removed in the next release.
1022
+ */
1023
+ DisplayBrightness(this: BusyBar, params?: TimeoutOptions): Promise<DisplayBrightnessInfo>;
1024
+ /**
1025
+ * Set display brightness.
1026
+ *
1027
+ * @param {BrightnessParams} params - Brightness parameters:
1028
+ * @param {number|"auto"} [params.front] - Front brightness (0-100 or "auto").
1029
+ * @param {number|"auto"} [params.back] - Back brightness (0-100 or "auto").
1030
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
1031
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
1032
+ */
1033
+ DisplayBrightnessSet(this: BusyBar, params: DisplayBrightnessParams): Promise<SuccessResponse>;
891
1034
  }
892
- export { DownloadFileParams }
893
- export { DownloadFileParams as StorageDownloadFileParams }
894
1035
 
895
1036
  declare type Error_2 = components["schemas"]["Error"];
896
1037
  export { Error_2 as Error }
@@ -905,13 +1046,13 @@ declare interface ErrorPayload {
905
1046
 
906
1047
  export declare type HttpAccessInfo = components["schemas"]["HttpAccessInfo"];
907
1048
 
908
- export declare interface HttpAccessParams {
1049
+ export declare interface HttpAccessParams extends TimeoutOptions {
909
1050
  mode: operations["setHttpAccess"]["parameters"]["query"]["mode"];
910
1051
  key: operations["setHttpAccess"]["parameters"]["query"]["key"];
911
1052
  }
912
1053
 
913
1054
  export declare class Input {
914
- private config;
1055
+ readonly addr: string;
915
1056
  connected: boolean;
916
1057
  private apiKey?;
917
1058
  private apiSemver?;
@@ -920,7 +1061,7 @@ export declare class Input {
920
1061
  private stopListeners;
921
1062
  private errorListeners;
922
1063
  private socket;
923
- constructor(config: DeviceConfig_2);
1064
+ constructor(config?: InputConfig);
924
1065
  onData(listener: DataListener): void;
925
1066
  onStop(listener: StopListener): void;
926
1067
  onError(listener: ErrorListener): void;
@@ -935,27 +1076,66 @@ export declare class Input {
935
1076
  closeWebsocket(): Promise<void>;
936
1077
  }
937
1078
 
938
- export declare interface InputKeyParams {
1079
+ export declare interface InputConfig {
1080
+ addr?: string;
1081
+ apiKey?: ApiKey;
1082
+ apiSemver?: ApiSemver;
1083
+ }
1084
+
1085
+ export declare interface InputKeyParams extends TimeoutOptions {
939
1086
  keyName: KeyName;
940
1087
  }
941
1088
 
1089
+ declare class InputMethods {
1090
+ /**
1091
+ * Send input event. Send single key press event.
1092
+ *
1093
+ * @param {InputKeyParams} params - Button press parameters:
1094
+ * @param {KeyName} params.keyName - Name of the key to press.
1095
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
1096
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
1097
+ */
1098
+ InputSend(this: BusyBar, params: InputKeyParams): Promise<SuccessResponse>;
1099
+ }
1100
+
942
1101
  export declare type KeyName = operations["setInputKey"]["parameters"]["query"]["key"];
943
1102
 
944
1103
  export declare type KeyValue = 1 | 0;
945
1104
 
946
- declare interface LocalConfig extends BaseConfig {
947
- mode: "local";
948
- barUrl: string;
1105
+ declare class MatterMethods {
1106
+ /**
1107
+ * Get Matter status.
1108
+ *
1109
+ * @param {TimeoutOptions} [params] - Optional parameters.
1110
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
1111
+ * @returns {Promise<MatterStatus>} A promise that resolves to the Matter status.
1112
+ */
1113
+ MatterStatusGet(this: BusyBar, params?: TimeoutOptions): Promise<MatterStatus>;
1114
+ /**
1115
+ * Pair Matter device.
1116
+ *
1117
+ * @param {TimeoutOptions} [params] - Optional parameters.
1118
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
1119
+ * @returns {Promise<MatterPairingInfo>} A promise that resolves on success.
1120
+ */
1121
+ MatterPair(this: BusyBar, params?: TimeoutOptions): Promise<MatterPairingInfo>;
1122
+ /**
1123
+ * Erase Matter devices.
1124
+ *
1125
+ * @param {TimeoutOptions} [params] - Optional parameters.
1126
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
1127
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
1128
+ */
1129
+ MatterErase(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
949
1130
  }
950
1131
 
951
- declare interface LocalConfig_2 extends BaseConfig_2 {
952
- mode: "local";
953
- barUrl: string;
954
- }
1132
+ export declare type MatterPairingInfo = components["schemas"]["MatterCommissioningPayload"];
1133
+
1134
+ export declare type MatterStatus = components["schemas"]["MatterCommissionedFabrics"];
955
1135
 
956
1136
  export declare type NameInfo = components["schemas"]["NameInfo"];
957
1137
 
958
- export declare interface NameParams {
1138
+ export declare interface NameParams extends TimeoutOptions {
959
1139
  name: NameInfo["name"];
960
1140
  }
961
1141
 
@@ -1018,7 +1198,7 @@ declare interface operations {
1018
1198
  */
1019
1199
  mode: "disabled" | "enabled" | "key";
1020
1200
  /**
1021
- * @description Access key (4-10 digits len)
1201
+ * @description Access key (4-10 digits length)
1022
1202
  * @example 12345678
1023
1203
  */
1024
1204
  key: string;
@@ -1051,13 +1231,7 @@ declare interface operations {
1051
1231
  };
1052
1232
  updateFirmware: {
1053
1233
  parameters: {
1054
- query?: {
1055
- /**
1056
- * @description Name for the update package. The update will be unpacked to /ext/update/<name>.
1057
- * @example firmware
1058
- */
1059
- name?: string;
1060
- };
1234
+ query?: never;
1061
1235
  header?: never;
1062
1236
  path?: never;
1063
1237
  cookie?: never;
@@ -1106,31 +1280,16 @@ declare interface operations {
1106
1280
  };
1107
1281
  };
1108
1282
  };
1109
- uploadAssetWithAppId: {
1283
+ checkFirmwareUpdate: {
1110
1284
  parameters: {
1111
- query: {
1112
- /**
1113
- * @description Application ID for organizing assets
1114
- * @example my_app
1115
- */
1116
- app_id: string;
1117
- /**
1118
- * @description Filename for the uploaded asset
1119
- * @example data.png
1120
- */
1121
- file: string;
1122
- };
1285
+ query?: never;
1123
1286
  header?: never;
1124
1287
  path?: never;
1125
1288
  cookie?: never;
1126
1289
  };
1127
- requestBody: {
1128
- content: {
1129
- "application/octet-stream": string;
1130
- };
1131
- };
1290
+ requestBody?: never;
1132
1291
  responses: {
1133
- /** @description File uploaded successfully */
1292
+ /** @description Update check started successfully */
1134
1293
  200: {
1135
1294
  headers: {
1136
1295
  [name: string]: unknown;
@@ -1139,8 +1298,8 @@ declare interface operations {
1139
1298
  "application/json": components["schemas"]["SuccessResponse"];
1140
1299
  };
1141
1300
  };
1142
- /** @description Invalid parameters or upload failed */
1143
- 400: {
1301
+ /** @description Update check already in progress */
1302
+ 409: {
1144
1303
  headers: {
1145
1304
  [name: string]: unknown;
1146
1305
  };
@@ -1148,8 +1307,8 @@ declare interface operations {
1148
1307
  "application/json": components["schemas"]["Error"];
1149
1308
  };
1150
1309
  };
1151
- /** @description File too large */
1152
- 413: {
1310
+ /** @description Failed to start update check */
1311
+ 500: {
1153
1312
  headers: {
1154
1313
  [name: string]: unknown;
1155
1314
  };
@@ -1159,14 +1318,34 @@ declare interface operations {
1159
1318
  };
1160
1319
  };
1161
1320
  };
1162
- deleteAppAssets: {
1321
+ getFirmwareUpdateStatus: {
1322
+ parameters: {
1323
+ query?: never;
1324
+ header?: never;
1325
+ path?: never;
1326
+ cookie?: never;
1327
+ };
1328
+ requestBody?: never;
1329
+ responses: {
1330
+ /** @description Status retrieved successfully */
1331
+ 200: {
1332
+ headers: {
1333
+ [name: string]: unknown;
1334
+ };
1335
+ content: {
1336
+ "application/json": components["schemas"]["UpdateStatus"];
1337
+ };
1338
+ };
1339
+ };
1340
+ };
1341
+ getUpdateChangelog: {
1163
1342
  parameters: {
1164
1343
  query: {
1165
1344
  /**
1166
- * @description Application ID whose assets should be deleted
1167
- * @example my_app
1345
+ * @description Firmware version to get changelog for
1346
+ * @example 1.2.3
1168
1347
  */
1169
- app_id: string;
1348
+ version: string;
1170
1349
  };
1171
1350
  header?: never;
1172
1351
  path?: never;
@@ -1174,16 +1353,19 @@ declare interface operations {
1174
1353
  };
1175
1354
  requestBody?: never;
1176
1355
  responses: {
1177
- /** @description Assets deleted successfully */
1356
+ /** @description Changelog retrieved successfully */
1178
1357
  200: {
1179
1358
  headers: {
1180
1359
  [name: string]: unknown;
1181
1360
  };
1182
1361
  content: {
1183
- "application/json": components["schemas"]["SuccessResponse"];
1362
+ "application/json": {
1363
+ /** @description Changelog text */
1364
+ changelog?: string;
1365
+ };
1184
1366
  };
1185
1367
  };
1186
- /** @description Invalid app_id or deletion failed */
1368
+ /** @description Version parameter missing, update not available, or version mismatch */
1187
1369
  400: {
1188
1370
  headers: {
1189
1371
  [name: string]: unknown;
@@ -1194,26 +1376,22 @@ declare interface operations {
1194
1376
  };
1195
1377
  };
1196
1378
  };
1197
- writeStorageFile: {
1379
+ installFirmwareUpdate: {
1198
1380
  parameters: {
1199
1381
  query: {
1200
1382
  /**
1201
- * @description Path for the uploaded file
1202
- * @example /ext/test.png
1383
+ * @description Firmware version to install
1384
+ * @example 1.2.3
1203
1385
  */
1204
- path: string;
1386
+ version: string;
1205
1387
  };
1206
1388
  header?: never;
1207
1389
  path?: never;
1208
1390
  cookie?: never;
1209
1391
  };
1210
- requestBody: {
1211
- content: {
1212
- "application/octet-stream": string;
1213
- };
1214
- };
1392
+ requestBody?: never;
1215
1393
  responses: {
1216
- /** @description File uploaded successfully */
1394
+ /** @description Update installation started successfully in background */
1217
1395
  200: {
1218
1396
  headers: {
1219
1397
  [name: string]: unknown;
@@ -1222,7 +1400,7 @@ declare interface operations {
1222
1400
  "application/json": components["schemas"]["SuccessResponse"];
1223
1401
  };
1224
1402
  };
1225
- /** @description Invalid parameters or upload failed */
1403
+ /** @description Version parameter missing, update not available, or version mismatch */
1226
1404
  400: {
1227
1405
  headers: {
1228
1406
  [name: string]: unknown;
@@ -1231,8 +1409,8 @@ declare interface operations {
1231
1409
  "application/json": components["schemas"]["Error"];
1232
1410
  };
1233
1411
  };
1234
- /** @description File too large */
1235
- 413: {
1412
+ /** @description Update already in progress */
1413
+ 409: {
1236
1414
  headers: {
1237
1415
  [name: string]: unknown;
1238
1416
  };
@@ -1240,34 +1418,17 @@ declare interface operations {
1240
1418
  "application/json": components["schemas"]["Error"];
1241
1419
  };
1242
1420
  };
1243
- };
1244
- };
1245
- readStorageFile: {
1246
- parameters: {
1247
- query: {
1248
- /**
1249
- * @description Path to the file
1250
- * @example /ext/test.png
1251
- */
1252
- path: string;
1253
- };
1254
- header?: never;
1255
- path?: never;
1256
- cookie?: never;
1257
- };
1258
- requestBody?: never;
1259
- responses: {
1260
- /** @description File uploaded successfully */
1261
- 200: {
1421
+ /** @description Failed to start background installation */
1422
+ 500: {
1262
1423
  headers: {
1263
1424
  [name: string]: unknown;
1264
1425
  };
1265
1426
  content: {
1266
- "application/octet-stream": string;
1427
+ "application/json": components["schemas"]["Error"];
1267
1428
  };
1268
1429
  };
1269
- /** @description Invalid parameters or file not exists */
1270
- 400: {
1430
+ /** @description Battery too low for update */
1431
+ 503: {
1271
1432
  headers: {
1272
1433
  [name: string]: unknown;
1273
1434
  };
@@ -1277,10 +1438,201 @@ declare interface operations {
1277
1438
  };
1278
1439
  };
1279
1440
  };
1280
- listStorageFiles: {
1441
+ abortFirmwareDownload: {
1281
1442
  parameters: {
1282
- query: {
1283
- /**
1443
+ query?: never;
1444
+ header?: never;
1445
+ path?: never;
1446
+ cookie?: never;
1447
+ };
1448
+ requestBody?: never;
1449
+ responses: {
1450
+ /** @description Abort signal sent successfully */
1451
+ 200: {
1452
+ headers: {
1453
+ [name: string]: unknown;
1454
+ };
1455
+ content: {
1456
+ "application/json": components["schemas"]["SuccessResponse"];
1457
+ };
1458
+ };
1459
+ };
1460
+ };
1461
+ uploadAssetWithAppId: {
1462
+ parameters: {
1463
+ query: {
1464
+ /**
1465
+ * @description Application ID for organizing assets
1466
+ * @example my_app
1467
+ */
1468
+ app_id: string;
1469
+ /**
1470
+ * @description Filename for the uploaded asset
1471
+ * @example data.png
1472
+ */
1473
+ file: string;
1474
+ };
1475
+ header?: never;
1476
+ path?: never;
1477
+ cookie?: never;
1478
+ };
1479
+ requestBody: {
1480
+ content: {
1481
+ "application/octet-stream": string;
1482
+ };
1483
+ };
1484
+ responses: {
1485
+ /** @description File uploaded successfully */
1486
+ 200: {
1487
+ headers: {
1488
+ [name: string]: unknown;
1489
+ };
1490
+ content: {
1491
+ "application/json": components["schemas"]["SuccessResponse"];
1492
+ };
1493
+ };
1494
+ /** @description Invalid parameters or upload failed */
1495
+ 400: {
1496
+ headers: {
1497
+ [name: string]: unknown;
1498
+ };
1499
+ content: {
1500
+ "application/json": components["schemas"]["Error"];
1501
+ };
1502
+ };
1503
+ /** @description File too large */
1504
+ 413: {
1505
+ headers: {
1506
+ [name: string]: unknown;
1507
+ };
1508
+ content: {
1509
+ "application/json": components["schemas"]["Error"];
1510
+ };
1511
+ };
1512
+ };
1513
+ };
1514
+ deleteAppAssets: {
1515
+ parameters: {
1516
+ query: {
1517
+ /**
1518
+ * @description Application ID whose assets should be deleted
1519
+ * @example my_app
1520
+ */
1521
+ app_id: string;
1522
+ };
1523
+ header?: never;
1524
+ path?: never;
1525
+ cookie?: never;
1526
+ };
1527
+ requestBody?: never;
1528
+ responses: {
1529
+ /** @description Assets deleted successfully */
1530
+ 200: {
1531
+ headers: {
1532
+ [name: string]: unknown;
1533
+ };
1534
+ content: {
1535
+ "application/json": components["schemas"]["SuccessResponse"];
1536
+ };
1537
+ };
1538
+ /** @description Invalid app_id or deletion failed */
1539
+ 400: {
1540
+ headers: {
1541
+ [name: string]: unknown;
1542
+ };
1543
+ content: {
1544
+ "application/json": components["schemas"]["Error"];
1545
+ };
1546
+ };
1547
+ };
1548
+ };
1549
+ writeStorageFile: {
1550
+ parameters: {
1551
+ query: {
1552
+ /**
1553
+ * @description Path for the uploaded file
1554
+ * @example /ext/test.png
1555
+ */
1556
+ path: string;
1557
+ };
1558
+ header?: never;
1559
+ path?: never;
1560
+ cookie?: never;
1561
+ };
1562
+ requestBody: {
1563
+ content: {
1564
+ "application/octet-stream": string;
1565
+ };
1566
+ };
1567
+ responses: {
1568
+ /** @description File uploaded successfully */
1569
+ 200: {
1570
+ headers: {
1571
+ [name: string]: unknown;
1572
+ };
1573
+ content: {
1574
+ "application/json": components["schemas"]["SuccessResponse"];
1575
+ };
1576
+ };
1577
+ /** @description Invalid parameters or upload failed */
1578
+ 400: {
1579
+ headers: {
1580
+ [name: string]: unknown;
1581
+ };
1582
+ content: {
1583
+ "application/json": components["schemas"]["Error"];
1584
+ };
1585
+ };
1586
+ /** @description File too large */
1587
+ 413: {
1588
+ headers: {
1589
+ [name: string]: unknown;
1590
+ };
1591
+ content: {
1592
+ "application/json": components["schemas"]["Error"];
1593
+ };
1594
+ };
1595
+ };
1596
+ };
1597
+ readStorageFile: {
1598
+ parameters: {
1599
+ query: {
1600
+ /**
1601
+ * @description Path to the file
1602
+ * @example /ext/test.png
1603
+ */
1604
+ path: string;
1605
+ };
1606
+ header?: never;
1607
+ path?: never;
1608
+ cookie?: never;
1609
+ };
1610
+ requestBody?: never;
1611
+ responses: {
1612
+ /** @description File downloaded successfully */
1613
+ 200: {
1614
+ headers: {
1615
+ [name: string]: unknown;
1616
+ };
1617
+ content: {
1618
+ "application/octet-stream": string;
1619
+ };
1620
+ };
1621
+ /** @description Invalid parameters or file not exists */
1622
+ 400: {
1623
+ headers: {
1624
+ [name: string]: unknown;
1625
+ };
1626
+ content: {
1627
+ "application/json": components["schemas"]["Error"];
1628
+ };
1629
+ };
1630
+ };
1631
+ };
1632
+ listStorageFiles: {
1633
+ parameters: {
1634
+ query: {
1635
+ /**
1284
1636
  * @description Path to the file
1285
1637
  * @example /ext
1286
1638
  */
@@ -1301,7 +1653,7 @@ declare interface operations {
1301
1653
  "application/json": components["schemas"]["StorageList"];
1302
1654
  };
1303
1655
  };
1304
- /** @description Invalid parameters or directory not exists */
1656
+ /** @description Invalid parameters or directory does not exist */
1305
1657
  400: {
1306
1658
  headers: {
1307
1659
  [name: string]: unknown;
@@ -1371,7 +1723,7 @@ declare interface operations {
1371
1723
  "application/json": components["schemas"]["SuccessResponse"];
1372
1724
  };
1373
1725
  };
1374
- /** @description Invalid path or deletion failed */
1726
+ /** @description Invalid path or creation failed */
1375
1727
  400: {
1376
1728
  headers: {
1377
1729
  [name: string]: unknown;
@@ -1895,7 +2247,27 @@ declare interface operations {
1895
2247
  };
1896
2248
  };
1897
2249
  };
1898
- getAccountInfo: {
2250
+ unlinkAccount: {
2251
+ parameters: {
2252
+ query?: never;
2253
+ header?: never;
2254
+ path?: never;
2255
+ cookie?: never;
2256
+ };
2257
+ requestBody?: never;
2258
+ responses: {
2259
+ /** @description Done successfully */
2260
+ 200: {
2261
+ headers: {
2262
+ [name: string]: unknown;
2263
+ };
2264
+ content: {
2265
+ "application/json": components["schemas"]["SuccessResponse"];
2266
+ };
2267
+ };
2268
+ };
2269
+ };
2270
+ linkAccount: {
1899
2271
  parameters: {
1900
2272
  query?: never;
1901
2273
  header?: never;
@@ -1910,12 +2282,21 @@ declare interface operations {
1910
2282
  [name: string]: unknown;
1911
2283
  };
1912
2284
  content: {
1913
- "application/json": components["schemas"]["AccountInfo"];
2285
+ "application/json": components["schemas"]["AccountLink"];
2286
+ };
2287
+ };
2288
+ /** @description Bad request */
2289
+ 400: {
2290
+ headers: {
2291
+ [name: string]: unknown;
2292
+ };
2293
+ content: {
2294
+ "application/json": components["schemas"]["Error"];
1914
2295
  };
1915
2296
  };
1916
2297
  };
1917
2298
  };
1918
- unlinkAccount: {
2299
+ getAccountInfo: {
1919
2300
  parameters: {
1920
2301
  query?: never;
1921
2302
  header?: never;
@@ -1924,18 +2305,18 @@ declare interface operations {
1924
2305
  };
1925
2306
  requestBody?: never;
1926
2307
  responses: {
1927
- /** @description Done successfully */
2308
+ /** @description Data retrieved successfully */
1928
2309
  200: {
1929
2310
  headers: {
1930
2311
  [name: string]: unknown;
1931
2312
  };
1932
2313
  content: {
1933
- "application/json": components["schemas"]["SuccessResponse"];
2314
+ "application/json": components["schemas"]["AccountInfo"];
1934
2315
  };
1935
2316
  };
1936
2317
  };
1937
2318
  };
1938
- linkAccount: {
2319
+ getAccountState: {
1939
2320
  parameters: {
1940
2321
  query?: never;
1941
2322
  header?: never;
@@ -1950,28 +2331,37 @@ declare interface operations {
1950
2331
  [name: string]: unknown;
1951
2332
  };
1952
2333
  content: {
1953
- "application/json": components["schemas"]["AccountLink"];
2334
+ "application/json": components["schemas"]["AccountState"];
1954
2335
  };
1955
2336
  };
1956
- /** @description Bad request */
1957
- 400: {
2337
+ };
2338
+ };
2339
+ getAccountProfile: {
2340
+ parameters: {
2341
+ query?: never;
2342
+ header?: never;
2343
+ path?: never;
2344
+ cookie?: never;
2345
+ };
2346
+ requestBody?: never;
2347
+ responses: {
2348
+ /** @description Data retrieved successfully */
2349
+ 200: {
1958
2350
  headers: {
1959
2351
  [name: string]: unknown;
1960
2352
  };
1961
2353
  content: {
1962
- "application/json": components["schemas"]["Error"];
2354
+ "application/json": components["schemas"]["AccountProfile"];
1963
2355
  };
1964
2356
  };
1965
2357
  };
1966
2358
  };
1967
- setTimeTimestamp: {
2359
+ setAccountProfile: {
1968
2360
  parameters: {
1969
2361
  query: {
1970
- /**
1971
- * @description ISO 8601 timestamp (e.g., 2025-10-02T14:30:45 for local time or 2025-10-02T14:30:45Z for UTC)
1972
- * @example 2025-10-02T14:30:45
1973
- */
1974
- timestamp: string;
2362
+ /** @example dev */
2363
+ profile: "dev" | "prod" | "local" | "custom";
2364
+ custom_url?: string;
1975
2365
  };
1976
2366
  header?: never;
1977
2367
  path?: never;
@@ -1979,7 +2369,7 @@ declare interface operations {
1979
2369
  };
1980
2370
  requestBody?: never;
1981
2371
  responses: {
1982
- /** @description Timestamp set successfully */
2372
+ /** @description Set successfully */
1983
2373
  200: {
1984
2374
  headers: {
1985
2375
  [name: string]: unknown;
@@ -1988,7 +2378,71 @@ declare interface operations {
1988
2378
  "application/json": components["schemas"]["SuccessResponse"];
1989
2379
  };
1990
2380
  };
1991
- /** @description Invalid timestamp format or value */
2381
+ /** @description Bad request */
2382
+ 400: {
2383
+ headers: {
2384
+ [name: string]: unknown;
2385
+ };
2386
+ content: {
2387
+ "application/json": components["schemas"]["Error"];
2388
+ };
2389
+ };
2390
+ };
2391
+ };
2392
+ setTimeTimestamp: {
2393
+ parameters: {
2394
+ query: {
2395
+ /**
2396
+ * @description ISO 8601 timestamp (e.g., 2025-10-02T14:30:45+02:00 for local time or 2025-10-02T14:30:45Z for UTC)
2397
+ * @example 2025-10-02T14:30:45+0100
2398
+ */
2399
+ timestamp: string;
2400
+ };
2401
+ header?: never;
2402
+ path?: never;
2403
+ cookie?: never;
2404
+ };
2405
+ requestBody?: never;
2406
+ responses: {
2407
+ /** @description Timestamp set successfully */
2408
+ 200: {
2409
+ headers: {
2410
+ [name: string]: unknown;
2411
+ };
2412
+ content: {
2413
+ "application/json": components["schemas"]["SuccessResponse"];
2414
+ };
2415
+ };
2416
+ /** @description Invalid timestamp format or value */
2417
+ 400: {
2418
+ headers: {
2419
+ [name: string]: unknown;
2420
+ };
2421
+ content: {
2422
+ "application/json": components["schemas"]["Error"];
2423
+ };
2424
+ };
2425
+ };
2426
+ };
2427
+ getTimeTimezone: {
2428
+ parameters: {
2429
+ query?: never;
2430
+ header?: never;
2431
+ path?: never;
2432
+ cookie?: never;
2433
+ };
2434
+ requestBody?: never;
2435
+ responses: {
2436
+ /** @description Timezone got successfully */
2437
+ 200: {
2438
+ headers: {
2439
+ [name: string]: unknown;
2440
+ };
2441
+ content: {
2442
+ "application/json": components["schemas"]["TimezoneInfo"];
2443
+ };
2444
+ };
2445
+ /** @description Invalid timezone offset */
1992
2446
  400: {
1993
2447
  headers: {
1994
2448
  [name: string]: unknown;
@@ -2003,8 +2457,8 @@ declare interface operations {
2003
2457
  parameters: {
2004
2458
  query: {
2005
2459
  /**
2006
- * @description Timezone offset in ±HH:MM format (range -12:00 to +14:00)
2007
- * @example +04:00
2460
+ * @description Timezone name
2461
+ * @example Stuttgart
2008
2462
  */
2009
2463
  timezone: string;
2010
2464
  };
@@ -2034,6 +2488,146 @@ declare interface operations {
2034
2488
  };
2035
2489
  };
2036
2490
  };
2491
+ getTimeTzlist: {
2492
+ parameters: {
2493
+ query?: never;
2494
+ header?: never;
2495
+ path?: never;
2496
+ cookie?: never;
2497
+ };
2498
+ requestBody?: never;
2499
+ responses: {
2500
+ /** @description Got the list successfully */
2501
+ 200: {
2502
+ headers: {
2503
+ [name: string]: unknown;
2504
+ };
2505
+ content: {
2506
+ "application/json": components["schemas"]["TimezoneListResponse"];
2507
+ };
2508
+ };
2509
+ /** @description Error getting time zone list */
2510
+ 400: {
2511
+ headers: {
2512
+ [name: string]: unknown;
2513
+ };
2514
+ content: {
2515
+ "application/json": components["schemas"]["Error"];
2516
+ };
2517
+ };
2518
+ };
2519
+ };
2520
+ getBusySnapshot: {
2521
+ parameters: {
2522
+ query?: never;
2523
+ header?: never;
2524
+ path?: never;
2525
+ cookie?: never;
2526
+ };
2527
+ requestBody?: never;
2528
+ responses: {
2529
+ /** @description Got snapshot successfully */
2530
+ 200: {
2531
+ headers: {
2532
+ [name: string]: unknown;
2533
+ };
2534
+ content: {
2535
+ "application/json": components["schemas"]["BusySnapshot"];
2536
+ };
2537
+ };
2538
+ /** @description Error getting snapshot */
2539
+ 400: {
2540
+ headers: {
2541
+ [name: string]: unknown;
2542
+ };
2543
+ content: {
2544
+ "application/json": components["schemas"]["Error"];
2545
+ };
2546
+ };
2547
+ };
2548
+ };
2549
+ setBusySnapshot: {
2550
+ parameters: {
2551
+ query?: never;
2552
+ header?: never;
2553
+ path?: never;
2554
+ cookie?: never;
2555
+ };
2556
+ requestBody: {
2557
+ content: {
2558
+ "application/json": components["schemas"]["BusySnapshot"];
2559
+ };
2560
+ };
2561
+ responses: {
2562
+ /** @description Snapshot successfully set */
2563
+ 200: {
2564
+ headers: {
2565
+ [name: string]: unknown;
2566
+ };
2567
+ content: {
2568
+ "application/json": components["schemas"]["SuccessResponse"];
2569
+ };
2570
+ };
2571
+ /** @description Error setting snapshot */
2572
+ 400: {
2573
+ headers: {
2574
+ [name: string]: unknown;
2575
+ };
2576
+ content: {
2577
+ "application/json": components["schemas"]["Error"];
2578
+ };
2579
+ };
2580
+ };
2581
+ };
2582
+ getMatterCommissioningStatus: {
2583
+ parameters: {
2584
+ query?: never;
2585
+ header?: never;
2586
+ path?: never;
2587
+ cookie?: never;
2588
+ };
2589
+ requestBody?: never;
2590
+ responses: {
2591
+ /** @description Successfully got Matter commissioning status */
2592
+ 200: {
2593
+ headers: {
2594
+ [name: string]: unknown;
2595
+ };
2596
+ content: {
2597
+ "application/json": components["schemas"]["MatterCommissionedFabrics"];
2598
+ };
2599
+ };
2600
+ };
2601
+ };
2602
+ startMatterCommissioning: {
2603
+ parameters: {
2604
+ query?: never;
2605
+ header?: never;
2606
+ path?: never;
2607
+ cookie?: never;
2608
+ };
2609
+ requestBody?: never;
2610
+ responses: {
2611
+ /** @description Successfully started Matter commissioning */
2612
+ 200: {
2613
+ headers: {
2614
+ [name: string]: unknown;
2615
+ };
2616
+ content: {
2617
+ "application/json": components["schemas"]["MatterCommissioningPayload"];
2618
+ };
2619
+ };
2620
+ /** @description Internal Matter service is broken */
2621
+ 503: {
2622
+ headers: {
2623
+ [name: string]: unknown;
2624
+ };
2625
+ content: {
2626
+ "application/json": components["schemas"]["Error"];
2627
+ };
2628
+ };
2629
+ };
2630
+ };
2037
2631
  }
2038
2632
 
2039
2633
  /**
@@ -2050,7 +2644,7 @@ declare interface paths {
2050
2644
  };
2051
2645
  /**
2052
2646
  * Get API version information
2053
- * @description Retrieves api version
2647
+ * @description Retrieves API version
2054
2648
  */
2055
2649
  get: operations["getVersion"];
2056
2650
  put?: never;
@@ -2069,14 +2663,14 @@ declare interface paths {
2069
2663
  cookie?: never;
2070
2664
  };
2071
2665
  /**
2072
- * HTTP API access over Wi-Fi configuration get
2073
- * @description HTTP API access over Wi-Fi configuration get
2666
+ * Get HTTP API access over Wi-Fi configuration
2667
+ * @description Get HTTP API access over Wi-Fi configuration
2074
2668
  */
2075
2669
  get: operations["getHttpAccess"];
2076
2670
  put?: never;
2077
2671
  /**
2078
- * HTTP API access over Wi-Fi configuration set
2079
- * @description HTTP API access over Wi-Fi configuration set
2672
+ * Set HTTP API access over Wi-Fi configuration
2673
+ * @description Set HTTP API access over Wi-Fi configuration
2080
2674
  */
2081
2675
  post: operations["setHttpAccess"];
2082
2676
  delete?: never;
@@ -2180,7 +2774,7 @@ declare interface paths {
2180
2774
  patch?: never;
2181
2775
  trace?: never;
2182
2776
  };
2183
- "/assets/upload": {
2777
+ "/update/check": {
2184
2778
  parameters: {
2185
2779
  query?: never;
2186
2780
  header?: never;
@@ -2190,41 +2784,37 @@ declare interface paths {
2190
2784
  get?: never;
2191
2785
  put?: never;
2192
2786
  /**
2193
- * Upload asset file with app ID
2194
- * @description Uploads a file to a specific app's assets directory
2195
- */
2196
- post: operations["uploadAssetWithAppId"];
2197
- /**
2198
- * Delete app assets
2199
- * @description Deletes all assets for a specific app ID
2787
+ * Start firmware update check
2788
+ * @description Initiates an asynchronous check for available firmware updates.
2200
2789
  */
2201
- delete: operations["deleteAppAssets"];
2790
+ post: operations["checkFirmwareUpdate"];
2791
+ delete?: never;
2202
2792
  options?: never;
2203
2793
  head?: never;
2204
2794
  patch?: never;
2205
2795
  trace?: never;
2206
2796
  };
2207
- "/storage/write": {
2797
+ "/update/status": {
2208
2798
  parameters: {
2209
2799
  query?: never;
2210
2800
  header?: never;
2211
2801
  path?: never;
2212
2802
  cookie?: never;
2213
2803
  };
2214
- get?: never;
2215
- put?: never;
2216
2804
  /**
2217
- * Upload file to internal storage
2218
- * @description Uploads a file to a specified path
2805
+ * Get firmware update status
2806
+ * @description Returns current update and check status including progress information.
2219
2807
  */
2220
- post: operations["writeStorageFile"];
2808
+ get: operations["getFirmwareUpdateStatus"];
2809
+ put?: never;
2810
+ post?: never;
2221
2811
  delete?: never;
2222
2812
  options?: never;
2223
2813
  head?: never;
2224
2814
  patch?: never;
2225
2815
  trace?: never;
2226
2816
  };
2227
- "/storage/read": {
2817
+ "/update/changelog": {
2228
2818
  parameters: {
2229
2819
  query?: never;
2230
2820
  header?: never;
@@ -2232,10 +2822,10 @@ declare interface paths {
2232
2822
  cookie?: never;
2233
2823
  };
2234
2824
  /**
2235
- * Download file from internal storage
2236
- * @description Downloads a file from a specified path
2825
+ * Get update changelog
2826
+ * @description Returns the changelog for a specific firmware version.
2237
2827
  */
2238
- get: operations["readStorageFile"];
2828
+ get: operations["getUpdateChangelog"];
2239
2829
  put?: never;
2240
2830
  post?: never;
2241
2831
  delete?: never;
@@ -2244,24 +2834,29 @@ declare interface paths {
2244
2834
  patch?: never;
2245
2835
  trace?: never;
2246
2836
  };
2247
- "/storage/list": {
2837
+ "/update/install": {
2248
2838
  parameters: {
2249
2839
  query?: never;
2250
2840
  header?: never;
2251
2841
  path?: never;
2252
2842
  cookie?: never;
2253
2843
  };
2254
- /** List files on internal storage */
2255
- get: operations["listStorageFiles"];
2844
+ get?: never;
2256
2845
  put?: never;
2257
- post?: never;
2846
+ /**
2847
+ * Install firmware update
2848
+ * @description Starts asynchronous firmware installation from a remote URL.
2849
+ * The update process (download, SHA verification, unpack, prepare, reboot) runs in the background.
2850
+ * Use /update/status to monitor progress.
2851
+ */
2852
+ post: operations["installFirmwareUpdate"];
2258
2853
  delete?: never;
2259
2854
  options?: never;
2260
2855
  head?: never;
2261
2856
  patch?: never;
2262
2857
  trace?: never;
2263
2858
  };
2264
- "/storage/remove": {
2859
+ "/update/abort_download": {
2265
2860
  parameters: {
2266
2861
  query?: never;
2267
2862
  header?: never;
@@ -2270,18 +2865,18 @@ declare interface paths {
2270
2865
  };
2271
2866
  get?: never;
2272
2867
  put?: never;
2273
- post?: never;
2274
2868
  /**
2275
- * Remove a file on internal storage
2276
- * @description Removes a file with a specified path
2869
+ * Abort ongoing firmware download
2870
+ * @description Signals the updater to abort an ongoing download operation.
2277
2871
  */
2278
- delete: operations["removeStorageFile"];
2872
+ post: operations["abortFirmwareDownload"];
2873
+ delete?: never;
2279
2874
  options?: never;
2280
2875
  head?: never;
2281
2876
  patch?: never;
2282
2877
  trace?: never;
2283
2878
  };
2284
- "/storage/mkdir": {
2879
+ "/assets/upload": {
2285
2880
  parameters: {
2286
2881
  query?: never;
2287
2882
  header?: never;
@@ -2291,55 +2886,156 @@ declare interface paths {
2291
2886
  get?: never;
2292
2887
  put?: never;
2293
2888
  /**
2294
- * Create a directory on internal storage
2295
- * @description Creates a new directory with a specified path
2889
+ * Upload asset file with app ID
2890
+ * @description Uploads a file to a specific app's assets directory
2296
2891
  */
2297
- post: operations["createStorageDir"];
2298
- delete?: never;
2892
+ post: operations["uploadAssetWithAppId"];
2893
+ /**
2894
+ * Delete app assets
2895
+ * @description Deletes all assets for a specific app ID
2896
+ */
2897
+ delete: operations["deleteAppAssets"];
2299
2898
  options?: never;
2300
2899
  head?: never;
2301
2900
  patch?: never;
2302
2901
  trace?: never;
2303
2902
  };
2304
- "/storage/status": {
2903
+ "/storage/write": {
2305
2904
  parameters: {
2306
2905
  query?: never;
2307
2906
  header?: never;
2308
2907
  path?: never;
2309
2908
  cookie?: never;
2310
2909
  };
2311
- /** Show storage usage */
2312
- get: operations["getStorageStatus"];
2910
+ get?: never;
2313
2911
  put?: never;
2314
- post?: never;
2912
+ /**
2913
+ * Upload file to internal storage
2914
+ * @description Uploads a file to a specified path
2915
+ */
2916
+ post: operations["writeStorageFile"];
2315
2917
  delete?: never;
2316
2918
  options?: never;
2317
2919
  head?: never;
2318
2920
  patch?: never;
2319
2921
  trace?: never;
2320
2922
  };
2321
- "/display/draw": {
2923
+ "/storage/read": {
2322
2924
  parameters: {
2323
2925
  query?: never;
2324
2926
  header?: never;
2325
2927
  path?: never;
2326
2928
  cookie?: never;
2327
2929
  };
2328
- get?: never;
2329
- put?: never;
2330
- /**
2331
- * Draw on display
2332
- * @description Sends drawing data to the display.
2333
- * Supports JSON-defined display elements.
2334
- */
2335
- post: operations["drawOnDisplay"];
2336
2930
  /**
2337
- * Clear display
2338
- * @description Clears the display and stops the Canvas application if running
2931
+ * Download file from internal storage
2932
+ * @description Downloads a file from a specified path
2339
2933
  */
2340
- delete: operations["clearDisplay"];
2341
- options?: never;
2342
- head?: never;
2934
+ get: operations["readStorageFile"];
2935
+ put?: never;
2936
+ post?: never;
2937
+ delete?: never;
2938
+ options?: never;
2939
+ head?: never;
2940
+ patch?: never;
2941
+ trace?: never;
2942
+ };
2943
+ "/storage/list": {
2944
+ parameters: {
2945
+ query?: never;
2946
+ header?: never;
2947
+ path?: never;
2948
+ cookie?: never;
2949
+ };
2950
+ /** List files on internal storage */
2951
+ get: operations["listStorageFiles"];
2952
+ put?: never;
2953
+ post?: never;
2954
+ delete?: never;
2955
+ options?: never;
2956
+ head?: never;
2957
+ patch?: never;
2958
+ trace?: never;
2959
+ };
2960
+ "/storage/remove": {
2961
+ parameters: {
2962
+ query?: never;
2963
+ header?: never;
2964
+ path?: never;
2965
+ cookie?: never;
2966
+ };
2967
+ get?: never;
2968
+ put?: never;
2969
+ post?: never;
2970
+ /**
2971
+ * Remove a file on internal storage
2972
+ * @description Removes a file with a specified path
2973
+ */
2974
+ delete: operations["removeStorageFile"];
2975
+ options?: never;
2976
+ head?: never;
2977
+ patch?: never;
2978
+ trace?: never;
2979
+ };
2980
+ "/storage/mkdir": {
2981
+ parameters: {
2982
+ query?: never;
2983
+ header?: never;
2984
+ path?: never;
2985
+ cookie?: never;
2986
+ };
2987
+ get?: never;
2988
+ put?: never;
2989
+ /**
2990
+ * Create a directory on internal storage
2991
+ * @description Creates a new directory with a specified path
2992
+ */
2993
+ post: operations["createStorageDir"];
2994
+ delete?: never;
2995
+ options?: never;
2996
+ head?: never;
2997
+ patch?: never;
2998
+ trace?: never;
2999
+ };
3000
+ "/storage/status": {
3001
+ parameters: {
3002
+ query?: never;
3003
+ header?: never;
3004
+ path?: never;
3005
+ cookie?: never;
3006
+ };
3007
+ /** Show storage usage */
3008
+ get: operations["getStorageStatus"];
3009
+ put?: never;
3010
+ post?: never;
3011
+ delete?: never;
3012
+ options?: never;
3013
+ head?: never;
3014
+ patch?: never;
3015
+ trace?: never;
3016
+ };
3017
+ "/display/draw": {
3018
+ parameters: {
3019
+ query?: never;
3020
+ header?: never;
3021
+ path?: never;
3022
+ cookie?: never;
3023
+ };
3024
+ get?: never;
3025
+ put?: never;
3026
+ /**
3027
+ * Draw on display
3028
+ * @description Sends drawing data to the display.
3029
+ * Supports JSON-defined display elements.
3030
+ */
3031
+ post: operations["drawOnDisplay"];
3032
+ /**
3033
+ * Clear display
3034
+ * @description Clears the display and stops the Canvas application if running
3035
+ */
3036
+ delete: operations["clearDisplay"];
3037
+ options?: never;
3038
+ head?: never;
2343
3039
  patch?: never;
2344
3040
  trace?: never;
2345
3041
  };
@@ -2407,7 +3103,7 @@ declare interface paths {
2407
3103
  put?: never;
2408
3104
  /**
2409
3105
  * Set audio volume
2410
- * @description Get audio volume value
3106
+ * @description Set audio volume value
2411
3107
  */
2412
3108
  post: operations["setAudioVolume"];
2413
3109
  delete?: never;
@@ -2424,7 +3120,7 @@ declare interface paths {
2424
3120
  cookie?: never;
2425
3121
  };
2426
3122
  /**
2427
- * Input evnts streaming
3123
+ * Input events streaming
2428
3124
  * @description Start WebSocket session for input events streaming
2429
3125
  */
2430
3126
  get: operations["connectInputWebSocket"];
@@ -2489,7 +3185,7 @@ declare interface paths {
2489
3185
  };
2490
3186
  /**
2491
3187
  * Get power status
2492
- * @description Get system status
3188
+ * @description Get power status
2493
3189
  */
2494
3190
  get: operations["getStatusPower"];
2495
3191
  put?: never;
@@ -2500,27 +3196,6 @@ declare interface paths {
2500
3196
  patch?: never;
2501
3197
  trace?: never;
2502
3198
  };
2503
- "/ws_test": {
2504
- parameters: {
2505
- query?: never;
2506
- header?: never;
2507
- path?: never;
2508
- cookie?: never;
2509
- };
2510
- /**
2511
- * WebSocket test endpoint
2512
- * @description WebSocket connection for real-time communication and testing.
2513
- * Upgrade from HTTP to WebSocket protocol is required.
2514
- */
2515
- get: operations["connectWebSocket"];
2516
- put?: never;
2517
- post?: never;
2518
- delete?: never;
2519
- options?: never;
2520
- head?: never;
2521
- patch?: never;
2522
- trace?: never;
2523
- };
2524
3199
  "/wifi/status": {
2525
3200
  parameters: {
2526
3201
  query?: never;
@@ -2615,7 +3290,7 @@ declare interface paths {
2615
3290
  };
2616
3291
  get?: never;
2617
3292
  put?: never;
2618
- /** @description Attempts to connect to Wi-Fi using config */
3293
+ /** @description Disconnects from Wi-Fi */
2619
3294
  post: {
2620
3295
  parameters: {
2621
3296
  query?: never;
@@ -2703,7 +3378,7 @@ declare interface paths {
2703
3378
  path?: never;
2704
3379
  cookie?: never;
2705
3380
  };
2706
- /** Get single frame for required screen */
3381
+ /** Get single frame for requested screen */
2707
3382
  get: {
2708
3383
  parameters: {
2709
3384
  query: {
@@ -2758,8 +3433,8 @@ declare interface paths {
2758
3433
  * Screen streaming WebSocket endpoint
2759
3434
  * @description WebSocket connection for real-time screen streaming.
2760
3435
  * Upgrade from HTTP to WebSocket protocol is required.
2761
- * After connection client must send desired display id
2762
- * as json {"display": 0}
3436
+ * After connection, client must send desired display ID
3437
+ * as JSON {"display": 0}
2763
3438
  */
2764
3439
  get: operations["connectWebSocket"];
2765
3440
  put?: never;
@@ -2820,7 +3495,7 @@ declare interface paths {
2820
3495
  put?: never;
2821
3496
  /**
2822
3497
  * Disable BLE
2823
- * @description Stop advertising
3498
+ * @description Stops advertising
2824
3499
  */
2825
3500
  post: {
2826
3501
  parameters: {
@@ -2880,7 +3555,7 @@ declare interface paths {
2880
3555
  "application/json": components["schemas"]["SuccessResponse"];
2881
3556
  };
2882
3557
  };
2883
- /** @description Failed to remove, due to BLE is not initialized, or pairing was already removed before */
3558
+ /** @description Failed to remove because BLE is not initialized or pairing was already removed */
2884
3559
  503: {
2885
3560
  headers: {
2886
3561
  [name: string]: unknown;
@@ -2959,11 +3634,7 @@ declare interface paths {
2959
3634
  path?: never;
2960
3635
  cookie?: never;
2961
3636
  };
2962
- /**
2963
- * Get MQTT status
2964
- * @description Retrieves MQTT status and linked account data
2965
- */
2966
- get: operations["getAccountInfo"];
3637
+ get?: never;
2967
3638
  put?: never;
2968
3639
  post?: never;
2969
3640
  /**
@@ -2996,6 +3667,70 @@ declare interface paths {
2996
3667
  patch?: never;
2997
3668
  trace?: never;
2998
3669
  };
3670
+ "/account/info": {
3671
+ parameters: {
3672
+ query?: never;
3673
+ header?: never;
3674
+ path?: never;
3675
+ cookie?: never;
3676
+ };
3677
+ /**
3678
+ * Get linked account info
3679
+ * @description Retrieves linked account data
3680
+ */
3681
+ get: operations["getAccountInfo"];
3682
+ put?: never;
3683
+ post?: never;
3684
+ delete?: never;
3685
+ options?: never;
3686
+ head?: never;
3687
+ patch?: never;
3688
+ trace?: never;
3689
+ };
3690
+ "/account/status": {
3691
+ parameters: {
3692
+ query?: never;
3693
+ header?: never;
3694
+ path?: never;
3695
+ cookie?: never;
3696
+ };
3697
+ /**
3698
+ * Get MQTT status info
3699
+ * @description Retrieves MQTT status
3700
+ */
3701
+ get: operations["getAccountState"];
3702
+ put?: never;
3703
+ post?: never;
3704
+ delete?: never;
3705
+ options?: never;
3706
+ head?: never;
3707
+ patch?: never;
3708
+ trace?: never;
3709
+ };
3710
+ "/account/profile": {
3711
+ parameters: {
3712
+ query?: never;
3713
+ header?: never;
3714
+ path?: never;
3715
+ cookie?: never;
3716
+ };
3717
+ /**
3718
+ * Get MQTT profile
3719
+ * @description Retrieves MQTT backend type (dev/prod/local)
3720
+ */
3721
+ get: operations["getAccountProfile"];
3722
+ put?: never;
3723
+ /**
3724
+ * Set MQTT profile
3725
+ * @description Sets MQTT backend type (dev/prod/local)
3726
+ */
3727
+ post: operations["setAccountProfile"];
3728
+ delete?: never;
3729
+ options?: never;
3730
+ head?: never;
3731
+ patch?: never;
3732
+ trace?: never;
3733
+ };
2999
3734
  "/time/timestamp": {
3000
3735
  parameters: {
3001
3736
  query?: never;
@@ -3007,9 +3742,7 @@ declare interface paths {
3007
3742
  put?: never;
3008
3743
  /**
3009
3744
  * Set current timestamp
3010
- * @description Sets the RTC timestamp in ISO 8601 format.
3011
- * - Without 'Z': treated as local time
3012
- * - With 'Z': treated as UTC and converted to local time using current timezone offset
3745
+ * @description Sets the RTC timestamp in ISO 8601 format. Time zone qualifier (e.g. Z of UTC or +hh:mm for local time) is required.
3013
3746
  */
3014
3747
  post: operations["setTimeTimestamp"];
3015
3748
  delete?: never;
@@ -3025,11 +3758,15 @@ declare interface paths {
3025
3758
  path?: never;
3026
3759
  cookie?: never;
3027
3760
  };
3028
- get?: never;
3761
+ /**
3762
+ * Get timezone
3763
+ * @description Get current timezone name
3764
+ */
3765
+ get: operations["getTimeTimezone"];
3029
3766
  put?: never;
3030
3767
  /**
3031
- * Set timezone offset
3032
- * @description Sets the timezone offset in ±HH:MM format
3768
+ * Set timezone
3769
+ * @description Sets the timezone name. Use /time/tzlist to get available names list.
3033
3770
  */
3034
3771
  post: operations["setTimeTimezone"];
3035
3772
  delete?: never;
@@ -3038,26 +3775,110 @@ declare interface paths {
3038
3775
  patch?: never;
3039
3776
  trace?: never;
3040
3777
  };
3778
+ "/time/tzlist": {
3779
+ parameters: {
3780
+ query?: never;
3781
+ header?: never;
3782
+ path?: never;
3783
+ cookie?: never;
3784
+ };
3785
+ /**
3786
+ * Get list of supported time zones
3787
+ * @description Retrieves the list of time zones accepted by /time/timezone
3788
+ */
3789
+ get: operations["getTimeTzlist"];
3790
+ put?: never;
3791
+ post?: never;
3792
+ delete?: never;
3793
+ options?: never;
3794
+ head?: never;
3795
+ patch?: never;
3796
+ trace?: never;
3797
+ };
3798
+ "/busy/snapshot": {
3799
+ parameters: {
3800
+ query?: never;
3801
+ header?: never;
3802
+ path?: never;
3803
+ cookie?: never;
3804
+ };
3805
+ /**
3806
+ * Get BUSY timer snapshot
3807
+ * @description Gets the current state of the BUSY timer in snapshot form
3808
+ */
3809
+ get: operations["getBusySnapshot"];
3810
+ /**
3811
+ * Set BUSY time snapshot
3812
+ * @description Run the timer starting from the given snapshot
3813
+ */
3814
+ put: operations["setBusySnapshot"];
3815
+ post?: never;
3816
+ delete?: never;
3817
+ options?: never;
3818
+ head?: never;
3819
+ patch?: never;
3820
+ trace?: never;
3821
+ };
3822
+ "/matter/commissioning": {
3823
+ parameters: {
3824
+ query?: never;
3825
+ header?: never;
3826
+ path?: never;
3827
+ cookie?: never;
3828
+ };
3829
+ /** Smart home commissioning status */
3830
+ get: operations["getMatterCommissioningStatus"];
3831
+ put?: never;
3832
+ /** Link device to a smart home */
3833
+ post: operations["startMatterCommissioning"];
3834
+ /** Erase all smart home links */
3835
+ delete: {
3836
+ parameters: {
3837
+ query?: never;
3838
+ header?: never;
3839
+ path?: never;
3840
+ cookie?: never;
3841
+ };
3842
+ requestBody?: never;
3843
+ responses: {
3844
+ /** @description Successfully erased all Matter commissioning info, device restart is needed */
3845
+ 200: {
3846
+ headers: {
3847
+ [name: string]: unknown;
3848
+ };
3849
+ content: {
3850
+ "application/json": components["schemas"]["SuccessResponse"];
3851
+ };
3852
+ };
3853
+ /** @description Internal Matter service is broken */
3854
+ 503: {
3855
+ headers: {
3856
+ [name: string]: unknown;
3857
+ };
3858
+ content: {
3859
+ "application/json": components["schemas"]["Error"];
3860
+ };
3861
+ };
3862
+ };
3863
+ };
3864
+ options?: never;
3865
+ head?: never;
3866
+ patch?: never;
3867
+ trace?: never;
3868
+ };
3041
3869
  }
3042
3870
 
3043
- declare interface ReadDirectoryParams {
3044
- path: operations["listStorageFiles"]["parameters"]["query"]["path"];
3045
- }
3046
- export { ReadDirectoryParams }
3047
- export { ReadDirectoryParams as StorageReadDirectoryParams }
3048
-
3049
- declare interface RemoveParams {
3050
- path: operations["removeStorageFile"]["parameters"]["query"]["path"];
3051
- }
3052
- export { RemoveParams }
3053
- export { RemoveParams as StorageRemoveParams }
3054
-
3055
3871
  declare type RequiredIpConfig = RequireKeys<NonNullable<CamelizedRequest["ipConfig"]>, "ipMethod">;
3056
3872
 
3057
3873
  declare type RequireKeys<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
3058
3874
 
3875
+ export declare interface ScreenFrameGetParams extends TimeoutOptions {
3876
+ display: paths["/screen"]["get"]["parameters"]["query"]["display"];
3877
+ }
3878
+
3059
3879
  export declare class ScreenStream {
3060
3880
  private config;
3881
+ readonly addr: string;
3061
3882
  connected: boolean;
3062
3883
  private apiKey?;
3063
3884
  private apiSemver?;
@@ -3065,7 +3886,7 @@ export declare class ScreenStream {
3065
3886
  private stopListeners;
3066
3887
  private errorListeners;
3067
3888
  private socket;
3068
- constructor(config: DeviceConfig);
3889
+ constructor(config: ScreenStreamConfig);
3069
3890
  onData(listener: DataListener): void;
3070
3891
  onStop(listener: StopListener): void;
3071
3892
  onError(listener: ErrorListener): void;
@@ -3076,18 +3897,57 @@ export declare class ScreenStream {
3076
3897
  closeWebsocket(): Promise<void>;
3077
3898
  }
3078
3899
 
3079
- declare interface SiteConfig extends BaseConfig {
3080
- mode: "cloud";
3081
- domain: string;
3082
- token: string;
3083
- idDevice: string;
3900
+ export declare interface ScreenStreamConfig {
3901
+ deviceScreen: DeviceScreen;
3902
+ addr?: string;
3903
+ apiKey?: ApiKey;
3904
+ apiSemver?: ApiSemver;
3084
3905
  }
3085
3906
 
3086
- declare interface SiteConfig_2 extends BaseConfig_2 {
3087
- mode: "cloud";
3088
- domain: string;
3089
- token: string;
3090
- idDevice: string;
3907
+ declare class SettingsMethods {
3908
+ /**
3909
+ * Get HTTP API access over Wi-Fi configuration.
3910
+ *
3911
+ * @param {TimeoutOptions} [params] - Optional parameters.
3912
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
3913
+ * @returns {Promise<HttpAccessInfo>} A promise that resolves to the access configuration.
3914
+ */
3915
+ SettingsAccessGet(this: BusyBar, params?: TimeoutOptions): Promise<HttpAccessInfo>;
3916
+ /**
3917
+ * @deprecated Use `SettingsAccessGet` instead. will be removed in the next release.
3918
+ */
3919
+ SettingsAccess(this: BusyBar, params?: TimeoutOptions): Promise<HttpAccessInfo>;
3920
+ /**
3921
+ * Set HTTP API access over Wi-Fi configuration.
3922
+ *
3923
+ * @param {HttpAccessParams} params - Access parameters:
3924
+ * @param {boolean} params.mode - Enable/disable access.
3925
+ * @param {string} params.key - Access key (4-10 digits).
3926
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
3927
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
3928
+ */
3929
+ SettingsAccessSet(this: BusyBar, params: HttpAccessParams): Promise<SuccessResponse>;
3930
+ /**
3931
+ * Get current device name.
3932
+ *
3933
+ * @param {TimeoutOptions} [params] - Optional parameters.
3934
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
3935
+ * @returns {Promise<NameInfo>} A promise that resolves to the device name.
3936
+ */
3937
+ SettingsNameGet(this: BusyBar, params?: TimeoutOptions): Promise<NameInfo>;
3938
+ /**
3939
+ * @deprecated Use `SettingsNameGet` instead. will be removed in the next release.
3940
+ */
3941
+ SettingsName(this: BusyBar, params?: TimeoutOptions): Promise<NameInfo>;
3942
+ /**
3943
+ * Set device name.
3944
+ *
3945
+ * @param {NameParams} params - Name parameters:
3946
+ * @param {string} params.name - New device name (max 64 chars).
3947
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
3948
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
3949
+ */
3950
+ SettingsNameSet(this: BusyBar, params: NameParams): Promise<SuccessResponse>;
3091
3951
  }
3092
3952
 
3093
3953
  declare type SnakeToCamel<S extends string> = S extends `${infer Head}_${infer Tail}` ? `${Head}${Capitalize<SnakeToCamel<Tail>>}` : S;
@@ -3100,47 +3960,310 @@ export declare type StatusSystem = components["schemas"]["StatusSystem"];
3100
3960
 
3101
3961
  declare type StopListener = () => void;
3102
3962
 
3963
+ export declare interface StorageCreateDirectoryParams extends TimeoutOptions {
3964
+ path: operations["createStorageDir"]["parameters"]["query"]["path"];
3965
+ }
3966
+
3103
3967
  export declare type StorageDirElement = components["schemas"]["StorageDirElement"];
3104
3968
 
3969
+ export declare interface StorageDownloadFileParams extends TimeoutOptions {
3970
+ path: operations["readStorageFile"]["parameters"]["query"]["path"];
3971
+ asArrayBuffer?: boolean;
3972
+ }
3973
+
3105
3974
  export declare type StorageFileElement = components["schemas"]["StorageFileElement"];
3106
3975
 
3107
3976
  export declare type StorageList = components["schemas"]["StorageList"];
3108
3977
 
3109
3978
  export declare type StorageListElement = components["schemas"]["StorageListElement"];
3110
3979
 
3980
+ declare class StorageMethods {
3981
+ /**
3982
+ * Upload file to internal storage. Uploads a file to a specified path.
3983
+ *
3984
+ * @param {UploadFileParams} params - Upload parameters:
3985
+ * @param {string} params.path - Destination path.
3986
+ * @param {BusyFile} params.file - File content.
3987
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
3988
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful upload.
3989
+ */
3990
+ StorageWrite(this: BusyBar, params: StorageUploadFileParams): Promise<SuccessResponse>;
3991
+ /**
3992
+ * Download file from internal storage. Downloads a file from a specified path.
3993
+ *
3994
+ * @param {DownloadFileParams} params - Download parameters:
3995
+ * @param {string} params.path - Path to the file.
3996
+ * @param {boolean} [params.asArrayBuffer] - Whether to return ArrayBuffer instead of Blob.
3997
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
3998
+ * @returns {Promise<StorageReadResponse>} A promise that resolves to the file content (Blob or ArrayBuffer).
3999
+ */
4000
+ StorageRead(this: BusyBar, params: StorageDownloadFileParams): Promise<StorageReadResponse>;
4001
+ /**
4002
+ * List files on internal storage.
4003
+ *
4004
+ * @param {ReadDirectoryParams} params - List parameters:
4005
+ * @param {string} params.path - Path to the directory.
4006
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4007
+ * @returns {Promise<StorageList>} A promise that resolves to a list of files and directories.
4008
+ */
4009
+ StorageListGet(this: BusyBar, params: StorageReadDirectoryParams): Promise<StorageList>;
4010
+ /**
4011
+ * @deprecated Use `StorageListGet` instead. will be removed in the next release.
4012
+ */
4013
+ StorageList(this: BusyBar, params: StorageReadDirectoryParams): Promise<StorageList>;
4014
+ /**
4015
+ * Remove a file on internal storage. Removes a file with a specified path.
4016
+ *
4017
+ * @param {RemoveParams} params - Remove parameters:
4018
+ * @param {string} params.path - Path to the file to remove.
4019
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4020
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful removal.
4021
+ */
4022
+ StorageRemove(this: BusyBar, params: StorageRemoveParams): Promise<SuccessResponse>;
4023
+ /**
4024
+ * Create a directory on internal storage. Creates a new directory with a specified path.
4025
+ *
4026
+ * @param {CreateDirectoryParams} params - Directory creation parameters:
4027
+ * @param {string} params.path - Path to the new directory.
4028
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4029
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful creation.
4030
+ */
4031
+ StorageMkdir(this: BusyBar, params: StorageCreateDirectoryParams): Promise<SuccessResponse>;
4032
+ /**
4033
+ * Show storage usage.
4034
+ *
4035
+ * @param {TimeoutOptions} [params] - Optional parameters.
4036
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4037
+ * @returns {Promise<StorageStatus>} A promise that resolves to the storage status.
4038
+ */
4039
+ StorageStatusGet(this: BusyBar, params?: TimeoutOptions): Promise<StorageStatus>;
4040
+ /**
4041
+ * @deprecated Use `StorageStatusGet` instead. will be removed in the next release.
4042
+ */
4043
+ StorageStatus(this: BusyBar, params?: TimeoutOptions): Promise<StorageStatus>;
4044
+ }
4045
+
4046
+ export declare interface StorageReadDirectoryParams extends TimeoutOptions {
4047
+ path: operations["listStorageFiles"]["parameters"]["query"]["path"];
4048
+ }
4049
+
3111
4050
  export declare type StorageReadResponse = ArrayBuffer | Blob;
3112
4051
 
4052
+ export declare interface StorageRemoveParams extends TimeoutOptions {
4053
+ path: operations["removeStorageFile"]["parameters"]["query"]["path"];
4054
+ }
4055
+
3113
4056
  export declare type StorageStatus = components["schemas"]["StorageStatus"];
3114
4057
 
4058
+ export declare interface StorageUploadFileParams extends TimeoutOptions {
4059
+ path: operations["writeStorageFile"]["parameters"]["query"]["path"];
4060
+ file: BusyFile;
4061
+ }
4062
+
3115
4063
  export declare type SuccessResponse = components["schemas"]["SuccessResponse"];
3116
4064
 
3117
- export declare interface SystemTimestampParams {
4065
+ declare class SystemMethods {
4066
+ /**
4067
+ * Get API version information.
4068
+ *
4069
+ * @param {TimeoutOptions} [params] - Optional parameters.
4070
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4071
+ * @returns {Promise<VersionInfo>} A promise that resolves to an object containing the `api_semver` string.
4072
+ */
4073
+ SystemVersionGet(this: BusyBar, params?: TimeoutOptions): Promise<VersionInfo>;
4074
+ /**
4075
+ * @deprecated Use `SystemVersionGet` instead. will be removed in the next release.
4076
+ */
4077
+ SystemVersion(this: BusyBar, params?: TimeoutOptions): Promise<VersionInfo>;
4078
+ /**
4079
+ * Get device status.
4080
+ *
4081
+ * @param {TimeoutOptions} [params] - Optional parameters.
4082
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4083
+ * @returns {Promise<Status>} Current status of the device.
4084
+ */
4085
+ SystemStatusGet(this: BusyBar, params?: TimeoutOptions): Promise<Status>;
4086
+ /**
4087
+ * @deprecated Use `SystemStatusGet` instead. will be removed in the next release.
4088
+ */
4089
+ SystemStatus(this: BusyBar, params?: TimeoutOptions): Promise<Status>;
4090
+ /**
4091
+ * Get system status.
4092
+ *
4093
+ * @param {TimeoutOptions} [params] - Optional parameters.
4094
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4095
+ * @returns {Promise<StatusSystem>} Current system status.
4096
+ */
4097
+ SystemInfoGet(this: BusyBar, params?: TimeoutOptions): Promise<StatusSystem>;
4098
+ /**
4099
+ * @deprecated Use `SystemInfoGet` instead. will be removed in the next release.
4100
+ */
4101
+ SystemInfo(this: BusyBar, params?: TimeoutOptions): Promise<StatusSystem>;
4102
+ /**
4103
+ * Get power status.
4104
+ *
4105
+ * @param {TimeoutOptions} [params] - Optional parameters.
4106
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4107
+ * @returns {Promise<StatusPower>} Current power status.
4108
+ */
4109
+ SystemStatusPowerGet(this: BusyBar, params?: TimeoutOptions): Promise<StatusPower>;
4110
+ /**
4111
+ * @deprecated Use `SystemStatusPowerGet` instead. will be removed in the next release.
4112
+ */
4113
+ SystemStatusPower(this: BusyBar, params?: TimeoutOptions): Promise<StatusPower>;
4114
+ }
4115
+
4116
+ export declare interface SystemUpdateParams extends TimeoutOptions {
4117
+ file: BusyFile;
4118
+ }
4119
+
4120
+ declare class TimeMethods {
4121
+ /**
4122
+ * Get current timestamp info.
4123
+ *
4124
+ * @param {TimeoutOptions} [params] - Optional parameters.
4125
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4126
+ * @returns {Promise<TimestampInfo>} A promise that resolves to the timestamp information.
4127
+ */
4128
+ TimeGet(this: BusyBar, params?: TimeoutOptions): Promise<TimestampInfo>;
4129
+ /**
4130
+ * @deprecated Use `TimeGet` instead. will be removed in the next release.
4131
+ */
4132
+ SystemTime(this: BusyBar, params?: TimeoutOptions): Promise<TimestampInfo>;
4133
+ /**
4134
+ * Set system timestamp.
4135
+ *
4136
+ * @param {SetTimestampParams} params - Parameters for setting the timestamp.
4137
+ * @param {number} params.timestamp - Unix timestamp to set.
4138
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4139
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
4140
+ */
4141
+ TimeTimestampSet(this: BusyBar, params: TimeTimestampParams): Promise<SuccessResponse>;
4142
+ /**
4143
+ * @deprecated Use `TimeTimestampSet` instead. will be removed in the next release.
4144
+ */
4145
+ SystemTimeTimestamp(this: BusyBar, params: TimeTimestampParams): Promise<SuccessResponse>;
4146
+ /**
4147
+ * Set system timezone.
4148
+ *
4149
+ * @param {SetTimezoneParams} params - Parameters for setting the timezone.
4150
+ * @param {string} params.timezone - Timezone string to set (e.g., "Europe/Moscow").
4151
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4152
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
4153
+ */
4154
+ TimeTimezoneSet(this: BusyBar, params: TimeTimezoneParams): Promise<SuccessResponse>;
4155
+ /**
4156
+ * @deprecated Use `TimeTimezoneSet` instead. will be removed in the next release.
4157
+ */
4158
+ SystemTimeTimezone(this: BusyBar, params: TimeTimezoneParams): Promise<SuccessResponse>;
4159
+ /**
4160
+ * Get list of supported timezones.
4161
+ *
4162
+ * @param {TimeoutOptions} [params] - Optional parameters.
4163
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4164
+ * @returns {Promise<TimezoneList>} A promise that resolves to a list of timezone items.
4165
+ */
4166
+ TimeTzListGet(this: BusyBar, params?: TimeoutOptions): Promise<TimezoneList>;
4167
+ /**
4168
+ * @deprecated Use `TimeTzListGet` instead. will be removed in the next release.
4169
+ */
4170
+ SystemTimeTzList(this: BusyBar, params?: TimeoutOptions): Promise<TimezoneList>;
4171
+ }
4172
+
4173
+ export declare interface TimeoutOptions {
4174
+ timeout?: number;
4175
+ }
4176
+
4177
+ export declare type TimestampInfo = components["schemas"]["TimestampInfo"];
4178
+
4179
+ export declare interface TimeTimestampParams extends TimeoutOptions {
3118
4180
  timestamp: operations["setTimeTimestamp"]["parameters"]["query"]["timestamp"];
3119
4181
  }
3120
4182
 
3121
- export declare interface SystemTimezoneParams {
4183
+ export declare interface TimeTimezoneParams extends TimeoutOptions {
3122
4184
  timezone: operations["setTimeTimezone"]["parameters"]["query"]["timezone"];
3123
4185
  }
3124
4186
 
3125
- export declare interface SystemUpdateParams {
3126
- name?: string;
3127
- file: BusyFile;
4187
+ export declare type TimezoneInfo = components["schemas"]["TimezoneInfo"];
4188
+
4189
+ export declare type TimezoneItem = components["schemas"]["TimezoneListResponse"][number];
4190
+
4191
+ export declare type TimezoneList = components["schemas"]["TimezoneListResponse"];
4192
+
4193
+ export declare type UpdateChangelog = operations["getUpdateChangelog"]["responses"]["200"]["content"]["application/json"];
4194
+
4195
+ export declare interface UpdateChangelogParams extends TimeoutOptions {
4196
+ version: string;
3128
4197
  }
3129
4198
 
3130
- export declare type TimestampInfo = components["schemas"]["TimestampInfo"];
4199
+ export declare interface UpdateInstallParams extends TimeoutOptions {
4200
+ version: string;
4201
+ }
3131
4202
 
3132
- declare interface UploadFileParams {
3133
- path: operations["writeStorageFile"]["parameters"]["query"]["path"];
3134
- file: BusyFile;
4203
+ declare class UpdateMethods {
4204
+ /**
4205
+ * Start firmware update check.
4206
+ *
4207
+ * @param {TimeoutOptions} [params] - Optional parameters.
4208
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4209
+ * @returns {Promise<SuccessResponse>} A promise that resolves to the update check result.
4210
+ */
4211
+ UpdateCheck(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
4212
+ /**
4213
+ * @deprecated Use `UpdateCheck` instead. will be removed in the next release.
4214
+ */
4215
+ SystemUpdateCheck(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
4216
+ /**
4217
+ * Get firmware update status.
4218
+ *
4219
+ * @param {TimeoutOptions} [params] - Optional parameters.
4220
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4221
+ * @returns {Promise<UpdateStatus>} A promise that resolves to the update status.
4222
+ */
4223
+ UpdateStatusGet(this: BusyBar, params?: TimeoutOptions): Promise<UpdateStatus>;
4224
+ /**
4225
+ * @deprecated Use `UpdateStatusGet` instead. will be removed in the next release.
4226
+ */
4227
+ SystemUpdateStatus(this: BusyBar, params?: TimeoutOptions): Promise<UpdateStatus>;
4228
+ /**
4229
+ * Get firmware update changelog.
4230
+ *
4231
+ * @param {ChangelogParams} params - Parameters for the changelog request.
4232
+ * @param {string} params.version - Version string to get the changelog for.
4233
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4234
+ * @returns {Promise<UpdateChangelog>} A promise that resolves to the changelog content.
4235
+ */
4236
+ UpdateChangelogGet(this: BusyBar, params: UpdateChangelogParams): Promise<UpdateChangelog>;
4237
+ /**
4238
+ * @deprecated Use `UpdateChangelogGet` instead. will be removed in the next release.
4239
+ */
4240
+ SystemUpdateChangelog(this: BusyBar, params: UpdateChangelogParams): Promise<UpdateChangelog>;
4241
+ /**
4242
+ * Start firmware update installation.
4243
+ *
4244
+ * @param {InstallParams} params - Parameters for the installation.
4245
+ * @param {string} params.version - Version string to install.
4246
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4247
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful initiation.
4248
+ */
4249
+ UpdateInstall(this: BusyBar, params: UpdateInstallParams): Promise<SuccessResponse>;
4250
+ /**
4251
+ * Abort firmware update download.
4252
+ *
4253
+ * @param {TimeoutOptions} [params] - Optional parameters.
4254
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4255
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful abort.
4256
+ */
4257
+ UpdateAbort(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
3135
4258
  }
3136
- export { UploadFileParams as StorageUploadFileParams }
3137
- export { UploadFileParams }
4259
+
4260
+ export declare type UpdateStatus = components["schemas"]["UpdateStatus"];
3138
4261
 
3139
4262
  export declare type VersionInfo = components["schemas"]["VersionInfo"];
3140
4263
 
3141
4264
  export declare type WifiConnectParams = RequireKeys<Omit<CamelizedRequest, "ipConfig"> & {
3142
4265
  ipConfig: RequiredIpConfig;
3143
- }, "ssid" | "security" | "ipConfig">;
4266
+ }, "ssid" | "security" | "ipConfig"> & TimeoutOptions;
3144
4267
 
3145
4268
  export declare type WifiConnectRequestConfig = components["schemas"]["ConnectRequestConfig"];
3146
4269
 
@@ -3148,6 +4271,53 @@ export declare type WifiIpMethod = components["schemas"]["WifiIpMethod"];
3148
4271
 
3149
4272
  export declare type WifiIpType = components["schemas"]["WifiIpType"];
3150
4273
 
4274
+ declare class WifiMethods {
4275
+ /**
4276
+ * Returns current Wi-Fi status.
4277
+ *
4278
+ * @param {TimeoutOptions} [params] - Optional parameters.
4279
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4280
+ * @returns {Promise<WifiStatusResponse>} A promise that resolves to the Wi-Fi status.
4281
+ */
4282
+ WifiStatusGet(this: BusyBar, params?: TimeoutOptions): Promise<WifiStatusResponse>;
4283
+ /**
4284
+ * @deprecated Use `WifiStatusGet` instead. will be removed in the next release.
4285
+ */
4286
+ WifiStatus(this: BusyBar, params?: TimeoutOptions): Promise<WifiStatusResponse>;
4287
+ /**
4288
+ * Connects to Wi-Fi network.
4289
+ *
4290
+ * @param {ConnectParams} params - Connection parameters:
4291
+ * @param {string} params.ssid - Network SSID.
4292
+ * @param {string} params.password - Network password.
4293
+ * @param {WifiSecurityMethod} params.security - Security method.
4294
+ * @param {object} params.ipConfig - IP configuration.
4295
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4296
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful connection initiation.
4297
+ */
4298
+ WifiConnect(this: BusyBar, params: WifiConnectParams): Promise<SuccessResponse>;
4299
+ /**
4300
+ * Disconnects from Wi-Fi.
4301
+ *
4302
+ * @param {TimeoutOptions} [params] - Optional parameters.
4303
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4304
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful disconnection.
4305
+ */
4306
+ WifiDisconnect(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
4307
+ /**
4308
+ * Scans environment for available Wi-Fi networks.
4309
+ *
4310
+ * @param {TimeoutOptions} [params] - Optional parameters.
4311
+ * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
4312
+ * @returns {Promise<WifiNetworkResponse>} A promise that resolves to a list of available networks.
4313
+ */
4314
+ WifiNetworksGet(this: BusyBar, params?: TimeoutOptions): Promise<WifiNetworkResponse>;
4315
+ /**
4316
+ * @deprecated Use `WifiNetworksGet` instead. will be removed in the next release.
4317
+ */
4318
+ WifiNetworks(this: BusyBar, params?: TimeoutOptions): Promise<WifiNetworkResponse>;
4319
+ }
4320
+
3151
4321
  export declare type WifiNetwork = components["schemas"]["Network"];
3152
4322
 
3153
4323
  export declare type WifiNetworkResponse = components["schemas"]["NetworkResponse"];