1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSModuleDeclaration",
6      "id": {
7        "type": "Identifier",
8        "name": "ns",
9        "loc": {
10          "start": {
11            "line": 17,
12            "column": 19
13          },
14          "end": {
15            "line": 17,
16            "column": 21
17          }
18        }
19      },
20      "body": {
21        "type": "TSModuleBlock",
22        "body": [
23          {
24            "type": "ClassDeclaration",
25            "definition": {
26              "id": {
27                "type": "Identifier",
28                "name": "C1",
29                "loc": {
30                  "start": {
31                    "line": 18,
32                    "column": 11
33                  },
34                  "end": {
35                    "line": 18,
36                    "column": 13
37                  }
38                }
39              },
40              "superClass": null,
41              "implements": [],
42              "constructor": {
43                "type": "MethodDefinition",
44                "key": {
45                  "type": "Identifier",
46                  "name": "constructor",
47                  "loc": {
48                    "start": {
49                      "line": 1,
50                      "column": 1
51                    },
52                    "end": {
53                      "line": 1,
54                      "column": 1
55                    }
56                  }
57                },
58                "kind": "constructor",
59                "static": false,
60                "optional": false,
61                "computed": false,
62                "value": {
63                  "type": "FunctionExpression",
64                  "function": {
65                    "type": "ScriptFunction",
66                    "id": null,
67                    "generator": false,
68                    "async": false,
69                    "expression": false,
70                    "params": [],
71                    "declare": true,
72                    "loc": {
73                      "start": {
74                        "line": 1,
75                        "column": 1
76                      },
77                      "end": {
78                        "line": 1,
79                        "column": 1
80                      }
81                    }
82                  },
83                  "loc": {
84                    "start": {
85                      "line": 1,
86                      "column": 1
87                    },
88                    "end": {
89                      "line": 1,
90                      "column": 1
91                    }
92                  }
93                },
94                "overloads": [],
95                "decorators": [],
96                "annotations": [],
97                "loc": {
98                  "start": {
99                    "line": 18,
100                    "column": 5
101                  },
102                  "end": {
103                    "line": 18,
104                    "column": 16
105                  }
106                }
107              },
108              "body": [],
109              "indexSignatures": [],
110              "loc": {
111                "start": {
112                  "line": 18,
113                  "column": 14
114                },
115                "end": {
116                  "line": 18,
117                  "column": 16
118                }
119              }
120            },
121            "decorators": [],
122            "isAnnotationDeclaration": false,
123            "loc": {
124              "start": {
125                "line": 18,
126                "column": 5
127              },
128              "end": {
129                "line": 18,
130                "column": 16
131              }
132            }
133          },
134          {
135            "type": "TSDeclareFunction",
136            "function": {
137              "type": "ScriptFunction",
138              "id": {
139                "type": "Identifier",
140                "name": "C1",
141                "loc": {
142                  "start": {
143                    "line": 19,
144                    "column": 14
145                  },
146                  "end": {
147                    "line": 19,
148                    "column": 16
149                  }
150                }
151              },
152              "generator": false,
153              "async": false,
154              "expression": false,
155              "params": [],
156              "returnType": {
157                "type": "TSTypeReference",
158                "typeName": {
159                  "type": "Identifier",
160                  "name": "C1",
161                  "loc": {
162                    "start": {
163                      "line": 19,
164                      "column": 21
165                    },
166                    "end": {
167                      "line": 19,
168                      "column": 23
169                    }
170                  }
171                },
172                "loc": {
173                  "start": {
174                    "line": 19,
175                    "column": 21
176                  },
177                  "end": {
178                    "line": 19,
179                    "column": 23
180                  }
181                }
182              },
183              "loc": {
184                "start": {
185                  "line": 19,
186                  "column": 5
187                },
188                "end": {
189                  "line": 20,
190                  "column": 13
191                }
192              }
193            },
194            "loc": {
195              "start": {
196                "line": 19,
197                "column": 5
198              },
199              "end": {
200                "line": 20,
201                "column": 13
202              }
203            }
204          },
205          {
206            "type": "TSDeclareFunction",
207            "function": {
208              "type": "ScriptFunction",
209              "id": {
210                "type": "Identifier",
211                "name": "C1",
212                "loc": {
213                  "start": {
214                    "line": 20,
215                    "column": 14
216                  },
217                  "end": {
218                    "line": 20,
219                    "column": 16
220                  }
221                }
222              },
223              "generator": false,
224              "async": false,
225              "expression": false,
226              "params": [],
227              "returnType": {
228                "type": "TSTypeReference",
229                "typeName": {
230                  "type": "Identifier",
231                  "name": "C1",
232                  "loc": {
233                    "start": {
234                      "line": 20,
235                      "column": 21
236                    },
237                    "end": {
238                      "line": 20,
239                      "column": 23
240                    }
241                  }
242                },
243                "loc": {
244                  "start": {
245                    "line": 20,
246                    "column": 21
247                  },
248                  "end": {
249                    "line": 20,
250                    "column": 23
251                  }
252                }
253              },
254              "loc": {
255                "start": {
256                  "line": 20,
257                  "column": 5
258                },
259                "end": {
260                  "line": 22,
261                  "column": 13
262                }
263              }
264            },
265            "loc": {
266              "start": {
267                "line": 20,
268                "column": 5
269              },
270              "end": {
271                "line": 22,
272                "column": 13
273              }
274            }
275          },
276          {
277            "type": "TSDeclareFunction",
278            "function": {
279              "type": "ScriptFunction",
280              "id": {
281                "type": "Identifier",
282                "name": "C2",
283                "loc": {
284                  "start": {
285                    "line": 22,
286                    "column": 14
287                  },
288                  "end": {
289                    "line": 22,
290                    "column": 16
291                  }
292                }
293              },
294              "generator": false,
295              "async": false,
296              "expression": false,
297              "params": [],
298              "returnType": {
299                "type": "TSTypeReference",
300                "typeName": {
301                  "type": "Identifier",
302                  "name": "C2",
303                  "loc": {
304                    "start": {
305                      "line": 22,
306                      "column": 21
307                    },
308                    "end": {
309                      "line": 22,
310                      "column": 23
311                    }
312                  }
313                },
314                "loc": {
315                  "start": {
316                    "line": 22,
317                    "column": 21
318                  },
319                  "end": {
320                    "line": 22,
321                    "column": 23
322                  }
323                }
324              },
325              "loc": {
326                "start": {
327                  "line": 22,
328                  "column": 5
329                },
330                "end": {
331                  "line": 23,
332                  "column": 13
333                }
334              }
335            },
336            "loc": {
337              "start": {
338                "line": 22,
339                "column": 5
340              },
341              "end": {
342                "line": 23,
343                "column": 13
344              }
345            }
346          },
347          {
348            "type": "TSDeclareFunction",
349            "function": {
350              "type": "ScriptFunction",
351              "id": {
352                "type": "Identifier",
353                "name": "C2",
354                "loc": {
355                  "start": {
356                    "line": 23,
357                    "column": 14
358                  },
359                  "end": {
360                    "line": 23,
361                    "column": 16
362                  }
363                }
364              },
365              "generator": false,
366              "async": false,
367              "expression": false,
368              "params": [],
369              "returnType": {
370                "type": "TSTypeReference",
371                "typeName": {
372                  "type": "Identifier",
373                  "name": "C2",
374                  "loc": {
375                    "start": {
376                      "line": 23,
377                      "column": 21
378                    },
379                    "end": {
380                      "line": 23,
381                      "column": 23
382                    }
383                  }
384                },
385                "loc": {
386                  "start": {
387                    "line": 23,
388                    "column": 21
389                  },
390                  "end": {
391                    "line": 23,
392                    "column": 23
393                  }
394                }
395              },
396              "loc": {
397                "start": {
398                  "line": 23,
399                  "column": 5
400                },
401                "end": {
402                  "line": 24,
403                  "column": 10
404                }
405              }
406            },
407            "loc": {
408              "start": {
409                "line": 23,
410                "column": 5
411              },
412              "end": {
413                "line": 24,
414                "column": 10
415              }
416            }
417          },
418          {
419            "type": "ClassDeclaration",
420            "definition": {
421              "id": {
422                "type": "Identifier",
423                "name": "C2",
424                "loc": {
425                  "start": {
426                    "line": 24,
427                    "column": 11
428                  },
429                  "end": {
430                    "line": 24,
431                    "column": 13
432                  }
433                }
434              },
435              "superClass": null,
436              "implements": [],
437              "constructor": {
438                "type": "MethodDefinition",
439                "key": {
440                  "type": "Identifier",
441                  "name": "constructor",
442                  "loc": {
443                    "start": {
444                      "line": 1,
445                      "column": 1
446                    },
447                    "end": {
448                      "line": 1,
449                      "column": 1
450                    }
451                  }
452                },
453                "kind": "constructor",
454                "static": false,
455                "optional": false,
456                "computed": false,
457                "value": {
458                  "type": "FunctionExpression",
459                  "function": {
460                    "type": "ScriptFunction",
461                    "id": null,
462                    "generator": false,
463                    "async": false,
464                    "expression": false,
465                    "params": [],
466                    "declare": true,
467                    "loc": {
468                      "start": {
469                        "line": 1,
470                        "column": 1
471                      },
472                      "end": {
473                        "line": 1,
474                        "column": 1
475                      }
476                    }
477                  },
478                  "loc": {
479                    "start": {
480                      "line": 1,
481                      "column": 1
482                    },
483                    "end": {
484                      "line": 1,
485                      "column": 1
486                    }
487                  }
488                },
489                "overloads": [],
490                "decorators": [],
491                "annotations": [],
492                "loc": {
493                  "start": {
494                    "line": 24,
495                    "column": 5
496                  },
497                  "end": {
498                    "line": 24,
499                    "column": 16
500                  }
501                }
502              },
503              "body": [],
504              "indexSignatures": [],
505              "loc": {
506                "start": {
507                  "line": 24,
508                  "column": 14
509                },
510                "end": {
511                  "line": 24,
512                  "column": 16
513                }
514              }
515            },
516            "decorators": [],
517            "isAnnotationDeclaration": false,
518            "loc": {
519              "start": {
520                "line": 24,
521                "column": 5
522              },
523              "end": {
524                "line": 24,
525                "column": 16
526              }
527            }
528          }
529        ],
530        "loc": {
531          "start": {
532            "line": 17,
533            "column": 22
534          },
535          "end": {
536            "line": 25,
537            "column": 2
538          }
539        }
540      },
541      "declare": true,
542      "global": false,
543      "loc": {
544        "start": {
545          "line": 17,
546          "column": 9
547        },
548        "end": {
549          "line": 26,
550          "column": 1
551        }
552      }
553    }
554  ],
555  "loc": {
556    "start": {
557      "line": 1,
558      "column": 1
559    },
560    "end": {
561      "line": 26,
562      "column": 1
563    }
564  }
565}
566