@reset-framework/sdk 0.2.0 → 1.0.1

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/src/errors.js CHANGED
@@ -1,6 +1,33 @@
1
- export class ResetRuntimeUnavailableError extends Error {
2
- constructor(message = "reset runtime is not available") {
1
+ export class ResetRuntimeError extends Error {
2
+ constructor(message, options = {}) {
3
3
  super(message)
4
- this.name = "ResetRuntimeUnavailableError"
4
+ this.name = new.target.name
5
+
6
+ if ("cause" in options) {
7
+ this.cause = options.cause
8
+ }
9
+ }
10
+ }
11
+
12
+ export class ResetRuntimeUnavailableError extends ResetRuntimeError {
13
+ constructor(message = "Reset runtime is not available in the current environment.") {
14
+ super(message)
15
+ }
16
+ }
17
+
18
+ export class ResetProtocolError extends ResetRuntimeError {
19
+ constructor(message, options = {}) {
20
+ super(message, options)
21
+ this.command = options.command
22
+ }
23
+ }
24
+
25
+ export class ResetInvocationError extends ResetRuntimeError {
26
+ constructor(command, message, response, options = {}) {
27
+ super(message, options)
28
+ this.command = command
29
+ this.code = response?.code
30
+ this.details = response?.details
31
+ this.response = response
5
32
  }
6
33
  }
package/src/events.js ADDED
@@ -0,0 +1,123 @@
1
+ function getDefaultWindowTarget() {
2
+ if (typeof window === "undefined") {
3
+ return undefined
4
+ }
5
+
6
+ return window
7
+ }
8
+
9
+ function getState(target = getDefaultWindowTarget()) {
10
+ if (!target) {
11
+ return null
12
+ }
13
+
14
+ if (!target.__resetEventState) {
15
+ const listeners = new Map()
16
+
17
+ target.__resetEventState = {
18
+ listeners,
19
+ dispatch(envelope) {
20
+ const eventName = typeof envelope?.event === "string" ? envelope.event : ""
21
+ if (eventName === "") {
22
+ return
23
+ }
24
+
25
+ const handlers = listeners.get(eventName)
26
+ if (!handlers) {
27
+ return
28
+ }
29
+
30
+ for (const handler of [...handlers]) {
31
+ handler(envelope.payload)
32
+ }
33
+ }
34
+ }
35
+
36
+ Object.defineProperty(target, "__resetDispatchEvent", {
37
+ value: (envelope) => target.__resetEventState.dispatch(envelope),
38
+ configurable: false,
39
+ enumerable: false,
40
+ writable: false
41
+ })
42
+ }
43
+
44
+ return target.__resetEventState
45
+ }
46
+
47
+ export function listen(eventName, handler, target = getDefaultWindowTarget()) {
48
+ if (typeof eventName !== "string" || eventName.trim() === "") {
49
+ throw new TypeError("Reset event name must be a non-empty string.")
50
+ }
51
+
52
+ if (typeof handler !== "function") {
53
+ throw new TypeError("Reset event handler must be a function.")
54
+ }
55
+
56
+ const state = getState(target)
57
+ if (!state) {
58
+ return () => {}
59
+ }
60
+
61
+ const handlers = state.listeners.get(eventName) ?? new Set()
62
+ handlers.add(handler)
63
+ state.listeners.set(eventName, handlers)
64
+
65
+ return () => {
66
+ const current = state.listeners.get(eventName)
67
+ if (!current) {
68
+ return
69
+ }
70
+
71
+ current.delete(handler)
72
+ if (current.size === 0) {
73
+ state.listeners.delete(eventName)
74
+ }
75
+ }
76
+ }
77
+
78
+ export function once(eventName, handler, target = getDefaultWindowTarget()) {
79
+ let dispose = () => {}
80
+
81
+ dispose = listen(
82
+ eventName,
83
+ (payload) => {
84
+ dispose()
85
+ handler(payload)
86
+ },
87
+ target
88
+ )
89
+
90
+ return dispose
91
+ }
92
+
93
+ export function emitLocal(eventName, payload, target = getDefaultWindowTarget()) {
94
+ const state = getState(target)
95
+ if (!state) {
96
+ return
97
+ }
98
+
99
+ state.dispatch({
100
+ event: eventName,
101
+ payload
102
+ })
103
+ }
104
+
105
+ export function createEventApi(transport, target = getDefaultWindowTarget()) {
106
+ return Object.freeze({
107
+ listen(eventName, handler) {
108
+ return listen(eventName, handler, target)
109
+ },
110
+ once(eventName, handler) {
111
+ return once(eventName, handler, target)
112
+ },
113
+ emitLocal(eventName, payload) {
114
+ emitLocal(eventName, payload, target)
115
+ },
116
+ emit(eventName, payload = null) {
117
+ return transport.invoke("event.emit", {
118
+ event: eventName,
119
+ payload
120
+ })
121
+ }
122
+ })
123
+ }
package/src/index.d.ts CHANGED
@@ -6,12 +6,18 @@ export type ResetInvokeSuccess<T = unknown> = {
6
6
  export type ResetInvokeError = {
7
7
  ok: false;
8
8
  error: string;
9
+ code?: string;
10
+ details?: unknown;
9
11
  };
10
12
 
11
13
  export type ResetInvokeResponse<T = unknown> =
12
14
  | ResetInvokeSuccess<T>
13
15
  | ResetInvokeError;
14
16
 
17
+ export type ResetPlatform = "macos" | "windows" | "linux" | "unknown";
18
+
19
+ export type ResetArchitecture = "arm64" | "x64" | "x86" | "unknown";
20
+
15
21
  export interface ResetRuntime {
16
22
  invoke<T = unknown>(
17
23
  command: string,
@@ -21,41 +27,519 @@ export interface ResetRuntime {
21
27
 
22
28
  export interface ResetRuntimeWindow {
23
29
  reset?: ResetRuntime;
30
+ __resetEventState?: {
31
+ listeners: Map<string, Set<(payload: unknown) => void>>;
32
+ dispatch(envelope: { event: string; payload: unknown }): void;
33
+ };
34
+ __resetDispatchEvent?: (envelope: { event: string; payload: unknown }) => void;
35
+ }
36
+
37
+ export interface ResetRuntimeSourceOptions {
38
+ target?: ResetRuntimeWindow;
39
+ runtime?: ResetRuntime;
40
+ resolveRuntime?: () => ResetRuntime | undefined;
41
+ }
42
+
43
+ export type ResetRuntimeSource =
44
+ | ResetRuntime
45
+ | ResetRuntimeWindow
46
+ | ResetRuntimeSourceOptions
47
+ | (() => ResetRuntime | undefined)
48
+ | undefined;
49
+
50
+ export interface ResetTransport {
51
+ isAvailable(): boolean;
52
+ getRuntime(): ResetRuntime;
53
+ invokeRaw<T = unknown>(
54
+ command: string,
55
+ payload?: unknown
56
+ ): Promise<ResetInvokeResponse<T>>;
57
+ invoke<T = unknown>(command: string, payload?: unknown): Promise<T>;
58
+ }
59
+
60
+ export interface ResetCommandApi {
61
+ invoke<T = unknown>(command: string, payload?: unknown): Promise<T>;
62
+ invokeRaw<T = unknown>(
63
+ command: string,
64
+ payload?: unknown
65
+ ): Promise<ResetInvokeResponse<T>>;
66
+ }
67
+
68
+ export interface ResetAppInfo {
69
+ id: string;
70
+ name: string;
71
+ slug: string;
72
+ version: string;
73
+ windowTitle: string;
74
+ }
75
+
76
+ export interface ResetPoint {
77
+ x: number;
78
+ y: number;
79
+ }
80
+
81
+ export interface ResetSize {
82
+ width: number;
83
+ height: number;
84
+ }
85
+
86
+ export interface ResetRect extends ResetPoint, ResetSize {}
87
+
88
+ export interface ResetWindowInfo {
89
+ id: string;
90
+ title: string;
91
+ frame: ResetRect;
92
+ position: ResetPoint;
93
+ size: ResetSize;
94
+ visible: boolean;
95
+ focused: boolean;
96
+ minimized: boolean;
97
+ maximized: boolean;
98
+ resizable: boolean;
99
+ }
100
+
101
+ export interface ResetDisplayInfo {
102
+ id: string;
103
+ frame: ResetRect;
104
+ visibleFrame: ResetRect;
105
+ scaleFactor: number;
106
+ }
107
+
108
+ export interface ResetRuntimeInfo {
109
+ platform: ResetPlatform;
110
+ arch: ResetArchitecture;
111
+ frameworkVersion: string;
112
+ bridgeVersion: string;
113
+ debug: boolean;
114
+ }
115
+
116
+ export interface ResetCommandDescriptor {
117
+ command: string;
118
+ permission: string;
119
+ }
120
+
121
+ export interface ResetCapabilitiesInfo {
122
+ commands: ReadonlyArray<ResetCommandDescriptor>;
123
+ permissions: ReadonlyArray<string>;
124
+ }
125
+
126
+ export interface ResetAppApi {
127
+ getId(): Promise<string>;
128
+ getName(): Promise<string>;
129
+ getSlug(): Promise<string>;
130
+ getVersion(): Promise<string>;
131
+ getInfo(): Promise<ResetAppInfo>;
132
+ show(): Promise<{ visible: boolean }>;
133
+ hide(): Promise<{ hidden: boolean }>;
134
+ quit(): Promise<{ quitting: boolean }>;
135
+ relaunch(): Promise<{ relaunching: boolean }>;
136
+ }
137
+
138
+ export interface ResetRuntimeApi {
139
+ getPlatform(): Promise<ResetPlatform>;
140
+ getArchitecture(): Promise<ResetArchitecture>;
141
+ getFrameworkVersion(): Promise<string>;
142
+ getBridgeVersion(): Promise<string>;
143
+ getInfo(): Promise<ResetRuntimeInfo>;
144
+ getCapabilities(): Promise<ResetCapabilitiesInfo>;
145
+ }
146
+
147
+ export interface ResetWindowApi {
148
+ getCurrent(): Promise<ResetWindowInfo>;
149
+ getInfo(): Promise<ResetWindowInfo>;
150
+ list(): Promise<{ windows: ResetWindowInfo[] }>;
151
+ show(): Promise<ResetWindowInfo>;
152
+ hide(): Promise<ResetWindowInfo>;
153
+ focus(): Promise<ResetWindowInfo>;
154
+ close(): Promise<{ closed: boolean }>;
155
+ minimize(): Promise<ResetWindowInfo>;
156
+ maximize(): Promise<ResetWindowInfo>;
157
+ center(): Promise<ResetWindowInfo>;
158
+ setTitle(title: string): Promise<ResetWindowInfo>;
159
+ setSize(width: number, height: number): Promise<ResetWindowInfo>;
160
+ setResizable(resizable: boolean): Promise<ResetWindowInfo>;
161
+ }
162
+
163
+ export interface ResetDialogOpenFileOptions {
164
+ title?: string;
165
+ multiple?: boolean;
166
+ directory?: boolean;
167
+ }
168
+
169
+ export interface ResetDialogSaveFileOptions {
170
+ title?: string;
171
+ defaultPath?: string;
172
+ }
173
+
174
+ export interface ResetDialogApi {
175
+ openFile(options?: ResetDialogOpenFileOptions): Promise<{
176
+ canceled: boolean;
177
+ paths: string[];
178
+ }>;
179
+ saveFile(options?: ResetDialogSaveFileOptions): Promise<{
180
+ canceled: boolean;
181
+ path?: string;
182
+ }>;
183
+ message(title: string, message: string): Promise<{ confirmed: boolean }>;
184
+ confirm(title: string, message: string): Promise<{ confirmed: boolean }>;
185
+ }
186
+
187
+ export interface ResetDirectoryEntry {
188
+ name: string;
189
+ path: string;
190
+ kind: "file" | "directory" | "symlink" | "other";
191
+ }
192
+
193
+ export interface ResetFsApi {
194
+ readTextFile(path: string): Promise<string>;
195
+ writeTextFile(
196
+ path: string,
197
+ text: string,
198
+ options?: { createDirectories?: boolean }
199
+ ): Promise<{ written: boolean }>;
200
+ exists(path: string): Promise<boolean>;
201
+ mkdir(
202
+ path: string,
203
+ options?: { recursive?: boolean }
204
+ ): Promise<{ created: boolean }>;
205
+ remove(
206
+ path: string,
207
+ options?: { recursive?: boolean }
208
+ ): Promise<{ removed: boolean; count: number }>;
209
+ rename(from: string, to: string): Promise<{ renamed: boolean }>;
210
+ readDir(path: string): Promise<ResetDirectoryEntry[]>;
211
+ }
212
+
213
+ export interface ResetPathInfo {
214
+ homeDir: string;
215
+ tempDir: string;
216
+ appDataDir: string;
217
+ appConfigDir: string;
218
+ cacheDir: string;
219
+ }
220
+
221
+ export interface ResetPathApi {
222
+ join(...segments: string[]): Promise<string>;
223
+ basename(path: string): Promise<string>;
224
+ dirname(path: string): Promise<string>;
225
+ resolve(path: string, base?: string): Promise<string>;
226
+ getHomeDir(): Promise<string>;
227
+ getTempDir(): Promise<string>;
228
+ getAppDataDir(): Promise<string>;
229
+ getAppConfigDir(): Promise<string>;
230
+ getCacheDir(): Promise<string>;
231
+ getInfo(): Promise<ResetPathInfo>;
232
+ }
233
+
234
+ export interface ResetShellApi {
235
+ openExternal(url: string): Promise<{ opened: boolean }>;
236
+ openPath(path: string): Promise<{ opened: boolean }>;
237
+ showItemInFolder(path: string): Promise<{ shown: boolean }>;
238
+ }
239
+
240
+ export interface ResetClipboardApi {
241
+ readText(): Promise<string>;
242
+ writeText(text: string): Promise<{ written: boolean }>;
243
+ }
244
+
245
+ export interface ResetNotificationApi {
246
+ isSupported(): Promise<boolean>;
247
+ requestPermission(): Promise<{
248
+ supported: boolean;
249
+ authorized: boolean;
250
+ status: string;
251
+ }>;
252
+ show(options: { title: string; body?: string }): Promise<{
253
+ shown: boolean;
254
+ authorized: boolean;
255
+ id?: string;
256
+ }>;
257
+ }
258
+
259
+ export interface ResetScreenApi {
260
+ getCursorPosition(): Promise<ResetPoint>;
261
+ getPrimaryDisplay(): Promise<ResetDisplayInfo | null>;
262
+ getDisplays(): Promise<ResetDisplayInfo[]>;
263
+ }
264
+
265
+ export interface ResetStorageApi {
266
+ get<T = unknown>(key: string): Promise<T | null>;
267
+ set(key: string, value: unknown): Promise<{ key: string; stored: boolean }>;
268
+ remove(key: string): Promise<{ key: string; removed: boolean }>;
269
+ clear(): Promise<{ cleared: boolean }>;
270
+ getAll(): Promise<Record<string, unknown>>;
271
+ }
272
+
273
+ export interface ResetWebViewInfo {
274
+ title: string;
275
+ url: string;
276
+ canGoBack: boolean;
277
+ canGoForward: boolean;
278
+ loading: boolean;
279
+ estimatedProgress: number;
280
+ }
281
+
282
+ export interface ResetWebViewApi {
283
+ getInfo(): Promise<ResetWebViewInfo>;
284
+ reload(): Promise<ResetWebViewInfo>;
285
+ goBack(): Promise<ResetWebViewInfo>;
286
+ goForward(): Promise<ResetWebViewInfo>;
287
+ navigate(options: { url?: string; path?: string }): Promise<ResetWebViewInfo>;
288
+ setZoomFactor(factor: number): Promise<ResetWebViewInfo>;
289
+ }
290
+
291
+ export interface ResetCryptoApi {
292
+ getInfo(): Promise<{
293
+ supported: boolean;
294
+ encodings: string[];
295
+ maxRandomBytes: number;
296
+ }>;
297
+ randomBytes(
298
+ size: number,
299
+ options?: { encoding?: "hex" | "base64url" }
300
+ ): Promise<{
301
+ size: number;
302
+ encoding: "hex" | "base64url";
303
+ value: string;
304
+ }>;
305
+ randomUuid(): Promise<string>;
306
+ }
307
+
308
+ export interface ResetProcessInfo {
309
+ pid: number;
310
+ cwd: string;
311
+ platform: ResetPlatform;
312
+ arch: ResetArchitecture;
313
+ debug: boolean;
314
+ }
315
+
316
+ export interface ResetProcessApi {
317
+ getPid(): Promise<number>;
318
+ getCwd(): Promise<string>;
319
+ getInfo(): Promise<ResetProcessInfo>;
320
+ }
321
+
322
+ export interface ResetPowerInfo {
323
+ supported: boolean;
324
+ lowPowerMode: boolean;
325
+ thermalState: string;
326
+ }
327
+
328
+ export interface ResetPowerApi {
329
+ getInfo(): Promise<ResetPowerInfo>;
330
+ }
331
+
332
+ export interface ResetSupportInfo {
333
+ supported: boolean;
334
+ module: string;
335
+ platform: ResetPlatform | string;
336
+ }
337
+
338
+ export interface ResetMenuInfo extends ResetSupportInfo {
339
+ installed: boolean;
340
+ topLevelCount: number;
341
+ }
342
+
343
+ export interface ResetTrayInfo extends ResetSupportInfo {
344
+ created: boolean;
345
+ title: string;
346
+ tooltip: string;
347
+ hasMenu: boolean;
348
+ }
349
+
350
+ export interface ResetMenuItem {
351
+ id?: string;
352
+ label?: string;
353
+ enabled?: boolean;
354
+ checked?: boolean;
355
+ separator?: boolean;
356
+ submenu?: ResetMenuItem[];
357
+ }
358
+
359
+ export interface ResetMenuApi {
360
+ getInfo(): Promise<ResetMenuInfo>;
361
+ setApplicationMenu(items: ResetMenuItem[]): Promise<ResetMenuInfo>;
362
+ clearApplicationMenu(): Promise<ResetMenuInfo>;
363
+ }
364
+
365
+ export interface ResetTrayApi {
366
+ getInfo(): Promise<ResetTrayInfo>;
367
+ create(options?: {
368
+ title?: string;
369
+ tooltip?: string;
370
+ items?: ResetMenuItem[];
371
+ }): Promise<ResetTrayInfo>;
372
+ setTitle(title: string): Promise<ResetTrayInfo>;
373
+ setTooltip(tooltip: string): Promise<ResetTrayInfo>;
374
+ setMenu(items: ResetMenuItem[]): Promise<ResetTrayInfo>;
375
+ destroy(): Promise<{ destroyed: boolean }>;
376
+ }
377
+
378
+ export interface ResetShortcutApi {
379
+ getInfo(): Promise<ResetSupportInfo>;
380
+ register(accelerator: string): Promise<unknown>;
381
+ unregister(accelerator: string): Promise<unknown>;
382
+ unregisterAll(): Promise<unknown>;
383
+ }
384
+
385
+ export interface ResetProtocolApi {
386
+ getInfo(): Promise<ResetSupportInfo>;
387
+ register(options?: {
388
+ scheme?: string;
389
+ }): Promise<unknown>;
390
+ unregister(options?: {
391
+ scheme?: string;
392
+ }): Promise<unknown>;
393
+ }
394
+
395
+ export interface ResetUpdaterApi {
396
+ getInfo(): Promise<ResetSupportInfo>;
397
+ check(options?: Record<string, unknown>): Promise<unknown>;
398
+ download(options?: Record<string, unknown>): Promise<unknown>;
399
+ install(options?: Record<string, unknown>): Promise<unknown>;
400
+ }
401
+
402
+ export interface ResetNetResponse {
403
+ url: string;
404
+ status: number;
405
+ ok: boolean;
406
+ headers: Record<string, string>;
407
+ body: string;
408
+ bodyEncoding: "utf8" | "base64" | string;
409
+ }
410
+
411
+ export interface ResetNetApi {
412
+ request(options: {
413
+ url: string;
414
+ method?: string;
415
+ headers?: Record<string, string>;
416
+ body?: string;
417
+ timeoutMs?: number;
418
+ }): Promise<ResetNetResponse>;
419
+ }
420
+
421
+ export interface ResetClient {
422
+ isAvailable(): boolean;
423
+ getRuntime(): ResetRuntime;
424
+ commands: ResetCommandApi;
425
+ app: ResetAppApi;
426
+ runtime: ResetRuntimeApi;
427
+ events: ResetEventApi;
428
+ window: ResetWindowApi;
429
+ dialog: ResetDialogApi;
430
+ fs: ResetFsApi;
431
+ path: ResetPathApi;
432
+ shell: ResetShellApi;
433
+ clipboard: ResetClipboardApi;
434
+ notification: ResetNotificationApi;
435
+ screen: ResetScreenApi;
436
+ storage: ResetStorageApi;
437
+ webview: ResetWebViewApi;
438
+ crypto: ResetCryptoApi;
439
+ process: ResetProcessApi;
440
+ power: ResetPowerApi;
441
+ menu: ResetMenuApi;
442
+ tray: ResetTrayApi;
443
+ shortcut: ResetShortcutApi;
444
+ protocol: ResetProtocolApi;
445
+ updater: ResetUpdaterApi;
446
+ net: ResetNetApi;
447
+ }
448
+
449
+ export interface ResetEventApi {
450
+ listen<T = unknown>(
451
+ eventName: string,
452
+ handler: (payload: T) => void
453
+ ): () => void;
454
+ once<T = unknown>(
455
+ eventName: string,
456
+ handler: (payload: T) => void
457
+ ): () => void;
458
+ emitLocal<T = unknown>(eventName: string, payload: T): void;
459
+ emit<T = unknown>(eventName: string, payload?: T): Promise<{
460
+ delivered: boolean;
461
+ event: string;
462
+ }>;
24
463
  }
25
464
 
26
465
  declare global {
27
466
  interface Window extends ResetRuntimeWindow {}
28
467
  }
29
468
 
30
- export class ResetRuntimeUnavailableError extends Error {
469
+ export class ResetRuntimeError extends Error {
470
+ cause?: unknown;
471
+ constructor(message?: string, options?: { cause?: unknown });
472
+ }
473
+
474
+ export class ResetRuntimeUnavailableError extends ResetRuntimeError {
31
475
  constructor(message?: string);
32
476
  }
33
477
 
478
+ export class ResetProtocolError extends ResetRuntimeError {
479
+ command?: string;
480
+ constructor(message?: string, options?: { command?: string; cause?: unknown });
481
+ }
482
+
483
+ export class ResetInvocationError extends ResetRuntimeError {
484
+ command: string;
485
+ response: ResetInvokeError;
486
+ code?: string;
487
+ details?: unknown;
488
+ constructor(
489
+ command: string,
490
+ message: string,
491
+ response: ResetInvokeError,
492
+ options?: { cause?: unknown }
493
+ );
494
+ }
495
+
34
496
  export function isResetRuntimeAvailable(
35
- target?: ResetRuntimeWindow
497
+ source?: ResetRuntimeSource
36
498
  ): boolean;
37
499
 
38
500
  export function getResetRuntime(
39
- target?: ResetRuntimeWindow
501
+ source?: ResetRuntimeSource
40
502
  ): ResetRuntime;
41
503
 
504
+ export function createResetTransport(
505
+ source?: ResetRuntimeSource
506
+ ): ResetTransport;
507
+
42
508
  export function invokeRaw<T = unknown>(
43
509
  command: string,
44
510
  payload?: unknown,
45
- target?: ResetRuntimeWindow
511
+ source?: ResetRuntimeSource
46
512
  ): Promise<ResetInvokeResponse<T>>;
47
513
 
48
514
  export function invoke<T = unknown>(
49
515
  command: string,
50
516
  payload?: unknown,
51
- target?: ResetRuntimeWindow
517
+ source?: ResetRuntimeSource
52
518
  ): Promise<T>;
53
519
 
54
- export function createResetClient(target?: ResetRuntimeWindow): {
55
- isAvailable(): boolean;
56
- invoke<T = unknown>(command: string, payload?: unknown): Promise<T>;
57
- invokeRaw<T = unknown>(
58
- command: string,
59
- payload?: unknown
60
- ): Promise<ResetInvokeResponse<T>>;
61
- };
520
+ export function createResetClient(source?: ResetRuntimeSource): ResetClient;
521
+
522
+ export const reset: ResetClient;
523
+ export const commands: ResetCommandApi;
524
+ export const app: ResetAppApi;
525
+ export const runtime: ResetRuntimeApi;
526
+ export const events: ResetEventApi;
527
+ export const window: ResetWindowApi;
528
+ export const dialog: ResetDialogApi;
529
+ export const fs: ResetFsApi;
530
+ export const path: ResetPathApi;
531
+ export const shell: ResetShellApi;
532
+ export const clipboard: ResetClipboardApi;
533
+ export const notification: ResetNotificationApi;
534
+ export const screen: ResetScreenApi;
535
+ export const storage: ResetStorageApi;
536
+ export const webview: ResetWebViewApi;
537
+ export const crypto: ResetCryptoApi;
538
+ export const process: ResetProcessApi;
539
+ export const power: ResetPowerApi;
540
+ export const menu: ResetMenuApi;
541
+ export const tray: ResetTrayApi;
542
+ export const shortcut: ResetShortcutApi;
543
+ export const protocol: ResetProtocolApi;
544
+ export const updater: ResetUpdaterApi;
545
+ export const net: ResetNetApi;