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: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@40..41 "a" [] [], }, }, operator_token: DOT@41..42 "." [] [], member: JsName { value_token: IDENT@42..43 "b" [] [], }, }, semicolon_token: SEMICOLON@43..44 ";" [] [], }, }, ], eof_token: EOF@44..45 "" [Newline("\n")] [], } 0: JS_MODULE@0..45 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..44 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..44 0: JS_DECORATOR_LIST@30..30 1: EXPORT_KW@30..38 "export" [Newline("\n")] [Whitespace(" ")] 2: TS_EXPORT_ASSIGNMENT_CLAUSE@38..44 0: EQ@38..40 "=" [] [Whitespace(" ")] 1: JS_STATIC_MEMBER_EXPRESSION@40..43 0: JS_IDENTIFIER_EXPRESSION@40..41 0: JS_REFERENCE_IDENTIFIER@40..41 0: IDENT@40..41 "a" [] [] 1: DOT@41..42 "." [] [] 2: JS_NAME@42..43 0: IDENT@42..43 "b" [] [] 2: SEMICOLON@43..44 ";" [] [] 4: EOF@44..45 "" [Newline("\n")] []