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