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