@xwiki/cristal-settings-api 1.0.0 → 1.1.0-rc-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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xwiki/cristal-settings-api",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-rc-1",
4
4
  "license": "LGPL 2.1",
5
5
  "author": "XWiki Org Community <contact@xwiki.org>",
6
6
  "homepage": "https://cristal.xwiki.org/",
@@ -20,9 +20,9 @@
20
20
  },
21
21
  "types": "./dist/index.d.ts",
22
22
  "devDependencies": {
23
- "@xwiki/platform-dsapi": "18.0.0",
23
+ "@xwiki/platform-dsapi": "18.1.0-rc-1",
24
24
  "typescript": "5.9.3",
25
- "@xwiki/cristal-dev-config": "1.0.0"
25
+ "@xwiki/cristal-dev-config": "1.1.0-rc-1"
26
26
  },
27
27
  "scripts": {
28
28
  "api-extractor:local": "api-extractor run --local",
@@ -0,0 +1,709 @@
1
+ {
2
+ "metadata": {
3
+ "toolPackage": "@microsoft/api-extractor",
4
+ "toolVersion": "7.56.3",
5
+ "schemaVersion": 1011,
6
+ "oldestForwardsCompatibleVersion": 1001,
7
+ "tsdocConfig": {
8
+ "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
9
+ "noStandardTags": true,
10
+ "tagDefinitions": [
11
+ {
12
+ "tagName": "@alpha",
13
+ "syntaxKind": "modifier"
14
+ },
15
+ {
16
+ "tagName": "@beta",
17
+ "syntaxKind": "modifier"
18
+ },
19
+ {
20
+ "tagName": "@defaultValue",
21
+ "syntaxKind": "block"
22
+ },
23
+ {
24
+ "tagName": "@decorator",
25
+ "syntaxKind": "block",
26
+ "allowMultiple": true
27
+ },
28
+ {
29
+ "tagName": "@deprecated",
30
+ "syntaxKind": "block"
31
+ },
32
+ {
33
+ "tagName": "@eventProperty",
34
+ "syntaxKind": "modifier"
35
+ },
36
+ {
37
+ "tagName": "@example",
38
+ "syntaxKind": "block",
39
+ "allowMultiple": true
40
+ },
41
+ {
42
+ "tagName": "@experimental",
43
+ "syntaxKind": "modifier"
44
+ },
45
+ {
46
+ "tagName": "@inheritDoc",
47
+ "syntaxKind": "inline"
48
+ },
49
+ {
50
+ "tagName": "@internal",
51
+ "syntaxKind": "modifier"
52
+ },
53
+ {
54
+ "tagName": "@label",
55
+ "syntaxKind": "inline"
56
+ },
57
+ {
58
+ "tagName": "@link",
59
+ "syntaxKind": "inline",
60
+ "allowMultiple": true
61
+ },
62
+ {
63
+ "tagName": "@override",
64
+ "syntaxKind": "modifier"
65
+ },
66
+ {
67
+ "tagName": "@packageDocumentation",
68
+ "syntaxKind": "modifier"
69
+ },
70
+ {
71
+ "tagName": "@param",
72
+ "syntaxKind": "block",
73
+ "allowMultiple": true
74
+ },
75
+ {
76
+ "tagName": "@privateRemarks",
77
+ "syntaxKind": "block"
78
+ },
79
+ {
80
+ "tagName": "@public",
81
+ "syntaxKind": "modifier"
82
+ },
83
+ {
84
+ "tagName": "@readonly",
85
+ "syntaxKind": "modifier"
86
+ },
87
+ {
88
+ "tagName": "@remarks",
89
+ "syntaxKind": "block"
90
+ },
91
+ {
92
+ "tagName": "@returns",
93
+ "syntaxKind": "block"
94
+ },
95
+ {
96
+ "tagName": "@sealed",
97
+ "syntaxKind": "modifier"
98
+ },
99
+ {
100
+ "tagName": "@see",
101
+ "syntaxKind": "block"
102
+ },
103
+ {
104
+ "tagName": "@throws",
105
+ "syntaxKind": "block",
106
+ "allowMultiple": true
107
+ },
108
+ {
109
+ "tagName": "@typeParam",
110
+ "syntaxKind": "block",
111
+ "allowMultiple": true
112
+ },
113
+ {
114
+ "tagName": "@virtual",
115
+ "syntaxKind": "modifier"
116
+ },
117
+ {
118
+ "tagName": "@jsx",
119
+ "syntaxKind": "block"
120
+ },
121
+ {
122
+ "tagName": "@jsxRuntime",
123
+ "syntaxKind": "block"
124
+ },
125
+ {
126
+ "tagName": "@jsxFrag",
127
+ "syntaxKind": "block"
128
+ },
129
+ {
130
+ "tagName": "@jsxImportSource",
131
+ "syntaxKind": "block"
132
+ },
133
+ {
134
+ "tagName": "@since",
135
+ "syntaxKind": "block"
136
+ }
137
+ ],
138
+ "supportForTags": {
139
+ "@beta": true,
140
+ "@deprecated": true,
141
+ "@example": true,
142
+ "@internal": true,
143
+ "@link": true,
144
+ "@param": true,
145
+ "@public": true,
146
+ "@returns": true,
147
+ "@see": true,
148
+ "@throws": true,
149
+ "@since": true
150
+ },
151
+ "reportUnsupportedHtmlElements": false
152
+ }
153
+ },
154
+ "kind": "Package",
155
+ "canonicalReference": "@xwiki/cristal-settings-api!",
156
+ "docComment": "",
157
+ "name": "@xwiki/cristal-settings-api",
158
+ "preserveMemberOrder": false,
159
+ "members": [
160
+ {
161
+ "kind": "EntryPoint",
162
+ "canonicalReference": "@xwiki/cristal-settings-api!",
163
+ "name": "",
164
+ "preserveMemberOrder": false,
165
+ "members": [
166
+ {
167
+ "kind": "Interface",
168
+ "canonicalReference": "@xwiki/cristal-settings-api!Settings:interface",
169
+ "docComment": "/**\n * Generic type to handle settings in Cristal. This should be extended with a properly typed \"content\" attribute for specific settings.\n *\n * @since\n *\n * 0.18\n *\n * @beta\n */\n",
170
+ "excerptTokens": [
171
+ {
172
+ "kind": "Content",
173
+ "text": "export interface Settings "
174
+ }
175
+ ],
176
+ "fileUrlPath": "src/settings.ts",
177
+ "releaseTag": "Beta",
178
+ "name": "Settings",
179
+ "preserveMemberOrder": false,
180
+ "members": [
181
+ {
182
+ "kind": "PropertySignature",
183
+ "canonicalReference": "@xwiki/cristal-settings-api!Settings#content:member",
184
+ "docComment": "",
185
+ "excerptTokens": [
186
+ {
187
+ "kind": "Content",
188
+ "text": "content: "
189
+ },
190
+ {
191
+ "kind": "Content",
192
+ "text": "unknown"
193
+ },
194
+ {
195
+ "kind": "Content",
196
+ "text": ";"
197
+ }
198
+ ],
199
+ "isReadonly": false,
200
+ "isOptional": false,
201
+ "releaseTag": "Beta",
202
+ "name": "content",
203
+ "propertyTypeTokenRange": {
204
+ "startIndex": 1,
205
+ "endIndex": 2
206
+ }
207
+ },
208
+ {
209
+ "kind": "PropertySignature",
210
+ "canonicalReference": "@xwiki/cristal-settings-api!Settings#key:member",
211
+ "docComment": "",
212
+ "excerptTokens": [
213
+ {
214
+ "kind": "Content",
215
+ "text": "key: "
216
+ },
217
+ {
218
+ "kind": "Content",
219
+ "text": "string"
220
+ },
221
+ {
222
+ "kind": "Content",
223
+ "text": ";"
224
+ }
225
+ ],
226
+ "isReadonly": false,
227
+ "isOptional": false,
228
+ "releaseTag": "Beta",
229
+ "name": "key",
230
+ "propertyTypeTokenRange": {
231
+ "startIndex": 1,
232
+ "endIndex": 2
233
+ }
234
+ }
235
+ ],
236
+ "extendsTokenRanges": []
237
+ },
238
+ {
239
+ "kind": "Interface",
240
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsManager:interface",
241
+ "docComment": "/**\n * A SettingsManager handles operations on Cristal's settings.\n *\n * @since\n *\n * 0.18\n *\n * @beta\n */\n",
242
+ "excerptTokens": [
243
+ {
244
+ "kind": "Content",
245
+ "text": "export interface SettingsManager "
246
+ }
247
+ ],
248
+ "fileUrlPath": "src/settingsManager.ts",
249
+ "releaseTag": "Beta",
250
+ "name": "SettingsManager",
251
+ "preserveMemberOrder": false,
252
+ "members": [
253
+ {
254
+ "kind": "MethodSignature",
255
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsManager#fromJSON:member(1)",
256
+ "docComment": "/**\n * Populates settings from a JSON representation.\n *\n * @param json - the JSON representation.\n */\n",
257
+ "excerptTokens": [
258
+ {
259
+ "kind": "Content",
260
+ "text": "fromJSON(json: "
261
+ },
262
+ {
263
+ "kind": "Content",
264
+ "text": "string"
265
+ },
266
+ {
267
+ "kind": "Content",
268
+ "text": "): "
269
+ },
270
+ {
271
+ "kind": "Content",
272
+ "text": "void"
273
+ },
274
+ {
275
+ "kind": "Content",
276
+ "text": ";"
277
+ }
278
+ ],
279
+ "isOptional": false,
280
+ "returnTypeTokenRange": {
281
+ "startIndex": 3,
282
+ "endIndex": 4
283
+ },
284
+ "releaseTag": "Beta",
285
+ "overloadIndex": 1,
286
+ "parameters": [
287
+ {
288
+ "parameterName": "json",
289
+ "parameterTypeTokenRange": {
290
+ "startIndex": 1,
291
+ "endIndex": 2
292
+ },
293
+ "isOptional": false
294
+ }
295
+ ],
296
+ "name": "fromJSON"
297
+ },
298
+ {
299
+ "kind": "MethodSignature",
300
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsManager#get:member(1)",
301
+ "docComment": "/**\n * Retrieves the settings associated to a given type.\n *\n * @param type - the type of settings to retrieve.\n *\n * @returns the stored instance, or undefined if not found.\n */\n",
302
+ "excerptTokens": [
303
+ {
304
+ "kind": "Content",
305
+ "text": "get<T extends "
306
+ },
307
+ {
308
+ "kind": "Reference",
309
+ "text": "Settings",
310
+ "canonicalReference": "@xwiki/cristal-settings-api!Settings:interface"
311
+ },
312
+ {
313
+ "kind": "Content",
314
+ "text": ">(type: "
315
+ },
316
+ {
317
+ "kind": "Content",
318
+ "text": "new () => T"
319
+ },
320
+ {
321
+ "kind": "Content",
322
+ "text": "): "
323
+ },
324
+ {
325
+ "kind": "Content",
326
+ "text": "T | undefined"
327
+ },
328
+ {
329
+ "kind": "Content",
330
+ "text": ";"
331
+ }
332
+ ],
333
+ "isOptional": false,
334
+ "returnTypeTokenRange": {
335
+ "startIndex": 5,
336
+ "endIndex": 6
337
+ },
338
+ "releaseTag": "Beta",
339
+ "overloadIndex": 1,
340
+ "parameters": [
341
+ {
342
+ "parameterName": "type",
343
+ "parameterTypeTokenRange": {
344
+ "startIndex": 3,
345
+ "endIndex": 4
346
+ },
347
+ "isOptional": false
348
+ }
349
+ ],
350
+ "typeParameters": [
351
+ {
352
+ "typeParameterName": "T",
353
+ "constraintTokenRange": {
354
+ "startIndex": 1,
355
+ "endIndex": 2
356
+ },
357
+ "defaultTypeTokenRange": {
358
+ "startIndex": 0,
359
+ "endIndex": 0
360
+ }
361
+ }
362
+ ],
363
+ "name": "get"
364
+ },
365
+ {
366
+ "kind": "MethodSignature",
367
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsManager#set:member(1)",
368
+ "docComment": "/**\n * Updates the stored settings for the correct type of settings. The type should be deduced from the \"key\" attribute of the instance.\n *\n * @param settings - the settings instance to store.\n */\n",
369
+ "excerptTokens": [
370
+ {
371
+ "kind": "Content",
372
+ "text": "set(settings: "
373
+ },
374
+ {
375
+ "kind": "Reference",
376
+ "text": "Settings",
377
+ "canonicalReference": "@xwiki/cristal-settings-api!Settings:interface"
378
+ },
379
+ {
380
+ "kind": "Content",
381
+ "text": "): "
382
+ },
383
+ {
384
+ "kind": "Content",
385
+ "text": "void"
386
+ },
387
+ {
388
+ "kind": "Content",
389
+ "text": ";"
390
+ }
391
+ ],
392
+ "isOptional": false,
393
+ "returnTypeTokenRange": {
394
+ "startIndex": 3,
395
+ "endIndex": 4
396
+ },
397
+ "releaseTag": "Beta",
398
+ "overloadIndex": 1,
399
+ "parameters": [
400
+ {
401
+ "parameterName": "settings",
402
+ "parameterTypeTokenRange": {
403
+ "startIndex": 1,
404
+ "endIndex": 2
405
+ },
406
+ "isOptional": false
407
+ }
408
+ ],
409
+ "name": "set"
410
+ },
411
+ {
412
+ "kind": "MethodSignature",
413
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsManager#toJSON:member(1)",
414
+ "docComment": "/**\n * Converts all the settings stored into a JSON representation.\n *\n * @returns a JSON representation.\n */\n",
415
+ "excerptTokens": [
416
+ {
417
+ "kind": "Content",
418
+ "text": "toJSON(): "
419
+ },
420
+ {
421
+ "kind": "Content",
422
+ "text": "string"
423
+ },
424
+ {
425
+ "kind": "Content",
426
+ "text": ";"
427
+ }
428
+ ],
429
+ "isOptional": false,
430
+ "returnTypeTokenRange": {
431
+ "startIndex": 1,
432
+ "endIndex": 2
433
+ },
434
+ "releaseTag": "Beta",
435
+ "overloadIndex": 1,
436
+ "parameters": [],
437
+ "name": "toJSON"
438
+ }
439
+ ],
440
+ "extendsTokenRanges": []
441
+ },
442
+ {
443
+ "kind": "Interface",
444
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsParser:interface",
445
+ "docComment": "/**\n * A SettingsParser parses a JSON representation of settings into an actual Settings object. For specific implementations, it needs to be registered as a named component, with the name being the \"key\" attribute of the Settings' concrete type.\n *\n * @since\n *\n * 0.18\n *\n * @beta\n */\n",
446
+ "excerptTokens": [
447
+ {
448
+ "kind": "Content",
449
+ "text": "interface SettingsParser "
450
+ }
451
+ ],
452
+ "fileUrlPath": "src/settingsParser.ts",
453
+ "releaseTag": "Beta",
454
+ "name": "SettingsParser",
455
+ "preserveMemberOrder": false,
456
+ "members": [
457
+ {
458
+ "kind": "MethodSignature",
459
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsParser#parse:member(1)",
460
+ "docComment": "/**\n * Parses a given JSON representation into an actual Settings instance.\n *\n * @param serializedSettings - the JSON representation.\n *\n * @param key - the Settings key.\n */\n",
461
+ "excerptTokens": [
462
+ {
463
+ "kind": "Content",
464
+ "text": "parse(serializedSettings: "
465
+ },
466
+ {
467
+ "kind": "Content",
468
+ "text": "string"
469
+ },
470
+ {
471
+ "kind": "Content",
472
+ "text": ", key: "
473
+ },
474
+ {
475
+ "kind": "Content",
476
+ "text": "string"
477
+ },
478
+ {
479
+ "kind": "Content",
480
+ "text": "): "
481
+ },
482
+ {
483
+ "kind": "Reference",
484
+ "text": "Settings",
485
+ "canonicalReference": "@xwiki/cristal-settings-api!Settings:interface"
486
+ },
487
+ {
488
+ "kind": "Content",
489
+ "text": ";"
490
+ }
491
+ ],
492
+ "isOptional": false,
493
+ "returnTypeTokenRange": {
494
+ "startIndex": 5,
495
+ "endIndex": 6
496
+ },
497
+ "releaseTag": "Beta",
498
+ "overloadIndex": 1,
499
+ "parameters": [
500
+ {
501
+ "parameterName": "serializedSettings",
502
+ "parameterTypeTokenRange": {
503
+ "startIndex": 1,
504
+ "endIndex": 2
505
+ },
506
+ "isOptional": false
507
+ },
508
+ {
509
+ "parameterName": "key",
510
+ "parameterTypeTokenRange": {
511
+ "startIndex": 3,
512
+ "endIndex": 4
513
+ },
514
+ "isOptional": false
515
+ }
516
+ ],
517
+ "name": "parse"
518
+ }
519
+ ],
520
+ "extendsTokenRanges": []
521
+ },
522
+ {
523
+ "kind": "Interface",
524
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsParserProvider:interface",
525
+ "docComment": "/**\n * A SettingsParserProvider retrieves the best instance of SettingsParser for a given Settings key.\n *\n * @since\n *\n * 0.18\n *\n * @beta\n */\n",
526
+ "excerptTokens": [
527
+ {
528
+ "kind": "Content",
529
+ "text": "interface SettingsParserProvider "
530
+ }
531
+ ],
532
+ "fileUrlPath": "src/settingsParser.ts",
533
+ "releaseTag": "Beta",
534
+ "name": "SettingsParserProvider",
535
+ "preserveMemberOrder": false,
536
+ "members": [
537
+ {
538
+ "kind": "MethodSignature",
539
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsParserProvider#get:member(1)",
540
+ "docComment": "/**\n * Returns the Parser registered for the given type, or the default one if not found or not specified.\n *\n * @param type - the Settings type to match.\n */\n",
541
+ "excerptTokens": [
542
+ {
543
+ "kind": "Content",
544
+ "text": "get(type?: "
545
+ },
546
+ {
547
+ "kind": "Content",
548
+ "text": "string"
549
+ },
550
+ {
551
+ "kind": "Content",
552
+ "text": "): "
553
+ },
554
+ {
555
+ "kind": "Reference",
556
+ "text": "SettingsParser",
557
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsParser:interface"
558
+ },
559
+ {
560
+ "kind": "Content",
561
+ "text": ";"
562
+ }
563
+ ],
564
+ "isOptional": false,
565
+ "returnTypeTokenRange": {
566
+ "startIndex": 3,
567
+ "endIndex": 4
568
+ },
569
+ "releaseTag": "Beta",
570
+ "overloadIndex": 1,
571
+ "parameters": [
572
+ {
573
+ "parameterName": "type",
574
+ "parameterTypeTokenRange": {
575
+ "startIndex": 1,
576
+ "endIndex": 2
577
+ },
578
+ "isOptional": true
579
+ }
580
+ ],
581
+ "name": "get"
582
+ }
583
+ ],
584
+ "extendsTokenRanges": []
585
+ },
586
+ {
587
+ "kind": "Interface",
588
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsStorage:interface",
589
+ "docComment": "/**\n * A SettingsStorage can persistently store and retrieve settings, from and to a {@link SettingsManager} instance.\n *\n * @since\n *\n * 0.18\n *\n * @beta\n */\n",
590
+ "excerptTokens": [
591
+ {
592
+ "kind": "Content",
593
+ "text": "export interface SettingsStorage "
594
+ }
595
+ ],
596
+ "fileUrlPath": "src/settingsStorage.ts",
597
+ "releaseTag": "Beta",
598
+ "name": "SettingsStorage",
599
+ "preserveMemberOrder": false,
600
+ "members": [
601
+ {
602
+ "kind": "MethodSignature",
603
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsStorage#load:member(1)",
604
+ "docComment": "/**\n * Loads saved settings into a given SettingsManager.\n *\n * @param settingsManager - the settings manager to write to.\n */\n",
605
+ "excerptTokens": [
606
+ {
607
+ "kind": "Content",
608
+ "text": "load(settingsManager: "
609
+ },
610
+ {
611
+ "kind": "Reference",
612
+ "text": "SettingsManager",
613
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsManager:interface"
614
+ },
615
+ {
616
+ "kind": "Content",
617
+ "text": "): "
618
+ },
619
+ {
620
+ "kind": "Reference",
621
+ "text": "Promise",
622
+ "canonicalReference": "!Promise:interface"
623
+ },
624
+ {
625
+ "kind": "Content",
626
+ "text": "<void>"
627
+ },
628
+ {
629
+ "kind": "Content",
630
+ "text": ";"
631
+ }
632
+ ],
633
+ "isOptional": false,
634
+ "returnTypeTokenRange": {
635
+ "startIndex": 3,
636
+ "endIndex": 5
637
+ },
638
+ "releaseTag": "Beta",
639
+ "overloadIndex": 1,
640
+ "parameters": [
641
+ {
642
+ "parameterName": "settingsManager",
643
+ "parameterTypeTokenRange": {
644
+ "startIndex": 1,
645
+ "endIndex": 2
646
+ },
647
+ "isOptional": false
648
+ }
649
+ ],
650
+ "name": "load"
651
+ },
652
+ {
653
+ "kind": "MethodSignature",
654
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsStorage#save:member(1)",
655
+ "docComment": "/**\n * Saves the settings currently stored in a given SettingsManager.\n *\n * @param settingsManager - the settings manager to read from.\n */\n",
656
+ "excerptTokens": [
657
+ {
658
+ "kind": "Content",
659
+ "text": "save(settingsManager: "
660
+ },
661
+ {
662
+ "kind": "Reference",
663
+ "text": "SettingsManager",
664
+ "canonicalReference": "@xwiki/cristal-settings-api!SettingsManager:interface"
665
+ },
666
+ {
667
+ "kind": "Content",
668
+ "text": "): "
669
+ },
670
+ {
671
+ "kind": "Reference",
672
+ "text": "Promise",
673
+ "canonicalReference": "!Promise:interface"
674
+ },
675
+ {
676
+ "kind": "Content",
677
+ "text": "<void>"
678
+ },
679
+ {
680
+ "kind": "Content",
681
+ "text": ";"
682
+ }
683
+ ],
684
+ "isOptional": false,
685
+ "returnTypeTokenRange": {
686
+ "startIndex": 3,
687
+ "endIndex": 5
688
+ },
689
+ "releaseTag": "Beta",
690
+ "overloadIndex": 1,
691
+ "parameters": [
692
+ {
693
+ "parameterName": "settingsManager",
694
+ "parameterTypeTokenRange": {
695
+ "startIndex": 1,
696
+ "endIndex": 2
697
+ },
698
+ "isOptional": false
699
+ }
700
+ ],
701
+ "name": "save"
702
+ }
703
+ ],
704
+ "extendsTokenRanges": []
705
+ }
706
+ ]
707
+ }
708
+ ]
709
+ }
@@ -0,0 +1,41 @@
1
+ ## API Report File for "@xwiki/cristal-settings-api"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+
7
+ // @beta
8
+ export interface Settings {
9
+ // (undocumented)
10
+ content: unknown;
11
+ // (undocumented)
12
+ key: string;
13
+ }
14
+
15
+ // @beta
16
+ export interface SettingsManager {
17
+ fromJSON(json: string): void;
18
+ get<T extends Settings>(type: new () => T): T | undefined;
19
+ set(settings: Settings): void;
20
+ toJSON(): string;
21
+ }
22
+
23
+ // @beta
24
+ export interface SettingsParser {
25
+ parse(serializedSettings: string, key: string): Settings;
26
+ }
27
+
28
+ // @beta
29
+ export interface SettingsParserProvider {
30
+ get(type?: string): SettingsParser;
31
+ }
32
+
33
+ // @beta
34
+ export interface SettingsStorage {
35
+ load(settingsManager: SettingsManager): Promise<void>;
36
+ save(settingsManager: SettingsManager): Promise<void>;
37
+ }
38
+
39
+ // (No @packageDocumentation comment for this package)
40
+
41
+ ```