@busy-app/busy-lib 0.7.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,614 +2,235 @@ export declare type AccountInfo = components["schemas"]["AccountInfo"];
2
2
 
3
3
  export declare type AccountLink = components["schemas"]["AccountLink"];
4
4
 
5
- declare type ApiKey = string;
6
-
7
- declare type ApiSemver = components["schemas"]["VersionInfo"]["api_semver"];
8
-
9
- export declare interface AssetsDeleteParams extends TimeoutOptions {
10
- appId: paths["/assets/upload"]["delete"]["parameters"]["query"]["app_id"];
11
- }
12
-
13
- export declare interface AssetsUploadParams extends TimeoutOptions {
14
- appId: paths["/assets/upload"]["post"]["parameters"]["query"]["app_id"];
15
- fileName: paths["/assets/upload"]["post"]["parameters"]["query"]["file"];
16
- file: BusyFile;
17
- }
18
-
19
- export declare interface AudioPlayParams extends TimeoutOptions {
20
- appId: paths["/audio/play"]["post"]["parameters"]["query"]["app_id"];
21
- path: paths["/audio/play"]["post"]["parameters"]["query"]["path"];
22
- }
23
-
24
- export declare type AudioVolumeInfo = components["schemas"]["AudioVolumeInfo"];
25
-
26
- export declare interface AudioVolumeParams extends TimeoutOptions {
27
- volume: operations["setAudioVolume"]["parameters"]["query"]["volume"];
28
- }
29
-
30
- export declare type BleStatusResponse = components["schemas"]["BleStatusResponse"];
31
-
32
- declare type Brightness = number | "auto";
33
-
34
- /**
35
- * Main library class for interacting with the Busy Bar API.
36
- *
37
- * @class
38
- */
39
- export declare class BusyBar {
40
- /**
41
- * Device host address (IP or mDNS).
42
- * @type {BusyBarConfig['host']}
43
- * @readonly
44
- */
45
- readonly addr: string;
46
- /**
47
- * Current API semantic version.
48
- * @type {ApiSemver}
49
- */
50
- apiSemver: ApiSemver;
5
+ declare class AccountMethods {
51
6
  /**
52
- * Detected connection type based on auth requirements.
53
- * - "wifi": Device requires authentication (returned 401/403).
54
- * - "usb": Device allows access without token (returned 200).
55
- * - "unknown": Detection failed or not yet completed.
56
- */
57
- connectionType: "usb" | "wifi" | "unknown";
58
- /**
59
- * Creates an instance of BUSY Bar.
60
- * Initializes the API client with the provided host address.
61
- *
62
- * @param {BusyBarConfig} config - BUSY Bar connection configuration
63
- * @param {BusyBarConfig['addr']} config.addr -
64
- * The device address or proxy endpoint.
65
- *
66
- * Can be:
67
- * - An IP address (e.g. `192.168.0.10`)
68
- * - An mDNS hostname (e.g. `busybar.local`)
69
- * - A domain name
70
- * - A full URL (`http://` or `https://`)
71
- *
72
- * If no protocol is specified, `http://` will be automatically added.
73
- *
74
- * @param {BusyBarConfig['token']} config.token -
75
- * Optional authentication token.
76
- *
77
- * Must be provided when `addr` points to a secured proxy endpoint
78
- * such as `https://proxy.busy.app`.
79
- */
80
- constructor(config?: BusyBarConfig);
81
- /**
82
- * Probes the device to determine connection type.
83
- * Sends a request without authentication credentials.
84
- */
85
- private detectConnectionType;
86
- /**
87
- * Get API version information.
7
+ * Get account info.
88
8
  *
89
9
  * @param {TimeoutOptions} [params] - Optional parameters.
90
10
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
91
- * @returns {Promise<VersionInfo>} A promise that resolves to an object containing the `api_semver` string.
11
+ * @returns {Promise<AccountInfo>} A promise that resolves to the account information.
92
12
  */
93
- SystemVersion(params?: TimeoutOptions): Promise<VersionInfo>;
13
+ AccountInfoGet(this: BusyBar, params?: TimeoutOptions): Promise<AccountInfo>;
94
14
  /**
95
- * @deprecated Use `SystemVersion` instead. will be removed in the next release.
15
+ * @deprecated Use `AccountInfoGet` instead. will be removed in the next release.
96
16
  */
97
- getApiVersion(params?: TimeoutOptions): Promise<VersionInfo>;
17
+ Account(this: BusyBar, params?: TimeoutOptions): Promise<AccountInfo>;
98
18
  /**
99
- * Update firmware. Uploads a firmware update package (TAR file) and initiates the update process.
100
- *
101
- * @param {UpdateParams} params - Parameters for the firmware update.
102
- * @param {UpdateParams['name']} params.name - Name for the update package.
103
- * @param {UpdateParams['file']} params.file - File data to upload.
104
- * @param {UpdateParams['timeout']} [params.timeout] - Request timeout in milliseconds.
105
- * @returns {Promise<SuccessResponse>} Result of the update operation.
106
- */
107
- SystemUpdate(params: SystemUpdateParams): Promise<SuccessResponse>;
108
- /**
109
- * @deprecated Use `SystemUpdate` instead. will be removed in the next release.
110
- */
111
- updateFirmware(params: SystemUpdateParams): Promise<SuccessResponse>;
112
- /**
113
- * Get device status.
19
+ * Get account state.
114
20
  *
115
21
  * @param {TimeoutOptions} [params] - Optional parameters.
116
22
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
117
- * @returns {Promise<Status>} Current status of the device.
23
+ * @returns {Promise<AccountState>} A promise that resolves to the account state.
118
24
  */
119
- SystemStatus(params?: TimeoutOptions): Promise<Status>;
25
+ AccountStateGet(this: BusyBar, params?: TimeoutOptions): Promise<AccountState>;
120
26
  /**
121
- * @deprecated Use `SystemStatus` instead. will be removed in the next release.
122
- */
123
- deviceStatus(params?: TimeoutOptions): Promise<Status>;
124
- /**
125
- * Get system status.
27
+ * Get account profile.
126
28
  *
127
29
  * @param {TimeoutOptions} [params] - Optional parameters.
128
30
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
129
- * @returns {Promise<StatusSystem>} Current system status.
31
+ * @returns {Promise<AccountProfile>} A promise that resolves to the account profile.
130
32
  */
131
- SystemInfo(params?: TimeoutOptions): Promise<StatusSystem>;
33
+ AccountProfileGet(this: BusyBar, params?: TimeoutOptions): Promise<AccountProfile>;
132
34
  /**
133
- * @deprecated Use `SystemInfo` instead. will be removed in the next release.
134
- */
135
- systemStatus(params?: TimeoutOptions): Promise<StatusSystem>;
136
- /**
137
- * Get power status.
35
+ * Set account profile.
138
36
  *
139
- * @param {TimeoutOptions} [params] - Optional parameters.
37
+ * @param {SetAccountProfileParams} params - Parameters for setting the account profile.
38
+ * @param {string} params.profile - Profile data string.
140
39
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
141
- * @returns {Promise<StatusPower>} Current power status.
142
- */
143
- SystemStatusPower(params?: TimeoutOptions): Promise<StatusPower>;
144
- /**
145
- * @deprecated Use `SystemStatusPower` instead. will be removed in the next release.
40
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
146
41
  */
147
- powerStatus(params?: TimeoutOptions): Promise<StatusPower>;
42
+ AccountProfileSet(this: BusyBar, params: AccountProfileSetParams): Promise<SuccessResponse>;
148
43
  /**
149
- * Get current timestamp with timezone. Retrieves the current timestamp from RTC with timezone in ISO 8601 format.
44
+ * Unlink device from account. Removes association with the current account.
150
45
  *
151
46
  * @param {TimeoutOptions} [params] - Optional parameters.
152
47
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
153
- * @returns {Promise<TimestampInfo>} Current device timestamp as an ISO 8601 string.
154
- */
155
- SystemTime(params?: TimeoutOptions): Promise<TimestampInfo>;
156
- /**
157
- * @deprecated Use `SystemTime` instead. will be removed in the next release.
48
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful unlinking.
158
49
  */
159
- getTime(params?: TimeoutOptions): Promise<TimestampInfo>;
160
- /**
161
- * Set current timestamp. Sets the RTC timestamp in ISO 8601 format.
162
- * * - Without 'Z': treated as local time
163
- * * - With 'Z': treated as UTC and converted to local time using current timezone offset
164
- *
165
- * @param {SetTimestampParams} params - The parameters for setting the timestamp.
166
- * @param {SetTimestampParams['timestamp']} params.timestamp - The new timestamp (ISO 8601 string).
167
- * @param {SetTimestampParams['timeout']} [params.timeout] - Request timeout in milliseconds.
168
- * @returns {Promise<SuccessResponse>} A success response if the timestamp was set.
169
- */
170
- SystemTimeTimestamp(params: SystemTimestampParams): Promise<SuccessResponse>;
171
- /**
172
- * @deprecated Use `SystemTimeTimestamp` instead. will be removed in the next release.
173
- */
174
- setTimestamp(params: SystemTimestampParams): Promise<SuccessResponse>;
175
- /**
176
- * Set timezone offset. Sets the timezone offset in ±HH:MM format.
177
- *
178
- * @param {SetTimezoneParams} params - The parameters for setting the timezone.
179
- * @param {SetTimezoneParams['timezone']} params.timezone - The new timezone identifier (IANA TZ string).
180
- * @param {SetTimezoneParams['timeout']} [params.timeout] - Request timeout in milliseconds.
181
- * @returns {Promise<SuccessResponse>} A success response if the timezone was set.
182
- */
183
- SystemTimeTimezone(params: SystemTimezoneParams): Promise<SuccessResponse>;
184
- /**
185
- * @deprecated Use `SystemTimeTimezone` instead. will be removed in the next release.
186
- */
187
- setTimezone(params: SystemTimezoneParams): Promise<SuccessResponse>;
188
- /**
189
- * Get MQTT status info.
190
- *
191
- * @param {TimeoutOptions} [params] - Optional parameters.
192
- * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
193
- * @returns {Promise<AccountInfo>} Information about the current MQTT account status.
194
- */
195
- Account(params?: TimeoutOptions): Promise<AccountInfo>;
196
- /**
197
- * @deprecated Use `Account` instead. will be removed in the next release.
198
- */
199
- getMqttStatus(params?: TimeoutOptions): Promise<AccountInfo>;
200
- /**
201
- * Unlink device from account. Removes account linking data.
202
- *
203
- * @param {TimeoutOptions} [params] - Optional parameters.
204
- * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
205
- * @returns {Promise<SuccessResponse>} Result of the account unlink operation.
206
- */
207
- AccountUnlink(params?: TimeoutOptions): Promise<SuccessResponse>;
208
- /**
209
- * @deprecated Use `AccountUnlink` instead. will be removed in the next release.
210
- */
211
- unlinkAccount(params?: TimeoutOptions): Promise<SuccessResponse>;
50
+ AccountUnlink(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
212
51
  /**
213
52
  * Link device to account. Requests account link PIN. Works only if device is connected to MQTT and is not linked to account.
214
53
  *
215
54
  * @param {TimeoutOptions} [params] - Optional parameters.
216
55
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
217
- * @returns {Promise<AccountLink>} Information about the account link operation.
218
- */
219
- AccountLink(params?: TimeoutOptions): Promise<AccountLink>;
220
- /**
221
- * @deprecated Use `AccountLink` instead. will be removed in the next release.
56
+ * @returns {Promise<AccountLink>} A promise that resolves to the link information (e.g., PIN).
222
57
  */
223
- linkAccount(params?: TimeoutOptions): Promise<AccountLink>;
224
- /**
225
- * Upload asset file with app ID. Uploads a file to a specific app's assets directory.
226
- *
227
- * @param {UploadParams} params - Parameters for the upload.
228
- * @param {UploadParams['appId']} params.appId - Application ID for organizing assets.
229
- * @param {UploadParams['fileName']} params.fileName - Filename for the uploaded asset.
230
- * @param {UploadParams['file']} params.file - File data to upload.
231
- * @param {UploadParams['timeout']} [params.timeout] - Request timeout in milliseconds.
232
- * @returns {Promise<SuccessResponse>} Result of the upload operation.
233
- */
234
- AssetsUpload(params: AssetsUploadParams): Promise<SuccessResponse>;
235
- /**
236
- * @deprecated Use `AssetsUpload` instead. will be removed in the next release.
237
- */
238
- uploadAsset(params: AssetsUploadParams): Promise<SuccessResponse>;
239
- /**
240
- * Delete app assets. Deletes all assets for a specific app ID.
241
- *
242
- * @param {DeleteParams} params - Parameters for the delete.
243
- * @param {DeleteParams['appId']} params.appId - Application ID whose assets should be deleted.
244
- * @param {DeleteParams['timeout']} [params.timeout] - Request timeout in milliseconds.
245
- * @returns {Promise<SuccessResponse>} Result of the delete operation.
246
- */
247
- AssetsDelete(params: AssetsDeleteParams): Promise<SuccessResponse>;
248
- /**
249
- * @deprecated Use `AssetsDelete` instead. will be removed in the next release.
250
- */
251
- deleteAssets(params: AssetsDeleteParams): Promise<SuccessResponse>;
252
- /**
253
- * Draw on display. Sends drawing data to the display. Supports JSON-defined display elements.
254
- *
255
- * @param {DrawParams} params - Parameters for the draw operation.
256
- * @param {DrawParams['appId']} params.appId - Application ID for organizing display elements.
257
- * @param {DrawParams['elements'][]} params.elements - Array of display elements (text or image).
258
- * @param {DrawParams['timeout']} [params.timeout] - Request timeout in milliseconds.
259
- * @returns {Promise<SuccessResponse>} Result of the draw operation.
260
- */
261
- DisplayDraw(params: DisplayDrawParams): Promise<SuccessResponse>;
262
- /**
263
- * @deprecated Use `DisplayDraw` instead. will be removed in the next release.
264
- */
265
- drawDisplay(params: DisplayDrawParams): Promise<SuccessResponse>;
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
+
69
+ declare type ApiKey = string;
70
+
71
+ declare type ApiSemver = components["schemas"]["VersionInfo"]["api_semver"];
72
+
73
+ export declare interface AssetsDeleteParams extends TimeoutOptions {
74
+ appId: paths["/assets/upload"]["delete"]["parameters"]["query"]["app_id"];
75
+ }
76
+
77
+ export declare interface AssetsUploadParams extends TimeoutOptions {
78
+ appId: paths["/assets/upload"]["post"]["parameters"]["query"]["app_id"];
79
+ fileName: paths["/assets/upload"]["post"]["parameters"]["query"]["file"];
80
+ file: BusyFile;
81
+ }
82
+
83
+ declare class AudioMethods {
266
84
  /**
267
- * Clear display. Clears the display and stops the Canvas application if running.
85
+ * Play audio file. Plays a file from internal storage.
268
86
  *
269
- * @param {TimeoutOptions} [params] - Optional parameters.
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.
270
90
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
271
- * @returns {Promise<SuccessResponse>} Result of the clear operation.
91
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful play command.
272
92
  */
273
- DisplayClear(params?: TimeoutOptions): Promise<SuccessResponse>;
274
- /**
275
- * @deprecated Use `DisplayClear` instead. will be removed in the next release.
276
- */
277
- clearDisplay(params?: TimeoutOptions): Promise<SuccessResponse>;
278
- /**
279
- * Play audio file. Plays an audio file from the assets directory. Supported formats include .snd files.
280
- *
281
- * @param {AudioPlayParams} params - Parameters for the audio playback.
282
- * @param {AudioPlayParams['appId']} params.appId - Application ID for organizing assets.
283
- * @param {AudioPlayParams['path']} params.path - Path to the audio file within the app's assets directory.
284
- * @param {AudioPlayParams['timeout']} [params.timeout] - Request timeout in milliseconds.
285
- * @returns {Promise<SuccessResponse>} Result of the play operation.
286
- */
287
- AudioPlay(params: AudioPlayParams): Promise<SuccessResponse>;
93
+ AudioPlay(this: BusyBar, params: AudioPlayParams): Promise<SuccessResponse>;
288
94
  /**
289
95
  * @deprecated Use `AudioPlay` instead. will be removed in the next release.
290
96
  */
291
- playSound(params: AudioPlayParams): Promise<SuccessResponse>;
97
+ Audio(this: BusyBar, params: AudioPlayParams): Promise<SuccessResponse>;
292
98
  /**
293
99
  * Stop audio playback. Stops any currently playing audio.
294
100
  *
295
101
  * @param {TimeoutOptions} [params] - Optional parameters.
296
102
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
297
- * @returns {Promise<SuccessResponse>} Result of the stop operation.
298
- */
299
- AudioStop(params?: TimeoutOptions): Promise<SuccessResponse>;
300
- /**
301
- * @deprecated Use `AudioStop` instead. will be removed in the next release.
302
- */
303
- stopSound(params?: TimeoutOptions): Promise<SuccessResponse>;
304
- /**
305
- * Returns current Wi-Fi status.
306
- *
307
- * @param {TimeoutOptions} [params] - Optional parameters.
308
- * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
309
- * @returns {Promise<WifiStatusResponse>} Current Wi-Fi status.
103
+ * @returns {Promise<SuccessResponse>} A promise that resolves on successful stop command.
310
104
  */
311
- WifiStatus(params?: TimeoutOptions): Promise<WifiStatusResponse>;
105
+ AudioStop(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
312
106
  /**
313
- * @deprecated Use `WifiStatus` instead. will be removed in the next release.
314
- */
315
- statusWifi(params?: TimeoutOptions): Promise<WifiStatusResponse>;
316
- /**
317
- * Attempts to connect to Wi-Fi using config.
318
- *
319
- * @param {ConnectParams} params - Connection parameters:
320
- * @param {ConnectParams['ssid']} params.ssid - SSID (network name) to connect to.
321
- * @param {ConnectParams['password']} [params.password] - Password for the Wi-Fi network (if required).
322
- * @param {ConnectParams['security']} params.security - Security type (e.g., "open", "wpa2", etc.).
323
- * @param {ConnectParams['ipConfig']} params.ipConfig - IP configuration object:
324
- * @param {ConnectParams['ipConfig']['ipMethod']} params.ipConfig.ipMethod - IP assignment method ("dhcp" or "static").
325
- * @param {ConnectParams['ipConfig']['ipType']} params.ipConfig.ipType - IP type ("ipv4" or "ipv6").
326
- * @param {ConnectParams['ipConfig']['address']} [params.ipConfig.address] - Static IP address (if using "static" method).
327
- * @param {ConnectParams['ipConfig']['mask']} [params.ipConfig.mask] - Subnet mask (if using "static" method).
328
- * @param {ConnectParams['ipConfig']['gateway']} [params.ipConfig.gateway] - Gateway address (if using "static" method).
329
- * @param {ConnectParams['timeout']} [params.timeout] - Request timeout in milliseconds.
330
- * @returns {Promise<SuccessResponse>} Result of the connect operation.
331
- */
332
- WifiConnect(params: WifiConnectParams): Promise<SuccessResponse>;
333
- /**
334
- * @deprecated Use `WifiConnect` instead. will be removed in the next release.
335
- */
336
- connectWifi(params: WifiConnectParams): Promise<SuccessResponse>;
337
- /**
338
- * Disconnects from Wi-Fi.
107
+ * Get audio volume.
339
108
  *
340
109
  * @param {TimeoutOptions} [params] - Optional parameters.
341
110
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
342
- * @returns {Promise<SuccessResponse>} Result of the disconnect operation.
111
+ * @returns {Promise<AudioVolumeInfo>} A promise that resolves to the audio volume information.
343
112
  */
344
- WifiDisconnect(params?: TimeoutOptions): Promise<SuccessResponse>;
113
+ AudioVolumeGet(this: BusyBar, params?: TimeoutOptions): Promise<AudioVolumeInfo>;
345
114
  /**
346
- * @deprecated Use `WifiDisconnect` instead. will be removed in the next release.
115
+ * @deprecated Use `AudioVolumeGet` instead. will be removed in the next release.
347
116
  */
348
- disconnectWifi(params?: TimeoutOptions): Promise<SuccessResponse>;
117
+ AudioVolume(this: BusyBar, params?: TimeoutOptions): Promise<AudioVolumeInfo>;
349
118
  /**
350
- * Scans environment for available Wi-Fi networks.
119
+ * Set audio volume.
351
120
  *
352
- * @param {TimeoutOptions} [params] - Optional parameters.
121
+ * @param {AudioVolumeParams} params - Volume parameters:
122
+ * @param {number} params.volume - Volume level (0-100).
353
123
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
354
- * @returns {Promise<WifiNetworkResponse>} List of discovered networks.
355
- */
356
- WifiNetworks(params?: TimeoutOptions): Promise<WifiNetworkResponse>;
357
- /**
358
- * @deprecated Use `WifiNetworks` instead. will be removed in the next release.
359
- */
360
- networksWifi(params?: TimeoutOptions): Promise<WifiNetworkResponse>;
361
- /**
362
- * Upload file to internal storage. Uploads a file to a specified path.
363
- *
364
- * @param {UploadFileParams} params - Upload parameters:
365
- * @param {UploadFileParams['path']} params.path - Path where the file will be saved (e.g., "/ext/test.png").
366
- * @param {UploadFileParams['file']} params.file - File data to upload.
367
- * @param {UploadFileParams['timeout']} [params.timeout] - Request timeout in milliseconds.
368
- * @returns {Promise<SuccessResponse>} Result of the upload operation.
369
- */
370
- StorageWrite(params: StorageUploadFileParams): Promise<SuccessResponse>;
371
- /**
372
- * @deprecated Use `StorageWrite` instead. will be removed in the next release.
373
- */
374
- uploadFile(params: StorageUploadFileParams): Promise<SuccessResponse>;
375
- /**
376
- * Download file from internal storage. Downloads a file from a specified path.
377
- *
378
- * @param {DownloadFileParams} params - Download parameters:
379
- * @param {DownloadFileParams['path']} params.path - Path to the file to download (e.g., "/ext/test.png").
380
- * @param {DownloadFileParams['asArrayBuffer']} [params.asArrayBuffer] - If true, returns data as ArrayBuffer; otherwise, as Blob.
381
- * @param {DownloadFileParams['timeout']} [params.timeout] - Request timeout in milliseconds.
382
- * @returns {Promise<StorageReadResponse>} The file data.
383
- */
384
- StorageRead(params: StorageDownloadFileParams): Promise<StorageReadResponse>;
385
- /**
386
- * @deprecated Use `StorageRead` instead. will be removed in the next release.
387
- */
388
- downloadFile(params: StorageDownloadFileParams): Promise<StorageReadResponse>;
389
- /**
390
- * List files on internal storage.
391
- *
392
- * @param {ReadDirectoryParams} params - List parameters:
393
- * @param {ReadDirectoryParams['path']} params.path - Path to the directory to list (e.g., "/ext").
394
- * @param {ReadDirectoryParams['timeout']} [params.timeout] - Request timeout in milliseconds.
395
- * @returns {Promise<StorageList>} List of files and directories.
396
- */
397
- StorageList(params: StorageReadDirectoryParams): Promise<StorageList>;
398
- /**
399
- * @deprecated Use `StorageList` instead. will be removed in the next release.
400
- */
401
- readDirectory(params: StorageReadDirectoryParams): Promise<StorageList>;
402
- /**
403
- * Remove a file on internal storage. Removes a file with a specified path.
404
- *
405
- * @param {RemoveParams} params - Remove parameters:
406
- * @param {RemoveParams['path']} params.path - Path of the file to remove (e.g., "/ext/test.png").
407
- * @param {RemoveParams['timeout']} [params.timeout] - Request timeout in milliseconds.
408
- * @returns {Promise<SuccessResponse>} Result of the remove operation.
124
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
409
125
  */
410
- StorageRemove(params: StorageRemoveParams): Promise<SuccessResponse>;
411
- /**
412
- * @deprecated Use `StorageRemove` instead. will be removed in the next release.
413
- */
414
- removeResource(params: StorageRemoveParams): Promise<SuccessResponse>;
415
- /**
416
- * Create a directory on internal storage. Creates a new directory with a specified path.
417
- *
418
- * @param {CreateDirectoryParams} params - Directory creation parameters:
419
- * @param {CreateDirectoryParams['path']} params.path - Path to the new directory (e.g., "/ext/newdir").
420
- * @param {CreateDirectoryParams['timeout']} [params.timeout] - Request timeout in milliseconds.
421
- * @returns {Promise<SuccessResponse>} Result of the create operation.
422
- */
423
- StorageMkdir(params: StorageCreateDirectoryParams): Promise<SuccessResponse>;
424
- /**
425
- * @deprecated Use `StorageMkdir` instead. will be removed in the next release.
426
- */
427
- createDirectory(params: StorageCreateDirectoryParams): Promise<SuccessResponse>;
126
+ AudioVolumeSet(this: BusyBar, params: AudioVolumeParams): Promise<SuccessResponse>;
127
+ }
128
+
129
+ export declare interface AudioPlayParams extends TimeoutOptions {
130
+ appId: paths["/audio/play"]["post"]["parameters"]["query"]["app_id"];
131
+ path: paths["/audio/play"]["post"]["parameters"]["query"]["path"];
132
+ }
133
+
134
+ export declare type AudioVolumeInfo = components["schemas"]["AudioVolumeInfo"];
135
+
136
+ export declare interface AudioVolumeParams extends TimeoutOptions {
137
+ volume: operations["setAudioVolume"]["parameters"]["query"]["volume"];
138
+ }
139
+
140
+ declare class BleMethods {
428
141
  /**
429
- * Show storage usage.
142
+ * Enable BLE. Starts advertising.
430
143
  *
431
144
  * @param {TimeoutOptions} [params] - Optional parameters.
432
145
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
433
- * @returns {Promise<StorageStatus>} Current storage status information.
146
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
434
147
  */
435
- StorageStatus(params?: TimeoutOptions): Promise<StorageStatus>;
148
+ BleEnable(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
436
149
  /**
437
- * @deprecated Use `StorageStatus` instead. will be removed in the next release.
438
- */
439
- statusStorage(params?: TimeoutOptions): Promise<StorageStatus>;
440
- /**
441
- * Get brightness value for displays.
150
+ * Disable BLE. Stops advertising.
442
151
  *
443
152
  * @param {TimeoutOptions} [params] - Optional parameters.
444
153
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
445
- * @returns {Promise<DisplayBrightnessInfo>} Current brightness information for front and back panels.
154
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
446
155
  */
447
- DisplayBrightness(params?: TimeoutOptions): Promise<DisplayBrightnessInfo>;
156
+ BleDisable(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
448
157
  /**
449
- * @deprecated Use `DisplayBrightness` instead. will be removed in the next release.
450
- */
451
- getDisplayBrightness(params?: TimeoutOptions): Promise<DisplayBrightnessInfo>;
452
- /**
453
- * Set display brightness. Set brightness for one or both displays.
454
- *
455
- * @param {BrightnessParams} params - Brightness parameters:
456
- * @param {BrightnessParams['front']} [params.front] - Brightness for the front panel (0-100 or "auto").
457
- * @param {BrightnessParams['back']} [params.back] - Brightness for the back panel (0-100 or "auto").
458
- * @param {BrightnessParams['timeout']} [params.timeout] - Request timeout in milliseconds.
459
- * @returns {Promise<SuccessResponse>} Result of the brightness update operation.
460
- * @throws {Error} If brightness value is outside the range 0-100 or not "auto".
461
- */
462
- DisplayBrightnessSet(params: DisplayBrightnessParams): Promise<SuccessResponse>;
463
- /**
464
- * @deprecated Use `DisplayBrightnessSet` instead. will be removed in the next release.
465
- */
466
- setDisplayBrightness(params: DisplayBrightnessParams): Promise<SuccessResponse>;
467
- /**
468
- * Get audio volume.
158
+ * Remove pairing. Remove pairing with previous device.
469
159
  *
470
160
  * @param {TimeoutOptions} [params] - Optional parameters.
471
161
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
472
- * @returns {Promise<AudioVolumeInfo>} Current audio volume (0-100).
162
+ * @returns {Promise<SuccessResponse>} A promise that resolves on success.
473
163
  */
474
- AudioVolume(params?: TimeoutOptions): Promise<AudioVolumeInfo>;
164
+ BleUnpair(this: BusyBar, params?: TimeoutOptions): Promise<SuccessResponse>;
475
165
  /**
476
- * @deprecated Use `AudioVolume` instead. will be removed in the next release.
477
- */
478
- getAudioVolume(params?: TimeoutOptions): Promise<AudioVolumeInfo>;
479
- /**
480
- * Set audio volume.
481
- *
482
- * @param {AudioVolumeParams} params - Audio volume parameters:
483
- * @param {AudioVolumeParams['volume']} params.volume - Audio volume (number from 0 to 100).
484
- * @param {AudioVolumeParams['timeout']} [params.timeout] - Request timeout in milliseconds.
485
- * @returns {Promise<SuccessResponse>} Result of the volume update operation.
486
- * @throws {Error} If volume is outside the range 0-100 or request fails.
487
- */
488
- AudioVolumeSet(params: AudioVolumeParams): Promise<SuccessResponse>;
489
- /**
490
- * @deprecated Use `AudioVolumeSet` instead. will be removed in the next release.
491
- */
492
- setAudioVolume(params: AudioVolumeParams): Promise<SuccessResponse>;
493
- /**
494
- * Get HTTP API access over Wi-Fi configuration.
166
+ * Returns current BLE status.
495
167
  *
496
168
  * @param {TimeoutOptions} [params] - Optional parameters.
497
169
  * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
498
- * @returns {Promise<HttpAccessInfo>} Current HTTP access info.
170
+ * @returns {Promise<BleStatusResponse>} A promise that resolves to the BLE status.
499
171
  */
500
- SettingsAccess(params?: TimeoutOptions): Promise<HttpAccessInfo>;
172
+ BleStatusGet(this: BusyBar, params?: TimeoutOptions): Promise<BleStatusResponse>;
173
+ }
174
+
175
+ export declare type BleStatusResponse = components["schemas"]["BleStatusResponse"];
176
+
177
+ declare type Brightness = number | "auto";
178
+
179
+ export declare interface BusyBar extends SystemMethods, UpdateMethods, TimeMethods, AccountMethods, DisplayMethods, AudioMethods, WifiMethods, StorageMethods, SettingsMethods, BleMethods, InputMethods, MatterMethods {
180
+ }
181
+
182
+ /**
183
+ * Main library class for interacting with the Busy Bar API.
184
+ *
185
+ * @class
186
+ */
187
+ export declare class BusyBar {
501
188
  /**
502
- * @deprecated Use `SettingsAccess` instead. will be removed in the next release.
189
+ * Device host address (IP or mDNS).
190
+ * @type {BusyBarConfig['host']}
191
+ * @readonly
503
192
  */
504
- getHttpAccess(params?: TimeoutOptions): Promise<HttpAccessInfo>;
193
+ readonly addr: string;
505
194
  /**
506
- * Set HTTP API access over Wi-Fi configuration.
507
- *
508
- * @param {HttpAccessParams} params - Access parameters:
509
- * @param {HttpAccessParams['mode']} params.mode - Access mode ("disabled", "enabled", "key").
510
- * @param {HttpAccessParams['key']} params.key - Access key (4-10 digits).
511
- * @param {HttpAccessParams['timeout']} [params.timeout] - Request timeout in milliseconds.
512
- * @returns {Promise<SuccessResponse>} Result of the set operation.
195
+ * Current API semantic version.
196
+ * @type {ApiSemver}
513
197
  */
514
- SettingsAccessSet(params: HttpAccessParams): Promise<SuccessResponse>;
198
+ apiSemver: ApiSemver;
515
199
  /**
516
- * @deprecated Use `SettingsAccessSet` instead. will be removed in the next release.
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.
517
204
  */
518
- setHttpAccess(params: HttpAccessParams): Promise<SuccessResponse>;
205
+ connectionType: "usb" | "wifi" | "unknown";
519
206
  /**
520
- * Get current device name.
207
+ * Creates an instance of BUSY Bar.
208
+ * Initializes the API client with the provided host address.
521
209
  *
522
- * @param {TimeoutOptions} [params] - Optional parameters.
523
- * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
524
- * @returns {Promise<NameInfo>} The current device name information.
525
- */
526
- SettingsName(params?: TimeoutOptions): Promise<NameInfo>;
527
- /**
528
- * @deprecated Use `SettingsName` instead. will be removed in the next release.
529
- */
530
- getName(params?: TimeoutOptions): Promise<NameInfo>;
531
- /**
532
- * Set new device name.
210
+ * @param {BusyBarConfig} config - BUSY Bar connection configuration
211
+ * @param {BusyBarConfig['addr']} config.addr -
212
+ * The device address or proxy endpoint.
533
213
  *
534
- * @param {NameParams} params - The parameters for setting the device name.
535
- * @param {NameParams['name']} params.name - The new device name.
536
- * @param {NameParams['timeout']} [params.timeout] - Request timeout in milliseconds.
537
- * @returns {Promise<SuccessResponse>} Result of setting the device name.
538
- */
539
- SettingsNameSet(params: NameParams): Promise<SuccessResponse>;
540
- /**
541
- * @deprecated Use `SettingsNameSet` instead. will be removed in the next release.
542
- */
543
- setName(params: NameParams): Promise<SuccessResponse>;
544
- /**
545
- * Sets API key for all subsequent requests.
546
- * @param {string} key - API key to use in "X-API-Token" header.
547
- */
548
- setApiKey(key: string): void;
549
- /**
550
- * Enable BLE. Enables BLE module and starts advertising.
551
- * @param {TimeoutOptions} [params] - Optional parameters.
552
- * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
553
- * @returns {Promise<SuccessResponse>} Result of the enable operation.
554
- */
555
- BleEnable(params?: TimeoutOptions): Promise<SuccessResponse>;
556
- /**
557
- * @deprecated Use `BleEnable` instead. will be removed in the next release.
558
- */
559
- enableBle(params?: TimeoutOptions): Promise<SuccessResponse>;
560
- /**
561
- * Disable BLE. Stops advertising.
562
- * @param {TimeoutOptions} [params] - Optional parameters.
563
- * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
564
- * @returns {Promise<SuccessResponse>} Result of the disable operation.
565
- */
566
- BleDisable(params?: TimeoutOptions): Promise<SuccessResponse>;
567
- /**
568
- * @deprecated Use `BleDisable` instead. will be removed in the next release.
569
- */
570
- disableBle(params?: TimeoutOptions): Promise<SuccessResponse>;
571
- /**
572
- * Remove pairing. Remove pairing with previous device.
214
+ * Can be:
215
+ * - An IP address (e.g. `192.168.0.10`)
216
+ * - An mDNS hostname (e.g. `busybar.local`)
217
+ * - A domain name
218
+ * - A full URL (`http://` or `https://`)
573
219
  *
574
- * @param {TimeoutOptions} [params] - Optional parameters.
575
- * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
576
- * @returns {Promise<SuccessResponse>} Result of the BLE pairing removal operation.
577
- */
578
- BleUnpair(params?: TimeoutOptions): Promise<SuccessResponse>;
579
- /**
580
- * @deprecated Use `BleUnpair` instead. will be removed in the next release.
581
- */
582
- pairingBle(params?: TimeoutOptions): Promise<SuccessResponse>;
583
- /**
584
- * Returns current BLE status.
220
+ * If no protocol is specified, `http://` will be automatically added.
585
221
  *
586
- * @param {TimeoutOptions} [params] - Optional parameters.
587
- * @param {TimeoutOptions['timeout']} [params.timeout] - Request timeout in milliseconds.
588
- * @returns {Promise<BleStatusResponse>} Current BLE status information.
589
- */
590
- BleStatus(params?: TimeoutOptions): Promise<BleStatusResponse>;
591
- /**
592
- * @deprecated Use `BleStatus` instead. will be removed in the next release.
593
- */
594
- statusBle(params?: TimeoutOptions): Promise<BleStatusResponse>;
595
- /**
596
- * Send input event. Send single key press event.
222
+ * @param {BusyBarConfig['token']} config.token -
223
+ * Optional authentication token.
597
224
  *
598
- * @param params - Button press parameters:
599
- * @param {InputKeyParams['keyName']} params.keyName - Button key.
600
- * @param {InputKeyParams['timeout']} [params.timeout] - Request timeout in milliseconds.
601
- * @example
602
- * {
603
- * keyName: "ok",
604
- * timeout: 1000
605
- * }
606
- * @returns {Promise<SuccessResponse>} Result of pressing the button.
225
+ * Must be provided when `addr` points to a secured proxy endpoint
226
+ * such as `https://proxy.busy.app`.
607
227
  */
608
- InputSend(params: InputKeyParams): Promise<SuccessResponse>;
228
+ constructor(config?: BusyBarConfig);
609
229
  /**
610
- * @deprecated Use `InputSend` instead. will be removed in the next release.
230
+ * Probes the device to determine connection type.
231
+ * Sends a request without authentication credentials.
611
232
  */
612
- pressButton(params: InputKeyParams): Promise<SuccessResponse>;
233
+ private detectConnectionType;
613
234
  }
614
235
 
615
236
  export declare type BusyBarConfig = {
@@ -649,11 +270,77 @@ declare interface components {
649
270
  */
650
271
  VersionInfo: {
651
272
  /**
652
- * @description Api SemVer
273
+ * @description API SemVer
653
274
  * @example 0.0.0
654
275
  */
655
276
  api_semver: string;
656
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
+ };
657
344
  /**
658
345
  * @example {
659
346
  * "name": "BUSY bar"
@@ -677,7 +364,7 @@ declare interface components {
677
364
  * @description Access key was set and is valid
678
365
  * @example true
679
366
  */
680
- key_valid?: Record<string, never>;
367
+ key_valid?: boolean;
681
368
  };
682
369
  /**
683
370
  * @example {
@@ -704,7 +391,7 @@ declare interface components {
704
391
  /** @example 654321 */
705
392
  free_bytes?: number;
706
393
  /**
707
- * @description Total size of the parition
394
+ * @description Total size of the partition
708
395
  * @example 777777
709
396
  */
710
397
  total_bytes?: number;
@@ -753,7 +440,7 @@ declare interface components {
753
440
  * "elements": [
754
441
  * {
755
442
  * "id": "0",
756
- * "timeout": 6,
443
+ * "timeout": 10,
757
444
  * "align": "center",
758
445
  * "x": 36,
759
446
  * "y": 10,
@@ -762,7 +449,7 @@ declare interface components {
762
449
  * "font": "medium",
763
450
  * "color": "#FFFFFFFF",
764
451
  * "width": 72,
765
- * "scroll_rate": 160,
452
+ * "scroll_rate": 1000,
766
453
  * "display": "front"
767
454
  * },
768
455
  * {
@@ -809,7 +496,7 @@ declare interface components {
809
496
  * @description Type of display element
810
497
  * @enum {string}
811
498
  */
812
- type: "text" | "image";
499
+ type: "text" | "image" | "anim" | "countdown";
813
500
  /** @description X coordinate of selected anchor point relative to top-left of display */
814
501
  x?: number;
815
502
  /** @description Y coordinate of selected anchor point relative to top-left of display */
@@ -842,7 +529,7 @@ declare interface components {
842
529
  color: string;
843
530
  /** @description Width of the label */
844
531
  width?: number;
845
- /** @description Scroll rate in characters per minute */
532
+ /** @description Scroll rate in pixels per minute */
846
533
  scroll_rate?: number;
847
534
  } & {
848
535
  /**
@@ -864,6 +551,57 @@ declare interface components {
864
551
  */
865
552
  type: "image";
866
553
  };
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
+ }) & {
561
+ /**
562
+ * @description Whether to loop the requested part of the animation
563
+ * @default false
564
+ */
565
+ loop: boolean;
566
+ /**
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
569
+ */
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
+ }) & {
574
+ /**
575
+ * @description discriminator enum property added by openapi-typescript
576
+ * @enum {string}
577
+ */
578
+ type: "anim";
579
+ };
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;
583
+ /**
584
+ * @description Color to display the text in, in #RRGGBBAA format
585
+ * @default #FFFFFFFF
586
+ */
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
+ };
867
605
  DisplayBrightnessInfo: {
868
606
  /**
869
607
  * @description Front display brightness (0-100/auto)
@@ -888,7 +626,14 @@ declare interface components {
888
626
  * @description ISO 8601 formatted timestamp with timezone
889
627
  * @example 2025-10-02T14:30:45+04:00
890
628
  */
891
- timestamp: string;
629
+ timestamp: string;
630
+ };
631
+ TimezoneInfo: {
632
+ /**
633
+ * @description Timezone name
634
+ * @example Berlin
635
+ */
636
+ timezone: string;
892
637
  };
893
638
  Status: {
894
639
  system?: components["schemas"]["StatusSystem"];
@@ -976,7 +721,7 @@ declare interface components {
976
721
  * @example disconnected
977
722
  * @enum {string}
978
723
  */
979
- state?: "unknown" | "disconnected" | "connected" | "connecting" | "disconnecting";
724
+ state?: "unknown" | "disconnected" | "connected" | "connecting" | "disconnecting" | "reconnecting";
980
725
  /** @example Your_WIFI_SSID */
981
726
  ssid?: string;
982
727
  /** @example EC:5A:00:0B:55:1D */
@@ -1020,15 +765,30 @@ declare interface components {
1020
765
  */
1021
766
  ScreenResponse: string;
1022
767
  AccountInfo: {
1023
- /**
1024
- * @example linked
1025
- * @enum {string}
1026
- */
1027
- state?: "error" | "disconnected" | "not_linked" | "linked";
768
+ /** @example true */
769
+ linked?: boolean;
1028
770
  /** @example 12345678-9abc-def0-1234-56789abcdef0 */
1029
771
  id?: string;
1030
772
  /** @example name@example.com */
1031
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;
1032
792
  };
1033
793
  AccountLink: {
1034
794
  /** @example ABCD */
@@ -1037,12 +797,162 @@ declare interface components {
1037
797
  expires_at?: number;
1038
798
  };
1039
799
  BleStatusResponse: {
1040
- /** @example connected */
1041
- 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";
1042
953
  };
1043
954
  };
1044
955
  responses: never;
1045
- parameters: never;
1046
956
  requestBodies: never;
1047
957
  headers: never;
1048
958
  pathItems: never;
@@ -1071,6 +981,58 @@ export declare interface DisplayDrawParams extends TimeoutOptions {
1071
981
  elements: components["schemas"]["DisplayElements"]["elements"];
1072
982
  }
1073
983
 
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>;
1034
+ }
1035
+
1074
1036
  declare type Error_2 = components["schemas"]["Error"];
1075
1037
  export { Error_2 as Error }
1076
1038
 
@@ -1124,10 +1086,53 @@ export declare interface InputKeyParams extends TimeoutOptions {
1124
1086
  keyName: KeyName;
1125
1087
  }
1126
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
+
1127
1101
  export declare type KeyName = operations["setInputKey"]["parameters"]["query"]["key"];
1128
1102
 
1129
1103
  export declare type KeyValue = 1 | 0;
1130
1104
 
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>;
1130
+ }
1131
+
1132
+ export declare type MatterPairingInfo = components["schemas"]["MatterCommissioningPayload"];
1133
+
1134
+ export declare type MatterStatus = components["schemas"]["MatterCommissionedFabrics"];
1135
+
1131
1136
  export declare type NameInfo = components["schemas"]["NameInfo"];
1132
1137
 
1133
1138
  export declare interface NameParams extends TimeoutOptions {
@@ -1193,7 +1198,7 @@ declare interface operations {
1193
1198
  */
1194
1199
  mode: "disabled" | "enabled" | "key";
1195
1200
  /**
1196
- * @description Access key (4-10 digits len)
1201
+ * @description Access key (4-10 digits length)
1197
1202
  * @example 12345678
1198
1203
  */
1199
1204
  key: string;
@@ -1213,7 +1218,154 @@ declare interface operations {
1213
1218
  "application/json": components["schemas"]["SuccessResponse"];
1214
1219
  };
1215
1220
  };
1216
- /** @description Invalid request data */
1221
+ /** @description Invalid request data */
1222
+ 400: {
1223
+ headers: {
1224
+ [name: string]: unknown;
1225
+ };
1226
+ content: {
1227
+ "application/json": components["schemas"]["Error"];
1228
+ };
1229
+ };
1230
+ };
1231
+ };
1232
+ updateFirmware: {
1233
+ parameters: {
1234
+ query?: never;
1235
+ header?: never;
1236
+ path?: never;
1237
+ cookie?: never;
1238
+ };
1239
+ requestBody: {
1240
+ content: {
1241
+ "application/octet-stream": string;
1242
+ };
1243
+ };
1244
+ responses: {
1245
+ /** @description Update initiated successfully. The device will reboot. */
1246
+ 200: {
1247
+ headers: {
1248
+ [name: string]: unknown;
1249
+ };
1250
+ content: {
1251
+ "application/json": components["schemas"]["SuccessResponse"];
1252
+ };
1253
+ };
1254
+ /** @description Invalid parameters, invalid TAR file, or update preparation failed. */
1255
+ 400: {
1256
+ headers: {
1257
+ [name: string]: unknown;
1258
+ };
1259
+ content: {
1260
+ "application/json": components["schemas"]["Error"];
1261
+ };
1262
+ };
1263
+ /** @description Update package too large. */
1264
+ 413: {
1265
+ headers: {
1266
+ [name: string]: unknown;
1267
+ };
1268
+ content: {
1269
+ "application/json": components["schemas"]["Error"];
1270
+ };
1271
+ };
1272
+ /** @description Internal server error during update process. */
1273
+ 500: {
1274
+ headers: {
1275
+ [name: string]: unknown;
1276
+ };
1277
+ content: {
1278
+ "application/json": components["schemas"]["Error"];
1279
+ };
1280
+ };
1281
+ };
1282
+ };
1283
+ checkFirmwareUpdate: {
1284
+ parameters: {
1285
+ query?: never;
1286
+ header?: never;
1287
+ path?: never;
1288
+ cookie?: never;
1289
+ };
1290
+ requestBody?: never;
1291
+ responses: {
1292
+ /** @description Update check started successfully */
1293
+ 200: {
1294
+ headers: {
1295
+ [name: string]: unknown;
1296
+ };
1297
+ content: {
1298
+ "application/json": components["schemas"]["SuccessResponse"];
1299
+ };
1300
+ };
1301
+ /** @description Update check already in progress */
1302
+ 409: {
1303
+ headers: {
1304
+ [name: string]: unknown;
1305
+ };
1306
+ content: {
1307
+ "application/json": components["schemas"]["Error"];
1308
+ };
1309
+ };
1310
+ /** @description Failed to start update check */
1311
+ 500: {
1312
+ headers: {
1313
+ [name: string]: unknown;
1314
+ };
1315
+ content: {
1316
+ "application/json": components["schemas"]["Error"];
1317
+ };
1318
+ };
1319
+ };
1320
+ };
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: {
1342
+ parameters: {
1343
+ query: {
1344
+ /**
1345
+ * @description Firmware version to get changelog for
1346
+ * @example 1.2.3
1347
+ */
1348
+ version: string;
1349
+ };
1350
+ header?: never;
1351
+ path?: never;
1352
+ cookie?: never;
1353
+ };
1354
+ requestBody?: never;
1355
+ responses: {
1356
+ /** @description Changelog retrieved successfully */
1357
+ 200: {
1358
+ headers: {
1359
+ [name: string]: unknown;
1360
+ };
1361
+ content: {
1362
+ "application/json": {
1363
+ /** @description Changelog text */
1364
+ changelog?: string;
1365
+ };
1366
+ };
1367
+ };
1368
+ /** @description Version parameter missing, update not available, or version mismatch */
1217
1369
  400: {
1218
1370
  headers: {
1219
1371
  [name: string]: unknown;
@@ -1224,26 +1376,22 @@ declare interface operations {
1224
1376
  };
1225
1377
  };
1226
1378
  };
1227
- updateFirmware: {
1379
+ installFirmwareUpdate: {
1228
1380
  parameters: {
1229
- query?: {
1381
+ query: {
1230
1382
  /**
1231
- * @description Name for the update package. The update will be unpacked to /ext/update/<name>.
1232
- * @example firmware
1383
+ * @description Firmware version to install
1384
+ * @example 1.2.3
1233
1385
  */
1234
- name?: string;
1386
+ version: string;
1235
1387
  };
1236
1388
  header?: never;
1237
1389
  path?: never;
1238
1390
  cookie?: never;
1239
1391
  };
1240
- requestBody: {
1241
- content: {
1242
- "application/octet-stream": string;
1243
- };
1244
- };
1392
+ requestBody?: never;
1245
1393
  responses: {
1246
- /** @description Update initiated successfully. The device will reboot. */
1394
+ /** @description Update installation started successfully in background */
1247
1395
  200: {
1248
1396
  headers: {
1249
1397
  [name: string]: unknown;
@@ -1252,7 +1400,7 @@ declare interface operations {
1252
1400
  "application/json": components["schemas"]["SuccessResponse"];
1253
1401
  };
1254
1402
  };
1255
- /** @description Invalid parameters, invalid TAR file, or update preparation failed. */
1403
+ /** @description Version parameter missing, update not available, or version mismatch */
1256
1404
  400: {
1257
1405
  headers: {
1258
1406
  [name: string]: unknown;
@@ -1261,8 +1409,8 @@ declare interface operations {
1261
1409
  "application/json": components["schemas"]["Error"];
1262
1410
  };
1263
1411
  };
1264
- /** @description Update package too large. */
1265
- 413: {
1412
+ /** @description Update already in progress */
1413
+ 409: {
1266
1414
  headers: {
1267
1415
  [name: string]: unknown;
1268
1416
  };
@@ -1270,7 +1418,7 @@ declare interface operations {
1270
1418
  "application/json": components["schemas"]["Error"];
1271
1419
  };
1272
1420
  };
1273
- /** @description Internal server error during update process. */
1421
+ /** @description Failed to start background installation */
1274
1422
  500: {
1275
1423
  headers: {
1276
1424
  [name: string]: unknown;
@@ -1279,6 +1427,35 @@ declare interface operations {
1279
1427
  "application/json": components["schemas"]["Error"];
1280
1428
  };
1281
1429
  };
1430
+ /** @description Battery too low for update */
1431
+ 503: {
1432
+ headers: {
1433
+ [name: string]: unknown;
1434
+ };
1435
+ content: {
1436
+ "application/json": components["schemas"]["Error"];
1437
+ };
1438
+ };
1439
+ };
1440
+ };
1441
+ abortFirmwareDownload: {
1442
+ parameters: {
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
+ };
1282
1459
  };
1283
1460
  };
1284
1461
  uploadAssetWithAppId: {
@@ -1432,7 +1609,7 @@ declare interface operations {
1432
1609
  };
1433
1610
  requestBody?: never;
1434
1611
  responses: {
1435
- /** @description File uploaded successfully */
1612
+ /** @description File downloaded successfully */
1436
1613
  200: {
1437
1614
  headers: {
1438
1615
  [name: string]: unknown;
@@ -1476,7 +1653,7 @@ declare interface operations {
1476
1653
  "application/json": components["schemas"]["StorageList"];
1477
1654
  };
1478
1655
  };
1479
- /** @description Invalid parameters or directory not exists */
1656
+ /** @description Invalid parameters or directory does not exist */
1480
1657
  400: {
1481
1658
  headers: {
1482
1659
  [name: string]: unknown;
@@ -1546,7 +1723,7 @@ declare interface operations {
1546
1723
  "application/json": components["schemas"]["SuccessResponse"];
1547
1724
  };
1548
1725
  };
1549
- /** @description Invalid path or deletion failed */
1726
+ /** @description Invalid path or creation failed */
1550
1727
  400: {
1551
1728
  headers: {
1552
1729
  [name: string]: unknown;
@@ -2070,6 +2247,55 @@ declare interface operations {
2070
2247
  };
2071
2248
  };
2072
2249
  };
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: {
2271
+ parameters: {
2272
+ query?: never;
2273
+ header?: never;
2274
+ path?: never;
2275
+ cookie?: never;
2276
+ };
2277
+ requestBody?: never;
2278
+ responses: {
2279
+ /** @description Data retrieved successfully */
2280
+ 200: {
2281
+ headers: {
2282
+ [name: string]: unknown;
2283
+ };
2284
+ content: {
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"];
2295
+ };
2296
+ };
2297
+ };
2298
+ };
2073
2299
  getAccountInfo: {
2074
2300
  parameters: {
2075
2301
  query?: never;
@@ -2090,7 +2316,7 @@ declare interface operations {
2090
2316
  };
2091
2317
  };
2092
2318
  };
2093
- unlinkAccount: {
2319
+ getAccountState: {
2094
2320
  parameters: {
2095
2321
  query?: never;
2096
2322
  header?: never;
@@ -2099,18 +2325,199 @@ declare interface operations {
2099
2325
  };
2100
2326
  requestBody?: never;
2101
2327
  responses: {
2102
- /** @description Done successfully */
2328
+ /** @description Data retrieved successfully */
2329
+ 200: {
2330
+ headers: {
2331
+ [name: string]: unknown;
2332
+ };
2333
+ content: {
2334
+ "application/json": components["schemas"]["AccountState"];
2335
+ };
2336
+ };
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: {
2350
+ headers: {
2351
+ [name: string]: unknown;
2352
+ };
2353
+ content: {
2354
+ "application/json": components["schemas"]["AccountProfile"];
2355
+ };
2356
+ };
2357
+ };
2358
+ };
2359
+ setAccountProfile: {
2360
+ parameters: {
2361
+ query: {
2362
+ /** @example dev */
2363
+ profile: "dev" | "prod" | "local" | "custom";
2364
+ custom_url?: string;
2365
+ };
2366
+ header?: never;
2367
+ path?: never;
2368
+ cookie?: never;
2369
+ };
2370
+ requestBody?: never;
2371
+ responses: {
2372
+ /** @description Set successfully */
2373
+ 200: {
2374
+ headers: {
2375
+ [name: string]: unknown;
2376
+ };
2377
+ content: {
2378
+ "application/json": components["schemas"]["SuccessResponse"];
2379
+ };
2380
+ };
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 */
2446
+ 400: {
2447
+ headers: {
2448
+ [name: string]: unknown;
2449
+ };
2450
+ content: {
2451
+ "application/json": components["schemas"]["Error"];
2452
+ };
2453
+ };
2454
+ };
2455
+ };
2456
+ setTimeTimezone: {
2457
+ parameters: {
2458
+ query: {
2459
+ /**
2460
+ * @description Timezone name
2461
+ * @example Stuttgart
2462
+ */
2463
+ timezone: string;
2464
+ };
2465
+ header?: never;
2466
+ path?: never;
2467
+ cookie?: never;
2468
+ };
2469
+ requestBody?: never;
2470
+ responses: {
2471
+ /** @description Timezone set successfully */
2472
+ 200: {
2473
+ headers: {
2474
+ [name: string]: unknown;
2475
+ };
2476
+ content: {
2477
+ "application/json": components["schemas"]["SuccessResponse"];
2478
+ };
2479
+ };
2480
+ /** @description Invalid timezone offset */
2481
+ 400: {
2482
+ headers: {
2483
+ [name: string]: unknown;
2484
+ };
2485
+ content: {
2486
+ "application/json": components["schemas"]["Error"];
2487
+ };
2488
+ };
2489
+ };
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 */
2103
2501
  200: {
2104
2502
  headers: {
2105
2503
  [name: string]: unknown;
2106
2504
  };
2107
2505
  content: {
2108
- "application/json": components["schemas"]["SuccessResponse"];
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"];
2109
2516
  };
2110
2517
  };
2111
2518
  };
2112
2519
  };
2113
- linkAccount: {
2520
+ getBusySnapshot: {
2114
2521
  parameters: {
2115
2522
  query?: never;
2116
2523
  header?: never;
@@ -2119,16 +2526,16 @@ declare interface operations {
2119
2526
  };
2120
2527
  requestBody?: never;
2121
2528
  responses: {
2122
- /** @description Data retrieved successfully */
2529
+ /** @description Got snapshot successfully */
2123
2530
  200: {
2124
2531
  headers: {
2125
2532
  [name: string]: unknown;
2126
2533
  };
2127
2534
  content: {
2128
- "application/json": components["schemas"]["AccountLink"];
2535
+ "application/json": components["schemas"]["BusySnapshot"];
2129
2536
  };
2130
2537
  };
2131
- /** @description Bad request */
2538
+ /** @description Error getting snapshot */
2132
2539
  400: {
2133
2540
  headers: {
2134
2541
  [name: string]: unknown;
@@ -2139,22 +2546,20 @@ declare interface operations {
2139
2546
  };
2140
2547
  };
2141
2548
  };
2142
- setTimeTimestamp: {
2549
+ setBusySnapshot: {
2143
2550
  parameters: {
2144
- query: {
2145
- /**
2146
- * @description ISO 8601 timestamp (e.g., 2025-10-02T14:30:45 for local time or 2025-10-02T14:30:45Z for UTC)
2147
- * @example 2025-10-02T14:30:45
2148
- */
2149
- timestamp: string;
2150
- };
2551
+ query?: never;
2151
2552
  header?: never;
2152
2553
  path?: never;
2153
2554
  cookie?: never;
2154
2555
  };
2155
- requestBody?: never;
2556
+ requestBody: {
2557
+ content: {
2558
+ "application/json": components["schemas"]["BusySnapshot"];
2559
+ };
2560
+ };
2156
2561
  responses: {
2157
- /** @description Timestamp set successfully */
2562
+ /** @description Snapshot successfully set */
2158
2563
  200: {
2159
2564
  headers: {
2160
2565
  [name: string]: unknown;
@@ -2163,7 +2568,7 @@ declare interface operations {
2163
2568
  "application/json": components["schemas"]["SuccessResponse"];
2164
2569
  };
2165
2570
  };
2166
- /** @description Invalid timestamp format or value */
2571
+ /** @description Error setting snapshot */
2167
2572
  400: {
2168
2573
  headers: {
2169
2574
  [name: string]: unknown;
@@ -2174,32 +2579,46 @@ declare interface operations {
2174
2579
  };
2175
2580
  };
2176
2581
  };
2177
- setTimeTimezone: {
2582
+ getMatterCommissioningStatus: {
2178
2583
  parameters: {
2179
- query: {
2180
- /**
2181
- * @description Timezone offset in ±HH:MM format (range -12:00 to +14:00)
2182
- * @example +04:00
2183
- */
2184
- timezone: string;
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
+ };
2185
2599
  };
2600
+ };
2601
+ };
2602
+ startMatterCommissioning: {
2603
+ parameters: {
2604
+ query?: never;
2186
2605
  header?: never;
2187
2606
  path?: never;
2188
2607
  cookie?: never;
2189
2608
  };
2190
2609
  requestBody?: never;
2191
2610
  responses: {
2192
- /** @description Timezone set successfully */
2611
+ /** @description Successfully started Matter commissioning */
2193
2612
  200: {
2194
2613
  headers: {
2195
2614
  [name: string]: unknown;
2196
2615
  };
2197
2616
  content: {
2198
- "application/json": components["schemas"]["SuccessResponse"];
2617
+ "application/json": components["schemas"]["MatterCommissioningPayload"];
2199
2618
  };
2200
2619
  };
2201
- /** @description Invalid timezone offset */
2202
- 400: {
2620
+ /** @description Internal Matter service is broken */
2621
+ 503: {
2203
2622
  headers: {
2204
2623
  [name: string]: unknown;
2205
2624
  };
@@ -2225,7 +2644,7 @@ declare interface paths {
2225
2644
  };
2226
2645
  /**
2227
2646
  * Get API version information
2228
- * @description Retrieves api version
2647
+ * @description Retrieves API version
2229
2648
  */
2230
2649
  get: operations["getVersion"];
2231
2650
  put?: never;
@@ -2244,14 +2663,14 @@ declare interface paths {
2244
2663
  cookie?: never;
2245
2664
  };
2246
2665
  /**
2247
- * HTTP API access over Wi-Fi configuration get
2248
- * @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
2249
2668
  */
2250
2669
  get: operations["getHttpAccess"];
2251
2670
  put?: never;
2252
2671
  /**
2253
- * HTTP API access over Wi-Fi configuration set
2254
- * @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
2255
2674
  */
2256
2675
  post: operations["setHttpAccess"];
2257
2676
  delete?: never;
@@ -2355,6 +2774,108 @@ declare interface paths {
2355
2774
  patch?: never;
2356
2775
  trace?: never;
2357
2776
  };
2777
+ "/update/check": {
2778
+ parameters: {
2779
+ query?: never;
2780
+ header?: never;
2781
+ path?: never;
2782
+ cookie?: never;
2783
+ };
2784
+ get?: never;
2785
+ put?: never;
2786
+ /**
2787
+ * Start firmware update check
2788
+ * @description Initiates an asynchronous check for available firmware updates.
2789
+ */
2790
+ post: operations["checkFirmwareUpdate"];
2791
+ delete?: never;
2792
+ options?: never;
2793
+ head?: never;
2794
+ patch?: never;
2795
+ trace?: never;
2796
+ };
2797
+ "/update/status": {
2798
+ parameters: {
2799
+ query?: never;
2800
+ header?: never;
2801
+ path?: never;
2802
+ cookie?: never;
2803
+ };
2804
+ /**
2805
+ * Get firmware update status
2806
+ * @description Returns current update and check status including progress information.
2807
+ */
2808
+ get: operations["getFirmwareUpdateStatus"];
2809
+ put?: never;
2810
+ post?: never;
2811
+ delete?: never;
2812
+ options?: never;
2813
+ head?: never;
2814
+ patch?: never;
2815
+ trace?: never;
2816
+ };
2817
+ "/update/changelog": {
2818
+ parameters: {
2819
+ query?: never;
2820
+ header?: never;
2821
+ path?: never;
2822
+ cookie?: never;
2823
+ };
2824
+ /**
2825
+ * Get update changelog
2826
+ * @description Returns the changelog for a specific firmware version.
2827
+ */
2828
+ get: operations["getUpdateChangelog"];
2829
+ put?: never;
2830
+ post?: never;
2831
+ delete?: never;
2832
+ options?: never;
2833
+ head?: never;
2834
+ patch?: never;
2835
+ trace?: never;
2836
+ };
2837
+ "/update/install": {
2838
+ parameters: {
2839
+ query?: never;
2840
+ header?: never;
2841
+ path?: never;
2842
+ cookie?: never;
2843
+ };
2844
+ get?: never;
2845
+ put?: 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"];
2853
+ delete?: never;
2854
+ options?: never;
2855
+ head?: never;
2856
+ patch?: never;
2857
+ trace?: never;
2858
+ };
2859
+ "/update/abort_download": {
2860
+ parameters: {
2861
+ query?: never;
2862
+ header?: never;
2863
+ path?: never;
2864
+ cookie?: never;
2865
+ };
2866
+ get?: never;
2867
+ put?: never;
2868
+ /**
2869
+ * Abort ongoing firmware download
2870
+ * @description Signals the updater to abort an ongoing download operation.
2871
+ */
2872
+ post: operations["abortFirmwareDownload"];
2873
+ delete?: never;
2874
+ options?: never;
2875
+ head?: never;
2876
+ patch?: never;
2877
+ trace?: never;
2878
+ };
2358
2879
  "/assets/upload": {
2359
2880
  parameters: {
2360
2881
  query?: never;
@@ -2582,7 +3103,7 @@ declare interface paths {
2582
3103
  put?: never;
2583
3104
  /**
2584
3105
  * Set audio volume
2585
- * @description Get audio volume value
3106
+ * @description Set audio volume value
2586
3107
  */
2587
3108
  post: operations["setAudioVolume"];
2588
3109
  delete?: never;
@@ -2599,7 +3120,7 @@ declare interface paths {
2599
3120
  cookie?: never;
2600
3121
  };
2601
3122
  /**
2602
- * Input evnts streaming
3123
+ * Input events streaming
2603
3124
  * @description Start WebSocket session for input events streaming
2604
3125
  */
2605
3126
  get: operations["connectInputWebSocket"];
@@ -2664,7 +3185,7 @@ declare interface paths {
2664
3185
  };
2665
3186
  /**
2666
3187
  * Get power status
2667
- * @description Get system status
3188
+ * @description Get power status
2668
3189
  */
2669
3190
  get: operations["getStatusPower"];
2670
3191
  put?: never;
@@ -2675,27 +3196,6 @@ declare interface paths {
2675
3196
  patch?: never;
2676
3197
  trace?: never;
2677
3198
  };
2678
- "/ws_test": {
2679
- parameters: {
2680
- query?: never;
2681
- header?: never;
2682
- path?: never;
2683
- cookie?: never;
2684
- };
2685
- /**
2686
- * WebSocket test endpoint
2687
- * @description WebSocket connection for real-time communication and testing.
2688
- * Upgrade from HTTP to WebSocket protocol is required.
2689
- */
2690
- get: operations["connectWebSocket"];
2691
- put?: never;
2692
- post?: never;
2693
- delete?: never;
2694
- options?: never;
2695
- head?: never;
2696
- patch?: never;
2697
- trace?: never;
2698
- };
2699
3199
  "/wifi/status": {
2700
3200
  parameters: {
2701
3201
  query?: never;
@@ -2790,7 +3290,7 @@ declare interface paths {
2790
3290
  };
2791
3291
  get?: never;
2792
3292
  put?: never;
2793
- /** @description Attempts to connect to Wi-Fi using config */
3293
+ /** @description Disconnects from Wi-Fi */
2794
3294
  post: {
2795
3295
  parameters: {
2796
3296
  query?: never;
@@ -2878,7 +3378,7 @@ declare interface paths {
2878
3378
  path?: never;
2879
3379
  cookie?: never;
2880
3380
  };
2881
- /** Get single frame for required screen */
3381
+ /** Get single frame for requested screen */
2882
3382
  get: {
2883
3383
  parameters: {
2884
3384
  query: {
@@ -2933,8 +3433,8 @@ declare interface paths {
2933
3433
  * Screen streaming WebSocket endpoint
2934
3434
  * @description WebSocket connection for real-time screen streaming.
2935
3435
  * Upgrade from HTTP to WebSocket protocol is required.
2936
- * After connection client must send desired display id
2937
- * as json {"display": 0}
3436
+ * After connection, client must send desired display ID
3437
+ * as JSON {"display": 0}
2938
3438
  */
2939
3439
  get: operations["connectWebSocket"];
2940
3440
  put?: never;
@@ -2995,7 +3495,7 @@ declare interface paths {
2995
3495
  put?: never;
2996
3496
  /**
2997
3497
  * Disable BLE
2998
- * @description Stop advertising
3498
+ * @description Stops advertising
2999
3499
  */
3000
3500
  post: {
3001
3501
  parameters: {
@@ -3055,7 +3555,7 @@ declare interface paths {
3055
3555
  "application/json": components["schemas"]["SuccessResponse"];
3056
3556
  };
3057
3557
  };
3058
- /** @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 */
3059
3559
  503: {
3060
3560
  headers: {
3061
3561
  [name: string]: unknown;
@@ -3134,11 +3634,7 @@ declare interface paths {
3134
3634
  path?: never;
3135
3635
  cookie?: never;
3136
3636
  };
3137
- /**
3138
- * Get MQTT status
3139
- * @description Retrieves MQTT status and linked account data
3140
- */
3141
- get: operations["getAccountInfo"];
3637
+ get?: never;
3142
3638
  put?: never;
3143
3639
  post?: never;
3144
3640
  /**
@@ -3171,43 +3667,200 @@ declare interface paths {
3171
3667
  patch?: never;
3172
3668
  trace?: never;
3173
3669
  };
3174
- "/time/timestamp": {
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
+ };
3734
+ "/time/timestamp": {
3735
+ parameters: {
3736
+ query?: never;
3737
+ header?: never;
3738
+ path?: never;
3739
+ cookie?: never;
3740
+ };
3741
+ get?: never;
3742
+ put?: never;
3743
+ /**
3744
+ * Set current timestamp
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.
3746
+ */
3747
+ post: operations["setTimeTimestamp"];
3748
+ delete?: never;
3749
+ options?: never;
3750
+ head?: never;
3751
+ patch?: never;
3752
+ trace?: never;
3753
+ };
3754
+ "/time/timezone": {
3755
+ parameters: {
3756
+ query?: never;
3757
+ header?: never;
3758
+ path?: never;
3759
+ cookie?: never;
3760
+ };
3761
+ /**
3762
+ * Get timezone
3763
+ * @description Get current timezone name
3764
+ */
3765
+ get: operations["getTimeTimezone"];
3766
+ put?: never;
3767
+ /**
3768
+ * Set timezone
3769
+ * @description Sets the timezone name. Use /time/tzlist to get available names list.
3770
+ */
3771
+ post: operations["setTimeTimezone"];
3772
+ delete?: never;
3773
+ options?: never;
3774
+ head?: never;
3775
+ patch?: never;
3776
+ trace?: never;
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": {
3175
3799
  parameters: {
3176
3800
  query?: never;
3177
3801
  header?: never;
3178
3802
  path?: never;
3179
3803
  cookie?: never;
3180
3804
  };
3181
- get?: never;
3182
- put?: never;
3183
3805
  /**
3184
- * Set current timestamp
3185
- * @description Sets the RTC timestamp in ISO 8601 format.
3186
- * - Without 'Z': treated as local time
3187
- * - With 'Z': treated as UTC and converted to local time using current timezone offset
3806
+ * Get BUSY timer snapshot
3807
+ * @description Gets the current state of the BUSY timer in snapshot form
3188
3808
  */
3189
- post: operations["setTimeTimestamp"];
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;
3190
3816
  delete?: never;
3191
3817
  options?: never;
3192
3818
  head?: never;
3193
3819
  patch?: never;
3194
3820
  trace?: never;
3195
3821
  };
3196
- "/time/timezone": {
3822
+ "/matter/commissioning": {
3197
3823
  parameters: {
3198
3824
  query?: never;
3199
3825
  header?: never;
3200
3826
  path?: never;
3201
3827
  cookie?: never;
3202
3828
  };
3203
- get?: never;
3829
+ /** Smart home commissioning status */
3830
+ get: operations["getMatterCommissioningStatus"];
3204
3831
  put?: never;
3205
- /**
3206
- * Set timezone offset
3207
- * @description Sets the timezone offset in ±HH:MM format
3208
- */
3209
- post: operations["setTimeTimezone"];
3210
- delete?: 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
+ };
3211
3864
  options?: never;
3212
3865
  head?: never;
3213
3866
  patch?: never;
@@ -3219,6 +3872,10 @@ declare type RequiredIpConfig = RequireKeys<NonNullable<CamelizedRequest["ipConf
3219
3872
 
3220
3873
  declare type RequireKeys<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
3221
3874
 
3875
+ export declare interface ScreenFrameGetParams extends TimeoutOptions {
3876
+ display: paths["/screen"]["get"]["parameters"]["query"]["display"];
3877
+ }
3878
+
3222
3879
  export declare class ScreenStream {
3223
3880
  private config;
3224
3881
  readonly addr: string;
@@ -3247,6 +3904,52 @@ export declare interface ScreenStreamConfig {
3247
3904
  apiSemver?: ApiSemver;
3248
3905
  }
3249
3906
 
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>;
3951
+ }
3952
+
3250
3953
  declare type SnakeToCamel<S extends string> = S extends `${infer Head}_${infer Tail}` ? `${Head}${Capitalize<SnakeToCamel<Tail>>}` : S;
3251
3954
 
3252
3955
  export declare type Status = components["schemas"]["Status"];
@@ -3274,6 +3977,72 @@ export declare type StorageList = components["schemas"]["StorageList"];
3274
3977
 
3275
3978
  export declare type StorageListElement = components["schemas"]["StorageListElement"];
3276
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
+
3277
4046
  export declare interface StorageReadDirectoryParams extends TimeoutOptions {
3278
4047
  path: operations["listStorageFiles"]["parameters"]["query"]["path"];
3279
4048
  }
@@ -3293,25 +4062,203 @@ export declare interface StorageUploadFileParams extends TimeoutOptions {
3293
4062
 
3294
4063
  export declare type SuccessResponse = components["schemas"]["SuccessResponse"];
3295
4064
 
3296
- export declare interface SystemTimestampParams extends TimeoutOptions {
3297
- timestamp: operations["setTimeTimestamp"]["parameters"]["query"]["timestamp"];
3298
- }
3299
-
3300
- export declare interface SystemTimezoneParams extends TimeoutOptions {
3301
- timezone: operations["setTimeTimezone"]["parameters"]["query"]["timezone"];
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>;
3302
4114
  }
3303
4115
 
3304
4116
  export declare interface SystemUpdateParams extends TimeoutOptions {
3305
- name?: string;
3306
4117
  file: BusyFile;
3307
4118
  }
3308
4119
 
3309
- declare interface TimeoutOptions {
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 {
3310
4174
  timeout?: number;
3311
4175
  }
3312
4176
 
3313
4177
  export declare type TimestampInfo = components["schemas"]["TimestampInfo"];
3314
4178
 
4179
+ export declare interface TimeTimestampParams extends TimeoutOptions {
4180
+ timestamp: operations["setTimeTimestamp"]["parameters"]["query"]["timestamp"];
4181
+ }
4182
+
4183
+ export declare interface TimeTimezoneParams extends TimeoutOptions {
4184
+ timezone: operations["setTimeTimezone"]["parameters"]["query"]["timezone"];
4185
+ }
4186
+
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;
4197
+ }
4198
+
4199
+ export declare interface UpdateInstallParams extends TimeoutOptions {
4200
+ version: string;
4201
+ }
4202
+
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>;
4258
+ }
4259
+
4260
+ export declare type UpdateStatus = components["schemas"]["UpdateStatus"];
4261
+
3315
4262
  export declare type VersionInfo = components["schemas"]["VersionInfo"];
3316
4263
 
3317
4264
  export declare type WifiConnectParams = RequireKeys<Omit<CamelizedRequest, "ipConfig"> & {
@@ -3324,6 +4271,53 @@ export declare type WifiIpMethod = components["schemas"]["WifiIpMethod"];
3324
4271
 
3325
4272
  export declare type WifiIpType = components["schemas"]["WifiIpType"];
3326
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
+
3327
4321
  export declare type WifiNetwork = components["schemas"]["Network"];
3328
4322
 
3329
4323
  export declare type WifiNetworkResponse = components["schemas"]["NetworkResponse"];