@busy-app/busy-lib 0.5.0 → 0.6.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
@@ -1,3 +1,7 @@
1
+ export declare type AccountInfo = components["schemas"]["AccountInfo"];
2
+
3
+ export declare type AccountLink = components["schemas"]["AccountLink"];
4
+
1
5
  declare type ApiKey = string;
2
6
 
3
7
  declare type ApiSemver = components["schemas"]["VersionInfo"]["api_semver"];
@@ -34,6 +38,8 @@ declare interface BaseConfig_2 {
34
38
  apiSemver?: ApiSemver;
35
39
  }
36
40
 
41
+ export declare type BleStatusResponse = components["schemas"]["BleStatusResponse"];
42
+
37
43
  declare type Brightness = number | "auto";
38
44
 
39
45
  /**
@@ -109,6 +115,46 @@ export declare class BusyBar {
109
115
  * @returns {Promise<StatusPower>} Current power status.
110
116
  */
111
117
  powerStatus(): Promise<StatusPower>;
118
+ /**
119
+ * Gets current device timestamp with timezone.
120
+ *
121
+ * @returns {Promise<TimestampInfo>} Current device timestamp as an ISO 8601 string.
122
+ */
123
+ getTime(): Promise<TimestampInfo>;
124
+ /**
125
+ * Sets the current device timestamp.
126
+ *
127
+ * @param {SetTimestampParams} params - The parameters for setting the timestamp.
128
+ * @param {SetTimestampParams['timestamp']} params.timestamp - The new timestamp (ISO 8601 string).
129
+ * @returns {Promise<SuccessResponse>} A success response if the timestamp was set.
130
+ */
131
+ setTimestamp(params: SystemTimestampParams): Promise<SuccessResponse>;
132
+ /**
133
+ * Sets the device timezone.
134
+ *
135
+ * @param {SetTimezoneParams} params - The parameters for setting the timezone.
136
+ * @param {SetTimezoneParams['timezone']} params.timezone - The new timezone identifier (IANA TZ string).
137
+ * @returns {Promise<SuccessResponse>} A success response if the timezone was set.
138
+ */
139
+ setTimezone(params: SystemTimezoneParams): Promise<SuccessResponse>;
140
+ /**
141
+ * Gets the status of the MQTT account linked to the device.
142
+ *
143
+ * @returns {Promise<AccountInfo>} Information about the current MQTT account status.
144
+ */
145
+ getMqttStatus(): Promise<AccountInfo>;
146
+ /**
147
+ * Unlinks the current account from the device.
148
+ *
149
+ * @returns {Promise<SuccessResponse>} Result of the account unlink operation.
150
+ */
151
+ unlinkAccount(): Promise<SuccessResponse>;
152
+ /**
153
+ * Links an account to the device.
154
+ *
155
+ * @returns {Promise<AccountLink>} Information about the account link operation.
156
+ */
157
+ linkAccount(): Promise<AccountLink>;
112
158
  /**
113
159
  * Uploads an asset to the device.
114
160
  *
@@ -158,15 +204,23 @@ export declare class BusyBar {
158
204
  */
159
205
  stopSound(): Promise<SuccessResponse>;
160
206
  /**
161
- * Enables the device's Wi-Fi module.
207
+ * @deprecated since 0.5.0 will be removed in 0.7.0.
162
208
  *
163
- * @returns {Promise<SuccessResponse>} Result of the enable operation.
209
+ * This method is no longer supported and does nothing.
210
+ *
211
+ * Works only with BusyLib v0.5.0 and device firmware v0.3.0.
212
+ *
213
+ * Always throws an error.
164
214
  */
165
215
  enableWifi(): Promise<SuccessResponse>;
166
216
  /**
167
- * Disables the device's Wi-Fi module.
217
+ * @deprecated since 0.5.0 will be removed in 0.7.0.
168
218
  *
169
- * @returns {Promise<SuccessResponse>} Result of the disable operation.
219
+ * This method is no longer supported and does nothing.
220
+ *
221
+ * Works only with BusyLib v0.5.0 and device firmware v0.3.0.
222
+ *
223
+ * Always throws an error.
170
224
  */
171
225
  disableWifi(): Promise<SuccessResponse>;
172
226
  /**
@@ -204,9 +258,13 @@ export declare class BusyBar {
204
258
  */
205
259
  networksWifi(): Promise<WifiNetworkResponse>;
206
260
  /**
207
- * Removes the saved Wi-Fi configuration (forgets the network).
261
+ * @deprecated since 0.5.0 will be removed in 0.7.0.
262
+ *
263
+ * This method is no longer supported and does nothing.
208
264
  *
209
- * @returns {Promise<never>} Result of the forget operation.
265
+ * Works only with BusyLib v0.5.0 and device firmware v0.3.0.
266
+ *
267
+ * Always throws an error.
210
268
  */
211
269
  forgetWifi(): Promise<never>;
212
270
  /**
@@ -251,6 +309,12 @@ export declare class BusyBar {
251
309
  * @returns {Promise<SuccessResponse>} Result of the create operation.
252
310
  */
253
311
  createDirectory(params: CreateDirectoryParams): Promise<SuccessResponse>;
312
+ /**
313
+ * Gets the current status of the device's internal storage.
314
+ *
315
+ * @returns {Promise<StorageStatus>} Current storage status information.
316
+ */
317
+ statusStorage(): Promise<StorageStatus>;
254
318
  /**
255
319
  * Gets the current display brightness settings for the device.
256
320
  *
@@ -297,6 +361,20 @@ export declare class BusyBar {
297
361
  * @returns {Promise<SuccessResponse>} Result of the set operation.
298
362
  */
299
363
  setHttpAccess(params: HttpAccessParams): Promise<SuccessResponse>;
364
+ /**
365
+ * Gets the current device name.
366
+ *
367
+ * @returns {Promise<NameInfo>} The current device name information.
368
+ */
369
+ getName(): Promise<NameInfo>;
370
+ /**
371
+ * Sets the device name.
372
+ *
373
+ * @param {NameParams} params - The parameters for setting the device name.
374
+ * @param {NameParams['name']} params.name - The new device name.
375
+ * @returns {Promise<SuccessResponse>} Result of setting the device name.
376
+ */
377
+ setName(params: NameParams): Promise<SuccessResponse>;
300
378
  /**
301
379
  * Sets API key for all subsequent requests.
302
380
  * @param {string} key - API key to use in "X-API-Token" header.
@@ -312,6 +390,18 @@ export declare class BusyBar {
312
390
  * @returns {Promise<SuccessResponse>} Result of the disable operation.
313
391
  */
314
392
  disableBle(): Promise<SuccessResponse>;
393
+ /**
394
+ * Removes all BLE pairings from the device.
395
+ *
396
+ * @returns {Promise<SuccessResponse>} Result of the BLE pairing removal operation.
397
+ */
398
+ pairingBle(): Promise<SuccessResponse>;
399
+ /**
400
+ * Gets the current BLE module status.
401
+ *
402
+ * @returns {Promise<BleStatusResponse>} Current BLE status information.
403
+ */
404
+ statusBle(): Promise<BleStatusResponse>;
315
405
  /**
316
406
  * Sends a button press.
317
407
  *
@@ -344,19 +434,23 @@ declare interface components {
344
434
  */
345
435
  result: string;
