{
  "type": "Module",
  "span": {
    "start": 45,
    "end": 150,
    "ctxt": 0
  },
  "body": [
    {
      "type": "TsInterfaceDeclaration",
      "span": {
        "start": 45,
        "end": 75,
        "ctxt": 0
      },
      "id": {
        "type": "Identifier",
        "span": {
          "start": 55,
          "end": 56,
          "ctxt": 0
        },
        "value": "I",
        "optional": false
      },
      "declare": false,
      "typeParams": null,
      "extends": [],
      "body": {
        "type": "TsInterfaceBody",
        "span": {
          "start": 57,
          "end": 75,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsPropertySignature",
            "span": {
              "start": 63,
              "end": 73,
              "ctxt": 0
            },
            "readonly": false,
            "key": {
              "type": "Identifier",
              "span": {
                "start": 63,
                "end": 64,
                "ctxt": 0
              },
              "value": "a",
              "optional": false
            },
            "computed": false,
            "optional": false,
            "init": null,
            "params": [],
            "typeAnnotation": {
              "type": "TsTypeAnnotation",
              "span": {
                "start": 64,
                "end": 72,
                "ctxt": 0
              },
              "typeAnnotation": {
                "type": "TsKeywordType",
                "span": {
                  "start": 66,
                  "end": 72,
                  "ctxt": 0
                },
                "kind": "number"
              }
            },
            "typeParams": null
          }
        ]
      }
    },
    {
      "type": "ExportDeclaration",
      "span": {
        "start": 77,
        "end": 150,
        "ctxt": 0
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "identifier": {
          "type": "Identifier",
          "span": {
            "start": 93,
            "end": 94,
            "ctxt": 0
          },
          "value": "f",
          "optional": false
        },
        "declare": false,
        "params": [
          {
            "type": "Parameter",
            "span": {
              "start": 95,
              "end": 101,
              "ctxt": 0
            },
            "decorators": [],
            "pat": {
              "type": "Identifier",
              "span": {
                "start": 95,
                "end": 101,
                "ctxt": 0
              },
              "value": "x",
              "optional": false,
              "typeAnnotation": {
                "type": "TsTypeAnnotation",
                "span": {
                  "start": 96,
                  "end": 101,
                  "ctxt": 0
                },
                "typeAnnotation": {
                  "type": "TsKeywordType",
                  "span": {
                    "start": 98,
                    "end": 101,
                    "ctxt": 0
                  },
                  "kind": "any"
                }
              }
            }
          }
        ],
        "decorators": [],
        "span": {
          "start": 84,
          "end": 150,
          "ctxt": 0
        },
        "body": {
          "type": "BlockStatement",
          "span": {
            "start": 111,
            "end": 150,
            "ctxt": 0
          },
          "stmts": [
            {
              "type": "ReturnStatement",
              "span": {
                "start": 117,
                "end": 148,
                "ctxt": 0
              },
              "argument": {
                "type": "BinaryExpression",
                "span": {
                  "start": 124,
                  "end": 147,
                  "ctxt": 0
                },
                "operator": "===",
                "left": {
                  "type": "UnaryExpression",
                  "span": {
                    "start": 124,
                    "end": 134,
                    "ctxt": 0
                  },
                  "operator": "typeof",
                  "argument": {
                    "type": "MemberExpression",
                    "span": {
                      "start": 131,
                      "end": 134,
                      "ctxt": 0
                    },
                    "object": {
                      "type": "Identifier",
                      "span": {
                        "start": 131,
                        "end": 132,
                        "ctxt": 0
                      },
                      "value": "x",
                      "optional": false
                    },
                    "property": {
                      "type": "Identifier",
                      "span": {
                        "start": 133,
                        "end": 134,
                        "ctxt": 0
                      },
                      "value": "a",
                      "optional": false
                    }
                  }
                },
                "right": {
                  "type": "StringLiteral",
                  "span": {
                    "start": 139,
                    "end": 147,
                    "ctxt": 0
                  },
                  "value": "number",
                  "raw": "\"number\""
                }
              }
            }
          ]
        },
        "generator": false,
        "async": false,
        "typeParameters": null,
        "returnType": {
          "type": "TsTypeAnnotation",
          "span": {
            "start": 102,
            "end": 110,
            "ctxt": 0
          },
          "typeAnnotation": {
            "type": "TsTypePredicate",
            "span": {
              "start": 104,
              "end": 110,
              "ctxt": 0
            },
            "asserts": false,
            "paramName": {
              "type": "Identifier",
              "span": {
                "start": 104,
                "end": 105,
                "ctxt": 0
              },
              "value": "x",
              "optional": false
            },
            "typeAnnotation": {
              "type": "TsTypeAnnotation",
              "span": {
                "start": 109,
                "end": 110,
                "ctxt": 0
              },
              "typeAnnotation": {
                "type": "TsTypeReference",
                "span": {
                  "start": 109,
                  "end": 110,
                  "ctxt": 0
                },
                "typeName": {
                  "type": "Identifier",
                  "span": {
                    "start": 109,
                    "end": 110,
                    "ctxt": 0
                  },
                  "value": "I",
                  "optional": false
                },
                "typeParams": null
              }
            }
          }
        }
      }
    }
  ],
  "interpreter": null
}