{
  "type": "Script",
  "span": {
    "start": 72,
    "end": 369,
    "ctxt": 0
  },
  "body": [
    {
      "type": "TsModuleDeclaration",
      "span": {
        "start": 72,
        "end": 127,
        "ctxt": 0
      },
      "declare": false,
      "global": false,
      "id": {
        "type": "Identifier",
        "span": {
          "start": 79,
          "end": 80,
          "ctxt": 0
        },
        "value": "M",
        "optional": false
      },
      "body": {
        "type": "TsModuleBlock",
        "span": {
          "start": 81,
          "end": 127,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsInterfaceDeclaration",
            "span": {
              "start": 87,
              "end": 125,
              "ctxt": 0
            },
            "id": {
              "type": "Identifier",
              "span": {
                "start": 97,
                "end": 98,
                "ctxt": 0
              },
              "value": "A",
              "optional": false
            },
            "declare": false,
            "typeParams": {
              "type": "TsTypeParameterDeclaration",
              "span": {
                "start": 98,
                "end": 101,
                "ctxt": 0
              },
              "parameters": [
                {
                  "type": "TsTypeParameter",
                  "span": {
                    "start": 99,
                    "end": 100,
                    "ctxt": 0
                  },
                  "name": {
                    "type": "Identifier",
                    "span": {
                      "start": 99,
                      "end": 100,
                      "ctxt": 0
                    },
                    "value": "T",
                    "optional": false
                  },
                  "in": false,
                  "out": false,
                  "constraint": null,
                  "default": null
                }
              ]
            },
            "extends": [],
            "body": {
              "type": "TsInterfaceBody",
              "span": {
                "start": 102,
                "end": 125,
                "ctxt": 0
              },
              "body": [
                {
                  "type": "TsPropertySignature",
                  "span": {
                    "start": 112,
                    "end": 119,
                    "ctxt": 0
                  },
                  "readonly": false,
                  "key": {
                    "type": "Identifier",
                    "span": {
                      "start": 112,
                      "end": 115,
                      "ctxt": 0
                    },
                    "value": "bar",
                    "optional": false
                  },
                  "computed": false,
                  "optional": false,
                  "init": null,
                  "params": [],
                  "typeAnnotation": {
                    "type": "TsTypeAnnotation",
                    "span": {
                      "start": 115,
                      "end": 118,
                      "ctxt": 0
                    },
                    "typeAnnotation": {
                      "type": "TsTypeReference",
                      "span": {
                        "start": 117,
                        "end": 118,
                        "ctxt": 0
                      },
                      "typeName": {
                        "type": "Identifier",
                        "span": {
                          "start": 117,
                          "end": 118,
                          "ctxt": 0
                        },
                        "value": "T",
                        "optional": false
                      },
                      "typeParams": null
                    }
                  },
                  "typeParams": null
                }
              ]
            }
          }
        ]
      }
    },
    {
      "type": "TsModuleDeclaration",
      "span": {
        "start": 129,
        "end": 193,
        "ctxt": 0
      },
      "declare": false,
      "global": false,
      "id": {
        "type": "Identifier",
        "span": {
          "start": 136,
          "end": 138,
          "ctxt": 0
        },
        "value": "M2",
        "optional": false
      },
      "body": {
        "type": "TsModuleBlock",
        "span": {
          "start": 139,
          "end": 193,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsInterfaceDeclaration",
            "span": {
              "start": 145,
              "end": 191,
              "ctxt": 0
            },
            "id": {
              "type": "Identifier",
              "span": {
                "start": 155,
                "end": 156,
                "ctxt": 0
              },
              "value": "A",
              "optional": false
            },
            "declare": false,
            "typeParams": null,
            "extends": [],
            "body": {
              "type": "TsInterfaceBody",
              "span": {
                "start": 157,
                "end": 191,
                "ctxt": 0
              },
              "body": [
                {
                  "type": "TsPropertySignature",
                  "span": {
                    "start": 173,
                    "end": 185,
                    "ctxt": 0
                  },
                  "readonly": false,
                  "key": {
                    "type": "Identifier",
                    "span": {
                      "start": 173,
                      "end": 176,
                      "ctxt": 0
                    },
                    "value": "foo",
                    "optional": false
                  },
                  "computed": false,
                  "optional": false,
                  "init": null,
                  "params": [],
                  "typeAnnotation": {
                    "type": "TsTypeAnnotation",
                    "span": {
                      "start": 176,
                      "end": 184,
                      "ctxt": 0
                    },
                    "typeAnnotation": {
                      "type": "TsKeywordType",
                      "span": {
                        "start": 178,
                        "end": 184,
                        "ctxt": 0
                      },
                      "kind": "string"
                    }
                  },
                  "typeParams": null
                }
              ]
            }
          }
        ]
      }
    },
    {
      "type": "TsModuleDeclaration",
      "span": {
        "start": 195,
        "end": 369,
        "ctxt": 0
      },
      "declare": false,
      "global": false,
      "id": {
        "type": "Identifier",
        "span": {
          "start": 202,
          "end": 203,
          "ctxt": 0
        },
        "value": "N",
        "optional": false
      },
      "body": {
        "type": "TsModuleBlock",
        "span": {
          "start": 204,
          "end": 369,
          "ctxt": 0
        },
        "body": [
          {
            "type": "TsModuleDeclaration",
            "span": {
              "start": 210,
              "end": 281,
              "ctxt": 0
            },
            "declare": false,
            "global": false,
            "id": {
              "type": "Identifier",
              "span": {
                "start": 217,
                "end": 218,
                "ctxt": 0
              },
              "value": "M",
              "optional": false
            },
            "body": {
              "type": "TsModuleBlock",
              "span": {
                "start": 219,
                "end": 281,
                "ctxt": 0
              },
              "body": [
                {
                  "type": "TsInterfaceDeclaration",
                  "span": {
                    "start": 229,
                    "end": 275,
                    "ctxt": 0
                  },
                  "id": {
                    "type": "Identifier",
                    "span": {
                      "start": 239,
                      "end": 240,
                      "ctxt": 0
                    },
                    "value": "A",
                    "optional": false
                  },
                  "declare": false,
                  "typeParams": {
                    "type": "TsTypeParameterDeclaration",
                    "span": {
                      "start": 240,
                      "end": 243,
                      "ctxt": 0
                    },
                    "parameters": [
                      {
                        "type": "TsTypeParameter",
                        "span": {
                          "start": 241,
                          "end": 242,
                          "ctxt": 0
                        },
                        "name": {
                          "type": "Identifier",
                          "span": {
                            "start": 241,
                            "end": 242,
                            "ctxt": 0
                          },
                          "value": "T",
                          "optional": false
                        },
                        "in": false,
                        "out": false,
                        "constraint": null,
                        "default": null
                      }
                    ]
                  },
                  "extends": [],
                  "body": {
                    "type": "TsInterfaceBody",
                    "span": {
                      "start": 244,
                      "end": 275,
                      "ctxt": 0
                    },
                    "body": [
                      {
                        "type": "TsPropertySignature",
                        "span": {
                          "start": 258,
                          "end": 265,
                          "ctxt": 0
                        },
                        "readonly": false,
                        "key": {
                          "type": "Identifier",
                          "span": {
                            "start": 258,
                            "end": 261,
                            "ctxt": 0
                          },
                          "value": "bar",
                          "optional": false
                        },
                        "computed": false,
                        "optional": false,
                        "init": null,
                        "params": [],
                        "typeAnnotation": {
                          "type": "TsTypeAnnotation",
                          "span": {
                            "start": 261,
                            "end": 264,
                            "ctxt": 0
                          },
                          "typeAnnotation": {
                            "type": "TsTypeReference",
                            "span": {
                              "start": 263,
                              "end": 264,
                              "ctxt": 0
                            },
                            "typeName": {
                              "type": "Identifier",
                              "span": {
                                "start": 263,
                                "end": 264,
                                "ctxt": 0
                              },
                              "value": "T",
                              "optional": false
                            },
                            "typeParams": null
                          }
                        },
                        "typeParams": null
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "type": "TsModuleDeclaration",
            "span": {
              "start": 287,
              "end": 367,
              "ctxt": 0
            },
            "declare": false,
            "global": false,
            "id": {
              "type": "Identifier",
              "span": {
                "start": 294,
                "end": 296,
                "ctxt": 0
              },
              "value": "M2",
              "optional": false
            },
            "body": {
              "type": "TsModuleBlock",
              "span": {
                "start": 297,
                "end": 367,
                "ctxt": 0
              },
              "body": [
                {
                  "type": "TsInterfaceDeclaration",
                  "span": {
                    "start": 307,
                    "end": 361,
                    "ctxt": 0
                  },
                  "id": {
                    "type": "Identifier",
                    "span": {
                      "start": 317,
                      "end": 318,
                      "ctxt": 0
                    },
                    "value": "A",
                    "optional": false
                  },
                  "declare": false,
                  "typeParams": null,
                  "extends": [],
                  "body": {
                    "type": "TsInterfaceBody",
                    "span": {
                      "start": 319,
                      "end": 361,
                      "ctxt": 0
                    },
                    "body": [
                      {
                        "type": "TsPropertySignature",
                        "span": {
                          "start": 339,
                          "end": 351,
                          "ctxt": 0
                        },
                        "readonly": false,
                        "key": {
                          "type": "Identifier",
                          "span": {
                            "start": 339,
                            "end": 342,
                            "ctxt": 0
                          },
                          "value": "foo",
                          "optional": false
                        },
                        "computed": false,
                        "optional": false,
                        "init": null,
                        "params": [],
                        "typeAnnotation": {
                          "type": "TsTypeAnnotation",
                          "span": {
                            "start": 342,
                            "end": 350,
                            "ctxt": 0
                          },
                          "typeAnnotation": {
                            "type": "TsKeywordType",
                            "span": {
                              "start": 344,
                              "end": 350,
                              "ctxt": 0
                            },
                            "kind": "string"
                          }
                        },
                        "typeParams": null
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    }
  ],
  "interpreter": null
}