346
436
  };
347
- /** @example {
437
+ /**
438
+ * @example {
348
439
  * "error": "Invalid parameter",
349
440
  * "code": 400
350
- * } */
441
+ * }
442
+ */
351
443
  Error: {
352
444
  /** @description Error message */
353
445
  error: string;
354
446
  /** @description Error code */
355
447
  code?: number;
356
448
  };
357
- /** @example {
449
+ /**
450
+ * @example {
358
451
  * "api_semver": "0.0.0"
359
- * } */
452
+ * }
453
+ */
360
454
  VersionInfo: {
361
455
  /**
362
456
  * @description Api SemVer
@@ -364,6 +458,18 @@ declare interface components {
364
458
  */
365
459
  api_semver: string;
366
460
  };
461
+ /**
462
+ * @example {
463
+ * "name": "BUSY bar"
464
+ * }
465
+ */
466
+ NameInfo: {
467
+ /**
468
+ * @description Device name
469
+ * @example BUSY bar
470
+ */
471
+ name: string;
472
+ };
367
473
  HttpAccessInfo: {
368
474
  /**
369
475
  * @description Access mode
@@ -377,7 +483,8 @@ declare interface components {
377
483
  */
378
484
  key_valid?: Record<string, never>;
379
485
  };
380
- /** @example {
486
+ /**
487
+ * @example {
381
488
  * "list": [
382
489
  * {
383
490
  * "type": "file",
@@ -389,11 +496,23 @@ declare interface components {
389
496
  * "name": "assets"
390
497
  * }
391
498
  * ]
392
- * } */
499
+ * }
500
+ */
393
501
  StorageList: {
394
502
  /** @description Array of elements to display */
395
503
  list: components["schemas"]["StorageListElement"][];
396
504
  };
505
+ StorageStatus: {
506
+ /** @example 123456 */
507
+ used_bytes?: number;
508
+ /** @example 654321 */
509
+ free_bytes?: number;
510
+ /**
511
+ * @description Total size of the parition
512
+ * @example 777777
513
+ */
514
+ total_bytes?: number;
515
+ };
397
516
  StorageListElement: {
398
517
  /**
399
518
  * @description Element type
@@ -432,21 +551,39 @@ declare interface components {
432
551
  */
433
552
  file: string;
434
553
  };
435
- /** @example {
554
+ /**
555
+ * @example {
436
556
  * "app_id": "my_app",
437
557
  * "elements": [
438
558
  * {
439
559
  * "id": "0",
440
- * "timeout": 5,
560
+ * "timeout": 6,
561
+ * "align": "center",
562
+ * "x": 36,
563
+ * "y": 10,
441
564
  * "type": "text",
442
- * "text": "Hello, world!",
443
- * "x": 0,
444
- * "y": 0,
565
+ * "text": "Hello, World! Long text",
566
+ * "font": "medium",
567
+ * "color": "#FFFFFFFF",
568
+ * "width": 72,
569
+ * "scroll_rate": 160,
445
570
  * "display": "front"
446
571
  * },
447
572
  * {
448
573
  * "id": "1",
449
574
  * "timeout": 6,
575
+ * "align": "top_mid",
576
+ * "x": 36,
577
+ * "y": 0,
578
+ * "type": "text",
579
+ * "text": "top_mid",
580
+ * "font": "small",
581
+ * "color": "#AAFF00FF",
582
+ * "display": "front"
583
+ * },
584
+ * {
585
+ * "id": "2",
586
+ * "timeout": 6,
450
587
  * "type": "image",
451
588
  * "path": "data.png",
452
589
  * "x": 0,
@@ -454,7 +591,8 @@ declare interface components {
454
591
  * "display": "back"
455
592
  * }
456
593
  * ]
457
- * } */
594
+ * }
595
+ */
458
596
  DisplayElements: {
459
597
  /**
460
598
  * @description Application ID for organizing assets
@@ -467,27 +605,49 @@ declare interface components {
467
605
  DisplayElement: {
468
606
  /** @description Unique identifier for the element */
469
607
  id: string;
470
- /** @description Time in seconds the element should be displayed (0 for no timeout) */
608
+ /** @description Time in seconds the element should be displayed (0 for no timeout). Mutually exclusive with display_until. */
471
609
  timeout?: number;
610
+ /** @description The element will be hidden when system time reaches the specified Unix timestamp (in seconds). Mutually exclusive with timeout. */
611
+ display_until?: string;
472
612
  /**
473
613
  * @description Type of display element
474
614
  * @enum {string}
475
615
  */
476
616
  type: "text" | "image";
477
- /** @description X coordinate for placement on display */
478
- x: number;
479
- /** @description Y coordinate for placement on display */
480
- y: number;
617
+ /** @description X coordinate of selected anchor point relative to top-left of display */
618
+ x?: number;
619
+ /** @description Y coordinate of selected anchor point relative to top-left of display */
620
+ y?: number;
481
621
  /**
482
622
  * @description Which display to show the element on (for dual-display devices)
483
623
  * @default front
484
624
  * @enum {string}
485
625
  */
486
626
  display: "front" | "back";
627
+ /**
628
+ * @description Anchor point of element. Also use `x` and `y` to position element.
629
+ * @enum {string}
630
+ */
631
+ align?: "top_left" | "top_mid" | "top_right" | "mid_left" | "center" | "mid_right" | "bottom_left" | "bottom_mid" | "bottom_right";
487
632
  };
488
633
  TextElement: Omit<components["schemas"]["DisplayElement"], "type"> & {
489
634
  /** @description Text content to display */
490
635
  text: string;
636
+ /**
637
+ * @description One of the available fonts to display the text in
638
+ * @default tiny5_8
639
+ * @enum {string}
640
+ */
641
+ font: "small" | "medium" | "medium_condensed" | "big";
642
+ /**
643
+ * @description Color to display the text in, in #RRGGBBAA format
644
+ * @default #FFFFFFFF
645
+ */
646
+ color: string;
647
+ /** @description Width of the label */
648
+ width?: number;
649
+ /** @description Scroll rate in characters per minute */
650
+ scroll_rate?: number;
491
651
  } & {
492
652
  /**
493
653
  * @description discriminator enum property added by openapi-typescript
@@ -495,10 +655,13 @@ declare interface components {
495
655
  */
496
656
  type: "text";
497
657
  };
