JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ TsDeclareStatement { declare_token: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")], declaration: JsVariableDeclarationClause { declaration: JsVariableDeclaration { await_token: missing (optional), kind: CONST_KW@8..14 "const" [] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@14..15 "a" [] [], }, variable_annotation: TsTypeAnnotation { colon_token: COLON@15..17 ":" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@17..19 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsPropertySignatureTypeMember { readonly_token: missing (optional), name: JsLiteralMemberName { value: IDENT@19..20 "b" [] [], }, optional_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@20..22 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@22..29 "string" [] [Whitespace(" ")], }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@29..30 "}" [] [], }, }, initializer: missing (optional), }, ], }, semicolon_token: missing (optional), }, }, JsExport { decorators: JsDecoratorList [], export_token: EXPORT_KW@30..38 "export" [Newline("\n")] [Whitespace(" ")], export_clause: TsExportAssignmentClause { eq_token: EQ@38..40 "=" [] [Whitespace(" ")], expression: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@40..41 "a" [] [], }, }, semicolon_token: SEMICOLON@41..42 ";" [] [], }, }, JsExport { decorators: JsDecoratorList [], export_token: EXPORT_KW@42..50 "export" [Newline("\n")] [Whitespace(" ")], export_clause: TsExportAssignmentClause { eq_token: EQ@50..52 "=" [] [Whitespace(" ")], expression: JsClassExpression { decorators: JsDecoratorList [], class_token: CLASS_KW@52..58 "class" [] [Whitespace(" ")], id: missing (optional), type_parameters: missing (optional), extends_clause: missing (optional), implements_clause: missing (optional), l_curly_token: L_CURLY@58..59 "{" [] [], members: JsClassMemberList [], r_curly_token: R_CURLY@59..60 "}" [] [], }, semicolon_token: missing (optional), }, }, JsExport { decorators: JsDecoratorList [], export_token: EXPORT_KW@60..68 "export" [Newline("\n")] [Whitespace(" ")], export_clause: TsExportAssignmentClause { eq_token: EQ@68..70 "=" [] [Whitespace(" ")], expression: JsFunctionExpression { async_token: missing (optional), function_token: FUNCTION_KW@70..79 "function" [] [Whitespace(" ")], star_token: missing (optional), id: missing (optional), type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@79..80 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@80..82 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@82..83 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [], r_curly_token: R_CURLY@83..84 "}" [] [], }, }, semicolon_token: missing (optional), }, }, JsExport { decorators: JsDecoratorList [], export_token: EXPORT_KW@84..92 "export" [Newline("\n")] [Whitespace(" ")], export_clause: TsExportAssignmentClause { eq_token: EQ@92..94 "=" [] [Whitespace(" ")], expression: JsBinaryExpression { left: JsBinaryExpression { left: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@94..96 "4" [] [Whitespace(" ")], }, operator_token: PLUS@96..98 "+" [] [Whitespace(" ")], right: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@98..100 "3" [] [Whitespace(" ")], }, }, operator_token: PLUS@100..102 "+" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@102..103 "a" [] [], }, }, }, semicolon_token: SEMICOLON@103..104 ";" [] [], }, }, ], eof_token: EOF@104..105 "" [Newline("\n")] [], } 0: JS_MODULE@0..105 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..104 0: TS_DECLARE_STATEMENT@0..30 0: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")] 1: JS_VARIABLE_DECLARATION_CLAUSE@8..30 0: JS_VARIABLE_DECLARATION@8..30 0: (empty) 1: CONST_KW@8..14 "const" [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@14..30 0: JS_VARIABLE_DECLARATOR@14..30 0: JS_IDENTIFIER_BINDING@14..15 0: IDENT@14..15 "a" [] [] 1: TS_TYPE_ANNOTATION@15..30 0: COLON@15..17 ":" [] [Whitespace(" ")] 1: TS_OBJECT_TYPE@17..30 0: L_CURLY@17..19 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@19..29 0: TS_PROPERTY_SIGNATURE_TYPE_MEMBER@19..29 0: (empty) 1: JS_LITERAL_MEMBER_NAME@19..20 0: IDENT@19..20 "b" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@20..29 0: COLON@20..22 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@22..29 0: STRING_KW@22..29 "string" [] [Whitespace(" ")] 4: (empty) 2: R_CURLY@29..30 "}" [] [] 2: (empty) 1: (empty) 1: JS_EXPORT@30..42 0: JS_DECORATOR_LIST@30..30 1: EXPORT_KW@30..38 "export" [Newline("\n")] [Whitespace(" ")] 2: TS_EXPORT_ASSIGNMENT_CLAUSE@38..42 0: EQ@38..40 "=" [] [Whitespace(" ")] 1: JS_IDENTIFIER_EXPRESSION@40..41 0: JS_REFERENCE_IDENTIFIER@40..41 0: IDENT@40..41 "a" [] [] 2: SEMICOLON@41..42 ";" [] [] 2: JS_EXPORT@42..60 0: JS_DECORATOR_LIST@42..42 1: EXPORT_KW@42..50 "export" [Newline("\n")] [Whitespace(" ")] 2: TS_EXPORT_ASSIGNMENT_CLAUSE@50..60 0: EQ@50..52 "=" [] [Whitespace(" ")] 1: JS_CLASS_EXPRESSION@52..60 0: JS_DECORATOR_LIST@52..52 1: CLASS_KW@52..58 "class" [] [Whitespace(" ")] 2: (empty) 3: (empty) 4: (empty) 5: (empty) 6: L_CURLY@58..59 "{" [] [] 7: JS_CLASS_MEMBER_LIST@59..59 8: R_CURLY@59..60 "}" [] [] 2: (empty) 3: JS_EXPORT@60..84 0: JS_DECORATOR_LIST@60..60 1: EXPORT_KW@60..68 "export" [Newline("\n")] [Whitespace(" ")] 2: TS_EXPORT_ASSIGNMENT_CLAUSE@68..84 0: EQ@68..70 "=" [] [Whitespace(" ")] 1: JS_FUNCTION_EXPRESSION@70..84 0: (empty) 1: FUNCTION_KW@70..79 "function" [] [Whitespace(" ")] 2: (empty) 3: (empty) 4: (empty) 5: JS_PARAMETERS@79..82 0: L_PAREN@79..80 "(" [] [] 1: JS_PARAMETER_LIST@80..80 2: R_PAREN@80..82 ")" [] [Whitespace(" ")] 6: (empty) 7: JS_FUNCTION_BODY@82..84 0: L_CURLY@82..83 "{" [] [] 1: JS_DIRECTIVE_LIST@83..83 2: JS_STATEMENT_LIST@83..83 3: R_CURLY@83..84 "}" [] [] 2: (empty) 4: JS_EXPORT@84..104 0: JS_DECORATOR_LIST@84..84 1: EXPORT_KW@84..92 "export" [Newline("\n")] [Whitespace(" ")] 2: TS_EXPORT_ASSIGNMENT_CLAUSE@92..104 0: EQ@92..94 "=" [] [Whitespace(" ")] 1: JS_BINARY_EXPRESSION@94..103 0: JS_BINARY_EXPRESSION@94..100 0: JS_NUMBER_LITERAL_EXPRESSION@94..96 0: JS_NUMBER_LITERAL@94..96 "4" [] [Whitespace(" ")] 1: PLUS@96..98 "+" [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@98..100 0: JS_NUMBER_LITERAL@98..100 "3" [] [Whitespace(" ")] 1: PLUS@100..102 "+" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@102..103 0: JS_REFERENCE_IDENTIFIER@102..103 0: IDENT@102..103 "a" [] [] 2: SEMICOLON@103..104 ";" [] [] 4: EOF@104..105 "" [Newline("\n")] []