1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "TSTypeAliasDeclaration", 6 "id": { 7 "type": "Identifier", 8 "name": "Provider", 9 "loc": { 10 "start": { 11 "line": 17, 12 "column": 6 13 }, 14 "end": { 15 "line": 17, 16 "column": 14 17 } 18 } 19 }, 20 "typeAnnotation": { 21 "type": "TSFunctionType", 22 "params": [], 23 "returnType": { 24 "type": "TSTypeReference", 25 "typeName": { 26 "type": "Identifier", 27 "name": "T", 28 "loc": { 29 "start": { 30 "line": 17, 31 "column": 30 32 }, 33 "end": { 34 "line": 17, 35 "column": 31 36 } 37 } 38 }, 39 "loc": { 40 "start": { 41 "line": 17, 42 "column": 30 43 }, 44 "end": { 45 "line": 17, 46 "column": 31 47 } 48 } 49 }, 50 "loc": { 51 "start": { 52 "line": 17, 53 "column": 24 54 }, 55 "end": { 56 "line": 17, 57 "column": 31 58 } 59 } 60 }, 61 "typeParameters": { 62 "type": "TSTypeParameterDeclaration", 63 "params": [ 64 { 65 "type": "TSTypeParameter", 66 "name": { 67 "type": "Identifier", 68 "name": "T", 69 "loc": { 70 "start": { 71 "line": 17, 72 "column": 19 73 }, 74 "end": { 75 "line": 17, 76 "column": 20 77 } 78 } 79 }, 80 "in": false, 81 "out": true, 82 "loc": { 83 "start": { 84 "line": 17, 85 "column": 15 86 }, 87 "end": { 88 "line": 17, 89 "column": 21 90 } 91 } 92 } 93 ], 94 "loc": { 95 "start": { 96 "line": 17, 97 "column": 14 98 }, 99 "end": { 100 "line": 17, 101 "column": 21 102 } 103 } 104 }, 105 "loc": { 106 "start": { 107 "line": 17, 108 "column": 1 109 }, 110 "end": { 111 "line": 17, 112 "column": 32 113 } 114 } 115 } 116 ], 117 "loc": { 118 "start": { 119 "line": 1, 120 "column": 1 121 }, 122 "end": { 123 "line": 17, 124 "column": 32 125 } 126 } 127} 128