1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "C1",
10          "loc": {
11            "start": {
12              "line": 17,
13              "column": 15
14            },
15            "end": {
16              "line": 17,
17              "column": 17
18            }
19          }
20        },
21        "superClass": null,
22        "implements": [],
23        "constructor": {
24          "type": "MethodDefinition",
25          "key": {
26            "type": "Identifier",
27            "name": "constructor",
28            "loc": {
29              "start": {
30                "line": 1,
31                "column": 1
32              },
33              "end": {
34                "line": 1,
35                "column": 1
36              }
37            }
38          },
39          "kind": "constructor",
40          "static": false,
41          "optional": false,
42          "computed": false,
43          "value": {
44            "type": "FunctionExpression",
45            "function": {
46              "type": "ScriptFunction",
47              "id": null,
48              "generator": false,
49              "async": false,
50              "expression": false,
51              "params": [],
52              "declare": true,
53              "loc": {
54                "start": {
55                  "line": 1,
56                  "column": 1
57                },
58                "end": {
59                  "line": 1,
60                  "column": 1
61                }
62              }
63            },
64            "loc": {
65              "start": {
66                "line": 1,
67                "column": 1
68              },
69              "end": {
70                "line": 1,
71                "column": 1
72              }
73            }
74          },
75          "overloads": [],
76          "decorators": [],
77          "annotations": [],
78          "loc": {
79            "start": {
80              "line": 17,
81              "column": 9
82            },
83            "end": {
84              "line": 17,
85              "column": 20
86            }
87          }
88        },
89        "body": [],
90        "indexSignatures": [],
91        "loc": {
92          "start": {
93            "line": 17,
94            "column": 18
95          },
96          "end": {
97            "line": 17,
98            "column": 20
99          }
100        }
101      },
102      "decorators": [],
103      "isAnnotationDeclaration": false,
104      "loc": {
105        "start": {
106          "line": 17,
107          "column": 9
108        },
109        "end": {
110          "line": 17,
111          "column": 20
112        }
113      }
114    },
115    {
116      "type": "TSDeclareFunction",
117      "function": {
118        "type": "ScriptFunction",
119        "id": {
120          "type": "Identifier",
121          "name": "C1",
122          "loc": {
123            "start": {
124              "line": 18,
125              "column": 10
126            },
127            "end": {
128              "line": 18,
129              "column": 12
130            }
131          }
132        },
133        "generator": false,
134        "async": false,
135        "expression": false,
136        "params": [],
137        "returnType": {
138          "type": "TSTypeReference",
139          "typeName": {
140            "type": "Identifier",
141            "name": "C1",
142            "loc": {
143              "start": {
144                "line": 18,
145                "column": 17
146              },
147              "end": {
148                "line": 18,
149                "column": 19
150              }
151            }
152          },
153          "loc": {
154            "start": {
155              "line": 18,
156              "column": 17
157            },
158            "end": {
159              "line": 18,
160              "column": 19
161            }
162          }
163        },
164        "loc": {
165          "start": {
166            "line": 18,
167            "column": 1
168          },
169          "end": {
170            "line": 19,
171            "column": 9
172          }
173        }
174      },
175      "loc": {
176        "start": {
177          "line": 18,
178          "column": 1
179        },
180        "end": {
181          "line": 19,
182          "column": 9
183        }
184      }
185    },
186    {
187      "type": "FunctionDeclaration",
188      "function": {
189        "type": "ScriptFunction",
190        "id": {
191          "type": "Identifier",
192          "name": "C1",
193          "loc": {
194            "start": {
195              "line": 19,
196              "column": 10
197            },
198            "end": {
199              "line": 19,
200              "column": 12
201            }
202          }
203        },
204        "generator": false,
205        "async": false,
206        "expression": false,
207        "params": [],
208        "returnType": {
209          "type": "TSAnyKeyword",
210          "loc": {
211            "start": {
212              "line": 19,
213              "column": 17
214            },
215            "end": {
216              "line": 19,
217              "column": 20
218            }
219          }
220        },
221        "body": {
222          "type": "BlockStatement",
223          "statements": [],
224          "loc": {
225            "start": {
226              "line": 19,
227              "column": 21
228            },
229            "end": {
230              "line": 19,
231              "column": 23
232            }
233          }
234        },
235        "loc": {
236          "start": {
237            "line": 19,
238            "column": 1
239          },
240          "end": {
241            "line": 19,
242            "column": 23
243          }
244        }
245      },
246      "loc": {
247        "start": {
248          "line": 19,
249          "column": 1
250        },
251        "end": {
252          "line": 19,
253          "column": 23
254        }
255      }
256    },
257    {
258      "type": "ClassDeclaration",
259      "definition": {
260        "id": {
261          "type": "Identifier",
262          "name": "C2",
263          "loc": {
264            "start": {
265              "line": 21,
266              "column": 15
267            },
268            "end": {
269              "line": 21,
270              "column": 17
271            }
272          }
273        },
274        "superClass": null,
275        "implements": [],
276        "constructor": {
277          "type": "MethodDefinition",
278          "key": {
279            "type": "Identifier",
280            "name": "constructor",
281            "loc": {
282              "start": {
283                "line": 1,
284                "column": 1
285              },
286              "end": {
287                "line": 1,
288                "column": 1
289              }
290            }
291          },
292          "kind": "constructor",
293          "static": false,
294          "optional": false,
295          "computed": false,
296          "value": {
297            "type": "FunctionExpression",
298            "function": {
299              "type": "ScriptFunction",
300              "id": null,
301              "generator": false,
302              "async": false,
303              "expression": false,
304              "params": [],
305              "declare": true,
306              "loc": {
307                "start": {
308                  "line": 1,
309                  "column": 1
310                },
311                "end": {
312                  "line": 1,
313                  "column": 1
314                }
315              }
316            },
317            "loc": {
318              "start": {
319                "line": 1,
320                "column": 1
321              },
322              "end": {
323                "line": 1,
324                "column": 1
325              }
326            }
327          },
328          "overloads": [],
329          "decorators": [],
330          "annotations": [],
331          "loc": {
332            "start": {
333              "line": 21,
334              "column": 9
335            },
336            "end": {
337              "line": 21,
338              "column": 20
339            }
340          }
341        },
342        "body": [],
343        "indexSignatures": [],
344        "loc": {
345          "start": {
346            "line": 21,
347            "column": 18
348          },
349          "end": {
350            "line": 21,
351            "column": 20
352          }
353        }
354      },
355      "decorators": [],
356      "isAnnotationDeclaration": false,
357      "loc": {
358        "start": {
359          "line": 21,
360          "column": 9
361        },
362        "end": {
363          "line": 21,
364          "column": 20
365        }
366      }
367    },
368    {
369      "type": "TSDeclareFunction",
370      "function": {
371        "type": "ScriptFunction",
372        "id": {
373          "type": "Identifier",
374          "name": "C2",
375          "loc": {
376            "start": {
377              "line": 22,
378              "column": 18
379            },
380            "end": {
381              "line": 22,
382              "column": 20
383            }
384          }
385        },
386        "generator": false,
387        "async": false,
388        "expression": false,
389        "params": [],
390        "returnType": {
391          "type": "TSTypeReference",
392          "typeName": {
393            "type": "Identifier",
394            "name": "C2",
395            "loc": {
396              "start": {
397                "line": 22,
398                "column": 25
399              },
400              "end": {
401                "line": 22,
402                "column": 27
403              }
404            }
405          },
406          "loc": {
407            "start": {
408              "line": 22,
409              "column": 25
410            },
411            "end": {
412              "line": 22,
413              "column": 27
414            }
415          }
416        },
417        "declare": true,
418        "loc": {
419          "start": {
420            "line": 22,
421            "column": 9
422          },
423          "end": {
424            "line": 23,
425            "column": 8
426          }
427        }
428      },
429      "loc": {
430        "start": {
431          "line": 22,
432          "column": 9
433        },
434        "end": {
435          "line": 23,
436          "column": 8
437        }
438      }
439    },
440    {
441      "type": "TSDeclareFunction",
442      "function": {
443        "type": "ScriptFunction",
444        "id": {
445          "type": "Identifier",
446          "name": "C2",
447          "loc": {
448            "start": {
449              "line": 23,
450              "column": 18
451            },
452            "end": {
453              "line": 23,
454              "column": 20
455            }
456          }
457        },
458        "generator": false,
459        "async": false,
460        "expression": false,
461        "params": [],
462        "returnType": {
463          "type": "TSTypeReference",
464          "typeName": {
465            "type": "Identifier",
466            "name": "C2",
467            "loc": {
468              "start": {
469                "line": 23,
470                "column": 25
471              },
472              "end": {
473                "line": 23,
474                "column": 27
475              }
476            }
477          },
478          "loc": {
479            "start": {
480              "line": 23,
481              "column": 25
482            },
483            "end": {
484              "line": 23,
485              "column": 27
486            }
487          }
488        },
489        "declare": true,
490        "loc": {
491          "start": {
492            "line": 23,
493            "column": 9
494          },
495          "end": {
496            "line": 25,
497            "column": 10
498          }
499        }
500      },
501      "loc": {
502        "start": {
503          "line": 23,
504          "column": 9
505        },
506        "end": {
507          "line": 25,
508          "column": 10
509        }
510      }
511    },
512    {
513      "type": "TSModuleDeclaration",
514      "id": {
515        "type": "Identifier",
516        "name": "ns",
517        "loc": {
518          "start": {
519            "line": 25,
520            "column": 11
521          },
522          "end": {
523            "line": 25,
524            "column": 13
525          }
526        }
527      },
528      "body": {
529        "type": "TSModuleBlock",
530        "body": [
531          {
532            "type": "ClassDeclaration",
533            "definition": {
534              "id": {
535                "type": "Identifier",
536                "name": "C1",
537                "loc": {
538                  "start": {
539                    "line": 26,
540                    "column": 19
541                  },
542                  "end": {
543                    "line": 26,
544                    "column": 21
545                  }
546                }
547              },
548              "superClass": null,
549              "implements": [],
550              "constructor": {
551                "type": "MethodDefinition",
552                "key": {
553                  "type": "Identifier",
554                  "name": "constructor",
555                  "loc": {
556                    "start": {
557                      "line": 1,
558                      "column": 1
559                    },
560                    "end": {
561                      "line": 1,
562                      "column": 1
563                    }
564                  }
565                },
566                "kind": "constructor",
567                "static": false,
568                "optional": false,
569                "computed": false,
570                "value": {
571                  "type": "FunctionExpression",
572                  "function": {
573                    "type": "ScriptFunction",
574                    "id": null,
575                    "generator": false,
576                    "async": false,
577                    "expression": false,
578                    "params": [],
579                    "declare": true,
580                    "loc": {
581                      "start": {
582                        "line": 1,
583                        "column": 1
584                      },
585                      "end": {
586                        "line": 1,
587                        "column": 1
588                      }
589                    }
590                  },
591                  "loc": {
592                    "start": {
593                      "line": 1,
594                      "column": 1
595                    },
596                    "end": {
597                      "line": 1,
598                      "column": 1
599                    }
600                  }
601                },
602                "overloads": [],
603                "decorators": [],
604                "annotations": [],
605                "loc": {
606                  "start": {
607                    "line": 26,
608                    "column": 13
609                  },
610                  "end": {
611                    "line": 26,
612                    "column": 24
613                  }
614                }
615              },
616              "body": [],
617              "indexSignatures": [],
618              "loc": {
619                "start": {
620                  "line": 26,
621                  "column": 22
622                },
623                "end": {
624                  "line": 26,
625                  "column": 24
626                }
627              }
628            },
629            "decorators": [],
630            "isAnnotationDeclaration": false,
631            "loc": {
632              "start": {
633                "line": 26,
634                "column": 13
635              },
636              "end": {
637                "line": 26,
638                "column": 24
639              }
640            }
641          },
642          {
643            "type": "TSDeclareFunction",
644            "function": {
645              "type": "ScriptFunction",
646              "id": {
647                "type": "Identifier",
648                "name": "C1",
649                "loc": {
650                  "start": {
651                    "line": 27,
652                    "column": 14
653                  },
654                  "end": {
655                    "line": 27,
656                    "column": 16
657                  }
658                }
659              },
660              "generator": false,
661              "async": false,
662              "expression": false,
663              "params": [],
664              "returnType": {
665                "type": "TSTypeReference",
666                "typeName": {
667                  "type": "Identifier",
668                  "name": "C1",
669                  "loc": {
670                    "start": {
671                      "line": 27,
672                      "column": 21
673                    },
674                    "end": {
675                      "line": 27,
676                      "column": 23
677                    }
678                  }
679                },
680                "loc": {
681                  "start": {
682                    "line": 27,
683                    "column": 21
684                  },
685                  "end": {
686                    "line": 27,
687                    "column": 23
688                  }
689                }
690              },
691              "loc": {
692                "start": {
693                  "line": 27,
694                  "column": 5
695                },
696                "end": {
697                  "line": 28,
698                  "column": 13
699                }
700              }
701            },
702            "loc": {
703              "start": {
704                "line": 27,
705                "column": 5
706              },
707              "end": {
708                "line": 28,
709                "column": 13
710              }
711            }
712          },
713          {
714            "type": "FunctionDeclaration",
715            "function": {
716              "type": "ScriptFunction",
717              "id": {
718                "type": "Identifier",
719                "name": "C1",
720                "loc": {
721                  "start": {
722                    "line": 28,
723                    "column": 14
724                  },
725                  "end": {
726                    "line": 28,
727                    "column": 16
728                  }
729                }
730              },
731              "generator": false,
732              "async": false,
733              "expression": false,
734              "params": [],
735              "returnType": {
736                "type": "TSAnyKeyword",
737                "loc": {
738                  "start": {
739                    "line": 28,
740                    "column": 21
741                  },
742                  "end": {
743                    "line": 28,
744                    "column": 24
745                  }
746                }
747              },
748              "body": {
749                "type": "BlockStatement",
750                "statements": [],
751                "loc": {
752                  "start": {
753                    "line": 28,
754                    "column": 25
755                  },
756                  "end": {
757                    "line": 28,
758                    "column": 27
759                  }
760                }
761              },
762              "loc": {
763                "start": {
764                  "line": 28,
765                  "column": 5
766                },
767                "end": {
768                  "line": 28,
769                  "column": 27
770                }
771              }
772            },
773            "loc": {
774              "start": {
775                "line": 28,
776                "column": 5
777              },
778              "end": {
779                "line": 28,
780                "column": 27
781              }
782            }
783          },
784          {
785            "type": "ClassDeclaration",
786            "definition": {
787              "id": {
788                "type": "Identifier",
789                "name": "C2",
790                "loc": {
791                  "start": {
792                    "line": 30,
793                    "column": 19
794                  },
795                  "end": {
796                    "line": 30,
797                    "column": 21
798                  }
799                }
800              },
801              "superClass": null,
802              "implements": [],
803              "constructor": {
804                "type": "MethodDefinition",
805                "key": {
806                  "type": "Identifier",
807                  "name": "constructor",
808                  "loc": {
809                    "start": {
810                      "line": 1,
811                      "column": 1
812                    },
813                    "end": {
814                      "line": 1,
815                      "column": 1
816                    }
817                  }
818                },
819                "kind": "constructor",
820                "static": false,
821                "optional": false,
822                "computed": false,
823                "value": {
824                  "type": "FunctionExpression",
825                  "function": {
826                    "type": "ScriptFunction",
827                    "id": null,
828                    "generator": false,
829                    "async": false,
830                    "expression": false,
831                    "params": [],
832                    "declare": true,
833                    "loc": {
834                      "start": {
835                        "line": 1,
836                        "column": 1
837                      },
838                      "end": {
839                        "line": 1,
840                        "column": 1
841                      }
842                    }
843                  },
844                  "loc": {
845                    "start": {
846                      "line": 1,
847                      "column": 1
848                    },
849                    "end": {
850                      "line": 1,
851                      "column": 1
852                    }
853                  }
854                },
855                "overloads": [],
856                "decorators": [],
857                "annotations": [],
858                "loc": {
859                  "start": {
860                    "line": 30,
861                    "column": 13
862                  },
863                  "end": {
864                    "line": 30,
865                    "column": 24
866                  }
867                }
868              },
869              "body": [],
870              "indexSignatures": [],
871              "loc": {
872                "start": {
873                  "line": 30,
874                  "column": 22
875                },
876                "end": {
877                  "line": 30,
878                  "column": 24
879                }
880              }
881            },
882            "decorators": [],
883            "isAnnotationDeclaration": false,
884            "loc": {
885              "start": {
886                "line": 30,
887                "column": 13
888              },
889              "end": {
890                "line": 30,
891                "column": 24
892              }
893            }
894          },
895          {
896            "type": "TSDeclareFunction",
897            "function": {
898              "type": "ScriptFunction",
899              "id": {
900                "type": "Identifier",
901                "name": "C2",
902                "loc": {
903                  "start": {
904                    "line": 31,
905                    "column": 22
906                  },
907                  "end": {
908                    "line": 31,
909                    "column": 24
910                  }
911                }
912              },
913              "generator": false,
914              "async": false,
915              "expression": false,
916              "params": [],
917              "returnType": {
918                "type": "TSTypeReference",
919                "typeName": {
920                  "type": "Identifier",
921                  "name": "C2",
922                  "loc": {
923                    "start": {
924                      "line": 31,
925                      "column": 29
926                    },
927                    "end": {
928                      "line": 31,
929                      "column": 31
930                    }
931                  }
932                },
933                "loc": {
934                  "start": {
935                    "line": 31,
936                    "column": 29
937                  },
938                  "end": {
939                    "line": 31,
940                    "column": 31
941                  }
942                }
943              },
944              "declare": true,
945              "loc": {
946                "start": {
947                  "line": 31,
948                  "column": 13
949                },
950                "end": {
951                  "line": 32,
952                  "column": 12
953                }
954              }
955            },
956            "loc": {
957              "start": {
958                "line": 31,
959                "column": 13
960              },
961              "end": {
962                "line": 32,
963                "column": 12
964              }
965            }
966          },
967          {
968            "type": "TSDeclareFunction",
969            "function": {
970              "type": "ScriptFunction",
971              "id": {
972                "type": "Identifier",
973                "name": "C2",
974                "loc": {
975                  "start": {
976                    "line": 32,
977                    "column": 22
978                  },
979                  "end": {
980                    "line": 32,
981                    "column": 24
982                  }
983                }
984              },
985              "generator": false,
986              "async": false,
987              "expression": false,
988              "params": [],
989              "returnType": {
990                "type": "TSTypeReference",
991                "typeName": {
992                  "type": "Identifier",
993                  "name": "C2",
994                  "loc": {
995                    "start": {
996                      "line": 32,
997                      "column": 29
998                    },
999                    "end": {
1000                      "line": 32,
1001                      "column": 31
1002                    }
1003                  }
1004                },
1005                "loc": {
1006                  "start": {
1007                    "line": 32,
1008                    "column": 29
1009                  },
1010                  "end": {
1011                    "line": 32,
1012                    "column": 31
1013                  }
1014                }
1015              },
1016              "declare": true,
1017              "loc": {
1018                "start": {
1019                  "line": 32,
1020                  "column": 13
1021                },
1022                "end": {
1023                  "line": 33,
1024                  "column": 2
1025                }
1026              }
1027            },
1028            "loc": {
1029              "start": {
1030                "line": 32,
1031                "column": 13
1032              },
1033              "end": {
1034                "line": 33,
1035                "column": 2
1036              }
1037            }
1038          }
1039        ],
1040        "loc": {
1041          "start": {
1042            "line": 25,
1043            "column": 14
1044          },
1045          "end": {
1046            "line": 33,
1047            "column": 2
1048          }
1049        }
1050      },
1051      "declare": false,
1052      "global": false,
1053      "loc": {
1054        "start": {
1055          "line": 25,
1056          "column": 1
1057        },
1058        "end": {
1059          "line": 34,
1060          "column": 1
1061        }
1062      }
1063    }
1064  ],
1065  "loc": {
1066    "start": {
1067      "line": 1,
1068      "column": 1
1069    },
1070    "end": {
1071      "line": 34,
1072      "column": 1
1073    }
1074  }
1075}
1076