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 [ TsIndexSignatureTypeMember { readonly_token: missing (optional), l_brack_token: L_BRACK@13..19 "[" [Newline("\n"), Whitespace(" ")] [], parameter: TsIndexSignatureParameter { binding: JsIdentifierBinding { name_token: IDENT@19..20 "a" [] [], }, type_annotation: TsTypeAnnotation { colon_token: COLON@20..22 ":" [] [Whitespace(" ")], ty: TsNumberType { number_token: NUMBER_KW@22..28 "number" [] [], }, }, }, r_brack_token: R_BRACK@28..29 "]" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@29..31 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@31..37 "string" [] [], }, }, separator_token: SEMICOLON@37..38 ";" [] [], }, ], r_curly_token: R_CURLY@38..40 "}" [Newline("\n")] [], }, TsInterfaceDeclaration { interface_token: INTERFACE_KW@40..51 "interface" [Newline("\n")] [Whitespace(" ")], id: TsIdentifierBinding { name_token: IDENT@51..53 "B" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), l_curly_token: L_CURLY@53..54 "{" [] [], members: TsTypeMemberList [ TsIndexSignatureTypeMember { readonly_token: missing (optional), l_brack_token: L_BRACK@54..60 "[" [Newline("\n"), Whitespace(" ")] [], parameter: TsIndexSignatureParameter { binding: JsIdentifierBinding { name_token: IDENT@60..65 "index" [] [], }, type_annotation: TsTypeAnnotation { colon_token: COLON@65..67 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@67..73 "string" [] [], }, }, }, r_brack_token: R_BRACK@73..74 "]" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@74..76 ":" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@76..78 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsPropertySignatureTypeMember { readonly_token: missing (optional), name: JsLiteralMemberName { value: IDENT@78..83 "prop" [] [Whitespace(" ")], }, optional_token: missing (optional), type_annotation: missing (optional), separator_token: missing (optional), }, ], r_curly_token: R_CURLY@83..84 "}" [] [], }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@84..86 "}" [Newline("\n")] [], }, TsInterfaceDeclaration { interface_token: INTERFACE_KW@86..97 "interface" [Newline("\n")] [Whitespace(" ")], id: TsIdentifierBinding { name_token: IDENT@97..99 "C" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), l_curly_token: L_CURLY@99..100 "{" [] [], members: TsTypeMemberList [ TsIndexSignatureTypeMember { readonly_token: READONLY_KW@100..114 "readonly" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], l_brack_token: L_BRACK@114..115 "[" [] [], parameter: TsIndexSignatureParameter { binding: JsIdentifierBinding { name_token: IDENT@115..116 "a" [] [], }, type_annotation: TsTypeAnnotation { colon_token: COLON@116..118 ":" [] [Whitespace(" ")], ty: TsNumberType { number_token: NUMBER_KW@118..124 "number" [] [], }, }, }, r_brack_token: R_BRACK@124..125 "]" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@125..127 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@127..133 "string" [] [], }, }, separator_token: SEMICOLON@133..134 ";" [] [], }, ], r_curly_token: R_CURLY@134..136 "}" [Newline("\n")] [], }, ], eof_token: EOF@136..137 "" [Newline("\n")] [], } 0: JS_MODULE@0..137 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..136 0: TS_INTERFACE_DECLARATION@0..40 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..38 0: TS_INDEX_SIGNATURE_TYPE_MEMBER@13..38 0: (empty) 1: L_BRACK@13..19 "[" [Newline("\n"), Whitespace(" ")] [] 2: TS_INDEX_SIGNATURE_PARAMETER@19..28 0: JS_IDENTIFIER_BINDING@19..20 0: IDENT@19..20 "a" [] [] 1: TS_TYPE_ANNOTATION@20..28 0: COLON@20..22 ":" [] [Whitespace(" ")] 1: TS_NUMBER_TYPE@22..28 0: NUMBER_KW@22..28 "number" [] [] 3: R_BRACK@28..29 "]" [] [] 4: TS_TYPE_ANNOTATION@29..37 0: COLON@29..31 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@31..37 0: STRING_KW@31..37 "string" [] [] 5: SEMICOLON@37..38 ";" [] [] 6: R_CURLY@38..40 "}" [Newline("\n")] [] 1: TS_INTERFACE_DECLARATION@40..86 0: INTERFACE_KW@40..51 "interface" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@51..53 0: IDENT@51..53 "B" [] [Whitespace(" ")] 2: (empty) 3: (empty) 4: L_CURLY@53..54 "{" [] [] 5: TS_TYPE_MEMBER_LIST@54..84 0: TS_INDEX_SIGNATURE_TYPE_MEMBER@54..84 0: (empty) 1: L_BRACK@54..60 "[" [Newline("\n"), Whitespace(" ")] [] 2: TS_INDEX_SIGNATURE_PARAMETER@60..73 0: JS_IDENTIFIER_BINDING@60..65 0: IDENT@60..65 "index" [] [] 1: TS_TYPE_ANNOTATION@65..73 0: COLON@65..67 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@67..73 0: STRING_KW@67..73 "string" [] [] 3: R_BRACK@73..74 "]" [] [] 4: TS_TYPE_ANNOTATION@74..84 0: COLON@74..76 ":" [] [Whitespace(" ")] 1: TS_OBJECT_TYPE@76..84 0: L_CURLY@76..78 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@78..83 0: TS_PROPERTY_SIGNATURE_TYPE_MEMBER@78..83 0: (empty) 1: JS_LITERAL_MEMBER_NAME@78..83 0: IDENT@78..83 "prop" [] [Whitespace(" ")] 2: (empty) 3: (empty) 4: (empty) 2: R_CURLY@83..84 "}" [] [] 5: (empty) 6: R_CURLY@84..86 "}" [Newline("\n")] [] 2: TS_INTERFACE_DECLARATION@86..136 0: INTERFACE_KW@86..97 "interface" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@97..99 0: IDENT@97..99 "C" [] [Whitespace(" ")] 2: (empty) 3: (empty) 4: L_CURLY@99..100 "{" [] [] 5: TS_TYPE_MEMBER_LIST@100..134 0: TS_INDEX_SIGNATURE_TYPE_MEMBER@100..134 0: READONLY_KW@100..114 "readonly" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: L_BRACK@114..115 "[" [] [] 2: TS_INDEX_SIGNATURE_PARAMETER@115..124 0: JS_IDENTIFIER_BINDING@115..116 0: IDENT@115..116 "a" [] [] 1: TS_TYPE_ANNOTATION@116..124 0: COLON@116..118 ":" [] [Whitespace(" ")] 1: TS_NUMBER_TYPE@118..124 0: NUMBER_KW@118..124 "number" [] [] 3: R_BRACK@124..125 "]" [] [] 4: TS_TYPE_ANNOTATION@125..133 0: COLON@125..127 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@127..133 0: STRING_KW@127..133 "string" [] [] 5: SEMICOLON@133..134 ";" [] [] 6: R_CURLY@134..136 "}" [Newline("\n")] [] 4: EOF@136..137 "" [Newline("\n")] []