1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSInterfaceDeclaration",
6      "body": {
7        "type": "TSInterfaceBody",
8        "body": [
9          {
10            "type": "TSPropertySignature",
11            "computed": false,
12            "optional": false,
13            "readonly": false,
14            "key": {
15              "type": "Identifier",
16              "name": "a",
17              "decorators": [],
18              "loc": {
19                "start": {
20                  "line": 18,
21                  "column": 5
22                },
23                "end": {
24                  "line": 18,
25                  "column": 6
26                }
27              }
28            },
29            "typeAnnotation": {
30              "type": "TSNumberKeyword",
31              "loc": {
32                "start": {
33                  "line": 18,
34                  "column": 8
35                },
36                "end": {
37                  "line": 18,
38                  "column": 14
39                }
40              }
41            },
42            "loc": {
43              "start": {
44                "line": 18,
45                "column": 5
46              },
47              "end": {
48                "line": 18,
49                "column": 15
50              }
51            }
52          },
53          {
54            "type": "TSPropertySignature",
55            "computed": false,
56            "optional": false,
57            "readonly": false,
58            "key": {
59              "type": "Identifier",
60              "name": "b",
61              "decorators": [],
62              "loc": {
63                "start": {
64                  "line": 19,
65                  "column": 5
66                },
67                "end": {
68                  "line": 19,
69                  "column": 6
70                }
71              }
72            },
73            "typeAnnotation": {
74              "type": "TSStringKeyword",
75              "loc": {
76                "start": {
77                  "line": 19,
78                  "column": 8
79                },
80                "end": {
81                  "line": 19,
82                  "column": 14
83                }
84              }
85            },
86            "loc": {
87              "start": {
88                "line": 19,
89                "column": 5
90              },
91              "end": {
92                "line": 19,
93                "column": 15
94              }
95            }
96          },
97          {
98            "type": "TSPropertySignature",
99            "computed": false,
100            "optional": false,
101            "readonly": false,
102            "key": {
103              "type": "Identifier",
104              "name": "c",
105              "decorators": [],
106              "loc": {
107                "start": {
108                  "line": 20,
109                  "column": 5
110                },
111                "end": {
112                  "line": 20,
113                  "column": 6
114                }
115              }
116            },
117            "typeAnnotation": {
118              "type": "TSBooleanKeyword",
119              "loc": {
120                "start": {
121                  "line": 20,
122                  "column": 8
123                },
124                "end": {
125                  "line": 20,
126                  "column": 15
127                }
128              }
129            },
130            "loc": {
131              "start": {
132                "line": 20,
133                "column": 5
134              },
135              "end": {
136                "line": 20,
137                "column": 16
138              }
139            }
140          }
141        ],
142        "loc": {
143          "start": {
144            "line": 17,
145            "column": 13
146          },
147          "end": {
148            "line": 21,
149            "column": 2
150          }
151        }
152      },
153      "id": {
154        "type": "Identifier",
155        "name": "A",
156        "decorators": [],
157        "loc": {
158          "start": {
159            "line": 17,
160            "column": 11
161          },
162          "end": {
163            "line": 17,
164            "column": 12
165          }
166        }
167      },
168      "extends": [],
169      "loc": {
170        "start": {
171          "line": 17,
172          "column": 1
173        },
174        "end": {
175          "line": 21,
176          "column": 2
177        }
178      }
179    },
180    {
181      "type": "VariableDeclaration",
182      "declarations": [
183        {
184          "type": "VariableDeclarator",
185          "id": {
186            "type": "Identifier",
187            "name": "a",
188            "typeAnnotation": {
189              "type": "TSTypeReference",
190              "typeName": {
191                "type": "Identifier",
192                "name": "A",
193                "decorators": [],
194                "loc": {
195                  "start": {
196                    "line": 23,
197                    "column": 8
198                  },
199                  "end": {
200                    "line": 23,
201                    "column": 9
202                  }
203                }
204              },
205              "loc": {
206                "start": {
207                  "line": 23,
208                  "column": 8
209                },
210                "end": {
211                  "line": 23,
212                  "column": 9
213                }
214              }
215            },
216            "decorators": [],
217            "loc": {
218              "start": {
219                "line": 23,
220                "column": 5
221              },
222              "end": {
223                "line": 23,
224                "column": 6
225              }
226            }
227          },
228          "init": {
229            "type": "ObjectExpression",
230            "properties": [
231              {
232                "type": "Property",
233                "method": false,
234                "shorthand": false,
235                "computed": false,
236                "key": {
237                  "type": "Identifier",
238                  "name": "a",
239                  "decorators": [],
240                  "loc": {
241                    "start": {
242                      "line": 23,
243                      "column": 14
244                    },
245                    "end": {
246                      "line": 23,
247                      "column": 15
248                    }
249                  }
250                },
251                "value": {
252                  "type": "NumberLiteral",
253                  "value": 1,
254                  "loc": {
255                    "start": {
256                      "line": 23,
257                      "column": 17
258                    },
259                    "end": {
260                      "line": 23,
261                      "column": 18
262                    }
263                  }
264                },
265                "kind": "init",
266                "loc": {
267                  "start": {
268                    "line": 23,
269                    "column": 14
270                  },
271                  "end": {
272                    "line": 23,
273                    "column": 18
274                  }
275                }
276              },
277              {
278                "type": "Property",
279                "method": false,
280                "shorthand": false,
281                "computed": false,
282                "key": {
283                  "type": "Identifier",
284                  "name": "b",
285                  "decorators": [],
286                  "loc": {
287                    "start": {
288                      "line": 23,
289                      "column": 20
290                    },
291                    "end": {
292                      "line": 23,
293                      "column": 21
294                    }
295                  }
296                },
297                "value": {
298                  "type": "StringLiteral",
299                  "value": "foo",
300                  "loc": {
301                    "start": {
302                      "line": 23,
303                      "column": 23
304                    },
305                    "end": {
306                      "line": 23,
307                      "column": 28
308                    }
309                  }
310                },
311                "kind": "init",
312                "loc": {
313                  "start": {
314                    "line": 23,
315                    "column": 20
316                  },
317                  "end": {
318                    "line": 23,
319                    "column": 28
320                  }
321                }
322              },
323              {
324                "type": "Property",
325                "method": false,
326                "shorthand": false,
327                "computed": false,
328                "key": {
329                  "type": "Identifier",
330                  "name": "c",
331                  "decorators": [],
332                  "loc": {
333                    "start": {
334                      "line": 23,
335                      "column": 30
336                    },
337                    "end": {
338                      "line": 23,
339                      "column": 31
340                    }
341                  }
342                },
343                "value": {
344                  "type": "BooleanLiteral",
345                  "value": true,
346                  "loc": {
347                    "start": {
348                      "line": 23,
349                      "column": 33
350                    },
351                    "end": {
352                      "line": 23,
353                      "column": 37
354                    }
355                  }
356                },
357                "kind": "init",
358                "loc": {
359                  "start": {
360                    "line": 23,
361                    "column": 30
362                  },
363                  "end": {
364                    "line": 23,
365                    "column": 37
366                  }
367                }
368              }
369            ],
370            "loc": {
371              "start": {
372                "line": 23,
373                "column": 12
374              },
375              "end": {
376                "line": 23,
377                "column": 39
378              }
379            }
380          },
381          "loc": {
382            "start": {
383              "line": 23,
384              "column": 5
385            },
386            "end": {
387              "line": 23,
388              "column": 39
389            }
390          }
391        }
392      ],
393      "kind": "var",
394      "loc": {
395        "start": {
396          "line": 23,
397          "column": 1
398        },
399        "end": {
400          "line": 23,
401          "column": 40
402        }
403      }
404    },
405    {
406      "type": "TSInterfaceDeclaration",
407      "body": {
408        "type": "TSInterfaceBody",
409        "body": [
410          {
411            "type": "TSMethodSignature",
412            "computed": false,
413            "optional": false,
414            "key": {
415              "type": "Identifier",
416              "name": "d",
417              "decorators": [],
418              "loc": {
419                "start": {
420                  "line": 26,
421                  "column": 5
422                },
423                "end": {
424                  "line": 26,
425                  "column": 6
426                }
427              }
428            },
429            "params": [
430              {
431                "type": "Identifier",
432                "name": "a",
433                "typeAnnotation": {
434                  "type": "TSNumberKeyword",
435                  "loc": {
436                    "start": {
437                      "line": 26,
438                      "column": 10
439                    },
440                    "end": {
441                      "line": 26,
442                      "column": 16
443                    }
444                  }
445                },
446                "decorators": [],
447                "loc": {
448                  "start": {
449                    "line": 26,
450                    "column": 7
451                  },
452                  "end": {
453                    "line": 26,
454                    "column": 8
455                  }
456                }
457              },
458              {
459                "type": "Identifier",
460                "name": "b",
461                "typeAnnotation": {
462                  "type": "TSStringKeyword",
463                  "loc": {
464                    "start": {
465                      "line": 26,
466                      "column": 21
467                    },
468                    "end": {
469                      "line": 26,
470                      "column": 27
471                    }
472                  }
473                },
474                "decorators": [],
475                "loc": {
476                  "start": {
477                    "line": 26,
478                    "column": 18
479                  },
480                  "end": {
481                    "line": 26,
482                    "column": 19
483                  }
484                }
485              }
486            ],
487            "typeAnnotation": {
488              "type": "TSArrayType",
489              "elementType": {
490                "type": "TSNumberKeyword",
491                "loc": {
492                  "start": {
493                    "line": 26,
494                    "column": 30
495                  },
496                  "end": {
497                    "line": 26,
498                    "column": 36
499                  }
500                }
501              },
502              "loc": {
503                "start": {
504                  "line": 26,
505                  "column": 30
506                },
507                "end": {
508                  "line": 26,
509                  "column": 38
510                }
511              }
512            },
513            "loc": {
514              "start": {
515                "line": 26,
516                "column": 5
517              },
518              "end": {
519                "line": 26,
520                "column": 39
521              }
522            }
523          }
524        ],
525        "loc": {
526          "start": {
527            "line": 25,
528            "column": 23
529          },
530          "end": {
531            "line": 27,
532            "column": 2
533          }
534        }
535      },
536      "id": {
537        "type": "Identifier",
538        "name": "B",
539        "decorators": [],
540        "loc": {
541          "start": {
542            "line": 25,
543            "column": 11
544          },
545          "end": {
546            "line": 25,
547            "column": 12
548          }
549        }
550      },
551      "extends": [
552        {
553          "type": "TSInterfaceHeritage",
554          "expression": {
555            "type": "TSTypeReference",
556            "typeName": {
557              "type": "Identifier",
558              "name": "A",
559              "decorators": [],
560              "loc": {
561                "start": {
562                  "line": 25,
563                  "column": 21
564                },
565                "end": {
566                  "line": 25,
567                  "column": 22
568                }
569              }
570            },
571            "loc": {
572              "start": {
573                "line": 25,
574                "column": 23
575              },
576              "end": {
577                "line": 25,
578                "column": 22
579              }
580            }
581          },
582          "loc": {
583            "start": {
584              "line": 25,
585              "column": 23
586            },
587            "end": {
588              "line": 25,
589              "column": 22
590            }
591          }
592        }
593      ],
594      "loc": {
595        "start": {
596          "line": 25,
597          "column": 1
598        },
599        "end": {
600          "line": 27,
601          "column": 2
602        }
603      }
604    },
605    {
606      "type": "VariableDeclaration",
607      "declarations": [
608        {
609          "type": "VariableDeclarator",
610          "id": {
611            "type": "Identifier",
612            "name": "b",
613            "typeAnnotation": {
614              "type": "TSTypeReference",
615              "typeName": {
616                "type": "Identifier",
617                "name": "B",
618                "decorators": [],
619                "loc": {
620                  "start": {
621                    "line": 29,
622                    "column": 8
623                  },
624                  "end": {
625                    "line": 29,
626                    "column": 9
627                  }
628                }
629              },
630              "loc": {
631                "start": {
632                  "line": 29,
633                  "column": 8
634                },
635                "end": {
636                  "line": 29,
637                  "column": 9
638                }
639              }
640            },
641            "decorators": [],
642            "loc": {
643              "start": {
644                "line": 29,
645                "column": 5
646              },
647              "end": {
648                "line": 29,
649                "column": 6
650              }
651            }
652          },
653          "init": {
654            "type": "ObjectExpression",
655            "properties": [
656              {
657                "type": "Property",
658                "method": false,
659                "shorthand": false,
660                "computed": false,
661                "key": {
662                  "type": "Identifier",
663                  "name": "a",
664                  "decorators": [],
665                  "loc": {
666                    "start": {
667                      "line": 30,
668                      "column": 5
669                    },
670                    "end": {
671                      "line": 30,
672                      "column": 6
673                    }
674                  }
675                },
676                "value": {
677                  "type": "NumberLiteral",
678                  "value": 2,
679                  "loc": {
680                    "start": {
681                      "line": 30,
682                      "column": 8
683                    },
684                    "end": {
685                      "line": 30,
686                      "column": 9
687                    }
688                  }
689                },
690                "kind": "init",
691                "loc": {
692                  "start": {
693                    "line": 30,
694                    "column": 5
695                  },
696                  "end": {
697                    "line": 30,
698                    "column": 9
699                  }
700                }
701              },
702              {
703                "type": "Property",
704                "method": false,
705                "shorthand": false,
706                "computed": false,
707                "key": {
708                  "type": "Identifier",
709                  "name": "b",
710                  "decorators": [],
711                  "loc": {
712                    "start": {
713                      "line": 30,
714                      "column": 11
715                    },
716                    "end": {
717                      "line": 30,
718                      "column": 12
719                    }
720                  }
721                },
722                "value": {
723                  "type": "StringLiteral",
724                  "value": "bar",
725                  "loc": {
726                    "start": {
727                      "line": 30,
728                      "column": 14
729                    },
730                    "end": {
731                      "line": 30,
732                      "column": 19
733                    }
734                  }
735                },
736                "kind": "init",
737                "loc": {
738                  "start": {
739                    "line": 30,
740                    "column": 11
741                  },
742                  "end": {
743                    "line": 30,
744                    "column": 19
745                  }
746                }
747              },
748              {
749                "type": "Property",
750                "method": false,
751                "shorthand": false,
752                "computed": false,
753                "key": {
754                  "type": "Identifier",
755                  "name": "c",
756                  "decorators": [],
757                  "loc": {
758                    "start": {
759                      "line": 30,
760                      "column": 21
761                    },
762                    "end": {
763                      "line": 30,
764                      "column": 22
765                    }
766                  }
767                },
768                "value": {
769                  "type": "BooleanLiteral",
770                  "value": false,
771                  "loc": {
772                    "start": {
773                      "line": 30,
774                      "column": 24
775                    },
776                    "end": {
777                      "line": 30,
778                      "column": 29
779                    }
780                  }
781                },
782                "kind": "init",
783                "loc": {
784                  "start": {
785                    "line": 30,
786                    "column": 21
787                  },
788                  "end": {
789                    "line": 30,
790                    "column": 29
791                  }
792                }
793              },
794              {
795                "type": "Property",
796                "method": false,
797                "shorthand": false,
798                "computed": false,
799                "key": {
800                  "type": "Identifier",
801                  "name": "d",
802                  "decorators": [],
803                  "loc": {
804                    "start": {
805                      "line": 30,
806                      "column": 31
807                    },
808                    "end": {
809                      "line": 30,
810                      "column": 32
811                    }
812                  }
813                },
814                "value": {
815                  "type": "FunctionExpression",
816                  "function": {
817                    "type": "ScriptFunction",
818                    "id": null,
819                    "generator": false,
820                    "async": false,
821                    "expression": false,
822                    "params": [
823                      {
824                        "type": "Identifier",
825                        "name": "a",
826                        "typeAnnotation": {
827                          "type": "TSNumberKeyword",
828                          "loc": {
829                            "start": {
830                              "line": 30,
831                              "column": 47
832                            },
833                            "end": {
834                              "line": 30,
835                              "column": 53
836                            }
837                          }
838                        },
839                        "decorators": [],
840                        "loc": {
841                          "start": {
842                            "line": 30,
843                            "column": 44
844                          },
845                          "end": {
846                            "line": 30,
847                            "column": 45
848                          }
849                        }
850                      },
851                      {
852                        "type": "Identifier",
853                        "name": "b",
854                        "typeAnnotation": {
855                          "type": "TSStringKeyword",
856                          "loc": {
857                            "start": {
858                              "line": 30,
859                              "column": 58
860                            },
861                            "end": {
862                              "line": 30,
863                              "column": 64
864                            }
865                          }
866                        },
867                        "decorators": [],
868                        "loc": {
869                          "start": {
870                            "line": 30,
871                            "column": 55
872                          },
873                          "end": {
874                            "line": 30,
875                            "column": 56
876                          }
877                        }
878                      }
879                    ],
880                    "body": {
881                      "type": "BlockStatement",
882                      "statements": [
883                        {
884                          "type": "ReturnStatement",
885                          "argument": {
886                            "type": "ArrayExpression",
887                            "elements": [
888                              {
889                                "type": "NumberLiteral",
890                                "value": 1,
891                                "loc": {
892                                  "start": {
893                                    "line": 31,
894                                    "column": 17
895                                  },
896                                  "end": {
897                                    "line": 31,
898                                    "column": 18
899                                  }
900                                }
901                              },
902                              {
903                                "type": "NumberLiteral",
904                                "value": 2,
905                                "loc": {
906                                  "start": {
907                                    "line": 31,
908                                    "column": 20
909                                  },
910                                  "end": {
911                                    "line": 31,
912                                    "column": 21
913                                  }
914                                }
915                              }
916                            ],
917                            "loc": {
918                              "start": {
919                                "line": 31,
920                                "column": 16
921                              },
922                              "end": {
923                                "line": 31,
924                                "column": 22
925                              }
926                            }
927                          },
928                          "loc": {
929                            "start": {
930                              "line": 31,
931                              "column": 9
932                            },
933                            "end": {
934                              "line": 31,
935                              "column": 23
936                            }
937                          }
938                        }
939                      ],
940                      "loc": {
941                        "start": {
942                          "line": 30,
943                          "column": 66
944                        },
945                        "end": {
946                          "line": 32,
947                          "column": 6
948                        }
949                      }
950                    },
951                    "loc": {
952                      "start": {
953                        "line": 30,
954                        "column": 34
955                      },
956                      "end": {
957                        "line": 32,
958                        "column": 6
959                      }
960                    }
961                  },
962                  "loc": {
963                    "start": {
964                      "line": 30,
965                      "column": 34
966                    },
967                    "end": {
968                      "line": 32,
969                      "column": 6
970                    }
971                  }
972                },
973                "kind": "init",
974                "loc": {
975                  "start": {
976                    "line": 30,
977                    "column": 31
978                  },
979                  "end": {
980                    "line": 32,
981                    "column": 6
982                  }
983                }
984              }
985            ],
986            "loc": {
987              "start": {
988                "line": 29,
989                "column": 12
990              },
991              "end": {
992                "line": 33,
993                "column": 2
994              }
995            }
996          },
997          "loc": {
998            "start": {
999              "line": 29,
1000              "column": 5
1001            },
1002            "end": {
1003              "line": 33,
1004              "column": 2
1005            }
1006          }
1007        }
1008      ],
1009      "kind": "var",
1010      "loc": {
1011        "start": {
1012          "line": 29,
1013          "column": 1
1014        },
1015        "end": {
1016          "line": 33,
1017          "column": 2
1018        }
1019      }
1020    },
1021    {
1022      "type": "TSInterfaceDeclaration",
1023      "body": {
1024        "type": "TSInterfaceBody",
1025        "body": [
1026          {
1027            "type": "TSCallSignatureDeclaration",
1028            "params": [
1029              {
1030                "type": "Identifier",
1031                "name": "a",
1032                "typeAnnotation": {
1033                  "type": "TSNumberKeyword",
1034                  "loc": {
1035                    "start": {
1036                      "line": 37,
1037                      "column": 9
1038                    },
1039                    "end": {
1040                      "line": 37,
1041                      "column": 15
1042                    }
1043                  }
1044                },
1045                "decorators": [],
1046                "loc": {
1047                  "start": {
1048                    "line": 37,
1049                    "column": 6
1050                  },
1051                  "end": {
1052                    "line": 37,
1053                    "column": 7
1054                  }
1055                }
1056              },
1057              {
1058                "type": "Identifier",
1059                "name": "b",
1060                "typeAnnotation": {
1061                  "type": "TSNumberKeyword",
1062                  "loc": {
1063                    "start": {
1064                      "line": 37,
1065                      "column": 20
1066                    },
1067                    "end": {
1068                      "line": 37,
1069                      "column": 26
1070                    }
1071                  }
1072                },
1073                "decorators": [],
1074                "loc": {
1075                  "start": {
1076                    "line": 37,
1077                    "column": 17
1078                  },
1079                  "end": {
1080                    "line": 37,
1081                    "column": 18
1082                  }
1083                }
1084              }
1085            ],
1086            "returnType": {
1087              "type": "TSStringKeyword",
1088              "loc": {
1089                "start": {
1090                  "line": 37,
1091                  "column": 29
1092                },
1093                "end": {
1094                  "line": 37,
1095                  "column": 35
1096                }
1097              }
1098            },
1099            "loc": {
1100              "start": {
1101                "line": 37,
1102                "column": 5
1103              },
1104              "end": {
1105                "line": 37,
1106                "column": 36
1107              }
1108            }
1109          }
1110        ],
1111        "loc": {
1112          "start": {
1113            "line": 36,
1114            "column": 14
1115          },
1116          "end": {
1117            "line": 38,
1118            "column": 2
1119          }
1120        }
1121      },
1122      "id": {
1123        "type": "Identifier",
1124        "name": "C1",
1125        "decorators": [],
1126        "loc": {
1127          "start": {
1128            "line": 36,
1129            "column": 11
1130          },
1131          "end": {
1132            "line": 36,
1133            "column": 13
1134          }
1135        }
1136      },
1137      "extends": [],
1138      "loc": {
1139        "start": {
1140          "line": 36,
1141          "column": 1
1142        },
1143        "end": {
1144          "line": 38,
1145          "column": 2
1146        }
1147      }
1148    },
1149    {
1150      "type": "TSInterfaceDeclaration",
1151      "body": {
1152        "type": "TSInterfaceBody",
1153        "body": [
1154          {
1155            "type": "TSCallSignatureDeclaration",
1156            "params": [
1157              {
1158                "type": "Identifier",
1159                "name": "a",
1160                "typeAnnotation": {
1161                  "type": "TSNumberKeyword",
1162                  "loc": {
1163                    "start": {
1164                      "line": 41,
1165                      "column": 9
1166                    },
1167                    "end": {
1168                      "line": 41,
1169                      "column": 15
1170                    }
1171                  }
1172                },
1173                "decorators": [],
1174                "loc": {
1175                  "start": {
1176                    "line": 41,
1177                    "column": 6
1178                  },
1179                  "end": {
1180                    "line": 41,
1181                    "column": 7
1182                  }
1183                }
1184              },
1185              {
1186                "type": "Identifier",
1187                "name": "b",
1188                "typeAnnotation": {
1189                  "type": "TSNumberKeyword",
1190                  "loc": {
1191                    "start": {
1192                      "line": 41,
1193                      "column": 20
1194                    },
1195                    "end": {
1196                      "line": 41,
1197                      "column": 26
1198                    }
1199                  }
1200                },
1201                "decorators": [],
1202                "loc": {
1203                  "start": {
1204                    "line": 41,
1205                    "column": 17
1206                  },
1207                  "end": {
1208                    "line": 41,
1209                    "column": 18
1210                  }
1211                }
1212              }
1213            ],
1214            "returnType": {
1215              "type": "TSStringKeyword",
1216              "loc": {
1217                "start": {
1218                  "line": 41,
1219                  "column": 29
1220                },
1221                "end": {
1222                  "line": 41,
1223                  "column": 35
1224                }
1225              }
1226            },
1227            "loc": {
1228              "start": {
1229                "line": 41,
1230                "column": 5
1231              },
1232              "end": {
1233                "line": 41,
1234                "column": 36
1235              }
1236            }
1237          },
1238          {
1239            "type": "TSCallSignatureDeclaration",
1240            "params": [
1241              {
1242                "type": "Identifier",
1243                "name": "a",
1244                "typeAnnotation": {
1245                  "type": "TSNumberKeyword",
1246                  "loc": {
1247                    "start": {
1248                      "line": 42,
1249                      "column": 9
1250                    },
1251                    "end": {
1252                      "line": 42,
1253                      "column": 15
1254                    }
1255                  }
1256                },
1257                "decorators": [],
1258                "loc": {
1259                  "start": {
1260                    "line": 42,
1261                    "column": 6
1262                  },
1263                  "end": {
1264                    "line": 42,
1265                    "column": 7
1266                  }
1267                }
1268              },
1269              {
1270                "type": "Identifier",
1271                "name": "b",
1272                "typeAnnotation": {
1273                  "type": "TSNumberKeyword",
1274                  "loc": {
1275                    "start": {
1276                      "line": 42,
1277                      "column": 20
1278                    },
1279                    "end": {
1280                      "line": 42,
1281                      "column": 26
1282                    }
1283                  }
1284                },
1285                "decorators": [],
1286                "loc": {
1287                  "start": {
1288                    "line": 42,
1289                    "column": 17
1290                  },
1291                  "end": {
1292                    "line": 42,
1293                    "column": 18
1294                  }
1295                }
1296              }
1297            ],
1298            "returnType": {
1299              "type": "TSStringKeyword",
1300              "loc": {
1301                "start": {
1302                  "line": 42,
1303                  "column": 29
1304                },
1305                "end": {
1306                  "line": 42,
1307                  "column": 35
1308                }
1309              }
1310            },
1311            "loc": {
1312              "start": {
1313                "line": 42,
1314                "column": 5
1315              },
1316              "end": {
1317                "line": 42,
1318                "column": 36
1319              }
1320            }
1321          },
1322          {
1323            "type": "TSCallSignatureDeclaration",
1324            "params": [
1325              {
1326                "type": "Identifier",
1327                "name": "a",
1328                "typeAnnotation": {
1329                  "type": "TSNumberKeyword",
1330                  "loc": {
1331                    "start": {
1332                      "line": 43,
1333                      "column": 9
1334                    },
1335                    "end": {
1336                      "line": 43,
1337                      "column": 15
1338                    }
1339                  }
1340                },
1341                "decorators": [],
1342                "loc": {
1343                  "start": {
1344                    "line": 43,
1345                    "column": 6
1346                  },
1347                  "end": {
1348                    "line": 43,
1349                    "column": 7
1350                  }
1351                }
1352              },
1353              {
1354                "type": "Identifier",
1355                "name": "b",
1356                "typeAnnotation": {
1357                  "type": "TSNumberKeyword",
1358                  "loc": {
1359                    "start": {
1360                      "line": 43,
1361                      "column": 20
1362                    },
1363                    "end": {
1364                      "line": 43,
1365                      "column": 26
1366                    }
1367                  }
1368                },
1369                "decorators": [],
1370                "loc": {
1371                  "start": {
1372                    "line": 43,
1373                    "column": 17
1374                  },
1375                  "end": {
1376                    "line": 43,
1377                    "column": 18
1378                  }
1379                }
1380              }
1381            ],
1382            "returnType": {
1383              "type": "TSStringKeyword",
1384              "loc": {
1385                "start": {
1386                  "line": 43,
1387                  "column": 29
1388                },
1389                "end": {
1390                  "line": 43,
1391                  "column": 35
1392                }
1393              }
1394            },
1395            "loc": {
1396              "start": {
1397                "line": 43,
1398                "column": 5
1399              },
1400              "end": {
1401                "line": 43,
1402                "column": 36
1403              }
1404            }
1405          }
1406        ],
1407        "loc": {
1408          "start": {
1409            "line": 40,
1410            "column": 14
1411          },
1412          "end": {
1413            "line": 44,
1414            "column": 2
1415          }
1416        }
1417      },
1418      "id": {
1419        "type": "Identifier",
1420        "name": "C2",
1421        "decorators": [],
1422        "loc": {
1423          "start": {
1424            "line": 40,
1425            "column": 11
1426          },
1427          "end": {
1428            "line": 40,
1429            "column": 13
1430          }
1431        }
1432      },
1433      "extends": [],
1434      "loc": {
1435        "start": {
1436          "line": 40,
1437          "column": 1
1438        },
1439        "end": {
1440          "line": 44,
1441          "column": 2
1442        }
1443      }
1444    },
1445    {
1446      "type": "TSInterfaceDeclaration",
1447      "body": {
1448        "type": "TSInterfaceBody",
1449        "body": [
1450          {
1451            "type": "TSCallSignatureDeclaration",
1452            "params": [
1453              {
1454                "type": "Identifier",
1455                "name": "a",
1456                "typeAnnotation": {
1457                  "type": "TSNumberKeyword",
1458                  "loc": {
1459                    "start": {
1460                      "line": 47,
1461                      "column": 9
1462                    },
1463                    "end": {
1464                      "line": 47,
1465                      "column": 15
1466                    }
1467                  }
1468                },
1469                "decorators": [],
1470                "loc": {
1471                  "start": {
1472                    "line": 47,
1473                    "column": 6
1474                  },
1475                  "end": {
1476                    "line": 47,
1477                    "column": 7
1478                  }
1479                }
1480              },
1481              {
1482                "type": "Identifier",
1483                "name": "b",
1484                "typeAnnotation": {
1485                  "type": "TSNumberKeyword",
1486                  "loc": {
1487                    "start": {
1488                      "line": 47,
1489                      "column": 20
1490                    },
1491                    "end": {
1492                      "line": 47,
1493                      "column": 26
1494                    }
1495                  }
1496                },
1497                "decorators": [],
1498                "loc": {
1499                  "start": {
1500                    "line": 47,
1501                    "column": 17
1502                  },
1503                  "end": {
1504                    "line": 47,
1505                    "column": 18
1506                  }
1507                }
1508              }
1509            ],
1510            "returnType": {
1511              "type": "TSStringKeyword",
1512              "loc": {
1513                "start": {
1514                  "line": 47,
1515                  "column": 29
1516                },
1517                "end": {
1518                  "line": 47,
1519                  "column": 35
1520                }
1521              }
1522            },
1523            "loc": {
1524              "start": {
1525                "line": 47,
1526                "column": 5
1527              },
1528              "end": {
1529                "line": 47,
1530                "column": 36
1531              }
1532            }
1533          },
1534          {
1535            "type": "TSCallSignatureDeclaration",
1536            "params": [
1537              {
1538                "type": "Identifier",
1539                "name": "a",
1540                "typeAnnotation": {
1541                  "type": "TSNumberKeyword",
1542                  "loc": {
1543                    "start": {
1544                      "line": 48,
1545                      "column": 9
1546                    },
1547                    "end": {
1548                      "line": 48,
1549                      "column": 15
1550                    }
1551                  }
1552                },
1553                "decorators": [],
1554                "loc": {
1555                  "start": {
1556                    "line": 48,
1557                    "column": 6
1558                  },
1559                  "end": {
1560                    "line": 48,
1561                    "column": 7
1562                  }
1563                }
1564              },
1565              {
1566                "type": "Identifier",
1567                "name": "b",
1568                "typeAnnotation": {
1569                  "type": "TSNumberKeyword",
1570                  "loc": {
1571                    "start": {
1572                      "line": 48,
1573                      "column": 20
1574                    },
1575                    "end": {
1576                      "line": 48,
1577                      "column": 26
1578                    }
1579                  }
1580                },
1581                "decorators": [],
1582                "loc": {
1583                  "start": {
1584                    "line": 48,
1585                    "column": 17
1586                  },
1587                  "end": {
1588                    "line": 48,
1589                    "column": 18
1590                  }
1591                }
1592              }
1593            ],
1594            "returnType": {
1595              "type": "TSStringKeyword",
1596              "loc": {
1597                "start": {
1598                  "line": 48,
1599                  "column": 29
1600                },
1601                "end": {
1602                  "line": 48,
1603                  "column": 35
1604                }
1605              }
1606            },
1607            "loc": {
1608              "start": {
1609                "line": 48,
1610                "column": 5
1611              },
1612              "end": {
1613                "line": 48,
1614                "column": 36
1615              }
1616            }
1617          }
1618        ],
1619        "loc": {
1620          "start": {
1621            "line": 46,
1622            "column": 25
1623          },
1624          "end": {
1625            "line": 49,
1626            "column": 2
1627          }
1628        }
1629      },
1630      "id": {
1631        "type": "Identifier",
1632        "name": "C3",
1633        "decorators": [],
1634        "loc": {
1635          "start": {
1636            "line": 46,
1637            "column": 11
1638          },
1639          "end": {
1640            "line": 46,
1641            "column": 13
1642          }
1643        }
1644      },
1645      "extends": [
1646        {
1647          "type": "TSInterfaceHeritage",
1648          "expression": {
1649            "type": "TSTypeReference",
1650            "typeName": {
1651              "type": "Identifier",
1652              "name": "C1",
1653              "decorators": [],
1654              "loc": {
1655                "start": {
1656                  "line": 46,
1657                  "column": 22
1658                },
1659                "end": {
1660                  "line": 46,
1661                  "column": 24
1662                }
1663              }
1664            },
1665            "loc": {
1666              "start": {
1667                "line": 46,
1668                "column": 25
1669              },
1670              "end": {
1671                "line": 46,
1672                "column": 24
1673              }
1674            }
1675          },
1676          "loc": {
1677            "start": {
1678              "line": 46,
1679              "column": 25
1680            },
1681            "end": {
1682              "line": 46,
1683              "column": 24
1684            }
1685          }
1686        }
1687      ],
1688      "loc": {
1689        "start": {
1690          "line": 46,
1691          "column": 1
1692        },
1693        "end": {
1694          "line": 49,
1695          "column": 2
1696        }
1697      }
1698    },
1699    {
1700      "type": "VariableDeclaration",
1701      "declarations": [
1702        {
1703          "type": "VariableDeclarator",
1704          "id": {
1705            "type": "Identifier",
1706            "name": "c",
1707            "typeAnnotation": {
1708              "type": "TSTypeReference",
1709              "typeName": {
1710                "type": "Identifier",
1711                "name": "C2",
1712                "decorators": [],
1713                "loc": {
1714                  "start": {
1715                    "line": 51,
1716                    "column": 8
1717                  },
1718                  "end": {
1719                    "line": 51,
1720                    "column": 10
1721                  }
1722                }
1723              },
1724              "loc": {
1725                "start": {
1726                  "line": 51,
1727                  "column": 8
1728                },
1729                "end": {
1730                  "line": 51,
1731                  "column": 10
1732                }
1733              }
1734            },
1735            "decorators": [],
1736            "loc": {
1737              "start": {
1738                "line": 51,
1739                "column": 5
1740              },
1741              "end": {
1742                "line": 51,
1743                "column": 6
1744              }
1745            }
1746          },
1747          "init": null,
1748          "loc": {
1749            "start": {
1750              "line": 51,
1751              "column": 5
1752            },
1753            "end": {
1754              "line": 51,
1755              "column": 6
1756            }
1757          }
1758        }
1759      ],
1760      "kind": "var",
1761      "loc": {
1762        "start": {
1763          "line": 51,
1764          "column": 1
1765        },
1766        "end": {
1767          "line": 51,
1768          "column": 11
1769        }
1770      }
1771    },
1772    {
1773      "type": "VariableDeclaration",
1774      "declarations": [
1775        {
1776          "type": "VariableDeclarator",
1777          "id": {
1778            "type": "Identifier",
1779            "name": "c",
1780            "typeAnnotation": {
1781              "type": "TSTypeReference",
1782              "typeName": {
1783                "type": "Identifier",
1784                "name": "C3",
1785                "decorators": [],
1786                "loc": {
1787                  "start": {
1788                    "line": 52,
1789                    "column": 8
1790                  },
1791                  "end": {
1792                    "line": 52,
1793                    "column": 10
1794                  }
1795                }
1796              },
1797              "loc": {
1798                "start": {
1799                  "line": 52,
1800                  "column": 8
1801                },
1802                "end": {
1803                  "line": 52,
1804                  "column": 10
1805                }
1806              }
1807            },
1808            "decorators": [],
1809            "loc": {
1810              "start": {
1811                "line": 52,
1812                "column": 5
1813              },
1814              "end": {
1815                "line": 52,
1816                "column": 6
1817              }
1818            }
1819          },
1820          "init": null,
1821          "loc": {
1822            "start": {
1823              "line": 52,
1824              "column": 5
1825            },
1826            "end": {
1827              "line": 52,
1828              "column": 6
1829            }
1830          }
1831        }
1832      ],
1833      "kind": "var",
1834      "loc": {
1835        "start": {
1836          "line": 52,
1837          "column": 1
1838        },
1839        "end": {
1840          "line": 52,
1841          "column": 11
1842        }
1843      }
1844    },
1845    {
1846      "type": "TSInterfaceDeclaration",
1847      "body": {
1848        "type": "TSInterfaceBody",
1849        "body": [
1850          {
1851            "type": "TSPropertySignature",
1852            "computed": false,
1853            "optional": false,
1854            "readonly": false,
1855            "key": {
1856              "type": "Identifier",
1857              "name": "d",
1858              "decorators": [],
1859              "loc": {
1860                "start": {
1861                  "line": 55,
1862                  "column": 5
1863                },
1864                "end": {
1865                  "line": 55,
1866                  "column": 6
1867                }
1868              }
1869            },
1870            "typeAnnotation": {
1871              "type": "TSArrayType",
1872              "elementType": {
1873                "type": "TSStringKeyword",
1874                "loc": {
1875                  "start": {
1876                    "line": 55,
1877                    "column": 8
1878                  },
1879                  "end": {
1880                    "line": 55,
1881                    "column": 14
1882                  }
1883                }
1884              },
1885              "loc": {
1886                "start": {
1887                  "line": 55,
1888                  "column": 8
1889                },
1890                "end": {
1891                  "line": 55,
1892                  "column": 16
1893                }
1894              }
1895            },
1896            "loc": {
1897              "start": {
1898                "line": 55,
1899                "column": 5
1900              },
1901              "end": {
1902                "line": 56,
1903                "column": 2
1904              }
1905            }
1906          }
1907        ],
1908        "loc": {
1909          "start": {
1910            "line": 54,
1911            "column": 29
1912          },
1913          "end": {
1914            "line": 56,
1915            "column": 2
1916          }
1917        }
1918      },
1919      "id": {
1920        "type": "Identifier",
1921        "name": "D4",
1922        "decorators": [],
1923        "loc": {
1924          "start": {
1925            "line": 54,
1926            "column": 11
1927          },
1928          "end": {
1929            "line": 54,
1930            "column": 13
1931          }
1932        }
1933      },
1934      "extends": [
1935        {
1936          "type": "TSInterfaceHeritage",
1937          "expression": {
1938            "type": "TSTypeReference",
1939            "typeName": {
1940              "type": "Identifier",
1941              "name": "D3",
1942              "decorators": [],
1943              "loc": {
1944                "start": {
1945                  "line": 54,
1946                  "column": 22
1947                },
1948                "end": {
1949                  "line": 54,
1950                  "column": 24
1951                }
1952              }
1953            },
1954            "loc": {
1955              "start": {
1956                "line": 54,
1957                "column": 24
1958              },
1959              "end": {
1960                "line": 54,
1961                "column": 24
1962              }
1963            }
1964          },
1965          "loc": {
1966            "start": {
1967              "line": 54,
1968              "column": 24
1969            },
1970            "end": {
1971              "line": 54,
1972              "column": 24
1973            }
1974          }
1975        },
1976        {
1977          "type": "TSInterfaceHeritage",
1978          "expression": {
1979            "type": "TSTypeReference",
1980            "typeName": {
1981              "type": "Identifier",
1982              "name": "D2",
1983              "decorators": [],
1984              "loc": {
1985                "start": {
1986                  "line": 54,
1987                  "column": 26
1988                },
1989                "end": {
1990                  "line": 54,
1991                  "column": 28
1992                }
1993              }
1994            },
1995            "loc": {
1996              "start": {
1997                "line": 54,
1998                "column": 29
1999              },
2000              "end": {
2001                "line": 54,
2002                "column": 28
2003              }
2004            }
2005          },
2006          "loc": {
2007            "start": {
2008              "line": 54,
2009              "column": 29
2010            },
2011            "end": {
2012              "line": 54,
2013              "column": 28
2014            }
2015          }
2016        }
2017      ],
2018      "loc": {
2019        "start": {
2020          "line": 54,
2021          "column": 1
2022        },
2023        "end": {
2024          "line": 56,
2025          "column": 2
2026        }
2027      }
2028    },
2029    {
2030      "type": "TSInterfaceDeclaration",
2031      "body": {
2032        "type": "TSInterfaceBody",
2033        "body": [
2034          {
2035            "type": "TSPropertySignature",
2036            "computed": false,
2037            "optional": false,
2038            "readonly": false,
2039            "key": {
2040              "type": "Identifier",
2041              "name": "a",
2042              "decorators": [],
2043              "loc": {
2044                "start": {
2045                  "line": 59,
2046                  "column": 5
2047                },
2048                "end": {
2049                  "line": 59,
2050                  "column": 6
2051                }
2052              }
2053            },
2054            "typeAnnotation": {
2055              "type": "TSNumberKeyword",
2056              "loc": {
2057                "start": {
2058                  "line": 59,
2059                  "column": 8
2060                },
2061                "end": {
2062                  "line": 59,
2063                  "column": 14
2064                }
2065              }
2066            },
2067            "loc": {
2068              "start": {
2069                "line": 59,
2070                "column": 5
2071              },
2072              "end": {
2073                "line": 60,
2074                "column": 2
2075              }
2076            }
2077          }
2078        ],
2079        "loc": {
2080          "start": {
2081            "line": 58,
2082            "column": 14
2083          },
2084          "end": {
2085            "line": 60,
2086            "column": 2
2087          }
2088        }
2089      },
2090      "id": {
2091        "type": "Identifier",
2092        "name": "D1",
2093        "decorators": [],
2094        "loc": {
2095          "start": {
2096            "line": 58,
2097            "column": 11
2098          },
2099          "end": {
2100            "line": 58,
2101            "column": 13
2102          }
2103        }
2104      },
2105      "extends": [],
2106      "loc": {
2107        "start": {
2108          "line": 58,
2109          "column": 1
2110        },
2111        "end": {
2112          "line": 60,
2113          "column": 2
2114        }
2115      }
2116    },
2117    {
2118      "type": "TSInterfaceDeclaration",
2119      "body": {
2120        "type": "TSInterfaceBody",
2121        "body": [
2122          {
2123            "type": "TSPropertySignature",
2124            "computed": false,
2125            "optional": false,
2126            "readonly": false,
2127            "key": {
2128              "type": "Identifier",
2129              "name": "c",
2130              "decorators": [],
2131              "loc": {
2132                "start": {
2133                  "line": 63,
2134                  "column": 5
2135                },
2136                "end": {
2137                  "line": 63,
2138                  "column": 6
2139                }
2140              }
2141            },
2142            "typeAnnotation": {
2143              "type": "TSStringKeyword",
2144              "loc": {
2145                "start": {
2146                  "line": 63,
2147                  "column": 8
2148                },
2149                "end": {
2150                  "line": 63,
2151                  "column": 14
2152                }
2153              }
2154            },
2155            "loc": {
2156              "start": {
2157                "line": 63,
2158                "column": 5
2159              },
2160              "end": {
2161                "line": 63,
2162                "column": 15
2163              }
2164            }
2165          }
2166        ],
2167        "loc": {
2168          "start": {
2169            "line": 62,
2170            "column": 14
2171          },
2172          "end": {
2173            "line": 64,
2174            "column": 2
2175          }
2176        }
2177      },
2178      "id": {
2179        "type": "Identifier",
2180        "name": "D3",
2181        "decorators": [],
2182        "loc": {
2183          "start": {
2184            "line": 62,
2185            "column": 11
2186          },
2187          "end": {
2188            "line": 62,
2189            "column": 13
2190          }
2191        }
2192      },
2193      "extends": [],
2194      "loc": {
2195        "start": {
2196          "line": 62,
2197          "column": 1
2198        },
2199        "end": {
2200          "line": 64,
2201          "column": 2
2202        }
2203      }
2204    },
2205    {
2206      "type": "TSInterfaceDeclaration",
2207      "body": {
2208        "type": "TSInterfaceBody",
2209        "body": [
2210          {
2211            "type": "TSPropertySignature",
2212            "computed": false,
2213            "optional": false,
2214            "readonly": false,
2215            "key": {
2216              "type": "Identifier",
2217              "name": "b",
2218              "decorators": [],
2219              "loc": {
2220                "start": {
2221                  "line": 67,
2222                  "column": 5
2223                },
2224                "end": {
2225                  "line": 67,
2226                  "column": 6
2227                }
2228              }
2229            },
2230            "typeAnnotation": {
2231              "type": "TSNumberKeyword",
2232              "loc": {
2233                "start": {
2234                  "line": 67,
2235                  "column": 8
2236                },
2237                "end": {
2238                  "line": 67,
2239                  "column": 14
2240                }
2241              }
2242            },
2243            "loc": {
2244              "start": {
2245                "line": 67,
2246                "column": 5
2247              },
2248              "end": {
2249                "line": 67,
2250                "column": 15
2251              }
2252            }
2253          }
2254        ],
2255        "loc": {
2256          "start": {
2257            "line": 66,
2258            "column": 25
2259          },
2260          "end": {
2261            "line": 68,
2262            "column": 2
2263          }
2264        }
2265      },
2266      "id": {
2267        "type": "Identifier",
2268        "name": "D2",
2269        "decorators": [],
2270        "loc": {
2271          "start": {
2272            "line": 66,
2273            "column": 11
2274          },
2275          "end": {
2276            "line": 66,
2277            "column": 13
2278          }
2279        }
2280      },
2281      "extends": [
2282        {
2283          "type": "TSInterfaceHeritage",
2284          "expression": {
2285            "type": "TSTypeReference",
2286            "typeName": {
2287              "type": "Identifier",
2288              "name": "D1",
2289              "decorators": [],
2290              "loc": {
2291                "start": {
2292                  "line": 66,
2293                  "column": 22
2294                },
2295                "end": {
2296                  "line": 66,
2297                  "column": 24
2298                }
2299              }
2300            },
2301            "loc": {
2302              "start": {
2303                "line": 66,
2304                "column": 25
2305              },
2306              "end": {
2307                "line": 66,
2308                "column": 24
2309              }
2310            }
2311          },
2312          "loc": {
2313            "start": {
2314              "line": 66,
2315              "column": 25
2316            },
2317            "end": {
2318              "line": 66,
2319              "column": 24
2320            }
2321          }
2322        }
2323      ],
2324      "loc": {
2325        "start": {
2326          "line": 66,
2327          "column": 1
2328        },
2329        "end": {
2330          "line": 68,
2331          "column": 2
2332        }
2333      }
2334    },
2335    {
2336      "type": "TSInterfaceDeclaration",
2337      "body": {
2338        "type": "TSInterfaceBody",
2339        "body": [
2340          {
2341            "type": "TSPropertySignature",
2342            "computed": false,
2343            "optional": false,
2344            "readonly": false,
2345            "key": {
2346              "type": "Identifier",
2347              "name": "e",
2348              "decorators": [],
2349              "loc": {
2350                "start": {
2351                  "line": 71,
2352                  "column": 5
2353                },
2354                "end": {
2355                  "line": 71,
2356                  "column": 6
2357                }
2358              }
2359            },
2360            "typeAnnotation": {
2361              "type": "TSTupleType",
2362              "elementTypes": [
2363                {
2364                  "type": "TSNumberKeyword",
2365                  "loc": {
2366                    "start": {
2367                      "line": 71,
2368                      "column": 9
2369                    },
2370                    "end": {
2371                      "line": 71,
2372                      "column": 16
2373                    }
2374                  }
2375                },
2376                {
2377                  "type": "TSStringKeyword",
2378                  "loc": {
2379                    "start": {
2380                      "line": 71,
2381                      "column": 17
2382                    },
2383                    "end": {
2384                      "line": 71,
2385                      "column": 24
2386                    }
2387                  }
2388                }
2389              ],
2390              "loc": {
2391                "start": {
2392                  "line": 71,
2393                  "column": 8
2394                },
2395                "end": {
2396                  "line": 71,
2397                  "column": 24
2398                }
2399              }
2400            },
2401            "loc": {
2402              "start": {
2403                "line": 71,
2404                "column": 5
2405              },
2406              "end": {
2407                "line": 71,
2408                "column": 25
2409              }
2410            }
2411          }
2412        ],
2413        "loc": {
2414          "start": {
2415            "line": 70,
2416            "column": 33
2417          },
2418          "end": {
2419            "line": 72,
2420            "column": 2
2421          }
2422        }
2423      },
2424      "id": {
2425        "type": "Identifier",
2426        "name": "D5",
2427        "decorators": [],
2428        "loc": {
2429          "start": {
2430            "line": 70,
2431            "column": 11
2432          },
2433          "end": {
2434            "line": 70,
2435            "column": 13
2436          }
2437        }
2438      },
2439      "extends": [
2440        {
2441          "type": "TSInterfaceHeritage",
2442          "expression": {
2443            "type": "TSTypeReference",
2444            "typeName": {
2445              "type": "Identifier",
2446              "name": "D4",
2447              "decorators": [],
2448              "loc": {
2449                "start": {
2450                  "line": 70,
2451                  "column": 22
2452                },
2453                "end": {
2454                  "line": 70,
2455                  "column": 24
2456                }
2457              }
2458            },
2459            "loc": {
2460              "start": {
2461                "line": 70,
2462                "column": 24
2463              },
2464              "end": {
2465                "line": 70,
2466                "column": 24
2467              }
2468            }
2469          },
2470          "loc": {
2471            "start": {
2472              "line": 70,
2473              "column": 24
2474            },
2475            "end": {
2476              "line": 70,
2477              "column": 24
2478            }
2479          }
2480        },
2481        {
2482          "type": "TSInterfaceHeritage",
2483          "expression": {
2484            "type": "TSTypeReference",
2485            "typeName": {
2486              "type": "Identifier",
2487              "name": "D1",
2488              "decorators": [],
2489              "loc": {
2490                "start": {
2491                  "line": 70,
2492                  "column": 26
2493                },
2494                "end": {
2495                  "line": 70,
2496                  "column": 28
2497                }
2498              }
2499            },
2500            "loc": {
2501              "start": {
2502                "line": 70,
2503                "column": 28
2504              },
2505              "end": {
2506                "line": 70,
2507                "column": 28
2508              }
2509            }
2510          },
2511          "loc": {
2512            "start": {
2513              "line": 70,
2514              "column": 28
2515            },
2516            "end": {
2517              "line": 70,
2518              "column": 28
2519            }
2520          }
2521        },
2522        {
2523          "type": "TSInterfaceHeritage",
2524          "expression": {
2525            "type": "TSTypeReference",
2526            "typeName": {
2527              "type": "Identifier",
2528              "name": "D3",
2529              "decorators": [],
2530              "loc": {
2531                "start": {
2532                  "line": 70,
2533                  "column": 30
2534                },
2535                "end": {
2536                  "line": 70,
2537                  "column": 32
2538                }
2539              }
2540            },
2541            "loc": {
2542              "start": {
2543                "line": 70,
2544                "column": 33
2545              },
2546              "end": {
2547                "line": 70,
2548                "column": 32
2549              }
2550            }
2551          },
2552          "loc": {
2553            "start": {
2554              "line": 70,
2555              "column": 33
2556            },
2557            "end": {
2558              "line": 70,
2559              "column": 32
2560            }
2561          }
2562        }
2563      ],
2564      "loc": {
2565        "start": {
2566          "line": 70,
2567          "column": 1
2568        },
2569        "end": {
2570          "line": 72,
2571          "column": 2
2572        }
2573      }
2574    },
2575    {
2576      "type": "VariableDeclaration",
2577      "declarations": [
2578        {
2579          "type": "VariableDeclarator",
2580          "id": {
2581            "type": "Identifier",
2582            "name": "d",
2583            "typeAnnotation": {
2584              "type": "TSTypeReference",
2585              "typeName": {
2586                "type": "Identifier",
2587                "name": "D5",
2588                "decorators": [],
2589                "loc": {
2590                  "start": {
2591                    "line": 74,
2592                    "column": 8
2593                  },
2594                  "end": {
2595                    "line": 74,
2596                    "column": 10
2597                  }
2598                }
2599              },
2600              "loc": {
2601                "start": {
2602                  "line": 74,
2603                  "column": 8
2604                },
2605                "end": {
2606                  "line": 74,
2607                  "column": 10
2608                }
2609              }
2610            },
2611            "decorators": [],
2612            "loc": {
2613              "start": {
2614                "line": 74,
2615                "column": 5
2616              },
2617              "end": {
2618                "line": 74,
2619                "column": 6
2620              }
2621            }
2622          },
2623          "init": {
2624            "type": "ObjectExpression",
2625            "properties": [
2626              {
2627                "type": "Property",
2628                "method": false,
2629                "shorthand": false,
2630                "computed": false,
2631                "key": {
2632                  "type": "Identifier",
2633                  "name": "a",
2634                  "decorators": [],
2635                  "loc": {
2636                    "start": {
2637                      "line": 74,
2638                      "column": 15
2639                    },
2640                    "end": {
2641                      "line": 74,
2642                      "column": 16
2643                    }
2644                  }
2645                },
2646                "value": {
2647                  "type": "NumberLiteral",
2648                  "value": 2,
2649                  "loc": {
2650                    "start": {
2651                      "line": 74,
2652                      "column": 18
2653                    },
2654                    "end": {
2655                      "line": 74,
2656                      "column": 19
2657                    }
2658                  }
2659                },
2660                "kind": "init",
2661                "loc": {
2662                  "start": {
2663                    "line": 74,
2664                    "column": 15
2665                  },
2666                  "end": {
2667                    "line": 74,
2668                    "column": 19
2669                  }
2670                }
2671              },
2672              {
2673                "type": "Property",
2674                "method": false,
2675                "shorthand": false,
2676                "computed": false,
2677                "key": {
2678                  "type": "Identifier",
2679                  "name": "b",
2680                  "decorators": [],
2681                  "loc": {
2682                    "start": {
2683                      "line": 74,
2684                      "column": 21
2685                    },
2686                    "end": {
2687                      "line": 74,
2688                      "column": 22
2689                    }
2690                  }
2691                },
2692                "value": {
2693                  "type": "NumberLiteral",
2694                  "value": 3,
2695                  "loc": {
2696                    "start": {
2697                      "line": 74,
2698                      "column": 24
2699                    },
2700                    "end": {
2701                      "line": 74,
2702                      "column": 25
2703                    }
2704                  }
2705                },
2706                "kind": "init",
2707                "loc": {
2708                  "start": {
2709                    "line": 74,
2710                    "column": 21
2711                  },
2712                  "end": {
2713                    "line": 74,
2714                    "column": 25
2715                  }
2716                }
2717              },
2718              {
2719                "type": "Property",
2720                "method": false,
2721                "shorthand": false,
2722                "computed": false,
2723                "key": {
2724                  "type": "Identifier",
2725                  "name": "c",
2726                  "decorators": [],
2727                  "loc": {
2728                    "start": {
2729                      "line": 74,
2730                      "column": 27
2731                    },
2732                    "end": {
2733                      "line": 74,
2734                      "column": 28
2735                    }
2736                  }
2737                },
2738                "value": {
2739                  "type": "StringLiteral",
2740                  "value": "bar",
2741                  "loc": {
2742                    "start": {
2743                      "line": 74,
2744                      "column": 30
2745                    },
2746                    "end": {
2747                      "line": 74,
2748                      "column": 35
2749                    }
2750                  }
2751                },
2752                "kind": "init",
2753                "loc": {
2754                  "start": {
2755                    "line": 74,
2756                    "column": 27
2757                  },
2758                  "end": {
2759                    "line": 74,
2760                    "column": 35
2761                  }
2762                }
2763              },
2764              {
2765                "type": "Property",
2766                "method": false,
2767                "shorthand": false,
2768                "computed": false,
2769                "key": {
2770                  "type": "Identifier",
2771                  "name": "d",
2772                  "decorators": [],
2773                  "loc": {
2774                    "start": {
2775                      "line": 74,
2776                      "column": 37
2777                    },
2778                    "end": {
2779                      "line": 74,
2780                      "column": 38
2781                    }
2782                  }
2783                },
2784                "value": {
2785                  "type": "ArrayExpression",
2786                  "elements": [
2787                    {
2788                      "type": "StringLiteral",
2789                      "value": "foo",
2790                      "loc": {
2791                        "start": {
2792                          "line": 74,
2793                          "column": 41
2794                        },
2795                        "end": {
2796                          "line": 74,
2797                          "column": 46
2798                        }
2799                      }
2800                    },
2801                    {
2802                      "type": "StringLiteral",
2803                      "value": "bar",
2804                      "loc": {
2805                        "start": {
2806                          "line": 74,
2807                          "column": 48
2808                        },
2809                        "end": {
2810                          "line": 74,
2811                          "column": 53
2812                        }
2813                      }
2814                    },
2815                    {
2816                      "type": "StringLiteral",
2817                      "value": "baz",
2818                      "loc": {
2819                        "start": {
2820                          "line": 74,
2821                          "column": 55
2822                        },
2823                        "end": {
2824                          "line": 74,
2825                          "column": 60
2826                        }
2827                      }
2828                    }
2829                  ],
2830                  "loc": {
2831                    "start": {
2832                      "line": 74,
2833                      "column": 40
2834                    },
2835                    "end": {
2836                      "line": 74,
2837                      "column": 61
2838                    }
2839                  }
2840                },
2841                "kind": "init",
2842                "loc": {
2843                  "start": {
2844                    "line": 74,
2845                    "column": 37
2846                  },
2847                  "end": {
2848                    "line": 74,
2849                    "column": 61
2850                  }
2851                }
2852              },
2853              {
2854                "type": "Property",
2855                "method": false,
2856                "shorthand": false,
2857                "computed": false,
2858                "key": {
2859                  "type": "Identifier",
2860                  "name": "e",
2861                  "decorators": [],
2862                  "loc": {
2863                    "start": {
2864                      "line": 74,
2865                      "column": 63
2866                    },
2867                    "end": {
2868                      "line": 74,
2869                      "column": 64
2870                    }
2871                  }
2872                },
2873                "value": {
2874                  "type": "ArrayExpression",
2875                  "elements": [
2876                    {
2877                      "type": "NumberLiteral",
2878                      "value": 1,
2879                      "loc": {
2880                        "start": {
2881                          "line": 74,
2882                          "column": 67
2883                        },
2884                        "end": {
2885                          "line": 74,
2886                          "column": 68
2887                        }
2888                      }
2889                    },
2890                    {
2891                      "type": "StringLiteral",
2892                      "value": "foo",
2893                      "loc": {
2894                        "start": {
2895                          "line": 74,
2896                          "column": 70
2897                        },
2898                        "end": {
2899                          "line": 74,
2900                          "column": 75
2901                        }
2902                      }
2903                    }
2904                  ],
2905                  "loc": {
2906                    "start": {
2907                      "line": 74,
2908                      "column": 66
2909                    },
2910                    "end": {
2911                      "line": 74,
2912                      "column": 76
2913                    }
2914                  }
2915                },
2916                "kind": "init",
2917                "loc": {
2918                  "start": {
2919                    "line": 74,
2920                    "column": 63
2921                  },
2922                  "end": {
2923                    "line": 74,
2924                    "column": 76
2925                  }
2926                }
2927              }
2928            ],
2929            "loc": {
2930              "start": {
2931                "line": 74,
2932                "column": 13
2933              },
2934              "end": {
2935                "line": 74,
2936                "column": 78
2937              }
2938            }
2939          },
2940          "loc": {
2941            "start": {
2942              "line": 74,
2943              "column": 5
2944            },
2945            "end": {
2946              "line": 74,
2947              "column": 78
2948            }
2949          }
2950        }
2951      ],
2952      "kind": "var",
2953      "loc": {
2954        "start": {
2955          "line": 74,
2956          "column": 1
2957        },
2958        "end": {
2959          "line": 74,
2960          "column": 78
2961        }
2962      }
2963    },
2964    {
2965      "type": "TSInterfaceDeclaration",
2966      "body": {
2967        "type": "TSInterfaceBody",
2968        "body": [
2969          {
2970            "type": "TSPropertySignature",
2971            "computed": false,
2972            "optional": false,
2973            "readonly": false,
2974            "key": {
2975              "type": "Identifier",
2976              "name": "a",
2977              "decorators": [],
2978              "loc": {
2979                "start": {
2980                  "line": 77,
2981                  "column": 5
2982                },
2983                "end": {
2984                  "line": 77,
2985                  "column": 6
2986                }
2987              }
2988            },
2989            "typeAnnotation": {
2990              "type": "TSNumberKeyword",
2991              "loc": {
2992                "start": {
2993                  "line": 77,
2994                  "column": 8
2995                },
2996                "end": {
2997                  "line": 77,
2998                  "column": 14
2999                }
3000              }
3001            },
3002            "loc": {
3003              "start": {
3004                "line": 77,
3005                "column": 5
3006              },
3007              "end": {
3008                "line": 77,
3009                "column": 15
3010              }
3011            }
3012          }
3013        ],
3014        "loc": {
3015          "start": {
3016            "line": 76,
3017            "column": 13
3018          },
3019          "end": {
3020            "line": 78,
3021            "column": 2
3022          }
3023        }
3024      },
3025      "id": {
3026        "type": "Identifier",
3027        "name": "E",
3028        "decorators": [],
3029        "loc": {
3030          "start": {
3031            "line": 76,
3032            "column": 11
3033          },
3034          "end": {
3035            "line": 76,
3036            "column": 12
3037          }
3038        }
3039      },
3040      "extends": [],
3041      "loc": {
3042        "start": {
3043          "line": 76,
3044          "column": 1
3045        },
3046        "end": {
3047          "line": 78,
3048          "column": 2
3049        }
3050      }
3051    },
3052    {
3053      "type": "TSInterfaceDeclaration",
3054      "body": {
3055        "type": "TSInterfaceBody",
3056        "body": [
3057          {
3058            "type": "TSPropertySignature",
3059            "computed": false,
3060            "optional": false,
3061            "readonly": false,
3062            "key": {
3063              "type": "Identifier",
3064              "name": "b",
3065              "decorators": [],
3066              "loc": {
3067                "start": {
3068                  "line": 81,
3069                  "column": 5
3070                },
3071                "end": {
3072                  "line": 81,
3073                  "column": 6
3074                }
3075              }
3076            },
3077            "typeAnnotation": {
3078              "type": "TSStringKeyword",
3079              "loc": {
3080                "start": {
3081                  "line": 81,
3082                  "column": 8
3083                },
3084                "end": {
3085                  "line": 81,
3086                  "column": 14
3087                }
3088              }
3089            },
3090            "loc": {
3091              "start": {
3092                "line": 81,
3093                "column": 5
3094              },
3095              "end": {
3096                "line": 81,
3097                "column": 15
3098              }
3099            }
3100          }
3101        ],
3102        "loc": {
3103          "start": {
3104            "line": 80,
3105            "column": 13
3106          },
3107          "end": {
3108            "line": 82,
3109            "column": 2
3110          }
3111        }
3112      },
3113      "id": {
3114        "type": "Identifier",
3115        "name": "E",
3116        "decorators": [],
3117        "loc": {
3118          "start": {
3119            "line": 80,
3120            "column": 11
3121          },
3122          "end": {
3123            "line": 80,
3124            "column": 12
3125          }
3126        }
3127      },
3128      "extends": [],
3129      "loc": {
3130        "start": {
3131          "line": 80,
3132          "column": 1
3133        },
3134        "end": {
3135          "line": 82,
3136          "column": 2
3137        }
3138      }
3139    },
3140    {
3141      "type": "TSInterfaceDeclaration",
3142      "body": {
3143        "type": "TSInterfaceBody",
3144        "body": [
3145          {
3146            "type": "TSPropertySignature",
3147            "computed": false,
3148            "optional": false,
3149            "readonly": false,
3150            "key": {
3151              "type": "Identifier",
3152              "name": "d",
3153              "decorators": [],
3154              "loc": {
3155                "start": {
3156                  "line": 85,
3157                  "column": 5
3158                },
3159                "end": {
3160                  "line": 85,
3161                  "column": 6
3162                }
3163              }
3164            },
3165            "typeAnnotation": {
3166              "type": "TSFunctionType",
3167              "params": [
3168                {
3169                  "type": "Identifier",
3170                  "name": "a",
3171                  "typeAnnotation": {
3172                    "type": "TSNumberKeyword",
3173                    "loc": {
3174                      "start": {
3175                        "line": 85,
3176                        "column": 12
3177                      },
3178                      "end": {
3179                        "line": 85,
3180                        "column": 18
3181                      }
3182                    }
3183                  },
3184                  "decorators": [],
3185                  "loc": {
3186                    "start": {
3187                      "line": 85,
3188                      "column": 9
3189                    },
3190                    "end": {
3191                      "line": 85,
3192                      "column": 10
3193                    }
3194                  }
3195                },
3196                {
3197                  "type": "Identifier",
3198                  "name": "b",
3199                  "typeAnnotation": {
3200                    "type": "TSStringKeyword",
3201                    "loc": {
3202                      "start": {
3203                        "line": 85,
3204                        "column": 23
3205                      },
3206                      "end": {
3207                        "line": 85,
3208                        "column": 29
3209                      }
3210                    }
3211                  },
3212                  "decorators": [],
3213                  "loc": {
3214                    "start": {
3215                      "line": 85,
3216                      "column": 20
3217                    },
3218                    "end": {
3219                      "line": 85,
3220                      "column": 21
3221                    }
3222                  }
3223                }
3224              ],
3225              "returnType": {
3226                "type": "TSTypeLiteral",
3227                "members": [],
3228                "loc": {
3229                  "start": {
3230                    "line": 85,
3231                    "column": 34
3232                  },
3233                  "end": {
3234                    "line": 85,
3235                    "column": 36
3236                  }
3237                }
3238              },
3239              "loc": {
3240                "start": {
3241                  "line": 85,
3242                  "column": 8
3243                },
3244                "end": {
3245                  "line": 85,
3246                  "column": 36
3247                }
3248              }
3249            },
3250            "loc": {
3251              "start": {
3252                "line": 85,
3253                "column": 5
3254              },
3255              "end": {
3256                "line": 86,
3257                "column": 2
3258              }
3259            }
3260          }
3261        ],
3262        "loc": {
3263          "start": {
3264            "line": 84,
3265            "column": 13
3266          },
3267          "end": {
3268            "line": 86,
3269            "column": 2
3270          }
3271        }
3272      },
3273      "id": {
3274        "type": "Identifier",
3275        "name": "E",
3276        "decorators": [],
3277        "loc": {
3278          "start": {
3279            "line": 84,
3280            "column": 11
3281          },
3282          "end": {
3283            "line": 84,
3284            "column": 12
3285          }
3286        }
3287      },
3288      "extends": [],
3289      "loc": {
3290        "start": {
3291          "line": 84,
3292          "column": 1
3293        },
3294        "end": {
3295          "line": 86,
3296          "column": 2
3297        }
3298      }
3299    },
3300    {
3301      "type": "VariableDeclaration",
3302      "declarations": [
3303        {
3304          "type": "VariableDeclarator",
3305          "id": {
3306            "type": "Identifier",
3307            "name": "e",
3308            "typeAnnotation": {
3309              "type": "TSTypeReference",
3310              "typeName": {
3311                "type": "Identifier",
3312                "name": "E",
3313                "decorators": [],
3314                "loc": {
3315                  "start": {
3316                    "line": 88,
3317                    "column": 8
3318                  },
3319                  "end": {
3320                    "line": 88,
3321                    "column": 9
3322                  }
3323                }
3324              },
3325              "loc": {
3326                "start": {
3327                  "line": 88,
3328                  "column": 8
3329                },
3330                "end": {
3331                  "line": 88,
3332                  "column": 9
3333                }
3334              }
3335            },
3336            "decorators": [],
3337            "loc": {
3338              "start": {
3339                "line": 88,
3340                "column": 5
3341              },
3342              "end": {
3343                "line": 88,
3344                "column": 6
3345              }
3346            }
3347          },
3348          "init": {
3349            "type": "ObjectExpression",
3350            "properties": [
3351              {
3352                "type": "Property",
3353                "method": false,
3354                "shorthand": false,
3355                "computed": false,
3356                "key": {
3357                  "type": "Identifier",
3358                  "name": "a",
3359                  "decorators": [],
3360                  "loc": {
3361                    "start": {
3362                      "line": 88,
3363                      "column": 14
3364                    },
3365                    "end": {
3366                      "line": 88,
3367                      "column": 15
3368                    }
3369                  }
3370                },
3371                "value": {
3372                  "type": "NumberLiteral",
3373                  "value": 1,
3374                  "loc": {
3375                    "start": {
3376                      "line": 88,
3377                      "column": 17
3378                    },
3379                    "end": {
3380                      "line": 88,
3381                      "column": 18
3382                    }
3383                  }
3384                },
3385                "kind": "init",
3386                "loc": {
3387                  "start": {
3388                    "line": 88,
3389                    "column": 14
3390                  },
3391                  "end": {
3392                    "line": 88,
3393                    "column": 18
3394                  }
3395                }
3396              },
3397              {
3398                "type": "Property",
3399                "method": false,
3400                "shorthand": false,
3401                "computed": false,
3402                "key": {
3403                  "type": "Identifier",
3404                  "name": "b",
3405                  "decorators": [],
3406                  "loc": {
3407                    "start": {
3408                      "line": 88,
3409                      "column": 20
3410                    },
3411                    "end": {
3412                      "line": 88,
3413                      "column": 21
3414                    }
3415                  }
3416                },
3417                "value": {
3418                  "type": "StringLiteral",
3419                  "value": "foo",
3420                  "loc": {
3421                    "start": {
3422                      "line": 88,
3423                      "column": 23
3424                    },
3425                    "end": {
3426                      "line": 88,
3427                      "column": 28
3428                    }
3429                  }
3430                },
3431                "kind": "init",
3432                "loc": {
3433                  "start": {
3434                    "line": 88,
3435                    "column": 20
3436                  },
3437                  "end": {
3438                    "line": 88,
3439                    "column": 28
3440                  }
3441                }
3442              },
3443              {
3444                "type": "Property",
3445                "method": false,
3446                "shorthand": false,
3447                "computed": false,
3448                "key": {
3449                  "type": "Identifier",
3450                  "name": "d",
3451                  "decorators": [],
3452                  "loc": {
3453                    "start": {
3454                      "line": 88,
3455                      "column": 30
3456                    },
3457                    "end": {
3458                      "line": 88,
3459                      "column": 31
3460                    }
3461                  }
3462                },
3463                "value": {
3464                  "type": "FunctionExpression",
3465                  "function": {
3466                    "type": "ScriptFunction",
3467                    "id": null,
3468                    "generator": false,
3469                    "async": false,
3470                    "expression": false,
3471                    "params": [
3472                      {
3473                        "type": "Identifier",
3474                        "name": "a",
3475                        "typeAnnotation": {
3476                          "type": "TSNumberKeyword",
3477                          "loc": {
3478                            "start": {
3479                              "line": 88,
3480                              "column": 46
3481                            },
3482                            "end": {
3483                              "line": 88,
3484                              "column": 52
3485                            }
3486                          }
3487                        },
3488                        "decorators": [],
3489                        "loc": {
3490                          "start": {
3491                            "line": 88,
3492                            "column": 43
3493                          },
3494                          "end": {
3495                            "line": 88,
3496                            "column": 44
3497                          }
3498                        }
3499                      },
3500                      {
3501                        "type": "Identifier",
3502                        "name": "b",
3503                        "typeAnnotation": {
3504                          "type": "TSStringKeyword",
3505                          "loc": {
3506                            "start": {
3507                              "line": 88,
3508                              "column": 57
3509                            },
3510                            "end": {
3511                              "line": 88,
3512                              "column": 63
3513                            }
3514                          }
3515                        },
3516                        "decorators": [],
3517                        "loc": {
3518                          "start": {
3519                            "line": 88,
3520                            "column": 54
3521                          },
3522                          "end": {
3523                            "line": 88,
3524                            "column": 55
3525                          }
3526                        }
3527                      }
3528                    ],
3529                    "body": {
3530                      "type": "BlockStatement",
3531                      "statements": [
3532                        {
3533                          "type": "ReturnStatement",
3534                          "argument": {
3535                            "type": "ObjectExpression",
3536                            "properties": [],
3537                            "loc": {
3538                              "start": {
3539                                "line": 88,
3540                                "column": 74
3541                              },
3542                              "end": {
3543                                "line": 88,
3544                                "column": 76
3545                              }
3546                            }
3547                          },
3548                          "loc": {
3549                            "start": {
3550                              "line": 88,
3551                              "column": 67
3552                            },
3553                            "end": {
3554                              "line": 88,
3555                              "column": 76
3556                            }
3557                          }
3558                        }
3559                      ],
3560                      "loc": {
3561                        "start": {
3562                          "line": 88,
3563                          "column": 65
3564                        },
3565                        "end": {
3566                          "line": 88,
3567                          "column": 78
3568                        }
3569                      }
3570                    },
3571                    "loc": {
3572                      "start": {
3573                        "line": 88,
3574                        "column": 33
3575                      },
3576                      "end": {
3577                        "line": 88,
3578                        "column": 78
3579                      }
3580                    }
3581                  },
3582                  "loc": {
3583                    "start": {
3584                      "line": 88,
3585                      "column": 33
3586                    },
3587                    "end": {
3588                      "line": 88,
3589                      "column": 78
3590                    }
3591                  }
3592                },
3593                "kind": "init",
3594                "loc": {
3595                  "start": {
3596                    "line": 88,
3597                    "column": 30
3598                  },
3599                  "end": {
3600                    "line": 88,
3601                    "column": 78
3602                  }
3603                }
3604              }
3605            ],
3606            "loc": {
3607              "start": {
3608                "line": 88,
3609                "column": 12
3610              },
3611              "end": {
3612                "line": 88,
3613                "column": 80
3614              }
3615            }
3616          },
3617          "loc": {
3618            "start": {
3619              "line": 88,
3620              "column": 5
3621            },
3622            "end": {
3623              "line": 88,
3624              "column": 80
3625            }
3626          }
3627        }
3628      ],
3629      "kind": "var",
3630      "loc": {
3631        "start": {
3632          "line": 88,
3633          "column": 1
3634        },
3635        "end": {
3636          "line": 88,
3637          "column": 80
3638        }
3639      }
3640    },
3641    {
3642      "type": "TSInterfaceDeclaration",
3643      "body": {
3644        "type": "TSInterfaceBody",
3645        "body": [
3646          {
3647            "type": "TSIndexSignature",
3648            "parameters": {
3649              "type": "Identifier",
3650              "name": "x",
3651              "typeAnnotation": {
3652                "type": "TSNumberKeyword",
3653                "loc": {
3654                  "start": {
3655                    "line": 91,
3656                    "column": 9
3657                  },
3658                  "end": {
3659                    "line": 91,
3660                    "column": 15
3661                  }
3662                }
3663              },
3664              "decorators": [],
3665              "loc": {
3666                "start": {
3667                  "line": 91,
3668                  "column": 6
3669                },
3670                "end": {
3671                  "line": 91,
3672                  "column": 7
3673                }
3674              }
3675            },
3676            "typeAnnotation": {
3677              "type": "TSStringKeyword",
3678              "loc": {
3679                "start": {
3680                  "line": 91,
3681                  "column": 18
3682                },
3683                "end": {
3684                  "line": 91,
3685                  "column": 24
3686                }
3687              }
3688            },
3689            "readonly": false,
3690            "loc": {
3691              "start": {
3692                "line": 91,
3693                "column": 5
3694              },
3695              "end": {
3696                "line": 91,
3697                "column": 25
3698              }
3699            }
3700          },
3701          {
3702            "type": "TSIndexSignature",
3703            "parameters": {
3704              "type": "Identifier",
3705              "name": "x",
3706              "typeAnnotation": {
3707                "type": "TSStringKeyword",
3708                "loc": {
3709                  "start": {
3710                    "line": 92,
3711                    "column": 9
3712                  },
3713                  "end": {
3714                    "line": 92,
3715                    "column": 15
3716                  }
3717                }
3718              },
3719              "decorators": [],
3720              "loc": {
3721                "start": {
3722                  "line": 92,
3723                  "column": 6
3724                },
3725                "end": {
3726                  "line": 92,
3727                  "column": 7
3728                }
3729              }
3730            },
3731            "typeAnnotation": {
3732              "type": "TSUnionType",
3733              "types": [
3734                {
3735                  "type": "TSNumberKeyword",
3736                  "loc": {
3737                    "start": {
3738                      "line": 92,
3739                      "column": 18
3740                    },
3741                    "end": {
3742                      "line": 92,
3743                      "column": 24
3744                    }
3745                  }
3746                },
3747                {
3748                  "type": "TSStringKeyword",
3749                  "loc": {
3750                    "start": {
3751                      "line": 92,
3752                      "column": 27
3753                    },
3754                    "end": {
3755                      "line": 92,
3756                      "column": 33
3757                    }
3758                  }
3759                }
3760              ],
3761              "loc": {
3762                "start": {
3763                  "line": 92,
3764                  "column": 18
3765                },
3766                "end": {
3767                  "line": 92,
3768                  "column": 33
3769                }
3770              }
3771            },
3772            "readonly": false,
3773            "loc": {
3774              "start": {
3775                "line": 92,
3776                "column": 5
3777              },
3778              "end": {
3779                "line": 93,
3780                "column": 2
3781              }
3782            }
3783          }
3784        ],
3785        "loc": {
3786          "start": {
3787            "line": 90,
3788            "column": 13
3789          },
3790          "end": {
3791            "line": 93,
3792            "column": 2
3793          }
3794        }
3795      },
3796      "id": {
3797        "type": "Identifier",
3798        "name": "F",
3799        "decorators": [],
3800        "loc": {
3801          "start": {
3802            "line": 90,
3803            "column": 11
3804          },
3805          "end": {
3806            "line": 90,
3807            "column": 12
3808          }
3809        }
3810      },
3811      "extends": [],
3812      "loc": {
3813        "start": {
3814          "line": 90,
3815          "column": 1
3816        },
3817        "end": {
3818          "line": 93,
3819          "column": 2
3820        }
3821      }
3822    },
3823    {
3824      "type": "VariableDeclaration",
3825      "declarations": [
3826        {
3827          "type": "VariableDeclarator",
3828          "id": {
3829            "type": "Identifier",
3830            "name": "f",
3831            "typeAnnotation": {
3832              "type": "TSTypeReference",
3833              "typeName": {
3834                "type": "Identifier",
3835                "name": "F",
3836                "decorators": [],
3837                "loc": {
3838                  "start": {
3839                    "line": 95,
3840                    "column": 8
3841                  },
3842                  "end": {
3843                    "line": 95,
3844                    "column": 9
3845                  }
3846                }
3847              },
3848              "loc": {
3849                "start": {
3850                  "line": 95,
3851                  "column": 8
3852                },
3853                "end": {
3854                  "line": 95,
3855                  "column": 9
3856                }
3857              }
3858            },
3859            "decorators": [],
3860            "loc": {
3861              "start": {
3862                "line": 95,
3863                "column": 5
3864              },
3865              "end": {
3866                "line": 95,
3867                "column": 6
3868              }
3869            }
3870          },
3871          "init": {
3872            "type": "ObjectExpression",
3873            "properties": [
3874              {
3875                "type": "Property",
3876                "method": false,
3877                "shorthand": false,
3878                "computed": false,
3879                "key": {
3880                  "type": "NumberLiteral",
3881                  "value": 5,
3882                  "loc": {
3883                    "start": {
3884                      "line": 95,
3885                      "column": 14
3886                    },
3887                    "end": {
3888                      "line": 95,
3889                      "column": 15
3890                    }
3891                  }
3892                },
3893                "value": {
3894                  "type": "StringLiteral",
3895                  "value": "foo",
3896                  "loc": {
3897                    "start": {
3898                      "line": 95,
3899                      "column": 17
3900                    },
3901                    "end": {
3902                      "line": 95,
3903                      "column": 22
3904                    }
3905                  }
3906                },
3907                "kind": "init",
3908                "loc": {
3909                  "start": {
3910                    "line": 95,
3911                    "column": 14
3912                  },
3913                  "end": {
3914                    "line": 95,
3915                    "column": 22
3916                  }
3917                }
3918              },
3919              {
3920                "type": "Property",
3921                "method": false,
3922                "shorthand": false,
3923                "computed": false,
3924                "key": {
3925                  "type": "NumberLiteral",
3926                  "value": 6,
3927                  "loc": {
3928                    "start": {
3929                      "line": 95,
3930                      "column": 24
3931                    },
3932                    "end": {
3933                      "line": 95,
3934                      "column": 25
3935                    }
3936                  }
3937                },
3938                "value": {
3939                  "type": "StringLiteral",
3940                  "value": "bar",
3941                  "loc": {
3942                    "start": {
3943                      "line": 95,
3944                      "column": 27
3945                    },
3946                    "end": {
3947                      "line": 95,
3948                      "column": 32
3949                    }
3950                  }
3951                },
3952                "kind": "init",
3953                "loc": {
3954                  "start": {
3955                    "line": 95,
3956                    "column": 24
3957                  },
3958                  "end": {
3959                    "line": 95,
3960                    "column": 32
3961                  }
3962                }
3963              },
3964              {
3965                "type": "Property",
3966                "method": false,
3967                "shorthand": false,
3968                "computed": false,
3969                "key": {
3970                  "type": "Identifier",
3971                  "name": "a",
3972                  "decorators": [],
3973                  "loc": {
3974                    "start": {
3975                      "line": 95,
3976                      "column": 34
3977                    },
3978                    "end": {
3979                      "line": 95,
3980                      "column": 35
3981                    }
3982                  }
3983                },
3984                "value": {
3985                  "type": "NumberLiteral",
3986                  "value": 1,
3987                  "loc": {
3988                    "start": {
3989                      "line": 95,
3990                      "column": 37
3991                    },
3992                    "end": {
3993                      "line": 95,
3994                      "column": 38
3995                    }
3996                  }
3997                },
3998                "kind": "init",
3999                "loc": {
4000                  "start": {
4001                    "line": 95,
4002                    "column": 34
4003                  },
4004                  "end": {
4005                    "line": 95,
4006                    "column": 38
4007                  }
4008                }
4009              },
4010              {
4011                "type": "Property",
4012                "method": false,
4013                "shorthand": false,
4014                "computed": false,
4015                "key": {
4016                  "type": "Identifier",
4017                  "name": "b",
4018                  "decorators": [],
4019                  "loc": {
4020                    "start": {
4021                      "line": 95,
4022                      "column": 40
4023                    },
4024                    "end": {
4025                      "line": 95,
4026                      "column": 41
4027                    }
4028                  }
4029                },
4030                "value": {
4031                  "type": "StringLiteral",
4032                  "value": "baz",
4033                  "loc": {
4034                    "start": {
4035                      "line": 95,
4036                      "column": 43
4037                    },
4038                    "end": {
4039                      "line": 95,
4040                      "column": 48
4041                    }
4042                  }
4043                },
4044                "kind": "init",
4045                "loc": {
4046                  "start": {
4047                    "line": 95,
4048                    "column": 40
4049                  },
4050                  "end": {
4051                    "line": 95,
4052                    "column": 48
4053                  }
4054                }
4055              }
4056            ],
4057            "loc": {
4058              "start": {
4059                "line": 95,
4060                "column": 12
4061              },
4062              "end": {
4063                "line": 95,
4064                "column": 50
4065              }
4066            }
4067          },
4068          "loc": {
4069            "start": {
4070              "line": 95,
4071              "column": 5
4072            },
4073            "end": {
4074              "line": 95,
4075              "column": 50
4076            }
4077          }
4078        }
4079      ],
4080      "kind": "var",
4081      "loc": {
4082        "start": {
4083          "line": 95,
4084          "column": 1
4085        },
4086        "end": {
4087          "line": 95,
4088          "column": 51
4089        }
4090      }
4091    }
4092  ],
4093  "loc": {
4094    "start": {
4095      "line": 1,
4096      "column": 1
4097    },
4098    "end": {
4099      "line": 97,
4100      "column": 1
4101    }
4102  }
4103}
4104