@camera.ui/browser 0.0.80 → 0.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/bundle.js +1 -1
  2. package/dist/types/packages/client/browser/src/client.d.ts +1 -7
  3. package/dist/types/packages/client/browser/src/proxy/cameraDevice.d.ts +2 -6
  4. package/dist/types/packages/client/browser/src/proxy/index.d.ts +0 -2
  5. package/dist/types/packages/client/browser/src/streaming/go2rts-session.d.ts +2 -0
  6. package/dist/types/server/src/api/controllers/cameras.controller.d.ts +2 -1
  7. package/dist/types/server/src/api/controllers/plugins.controller.d.ts +6 -1
  8. package/dist/types/server/src/api/controllers/users.controller.d.ts +8 -1
  9. package/dist/types/server/src/api/database/index.d.ts +11 -8
  10. package/dist/types/server/src/api/database/migration.d.ts +12 -0
  11. package/dist/types/server/src/api/database/types.d.ts +22 -2
  12. package/dist/types/server/src/api/index.d.ts +0 -1
  13. package/dist/types/server/src/api/routes/index.d.ts +1 -1
  14. package/dist/types/server/src/api/schemas/backup.schema.d.ts +15 -15
  15. package/dist/types/server/src/api/schemas/cameras.schema.d.ts +79 -79
  16. package/dist/types/server/src/api/schemas/config.schema.d.ts +11 -14
  17. package/dist/types/server/src/api/schemas/go2rtc.schema.d.ts +60 -60
  18. package/dist/types/server/src/api/schemas/plugins.schema.d.ts +50 -0
  19. package/dist/types/server/src/api/schemas/users.schema.d.ts +499 -112
  20. package/dist/types/server/src/api/services/backup.service.d.ts +2 -1
  21. package/dist/types/server/src/api/services/cameras.service.d.ts +0 -3
  22. package/dist/types/server/src/api/services/users.service.d.ts +12 -3
  23. package/dist/types/server/src/api/types/index.d.ts +40 -35
  24. package/dist/types/server/src/api/utils/parse.d.ts +2 -0
  25. package/dist/types/server/src/api.d.ts +1 -1
  26. package/dist/types/server/src/camera/controller.d.ts +3 -7
  27. package/dist/types/server/src/camera/index.d.ts +6 -7
  28. package/dist/types/server/src/camera/interfaces/camera.d.ts +5 -13
  29. package/dist/types/server/src/camera/interfaces/prebuffer.d.ts +3 -3
  30. package/dist/types/server/src/camera/types.d.ts +3 -25
  31. package/dist/types/server/src/decoder/types.d.ts +10 -1
  32. package/dist/types/server/src/nats/index.d.ts +7 -6
  33. package/dist/types/server/src/nats/proxy/cameraDevice.d.ts +11 -55
  34. package/dist/types/server/src/nats/proxy/deviceManager.d.ts +6 -21
  35. package/dist/types/server/src/nats/proxy/index.d.ts +0 -2
  36. package/dist/types/server/src/nats/types.d.ts +42 -124
  37. package/dist/types/server/src/plugins/interfaces/audioDetection.d.ts +7 -0
  38. package/dist/types/server/src/plugins/{base.d.ts → interfaces/base.d.ts} +2 -2
  39. package/dist/types/server/src/plugins/interfaces/motionDetection.d.ts +6 -0
  40. package/dist/types/server/src/plugins/interfaces/objectDetection.d.ts +7 -0
  41. package/dist/types/server/src/plugins/types.d.ts +12 -5
  42. package/dist/types/server/src/polyglot/node/plugins/api.d.ts +2 -6
  43. package/dist/types/server/src/polyglot/node/plugins/proxy/cameraDevice.d.ts +6 -16
  44. package/dist/types/server/src/polyglot/node/plugins/proxy/index.d.ts +0 -2
  45. package/dist/types/server/src/polyglot/node/plugins/schema.d.ts +14 -10
  46. package/dist/types/server/src/services/config/types.d.ts +0 -1
  47. package/dist/types/server/src/utils/utils.d.ts +1 -2
  48. package/package.json +6 -6
  49. package/dist/types/packages/client/browser/src/proxy/pluginsManager.d.ts +0 -10
  50. package/dist/types/packages/client/browser/src/proxy/systemManager.d.ts +0 -10
  51. package/dist/types/server/src/api/controllers/streams.controller.d.ts +0 -12
  52. package/dist/types/server/src/api/routes/streams.routes.d.ts +0 -2
  53. package/dist/types/server/src/camera/interfaces/audioDetection.d.ts +0 -10
  54. package/dist/types/server/src/camera/interfaces/motionDetection.d.ts +0 -10
  55. package/dist/types/server/src/camera/interfaces/objectDetection.d.ts +0 -10
  56. package/dist/types/server/src/nats/proxy/pluginsManager.d.ts +0 -12
  57. package/dist/types/server/src/nats/proxy/systemManager.d.ts +0 -8
  58. package/dist/types/server/src/polyglot/node/plugins/proxy/pluginsManager.d.ts +0 -39
  59. package/dist/types/server/src/polyglot/node/plugins/proxy/systemManager.d.ts +0 -37
  60. /package/dist/types/server/src/nats/{queue.d.ts → messageQueue.d.ts} +0 -0
  61. /package/dist/types/server/src/polyglot/node/plugins/proxy/{queue.d.ts → messageQueue.d.ts} +0 -0
