JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ TsDeclareStatement { declare_token: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")], declaration: TsModuleDeclaration { module_or_namespace: MODULE_KW@8..15 "module" [] [Whitespace(" ")], name: TsIdentifierBinding { name_token: IDENT@15..17 "a" [] [Whitespace(" ")], }, body: TsModuleBlock { l_curly_token: L_CURLY@17..18 "{" [] [], items: JsModuleItemList [ TsDeclareFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@18..30 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@30..34 "test" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@34..35 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@35..36 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@36..38 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@38..44 "string" [] [], }, }, semicolon_token: SEMICOLON@44..45 ";" [] [], }, ], r_curly_token: R_CURLY@45..47 "}" [Newline("\n")] [], }, }, }, ], eof_token: EOF@47..48 "" [Newline("\n")] [], } 0: JS_MODULE@0..48 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..47 0: TS_DECLARE_STATEMENT@0..47 0: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")] 1: TS_MODULE_DECLARATION@8..47 0: MODULE_KW@8..15 "module" [] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@15..17 0: IDENT@15..17 "a" [] [Whitespace(" ")] 2: TS_MODULE_BLOCK@17..47 0: L_CURLY@17..18 "{" [] [] 1: JS_MODULE_ITEM_LIST@18..45 0: TS_DECLARE_FUNCTION_DECLARATION@18..45 0: (empty) 1: FUNCTION_KW@18..30 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 2: JS_IDENTIFIER_BINDING@30..34 0: IDENT@30..34 "test" [] [] 3: (empty) 4: JS_PARAMETERS@34..36 0: L_PAREN@34..35 "(" [] [] 1: JS_PARAMETER_LIST@35..35 2: R_PAREN@35..36 ")" [] [] 5: TS_RETURN_TYPE_ANNOTATION@36..44 0: COLON@36..38 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@38..44 0: STRING_KW@38..44 "string" [] [] 6: SEMICOLON@44..45 ";" [] [] 2: R_CURLY@45..47 "}" [Newline("\n")] [] 4: EOF@47..48 "" [Newline("\n")] []