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": "TSDeclareFunction",
25            "function": {
26              "type": "ScriptFunction",
27              "id": {
28                "type": "Identifier",
29                "name": "_func",
30                "loc": {
31                  "start": {
32                    "line": 18,
33                    "column": 14
34                  },
35                  "end": {
36                    "line": 18,
37                    "column": 19
38                  }
39                }
40              },
41              "generator": false,
42              "async": false,
43              "expression": false,
44              "params": [
45                {
46                  "type": "Identifier",
47                  "name": "p",
48                  "typeAnnotation": {
49                    "type": "TSTypeReference",
50                    "typeName": {
51                      "type": "Identifier",
52                      "name": "Function",
53                      "loc": {
54                        "start": {
55                          "line": 18,
56                          "column": 23
57                        },
58                        "end": {
59                          "line": 18,
60                          "column": 31
61                        }
62                      }
63                    },
64                    "loc": {
65                      "start": {
66                        "line": 18,
67                        "column": 23
68                      },
69                      "end": {
70                        "line": 18,
71                        "column": 31
72                      }
73                    }
74                  },
75                  "loc": {
76                    "start": {
77                      "line": 18,
78                      "column": 20
79                    },
80                    "end": {
81                      "line": 18,
82                      "column": 21
83                    }
84                  }
85                },
86                {
87                  "type": "RestElement",
88                  "argument": {
89                    "type": "Identifier",
90                    "name": "args",
91                    "typeAnnotation": {
92                      "type": "TSArrayType",
93                      "elementType": {
94                        "type": "TSAnyKeyword",
95                        "loc": {
96                          "start": {
97                            "line": 18,
98                            "column": 42
99                          },
100                          "end": {
101                            "line": 18,
102                            "column": 45
103                          }
104                        }
105                      },
106                      "loc": {
107                        "start": {
108                          "line": 18,
109                          "column": 42
110                        },
111                        "end": {
112                          "line": 18,
113                          "column": 47
114                        }
115                      }
116                    },
117                    "loc": {
118                      "start": {
119                        "line": 18,
120                        "column": 36
121                      },
122                      "end": {
123                        "line": 18,
124                        "column": 40
125                      }
126                    }
127                  },
128                  "loc": {
129                    "start": {
130                      "line": 18,
131                      "column": 33
132                    },
133                    "end": {
134                      "line": 18,
135                      "column": 40
136                    }
137                  }
138                }
139              ],
140              "returnType": {
141                "type": "TSAnyKeyword",
142                "loc": {
143                  "start": {
144                    "line": 18,
145                    "column": 50
146                  },
147                  "end": {
148                    "line": 18,
149                    "column": 53
150                  }
151                }
152              },
153              "loc": {
154                "start": {
155                  "line": 18,
156                  "column": 5
157                },
158                "end": {
159                  "line": 18,
160                  "column": 54
161                }
162              }
163            },
164            "loc": {
165              "start": {
166                "line": 18,
167                "column": 5
168              },
169              "end": {
170                "line": 18,
171                "column": 54
172              }
173            }
174          },
175          {
176            "type": "ExportNamedDeclaration",
177            "declaration": null,
178            "source": null,
179            "specifiers": [
180              {
181                "type": "ExportSpecifier",
182                "local": {
183                  "type": "Identifier",
184                  "name": "_func",
185                  "loc": {
186                    "start": {
187                      "line": 19,
188                      "column": 14
189                    },
190                    "end": {
191                      "line": 19,
192                      "column": 19
193                    }
194                  }
195                },
196                "exported": {
197                  "type": "Identifier",
198                  "name": "try",
199                  "loc": {
200                    "start": {
201                      "line": 19,
202                      "column": 23
203                    },
204                    "end": {
205                      "line": 19,
206                      "column": 26
207                    }
208                  }
209                },
210                "isType": false,
211                "loc": {
212                  "start": {
213                    "line": 19,
214                    "column": 14
215                  },
216                  "end": {
217                    "line": 19,
218                    "column": 26
219                  }
220                }
221              }
222            ],
223            "loc": {
224              "start": {
225                "line": 19,
226                "column": 5
227              },
228              "end": {
229                "line": 19,
230                "column": 29
231              }
232            }
233          }
234        ],
235        "loc": {
236          "start": {
237            "line": 17,
238            "column": 22
239          },
240          "end": {
241            "line": 20,
242            "column": 2
243          }
244        }
245      },
246      "declare": true,
247      "global": false,
248      "loc": {
249        "start": {
250          "line": 17,
251          "column": 9
252        },
253        "end": {
254          "line": 22,
255          "column": 3
256        }
257      }
258    },
259    {
260      "type": "ExpressionStatement",
261      "expression": {
262        "type": "CallExpression",
263        "callee": {
264          "type": "MemberExpression",
265          "object": {
266            "type": "Identifier",
267            "name": "ns",
268            "loc": {
269              "start": {
270                "line": 22,
271                "column": 1
272              },
273              "end": {
274                "line": 22,
275                "column": 3
276              }
277            }
278          },
279          "property": {
280            "type": "Identifier",
281            "name": "try",
282            "loc": {
283              "start": {
284                "line": 22,
285                "column": 4
286              },
287              "end": {
288                "line": 22,
289                "column": 7
290              }
291            }
292          },
293          "computed": false,
294          "optional": false,
295          "loc": {
296            "start": {
297              "line": 22,
298              "column": 1
299            },
300            "end": {
301              "line": 22,
302              "column": 7
303            }
304          }
305        },
306        "arguments": [
307          {
308            "type": "ArrowFunctionExpression",
309            "function": {
310              "type": "ScriptFunction",
311              "id": null,
312              "generator": false,
313              "async": false,
314              "expression": false,
315              "params": [],
316              "body": {
317                "type": "BlockStatement",
318                "statements": [],
319                "loc": {
320                  "start": {
321                    "line": 22,
322                    "column": 14
323                  },
324                  "end": {
325                    "line": 22,
326                    "column": 17
327                  }
328                }
329              },
330              "loc": {
331                "start": {
332                  "line": 22,
333                  "column": 8
334                },
335                "end": {
336                  "line": 22,
337                  "column": 17
338                }
339              }
340            },
341            "loc": {
342              "start": {
343                "line": 22,
344                "column": 8
345              },
346              "end": {
347                "line": 22,
348                "column": 17
349              }
350            }
351          }
352        ],
353        "optional": false,
354        "loc": {
355          "start": {
356            "line": 22,
357            "column": 1
358          },
359          "end": {
360            "line": 22,
361            "column": 18
362          }
363        }
364      },
365      "loc": {
366        "start": {
367          "line": 22,
368          "column": 1
369        },
370        "end": {
371          "line": 22,
372          "column": 19
373        }
374      }
375    },
376    {
377      "type": "TSModuleDeclaration",
378      "id": {
379        "type": "Identifier",
380        "name": "ns1",
381        "loc": {
382          "start": {
383            "line": 24,
384            "column": 19
385          },
386          "end": {
387            "line": 24,
388            "column": 22
389          }
390        }
391      },
392      "body": {
393        "type": "TSModuleBlock",
394        "body": [
395          {
396            "type": "TSEnumDeclaration",
397            "id": {
398              "type": "Identifier",
399              "name": "a",
400              "loc": {
401                "start": {
402                  "line": 25,
403                  "column": 10
404                },
405                "end": {
406                  "line": 25,
407                  "column": 11
408                }
409              }
410            },
411            "members": [],
412            "const": false,
413            "loc": {
414              "start": {
415                "line": 25,
416                "column": 5
417              },
418              "end": {
419                "line": 25,
420                "column": 14
421              }
422            }
423          },
424          {
425            "type": "ExportNamedDeclaration",
426            "declaration": null,
427            "source": null,
428            "specifiers": [
429              {
430                "type": "ExportSpecifier",
431                "local": {
432                  "type": "Identifier",
433                  "name": "a",
434                  "loc": {
435                    "start": {
436                      "line": 26,
437                      "column": 14
438                    },
439                    "end": {
440                      "line": 26,
441                      "column": 15
442                    }
443                  }
444                },
445                "exported": {
446                  "type": "Identifier",
447                  "name": "enum1",
448                  "loc": {
449                    "start": {
450                      "line": 26,
451                      "column": 19
452                    },
453                    "end": {
454                      "line": 26,
455                      "column": 24
456                    }
457                  }
458                },
459                "isType": false,
460                "loc": {
461                  "start": {
462                    "line": 26,
463                    "column": 14
464                  },
465                  "end": {
466                    "line": 26,
467                    "column": 24
468                  }
469                }
470              }
471            ],
472            "loc": {
473              "start": {
474                "line": 26,
475                "column": 5
476              },
477              "end": {
478                "line": 26,
479                "column": 27
480              }
481            }
482          }
483        ],
484        "loc": {
485          "start": {
486            "line": 24,
487            "column": 23
488          },
489          "end": {
490            "line": 27,
491            "column": 2
492          }
493        }
494      },
495      "declare": true,
496      "global": false,
497      "loc": {
498        "start": {
499          "line": 24,
500          "column": 9
501        },
502        "end": {
503          "line": 29,
504          "column": 8
505        }
506      }
507    },
508    {
509      "type": "TSModuleDeclaration",
510      "id": {
511        "type": "Identifier",
512        "name": "nullns",
513        "loc": {
514          "start": {
515            "line": 29,
516            "column": 19
517          },
518          "end": {
519            "line": 29,
520            "column": 25
521          }
522        }
523      },
524      "body": {
525        "type": "TSModuleBlock",
526        "body": [],
527        "loc": {
528          "start": {
529            "line": 29,
530            "column": 25
531          },
532          "end": {
533            "line": 31,
534            "column": 2
535          }
536        }
537      },
538      "declare": true,
539      "global": false,
540      "loc": {
541        "start": {
542          "line": 29,
543          "column": 9
544        },
545        "end": {
546          "line": 32,
547          "column": 7
548        }
549      }
550    },
551    {
552      "type": "ExportNamedDeclaration",
553      "declaration": null,
554      "source": null,
555      "specifiers": [
556        {
557          "type": "ExportSpecifier",
558          "local": {
559            "type": "Identifier",
560            "name": "nullns",
561            "loc": {
562              "start": {
563                "line": 32,
564                "column": 10
565              },
566              "end": {
567                "line": 32,
568                "column": 16
569              }
570            }
571          },
572          "exported": {
573            "type": "Identifier",
574            "name": "foo",
575            "loc": {
576              "start": {
577                "line": 32,
578                "column": 20
579              },
580              "end": {
581                "line": 32,
582                "column": 23
583              }
584            }
585          },
586          "isType": false,
587          "loc": {
588            "start": {
589              "line": 32,
590              "column": 10
591            },
592            "end": {
593              "line": 32,
594              "column": 23
595            }
596          }
597        }
598      ],
599      "loc": {
600        "start": {
601          "line": 32,
602          "column": 1
603        },
604        "end": {
605          "line": 32,
606          "column": 25
607        }
608      }
609    },
610    {
611      "type": "TSModuleDeclaration",
612      "id": {
613        "type": "Identifier",
614        "name": "ns2",
615        "loc": {
616          "start": {
617            "line": 34,
618            "column": 19
619          },
620          "end": {
621            "line": 34,
622            "column": 22
623          }
624        }
625      },
626      "body": {
627        "type": "TSModuleBlock",
628        "body": [
629          {
630            "type": "ExportNamedDeclaration",
631            "declaration": {
632              "type": "VariableDeclaration",
633              "declarations": [
634                {
635                  "type": "VariableDeclarator",
636                  "id": {
637                    "type": "Identifier",
638                    "name": "a",
639                    "loc": {
640                      "start": {
641                        "line": 35,
642                        "column": 16
643                      },
644                      "end": {
645                        "line": 35,
646                        "column": 17
647                      }
648                    }
649                  },
650                  "init": null,
651                  "loc": {
652                    "start": {
653                      "line": 35,
654                      "column": 16
655                    },
656                    "end": {
657                      "line": 35,
658                      "column": 17
659                    }
660                  }
661                }
662              ],
663              "kind": "var",
664              "loc": {
665                "start": {
666                  "line": 35,
667                  "column": 12
668                },
669                "end": {
670                  "line": 35,
671                  "column": 18
672                }
673              }
674            },
675            "source": null,
676            "specifiers": [],
677            "loc": {
678              "start": {
679                "line": 35,
680                "column": 5
681              },
682              "end": {
683                "line": 35,
684                "column": 18
685              }
686            }
687          }
688        ],
689        "loc": {
690          "start": {
691            "line": 34,
692            "column": 23
693          },
694          "end": {
695            "line": 36,
696            "column": 2
697          }
698        }
699      },
700      "declare": true,
701      "global": false,
702      "loc": {
703        "start": {
704          "line": 34,
705          "column": 9
706        },
707        "end": {
708          "line": 38,
709          "column": 8
710        }
711      }
712    },
713    {
714      "type": "TSModuleDeclaration",
715      "id": {
716        "type": "Identifier",
717        "name": "ns2",
718        "loc": {
719          "start": {
720            "line": 38,
721            "column": 19
722          },
723          "end": {
724            "line": 38,
725            "column": 22
726          }
727        }
728      },
729      "body": {
730        "type": "TSModuleBlock",
731        "body": [
732          {
733            "type": "ExportNamedDeclaration",
734            "declaration": null,
735            "source": null,
736            "specifiers": [
737              {
738                "type": "ExportSpecifier",
739                "local": {
740                  "type": "Identifier",
741                  "name": "a",
742                  "loc": {
743                    "start": {
744                      "line": 39,
745                      "column": 13
746                    },
747                    "end": {
748                      "line": 39,
749                      "column": 14
750                    }
751                  }
752                },
753                "exported": {
754                  "type": "Identifier",
755                  "name": "b",
756                  "loc": {
757                    "start": {
758                      "line": 39,
759                      "column": 18
760                    },
761                    "end": {
762                      "line": 39,
763                      "column": 19
764                    }
765                  }
766                },
767                "isType": false,
768                "loc": {
769                  "start": {
770                    "line": 39,
771                    "column": 13
772                  },
773                  "end": {
774                    "line": 39,
775                    "column": 19
776                  }
777                }
778              }
779            ],
780            "loc": {
781              "start": {
782                "line": 39,
783                "column": 5
784              },
785              "end": {
786                "line": 39,
787                "column": 20
788              }
789            }
790          }
791        ],
792        "loc": {
793          "start": {
794            "line": 38,
795            "column": 23
796          },
797          "end": {
798            "line": 40,
799            "column": 2
800          }
801        }
802      },
803      "declare": true,
804      "global": false,
805      "loc": {
806        "start": {
807          "line": 38,
808          "column": 9
809        },
810        "end": {
811          "line": 40,
812          "column": 2
813        }
814      }
815    }
816  ],
817  "loc": {
818    "start": {
819      "line": 1,
820      "column": 1
821    },
822    "end": {
823      "line": 40,
824      "column": 2
825    }
826  }
827}
828