{
  "type": "Script",
  "span": {
    "start": 72,
    "end": 566,
    "ctxt": 0
  },
  "body": [
    {
      "type": "TsInterfaceDeclaration",
      "span": {
        "start": 72,
        "end": 104,
        "ctxt": 0
      },
      "id": {
        "type": "Identifier",
        "span": {
          "start": 82,
          "end": 83,
          "ctxt": 0
        },
        "value": "A",
        "optional": false
      },
      "declare": false,
      "typeParams": null,
      "extends": [],
      "body": {
        "type": "TsInterfaceBody",
        "span": {
          "start": 84,
          "end": 104,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsPropertySignature",
            "span": {
              "start": 90,
              "end": 102,
              "ctxt": 0
            },
            "readonly": false,
            "key": {
              "type": "Identifier",
              "span": {
                "start": 90,
                "end": 93,
                "ctxt": 0
              },
              "value": "foo",
              "optional": false
            },
            "computed": false,
            "optional": false,
            "init": null,
            "params": [],
            "typeAnnotation": {
              "type": "TsTypeAnnotation",
              "span": {
                "start": 93,
                "end": 101,
                "ctxt": 0
              },
              "typeAnnotation": {
                "type": "TsKeywordType",
                "span": {
                  "start": 95,
                  "end": 101,
                  "ctxt": 0
                },
                "kind": "string"
              }
            },
            "typeParams": null
          }
        ]
      }
    },
    {
      "type": "TsInterfaceDeclaration",
      "span": {
        "start": 106,
        "end": 145,
        "ctxt": 0
      },
      "id": {
        "type": "Identifier",
        "span": {
          "start": 116,
          "end": 117,
          "ctxt": 0
        },
        "value": "A",
        "optional": false
      },
      "declare": false,
      "typeParams": {
        "type": "TsTypeParameterDeclaration",
        "span": {
          "start": 117,
          "end": 120,
          "ctxt": 0
        },
        "parameters": [
          {
            "type": "TsTypeParameter",
            "span": {
              "start": 118,
              "end": 119,
              "ctxt": 0
            },
            "name": {
              "type": "Identifier",
              "span": {
                "start": 118,
                "end": 119,
                "ctxt": 0
              },
              "value": "T",
              "optional": false
            },
            "in": false,
            "out": false,
            "const": false,
            "constraint": null,
            "default": null
          }
        ]
      },
      "extends": [],
      "body": {
        "type": "TsInterfaceBody",
        "span": {
          "start": 121,
          "end": 145,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsPropertySignature",
            "span": {
              "start": 136,
              "end": 143,
              "ctxt": 0
            },
            "readonly": false,
            "key": {
              "type": "Identifier",
              "span": {
                "start": 136,
                "end": 139,
                "ctxt": 0
              },
              "value": "bar",
              "optional": false
            },
            "computed": false,
            "optional": false,
            "init": null,
            "params": [],
            "typeAnnotation": {
              "type": "TsTypeAnnotation",
              "span": {
                "start": 139,
                "end": 142,
                "ctxt": 0
              },
              "typeAnnotation": {
                "type": "TsTypeReference",
                "span": {
                  "start": 141,
                  "end": 142,
                  "ctxt": 0
                },
                "typeName": {
                  "type": "Identifier",
                  "span": {
                    "start": 141,
                    "end": 142,
                    "ctxt": 0
                  },
                  "value": "T",
                  "optional": false
                },
                "typeParams": null
              }
            },
            "typeParams": null
          }
        ]
      }
    },
    {
      "type": "TsModuleDeclaration",
      "span": {
        "start": 147,
        "end": 258,
        "ctxt": 0
      },
      "declare": false,
      "global": false,
      "id": {
        "type": "Identifier",
        "span": {
          "start": 154,
          "end": 155,
          "ctxt": 0
        },
        "value": "M",
        "optional": false
      },
      "body": {
        "type": "TsModuleBlock",
        "span": {
          "start": 156,
          "end": 258,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsInterfaceDeclaration",
            "span": {
              "start": 162,
              "end": 201,
              "ctxt": 0
            },
            "id": {
              "type": "Identifier",
              "span": {
                "start": 172,
                "end": 173,
                "ctxt": 0
              },
              "value": "A",
              "optional": false
            },
            "declare": false,
            "typeParams": {
              "type": "TsTypeParameterDeclaration",
              "span": {
                "start": 173,
                "end": 176,
                "ctxt": 0
              },
              "parameters": [
                {
                  "type": "TsTypeParameter",
                  "span": {
                    "start": 174,
                    "end": 175,
                    "ctxt": 0
                  },
                  "name": {
                    "type": "Identifier",
                    "span": {
                      "start": 174,
                      "end": 175,
                      "ctxt": 0
                    },
                    "value": "T",
                    "optional": false
                  },
                  "in": false,
                  "out": false,
                  "const": false,
                  "constraint": null,
                  "default": null
                }
              ]
            },
            "extends": [],
            "body": {
              "type": "TsInterfaceBody",
              "span": {
                "start": 177,
                "end": 201,
                "ctxt": 0
              },
              "body": [
                {
                  "type": "TsPropertySignature",
                  "span": {
                    "start": 188,
                    "end": 195,
                    "ctxt": 0
                  },
                  "readonly": false,
                  "key": {
                    "type": "Identifier",
                    "span": {
                      "start": 188,
                      "end": 191,
                      "ctxt": 0
                    },
                    "value": "bar",
                    "optional": false
                  },
                  "computed": false,
                  "optional": false,
                  "init": null,
                  "params": [],
                  "typeAnnotation": {
                    "type": "TsTypeAnnotation",
                    "span": {
                      "start": 191,
                      "end": 194,
                      "ctxt": 0
                    },
                    "typeAnnotation": {
                      "type": "TsTypeReference",
                      "span": {
                        "start": 193,
                        "end": 194,
                        "ctxt": 0
                      },
                      "typeName": {
                        "type": "Identifier",
                        "span": {
                          "start": 193,
                          "end": 194,
                          "ctxt": 0
                        },
                        "value": "T",
                        "optional": false
                      },
                      "typeParams": null
                    }
                  },
                  "typeParams": null
                }
              ]
            }
          },
          {
            "type": "TsInterfaceDeclaration",
            "span": {
              "start": 207,
              "end": 256,
              "ctxt": 0
            },
            "id": {
              "type": "Identifier",
              "span": {
                "start": 217,
                "end": 218,
                "ctxt": 0
              },
              "value": "A",
              "optional": false
            },
            "declare": false,
            "typeParams": null,
            "extends": [],
            "body": {
              "type": "TsInterfaceBody",
              "span": {
                "start": 219,
                "end": 256,
                "ctxt": 0
              },
              "body": [
                {
                  "type": "TsPropertySignature",
                  "span": {
                    "start": 238,
                    "end": 250,
                    "ctxt": 0
                  },
                  "readonly": false,
                  "key": {
                    "type": "Identifier",
                    "span": {
                      "start": 238,
                      "end": 241,
                      "ctxt": 0
                    },
                    "value": "foo",
                    "optional": false
                  },
                  "computed": false,
                  "optional": false,
                  "init": null,
                  "params": [],
                  "typeAnnotation": {
                    "type": "TsTypeAnnotation",
                    "span": {
                      "start": 241,
                      "end": 249,
                      "ctxt": 0
                    },
                    "typeAnnotation": {
                      "type": "TsKeywordType",
                      "span": {
                        "start": 243,
                        "end": 249,
                        "ctxt": 0
                      },
                      "kind": "string"
                    }
                  },
                  "typeParams": null
                }
              ]
            }
          }
        ]
      }
    },
    {
      "type": "TsModuleDeclaration",
      "span": {
        "start": 260,
        "end": 318,
        "ctxt": 0
      },
      "declare": false,
      "global": false,
      "id": {
        "type": "Identifier",
        "span": {
          "start": 267,
          "end": 269,
          "ctxt": 0
        },
        "value": "M2",
        "optional": false
      },
      "body": {
        "type": "TsModuleBlock",
        "span": {
          "start": 270,
          "end": 318,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsInterfaceDeclaration",
            "span": {
              "start": 276,
              "end": 316,
              "ctxt": 0
            },
            "id": {
              "type": "Identifier",
              "span": {
                "start": 286,
                "end": 287,
                "ctxt": 0
              },
              "value": "A",
              "optional": false
            },
            "declare": false,
            "typeParams": null,
            "extends": [],
            "body": {
              "type": "TsInterfaceBody",
              "span": {
                "start": 288,
                "end": 316,
                "ctxt": 0
              },
              "body": [
                {
                  "type": "TsPropertySignature",
                  "span": {
                    "start": 298,
                    "end": 310,
                    "ctxt": 0
                  },
                  "readonly": false,
                  "key": {
                    "type": "Identifier",
                    "span": {
                      "start": 298,
                      "end": 301,
                      "ctxt": 0
                    },
                    "value": "foo",
                    "optional": false
                  },
                  "computed": false,
                  "optional": false,
                  "init": null,
                  "params": [],
                  "typeAnnotation": {
                    "type": "TsTypeAnnotation",
                    "span": {
                      "start": 301,
                      "end": 309,
                      "ctxt": 0
                    },
                    "typeAnnotation": {
                      "type": "TsKeywordType",
                      "span": {
                        "start": 303,
                        "end": 309,
                        "ctxt": 0
                      },
                      "kind": "string"
                    }
                  },
                  "typeParams": null
                }
              ]
            }
          }
        ]
      }
    },
    {
      "type": "TsModuleDeclaration",
      "span": {
        "start": 320,
        "end": 425,
        "ctxt": 0
      },
      "declare": false,
      "global": false,
      "id": {
        "type": "Identifier",
        "span": {
          "start": 327,
          "end": 329,
          "ctxt": 0
        },
        "value": "M2",
        "optional": false
      },
      "body": {
        "type": "TsModuleBlock",
        "span": {
          "start": 330,
          "end": 425,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsInterfaceDeclaration",
            "span": {
              "start": 336,
              "end": 423,
              "ctxt": 0
            },
            "id": {
              "type": "Identifier",
              "span": {
                "start": 346,
                "end": 347,
                "ctxt": 0
              },
              "value": "A",
              "optional": false
            },
            "declare": false,
            "typeParams": {
              "type": "TsTypeParameterDeclaration",
              "span": {
                "start": 347,
                "end": 350,
                "ctxt": 0
              },
              "parameters": [
                {
                  "type": "TsTypeParameter",
                  "span": {
                    "start": 348,
                    "end": 349,
                    "ctxt": 0
                  },
                  "name": {
                    "type": "Identifier",
                    "span": {
                      "start": 348,
                      "end": 349,
                      "ctxt": 0
                    },
                    "value": "T",
                    "optional": false
                  },
                  "in": false,
                  "out": false,
                  "const": false,
                  "constraint": null,
                  "default": null
                }
              ]
            },
            "extends": [],
            "body": {
              "type": "TsInterfaceBody",
              "span": {
                "start": 351,
                "end": 423,
                "ctxt": 0
              },
              "body": [
                {
                  "type": "TsPropertySignature",
                  "span": {
                    "start": 410,
                    "end": 417,
                    "ctxt": 0
                  },
                  "readonly": false,
                  "key": {
                    "type": "Identifier",
                    "span": {
                      "start": 410,
                      "end": 413,
                      "ctxt": 0
                    },
                    "value": "bar",
                    "optional": false
                  },
                  "computed": false,
                  "optional": false,
                  "init": null,
                  "params": [],
                  "typeAnnotation": {
                    "type": "TsTypeAnnotation",
                    "span": {
                      "start": 413,
                      "end": 416,
                      "ctxt": 0
                    },
                    "typeAnnotation": {
                      "type": "TsTypeReference",
                      "span": {
                        "start": 415,
                        "end": 416,
                        "ctxt": 0
                      },
                      "typeName": {
                        "type": "Identifier",
                        "span": {
                          "start": 415,
                          "end": 416,
                          "ctxt": 0
                        },
                        "value": "T",
                        "optional": false
                      },
                      "typeParams": null
                    }
                  },
                  "typeParams": null
                }
              ]
            }
          }
        ]
      }
    },
    {
      "type": "TsModuleDeclaration",
      "span": {
        "start": 427,
        "end": 492,
        "ctxt": 0
      },
      "declare": false,
      "global": false,
      "id": {
        "type": "Identifier",
        "span": {
          "start": 434,
          "end": 436,
          "ctxt": 0
        },
        "value": "M3",
        "optional": false
      },
      "body": {
        "type": "TsModuleBlock",
        "span": {
          "start": 437,
          "end": 492,
          "ctxt": 0
        },
        "body": [
          {
            "type": "ExportDeclaration",
            "span": {
              "start": 443,
              "end": 490,
              "ctxt": 0
            },
            "declaration": {
              "type": "TsInterfaceDeclaration",
              "span": {
                "start": 450,
                "end": 490,
                "ctxt": 0
              },
              "id": {
                "type": "Identifier",
                "span": {
                  "start": 460,
                  "end": 461,
                  "ctxt": 0
                },
                "value": "A",
                "optional": false
              },
              "declare": false,
              "typeParams": null,
              "extends": [],
              "body": {
                "type": "TsInterfaceBody",
                "span": {
                  "start": 462,
                  "end": 490,
                  "ctxt": 0
                },
                "body": [
                  {
                    "type": "TsPropertySignature",
                    "span": {
                      "start": 472,
                      "end": 484,
                      "ctxt": 0
                    },
                    "readonly": false,
                    "key": {
                      "type": "Identifier",
                      "span": {
                        "start": 472,
                        "end": 475,
                        "ctxt": 0
                      },
                      "value": "foo",
                      "optional": false
                    },
                    "computed": false,
                    "optional": false,
                    "init": null,
                    "params": [],
                    "typeAnnotation": {
                      "type": "TsTypeAnnotation",
                      "span": {
                        "start": 475,
                        "end": 483,
                        "ctxt": 0
                      },
                      "typeAnnotation": {
                        "type": "TsKeywordType",
                        "span": {
                          "start": 477,
                          "end": 483,
                          "ctxt": 0
                        },
                        "kind": "string"
                      }
                    },
                    "typeParams": null
                  }
                ]
              }
            }
          }
        ]
      }
    },
    {
      "type": "TsModuleDeclaration",
      "span": {
        "start": 494,
        "end": 566,
        "ctxt": 0
      },
      "declare": false,
      "global": false,
      "id": {
        "type": "Identifier",
        "span": {
          "start": 501,
          "end": 503,
          "ctxt": 0
        },
        "value": "M3",
        "optional": false
      },
      "body": {
        "type": "TsModuleBlock",
        "span": {
          "start": 504,
          "end": 566,
          "ctxt": 0
        },
        "body": [
          {
            "type": "ExportDeclaration",
            "span": {
              "start": 510,
              "end": 564,
              "ctxt": 0
            },
            "declaration": {
              "type": "TsInterfaceDeclaration",
              "span": {
                "start": 517,
                "end": 564,
                "ctxt": 0
              },
              "id": {
                "type": "Identifier",
                "span": {
                  "start": 527,
                  "end": 528,
                  "ctxt": 0
                },
                "value": "A",
                "optional": false
              },
              "declare": false,
              "typeParams": {
                "type": "TsTypeParameterDeclaration",
                "span": {
                  "start": 528,
                  "end": 531,
                  "ctxt": 0
                },
                "parameters": [
                  {
                    "type": "TsTypeParameter",
                    "span": {
                      "start": 529,
                      "end": 530,
                      "ctxt": 0
                    },
                    "name": {
                      "type": "Identifier",
                      "span": {
                        "start": 529,
                        "end": 530,
                        "ctxt": 0
                      },
                      "value": "T",
                      "optional": false
                    },
                    "in": false,
                    "out": false,
                    "const": false,
                    "constraint": null,
                    "default": null
                  }
                ]
              },
              "extends": [],
              "body": {
                "type": "TsInterfaceBody",
                "span": {
                  "start": 532,
                  "end": 564,
                  "ctxt": 0
                },
                "body": [
                  {
                    "type": "TsPropertySignature",
                    "span": {
                      "start": 551,
                      "end": 558,
                      "ctxt": 0
                    },
                    "readonly": false,
                    "key": {
                      "type": "Identifier",
                      "span": {
                        "start": 551,
                        "end": 554,
                        "ctxt": 0
                      },
                      "value": "bar",
                      "optional": false
                    },
                    "computed": false,
                    "optional": false,
                    "init": null,
                    "params": [],
                    "typeAnnotation": {
                      "type": "TsTypeAnnotation",
                      "span": {
                        "start": 554,
                        "end": 557,
                        "ctxt": 0
                      },
                      "typeAnnotation": {
                        "type": "TsTypeReference",
                        "span": {
                          "start": 556,
                          "end": 557,
                          "ctxt": 0
                        },
                        "typeName": {
                          "type": "Identifier",
                          "span": {
                            "start": 556,
                            "end": 557,
                            "ctxt": 0
                          },
                          "value": "T",
                          "optional": false
                        },
                        "typeParams": null
                      }
                    },
                    "typeParams": null
                  }
                ]
              }
            }
          }
        ]
      }
    }
  ],
  "interpreter": null
}