1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "TSInterfaceDeclaration", 6 "body": { 7 "type": "TSInterfaceBody", 8 "body": [ 9 { 10 "type": "TSMethodSignature", 11 "computed": false, 12 "optional": false, 13 "key": { 14 "type": "Identifier", 15 "name": "then", 16 "loc": { 17 "start": { 18 "line": 18, 19 "column": 5 20 }, 21 "end": { 22 "line": 18, 23 "column": 9 24 } 25 } 26 }, 27 "params": [ 28 { 29 "type": "Identifier", 30 "name": "success", 31 "typeAnnotation": { 32 "type": "TSFunctionType", 33 "params": [ 34 { 35 "type": "Identifier", 36 "name": "value", 37 "typeAnnotation": { 38 "type": "TSTypeReference", 39 "typeName": { 40 "type": "Identifier", 41 "name": "T", 42 "loc": { 43 "start": { 44 "line": 18, 45 "column": 31 46 }, 47 "end": { 48 "line": 18, 49 "column": 32 50 } 51 } 52 }, 53 "loc": { 54 "start": { 55 "line": 18, 56 "column": 31 57 }, 58 "end": { 59 "line": 18, 60 "column": 32 61 } 62 } 63 }, 64 "loc": { 65 "start": { 66 "line": 18, 67 "column": 24 68 }, 69 "end": { 70 "line": 18, 71 "column": 29 72 } 73 } 74 } 75 ], 76 "returnType": { 77 "type": "TSTypeReference", 78 "typeName": { 79 "type": "Identifier", 80 "name": "U", 81 "loc": { 82 "start": { 83 "line": 18, 84 "column": 37 85 }, 86 "end": { 87 "line": 18, 88 "column": 38 89 } 90 } 91 }, 92 "loc": { 93 "start": { 94 "line": 18, 95 "column": 37 96 }, 97 "end": { 98 "line": 18, 99 "column": 38 100 } 101 } 102 }, 103 "loc": { 104 "start": { 105 "line": 18, 106 "column": 23 107 }, 108 "end": { 109 "line": 18, 110 "column": 38 111 } 112 } 113 }, 114 "optional": true, 115 "loc": { 116 "start": { 117 "line": 18, 118 "column": 13 119 }, 120 "end": { 121 "line": 18, 122 "column": 20 123 } 124 } 125 } 126 ], 127 "typeParameters": { 128 "type": "TSTypeParameterDeclaration", 129 "params": [ 130 { 131 "type": "TSTypeParameter", 132 "name": { 133 "type": "Identifier", 134 "name": "U", 135 "loc": { 136 "start": { 137 "line": 18, 138 "column": 10 139 }, 140 "end": { 141 "line": 18, 142 "column": 11 143 } 144 } 145 }, 146 "loc": { 147 "start": { 148 "line": 18, 149 "column": 10 150 }, 151 "end": { 152 "line": 18, 153 "column": 12 154 } 155 } 156 } 157 ], 158 "loc": { 159 "start": { 160 "line": 18, 161 "column": 9 162 }, 163 "end": { 164 "line": 18, 165 "column": 12 166 } 167 } 168 }, 169 "typeAnnotation": { 170 "type": "TSTypeReference", 171 "typeName": { 172 "type": "Identifier", 173 "name": "Promise", 174 "loc": { 175 "start": { 176 "line": 18, 177 "column": 41 178 }, 179 "end": { 180 "line": 18, 181 "column": 48 182 } 183 } 184 }, 185 "typeParameters": { 186 "type": "TSTypeParameterInstantiation", 187 "params": [ 188 { 189 "type": "TSTypeReference", 190 "typeName": { 191 "type": "Identifier", 192 "name": "U", 193 "loc": { 194 "start": { 195 "line": 18, 196 "column": 49 197 }, 198 "end": { 199 "line": 18, 200 "column": 50 201 } 202 } 203 }, 204 "loc": { 205 "start": { 206 "line": 18, 207 "column": 49 208 }, 209 "end": { 210 "line": 18, 211 "column": 50 212 } 213 } 214 } 215 ], 216 "loc": { 217 "start": { 218 "line": 18, 219 "column": 41 220 }, 221 "end": { 222 "line": 18, 223 "column": 51 224 } 225 } 226 }, 227 "loc": { 228 "start": { 229 "line": 18, 230 "column": 41 231 }, 232 "end": { 233 "line": 18, 234 "column": 48 235 } 236 } 237 }, 238 "loc": { 239 "start": { 240 "line": 18, 241 "column": 5 242 }, 243 "end": { 244 "line": 18, 245 "column": 52 246 } 247 } 248 }, 249 { 250 "type": "TSMethodSignature", 251 "computed": false, 252 "optional": false, 253 "key": { 254 "type": "Identifier", 255 "name": "then", 256 "loc": { 257 "start": { 258 "line": 19, 259 "column": 5 260 }, 261 "end": { 262 "line": 19, 263 "column": 9 264 } 265 } 266 }, 267 "params": [ 268 { 269 "type": "Identifier", 270 "name": "success", 271 "typeAnnotation": { 272 "type": "TSFunctionType", 273 "params": [ 274 { 275 "type": "Identifier", 276 "name": "value", 277 "typeAnnotation": { 278 "type": "TSTypeReference", 279 "typeName": { 280 "type": "Identifier", 281 "name": "T", 282 "loc": { 283 "start": { 284 "line": 19, 285 "column": 31 286 }, 287 "end": { 288 "line": 19, 289 "column": 32 290 } 291 } 292 }, 293 "loc": { 294 "start": { 295 "line": 19, 296 "column": 31 297 }, 298 "end": { 299 "line": 19, 300 "column": 32 301 } 302 } 303 }, 304 "loc": { 305 "start": { 306 "line": 19, 307 "column": 24 308 }, 309 "end": { 310 "line": 19, 311 "column": 29 312 } 313 } 314 } 315 ], 316 "returnType": { 317 "type": "TSTypeReference", 318 "typeName": { 319 "type": "Identifier", 320 "name": "Promise", 321 "loc": { 322 "start": { 323 "line": 19, 324 "column": 37 325 }, 326 "end": { 327 "line": 19, 328 "column": 44 329 } 330 } 331 }, 332 "typeParameters": { 333 "type": "TSTypeParameterInstantiation", 334 "params": [ 335 { 336 "type": "TSTypeReference", 337 "typeName": { 338 "type": "Identifier", 339 "name": "U", 340 "loc": { 341 "start": { 342 "line": 19, 343 "column": 45 344 }, 345 "end": { 346 "line": 19, 347 "column": 46 348 } 349 } 350 }, 351 "loc": { 352 "start": { 353 "line": 19, 354 "column": 45 355 }, 356 "end": { 357 "line": 19, 358 "column": 46 359 } 360 } 361 } 362 ], 363 "loc": { 364 "start": { 365 "line": 19, 366 "column": 37 367 }, 368 "end": { 369 "line": 19, 370 "column": 47 371 } 372 } 373 }, 374 "loc": { 375 "start": { 376 "line": 19, 377 "column": 37 378 }, 379 "end": { 380 "line": 19, 381 "column": 44 382 } 383 } 384 }, 385 "loc": { 386 "start": { 387 "line": 19, 388 "column": 23 389 }, 390 "end": { 391 "line": 19, 392 "column": 44 393 } 394 } 395 }, 396 "optional": true, 397 "loc": { 398 "start": { 399 "line": 19, 400 "column": 13 401 }, 402 "end": { 403 "line": 19, 404 "column": 20 405 } 406 } 407 } 408 ], 409 "typeParameters": { 410 "type": "TSTypeParameterDeclaration", 411 "params": [ 412 { 413 "type": "TSTypeParameter", 414 "name": { 415 "type": "Identifier", 416 "name": "U", 417 "loc": { 418 "start": { 419 "line": 19, 420 "column": 10 421 }, 422 "end": { 423 "line": 19, 424 "column": 11 425 } 426 } 427 }, 428 "loc": { 429 "start": { 430 "line": 19, 431 "column": 10 432 }, 433 "end": { 434 "line": 19, 435 "column": 12 436 } 437 } 438 } 439 ], 440 "loc": { 441 "start": { 442 "line": 19, 443 "column": 9 444 }, 445 "end": { 446 "line": 19, 447 "column": 12 448 } 449 } 450 }, 451 "typeAnnotation": { 452 "type": "TSTypeReference", 453 "typeName": { 454 "type": "Identifier", 455 "name": "Promise", 456 "loc": { 457 "start": { 458 "line": 19, 459 "column": 50 460 }, 461 "end": { 462 "line": 19, 463 "column": 57 464 } 465 } 466 }, 467 "typeParameters": { 468 "type": "TSTypeParameterInstantiation", 469 "params": [ 470 { 471 "type": "TSTypeReference", 472 "typeName": { 473 "type": "Identifier", 474 "name": "U", 475 "loc": { 476 "start": { 477 "line": 19, 478 "column": 58 479 }, 480 "end": { 481 "line": 19, 482 "column": 59 483 } 484 } 485 }, 486 "loc": { 487 "start": { 488 "line": 19, 489 "column": 58 490 }, 491 "end": { 492 "line": 19, 493 "column": 59 494 } 495 } 496 } 497 ], 498 "loc": { 499 "start": { 500 "line": 19, 501 "column": 50 502 }, 503 "end": { 504 "line": 19, 505 "column": 60 506 } 507 } 508 }, 509 "loc": { 510 "start": { 511 "line": 19, 512 "column": 50 513 }, 514 "end": { 515 "line": 19, 516 "column": 57 517 } 518 } 519 }, 520 "loc": { 521 "start": { 522 "line": 19, 523 "column": 5 524 }, 525 "end": { 526 "line": 19, 527 "column": 61 528 } 529 } 530 }, 531 { 532 "type": "TSPropertySignature", 533 "computed": false, 534 "optional": false, 535 "readonly": false, 536 "key": { 537 "type": "Identifier", 538 "name": "value", 539 "loc": { 540 "start": { 541 "line": 20, 542 "column": 5 543 }, 544 "end": { 545 "line": 20, 546 "column": 10 547 } 548 } 549 }, 550 "typeAnnotation": { 551 "type": "TSTypeReference", 552 "typeName": { 553 "type": "Identifier", 554 "name": "T", 555 "loc": { 556 "start": { 557 "line": 20, 558 "column": 12 559 }, 560 "end": { 561 "line": 20, 562 "column": 13 563 } 564 } 565 }, 566 "loc": { 567 "start": { 568 "line": 20, 569 "column": 12 570 }, 571 "end": { 572 "line": 20, 573 "column": 13 574 } 575 } 576 }, 577 "loc": { 578 "start": { 579 "line": 20, 580 "column": 5 581 }, 582 "end": { 583 "line": 20, 584 "column": 14 585 } 586 } 587 } 588 ], 589 "loc": { 590 "start": { 591 "line": 17, 592 "column": 22 593 }, 594 "end": { 595 "line": 21, 596 "column": 2 597 } 598 } 599 }, 600 "id": { 601 "type": "Identifier", 602 "name": "Promise", 603 "loc": { 604 "start": { 605 "line": 17, 606 "column": 11 607 }, 608 "end": { 609 "line": 17, 610 "column": 18 611 } 612 } 613 }, 614 "extends": [], 615 "typeParameters": { 616 "type": "TSTypeParameterDeclaration", 617 "params": [ 618 { 619 "type": "TSTypeParameter", 620 "name": { 621 "type": "Identifier", 622 "name": "T", 623 "loc": { 624 "start": { 625 "line": 17, 626 "column": 19 627 }, 628 "end": { 629 "line": 17, 630 "column": 20 631 } 632 } 633 }, 634 "loc": { 635 "start": { 636 "line": 17, 637 "column": 19 638 }, 639 "end": { 640 "line": 17, 641 "column": 21 642 } 643 } 644 } 645 ], 646 "loc": { 647 "start": { 648 "line": 17, 649 "column": 18 650 }, 651 "end": { 652 "line": 17, 653 "column": 21 654 } 655 } 656 }, 657 "loc": { 658 "start": { 659 "line": 17, 660 "column": 1 661 }, 662 "end": { 663 "line": 21, 664 "column": 2 665 } 666 } 667 } 668 ], 669 "loc": { 670 "start": { 671 "line": 1, 672 "column": 1 673 }, 674 "end": { 675 "line": 22, 676 "column": 1 677 } 678 } 679} 680