@wc-toolkit/vuejs-types 1.0.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.
@@ -0,0 +1,814 @@
1
+ import { ComponentDescriptionOptions } from '@wc-toolkit/cem-utilities';
2
+
3
+ type VuejsTypesOptions = {
4
+ /** Used to get a specific path for a given component */
5
+ componentTypePath?: (name: string, tag?: string, modulePath?: string) => string;
6
+ /** Name of the file generated */
7
+ fileName?: string;
8
+ /** Path to output directory */
9
+ outdir?: string;
10
+ /** Component names to exclude form process */
11
+ exclude?: string[];
12
+ /** Used to get global type reference for components */
13
+ globalTypePath?: string;
14
+ /** Indicates if the component classes are a default export rather than a named export */
15
+ defaultExport?: boolean;
16
+ /** Creates event types where the event's target is stringly typed to the custom element */
17
+ stronglyTypedEvents?: boolean;
18
+ /** Adds types to allow users to add undefined attributes or props to the custom elements */
19
+ allowUnknownProps?: boolean;
20
+ /** Use prop types extracted into the custom elements manifest instead of referencing the component class */
21
+ useCemTypes?: boolean;
22
+ /** Property name on the CEM member/attribute to read types from (default: "type") */
23
+ typesSrc?: string;
24
+ /** Exclude types for CSS custom properties */
25
+ excludeCssCustomProperties?: boolean;
26
+ /** Optional function to format tag names before processing. */
27
+ tagFormatter?: (tagName: string) => string;
28
+ /** Available options for configuring the way the components description is rendered */
29
+ componentDescriptionOptions?: ComponentDescriptionOptions;
30
+ /** @deprecated This feature never worked as intended and will be removed in the next major release */
31
+ overrideCustomEventType?: boolean;
32
+ /** Skips the code from running */
33
+ skip?: boolean;
34
+ /** Shows contextual logs */
35
+ debug?: boolean;
36
+ /**
37
+ * @deprecated use `tagFormatter` instead
38
+ * Adds a prefix to tag references
39
+ */
40
+ prefix?: string;
41
+ /**
42
+ * @deprecated use `tagFormatter` instead
43
+ * Adds a suffix to tag references
44
+ */
45
+ suffix?: string;
46
+ };
47
+
48
+ /**
49
+ * Plugin to generate Vue.js types for web components based on a custom elements manifest.
50
+ *
51
+ * @param options - Configuration options for the Vue.js types plugin
52
+ * @returns
53
+ */
54
+ declare function vuejsTypesPlugin(options?: VuejsTypesOptions): {
55
+ name: string;
56
+ packageLinkPhase({ customElementsManifest }: any): void;
57
+ };
58
+
59
+ /**
60
+ * @license
61
+ * Copyright (c) 2019 The Polymer Project Authors. All rights reserved.
62
+ * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
63
+ * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
64
+ * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
65
+ * Code distributed by Google as part of the polymer project is also
66
+ * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
67
+ */
68
+
69
+ /**
70
+ * The top-level interface of a custom elements manifest file.
71
+ *
72
+ * Because custom elements are JavaScript classes, describing a custom element
73
+ * may require describing arbitrary JavaScript concepts like modules, classes,
74
+ * functions, etc. So custom elements manifests are capable of documenting
75
+ * the elements in a package, as well as those JavaScript concepts.
76
+ *
77
+ * The modules described in a package should be the public entrypoints that
78
+ * other packages may import from. Multiple modules may export the same object
79
+ * via re-exports, but in most cases a package should document the single
80
+ * canonical export that should be used.
81
+ */
82
+ interface Package {
83
+ /**
84
+ * The version of the schema used in this file.
85
+ */
86
+ schemaVersion: string;
87
+
88
+ /**
89
+ * The Markdown to use for the main readme of this package.
90
+ *
91
+ * This can be used to override the readme used by Github or npm if that
92
+ * file contains information irrelevant to custom element catalogs and
93
+ * documentation viewers.
94
+ */
95
+ readme?: string;
96
+
97
+ /**
98
+ * An array of the modules this package contains.
99
+ */
100
+ modules: Array<Module>;
101
+
102
+ /**
103
+ * Whether the package is deprecated.
104
+ * If the value is a string, it's the reason for the deprecation.
105
+ */
106
+ deprecated?: boolean | string;
107
+ }
108
+
109
+ // This type may expand in the future to include JSON, CSS, or HTML
110
+ // modules.
111
+ type Module = JavaScriptModule;
112
+
113
+ interface JavaScriptModule {
114
+ kind: 'javascript-module';
115
+
116
+ /**
117
+ * Path to the javascript file needed to be imported.
118
+ * (not the path for example to a typescript file.)
119
+ */
120
+ path: string;
121
+
122
+ /**
123
+ * A markdown summary suitable for display in a listing.
124
+ */
125
+ summary?: string;
126
+
127
+ /**
128
+ * A markdown description of the module.
129
+ */
130
+ description?: string;
131
+
132
+ /**
133
+ * The declarations of a module.
134
+ *
135
+ * For documentation purposes, all declarations that are reachable from
136
+ * exports should be described here. Ie, functions and objects that may be
137
+ * properties of exported objects, or passed as arguments to functions.
138
+ */
139
+ declarations?: Array<Declaration>;
140
+
141
+ /**
142
+ * The exports of a module. This includes JavaScript exports and
143
+ * custom element definitions.
144
+ */
145
+ exports?: Array<Export>;
146
+
147
+ /**
148
+ * Whether the module is deprecated.
149
+ * If the value is a string, it's the reason for the deprecation.
150
+ */
151
+ deprecated?: boolean | string;
152
+ }
153
+
154
+ type Export = JavaScriptExport | CustomElementExport;
155
+
156
+ interface JavaScriptExport {
157
+ kind: 'js';
158
+
159
+ /**
160
+ * The name of the exported symbol.
161
+ *
162
+ * JavaScript has a number of ways to export objects which determine the
163
+ * correct name to use.
164
+ *
165
+ * - Default exports must use the name "default".
166
+ * - Named exports use the name that is exported. If the export is renamed
167
+ * with the "as" clause, use the exported name.
168
+ * - Aggregating exports (`* from`) should use the name `*`
169
+ */
170
+ name: string;
171
+
172
+ /**
173
+ * A reference to the exported declaration.
174
+ *
175
+ * In the case of aggregating exports, the reference's `module` field must be
176
+ * defined and the `name` field must be `"*"`.
177
+ */
178
+ declaration: Reference;
179
+
180
+ /**
181
+ * Whether the export is deprecated. For example, the name of the export was changed.
182
+ * If the value is a string, it's the reason for the deprecation.
183
+ */
184
+ deprecated?: boolean | string;
185
+ }
186
+
187
+ /**
188
+ * A global custom element defintion, ie the result of a
189
+ * `customElements.define()` call.
190
+ *
191
+ * This is represented as an export because a definition makes the element
192
+ * available outside of the module it's defined it.
193
+ */
194
+ interface CustomElementExport {
195
+ kind: 'custom-element-definition';
196
+
197
+ /**
198
+ * The tag name of the custom element.
199
+ */
200
+ name: string;
201
+
202
+ /**
203
+ * A reference to the class or other declaration that implements the
204
+ * custom element.
205
+ */
206
+ declaration: Reference;
207
+
208
+ /**
209
+ * Whether the custom-element export is deprecated.
210
+ * For example, a future version will not register the custom element in this file.
211
+ * If the value is a string, it's the reason for the deprecation.
212
+ */
213
+ deprecated?: boolean | string;
214
+ }
215
+
216
+ type Declaration =
217
+ | ClassDeclaration
218
+ | FunctionDeclaration
219
+ | MixinDeclaration
220
+ | VariableDeclaration
221
+ | CustomElementDeclaration
222
+ | CustomElementMixinDeclaration;
223
+
224
+ /**
225
+ * A reference to an export of a module.
226
+ *
227
+ * All references are required to be publically accessible, so the canonical
228
+ * representation of a reference is the export it's available from.
229
+ *
230
+ * `package` should generally refer to an npm package name. If `package` is
231
+ * undefined then the reference is local to this package. If `module` is
232
+ * undefined the reference is local to the containing module.
233
+ *
234
+ * References to global symbols like `Array`, `HTMLElement`, or `Event` should
235
+ * use a `package` name of `"global:"`.
236
+ */
237
+ interface Reference {
238
+ name: string;
239
+ package?: string;
240
+ module?: string;
241
+ }
242
+
243
+ /**
244
+ * A reference to the source of a declaration or member.
245
+ */
246
+ interface SourceReference {
247
+ /**
248
+ * An absolute URL to the source (ie. a GitHub URL).
249
+ */
250
+ href: string;
251
+ }
252
+
253
+ /**
254
+ * A description of a custom element class.
255
+ *
256
+ * Custom elements are JavaScript classes, so this extends from
257
+ * `ClassDeclaration` and adds custom-element-specific features like
258
+ * attributes, events, and slots.
259
+ *
260
+ * Note that `tagName` in this interface is optional. Tag names are not
261
+ * neccessarily part of a custom element class, but belong to the definition
262
+ * (often called the "registration") or the `customElements.define()` call.
263
+ *
264
+ * Because classes and tag names can only be registered once, there's a
265
+ * one-to-one relationship between classes and tag names. For ease of use,
266
+ * we allow the tag name here.
267
+ *
268
+ * Some packages define and register custom elements in separate modules. In
269
+ * these cases one `Module` should contain the `CustomElement` without a
270
+ * tagName, and another `Module` should contain the
271
+ * `CustomElementExport`.
272
+ */
273
+ // Note: this needs to be an interface to be included in the generated JSON
274
+ // Schema output.
275
+ interface CustomElementDeclaration
276
+ extends ClassDeclaration,
277
+ CustomElement {}
278
+
279
+ /**
280
+ * The additional fields that a custom element adds to classes and mixins.
281
+ */
282
+ interface CustomElement extends ClassLike {
283
+ /**
284
+ * An optional tag name that should be specified if this is a
285
+ * self-registering element.
286
+ *
287
+ * Self-registering elements must also include a CustomElementExport
288
+ * in the module's exports.
289
+ */
290
+ tagName?: string;
291
+
292
+ /**
293
+ * The attributes that this element is known to understand.
294
+ */
295
+ attributes?: Attribute[];
296
+
297
+ /**
298
+ * The events that this element fires.
299
+ */
300
+ events?: Event[];
301
+
302
+ /**
303
+ * The shadow dom content slots that this element accepts.
304
+ */
305
+ slots?: Slot[];
306
+
307
+ cssParts?: CssPart[];
308
+
309
+ cssProperties?: CssCustomProperty[];
310
+
311
+ cssStates?: CssCustomState[];
312
+
313
+ demos?: Demo[];
314
+
315
+ /**
316
+ * Distinguishes a regular JavaScript class from a
317
+ * custom element class
318
+ */
319
+ customElement: true;
320
+ }
321
+
322
+ interface Attribute {
323
+ name: string;
324
+
325
+ /**
326
+ * A markdown summary suitable for display in a listing.
327
+ */
328
+ summary?: string;
329
+
330
+ /**
331
+ * A markdown description.
332
+ */
333
+ description?: string;
334
+
335
+ inheritedFrom?: Reference;
336
+
337
+ /**
338
+ * The type that the attribute will be serialized/deserialized as.
339
+ */
340
+ type?: Type;
341
+
342
+ /**
343
+ * The default value of the attribute, if any.
344
+ *
345
+ * As attributes are always strings, this is the actual value, not a human
346
+ * readable description.
347
+ */
348
+ default?: string;
349
+
350
+ /**
351
+ * The name of the field this attribute is associated with, if any.
352
+ */
353
+ fieldName?: string;
354
+
355
+ /**
356
+ * Whether the attribute is deprecated.
357
+ * If the value is a string, it's the reason for the deprecation.
358
+ */
359
+ deprecated?: boolean | string;
360
+ }
361
+
362
+ interface Event {
363
+ name: string;
364
+
365
+ /**
366
+ * A markdown summary suitable for display in a listing.
367
+ */
368
+ summary?: string;
369
+
370
+ /**
371
+ * A markdown description.
372
+ */
373
+ description?: string;
374
+
375
+ /**
376
+ * The type of the event object that's fired.
377
+ */
378
+ type: Type;
379
+
380
+ inheritedFrom?: Reference;
381
+
382
+ /**
383
+ * Whether the event is deprecated.
384
+ * If the value is a string, it's the reason for the deprecation.
385
+ */
386
+ deprecated?: boolean | string;
387
+ }
388
+
389
+ interface Slot {
390
+ /**
391
+ * The slot name, or the empty string for an unnamed slot.
392
+ */
393
+ name: string;
394
+
395
+ /**
396
+ * A markdown summary suitable for display in a listing.
397
+ */
398
+ summary?: string;
399
+
400
+ /**
401
+ * A markdown description.
402
+ */
403
+ description?: string;
404
+
405
+ /**
406
+ * Whether the slot is deprecated.
407
+ * If the value is a string, it's the reason for the deprecation.
408
+ */
409
+ deprecated?: boolean | string;
410
+ }
411
+
412
+ /**
413
+ * The description of a CSS Part
414
+ */
415
+ interface CssPart {
416
+ name: string;
417
+
418
+ /**
419
+ * A markdown summary suitable for display in a listing.
420
+ */
421
+ summary?: string;
422
+
423
+ /**
424
+ * A markdown description.
425
+ */
426
+ description?: string;
427
+
428
+ /**
429
+ * Whether the CSS shadow part is deprecated.
430
+ * If the value is a string, it's the reason for the deprecation.
431
+ */
432
+ deprecated?: boolean | string;
433
+ }
434
+
435
+ /**
436
+ * The description of a CSS Custom State
437
+ * https://developer.mozilla.org/en-US/docs/Web/API/CustomStateSet
438
+ */
439
+ interface CssCustomState {
440
+ /**
441
+ * The name of the state. Note: Unlike CSS custom properties, custom states
442
+ * do not have a leading `--`.
443
+ */
444
+ name: string;
445
+
446
+ /**
447
+ * A markdown summary suitable for display in a listing.
448
+ */
449
+ summary?: string;
450
+
451
+ /**
452
+ * A markdown description.
453
+ */
454
+ description?: string;
455
+
456
+ /**
457
+ * Whether the CSS custom state is deprecated.
458
+ * If the value is a string, it's the reason for the deprecation.
459
+ */
460
+ deprecated?: boolean | string;
461
+ }
462
+
463
+ interface CssCustomProperty {
464
+ /**
465
+ * The name of the property, including leading `--`.
466
+ */
467
+ name: string;
468
+
469
+ /**
470
+ * The expected syntax of the defined property. Defaults to "*".
471
+ *
472
+ * The syntax must be a valid CSS [syntax string](https://developer.mozilla.org/en-US/docs/Web/CSS/@property/syntax)
473
+ * as defined in the CSS Properties and Values API.
474
+ *
475
+ * Examples:
476
+ *
477
+ * "<color>": accepts a color
478
+ * "<length> | <percentage>": accepts lengths or percentages but not calc expressions with a combination of the two
479
+ * "small | medium | large": accepts one of these values set as custom idents.
480
+ * "*": any valid token
481
+ */
482
+ syntax?: string;
483
+
484
+ default?: string;
485
+
486
+ /**
487
+ * A markdown summary suitable for display in a listing.
488
+ */
489
+ summary?: string;
490
+
491
+ /**
492
+ * A markdown description.
493
+ */
494
+ description?: string;
495
+
496
+ /**
497
+ * Whether the CSS custom property is deprecated.
498
+ * If the value is a string, it's the reason for the deprecation.
499
+ */
500
+ deprecated?: boolean | string;
501
+ }
502
+
503
+ interface Type {
504
+ /**
505
+ * The full string representation of the type, in whatever type syntax is
506
+ * used, such as JSDoc, Closure, or TypeScript.
507
+ */
508
+ text: string;
509
+
510
+ /**
511
+ * An array of references to the types in the type string.
512
+ *
513
+ * These references have optional indices into the type string so that tools
514
+ * can understand the references in the type string independently of the type
515
+ * system and syntax. For example, a documentation viewer could display the
516
+ * type `Array<FooElement | BarElement>` with cross-references to `FooElement`
517
+ * and `BarElement` without understanding arrays, generics, or union types.
518
+ */
519
+ references?: TypeReference[];
520
+
521
+ source?: SourceReference;
522
+ }
523
+
524
+ /**
525
+ * A reference that is associated with a type string and optionally a range
526
+ * within the string.
527
+ *
528
+ * Start and end must both be present or not present. If they're present, they
529
+ * are indices into the associated type string. If they are missing, the entire
530
+ * type string is the symbol referenced and the name should match the type
531
+ * string.
532
+ */
533
+ interface TypeReference extends Reference {
534
+ start?: number;
535
+ end?: number;
536
+ }
537
+
538
+ /**
539
+ * The common interface of classes and mixins.
540
+ */
541
+ interface ClassLike {
542
+ name: string;
543
+
544
+ /**
545
+ * A markdown summary suitable for display in a listing.
546
+ */
547
+ summary?: string;
548
+
549
+ /**
550
+ * A markdown description of the class.
551
+ */
552
+ description?: string;
553
+
554
+ /**
555
+ * The superclass of this class.
556
+ *
557
+ * If this class is defined with mixin applications, the prototype chain
558
+ * includes the mixin applications and the true superclass is computed
559
+ * from them.
560
+ */
561
+ superclass?: Reference;
562
+
563
+ /**
564
+ * Any class mixins applied in the extends clause of this class.
565
+ *
566
+ * If mixins are applied in the class definition, then the true superclass
567
+ * of this class is the result of applying mixins in order to the superclass.
568
+ *
569
+ * Mixins must be listed in order of their application to the superclass or
570
+ * previous mixin application. This means that the innermost mixin is listed
571
+ * first. This may read backwards from the common order in JavaScript, but
572
+ * matches the order of language used to describe mixin application, like
573
+ * "S with A, B".
574
+ *
575
+ * @example
576
+ *
577
+ * ```javascript
578
+ * class T extends B(A(S)) {}
579
+ * ```
580
+ *
581
+ * is described by:
582
+ * ```json
583
+ * {
584
+ * "kind": "class",
585
+ * "superclass": {
586
+ * "name": "S"
587
+ * },
588
+ * "mixins": [
589
+ * {
590
+ * "name": "A"
591
+ * },
592
+ * {
593
+ * "name": "B"
594
+ * },
595
+ * ]
596
+ * }
597
+ * ```
598
+ */
599
+ mixins?: Array<Reference>;
600
+ members?: Array<ClassMember>;
601
+
602
+ source?: SourceReference;
603
+
604
+ /**
605
+ * Whether the class or mixin is deprecated.
606
+ * If the value is a string, it's the reason for the deprecation.
607
+ */
608
+ deprecated?: boolean | string;
609
+ }
610
+
611
+ interface ClassDeclaration extends ClassLike {
612
+ kind: 'class';
613
+ }
614
+
615
+ type ClassMember = ClassField | ClassMethod;
616
+
617
+ /**
618
+ * The common interface of variables, class fields, and function
619
+ * parameters.
620
+ */
621
+ interface PropertyLike {
622
+ name: string;
623
+
624
+ /**
625
+ * A markdown summary suitable for display in a listing.
626
+ */
627
+ summary?: string;
628
+
629
+ /**
630
+ * A markdown description of the field.
631
+ */
632
+ description?: string;
633
+
634
+ type?: Type;
635
+
636
+ default?: string;
637
+
638
+ /**
639
+ * Whether the property is deprecated.
640
+ * If the value is a string, it's the reason for the deprecation.
641
+ */
642
+ deprecated?: boolean | string;
643
+
644
+ /**
645
+ * Whether the property is read-only.
646
+ */
647
+ readonly?: boolean;
648
+ }
649
+
650
+ interface ClassField extends PropertyLike {
651
+ kind: 'field';
652
+ static?: boolean;
653
+ privacy?: Privacy;
654
+ inheritedFrom?: Reference;
655
+ source?: SourceReference;
656
+ }
657
+
658
+ interface ClassMethod extends FunctionLike {
659
+ kind: 'method';
660
+ static?: boolean;
661
+ privacy?: Privacy;
662
+ inheritedFrom?: Reference;
663
+ source?: SourceReference;
664
+ }
665
+
666
+ /**
667
+ * A description of a class mixin.
668
+ *
669
+ * Mixins are functions which generate a new subclass of a given superclass.
670
+ * This interfaces describes the class and custom element features that
671
+ * are added by the mixin. As such, it extends the CustomElement interface and
672
+ * ClassLike interface.
673
+ *
674
+ * Since mixins are functions, it also extends the FunctionLike interface. This
675
+ * means a mixin is callable, and has parameters and a return type.
676
+ *
677
+ * The return type is often hard or impossible to accurately describe in type
678
+ * systems like TypeScript. It requires generics and an `extends` operator
679
+ * that TypeScript lacks. Therefore it's recommended that the return type is
680
+ * left empty. The most common form of a mixin function takes a single
681
+ * argument, so consumers of this interface should assume that the return type
682
+ * is the single argument subclassed by this declaration.
683
+ *
684
+ * A mixin should not have a superclass. If a mixins composes other mixins,
685
+ * they should be listed in the `mixins` field.
686
+ *
687
+ * See [this article]{@link https://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/}
688
+ * for more information on the classmixin pattern in JavaScript.
689
+ *
690
+ * @example
691
+ *
692
+ * This JavaScript mixin declaration:
693
+ * ```javascript
694
+ * const MyMixin = (base) => class extends base {
695
+ * foo() { ... }
696
+ * }
697
+ * ```
698
+ *
699
+ * Is described by this JSON:
700
+ * ```json
701
+ * {
702
+ * "kind": "mixin",
703
+ * "name": "MyMixin",
704
+ * "parameters": [
705
+ * {
706
+ * "name": "base",
707
+ * }
708
+ * ],
709
+ * "members": [
710
+ * {
711
+ * "kind": "method",
712
+ * "name": "foo",
713
+ * }
714
+ * ]
715
+ * }
716
+ * ```
717
+ */
718
+ interface MixinDeclaration extends ClassLike, FunctionLike {
719
+ kind: 'mixin';
720
+ }
721
+
722
+ /**
723
+ * A class mixin that also adds custom element related properties.
724
+ */
725
+ // Note: this needs to be an interface to be included in the generated JSON
726
+ // Schema output.
727
+ interface CustomElementMixinDeclaration
728
+ extends MixinDeclaration,
729
+ CustomElement {}
730
+
731
+ interface VariableDeclaration extends PropertyLike {
732
+ kind: 'variable';
733
+ source?: SourceReference;
734
+ }
735
+
736
+ interface FunctionDeclaration extends FunctionLike {
737
+ kind: 'function';
738
+ source?: SourceReference;
739
+ }
740
+
741
+ interface Parameter extends PropertyLike {
742
+ /**
743
+ * Whether the parameter is optional. Undefined implies non-optional.
744
+ */
745
+ optional?: boolean;
746
+ /**
747
+ * Whether the parameter is a rest parameter. Only the last parameter may be a rest parameter.
748
+ * Undefined implies single parameter.
749
+ */
750
+ rest?: boolean;
751
+ }
752
+
753
+ interface FunctionLike {
754
+ name: string;
755
+
756
+ /**
757
+ * A markdown summary suitable for display in a listing.
758
+ */
759
+ summary?: string;
760
+
761
+ /**
762
+ * A markdown description.
763
+ */
764
+ description?: string;
765
+
766
+ /**
767
+ * Whether the function is deprecated.
768
+ * If the value is a string, it's the reason for the deprecation.
769
+ */
770
+ deprecated?: boolean | string;
771
+
772
+ parameters?: Parameter[];
773
+
774
+ return?: {
775
+ type?: Type;
776
+
777
+ /**
778
+ * A markdown summary suitable for display in a listing.
779
+ */
780
+ summary?: string;
781
+
782
+ /**
783
+ * A markdown description.
784
+ */
785
+ description?: string;
786
+ };
787
+ }
788
+
789
+ type Privacy = 'public' | 'private' | 'protected';
790
+
791
+ interface Demo {
792
+ /**
793
+ * A markdown description of the demo.
794
+ */
795
+ description?: string;
796
+
797
+ /**
798
+ * Relative URL of the demo if it's published with the package. Absolute URL
799
+ * if it's hosted.
800
+ */
801
+ url: string;
802
+
803
+ source?: SourceReference;
804
+ }
805
+
806
+ /**
807
+ * Generates TypeScript type definitions for custom elements to be used in Vue.js projects.
808
+ *
809
+ * @param manifest - Custom Elements Manifest containing component definitions
810
+ * @param options - Configuration options for type generation
811
+ */
812
+ declare function generateVuejsTypes(manifest: Package, options?: VuejsTypesOptions): string | undefined;
813
+
814
+ export { generateVuejsTypes, vuejsTypesPlugin };