JsModule { interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ TsTypeAliasDeclaration { type_token: TYPE_KW@0..5 "type" [] [Whitespace(" ")], binding_identifier: TsIdentifierBinding { name_token: IDENT@5..7 "A" [] [Whitespace(" ")], }, type_parameters: missing (optional), eq_token: EQ@7..9 "=" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@9..11 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsCallSignatureTypeMember { type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@11..12 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@12..13 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@13..15 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@15..21 "string" [] [], }, }, separator_token: SEMICOLON@21..23 ";" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@23..24 "}" [] [], }, semicolon_token: missing (optional), }, TsTypeAliasDeclaration { type_token: TYPE_KW@24..30 "type" [Newline("\n")] [Whitespace(" ")], binding_identifier: TsIdentifierBinding { name_token: IDENT@30..32 "B" [] [Whitespace(" ")], }, type_parameters: missing (optional), eq_token: EQ@32..34 "=" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@34..36 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsCallSignatureTypeMember { type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@36..37 "(" [] [], items: JsParameterList [ JsFormalParameter { binding: JsIdentifierBinding { name_token: IDENT@37..38 "a" [] [], }, question_mark_token: missing (optional), type_annotation: missing (optional), initializer: missing (optional), }, COMMA@38..40 "," [] [Whitespace(" ")], JsFormalParameter { binding: JsIdentifierBinding { name_token: IDENT@40..41 "b" [] [], }, question_mark_token: missing (optional), type_annotation: missing (optional), initializer: missing (optional), }, COMMA@41..43 "," [] [Whitespace(" ")], JsFormalParameter { binding: JsIdentifierBinding { name_token: IDENT@43..44 "c" [] [], }, question_mark_token: missing (optional), type_annotation: missing (optional), initializer: missing (optional), }, ], r_paren_token: R_PAREN@44..45 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@45..47 ":" [] [Whitespace(" ")], ty: TsNumberType { number_token: NUMBER_KW@47..54 "number" [] [Whitespace(" ")], }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@54..55 "}" [] [], }, semicolon_token: missing (optional), }, TsTypeAliasDeclaration { type_token: TYPE_KW@55..61 "type" [Newline("\n")] [Whitespace(" ")], binding_identifier: TsIdentifierBinding { name_token: IDENT@61..63 "C" [] [Whitespace(" ")], }, type_parameters: missing (optional), eq_token: EQ@63..65 "=" [] [Whitespace(" ")], ty: TsObjectType { l_curly_token: L_CURLY@65..67 "{" [] [Whitespace(" ")], members: TsTypeMemberList [ TsCallSignatureTypeMember { type_parameters: TsTypeParameters { l_angle_token: L_ANGLE@67..68 "<" [] [], items: TsTypeParameterList [ TsTypeParameter { modifiers: TsTypeParameterModifierList [], name: TsTypeParameterName { ident_token: IDENT@68..69 "A" [] [], }, constraint: missing (optional), default: missing (optional), }, COMMA@69..71 "," [] [Whitespace(" ")], TsTypeParameter { modifiers: TsTypeParameterModifierList [], name: TsTypeParameterName { ident_token: IDENT@71..72 "B" [] [], }, constraint: missing (optional), default: missing (optional), }, ], r_angle_token: R_ANGLE@72..73 ">" [] [], }, parameters: JsParameters { l_paren_token: L_PAREN@73..74 "(" [] [], items: JsParameterList [ JsFormalParameter { binding: JsIdentifierBinding { name_token: IDENT@74..75 "a" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@75..77 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@77..78 "A" [] [], }, type_arguments: missing (optional), }, }, initializer: missing (optional), }, COMMA@78..80 "," [] [Whitespace(" ")], JsFormalParameter { binding: JsIdentifierBinding { name_token: IDENT@80..81 "b" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@81..83 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@83..84 "B" [] [], }, type_arguments: missing (optional), }, }, initializer: missing (optional), }, ], r_paren_token: R_PAREN@84..85 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@85..87 ":" [] [Whitespace(" ")], ty: TsNumberType { number_token: NUMBER_KW@87..94 "number" [] [Whitespace(" ")], }, }, separator_token: missing (optional), }, ], r_curly_token: R_CURLY@94..95 "}" [] [], }, semicolon_token: missing (optional), }, ], eof_token: EOF@95..96 "" [Newline("\n")] [], } 0: JS_MODULE@0..96 0: (empty) 1: JS_DIRECTIVE_LIST@0..0 2: JS_MODULE_ITEM_LIST@0..95 0: TS_TYPE_ALIAS_DECLARATION@0..24 0: TYPE_KW@0..5 "type" [] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@5..7 0: IDENT@5..7 "A" [] [Whitespace(" ")] 2: (empty) 3: EQ@7..9 "=" [] [Whitespace(" ")] 4: TS_OBJECT_TYPE@9..24 0: L_CURLY@9..11 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@11..23 0: TS_CALL_SIGNATURE_TYPE_MEMBER@11..23 0: (empty) 1: JS_PARAMETERS@11..13 0: L_PAREN@11..12 "(" [] [] 1: JS_PARAMETER_LIST@12..12 2: R_PAREN@12..13 ")" [] [] 2: TS_RETURN_TYPE_ANNOTATION@13..21 0: COLON@13..15 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@15..21 0: STRING_KW@15..21 "string" [] [] 3: SEMICOLON@21..23 ";" [] [Whitespace(" ")] 2: R_CURLY@23..24 "}" [] [] 5: (empty) 1: TS_TYPE_ALIAS_DECLARATION@24..55 0: TYPE_KW@24..30 "type" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@30..32 0: IDENT@30..32 "B" [] [Whitespace(" ")] 2: (empty) 3: EQ@32..34 "=" [] [Whitespace(" ")] 4: TS_OBJECT_TYPE@34..55 0: L_CURLY@34..36 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@36..54 0: TS_CALL_SIGNATURE_TYPE_MEMBER@36..54 0: (empty) 1: JS_PARAMETERS@36..45 0: L_PAREN@36..37 "(" [] [] 1: JS_PARAMETER_LIST@37..44 0: JS_FORMAL_PARAMETER@37..38 0: JS_IDENTIFIER_BINDING@37..38 0: IDENT@37..38 "a" [] [] 1: (empty) 2: (empty) 3: (empty) 1: COMMA@38..40 "," [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@40..41 0: JS_IDENTIFIER_BINDING@40..41 0: IDENT@40..41 "b" [] [] 1: (empty) 2: (empty) 3: (empty) 3: COMMA@41..43 "," [] [Whitespace(" ")] 4: JS_FORMAL_PARAMETER@43..44 0: JS_IDENTIFIER_BINDING@43..44 0: IDENT@43..44 "c" [] [] 1: (empty) 2: (empty) 3: (empty) 2: R_PAREN@44..45 ")" [] [] 2: TS_RETURN_TYPE_ANNOTATION@45..54 0: COLON@45..47 ":" [] [Whitespace(" ")] 1: TS_NUMBER_TYPE@47..54 0: NUMBER_KW@47..54 "number" [] [Whitespace(" ")] 3: (empty) 2: R_CURLY@54..55 "}" [] [] 5: (empty) 2: TS_TYPE_ALIAS_DECLARATION@55..95 0: TYPE_KW@55..61 "type" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@61..63 0: IDENT@61..63 "C" [] [Whitespace(" ")] 2: (empty) 3: EQ@63..65 "=" [] [Whitespace(" ")] 4: TS_OBJECT_TYPE@65..95 0: L_CURLY@65..67 "{" [] [Whitespace(" ")] 1: TS_TYPE_MEMBER_LIST@67..94 0: TS_CALL_SIGNATURE_TYPE_MEMBER@67..94 0: TS_TYPE_PARAMETERS@67..73 0: L_ANGLE@67..68 "<" [] [] 1: TS_TYPE_PARAMETER_LIST@68..72 0: TS_TYPE_PARAMETER@68..69 0: TS_TYPE_PARAMETER_MODIFIER_LIST@68..68 1: TS_TYPE_PARAMETER_NAME@68..69 0: IDENT@68..69 "A" [] [] 2: (empty) 3: (empty) 1: COMMA@69..71 "," [] [Whitespace(" ")] 2: TS_TYPE_PARAMETER@71..72 0: TS_TYPE_PARAMETER_MODIFIER_LIST@71..71 1: TS_TYPE_PARAMETER_NAME@71..72 0: IDENT@71..72 "B" [] [] 2: (empty) 3: (empty) 2: R_ANGLE@72..73 ">" [] [] 1: JS_PARAMETERS@73..85 0: L_PAREN@73..74 "(" [] [] 1: JS_PARAMETER_LIST@74..84 0: JS_FORMAL_PARAMETER@74..78 0: JS_IDENTIFIER_BINDING@74..75 0: IDENT@74..75 "a" [] [] 1: (empty) 2: TS_TYPE_ANNOTATION@75..78 0: COLON@75..77 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@77..78 0: JS_REFERENCE_IDENTIFIER@77..78 0: IDENT@77..78 "A" [] [] 1: (empty) 3: (empty) 1: COMMA@78..80 "," [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@80..84 0: JS_IDENTIFIER_BINDING@80..81 0: IDENT@80..81 "b" [] [] 1: (empty) 2: TS_TYPE_ANNOTATION@81..84 0: COLON@81..83 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@83..84 0: JS_REFERENCE_IDENTIFIER@83..84 0: IDENT@83..84 "B" [] [] 1: (empty) 3: (empty) 2: R_PAREN@84..85 ")" [] [] 2: TS_RETURN_TYPE_ANNOTATION@85..94 0: COLON@85..87 ":" [] [Whitespace(" ")] 1: TS_NUMBER_TYPE@87..94 0: NUMBER_KW@87..94 "number" [] [Whitespace(" ")] 3: (empty) 2: R_CURLY@94..95 "}" [] [] 5: (empty) 3: EOF@95..96 "" [Newline("\n")] []