{ "type": "File", "start": 0, "end": 55, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 55 } }, "range": [ 0, 55 ], "program": { "type": "Program", "start": 0, "end": 55, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 55 } }, "range": [ 0, 55 ], "sourceType": "module", "body": [ { "type": "DeclareModule", "start": 0, "end": 55, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 55 } }, "range": [ 0, 55 ], "id": { "type": "Identifier", "start": 15, "end": 16, "loc": { "start": { "line": 1, "column": 15 }, "end": { "line": 1, "column": 16 } }, "range": [ 15, 16 ], "name": "A" }, "body": { "type": "BlockStatement", "start": 17, "end": 55, "loc": { "start": { "line": 1, "column": 17 }, "end": { "line": 1, "column": 55 } }, "range": [ 17, 55 ], "body": [ { "type": "DeclareClass", "start": 19, "end": 53, "loc": { "start": { "line": 1, "column": 19 }, "end": { "line": 1, "column": 53 } }, "range": [ 19, 53 ], "id": { "type": "Identifier", "start": 33, "end": 34, "loc": { "start": { "line": 1, "column": 33 }, "end": { "line": 1, "column": 34 } }, "range": [ 33, 34 ], "name": "B" }, "typeParameters": null, "extends": [], "body": { "type": "ObjectTypeAnnotation", "start": 35, "end": 53, "loc": { "start": { "line": 1, "column": 35 }, "end": { "line": 1, "column": 53 } }, "range": [ 35, 53 ], "callProperties": [], "properties": [ { "type": "ObjectTypeProperty", "start": 37, "end": 51, "loc": { "start": { "line": 1, "column": 37 }, "end": { "line": 1, "column": 51 } }, "range": [ 37, 51 ], "value": { "type": "FunctionTypeAnnotation", "start": 37, "end": 50, "loc": { "start": { "line": 1, "column": 37 }, "end": { "line": 1, "column": 50 } }, "range": [ 37, 50 ], "params": [], "rest": null, "typeParameters": null, "returnType": { "type": "NumberTypeAnnotation", "start": 44, "end": 50, "loc": { "start": { "line": 1, "column": 44 }, "end": { "line": 1, "column": 50 } }, "range": [ 44, 50 ] } }, "key": { "type": "Identifier", "start": 37, "end": 40, "loc": { "start": { "line": 1, "column": 37 }, "end": { "line": 1, "column": 40 } }, "range": [ 37, 40 ], "name": "foo" }, "optional": false } ], "indexers": [] } } ] } } ] } }