{
  "type": "File",
  "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}},
  "program": {
    "type": "Program",
    "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}},
    "sourceType": "module",
    "interpreter": null,
    "body": [
      {
        "type": "InterfaceDeclaration",
        "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}},
        "id": {
          "type": "Identifier",
          "start":10,"end":12,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":12},"identifierName":"of"},
          "name": "of"
        },
        "typeParameters": {
          "type": "TypeParameterDeclaration",
          "start":12,"end":15,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":15}},
          "params": [
            {
              "type": "TypeParameter",
              "start":13,"end":14,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":14}},
              "name": "T",
              "variance": null
            }
          ]
        },
        "extends": [],
        "implements": [],
        "mixins": [],
        "body": {
          "type": "ObjectTypeAnnotation",
          "start":16,"end":18,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":18}},
          "callProperties": [],
          "properties": [],
          "indexers": [],
          "internalSlots": [],
          "exact": false
        }
      }
    ],
    "directives": []
  }
}