JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ TsInterfaceDeclaration { interface_token: INTERFACE_KW@0..10 "interface" [] [Whitespace(" ")], id: TsIdentifierBinding { name_token: IDENT@10..12 "A" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), l_curly_token: L_CURLY@12..13 "{" [] [], members: TsTypeMemberList [], r_curly_token: R_CURLY@13..14 "}" [] [], }, TsInterfaceDeclaration { interface_token: INTERFACE_KW@14..25 "interface" [Newline("\n")] [Whitespace(" ")], id: TsIdentifierBinding { name_token: IDENT@25..27 "B" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), l_curly_token: L_CURLY@27..29 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsPropertySignatureTypeMember { readonly_token: missing (optional), name: JsLiteralMemberName { value: IDENT@29..33 "prop" [] [], }, optional_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@33..35 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@35..41 "string" [] [], }, }, separator_token: COMMA@41..43 "," [] [Whitespace(" ")], }, TsMethodSignatureTypeMember { name: JsLiteralMemberName { value: IDENT@43..49 "method" [] [], }, optional_token: missing (optional), type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@49..50 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@50..51 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@51..53 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@53..59 "string" [] [], }, }, separator_token: COMMA@59..61 "," [] [Whitespace(" ")], }, TsIndexSignatureTypeMember { readonly_token: missing (optional), l_brack_token: L_BRACK@61..62 "[" [] [], parameter: TsIndexSignatureParameter { binding: JsIdentifierBinding { name_token: IDENT@62..67 "index" [] [], }, type_annotation: TsTypeAnnotation { colon_token: COLON@67..69 ":" [] [Whitespace(" ")], ty: TsNumberType { number_token: NUMBER_KW@69..75 "number" [] [], }, }, }, r_brack_token: R_BRACK@75..76 "]" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@76..78 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@78..84 "string" [] [], }, }, separator_token: COMMA@84..86 "," [] [Whitespace(" ")], }, TsConstructSignatureTypeMember { new_token: NEW_KW@86..89 "new" [] [], type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@89..90 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@90..91 ")" [] [], }, type_annotation: TsTypeAnnotation { colon_token: COLON@91..93 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@93..95 "B" [] [Whitespace(" ")], }, type_arguments: missing (optional), }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@95..96 "}" [] [], }, ], eof_token: EOF@96..97 "" [Newline("\n")] [], } 0: JS_MODULE@0..97 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..96 0: TS_INTERFACE_DECLARATION@0..14 0: INTERFACE_KW@0..10 "interface" [] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@10..12 0: IDENT@10..12 "A" [] [Whitespace(" ")] 2: (empty) 3: (empty) 4: L_CURLY@12..13 "{" [] [] 5: TS_TYPE_MEMBER_LIST@13..13 6: R_CURLY@13..14 "}" [] [] 1: TS_INTERFACE_DECLARATION@14..96 0: INTERFACE_KW@14..25 "interface" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@25..27 0: IDENT@25..27 "B" [] [Whitespace(" ")] 2: (empty) 3: (empty) 4: L_CURLY@27..29 "{" [] [Whitespace(" ")] 5: TS_TYPE_MEMBER_LIST@29..95 0: TS_PROPERTY_SIGNATURE_TYPE_MEMBER@29..43 0: (empty) 1: JS_LITERAL_MEMBER_NAME@29..33 0: IDENT@29..33 "prop" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@33..41 0: COLON@33..35 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@35..41 0: STRING_KW@35..41 "string" [] [] 4: COMMA@41..43 "," [] [Whitespace(" ")] 1: TS_METHOD_SIGNATURE_TYPE_MEMBER@43..61 0: JS_LITERAL_MEMBER_NAME@43..49 0: IDENT@43..49 "method" [] [] 1: (empty) 2: (empty) 3: JS_PARAMETERS@49..51 0: L_PAREN@49..50 "(" [] [] 1: JS_PARAMETER_LIST@50..50 2: R_PAREN@50..51 ")" [] [] 4: TS_RETURN_TYPE_ANNOTATION@51..59 0: COLON@51..53 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@53..59 0: STRING_KW@53..59 "string" [] [] 5: COMMA@59..61 "," [] [Whitespace(" ")] 2: TS_INDEX_SIGNATURE_TYPE_MEMBER@61..86 0: (empty) 1: L_BRACK@61..62 "[" [] [] 2: TS_INDEX_SIGNATURE_PARAMETER@62..75 0: JS_IDENTIFIER_BINDING@62..67 0: IDENT@62..67 "index" [] [] 1: TS_TYPE_ANNOTATION@67..75 0: COLON@67..69 ":" [] [Whitespace(" ")] 1: TS_NUMBER_TYPE@69..75 0: NUMBER_KW@69..75 "number" [] [] 3: R_BRACK@75..76 "]" [] [] 4: TS_TYPE_ANNOTATION@76..84 0: COLON@76..78 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@78..84 0: STRING_KW@78..84 "string" [] [] 5: COMMA@84..86 "," [] [Whitespace(" ")] 3: TS_CONSTRUCT_SIGNATURE_TYPE_MEMBER@86..95 0: NEW_KW@86..89 "new" [] [] 1: (empty) 2: JS_PARAMETERS@89..91 0: L_PAREN@89..90 "(" [] [] 1: JS_PARAMETER_LIST@90..90 2: R_PAREN@90..91 ")" [] [] 3: TS_TYPE_ANNOTATION@91..95 0: COLON@91..93 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@93..95 0: JS_REFERENCE_IDENTIFIER@93..95 0: IDENT@93..95 "B" [] [Whitespace(" ")] 1: (empty) 4: (empty) 6: R_CURLY@95..96 "}" [] [] 4: EOF@96..97 "" [Newline("\n")] []