498
- ImageElement: Omit<components["schemas"]["DisplayElement"], "type"> & {
658
+ ImageElement: Omit<components["schemas"]["DisplayElement"], "type"> & ({
499
659
  /** @description Path to the image file in the app's assets */
500
- path: string;
501
- } & {
660
+ path?: string;
661
+ } | {
662
+ /** @description Identifier of builtin image */
663
+ builtin_image?: string;
664
+ }) & {
502
665
  /**
503
666
  * @description discriminator enum property added by openapi-typescript
504
667
  * @enum {string}
@@ -524,6 +687,13 @@ declare interface components {
524
687
  */
525
688
  volume?: number;
526
689
  };
690
+ TimestampInfo: {
691
+ /**
692
+ * @description ISO 8601 formatted timestamp with timezone
693
+ * @example 2025-10-02T14:30:45+04:00
694
+ */
695
+ timestamp: string;
696
+ };
527
697
  Status: {
528
698
  system?: components["schemas"]["StatusSystem"];
529
699
  power?: components["schemas"]["StatusPower"];
@@ -587,7 +757,7 @@ declare interface components {
587
757
  * @example WPA3
588
758
  * @enum {string}
589
759
  */
590
- WifiSecurityMethod: "Open" | "WPA" | "WPA2" | "WEP" | "WPA (Enterprise)" | "WPA2 (Enterprise)" | "WPA/WPA2" | "WPA3" | "WPA2/WPA3" | "WPA3 (Enterprise)" | "WPA2/WPA3 (Enterprise)";
760
+ WifiSecurityMethod: "Open" | "WPA" | "WPA2" | "WEP" | "WPA/WPA2" | "WPA3" | "WPA2/WPA3";
591
761
  /**
592
762
  * @example dhcp
593
763
  * @enum {string}
@@ -607,12 +777,18 @@ declare interface components {
607
777
  };
608
778
  StatusResponse: {
609
779
  /**
610
- * @example enabled
780
+ * @example disconnected
611
781
  * @enum {string}
612
782
  */
613
- state?: "disabled" | "enabled" | "connected";
783
+ state?: "unknown" | "disconnected" | "connected" | "connecting" | "disconnecting";
614
784
  /** @example Your_WIFI_SSID */
615
785
  ssid?: string;
786
+ /** @example EC:5A:00:0B:55:1D */
787
+ bssid?: string;
788
+ /** @example 3 */
789
+ channel?: number;
790
+ /** @example -43 */
791
+ rssi?: number;
616
792
  security?: components["schemas"]["WifiSecurityMethod"];
617
793
  ip_config?: {
618
794
  ip_method?: components["schemas"]["WifiIpMethod"];
@@ -629,7 +805,6 @@ declare interface components {
629
805
  security?: components["schemas"]["WifiSecurityMethod"];
630
806
  ip_config?: {
631
807
  ip_method?: components["schemas"]["WifiIpMethod"];
632
- ip_type?: components["schemas"]["WifiIpType"];
633
808
  /** @example 192.168.50.5 */
634
809
  address?: string;
635
810
  /** @example 255.255.255.0 */
@@ -648,6 +823,27 @@ declare interface components {
648
823
  * @description Frame for requested display encoded in base64
649
824
  */
650
825
  ScreenResponse: string;
826
+ AccountInfo: {
827
+ /**
828
+ * @example linked
829
+ * @enum {string}
830
+ */
831
+ state?: "error" | "disconnected" | "not_linked" | "linked";
832
+ /** @example 12345678-9abc-def0-1234-56789abcdef0 */
833
+ id?: string;
834
+ /** @example name@example.com */
835
+ email?: string;
836
+ };
837
+ AccountLink: {
838
+ /** @example ABCD */
839
+ code?: string;
840
+ /** @example 1761060863 */
841
+ expires_at?: number;
842
+ };
843
+ BleStatusResponse: {
844
+ /** @example connected */
845
+ state?: string;
846
+ };
651
847
  };
652
848
  responses: never;
653
849
  parameters: never;
@@ -662,12 +858,6 @@ declare interface CreateDirectoryParams {
662
858
  export { CreateDirectoryParams }
663
859
  export { CreateDirectoryParams as StorageCreateDirectoryParams }
664
860
 
665
- declare type CustomElement = CustomTextElement | CustomImageElement;
666
-
667
- declare type CustomImageElement = MakeOptional<components["schemas"]["ImageElement"], OptionalFields>;
668
-
669
- declare type CustomTextElement = MakeOptional<components["schemas"]["TextElement"], OptionalFields>;
670
-
671
861
  declare type DataListener = (data: Uint8Array) => void;
672
862
 
673
863
  declare type DeepCamelize<T> = T extends (...args: any[]) => any ? T : T extends Array<infer U> ? Array<DeepCamelize<U>> : T extends object ? {
@@ -691,8 +881,8 @@ export declare interface DisplayBrightnessParams {
691
881
  }
692
882
 
693
883
  export declare interface DisplayDrawParams {
694
- appId: paths["/display/draw"]["post"]["requestBody"]["content"]["application/json"]["app_id"];
695
- elements: CustomElement[];
884
+ appId: components["schemas"]["DisplayElements"]["app_id"];
885
+ elements: components["schemas"]["DisplayElements"]["elements"];
696
886
  }
697
887
 
698
888
  declare interface DownloadFileParams {
@@ -763,7 +953,11 @@ declare interface LocalConfig_2 extends BaseConfig_2 {
763
953
  barUrl: string;
764
954
  }
765
955
 
766
- declare type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
956
+ export declare type NameInfo = components["schemas"]["NameInfo"];
957
+
958
+ export declare interface NameParams {
959
+ name: NameInfo["name"];
960
+ }
767
961
 
768
962
  declare interface operations {
769
963
  getVersion: {
@@ -1188,6 +1382,35 @@ declare interface operations {
1188
1382
  };
1189
1383
  };
1190
1384
  };
1385
+ getStorageStatus: {
1386
+ parameters: {
1387
+ query?: never;
1388
+ header?: never;
1389
+ path?: never;
1390
+ cookie?: never;
1391
+ };
1392
+ requestBody?: never;
1393
+ responses: {
1394
+ /** @description Storage status queried successfully */
1395
+ 200: {
1396
+ headers: {
1397
+ [name: string]: unknown;
1398
+ };
1399
+ content: {
1400
+ "application/json": components["schemas"]["StorageStatus"];
1401
+ };
1402
+ };
1403
+ /** @description Invalid parameters or storage doesn't exist */
1404
+ 400: {
1405
+ headers: {
1406
+ [name: string]: unknown;
1407
+ };
1408
+ content: {
1409
+ "application/json": components["schemas"]["Error"];
1410
+ };
1411
+ };
1412
+ };
1413
+ };
1191
1414
  drawOnDisplay: {
1192
1415
  parameters: {
1193
1416
  query?: never;
@@ -1232,7 +1455,13 @@ declare interface operations {
1232
1455
  };
1233
1456
  clearDisplay: {
1234
1457
  parameters: {
1235
- query?: never;
1458
+ query?: {
1459
+ /**
1460
+ * @description Application identifier
1461
+ * @example my_app
1462
+ */
1463
+ app_id?: string;
1464
+ };
1236
1465
  header?: never;
1237
1466
  path?: never;
1238
1467
  cookie?: never;
@@ -1495,7 +1724,7 @@ declare interface operations {
1495
1724
  * @description Key name
1496
1725
  * @example ok
1497
1726
  */
1498
- key: "up" | "down" | "ok" | "back" | "start" | "busy" | "status" | "off" | "apps" | "settings";
1727
+ key: "up" | "down" | "ok" | "back" | "start" | "busy" | "custom" | "off" | "apps" | "settings";
1499
1728
  };
1500
1729
  header?: never;
1501
1730
  path?: never;
@@ -1637,111 +1866,352 @@ declare interface operations {
1637
1866
  };
1638
1867
  };
1639
1868
  };
1640
- }
1641
-
1642
- declare type OptionalFields = "timeout" | "x" | "y" | "display";
1643
-
1644
- /**
1645
- * This file was auto-generated by openapi-typescript.
1646
- * Do not make direct changes to the file.
1647
- */
1648
- declare interface paths {
1649
- "/version": {
1869
+ getTime: {
1650
1870
  parameters: {
1651
1871
  query?: never;
1652
1872
  header?: never;
1653
1873
  path?: never;
1654
1874
  cookie?: never;
1655
1875
  };
1656
- /**
1657
- * Get API version information
1658
- * @description Retrieves api version
1659
- */
1660
- get: operations["getVersion"];
1661
- put?: never;
1662
- post?: never;
1663
- delete?: never;
1664
- options?: never;
1665
- head?: never;
1666
- patch?: never;
1667
- trace?: never;
1876
+ requestBody?: never;
1877
+ responses: {
1878
+ /** @description Timestamp retrieved successfully */
1879
+ 200: {
1880
+ headers: {
1881
+ [name: string]: unknown;
1882
+ };
1883
+ content: {
1884
+ "application/json": components["schemas"]["TimestampInfo"];
1885
+ };
1886
+ };
1887
+ /** @description Bad request */
1888
+ 400: {
1889
+ headers: {
1890
+ [name: string]: unknown;
1891
+ };
1892
+ content: {
1893
+ "application/json": components["schemas"]["Error"];
1894
+ };
1895
+ };
1896
+ };
1668
1897
  };
1669
- "/access": {
1898
+ getAccountInfo: {
1670
1899
  parameters: {
1671
1900
  query?: never;
1672
1901
  header?: never;
1673
1902
  path?: never;
1674
1903
  cookie?: never;
1675
1904
  };
1676
- /**
1677
- * HTTP API access over Wi-Fi configuration get
1678
- * @description HTTP API access over Wi-Fi configuration get
1679
- */
1680
- get: operations["getHttpAccess"];
1681
- put?: never;
1682
- /**
1683
- * HTTP API access over Wi-Fi configuration set
1684
- * @description HTTP API access over Wi-Fi configuration set
1685
- */
1686
- post: operations["setHttpAccess"];
1687
- delete?: never;
1688
- options?: never;
1689
- head?: never;
1690
- patch?: never;
1691
- trace?: never;
1905
+ requestBody?: never;
1906
+ responses: {
1907
+ /** @description Data retrieved successfully */
1908
+ 200: {
1909
+ headers: {
1910
+ [name: string]: unknown;
1911
+ };
1912
+ content: {
1913
+ "application/json": components["schemas"]["AccountInfo"];
1914
+ };
1915
+ };
1916
+ };
1692
1917
  };
1693
- "/update": {
1918
+ unlinkAccount: {
1694
1919
  parameters: {
1695
1920
  query?: never;
1696
1921
  header?: never;
1697
1922
  path?: never;
1698
1923
  cookie?: never;
1699
1924
  };
1700
- get?: never;
1701
- put?: never;
1702
- /**
1703
- * Update firmware
1704
- * @description Uploads a firmware update package (TAR file) and initiates the update process.
1705
- */
1706
- post: operations["updateFirmware"];
1707
- delete?: never;
1708
- options?: never;
1709
- head?: never;
1710
- patch?: never;
1711
- trace?: never;
1925
+ requestBody?: never;
1926
+ responses: {
1927
+ /** @description Done successfully */
1928
+ 200: {
1929
+ headers: {
1930
+ [name: string]: unknown;
1931
+ };
1932
+ content: {
1933
+ "application/json": components["schemas"]["SuccessResponse"];
1934
+ };
1935
+ };
1936
+ };
1712
1937
  };
1713
- "/assets/upload": {
1938
+ linkAccount: {
1714
1939
  parameters: {
1715
1940
  query?: never;
1716
1941
  header?: never;
1717
1942
  path?: never;
1718
1943
  cookie?: never;
1719
1944
  };
1720
- get?: never;
1721
- put?: never;
1722
- /**
1723
- * Upload asset file with app ID
1724
- * @description Uploads a file to a specific app's assets directory
1725
- */
1726
- post: operations["uploadAssetWithAppId"];
1727
- /**
1728
- * Delete app assets
1729
- * @description Deletes all assets for a specific app ID
1730
- */
1731
- delete: operations["deleteAppAssets"];
1732
- options?: never;
1733
- head?: never;
1734
- patch?: never;
1735
- trace?: never;
1945
+ requestBody?: never;
1946
+ responses: {
1947
+ /** @description Data retrieved successfully */
1948
+ 200: {
1949
+ headers: {
1950
+ [name: string]: unknown;
1951
+ };
1952
+ content: {
1953
+ "application/json": components["schemas"]["AccountLink"];
1954
+ };
1955
+ };
1956
+ /** @description Bad request */
1957
+ 400: {
1958
+ headers: {
1959
+ [name: string]: unknown;
1960
+ };
1961
+ content: {
1962
+ "application/json": components["schemas"]["Error"];
1963
+ };
1964
+ };
1965
+ };
1736
1966
  };
1737
- "/storage/write": {
1967
+ setTimeTimestamp: {
1738
1968
  parameters: {
1739
- query?: never;
1969
+ query: {
1970
+ /**
1971
+ * @description ISO 8601 timestamp (e.g., 2025-10-02T14:30:45 for local time or 2025-10-02T14:30:45Z for UTC)
1972
+ * @example 2025-10-02T14:30:45
1973
+ */
1974
+ timestamp: string;
1975
+ };
1740
1976
  header?: never;
1741
1977
  path?: never;
1742
1978
  cookie?: never;
1743
1979
  };
1744
- get?: never;
1980
+ requestBody?: never;
1981
+ responses: {
1982
+ /** @description Timestamp set successfully */
1983
+ 200: {
1984
+ headers: {
1985
+ [name: string]: unknown;
1986
+ };
1987
+ content: {
1988
+ "application/json": components["schemas"]["SuccessResponse"];
1989
+ };
1990
+ };
1991
+ /** @description Invalid timestamp format or value */
1992
+ 400: {
1993
+ headers: {
1994
+ [name: string]: unknown;
1995
+ };
1996
+ content: {
1997
+ "application/json": components["schemas"]["Error"];
1998
+ };
1999
+ };
2000
+ };
2001
+ };
2002
+ setTimeTimezone: {
2003
+ parameters: {
2004
+ query: {
2005
+ /**
2006
+ * @description Timezone offset in ±HH:MM format (range -12:00 to +14:00)
2007
+ * @example +04:00
2008
+ */
2009
+ timezone: string;
2010
+ };
2011
+ header?: never;
2012
+ path?: never;
2013
+ cookie?: never;
2014
+ };
2015
+ requestBody?: never;
2016
+ responses: {
2017
+ /** @description Timezone set successfully */
2018
+ 200: {
2019
+ headers: {
2020
+ [name: string]: unknown;
2021
+ };
2022
+ content: {
2023
+ "application/json": components["schemas"]["SuccessResponse"];
2024
+ };
2025
+ };
2026
+ /** @description Invalid timezone offset */
2027
+ 400: {
2028
+ headers: {
2029
+ [name: string]: unknown;
2030
+ };
2031
+ content: {
2032
+ "application/json": components["schemas"]["Error"];
2033
+ };
2034
+ };
2035
+ };
2036
+ };
2037
+ }
2038
+
2039
+ /**
2040
+ * This file was auto-generated by openapi-typescript.
2041
+ * Do not make direct changes to the file.
2042
+ */
2043
+ declare interface paths {
2044
+ "/version": {
2045
+ parameters: {
2046
+ query?: never;
2047
+ header?: never;
2048
+ path?: never;
2049
+ cookie?: never;
2050
+ };
2051
+ /**
2052
+ * Get API version information
2053
+ * @description Retrieves api version
2054
+ */
2055
+ get: operations["getVersion"];
2056
+ put?: never;
2057
+ post?: never;
2058
+ delete?: never;
2059
+ options?: never;
2060
+ head?: never;
2061
+ patch?: never;
2062
+ trace?: never;
2063
+ };
2064
+ "/access": {
2065
+ parameters: {
2066
+ query?: never;
2067
+ header?: never;
2068
+ path?: never;
2069
+ cookie?: never;
2070
+ };
2071
+ /**
2072
+ * HTTP API access over Wi-Fi configuration get
2073
+ * @description HTTP API access over Wi-Fi configuration get
2074
+ */
2075
+ get: operations["getHttpAccess"];
2076
+ put?: never;
2077
+ /**
2078
+ * HTTP API access over Wi-Fi configuration set
2079
+ * @description HTTP API access over Wi-Fi configuration set
2080
+ */
2081
+ post: operations["setHttpAccess"];
2082
+ delete?: never;
2083
+ options?: never;
2084
+ head?: never;
2085
+ patch?: never;
2086
+ trace?: never;
2087
+ };
2088
+ "/name": {
2089
+ parameters: {
2090
+ query?: never;
2091
+ header?: never;
2092
+ path?: never;
2093
+ cookie?: never;
2094
+ };
2095
+ /**
2096
+ * Get current device name
2097
+ * @description Get current device name
2098
+ */
2099
+ get: {
2100
+ parameters: {
2101
+ query?: never;
2102
+ header?: never;
2103
+ path?: never;
2104
+ cookie?: never;
2105
+ };
2106
+ requestBody?: never;
2107
+ responses: {
2108
+ /** @description Information retrieved successfully */
2109
+ 200: {
2110
+ headers: {
2111
+ [name: string]: unknown;
2112
+ };
2113
+ content: {
2114
+ "application/json": components["schemas"]["NameInfo"];
2115
+ };
2116
+ };
2117
+ };
2118
+ };
2119
+ put?: never;
2120
+ /**
2121
+ * Set new device name
2122
+ * @description Set new device name
2123
+ */
2124
+ post: {
2125
+ parameters: {
2126
+ query?: never;
2127
+ header?: never;
2128
+ path?: never;
2129
+ cookie?: never;
2130
+ };
2131
+ requestBody: {
2132
+ content: {
2133
+ "application/json": components["schemas"]["NameInfo"];
2134
+ };
2135
+ };
2136
+ responses: {
2137
+ /** @description New name successfully set */
2138
+ 200: {
2139
+ headers: {
2140
+ [name: string]: unknown;
2141
+ };
2142
+ content: {
2143
+ "application/json": components["schemas"]["SuccessResponse"];
2144
+ };
2145
+ };
2146
+ /** @description Invalid name parameter, or failed to store new name */
2147
+ 400: {
2148
+ headers: {
2149
+ [name: string]: unknown;
2150
+ };
2151
+ content: {
2152
+ "application/json": components["schemas"]["Error"];
2153
+ };
2154
+ };
2155
+ };
2156
+ };
2157
+ delete?: never;
2158
+ options?: never;
2159
+ head?: never;
2160
+ patch?: never;
2161
+ trace?: never;
2162
+ };
2163
+ "/update": {
2164
+ parameters: {
2165
+ query?: never;
2166
+ header?: never;
2167
+ path?: never;
2168
+ cookie?: never;
2169
+ };
2170
+ get?: never;
2171
+ put?: never;
2172
+ /**
2173
+ * Update firmware
2174
+ * @description Uploads a firmware update package (TAR file) and initiates the update process.
2175
+ */
2176
+ post: operations["updateFirmware"];
2177
+ delete?: never;
2178
+ options?: never;
2179
+ head?: never;
2180
+ patch?: never;
2181
+ trace?: never;
2182
+ };
2183
+ "/assets/upload": {
2184
+ parameters: {
2185
+ query?: never;
2186
+ header?: never;
2187
+ path?: never;
2188
+ cookie?: never;
2189
+ };
2190
+ get?: never;
2191
+ put?: never;
2192
+ /**
2193
+ * Upload asset file with app ID
2194
+ * @description Uploads a file to a specific app's assets directory
2195
+ */
2196
+ post: operations["uploadAssetWithAppId"];
2197
+ /**
2198
+ * Delete app assets
2199
+ * @description Deletes all assets for a specific app ID
2200
+ */
2201
+ delete: operations["deleteAppAssets"];
2202
+ options?: never;
2203
+ head?: never;
2204
+ patch?: never;
2205
+ trace?: never;
2206
+ };
2207
+ "/storage/write": {
2208
+ parameters: {
2209
+ query?: never;
2210
+ header?: never;
2211
+ path?: never;
2212
+ cookie?: never;
2213
+ };
2214
+ get?: never;
1745
2215
  put?: never;
1746
2216
  /**
1747
2217
  * Upload file to internal storage
@@ -1781,10 +2251,7 @@ declare interface paths {
1781
2251
  path?: never;
1782
2252
  cookie?: never;
1783
2253
  };
1784
- /**
1785
- * List files on internal storage
1786
- * @description Downloads a file from a specified path
1787
- */
2254
+ /** List files on internal storage */
1788
2255
  get: operations["listStorageFiles"];
1789
2256
  put?: never;
1790
2257
  post?: never;
@@ -1834,6 +2301,23 @@ declare interface paths {
1834
2301
  patch?: never;
1835
2302
  trace?: never;
1836
2303
  };
2304
+ "/storage/status": {
2305
+ parameters: {
2306
+ query?: never;
2307
+ header?: never;
2308
+ path?: never;
2309
+ cookie?: never;
2310
+ };
2311
+ /** Show storage usage */
2312
+ get: operations["getStorageStatus"];
2313
+ put?: never;
2314
+ post?: never;
2315
+ delete?: never;
2316
+ options?: never;
2317
+ head?: never;
2318
+ patch?: never;
2319
+ trace?: never;
2320
+ };
1837
2321
  "/display/draw": {
1838
2322
  parameters: {
1839
2323
  query?: never;
@@ -1847,7 +2331,6 @@ declare interface paths {
1847
2331
  * Draw on display
1848
2332
  * @description Sends drawing data to the display.
1849
2333
  * Supports JSON-defined display elements.
1850
- *
1851
2334
  */
1852
2335
  post: operations["drawOnDisplay"];
1853
2336
  /**
@@ -1876,7 +2359,6 @@ declare interface paths {
1876
2359
  /**
1877
2360
  * Set display brightness
1878
2361
  * @description Set brightness for one or both displays
1879
- *
1880
2362
  */
1881
2363
  post: operations["setDisplayBrightness"];
1882
2364
  delete?: never;
@@ -1898,7 +2380,6 @@ declare interface paths {
1898
2380
  * Play audio file
1899
2381
  * @description Plays an audio file from the assets directory.
1900
2382
  * Supported formats include .snd files.
1901
- *
1902
2383
  */
1903
2384
  post: operations["playAudio"];
1904
2385
  /**
@@ -2030,7 +2511,6 @@ declare interface paths {
2030
2511
  * WebSocket test endpoint
2031
2512
  * @description WebSocket connection for real-time communication and testing.
2032
2513
  * Upgrade from HTTP to WebSocket protocol is required.
2033
- *
2034
2514
  */
2035
2515
  get: operations["connectWebSocket"];
2036
2516
  put?: never;
@@ -2041,7 +2521,43 @@ declare interface paths {
2041
2521
  patch?: never;
2042
2522
  trace?: never;
2043
2523
  };
2044
- "/wifi/enable": {
2524
+ "/wifi/status": {
2525
+ parameters: {
2526
+ query?: never;
2527
+ header?: never;
2528
+ path?: never;
2529
+ cookie?: never;
2530
+ };
2531
+ /** @description Returns current Wi-Fi status */
2532
+ get: {
2533
+ parameters: {
2534
+ query?: never;
2535
+ header?: never;
2536
+ path?: never;
2537
+ cookie?: never;
2538
+ };
2539
+ requestBody?: never;
2540
+ responses: {
2541
+ /** @description OK */
2542
+ 200: {
2543
+ headers: {
2544
+ [name: string]: unknown;
2545
+ };
2546
+ content: {
2547
+ "application/json": components["schemas"]["StatusResponse"];
2548
+ };
2549
+ };
2550
+ };
2551
+ };
2552
+ put?: never;
2553
+ post?: never;
2554
+ delete?: never;
2555
+ options?: never;
2556
+ head?: never;
2557
+ patch?: never;
2558
+ trace?: never;
2559
+ };
2560
+ "/wifi/connect": {
2045
2561
  parameters: {
2046
2562
  query?: never;
2047
2563
  header?: never;
@@ -2050,7 +2566,7 @@ declare interface paths {
2050
2566
  };
2051
2567
  get?: never;
2052
2568
  put?: never;
2053
- /** @description Enables wifi module */
2569
+ /** @description Attempts to connect to Wi-Fi using config */
2054
2570
  post: {
2055
2571
  parameters: {
2056
2572
  query?: never;
@@ -2058,9 +2574,13 @@ declare interface paths {
2058
2574
  path?: never;
2059
2575
  cookie?: never;
2060
2576
  };
2061
- requestBody?: never;
2577
+ requestBody: {
2578
+ content: {
2579
+ "application/json": components["schemas"]["ConnectRequestConfig"];
2580
+ };
2581
+ };
2062
2582
  responses: {
2063
- /** @description Wifi enabled */
2583
+ /** @description Network connection established */
2064
2584
  200: {
2065
2585
  headers: {
2066
2586
  [name: string]: unknown;
@@ -2069,7 +2589,7 @@ declare interface paths {
2069
2589
  "application/json": components["schemas"]["SuccessResponse"];
2070
2590
  };
2071
2591
  };
2072
- /** @description Wifi already enabled */
2592
+ /** @description Already connected */
2073
2593
  400: {
2074
2594
  headers: {
2075
2595
  [name: string]: unknown;
@@ -2086,7 +2606,7 @@ declare interface paths {
2086
2606
  patch?: never;
2087
2607
  trace?: never;
2088
2608
  };
2089
- "/wifi/disable": {
2609
+ "/wifi/disconnect": {
2090
2610
  parameters: {
2091
2611
  query?: never;
2092
2612
  header?: never;
@@ -2095,7 +2615,7 @@ declare interface paths {
2095
2615
  };
2096
2616
  get?: never;
2097
2617
  put?: never;
2098
- /** @description Disables wifi module */
2618
+ /** @description Attempts to connect to Wi-Fi using config */
2099
2619
  post: {
2100
2620
  parameters: {
2101
2621
  query?: never;
@@ -2105,7 +2625,7 @@ declare interface paths {
2105
2625
  };
2106
2626
  requestBody?: never;
2107
2627
  responses: {
2108
- /** @description Wifi disabled */
2628
+ /** @description Network connection terminated */
2109
2629
  200: {
2110
2630
  headers: {
2111
2631
  [name: string]: unknown;
@@ -2114,7 +2634,7 @@ declare interface paths {
2114
2634
  "application/json": components["schemas"]["SuccessResponse"];
2115
2635
  };
2116
2636
  };
2117
- /** @description Not initialized */
2637
+ /** @description Already disconnected */
2118
2638
  400: {
2119
2639
  headers: {
2120
2640
  [name: string]: unknown;
@@ -2131,14 +2651,14 @@ declare interface paths {
2131
2651
  patch?: never;
2132
2652
  trace?: never;
2133
2653
  };
2134
- "/wifi/status": {
2654
+ "/wifi/networks": {
2135
2655
  parameters: {
2136
2656
  query?: never;
2137
2657
  header?: never;
2138
2658
  path?: never;
2139
2659
  cookie?: never;
2140
2660
  };
2141
- /** @description Returns current wifi status */
2661
+ /** @description Scans environment for available Wi-Fi networks */
2142
2662
  get: {
2143
2663
  parameters: {
2144
2664
  query?: never;
@@ -2154,7 +2674,16 @@ declare interface paths {
2154
2674
  [name: string]: unknown;
2155
2675
  };
2156
2676
  content: {
2157
- "application/json": components["schemas"]["StatusResponse"];
2677
+ "application/json": components["schemas"]["NetworkResponse"];
2678
+ };
2679
+ };
2680
+ /** @description Scan not possible when connected */
2681
+ 400: {
2682
+ headers: {
2683
+ [name: string]: unknown;
2684
+ };
2685
+ content: {
2686
+ "application/json": components["schemas"]["Error"];
2158
2687
  };
2159
2688
  };
2160
2689
  };
@@ -2167,39 +2696,39 @@ declare interface paths {
2167
2696
  patch?: never;
2168
2697
  trace?: never;
2169
2698
  };
2170
- "/wifi/connect": {
2699
+ "/screen": {
2171
2700
  parameters: {
2172
2701
  query?: never;
2173
2702
  header?: never;
2174
2703
  path?: never;
2175
2704
  cookie?: never;
2176
2705
  };
2177
- get?: never;
2178
- put?: never;
2179
- /** @description Attempts to connect to wifi using config */
2180
- post: {
2706
+ /** Get single frame for required screen */
2707
+ get: {
2181
2708
  parameters: {
2182
- query?: never;
2709
+ query: {
2710
+ /**
2711
+ * @description Type of the display Front = 0, Back = 1
2712
+ * @example 0
2713
+ */
2714
+ display: number;
2715
+ };
2183
2716
  header?: never;
2184
2717
  path?: never;
2185
2718
  cookie?: never;
2186
2719
  };
2187
- requestBody: {
2188
- content: {
2189
- "application/json": components["schemas"]["ConnectRequestConfig"];
2190
- };
2191
- };
2720
+ requestBody?: never;
2192
2721
  responses: {
2193
- /** @description Network connection established */
2722
+ /** @description OK */
2194
2723
  200: {
2195
2724
  headers: {
2196
2725
  [name: string]: unknown;
2197
2726
  };
2198
2727
  content: {
2199
- "application/json": components["schemas"]["SuccessResponse"];
2728
+ "image/bmp": components["schemas"]["ScreenResponse"];
2200
2729
  };
2201
2730
  };
2202
- /** @description Wifi already connected */
2731
+ /** @description Wrong display */
2203
2732
  400: {
2204
2733
  headers: {
2205
2734
  [name: string]: unknown;
@@ -2210,13 +2739,38 @@ declare interface paths {
2210
2739
  };
2211
2740
  };
2212
2741
  };
2742
+ put?: never;
2743
+ post?: never;
2213
2744
  delete?: never;
2214
2745
  options?: never;
2215
2746
  head?: never;
2216
2747
  patch?: never;
2217
2748
  trace?: never;
2218
2749
  };
2219
- "/wifi/disconnect": {
2750
+ "/screen/ws": {
2751
+ parameters: {
2752
+ query?: never;
2753
+ header?: never;
2754
+ path?: never;
2755
+ cookie?: never;
2756
+ };
2757
+ /**
2758
+ * Screen streaming WebSocket endpoint
2759
+ * @description WebSocket connection for real-time screen streaming.
2760
+ * Upgrade from HTTP to WebSocket protocol is required.
2761
+ * After connection client must send desired display id
2762
+ * as json {"display": 0}
2763
+ */
2764
+ get: operations["connectWebSocket"];
2765
+ put?: never;
2766
+ post?: never;
2767
+ delete?: never;
2768
+ options?: never;
2769
+ head?: never;
2770
+ patch?: never;
2771
+ trace?: never;
2772
+ };
2773
+ "/ble/enable": {
2220
2774
  parameters: {
2221
2775
  query?: never;
2222
2776
  header?: never;
@@ -2225,7 +2779,10 @@ declare interface paths {
2225
2779
  };
2226
2780
  get?: never;
2227
2781
  put?: never;
2228
- /** @description Attempts to connect to wifi using config */
2782
+ /**
2783
+ * Enable BLE
2784
+ * @description Enables BLE module and starts advertising
2785
+ */
2229
2786
  post: {
2230
2787
  parameters: {
2231
2788
  query?: never;
@@ -2235,7 +2792,7 @@ declare interface paths {
2235
2792
  };
2236
2793
  requestBody?: never;
2237
2794
  responses: {
2238
- /** @description Network connection terminated */
2795
+ /** @description BLE enabled */
2239
2796
  200: {
2240
2797
  headers: {
2241
2798
  [name: string]: unknown;
@@ -2244,15 +2801,6 @@ declare interface paths {
2244
2801
  "application/json": components["schemas"]["SuccessResponse"];
2245
2802
  };
2246
2803
  };
2247
- /** @description Command issued in an invalid state */
2248
- 400: {
2249
- headers: {
2250
- [name: string]: unknown;
2251
- };
2252
- content: {
2253
- "application/json": components["schemas"]["Error"];
2254
- };
2255
- };
2256
2804
  };
2257
2805
  };
2258
2806
  delete?: never;
@@ -2261,15 +2809,20 @@ declare interface paths {
2261
2809
  patch?: never;
2262
2810
  trace?: never;
2263
2811
  };
2264
- "/wifi/networks": {
2812
+ "/ble/disable": {
2265
2813
  parameters: {
2266
2814
  query?: never;
2267
2815
  header?: never;
2268
2816
  path?: never;
2269
2817
  cookie?: never;
2270
2818
  };
2271
- /** @description Scans environment for available wifi networks */
2272
- get: {
2819
+ get?: never;
2820
+ put?: never;
2821
+ /**
2822
+ * Disable BLE
2823
+ * @description Stop advertising
2824
+ */
2825
+ post: {
2273
2826
  parameters: {
2274
2827
  query?: never;
2275
2828
  header?: never;
@@ -2278,35 +2831,24 @@ declare interface paths {
2278
2831
  };
2279
2832
  requestBody?: never;
2280
2833
  responses: {
2281
- /** @description OK */
2834
+ /** @description BLE disabled */
2282
2835
  200: {
2283
2836
  headers: {
2284
2837
  [name: string]: unknown;
2285
2838
  };
2286
2839
  content: {
2287
- "application/json": components["schemas"]["NetworkResponse"];
2288
- };
2289
- };
2290
- /** @description Wifi already connected */
2291
- 400: {
2292
- headers: {
2293
- [name: string]: unknown;
2294
- };
2295
- content: {
2296
- "application/json": components["schemas"]["Error"];
2840
+ "application/json": components["schemas"]["SuccessResponse"];
2297
2841
  };
2298
2842
  };
2299
2843
  };
2300
2844
  };
2301
- put?: never;
2302
- post?: never;
2303
2845
  delete?: never;
2304
2846
  options?: never;
2305
2847
  head?: never;
2306
2848
  patch?: never;
2307
2849
  trace?: never;
2308
2850
  };
2309
- "/wifi/forget": {
2851
+ "/ble/pairing": {
2310
2852
  parameters: {
2311
2853
  query?: never;
2312
2854
  header?: never;
@@ -2315,8 +2857,12 @@ declare interface paths {
2315
2857
  };
2316
2858
  get?: never;
2317
2859
  put?: never;
2318
- /** @description Forgets saved Wifi config */
2319
- post: {
2860
+ post?: never;
2861
+ /**
2862
+ * Remove pairing
2863
+ * @description Remove pairing with previous device
2864
+ */
2865
+ delete: {
2320
2866
  parameters: {
2321
2867
  query?: never;
2322
2868
  header?: never;
@@ -2325,8 +2871,17 @@ declare interface paths {
2325
2871
  };
2326
2872
  requestBody?: never;
2327
2873
  responses: {
2328
- /** @description Not implemented */
2329
- 400: {
2874
+ /** @description Pairing removed, now device is discoverable */
2875
+ 200: {
2876
+ headers: {
2877
+ [name: string]: unknown;
2878
+ };
2879
+ content: {
2880
+ "application/json": components["schemas"]["SuccessResponse"];
2881
+ };
2882
+ };
2883
+ /** @description Failed to remove, due to BLE is not initialized, or pairing was already removed before */
2884
+ 503: {
2330
2885
  headers: {
2331
2886
  [name: string]: unknown;
2332
2887
  };
@@ -2336,29 +2891,22 @@ declare interface paths {
2336
2891
  };
2337
2892
  };
2338
2893
  };
2339
- delete?: never;
2340
2894
  options?: never;
2341
2895
  head?: never;
2342
2896
  patch?: never;
2343
2897
  trace?: never;
2344
2898
  };
2345
- "/screen": {
2899
+ "/ble/status": {
2346
2900
  parameters: {
2347
2901
  query?: never;
2348
2902
  header?: never;
2349
2903
  path?: never;
2350
2904
  cookie?: never;
2351
2905
  };
2352
- /** Get single frame for required screen */
2906
+ /** @description Returns current BLE status */
2353
2907
  get: {
2354
2908
  parameters: {
2355
- query: {
2356
- /**
2357
- * @description Type of the display Front = 0, Back = 1
2358
- * @example 0
2359
- */
2360
- display: number;
2361
- };
2909
+ query?: never;
2362
2910
  header?: never;
2363
2911
  path?: never;
2364
2912
  cookie?: never;
@@ -2371,16 +2919,7 @@ declare interface paths {
2371
2919
  [name: string]: unknown;
2372
2920
  };
2373
2921
  content: {
2374
- "image/bmp": components["schemas"]["ScreenResponse"];
2375
- };
2376
- };
2377
- /** @description Wrong display */
2378
- 400: {
2379
- headers: {
2380
- [name: string]: unknown;
2381
- };
2382
- content: {
2383
- "application/json": components["schemas"]["Error"];
2922
+ "application/json": components["schemas"]["BleStatusResponse"];
2384
2923
  };
2385
2924
  };
2386
2925
  };
@@ -2393,7 +2932,7 @@ declare interface paths {
2393
2932
  patch?: never;
2394
2933
  trace?: never;
2395
2934
  };
2396
- "/screen/ws": {
2935
+ "/time": {
2397
2936
  parameters: {
2398
2937
  query?: never;
2399
2938
  header?: never;
@@ -2401,14 +2940,10 @@ declare interface paths {
2401
2940
  cookie?: never;
2402
2941
  };
2403
2942
  /**
2404
- * Screen streaming WebSocket endpoint
2405
- * @description WebSocket connection for real-time screen streaming.
2406
- * Upgrade from HTTP to WebSocket protocol is required.
2407
- * After connection client must send desired display id
2408
- * as json {"display": 0}
2409
- *
2943
+ * Get current timestamp with timezone
2944
+ * @description Retrieves the current timestamp from RTC with timezone in ISO 8601 format
2410
2945
  */
2411
- get: operations["connectWebSocket"];
2946
+ get: operations["getTime"];
2412
2947
  put?: never;
2413
2948
  post?: never;
2414
2949
  delete?: never;
@@ -2417,43 +2952,51 @@ declare interface paths {
2417
2952
  patch?: never;
2418
2953
  trace?: never;
2419
2954
  };
2420
- "/ble/enable": {
2955
+ "/account": {
2421
2956
  parameters: {
2422
2957
  query?: never;
2423
2958
  header?: never;
2424
2959
  path?: never;
2425
2960
  cookie?: never;
2426
2961
  };
2427
- get?: never;
2962
+ /**
2963
+ * Get MQTT status
2964
+ * @description Retrieves MQTT status and linked account data
2965
+ */
2966
+ get: operations["getAccountInfo"];
2428
2967
  put?: never;
2429
- /** @description Enables ble module */
2430
- post: {
2431
- parameters: {
2432
- query?: never;
2433
- header?: never;
2434
- path?: never;
2435
- cookie?: never;
2436
- };
2437
- requestBody?: never;
2438
- responses: {
2439
- /** @description Ble enabled */
2440
- 200: {
2441
- headers: {
2442
- [name: string]: unknown;
2443
- };
2444
- content: {
2445
- "application/json": components["schemas"]["SuccessResponse"];
2446
- };
2447
- };
2448
- };
2968
+ post?: never;
2969
+ /**
2970
+ * Unlink device from account
2971
+ * @description Removes account linking data
2972
+ */
2973
+ delete: operations["unlinkAccount"];
2974
+ options?: never;
2975
+ head?: never;
2976
+ patch?: never;
2977
+ trace?: never;
2978
+ };
2979
+ "/account/link": {
2980
+ parameters: {
2981
+ query?: never;
2982
+ header?: never;
2983
+ path?: never;
2984
+ cookie?: never;
2449
2985
  };
2986
+ get?: never;
2987
+ put?: never;
2988
+ /**
2989
+ * Link device to account
2990
+ * @description Requests account link PIN. Works only if device is connected to MQTT and is not linked to account
2991
+ */
2992
+ post: operations["linkAccount"];
2450
2993
  delete?: never;
2451
2994
  options?: never;
2452
2995
  head?: never;
2453
2996
  patch?: never;
2454
2997
  trace?: never;
2455
2998
  };
2456
- "/ble/disable": {
2999
+ "/time/timestamp": {
2457
3000
  parameters: {
2458
3001
  query?: never;
2459
3002
  header?: never;
@@ -2462,27 +3005,33 @@ declare interface paths {
2462
3005
  };
2463
3006
  get?: never;
2464
3007
  put?: never;
2465
- /** @description Disables ble module */
2466
- post: {
2467
- parameters: {
2468
- query?: never;
2469
- header?: never;
2470
- path?: never;
2471
- cookie?: never;
2472
- };
2473
- requestBody?: never;
2474
- responses: {
2475
- /** @description Ble disabled */
2476
- 200: {
2477
- headers: {
2478
- [name: string]: unknown;
2479
- };
2480
- content: {
2481
- "application/json": components["schemas"]["SuccessResponse"];
2482
- };
2483
- };
2484
- };
3008
+ /**
3009
+ * Set current timestamp
3010
+ * @description Sets the RTC timestamp in ISO 8601 format.
3011
+ * - Without 'Z': treated as local time
3012
+ * - With 'Z': treated as UTC and converted to local time using current timezone offset
3013
+ */
3014
+ post: operations["setTimeTimestamp"];
3015
+ delete?: never;
3016
+ options?: never;
3017
+ head?: never;
3018
+ patch?: never;
3019
+ trace?: never;
3020
+ };
3021
+ "/time/timezone": {
3022
+ parameters: {
3023
+ query?: never;
3024
+ header?: never;
3025
+ path?: never;
3026
+ cookie?: never;
2485
3027
  };
3028
+ get?: never;
3029
+ put?: never;
3030
+ /**
3031
+ * Set timezone offset
3032
+ * @description Sets the timezone offset in ±HH:MM format
3033
+ */
3034
+ post: operations["setTimeTimezone"];
2486
3035
  delete?: never;
2487
3036
  options?: never;
2488
3037
  head?: never;
@@ -2503,7 +3052,7 @@ declare interface RemoveParams {
2503
3052
  export { RemoveParams }
2504
3053
  export { RemoveParams as StorageRemoveParams }
2505
3054
 
2506
- declare type RequiredIpConfig = RequireKeys<NonNullable<CamelizedRequest["ipConfig"]>, "ipMethod" | "ipType">;
3055
+ declare type RequiredIpConfig = RequireKeys<NonNullable<CamelizedRequest["ipConfig"]>, "ipMethod">;
2507
3056
 
2508
3057
  declare type RequireKeys<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
2509
3058
 
@@ -2561,13 +3110,25 @@ export declare type StorageListElement = components["schemas"]["StorageListEleme
2561
3110
 
2562
3111
  export declare type StorageReadResponse = ArrayBuffer | Blob;
2563
3112
 
3113
+ export declare type StorageStatus = components["schemas"]["StorageStatus"];
3114
+
2564
3115
  export declare type SuccessResponse = components["schemas"]["SuccessResponse"];
2565
3116
 
3117
+ export declare interface SystemTimestampParams {
3118
+ timestamp: operations["setTimeTimestamp"]["parameters"]["query"]["timestamp"];
3119
+ }
3120
+
3121
+ export declare interface SystemTimezoneParams {
3122
+ timezone: operations["setTimeTimezone"]["parameters"]["query"]["timezone"];
3123
+ }
3124
+
2566
3125
  export declare interface SystemUpdateParams {
2567
3126
  name?: string;
2568
3127
  file: BusyFile;
2569
3128
  }
2570
3129
 
3130
+ export declare type TimestampInfo = components["schemas"]["TimestampInfo"];
3131
+
2571
3132
  declare interface UploadFileParams {
2572
3133
  path: operations["writeStorageFile"]["parameters"]["query"]["path"];
2573
3134
  file: BusyFile;