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