@spyglassmc/mcdoc 0.2.0 → 0.3.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.
@@ -1,4 +1,7 @@
1
1
  export declare type Segments = readonly string[];
2
2
  export declare function identifierToSeg(identifier: string): Segments;
3
3
  export declare function segToIdentifier(seg: Segments): string;
4
- //# sourceMappingURL=util.d.ts.map
4
+ export interface AdditionalContext {
5
+ moduleIdentifier: string;
6
+ }
7
+ //# sourceMappingURL=common.d.ts.map
@@ -8,4 +8,4 @@ export function identifierToSeg(identifier) {
8
8
  export function segToIdentifier(seg) {
9
9
  return `::${seg.join('::')}`;
10
10
  }
11
- //# sourceMappingURL=util.js.map
11
+ //# sourceMappingURL=common.js.map
package/lib/index.d.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  import type * as core from '@spyglassmc/core';
2
- export * as checker from './checker/index.js';
2
+ export * as binder from './binder/index.js';
3
3
  export * as colorizer from './colorizer/index.js';
4
4
  export * from './node/index.js';
5
5
  export * from './parser/index.js';
6
6
  export * from './type/index.js';
7
- export declare const initialize: core.ProjectInitializer;
7
+ export * from './uri_processors.js';
8
+ export declare const initialize: ({ meta }: {
9
+ meta: core.MetaRegistry;
10
+ }) => void;
8
11
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -1,20 +1,22 @@
1
1
  import * as binder from './binder/index.js';
2
- import * as checker from './checker/index.js';
3
2
  import * as colorizer from './colorizer/index.js';
4
3
  import * as parser from './parser/index.js';
5
- export * as checker from './checker/index.js';
4
+ import * as uri_professors from './uri_processors.js';
5
+ export * as binder from './binder/index.js';
6
6
  export * as colorizer from './colorizer/index.js';
7
7
  export * from './node/index.js';
8
8
  export * from './parser/index.js';
9
9
  export * from './type/index.js';
10
+ export * from './uri_processors.js';
10
11
  /* istanbul ignore next */
11
12
  export const initialize = ({ meta }) => {
12
13
  meta.registerLanguage('mcdoc', {
13
14
  extensions: ['.mcdoc'],
14
15
  parser: parser.module_,
15
16
  });
16
- meta.registerChecker('mcdoc:module', checker.module_);
17
- meta.registerUriBinder(binder.uriBinder);
17
+ meta.registerUriBinder(uri_professors.uriBinder);
18
+ meta.setUriSorter(uri_professors.uriSorter);
19
+ binder.registerMcdocBinders(meta);
18
20
  colorizer.registerMcdocColorizer(meta);
19
21
  };
20
22
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,5 @@
1
- import type { AstNode, ColorTokenType, FloatNode, IntegerNode, SymbolBaseNode } from '@spyglassmc/core';
2
- import { CommentNode, ResourceLocationNode, StringNode } from '@spyglassmc/core';
3
- import type { McdocType } from '../type/index.js';
1
+ import type { AstNode, ColorTokenType, IntegerNode, SymbolBaseNode } from '@spyglassmc/core';
2
+ import { CommentNode, FloatNode, ResourceLocationNode, StringNode } from '@spyglassmc/core';
4
3
  export interface ModuleNode extends AstNode {
5
4
  type: 'mcdoc:module';
6
5
  children: TopLevelNode[];
@@ -17,6 +16,12 @@ export interface DispatchStatementNode extends AstNode {
17
16
  children: (CommentNode | AttributeNode | LiteralNode | ResourceLocationNode | IndexBodyNode | TypeNode)[];
18
17
  }
19
18
  export declare const DispatchStatementNode: Readonly<{
19
+ destruct(node: DispatchStatementNode): {
20
+ attributes: AttributeNode[];
21
+ location?: ResourceLocationNode;
22
+ index?: IndexBodyNode;
23
+ target?: TypeNode;
24
+ };
20
25
  is(node: AstNode | undefined): node is DispatchStatementNode;
21
26
  }>;
22
27
  export interface LiteralNode extends AstNode {
@@ -32,6 +37,9 @@ export interface IndexBodyNode extends AstNode {
32
37
  children: (CommentNode | IndexNode)[];
33
38
  }
34
39
  export declare const IndexBodyNode: Readonly<{
40
+ destruct(node: IndexBodyNode): {
41
+ parallelIndices: IndexNode[];
42
+ };
35
43
  is(node: AstNode | undefined): node is IndexBodyNode;
36
44
  }>;
37
45
  export declare type IndexNode = StaticIndexNode | DynamicIndexNode;
@@ -53,27 +61,38 @@ export interface DynamicIndexNode extends AstNode {
53
61
  children: (CommentNode | AccessorKeyNode)[];
54
62
  }
55
63
  export declare const DynamicIndexNode: Readonly<{
64
+ destruct(node: DynamicIndexNode): {
65
+ keys: AccessorKeyNode[];
66
+ };
56
67
  is(node: AstNode | undefined): node is DynamicIndexNode;
57
68
  }>;
58
69
  export declare type AccessorKeyNode = LiteralNode | IdentifierNode | StringNode;
59
70
  export declare const AccessorKeyNode: Readonly<{
60
71
  is(node: AstNode | undefined): node is AccessorKeyNode;
61
72
  }>;
62
- export declare type TypeNode = AnyTypeNode | BooleanTypeNode | StringTypeNode | LiteralTypeNode | NumericTypeNode | PrimitiveArrayTypeNode | ListTypeNode | TupleTypeNode | EnumNode | StructNode | PathTypeNode | DispatcherTypeNode | UnionTypeNode;
73
+ export declare type TypeNode = AnyTypeNode | BooleanTypeNode | StringTypeNode | LiteralTypeNode | NumericTypeNode | PrimitiveArrayTypeNode | ListTypeNode | TupleTypeNode | EnumNode | StructNode | ReferenceTypeNode | DispatcherTypeNode | UnionTypeNode;
63
74
  export declare const TypeNode: Readonly<{
64
75
  is(node: AstNode | undefined): node is TypeNode;
65
- asType(node: TypeNode): McdocType;
66
76
  }>;
67
77
  export interface TypeBaseNode<CN extends AstNode> extends AstNode {
68
78
  type: `mcdoc:${string}`;
69
79
  children: (CommentNode | AttributeNode | IndexBodyNode | CN)[];
70
80
  }
81
+ export declare const TypeBaseNode: Readonly<{
82
+ destruct(node: TypeBaseNode<any>): {
83
+ attributes: AttributeNode[];
84
+ indices: IndexBodyNode[];
85
+ };
86
+ }>;
71
87
  export interface AttributeNode extends AstNode {
72
88
  type: 'mcdoc:attribute';
73
89
  children: (CommentNode | IdentifierNode | AttributeValueNode)[];
74
- sep?: boolean;
75
90
  }
76
91
  export declare const AttributeNode: Readonly<{
92
+ destruct(node: AttributeNode): {
93
+ name: IdentifierNode;
94
+ value: AttributeValueNode | undefined;
95
+ };
77
96
  is(node: AstNode | undefined): node is AttributeNode;
78
97
  }>;
79
98
  export declare type AttributeValueNode = TypeNode | AttributeTreeNode;
@@ -86,6 +105,10 @@ export interface AttributeTreeNode extends AstNode {
86
105
  delim: '(' | '[' | '{';
87
106
  }
88
107
  export declare const AttributeTreeNode: Readonly<{
108
+ destruct(node: AttributeTreeNode): {
109
+ positional?: AttributeTreePosValuesNode;
110
+ named?: AttributeTreeNamedValuesNode;
111
+ };
89
112
  is(node: AstNode | undefined): node is AttributeTreeNode;
90
113
  }>;
91
114
  export interface AttributeTreePosValuesNode extends AstNode {
@@ -93,6 +116,9 @@ export interface AttributeTreePosValuesNode extends AstNode {
93
116
  children: (CommentNode | AttributeValueNode)[];
94
117
  }
95
118
  export declare const AttributeTreePosValuesNode: Readonly<{
119
+ destruct(node: AttributeTreePosValuesNode): {
120
+ values: AttributeValueNode[];
121
+ };
96
122
  is(node: AstNode | undefined): node is AttributeTreePosValuesNode;
97
123
  }>;
98
124
  export interface AttributeTreeNamedValuesNode extends AstNode {
@@ -100,8 +126,15 @@ export interface AttributeTreeNamedValuesNode extends AstNode {
100
126
  children: (CommentNode | IdentifierNode | StringNode | AttributeValueNode)[];
101
127
  }
102
128
  export declare const AttributeTreeNamedValuesNode: Readonly<{
129
+ destruct(node: AttributeTreeNamedValuesNode): {
130
+ values: AttributeTreeNamedKeyValuePair[];
131
+ };
103
132
  is(node: AstNode | undefined): node is AttributeTreeNamedValuesNode;
104
133
  }>;
134
+ export interface AttributeTreeNamedKeyValuePair {
135
+ key: IdentifierNode | StringNode;
136
+ value: AttributeValueNode;
137
+ }
105
138
  export interface AnyTypeNode extends TypeBaseNode<LiteralNode> {
106
139
  type: 'mcdoc:type/any';
107
140
  }
@@ -114,83 +147,145 @@ export interface BooleanTypeNode extends TypeBaseNode<LiteralNode> {
114
147
  export declare const BooleanTypeNode: Readonly<{
115
148
  is(node: AstNode | undefined): node is BooleanTypeNode;
116
149
  }>;
117
- export interface StringTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode> {
118
- type: 'mcdoc:type/string';
119
- }
120
- export declare const StringTypeNode: Readonly<{
121
- is(node: AstNode | undefined): node is StringTypeNode;
122
- }>;
123
150
  export interface IntRangeNode extends AstNode {
124
151
  type: 'mcdoc:int_range';
125
- children: IntegerNode[];
152
+ children: (IntegerNode | LiteralNode)[];
126
153
  }
127
154
  export declare const IntRangeNode: Readonly<{
155
+ destruct(node: IntRangeNode): {
156
+ kind: RangeKind;
157
+ min?: IntegerNode;
158
+ max?: IntegerNode;
159
+ };
128
160
  is(node: AstNode | undefined): node is IntRangeNode;
129
161
  }>;
130
- export interface LiteralTypeNode extends TypeBaseNode<LiteralNode | TypedNumberNode | StringNode> {
162
+ export interface LiteralTypeNode extends TypeBaseNode<LiteralTypeValueNode> {
131
163
  type: 'mcdoc:type/literal';
132
164
  }
133
165
  export declare const LiteralTypeNode: Readonly<{
166
+ destruct(node: LiteralTypeNode): {
167
+ value: LiteralTypeValueNode;
168
+ };
134
169
  is(node: AstNode | undefined): node is LiteralTypeNode;
135
170
  }>;
171
+ export declare type LiteralTypeValueNode = LiteralNode | TypedNumberNode | StringNode;
172
+ export declare const LiteralTypeValueNode: Readonly<{
173
+ is(node: AstNode | undefined): node is LiteralTypeValueNode;
174
+ }>;
136
175
  export interface TypedNumberNode extends AstNode {
137
176
  type: 'mcdoc:typed_number';
138
177
  children: (FloatNode | LiteralNode)[];
139
178
  }
140
179
  export declare const TypedNumberNode: Readonly<{
180
+ destruct(node: TypedNumberNode): {
181
+ value: FloatNode;
182
+ suffix?: LiteralNode;
183
+ };
141
184
  is(node: AstNode | undefined): node is TypedNumberNode;
142
185
  }>;
143
186
  export interface NumericTypeNode extends TypeBaseNode<LiteralNode | FloatRangeNode | IntRangeNode> {
144
187
  type: 'mcdoc:type/numeric_type';
145
188
  }
146
189
  export declare const NumericTypeNode: Readonly<{
190
+ destruct(node: NumericTypeNode): {
191
+ numericKind: LiteralNode;
192
+ valueRange?: FloatRangeNode | IntRangeNode;
193
+ };
147
194
  is(node: AstNode | undefined): node is NumericTypeNode;
148
195
  }>;
196
+ export declare const RangeExclusiveChar = "<";
197
+ /**
198
+ * A 2-bit binary number is used to represent the kind of range.
199
+ * The first bit from the left represents the start, the second bit from the left represents the end.
200
+ * The bit is turned on if the range is exclusive on that end.
201
+ */
202
+ export declare type RangeKind = 0b00 | 0b01 | 0b10 | 0b11;
203
+ export declare function getRangeDelimiter(kind: RangeKind): string;
149
204
  export interface FloatRangeNode extends AstNode {
150
205
  type: 'mcdoc:float_range';
151
- children: FloatNode[];
206
+ children: (FloatNode | LiteralNode)[];
152
207
  }
153
208
  export declare const FloatRangeNode: Readonly<{
209
+ destruct(node: FloatRangeNode): {
210
+ kind: RangeKind;
211
+ min?: FloatNode;
212
+ max?: FloatNode;
213
+ };
154
214
  is(node: AstNode | undefined): node is FloatRangeNode;
155
215
  }>;
156
- export interface PrimitiveArrayTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode | FloatRangeNode> {
216
+ export interface PrimitiveArrayTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode> {
157
217
  type: 'mcdoc:type/primitive_array';
158
218
  }
159
219
  export declare const PrimitiveArrayTypeNode: Readonly<{
220
+ destruct(node: PrimitiveArrayTypeNode): {
221
+ arrayKind: LiteralNode;
222
+ lengthRange?: IntRangeNode | undefined;
223
+ valueRange?: IntRangeNode | undefined;
224
+ };
160
225
  is(node: AstNode | undefined): node is PrimitiveArrayTypeNode;
161
226
  }>;
162
227
  export interface ListTypeNode extends TypeBaseNode<TypeNode | IntRangeNode> {
163
228
  type: 'mcdoc:type/list';
164
229
  }
165
230
  export declare const ListTypeNode: Readonly<{
231
+ destruct(node: ListTypeNode): {
232
+ item: TypeNode;
233
+ lengthRange?: IntRangeNode;
234
+ };
166
235
  is(node: AstNode | undefined): node is ListTypeNode;
167
236
  }>;
237
+ export interface StringTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode> {
238
+ type: 'mcdoc:type/string';
239
+ }
240
+ export declare const StringTypeNode: Readonly<{
241
+ destruct(node: StringTypeNode): {
242
+ lengthRange?: IntRangeNode;
243
+ };
244
+ is(node: AstNode | undefined): node is StringTypeNode;
245
+ }>;
168
246
  export interface TupleTypeNode extends TypeBaseNode<TypeNode> {
169
247
  type: 'mcdoc:type/tuple';
170
248
  }
171
249
  export declare const TupleTypeNode: Readonly<{
250
+ destruct(node: TupleTypeNode): {
251
+ items: TypeNode[];
252
+ };
172
253
  is(node: AstNode | undefined): node is TupleTypeNode;
173
254
  }>;
174
255
  export interface EnumNode extends TypeBaseNode<DocCommentsNode | LiteralNode | IdentifierNode | EnumBlockNode> {
175
256
  type: 'mcdoc:enum';
176
257
  }
258
+ declare const EnumKinds: Set<"string" | "float" | "byte" | "short" | "int" | "long" | "double">;
259
+ export declare type EnumKind = typeof EnumKinds extends Set<infer V> ? V : never;
177
260
  export declare const EnumNode: Readonly<{
261
+ kinds: Set<"string" | "float" | "byte" | "short" | "int" | "long" | "double">;
262
+ destruct(node: EnumNode): {
263
+ block: EnumBlockNode;
264
+ docComments?: DocCommentsNode;
265
+ enumKind?: EnumKind;
266
+ identifier?: IdentifierNode;
267
+ };
178
268
  is(node: AstNode | undefined): node is EnumNode;
179
- kinds: Set<"string" | "byte" | "short" | "int" | "long" | "float" | "double">;
180
269
  }>;
181
- export declare type EnumKind = typeof EnumNode['kinds'] extends Set<infer V> ? V : never;
182
270
  export interface DocCommentsNode extends AstNode {
183
271
  type: 'mcdoc:doc_comments';
184
272
  children: CommentNode[];
185
273
  }
186
274
  export declare const DocCommentsNode: Readonly<{
275
+ /**
276
+ * @returns The text content of this doc comment block.
277
+ */
278
+ asText(node: DocCommentsNode | undefined): string | undefined;
187
279
  is(node: AstNode | undefined): node is DocCommentsNode;
188
280
  }>;
189
281
  export interface EnumBlockNode extends AstNode {
190
282
  type: 'mcdoc:enum/block';
191
- children: (CommentNode | EnumFieldNode | PrelimNode)[];
283
+ children: (CommentNode | EnumFieldNode)[];
192
284
  }
193
285
  export declare const EnumBlockNode: Readonly<{
286
+ destruct(node: EnumBlockNode): {
287
+ fields: EnumFieldNode[];
288
+ };
194
289
  is(node: AstNode | undefined): node is EnumBlockNode;
195
290
  }>;
196
291
  export interface EnumFieldNode extends AstNode {
@@ -198,6 +293,11 @@ export interface EnumFieldNode extends AstNode {
198
293
  children: (CommentNode | PrelimNode | IdentifierNode | EnumValueNode)[];
199
294
  }
200
295
  export declare const EnumFieldNode: Readonly<{
296
+ destruct(node: EnumFieldNode): {
297
+ attributes: AttributeNode[];
298
+ identifier: IdentifierNode;
299
+ value: EnumValueNode;
300
+ };
201
301
  is(node: AstNode | undefined): node is EnumFieldNode;
202
302
  }>;
203
303
  export declare type EnumValueNode = TypedNumberNode | StringNode;
@@ -208,30 +308,45 @@ export declare type PrelimNode = AttributeNode | DocCommentsNode;
208
308
  export declare const PrelimNode: Readonly<{
209
309
  is(node: AstNode | undefined): node is PrelimNode;
210
310
  }>;
211
- export interface StructNode extends TypeBaseNode<DocCommentsNode | LiteralNode | IdentifierNode | TypeParamBlockNode | StructBlockNode> {
311
+ export interface StructNode extends TypeBaseNode<DocCommentsNode | LiteralNode | IdentifierNode | StructBlockNode> {
212
312
  type: 'mcdoc:struct';
213
313
  }
214
314
  export declare const StructNode: Readonly<{
315
+ destruct(node: StructNode): {
316
+ block: StructBlockNode;
317
+ docComments?: DocCommentsNode;
318
+ identifier?: IdentifierNode;
319
+ };
215
320
  is(node: AstNode | undefined): node is StructNode;
216
321
  }>;
217
- export interface PathTypeNode extends TypeBaseNode<PathNode | TypeNode> {
218
- type: 'mcdoc:type/path';
322
+ export interface ReferenceTypeNode extends TypeBaseNode<PathNode | TypeNode> {
323
+ type: 'mcdoc:type/reference';
219
324
  }
220
- export declare const PathTypeNode: Readonly<{
221
- is(node: AstNode | undefined): node is PathTypeNode;
325
+ export declare const ReferenceTypeNode: Readonly<{
326
+ destruct(node: ReferenceTypeNode): {
327
+ path: PathNode;
328
+ typeParameters: TypeNode[];
329
+ };
330
+ is(node: AstNode | undefined): node is ReferenceTypeNode;
222
331
  }>;
223
332
  export interface TypeParamBlockNode extends AstNode {
224
333
  type: 'mcdoc:type_param_block';
225
334
  children: (CommentNode | TypeParamNode)[];
226
335
  }
227
336
  export declare const TypeParamBlockNode: Readonly<{
337
+ destruct(node: TypeParamBlockNode): {
338
+ params: TypeParamNode[];
339
+ };
228
340
  is(node: AstNode | undefined): node is TypeParamBlockNode;
229
341
  }>;
230
342
  export interface TypeParamNode extends AstNode {
231
343
  type: 'mcdoc:type_param';
232
- children: (CommentNode | IdentifierNode | LiteralNode | PathNode)[];
344
+ children: (CommentNode | IdentifierNode | LiteralNode)[];
233
345
  }
234
346
  export declare const TypeParamNode: Readonly<{
347
+ destruct(node: TypeParamNode): {
348
+ identifier: IdentifierNode;
349
+ };
235
350
  is(node: AstNode | undefined): node is TypeParamNode;
236
351
  }>;
237
352
  export interface PathNode extends AstNode {
@@ -240,13 +355,21 @@ export interface PathNode extends AstNode {
240
355
  isAbsolute?: boolean;
241
356
  }
242
357
  export declare const PathNode: Readonly<{
358
+ destruct(node: PathNode | undefined): {
359
+ children: (LiteralNode | IdentifierNode)[];
360
+ isAbsolute?: boolean;
361
+ lastIdentifier?: IdentifierNode;
362
+ };
243
363
  is(node: AstNode | undefined): node is PathNode;
244
364
  }>;
245
365
  export interface StructBlockNode extends AstNode {
246
366
  type: 'mcdoc:struct/block';
247
- children: (CommentNode | StructFieldNode | PrelimNode)[];
367
+ children: (CommentNode | StructFieldNode)[];
248
368
  }
249
369
  export declare const StructBlockNode: Readonly<{
370
+ destruct(node: StructBlockNode): {
371
+ fields: StructFieldNode[];
372
+ };
250
373
  is(node: AstNode | undefined): node is StructBlockNode;
251
374
  }>;
252
375
  export declare type StructFieldNode = StructPairFieldNode | StructSpreadFieldNode;
@@ -259,6 +382,12 @@ export interface StructPairFieldNode extends AstNode {
259
382
  isOptional?: boolean;
260
383
  }
261
384
  export declare const StructPairFieldNode: Readonly<{
385
+ destruct(node: StructPairFieldNode): {
386
+ attributes: AttributeNode[];
387
+ key: StructKeyNode;
388
+ type: TypeNode;
389
+ isOptional?: boolean;
390
+ };
262
391
  is(node: AstNode | undefined): node is StructPairFieldNode;
263
392
  }>;
264
393
  export declare type StructKeyNode = StringNode | IdentifierNode | StructMapKeyNode;
@@ -270,6 +399,9 @@ export interface StructMapKeyNode extends AstNode {
270
399
  children: (CommentNode | TypeNode)[];
271
400
  }
272
401
  export declare const StructMapKeyNode: Readonly<{
402
+ destruct(node: StructMapKeyNode): {
403
+ type: TypeNode;
404
+ };
273
405
  is(node: AstNode | undefined): node is StructMapKeyNode;
274
406
  }>;
275
407
  export interface StructSpreadFieldNode extends AstNode {
@@ -277,27 +409,45 @@ export interface StructSpreadFieldNode extends AstNode {
277
409
  children: (CommentNode | AttributeNode | TypeNode)[];
278
410
  }
279
411
  export declare const StructSpreadFieldNode: Readonly<{
412
+ destruct(node: StructSpreadFieldNode): {
413
+ attributes: AttributeNode[];
414
+ type: TypeNode;
415
+ };
280
416
  is(node: AstNode | undefined): node is StructSpreadFieldNode;
281
417
  }>;
282
418
  export interface DispatcherTypeNode extends TypeBaseNode<ResourceLocationNode | IndexBodyNode> {
283
419
  type: 'mcdoc:type/dispatcher';
284
420
  }
285
421
  export declare const DispatcherTypeNode: Readonly<{
422
+ destruct(node: DispatcherTypeNode): {
423
+ location: ResourceLocationNode;
424
+ index: IndexBodyNode;
425
+ };
286
426
  is(node: AstNode | undefined): node is DispatcherTypeNode;
287
427
  }>;
288
428
  export interface UnionTypeNode extends TypeBaseNode<TypeNode> {
289
429
  type: 'mcdoc:type/union';
290
430
  }
291
431
  export declare const UnionTypeNode: Readonly<{
432
+ destruct(node: UnionTypeNode): {
433
+ members: TypeNode[];
434
+ };
292
435
  is(node: AstNode | undefined): node is UnionTypeNode;
293
436
  }>;
294
437
  export interface InjectionNode extends AstNode {
295
438
  type: 'mcdoc:injection';
296
- children: (CommentNode | LiteralNode | EnumInjectionNode | StructInjectionNode)[];
439
+ children: (CommentNode | LiteralNode | InjectionContentNode)[];
297
440
  }
298
441
  export declare const InjectionNode: Readonly<{
442
+ destruct(node: InjectionNode): {
443
+ injection: InjectionContentNode;
444
+ };
299
445
  is(node: AstNode | undefined): node is InjectionNode;
300
446
  }>;
447
+ export declare type InjectionContentNode = EnumInjectionNode | StructInjectionNode;
448
+ export declare const InjectionContentNode: Readonly<{
449
+ is(node: AstNode | undefined): node is InjectionContentNode;
450
+ }>;
301
451
  export interface EnumInjectionNode extends AstNode {
302
452
  type: 'mcdoc:injection/enum';
303
453
  children: (CommentNode | LiteralNode | PathNode | EnumBlockNode)[];
@@ -307,16 +457,22 @@ export declare const EnumInjectionNode: Readonly<{
307
457
  }>;
308
458
  export interface StructInjectionNode extends AstNode {
309
459
  type: 'mcdoc:injection/struct';
310
- children: (CommentNode | LiteralNode | PathNode | TypeParamBlockNode | StructBlockNode)[];
460
+ children: (CommentNode | LiteralNode | PathNode | StructBlockNode)[];
311
461
  }
312
462
  export declare const StructInjectionNode: Readonly<{
313
463
  is(node: AstNode | undefined): node is StructInjectionNode;
314
464
  }>;
315
465
  export interface TypeAliasNode extends AstNode {
316
466
  type: 'mcdoc:type_alias';
317
- children: (CommentNode | PrelimNode | LiteralNode | IdentifierNode | TypeParamBlockNode | TypeNode)[];
467
+ children: (CommentNode | DocCommentsNode | LiteralNode | IdentifierNode | TypeParamBlockNode | TypeNode)[];
318
468
  }
319
469
  export declare const TypeAliasNode: Readonly<{
470
+ destruct(node: TypeAliasNode): {
471
+ docComments?: DocCommentsNode;
472
+ identifier?: IdentifierNode;
473
+ typeParams?: TypeParamBlockNode;
474
+ rhs?: TypeNode;
475
+ };
320
476
  is(node: AstNode | undefined): node is TypeAliasNode;
321
477
  }>;
322
478
  export interface UseStatementNode extends AstNode {
@@ -324,6 +480,11 @@ export interface UseStatementNode extends AstNode {
324
480
  children: (CommentNode | LiteralNode | PathNode | IdentifierNode)[];
325
481
  }
326
482
  export declare const UseStatementNode: Readonly<{
483
+ destruct(node: UseStatementNode): {
484
+ binding?: IdentifierNode;
485
+ path?: PathNode;
486
+ };
327
487
  is(node: AstNode | undefined): node is UseStatementNode;
328
488
  }>;
489
+ export {};
329
490
  //# sourceMappingURL=index.d.ts.map