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 [], r_curly_token: R_CURLY@18..19 "}" [] [], }, }, }, TsDeclareStatement { declare_token: DECLARE_KW@19..28 "declare" [Newline("\n")] [Whitespace(" ")], declaration: TsModuleDeclaration { module_or_namespace: MODULE_KW@28..35 "module" [] [Whitespace(" ")], name: TsQualifiedModuleName { left: TsQualifiedModuleName { left: TsQualifiedModuleName { left: TsIdentifierBinding { name_token: IDENT@35..36 "a" [] [], }, dot_token: DOT@36..37 "." [] [], right: JsName { value_token: IDENT@37..38 "b" [] [], }, }, dot_token: DOT@38..39 "." [] [], right: JsName { value_token: IDENT@39..40 "c" [] [], }, }, dot_token: DOT@40..41 "." [] [], right: JsName { value_token: IDENT@41..43 "d" [] [Whitespace(" ")], }, }, body: TsModuleBlock { l_curly_token: L_CURLY@43..44 "{" [] [], items: JsModuleItemList [], r_curly_token: R_CURLY@44..45 "}" [] [], }, }, }, TsDeclareStatement { declare_token: DECLARE_KW@45..54 "declare" [Newline("\n")] [Whitespace(" ")], declaration: TsModuleDeclaration { module_or_namespace: MODULE_KW@54..61 "module" [] [Whitespace(" ")], name: TsQualifiedModuleName { left: TsIdentifierBinding { name_token: IDENT@61..62 "a" [] [], }, dot_token: DOT@62..63 "." [] [], right: JsName { value_token: IDENT@63..65 "b" [] [Whitespace(" ")], }, }, body: TsModuleBlock { l_curly_token: L_CURLY@65..67 "{" [] [Whitespace(" ")], items: JsModuleItemList [ TsDeclareFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@67..76 "function" [] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@76..80 "test" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@80..81 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@81..82 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@82..84 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@84..91 "string" [] [Whitespace(" ")], }, }, semicolon_token: missing (optional), }, ], r_curly_token: R_CURLY@91..92 "}" [] [], }, }, }, TsModuleDeclaration { module_or_namespace: MODULE_KW@92..100 "module" [Newline("\n")] [Whitespace(" ")], name: TsIdentifierBinding { name_token: IDENT@100..102 "X" [] [Whitespace(" ")], }, body: TsModuleBlock { l_curly_token: L_CURLY@102..103 "{" [] [], items: JsModuleItemList [], r_curly_token: R_CURLY@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..19 0: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")] 1: TS_MODULE_DECLARATION@8..19 0: MODULE_KW@8..15 "module" [] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@15..17 0: IDENT@15..17 "a" [] [Whitespace(" ")] 2: TS_MODULE_BLOCK@17..19 0: L_CURLY@17..18 "{" [] [] 1: JS_MODULE_ITEM_LIST@18..18 2: R_CURLY@18..19 "}" [] [] 1: TS_DECLARE_STATEMENT@19..45 0: DECLARE_KW@19..28 "declare" [Newline("\n")] [Whitespace(" ")] 1: TS_MODULE_DECLARATION@28..45 0: MODULE_KW@28..35 "module" [] [Whitespace(" ")] 1: TS_QUALIFIED_MODULE_NAME@35..43 0: TS_QUALIFIED_MODULE_NAME@35..40 0: TS_QUALIFIED_MODULE_NAME@35..38 0: TS_IDENTIFIER_BINDING@35..36 0: IDENT@35..36 "a" [] [] 1: DOT@36..37 "." [] [] 2: JS_NAME@37..38 0: IDENT@37..38 "b" [] [] 1: DOT@38..39 "." [] [] 2: JS_NAME@39..40 0: IDENT@39..40 "c" [] [] 1: DOT@40..41 "." [] [] 2: JS_NAME@41..43 0: IDENT@41..43 "d" [] [Whitespace(" ")] 2: TS_MODULE_BLOCK@43..45 0: L_CURLY@43..44 "{" [] [] 1: JS_MODULE_ITEM_LIST@44..44 2: R_CURLY@44..45 "}" [] [] 2: TS_DECLARE_STATEMENT@45..92 0: DECLARE_KW@45..54 "declare" [Newline("\n")] [Whitespace(" ")] 1: TS_MODULE_DECLARATION@54..92 0: MODULE_KW@54..61 "module" [] [Whitespace(" ")] 1: TS_QUALIFIED_MODULE_NAME@61..65 0: TS_IDENTIFIER_BINDING@61..62 0: IDENT@61..62 "a" [] [] 1: DOT@62..63 "." [] [] 2: JS_NAME@63..65 0: IDENT@63..65 "b" [] [Whitespace(" ")] 2: TS_MODULE_BLOCK@65..92 0: L_CURLY@65..67 "{" [] [Whitespace(" ")] 1: JS_MODULE_ITEM_LIST@67..91 0: TS_DECLARE_FUNCTION_DECLARATION@67..91 0: (empty) 1: FUNCTION_KW@67..76 "function" [] [Whitespace(" ")] 2: JS_IDENTIFIER_BINDING@76..80 0: IDENT@76..80 "test" [] [] 3: (empty) 4: JS_PARAMETERS@80..82 0: L_PAREN@80..81 "(" [] [] 1: JS_PARAMETER_LIST@81..81 2: R_PAREN@81..82 ")" [] [] 5: TS_RETURN_TYPE_ANNOTATION@82..91 0: COLON@82..84 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@84..91 0: STRING_KW@84..91 "string" [] [Whitespace(" ")] 6: (empty) 2: R_CURLY@91..92 "}" [] [] 3: TS_MODULE_DECLARATION@92..104 0: MODULE_KW@92..100 "module" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@100..102 0: IDENT@100..102 "X" [] [Whitespace(" ")] 2: TS_MODULE_BLOCK@102..104 0: L_CURLY@102..103 "{" [] [] 1: JS_MODULE_ITEM_LIST@103..103 2: R_CURLY@103..104 "}" [] [] 4: EOF@104..105 "" [Newline("\n")] []