@@ -1,9 +1,7 @@
1
- import { DeviceManager, PluginsManager, SystemManager } from './proxy/index.js';
1
+ import { DeviceManager } from './proxy/index.js';
2
2
  import type { CameraUiClientConfig } from './types.js';
3
3
  export interface API {
4
4
  deviceManager: DeviceManager;
5
- pluginsManager: PluginsManager;
6
- systemManager: SystemManager;
7
5
  }
8
6
  export declare class CameraUiClient {
9
7
  private api;
@@ -12,16 +10,12 @@ export declare class CameraUiClient {
12
10
  private logger;
13
11
  private token?;
14
12
  private deviceManager?;
15
- private pluginsManager?;
16
- private systemManager?;
17
13
  constructor(config: CameraUiClientConfig);
18
14
  connect(): Promise<API>;
19
15
  disconnect(): Promise<void>;
20
16
  updateCredentials(newConfig: CameraUiClientConfig): Promise<void>;
21
17
  private login;
22
18
  getDeviceManager(): DeviceManager | undefined;
23
- getPluginsManager(): PluginsManager | undefined;
24
- getSystemManager(): SystemManager | undefined;
25
19
  private checkSession;
26
20
  private cleanUpClient;
27
21
  }
@@ -1,7 +1,5 @@
1
1
  import { BaseCameraDevice } from '../../../../../server/src/camera/index.js';
2
- import { CameraAudioDetectionInterface } from '../../../../../server/src/camera/interfaces/audioDetection.js';
3
- import { CameraMotionDetectionInterface } from '../../../../../server/src/camera/interfaces/motionDetection.js';
4
- import { CameraObjectDetectionInterface } from '../../../../../server/src/camera/interfaces/objectDetection.js';
2
+ import { CameraInterface } from '../../../../../server/src/camera/interfaces/camera.js';
5
3
  import { CameraPrebufferInterface } from '../../../../../server/src/camera/interfaces/prebuffer.js';
6
4
  import { CameraPTZInterface } from '../../../../../server/src/camera/interfaces/ptz.js';
7
5
  import { Go2RTCSession } from '../streaming/go2rts-session.js';
@@ -15,11 +13,9 @@ export declare class CameraDeviceProxy extends BaseCameraDevice implements Camer
15
13
  private subject;
16
14
  private _started;
17
15
  get started(): boolean;
16
+ cameraDelegate: CameraInterface;
18
17
  protected prebufferDelegate: CameraPrebufferInterface;
19
18
  ptzDelegate: CameraPTZInterface;
20
- audioDetectorDelegate: CameraAudioDetectionInterface;
21
- motionDetectorDelegate: CameraMotionDetectionInterface;
22
- objectDetectorDelegate: CameraObjectDetectionInterface;
23
19
  get sources(): CameraSource[];
24
20
  constructor(camera: Camera, socketService: SocketService, logger: BaseLogger);
25
21
  start(): Promise<void>;
@@ -1,4 +1,2 @@
1
1
  export * from './cameraDevice.js';
2
2
  export * from './deviceManager.js';
3
- export * from './pluginsManager.js';
4
- export * from './systemManager.js';
@@ -9,6 +9,7 @@ export declare class Go2RTCSession extends EventTarget {
9
9
  private videoPlayer;
10
10
  private socket;
11
11
  private streamId;
12
+ hasBackchannel: boolean;
12
13
  closed: boolean;
13
14
  micTransceiver: RTCRtpTransceiver | null;
14
15
  private pc;
@@ -45,6 +46,7 @@ export declare class Go2RTCSession extends EventTarget {
45
46
  private onMp4Buffer;
46
47
  private requestHls;
47
48
  private onHlsData;
49
+ private onStreamInfo;
48
50
  private play;
49
51
  private finishLoading;
50
52
  private createCodecsList;
@@ -1,6 +1,6 @@
1
1
  import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
2
2
  import type { DBCamera } from '../database/types.js';
3
- import type { AuthLoginRequest, CameraZoneInsertPatchRequest, CameraZonesParamsRequest, CamerasExtensionsParamsRequest, CamerasExtensionsRequest, CamerasInsertRequest, CamerasParamsRequest, CamerasPatchRequest, CamerasPreviewRequest, ExtensionsPatchRequest, PaginationRequest } from '../types/index.js';
3
+ import type { AuthLoginRequest, CameraZoneInsertPatchRequest, CameraZonesParamsRequest, CamerasExtensionsParamsRequest, CamerasExtensionsRequest, CamerasInsertRequest, CamerasParamsIdRequest, CamerasParamsRequest, CamerasPatchRequest, CamerasPreviewRequest, ExtensionsPatchRequest, PaginationRequest } from '../types/index.js';
4
4
  export declare class CamerasController {
5
5
  private app;
6
6
  private api;
@@ -19,6 +19,7 @@ export declare class CamerasController {
19
19
  getExtensionConfigByName(req: FastifyRequest<AuthLoginRequest & CamerasExtensionsParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
20
20
  patchExtensionConfigByName(req: FastifyRequest<AuthLoginRequest & CamerasExtensionsParamsRequest & ExtensionsPatchRequest>, reply: FastifyReply): Promise<FastifyReply>;
21
21
  getSnapshotByName(req: FastifyRequest<AuthLoginRequest & CamerasParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
22
+ getSnapshotById(req: FastifyRequest<AuthLoginRequest & CamerasParamsIdRequest>, reply: FastifyReply): Promise<FastifyReply>;
22
23
  insert(req: FastifyRequest<AuthLoginRequest & CamerasInsertRequest>, reply: FastifyReply): Promise<FastifyReply>;
23
24
  preview(req: FastifyRequest<AuthLoginRequest & CamerasPreviewRequest>, reply: FastifyReply): Promise<FastifyReply>;
24
25
  list(req: FastifyRequest<AuthLoginRequest & PaginationRequest>, reply: FastifyReply): FastifyReply | DBCamera[];
@@ -1,5 +1,5 @@
1
1
  import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
2
- import type { AuthLoginRequest, CameraUiPlugin, PaginationRequest, PluginExtension, PluginsActionRequest, PluginsConfigPatchRequest, PluginsInsertRequest, PluginsParamsNameRequest, PluginsParamsRemoveRequest, PluginsQueryRequest } from '../types/index.js';
2
+ import type { AuthLoginRequest, CameraUiPlugin, PaginationRequest, PluginExtension, PluginsActionRequest, PluginsConfigPatchRequest, PluginsDetectAudioRequest, PluginsDetectMotionRequest, PluginsDetectObjectRequest, PluginsInsertRequest, PluginsInterfaceQuery, PluginsParamsNameRequest, PluginsParamsRemoveRequest, PluginsQueryRequest } from '../types/index.js';
3
3
  export interface PluginInfo {
4
4
  pluginName: string;
5
5
  id?: string;
@@ -22,7 +22,12 @@ export declare class PluginsController {
22
22
  getVersionsByName(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
23
23
  getChangelogByName(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
24
24
  getConfigJsonByName(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
25
+ getPluginLogoByName(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
25
26
  getPluginSchemaByName(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
27
+ getPluginInterface(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest & PluginsInterfaceQuery>, reply: FastifyReply): Promise<FastifyReply>;
28
+ detectObjects(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest & PluginsDetectObjectRequest>, reply: FastifyReply): Promise<FastifyReply | void>;
29
+ detectAudio(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest & PluginsDetectAudioRequest>, reply: FastifyReply): Promise<FastifyReply | void>;
30
+ detectMotion(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest & PluginsDetectMotionRequest>, reply: FastifyReply): Promise<FastifyReply | void>;
26
31
  submitActionButtonByName(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest & PluginsActionRequest>, reply: FastifyReply): Promise<FastifyReply>;
27
32
  getContractByName(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest>, reply: FastifyReply): FastifyReply;
28
33
  getReadmeByName(req: FastifyRequest<AuthLoginRequest & PluginsParamsNameRequest & PluginsQueryRequest>, reply: FastifyReply): Promise<FastifyReply>;
@@ -1,10 +1,11 @@
1
1
  import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
2
2
  import type { DBCamviewLayout, DBUser } from '../database/types.js';
3
- import type { AuthLoginRequest, AuthParamsRequest, PaginationRequest, UsersInsertRequest, UsersParamsRequest, UsersPatchRequest, ViewsInsertRequest, ViewsParamsRequest, ViewsPatchRequest } from '../types/index.js';
3
+ import type { AuthLoginRequest, AuthParamsRequest, CamerasParamsRequest, PaginationRequest, ShortcutInsertRequest, ShortcutParamsRequest, ShortcutPatchRequest, UsersInsertRequest, UsersParamsRequest, UsersPatchRequest, ViewsInsertRequest, ViewsParamsRequest, ViewsPatchRequest } from '../types/index.js';
4
4
  export declare class UsersController {
5
5
  private app;
6
6
  private configService;
7
7
  private service;
8
+ private camerasService;
8
9
  constructor(app: FastifyInstance);
9
10
  insert(req: FastifyRequest<AuthLoginRequest & UsersInsertRequest>, reply: FastifyReply): Promise<FastifyReply>;
10
11
  getByName(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest>, reply: FastifyReply): FastifyReply;
@@ -12,6 +13,12 @@ export declare class UsersController {
12
13
  patchByName(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest & UsersPatchRequest>, reply: FastifyReply): Promise<FastifyReply | void>;
13
14
  removeByName(req: FastifyRequest<AuthLoginRequest & UsersParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
14
15
  removeAll(req: FastifyRequest<AuthLoginRequest>, reply: FastifyReply): Promise<FastifyReply>;
16
+ insertShortcut(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest & CamerasParamsRequest & ShortcutInsertRequest>, reply: FastifyReply): Promise<FastifyReply>;
17
+ getShortcutByCameraName(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest & CamerasParamsRequest & ShortcutParamsRequest>, reply: FastifyReply): FastifyReply;
18
+ getShortcutsByCameraName(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest & CamerasParamsRequest & ShortcutParamsRequest>, reply: FastifyReply): FastifyReply;
19
+ patchShortcutByCameraName(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest & CamerasParamsRequest & ShortcutParamsRequest & ShortcutPatchRequest>, reply: FastifyReply): Promise<FastifyReply | void>;
20
+ removeShortcutByCameraName(req: FastifyRequest<AuthLoginRequest & PaginationRequest & UsersParamsRequest & CamerasParamsRequest & ShortcutParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
21
+ removeAllShortcutsByCameraName(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest & CamerasParamsRequest & ShortcutParamsRequest>, reply: FastifyReply): Promise<FastifyReply>;
15
22
  insertView(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest & ViewsInsertRequest>, reply: FastifyReply): Promise<FastifyReply>;
16
23
  getViewById(req: FastifyRequest<AuthLoginRequest & AuthParamsRequest & UsersParamsRequest & ViewsParamsRequest>, reply: FastifyReply): FastifyReply;
17
24
  listViews(req: FastifyRequest<AuthLoginRequest & PaginationRequest & AuthParamsRequest & UsersParamsRequest & ViewsParamsRequest>, reply: FastifyReply): FastifyReply | Partial<DBUser>[];
@@ -3,20 +3,23 @@ import type { Database as DB, RootDatabase as RootDB } from 'lmdb';
3
3
  import type { Plugin } from '../../plugins/plugin.js';
4
4
  import type { DBAuth, DBCamera, DBPlugin, DBSettings, DBUser } from './types.js';
5
5
  export declare class Database {
6
- readonly CAMERAS_ID = "cameras";
7
- readonly DATABASE_ID = "database";
8
- readonly PLUGINS_ID = "plugins";
9
- readonly USER_PLUGINS_ID = "user-plugins";
10
- readonly SETTINGS_ID = "settings";
11
- readonly USERS_ID = "users";
12
- readonly TOKENS_ID = "tokens";
6
+ static readonly VERSION = "1.0.0";
7
+ static readonly CAMERAS_ID = "cameras";
8
+ static readonly DATABASE_ID = "database";
9
+ static readonly PLUGINS_ID = "plugins";
10
+ static readonly USER_PLUGINS_ID = "user-plugins";
11
+ static readonly SETTINGS_ID = "settings";
12
+ static readonly USERS_ID = "users";
13
+ static readonly TOKENS_ID = "tokens";
13
14
  authDB: RootDB<DBAuth, 'auth'>;
14
15
  camerasDB: DB<DBCamera[], 'cameras'>;
15
16
  pluginsDB: DB<DBPlugin[], 'plugins'>;
16
17
  settingsDB: DB<DBSettings, 'settings'>;
17
18
  usersDB: DB<DBUser[], 'users'>;
18
19
  private initialized;
19
- private db;
20
+ private lowdb;
21
+ private databaseMigration;
22
+ private databases;
20
23
  private app;
21
24
  private configService;
22
25
  private logger;
@@ -0,0 +1,12 @@
1
+ import type { CameraUiDatabase } from './types.js';
2
+ export declare class DatabaseMigrationTable {
3
+ private db;
4
+ private logger;
5
+ private get camerasDB();
6
+ private get pluginsDB();
7
+ private get settingsDB();
8
+ private get usersDB();
9
+ constructor(db: CameraUiDatabase);
10
+ migrate(): Promise<void>;
11
+ private getMigrations;
12
+ }
@@ -1,5 +1,13 @@
1
+ import type { Database as DB } from 'lmdb';
1
2
  import type { DetectionZone, ObjectClass } from '../../camera/types.js';
2
3
  import type { CamviewSettingsLayoutMode, ClientData, JwtTokenEncoded } from '../types/index.js';
4
+ import type { Database } from './index.js';
5
+ export interface CameraUiDatabase {
6
+ [Database.CAMERAS_ID]: DB<DBCamera[], 'cameras'>;
7
+ [Database.PLUGINS_ID]: DB<DBPlugin[], 'plugins'>;
8
+ [Database.SETTINGS_ID]: DB<DBSettings, 'settings'>;
9
+ [Database.USERS_ID]: DB<DBUser[], 'users'>;
10
+ }
3
11
  export interface DBAuth {
4
12
  tokens: JwtTokenEncoded[];
5
13
  clients: ClientData[];
@@ -16,6 +24,7 @@ export interface DBPlugin {
16
24
  storage: DBPluginStorage;
17
25
  }
18
26
  export interface DBSettings {
27
+ version: string;
19
28
  }
20
29
  export interface DBUser {
21
30
  readonly _id: string;
@@ -30,10 +39,21 @@ export interface DBUser {
30
39
  preferences: DBUserPreferences;
31
40
  }
32
41
  export type DBRoles = 'admin' | 'user';
42
+ export interface DBCameraShortcut {
43
+ readonly _id: string;
44
+ cameraId: string;
45
+ coords: ZoneCoord;
46
+ }
47
+ export interface DBUserCameraPreferences {
48
+ [key: string]: {
49
+ shortcuts: DBCameraShortcut[];
50
+ } | undefined;
51
+ }
33
52
  export interface DBUserPreferences {
34
53
  camview: {
35
54
  views: DBCamviewLayout[];
36
55
  };
56
+ cameras: DBUserCameraPreferences;
37
57
  }
38
58
  export type DBCamviewViewSize = 1 | 4 | 6 | 7 | 9 | 10 | 12 | 13 | 15 | 16 | 20 | 26;
39
59
  export interface DBCamviewLayout {
@@ -45,7 +65,7 @@ export interface DBCamviewLayout {
45
65
  }
46
66
  export interface DBCamviewLayoutCamera {
47
67
  index: number;
48
- name: string;
68
+ cameraId: string;
49
69
  }
50
70
  export interface DBPluginStorage {
51
71
  [key: string]: {
@@ -182,7 +202,7 @@ export interface CameraInput {
182
202
  roles: CameraRoles[];
183
203
  urls: StreamUrls;
184
204
  }
185
- export type CameraRoles = 'detect' | 'record' | 'stream' | 'snapshot' | 'none';
205
+ export type CameraRoles = 'high-resolution' | 'mid-resolution' | 'low-resolution' | 'snapshot' | 'none';
186
206
  export interface CameraUiSettings {
187
207
  streamingMode: VideoStreamingMode;
188
208
  }
@@ -1,6 +1,5 @@
1
1
  export declare class Server {
2
2
  private app?;
3
- private localApp?;
4
3
  private api;
5
4
  private logger;
6
5
  private configService;
@@ -2,5 +2,5 @@ import type { FastifyInstance } from 'fastify';
2
2
  export declare class FastifyRoutes {
3
3
  private app;
4
4
  constructor(app: FastifyInstance<any, any, any, any>);
5
- register(local?: boolean): Promise<void>;
5
+ register(): Promise<void>;
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import zod from 'zod';
2
- import type { MultipartFile } from '../types/index.js';
2
+ import type { MultipartFile } from '@fastify/multipart';
3
3
  export declare const ACCEPTED_BACKUP_TYPES: string[];
4
4
  export declare const MAX_BACKUP_FILE_SIZE = 50000000;
5
5
  export declare const downloadBackupSchema: zod.ZodObject<{
@@ -46,6 +46,10 @@ export declare const downloadBackupSchema: zod.ZodObject<{
46
46
  }>>>>;
47
47
  locale: zod.ZodOptional<zod.ZodDefault<zod.ZodOptional<zod.ZodUnion<[zod.ZodLiteral<"de">, zod.ZodLiteral<"en">]>>>>;
48
48
  }, "strict", zod.ZodTypeAny, {
49
+ theme?: {
50
+ theme?: "light" | "dark" | undefined;
51
+ autoMode?: boolean | undefined;
52
+ } | undefined;
49
53
  ui?: {
50
54
  config?: {
51
55
  zoom: number;
@@ -54,12 +58,12 @@ export declare const downloadBackupSchema: zod.ZodObject<{
54
58
  zoom: number;
55
59
  } | undefined;
56
60
  } | undefined;
61
+ locale?: "de" | "en" | undefined;
62
+ }, {
57
63
  theme?: {
58
64
  theme?: "light" | "dark" | undefined;
59
65
  autoMode?: boolean | undefined;
60
66
  } | undefined;
61
- locale?: "de" | "en" | undefined;
62
- }, {
63
67
  ui?: {
64
68
  config?: {
65
69
  zoom: number;
@@ -68,14 +72,14 @@ export declare const downloadBackupSchema: zod.ZodObject<{
68
72
  zoom: number;
69
73
  } | undefined;
70
74
  } | undefined;
71
- theme?: {
72
- theme?: "light" | "dark" | undefined;
73
- autoMode?: boolean | undefined;
74
- } | undefined;
75
75
  locale?: "de" | "en" | undefined;
76
76
  }>>;
77
77
  }, "strict", zod.ZodTypeAny, {
78
78
  localStorage?: {
79
+ theme?: {
80
+ theme?: "light" | "dark" | undefined;
81
+ autoMode?: boolean | undefined;
82
+ } | undefined;
79
83
  ui?: {
80
84
  config?: {
81
85
  zoom: number;
@@ -84,14 +88,14 @@ export declare const downloadBackupSchema: zod.ZodObject<{
84
88
  zoom: number;
85
89
  } | undefined;
86
90
  } | undefined;
87
- theme?: {
88
- theme?: "light" | "dark" | undefined;
89
- autoMode?: boolean | undefined;
90
- } | undefined;
91
91
  locale?: "de" | "en" | undefined;
92
92
  } | undefined;
93
93
  }, {
94
94
  localStorage?: {
95
+ theme?: {
96
+ theme?: "light" | "dark" | undefined;
97
+ autoMode?: boolean | undefined;
98
+ } | undefined;
95
99
  ui?: {
96
100
  config?: {
97
101
  zoom: number;
@@ -100,10 +104,6 @@ export declare const downloadBackupSchema: zod.ZodObject<{
100
104
  zoom: number;
101
105
  } | undefined;
102
106
  } | undefined;
103
- theme?: {
104
- theme?: "light" | "dark" | undefined;
105
- autoMode?: boolean | undefined;
106
- } | undefined;
107
107
  locale?: "de" | "en" | undefined;
108
108
  } | undefined;
109
109
  }>;