typescript 7.0.1-rc → 7.1.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/NOTICE.txt +5 -36
  2. package/README.md +39 -14
  3. package/dist/api/async/api.d.ts +827 -123
  4. package/dist/api/async/api.d.ts.map +1 -1
  5. package/dist/api/async/api.js +2367 -340
  6. package/dist/api/async/api.js.map +1 -1
  7. package/dist/api/async/client.d.ts +35 -2
  8. package/dist/api/async/client.d.ts.map +1 -1
  9. package/dist/api/async/client.js +317 -59
  10. package/dist/api/async/client.js.map +1 -1
  11. package/dist/api/async/types.d.ts +199 -53
  12. package/dist/api/async/types.d.ts.map +1 -1
  13. package/dist/api/compilerOptions.generated.d.ts +123 -0
  14. package/dist/api/compilerOptions.generated.d.ts.map +1 -0
  15. package/dist/api/compilerOptions.generated.js +8 -0
  16. package/dist/api/compilerOptions.generated.js.map +1 -0
  17. package/dist/api/diagnosticFormatter.d.ts +9 -0
  18. package/dist/api/diagnosticFormatter.d.ts.map +1 -0
  19. package/dist/api/diagnosticFormatter.js +169 -0
  20. package/dist/api/diagnosticFormatter.js.map +1 -0
  21. package/dist/api/fs.d.ts +68 -13
  22. package/dist/api/fs.d.ts.map +1 -1
  23. package/dist/api/fs.js +62 -101
  24. package/dist/api/fs.js.map +1 -1
  25. package/dist/api/fsCallbacks.d.ts +27 -0
  26. package/dist/api/fsCallbacks.d.ts.map +1 -0
  27. package/dist/api/fsCallbacks.js +111 -0
  28. package/dist/api/fsCallbacks.js.map +1 -0
  29. package/dist/api/node/encoder.d.ts +3 -0
  30. package/dist/api/node/encoder.d.ts.map +1 -1
  31. package/dist/api/node/encoder.generated.js +2 -2
  32. package/dist/api/node/encoder.generated.js.map +1 -1
  33. package/dist/api/node/encoder.js +21 -33
  34. package/dist/api/node/encoder.js.map +1 -1
  35. package/dist/api/node/msgpack.d.ts.map +1 -1
  36. package/dist/api/node/msgpack.js +3 -3
  37. package/dist/api/node/msgpack.js.map +1 -1
  38. package/dist/api/node/node.d.ts +43 -10
  39. package/dist/api/node/node.d.ts.map +1 -1
  40. package/dist/api/node/node.generated.d.ts +20 -2
  41. package/dist/api/node/node.generated.d.ts.map +1 -1
  42. package/dist/api/node/node.generated.js +122 -52
  43. package/dist/api/node/node.generated.js.map +1 -1
  44. package/dist/api/node/node.infrastructure.d.ts +16 -3
  45. package/dist/api/node/node.infrastructure.d.ts.map +1 -1
  46. package/dist/api/node/node.infrastructure.js +20 -40
  47. package/dist/api/node/node.infrastructure.js.map +1 -1
  48. package/dist/api/node/node.js +269 -30
  49. package/dist/api/node/node.js.map +1 -1
  50. package/dist/api/node/protocol.d.ts +5 -2
  51. package/dist/api/node/protocol.d.ts.map +1 -1
  52. package/dist/api/node/protocol.generated.js +2 -2
  53. package/dist/api/node/protocol.generated.js.map +1 -1
  54. package/dist/api/node/protocol.js +5 -2
  55. package/dist/api/node/protocol.js.map +1 -1
  56. package/dist/api/node/wtf8.d.ts +10 -0
  57. package/dist/api/node/wtf8.d.ts.map +1 -0
  58. package/dist/api/node/wtf8.js +130 -0
  59. package/dist/api/node/wtf8.js.map +1 -0
  60. package/dist/api/options.d.ts +26 -6
  61. package/dist/api/options.d.ts.map +1 -1
  62. package/dist/api/options.js +21 -0
  63. package/dist/api/options.js.map +1 -1
  64. package/dist/api/path.d.ts +49 -39
  65. package/dist/api/path.d.ts.map +1 -1
  66. package/dist/api/path.js +409 -33
  67. package/dist/api/path.js.map +1 -1
  68. package/dist/api/prepareCompilerOptions.generated.d.ts +5 -0
  69. package/dist/api/prepareCompilerOptions.generated.d.ts.map +1 -0
  70. package/dist/api/prepareCompilerOptions.generated.js +24 -0
  71. package/dist/api/prepareCompilerOptions.generated.js.map +1 -0
  72. package/dist/api/proto.d.ts +58 -164
  73. package/dist/api/proto.d.ts.map +1 -1
  74. package/dist/api/proto.generated.d.ts +1419 -0
  75. package/dist/api/proto.generated.d.ts.map +1 -0
  76. package/dist/api/proto.generated.js +21 -0
  77. package/dist/api/proto.generated.js.map +1 -0
  78. package/dist/api/proto.js +28 -0
  79. package/dist/api/proto.js.map +1 -1
  80. package/dist/api/sourceFileCache.d.ts +51 -20
  81. package/dist/api/sourceFileCache.d.ts.map +1 -1
  82. package/dist/api/sourceFileCache.js +168 -37
  83. package/dist/api/sourceFileCache.js.map +1 -1
  84. package/dist/api/sync/api.d.ts +1553 -179
  85. package/dist/api/sync/api.d.ts.map +1 -1
  86. package/dist/api/sync/api.js +5086 -758
  87. package/dist/api/sync/api.js.map +1 -1
  88. package/dist/api/sync/client.d.ts +25 -2
  89. package/dist/api/sync/client.d.ts.map +1 -1
  90. package/dist/api/sync/client.js +132 -30
  91. package/dist/api/sync/client.js.map +1 -1
  92. package/dist/api/sync/generatorSupport.d.ts +32 -0
  93. package/dist/api/sync/generatorSupport.d.ts.map +1 -0
  94. package/dist/api/sync/generatorSupport.js +338 -0
  95. package/dist/api/sync/generatorSupport.js.map +1 -0
  96. package/dist/api/sync/types.d.ts +341 -68
  97. package/dist/api/sync/types.d.ts.map +1 -1
  98. package/dist/api/syncChannel.d.ts +7 -1
  99. package/dist/api/syncChannel.d.ts.map +1 -1
  100. package/dist/api/syncChannel.js +41 -3
  101. package/dist/api/syncChannel.js.map +1 -1
  102. package/dist/api/timing.d.ts +175 -0
  103. package/dist/api/timing.d.ts.map +1 -0
  104. package/dist/api/timing.js +149 -0
  105. package/dist/api/timing.js.map +1 -0
  106. package/dist/api/timingDump.d.ts +13 -0
  107. package/dist/api/timingDump.d.ts.map +1 -0
  108. package/dist/api/timingDump.js +38 -0
  109. package/dist/api/timingDump.js.map +1 -0
  110. package/dist/api/typedPaths.d.ts +3 -0
  111. package/dist/api/typedPaths.d.ts.map +1 -0
  112. package/dist/api/typedPaths.js +2 -0
  113. package/dist/api/typedPaths.js.map +1 -0
  114. package/dist/api/userPreferences.generated.d.ts +195 -0
  115. package/dist/api/userPreferences.generated.d.ts.map +1 -0
  116. package/dist/api/userPreferences.generated.js +3 -0
  117. package/dist/api/userPreferences.generated.js.map +1 -0
  118. package/dist/ast/ast.d.ts +125 -8
  119. package/dist/ast/ast.d.ts.map +1 -1
  120. package/dist/ast/ast.generated.d.ts +48 -42
  121. package/dist/ast/ast.generated.d.ts.map +1 -1
  122. package/dist/ast/ast.generated.js +1 -1
  123. package/dist/ast/ast.generated.js.map +1 -1
  124. package/dist/ast/ast.js +1 -0
  125. package/dist/ast/ast.js.map +1 -1
  126. package/dist/ast/astnav.d.ts +3 -2
  127. package/dist/ast/astnav.d.ts.map +1 -1
  128. package/dist/ast/astnav.js +148 -3
  129. package/dist/ast/astnav.js.map +1 -1
  130. package/dist/ast/factory.generated.d.ts +12 -150
  131. package/dist/ast/factory.generated.d.ts.map +1 -1
  132. package/dist/ast/factory.generated.js +2736 -8
  133. package/dist/ast/factory.generated.js.map +1 -1
  134. package/dist/ast/index.d.ts +7 -0
  135. package/dist/ast/index.d.ts.map +1 -1
  136. package/dist/ast/index.js +7 -0
  137. package/dist/ast/index.js.map +1 -1
  138. package/dist/ast/is.d.ts +3 -12
  139. package/dist/ast/is.d.ts.map +1 -1
  140. package/dist/ast/is.generated.d.ts +890 -2
  141. package/dist/ast/is.generated.d.ts.map +1 -1
  142. package/dist/ast/is.generated.js +303 -7
  143. package/dist/ast/is.generated.js.map +1 -1
  144. package/dist/ast/is.js +231 -1
  145. package/dist/ast/is.js.map +1 -1
  146. package/dist/ast/jsdoc.d.ts +12 -0
  147. package/dist/ast/jsdoc.d.ts.map +1 -0
  148. package/dist/ast/jsdoc.js +208 -0
  149. package/dist/ast/jsdoc.js.map +1 -0
  150. package/dist/ast/modifiers.d.ts +4 -0
  151. package/dist/ast/modifiers.d.ts.map +1 -0
  152. package/dist/ast/modifiers.js +41 -0
  153. package/dist/ast/modifiers.js.map +1 -0
  154. package/dist/ast/scanner.d.ts.map +1 -1
  155. package/dist/ast/scanner.js +2 -1
  156. package/dist/ast/scanner.js.map +1 -1
  157. package/dist/ast/spanMap.d.ts +88 -0
  158. package/dist/ast/spanMap.d.ts.map +1 -0
  159. package/dist/ast/spanMap.js +417 -0
  160. package/dist/ast/spanMap.js.map +1 -0
  161. package/dist/ast/utils.d.ts +25 -0
  162. package/dist/ast/utils.d.ts.map +1 -1
  163. package/dist/ast/utils.js +291 -0
  164. package/dist/ast/utils.js.map +1 -1
  165. package/dist/ast/visitor.d.ts +2 -0
  166. package/dist/ast/visitor.d.ts.map +1 -1
  167. package/dist/ast/visitor.generated.d.ts.map +1 -1
  168. package/dist/ast/visitor.generated.js +5 -4
  169. package/dist/ast/visitor.generated.js.map +1 -1
  170. package/dist/ast/visitor.js +40 -0
  171. package/dist/ast/visitor.js.map +1 -1
  172. package/dist/enums/caseSensitivity.d.ts +2 -0
  173. package/dist/enums/caseSensitivity.d.ts.map +1 -0
  174. package/dist/enums/caseSensitivity.enum.d.ts +5 -0
  175. package/dist/enums/caseSensitivity.enum.d.ts.map +1 -0
  176. package/dist/enums/caseSensitivity.enum.js +7 -0
  177. package/dist/enums/caseSensitivity.enum.js.map +1 -0
  178. package/dist/enums/caseSensitivity.js +7 -0
  179. package/dist/enums/caseSensitivity.js.map +1 -0
  180. package/dist/enums/checkFlags.d.ts +2 -0
  181. package/dist/enums/checkFlags.d.ts.map +1 -0
  182. package/dist/enums/checkFlags.enum.d.ts +34 -0
  183. package/dist/enums/checkFlags.enum.d.ts.map +1 -0
  184. package/dist/enums/checkFlags.enum.js +36 -0
  185. package/dist/enums/checkFlags.enum.js.map +1 -0
  186. package/dist/enums/checkFlags.js +36 -0
  187. package/dist/enums/checkFlags.js.map +1 -0
  188. package/dist/enums/completionItemKind.enum.js +1 -1
  189. package/dist/enums/completionItemKind.enum.js.map +1 -1
  190. package/dist/enums/completionItemKind.js +1 -1
  191. package/dist/enums/completionItemKind.js.map +1 -1
  192. package/dist/enums/diagnosticCategory.enum.js +1 -1
  193. package/dist/enums/diagnosticCategory.enum.js.map +1 -1
  194. package/dist/enums/diagnosticCategory.js +1 -1
  195. package/dist/enums/diagnosticCategory.js.map +1 -1
  196. package/dist/enums/diagnosticDirectivePolicy.d.ts +2 -0
  197. package/dist/enums/diagnosticDirectivePolicy.d.ts.map +1 -0
  198. package/dist/enums/diagnosticDirectivePolicy.enum.d.ts +5 -0
  199. package/dist/enums/diagnosticDirectivePolicy.enum.d.ts.map +1 -0
  200. package/dist/enums/diagnosticDirectivePolicy.enum.js +7 -0
  201. package/dist/enums/diagnosticDirectivePolicy.enum.js.map +1 -0
  202. package/dist/enums/diagnosticDirectivePolicy.js +7 -0
  203. package/dist/enums/diagnosticDirectivePolicy.js.map +1 -0
  204. package/dist/enums/elementFlags.enum.js +1 -1
  205. package/dist/enums/elementFlags.enum.js.map +1 -1
  206. package/dist/enums/elementFlags.js +1 -1
  207. package/dist/enums/elementFlags.js.map +1 -1
  208. package/dist/enums/emitOnly.d.ts +2 -0
  209. package/dist/enums/emitOnly.d.ts.map +1 -0
  210. package/dist/enums/emitOnly.enum.d.ts +6 -0
  211. package/dist/enums/emitOnly.enum.d.ts.map +1 -0
  212. package/dist/enums/emitOnly.enum.js +8 -0
  213. package/dist/enums/emitOnly.enum.js.map +1 -0
  214. package/dist/enums/emitOnly.js +8 -0
  215. package/dist/enums/emitOnly.js.map +1 -0
  216. package/dist/enums/indexKind.d.ts +2 -0
  217. package/dist/enums/indexKind.d.ts.map +1 -0
  218. package/dist/enums/indexKind.enum.d.ts +5 -0
  219. package/dist/enums/indexKind.enum.d.ts.map +1 -0
  220. package/dist/enums/indexKind.enum.js +7 -0
  221. package/dist/enums/indexKind.enum.js.map +1 -0
  222. package/dist/enums/indexKind.js +7 -0
  223. package/dist/enums/indexKind.js.map +1 -0
  224. package/dist/enums/internalSymbolName.d.ts +2 -0
  225. package/dist/enums/internalSymbolName.d.ts.map +1 -0
  226. package/dist/enums/internalSymbolName.enum.d.ts +23 -0
  227. package/dist/enums/internalSymbolName.enum.d.ts.map +1 -0
  228. package/dist/enums/internalSymbolName.enum.js +25 -0
  229. package/dist/enums/internalSymbolName.enum.js.map +1 -0
  230. package/dist/enums/internalSymbolName.js +25 -0
  231. package/dist/enums/internalSymbolName.js.map +1 -0
  232. package/dist/enums/jsDeclarationKind.d.ts +2 -0
  233. package/dist/enums/jsDeclarationKind.d.ts.map +1 -0
  234. package/dist/enums/jsDeclarationKind.enum.d.ts +10 -0
  235. package/dist/enums/jsDeclarationKind.enum.d.ts.map +1 -0
  236. package/dist/enums/jsDeclarationKind.enum.js +12 -0
  237. package/dist/enums/jsDeclarationKind.enum.js.map +1 -0
  238. package/dist/enums/jsDeclarationKind.js +12 -0
  239. package/dist/enums/jsDeclarationKind.js.map +1 -0
  240. package/dist/enums/jsxEmit.d.ts +2 -0
  241. package/dist/enums/jsxEmit.d.ts.map +1 -0
  242. package/dist/enums/jsxEmit.enum.d.ts +9 -0
  243. package/dist/enums/jsxEmit.enum.d.ts.map +1 -0
  244. package/dist/enums/jsxEmit.enum.js +11 -0
  245. package/dist/enums/jsxEmit.enum.js.map +1 -0
  246. package/dist/enums/jsxEmit.js +11 -0
  247. package/dist/enums/jsxEmit.js.map +1 -0
  248. package/dist/enums/modifierFlags.enum.js +1 -1
  249. package/dist/enums/modifierFlags.enum.js.map +1 -1
  250. package/dist/enums/modifierFlags.js +1 -1
  251. package/dist/enums/modifierFlags.js.map +1 -1
  252. package/dist/enums/moduleDetectionKind.d.ts +2 -0
  253. package/dist/enums/moduleDetectionKind.d.ts.map +1 -0
  254. package/dist/enums/moduleDetectionKind.enum.d.ts +7 -0
  255. package/dist/enums/moduleDetectionKind.enum.d.ts.map +1 -0
  256. package/dist/enums/moduleDetectionKind.enum.js +9 -0
  257. package/dist/enums/moduleDetectionKind.enum.js.map +1 -0
  258. package/dist/enums/moduleDetectionKind.js +9 -0
  259. package/dist/enums/moduleDetectionKind.js.map +1 -0
  260. package/dist/enums/moduleKind.d.ts +2 -0
  261. package/dist/enums/moduleKind.d.ts.map +1 -0
  262. package/dist/enums/moduleKind.enum.d.ts +17 -0
  263. package/dist/enums/moduleKind.enum.d.ts.map +1 -0
  264. package/dist/enums/moduleKind.enum.js +19 -0
  265. package/dist/enums/moduleKind.enum.js.map +1 -0
  266. package/dist/enums/moduleKind.js +19 -0
  267. package/dist/enums/moduleKind.js.map +1 -0
  268. package/dist/enums/moduleResolutionKind.d.ts +2 -0
  269. package/dist/enums/moduleResolutionKind.d.ts.map +1 -0
  270. package/dist/enums/moduleResolutionKind.enum.d.ts +9 -0
  271. package/dist/enums/moduleResolutionKind.enum.d.ts.map +1 -0
  272. package/dist/enums/moduleResolutionKind.enum.js +11 -0
  273. package/dist/enums/moduleResolutionKind.enum.js.map +1 -0
  274. package/dist/enums/moduleResolutionKind.js +11 -0
  275. package/dist/enums/moduleResolutionKind.js.map +1 -0
  276. package/dist/enums/newLineKind.d.ts +2 -0
  277. package/dist/enums/newLineKind.d.ts.map +1 -0
  278. package/dist/enums/newLineKind.enum.d.ts +6 -0
  279. package/dist/enums/newLineKind.enum.d.ts.map +1 -0
  280. package/dist/enums/newLineKind.enum.js +8 -0
  281. package/dist/enums/newLineKind.enum.js.map +1 -0
  282. package/dist/enums/newLineKind.js +8 -0
  283. package/dist/enums/newLineKind.js.map +1 -0
  284. package/dist/enums/nodeBuilderFlags.enum.js +1 -1
  285. package/dist/enums/nodeBuilderFlags.enum.js.map +1 -1
  286. package/dist/enums/nodeBuilderFlags.js +1 -1
  287. package/dist/enums/nodeBuilderFlags.js.map +1 -1
  288. package/dist/enums/nodeFlags.enum.js +1 -1
  289. package/dist/enums/nodeFlags.enum.js.map +1 -1
  290. package/dist/enums/nodeFlags.js +1 -1
  291. package/dist/enums/nodeFlags.js.map +1 -1
  292. package/dist/enums/objectFlags.enum.d.ts +3 -2
  293. package/dist/enums/objectFlags.enum.d.ts.map +1 -1
  294. package/dist/enums/objectFlags.enum.js +4 -3
  295. package/dist/enums/objectFlags.enum.js.map +1 -1
  296. package/dist/enums/objectFlags.js +4 -3
  297. package/dist/enums/objectFlags.js.map +1 -1
  298. package/dist/enums/outerExpressionKinds.enum.d.ts +5 -1
  299. package/dist/enums/outerExpressionKinds.enum.d.ts.map +1 -1
  300. package/dist/enums/outerExpressionKinds.enum.js +5 -1
  301. package/dist/enums/outerExpressionKinds.enum.js.map +1 -1
  302. package/dist/enums/outerExpressionKinds.js +5 -1
  303. package/dist/enums/outerExpressionKinds.js.map +1 -1
  304. package/dist/enums/scriptKind.d.ts.map +1 -1
  305. package/dist/enums/scriptKind.enum.d.ts +1 -3
  306. package/dist/enums/scriptKind.enum.d.ts.map +1 -1
  307. package/dist/enums/scriptKind.enum.js +1 -2
  308. package/dist/enums/scriptKind.enum.js.map +1 -1
  309. package/dist/enums/scriptKind.js +1 -2
  310. package/dist/enums/scriptKind.js.map +1 -1
  311. package/dist/enums/scriptTarget.d.ts.map +1 -1
  312. package/dist/enums/scriptTarget.enum.d.ts +1 -0
  313. package/dist/enums/scriptTarget.enum.d.ts.map +1 -1
  314. package/dist/enums/scriptTarget.enum.js +2 -0
  315. package/dist/enums/scriptTarget.enum.js.map +1 -1
  316. package/dist/enums/scriptTarget.js +2 -0
  317. package/dist/enums/scriptTarget.js.map +1 -1
  318. package/dist/enums/signatureFlags.enum.js +1 -1
  319. package/dist/enums/signatureFlags.enum.js.map +1 -1
  320. package/dist/enums/signatureFlags.js +1 -1
  321. package/dist/enums/signatureFlags.js.map +1 -1
  322. package/dist/enums/signatureKind.enum.js +1 -1
  323. package/dist/enums/signatureKind.enum.js.map +1 -1
  324. package/dist/enums/signatureKind.js +1 -1
  325. package/dist/enums/signatureKind.js.map +1 -1
  326. package/dist/enums/spanMapFeature.d.ts +2 -0
  327. package/dist/enums/spanMapFeature.d.ts.map +1 -0
  328. package/dist/enums/spanMapFeature.enum.d.ts +25 -0
  329. package/dist/enums/spanMapFeature.enum.d.ts.map +1 -0
  330. package/dist/enums/spanMapFeature.enum.js +27 -0
  331. package/dist/enums/spanMapFeature.enum.js.map +1 -0
  332. package/dist/enums/spanMapFeature.js +27 -0
  333. package/dist/enums/spanMapFeature.js.map +1 -0
  334. package/dist/enums/spanMapFidelity.d.ts +2 -0
  335. package/dist/enums/spanMapFidelity.d.ts.map +1 -0
  336. package/dist/enums/spanMapFidelity.enum.d.ts +7 -0
  337. package/dist/enums/spanMapFidelity.enum.d.ts.map +1 -0
  338. package/dist/enums/spanMapFidelity.enum.js +9 -0
  339. package/dist/enums/spanMapFidelity.enum.js.map +1 -0
  340. package/dist/enums/spanMapFidelity.js +9 -0
  341. package/dist/enums/spanMapFidelity.js.map +1 -0
  342. package/dist/enums/spanMapKind.d.ts +2 -0
  343. package/dist/enums/spanMapKind.d.ts.map +1 -0
  344. package/dist/enums/spanMapKind.enum.d.ts +6 -0
  345. package/dist/enums/spanMapKind.enum.d.ts.map +1 -0
  346. package/dist/enums/spanMapKind.enum.js +8 -0
  347. package/dist/enums/spanMapKind.enum.js.map +1 -0
  348. package/dist/enums/spanMapKind.js +8 -0
  349. package/dist/enums/spanMapKind.js.map +1 -0
  350. package/dist/enums/symbolFlags.enum.d.ts +1 -2
  351. package/dist/enums/symbolFlags.enum.d.ts.map +1 -1
  352. package/dist/enums/symbolFlags.enum.js +2 -3
  353. package/dist/enums/symbolFlags.enum.js.map +1 -1
  354. package/dist/enums/symbolFlags.js +2 -3
  355. package/dist/enums/symbolFlags.js.map +1 -1
  356. package/dist/enums/symbolOwnerKind.d.ts +2 -0
  357. package/dist/enums/symbolOwnerKind.d.ts.map +1 -0
  358. package/dist/enums/symbolOwnerKind.enum.d.ts +5 -0
  359. package/dist/enums/symbolOwnerKind.enum.d.ts.map +1 -0
  360. package/dist/enums/symbolOwnerKind.enum.js +7 -0
  361. package/dist/enums/symbolOwnerKind.enum.js.map +1 -0
  362. package/dist/enums/symbolOwnerKind.js +7 -0
  363. package/dist/enums/symbolOwnerKind.js.map +1 -0
  364. package/dist/enums/syntaxKind.enum.d.ts +198 -197
  365. package/dist/enums/syntaxKind.enum.d.ts.map +1 -1
  366. package/dist/enums/syntaxKind.enum.js +199 -198
  367. package/dist/enums/syntaxKind.enum.js.map +1 -1
  368. package/dist/enums/syntaxKind.js +199 -198
  369. package/dist/enums/syntaxKind.js.map +1 -1
  370. package/dist/enums/tokenFlags.enum.js +1 -1
  371. package/dist/enums/tokenFlags.enum.js.map +1 -1
  372. package/dist/enums/tokenFlags.js +1 -1
  373. package/dist/enums/tokenFlags.js.map +1 -1
  374. package/dist/enums/typeFlags.enum.js +1 -1
  375. package/dist/enums/typeFlags.enum.js.map +1 -1
  376. package/dist/enums/typeFlags.js +1 -1
  377. package/dist/enums/typeFlags.js.map +1 -1
  378. package/dist/enums/typeFormatFlags.d.ts +2 -0
  379. package/dist/enums/typeFormatFlags.d.ts.map +1 -0
  380. package/dist/enums/typeFormatFlags.enum.d.ts +29 -0
  381. package/dist/enums/typeFormatFlags.enum.d.ts.map +1 -0
  382. package/dist/enums/typeFormatFlags.enum.js +31 -0
  383. package/dist/enums/typeFormatFlags.enum.js.map +1 -0
  384. package/dist/enums/typeFormatFlags.js +31 -0
  385. package/dist/enums/typeFormatFlags.js.map +1 -0
  386. package/dist/enums/typePredicateKind.enum.js +1 -1
  387. package/dist/enums/typePredicateKind.enum.js.map +1 -1
  388. package/dist/enums/typePredicateKind.js +1 -1
  389. package/dist/enums/typePredicateKind.js.map +1 -1
  390. package/dist/internal/utils.d.ts +23 -0
  391. package/dist/internal/utils.d.ts.map +1 -0
  392. package/dist/internal/utils.js +25 -0
  393. package/dist/internal/utils.js.map +1 -0
  394. package/dist/vscode/extensionApi.d.ts +101 -0
  395. package/dist/vscode/extensionApi.d.ts.map +1 -0
  396. package/dist/vscode/extensionApi.js +2 -0
  397. package/dist/vscode/extensionApi.js.map +1 -0
  398. package/dist/vscode/moduleLoader.d.ts +14 -0
  399. package/dist/vscode/moduleLoader.d.ts.map +1 -0
  400. package/dist/vscode/moduleLoader.js +36 -0
  401. package/dist/vscode/moduleLoader.js.map +1 -0
  402. package/dist/vscode/protocol.generated.d.ts +2886 -0
  403. package/dist/vscode/protocol.generated.d.ts.map +1 -0
  404. package/dist/vscode/protocol.generated.js +4 -0
  405. package/dist/vscode/protocol.generated.js.map +1 -0
  406. package/lib/getExePath.js +8 -5
  407. package/lib/tsc.js +1 -1
  408. package/lib/version.cjs +3 -0
  409. package/lib/version.d.cts +2 -0
  410. package/package.json +48 -41
  411. package/schemas/jsconfig.schema.json +2207 -0
  412. package/schemas/tsconfig.schema.json +2206 -0
  413. package/vendor/vscode-jsonrpc/lib/node/main.js +1 -1
  414. package/vendor/vscode-jsonrpc/package.json +1 -1
  415. package/dist/api/objectRegistry.d.ts +0 -40
  416. package/dist/api/objectRegistry.d.ts.map +0 -1
  417. package/dist/api/objectRegistry.js +0 -61
  418. package/dist/api/objectRegistry.js.map +0 -1
@@ -1,213 +1,1311 @@
1
- /// <reference path="../node/node.d.ts" preserve="true" />
1
+ import type { APIRequest as ProtocolRequest, APIResponse as ProtocolResponse } from "../proto.ts";
2
+ import { CheckFlags } from "#enums/checkFlags";
2
3
  import { CompletionItemKind } from "#enums/completionItemKind";
3
4
  import { DiagnosticCategory } from "#enums/diagnosticCategory";
4
5
  import { ElementFlags } from "#enums/elementFlags";
6
+ import { EmitOnly } from "#enums/emitOnly";
7
+ import { IndexKind } from "#enums/indexKind";
8
+ import { JsxEmit } from "#enums/jsxEmit";
9
+ import { ModuleKind } from "#enums/moduleKind";
10
+ import { ModuleResolutionKind } from "#enums/moduleResolutionKind";
5
11
  import { NodeBuilderFlags } from "#enums/nodeBuilderFlags";
6
12
  import { ObjectFlags } from "#enums/objectFlags";
13
+ import { ScriptKind } from "#enums/scriptKind";
7
14
  import { SignatureFlags } from "#enums/signatureFlags";
8
15
  import { SignatureKind } from "#enums/signatureKind";
9
16
  import { SymbolFlags } from "#enums/symbolFlags";
17
+ import { SymbolOwnerKind } from "#enums/symbolOwnerKind";
10
18
  import { TypeFlags } from "#enums/typeFlags";
19
+ import { TypeFormatFlags } from "#enums/typeFormatFlags";
11
20
  import { TypePredicateKind } from "#enums/typePredicateKind";
12
- import { type Expression, type Identifier, ModifierFlags, type Node, type Path, type SourceFile, type SyntaxKind, type TypeNode } from "../../ast/index.ts";
13
- import { type ObjectFactories, ObjectRegistry } from "../objectRegistry.ts";
21
+ import { type __String, type CallLikeExpression, type Declaration, type Expression, type FileReference, type Identifier, ModifierFlags, type NamedTupleMember, type Node, type ParameterDeclaration, type PathKey, type RootedDirectoryPath, type RootedFilePath, type SourceFile, type StringLiteralLikeNode, type SyntaxKind, type TypeNode } from "../../ast/index.ts";
14
22
  import type { APIOptions, LSPConnectionOptions } from "../options.ts";
15
- import type { ConfigResponse, DocumentIdentifier, DocumentPosition, LSPUpdateSnapshotParams, ProjectResponse, SignatureResponse, SymbolResponse, TypeResponse, UpdateSnapshotParams, UpdateSnapshotResponse } from "../proto.ts";
16
- import { SourceFileCache } from "../sourceFileCache.ts";
23
+ import type { BuildResponse, CleanBuildResponse, CompactSymbolReference, CompilerOptions, CompletionPreferences, ConfiguredProjectId, CreateBuildOrchestratorResponse, CreateProgramOptions as ProtocolCreateProgramOptions, CreateSnapshotParams as ProtocolCreateSnapshotParams, CreateSnapshotProgramParams as ProtocolCreateSnapshotProgramParams, CreateSnapshotResponse, CreateSourceFileOptions, Diagnostic, DocumentIdentifier, DocumentPosition, FileNotifications, InferredProjectId, LanguageServerSnapshotChanges as ProtocolLanguageServerSnapshotChanges, ModuleResolutionEntry, ModuleResolutionSpec, PackageId, ParsedCommandLine, ProjectId, ProjectReference, ProjectResponse, ProtocolSymbolResponse, RawCompilerOptions, ReadConfigFileResponse, ReconfigureSnapshotProgramParams as ProtocolReconfigureSnapshotProgramParams, ResolutionMode, ResolvedModule, ResolvedTypeReferenceDirective, ResolveModuleNameResult, SignaturePropertyMethod, SignatureResponse, SourceFileMetadata, StaticModuleResolution, SymbolPropertyMethod, SymbolResponse, SymbolsPropertyMethod, SyntheticProjectId, TextEdit, TypeAcquisition, TypePropertyMethod, TypeResponse, TypesPropertyMethod, UserPreferences } from "../proto.ts";
24
+ import { type CachedSourceFile } from "../sourceFileCache.ts";
25
+ import type { RequestTiming, TimingAccumulators, TimingInfo } from "../timing.ts";
17
26
  import { Client, type ClientSocketOptions, type ClientSpawnOptions } from "./client.ts";
18
- import type { AssertsIdentifierTypePredicate, AssertsThisTypePredicate, CompletionEntry, CompletionInfo, CompletionOptions, ConditionalType, Diagnostic, FreshableType, IdentifierTypePredicate, IndexedAccessType, IndexInfo, IndexType, InterfaceType, IntersectionType, IntrinsicType, LiteralType, ObjectType, StringMappingType, SubstitutionType, TemplateLiteralType, ThisTypePredicate, TupleType, Type, TypeParameter, TypePredicate, TypePredicateBase, TypeReference, UnionOrIntersectionType, UnionType } from "./types.ts";
19
- export { CompletionItemKind, DiagnosticCategory, ElementFlags, ModifierFlags, NodeBuilderFlags, ObjectFlags, SignatureFlags, SignatureKind, SymbolFlags, TypeFlags, TypePredicateKind };
20
- export type { APIOptions, ClientSocketOptions, ClientSpawnOptions, DocumentIdentifier, DocumentPosition, LSPConnectionOptions };
21
- export type { AssertsIdentifierTypePredicate, AssertsThisTypePredicate, CompletionEntry, CompletionInfo, CompletionOptions, ConditionalType, Diagnostic, FreshableType, IdentifierTypePredicate, IndexedAccessType, IndexInfo, IndexType, InterfaceType, IntersectionType, IntrinsicType, LiteralType, ObjectType, StringMappingType, SubstitutionType, TemplateLiteralType, ThisTypePredicate, TupleType, Type, TypeParameter, TypePredicate, TypePredicateBase, TypeReference, UnionOrIntersectionType, UnionType };
27
+ import type { AssertsIdentifierTypePredicate, AssertsThisTypePredicate, BigIntLiteralType, BooleanLiteralType, CompletionEntry, CompletionInfo, CompletionOptions, ConditionalType, EmitOutput, EmitOutputFile, EmitResult, FormatDiagnosticsHost, FreshableType, GenericType, GetImportEditsForSymbolsOptions, IdentifierTypePredicate, ImportAdderAction as APIImportAdderAction, IndexedAccessType, IndexInfo, IndexType, InterfaceType, IntersectionType, IntrinsicType, JSDocTagInfo, LiteralType, MappedType, NumberLiteralType, ObjectType, StringLiteralType, StringMappingType, StructuredType, SubstitutionType, TemplateLiteralType, ThisTypePredicate, TupleType, TupleTypeReference, Type, TypeParameter, TypePredicate, TypePredicateBase, TypeReference, UnionOrIntersectionType, UnionType } from "./types.ts";
28
+ export { formatDiagnostics, formatDiagnosticsWithColorAndContext } from "../diagnosticFormatter.ts";
22
29
  export { documentURIToFileName, fileNameToDocumentURI } from "../path.ts";
23
- export declare class API<FromLSP extends boolean = false> {
24
- private client;
25
- private sourceFileCache;
30
+ export { CheckFlags, CompletionItemKind, DiagnosticCategory, ElementFlags, EmitOnly, IndexKind, JsxEmit, ModifierFlags, ModuleKind, ModuleResolutionKind, NodeBuilderFlags, ObjectFlags, ScriptKind, SignatureFlags, SignatureKind, SymbolFlags, SymbolOwnerKind, TypeFlags, TypeFormatFlags, TypePredicateKind };
31
+ export type { APIImportAdderAction as ImportAdderAction, APIOptions, AssertsIdentifierTypePredicate, AssertsThisTypePredicate, BigIntLiteralType, BooleanLiteralType, ClientSocketOptions, ClientSpawnOptions, CompilerOptions, CompletionEntry, CompletionInfo, CompletionOptions, CompletionPreferences, ConditionalType, ConfiguredProjectId, CreateSourceFileOptions, Diagnostic, DocumentIdentifier, DocumentPosition, EmitOutput, EmitOutputFile, EmitResult, FileNotifications, FormatDiagnosticsHost, FreshableType, GenericType, GetImportEditsForSymbolsOptions, IdentifierTypePredicate, IndexedAccessType, IndexInfo, IndexType, InferredProjectId, InterfaceType, IntersectionType, IntrinsicType, JSDocTagInfo, LiteralType, LSPConnectionOptions, MappedType, ModuleResolutionEntry, ModuleResolutionSpec, NumberLiteralType, ObjectType, PackageId, ParsedCommandLine, ProjectId, ProjectReference, RawCompilerOptions, ReadConfigFileResponse, RequestTiming, ResolutionMode, ResolvedModule, ResolvedTypeReferenceDirective, ResolveModuleNameResult, SourceFileMetadata, StaticModuleResolution, StringLiteralType, StringMappingType, StructuredType, SubstitutionType, SyntheticProjectId, TemplateLiteralType, TextEdit, ThisTypePredicate, TimingAccumulators, TimingInfo, TupleType, TupleTypeReference, Type, TypeAcquisition, TypeParameter, TypePredicate, TypePredicateBase, TypeReference, UnionOrIntersectionType, UnionType, UserPreferences, };
32
+ export interface ModuleResolverOptions {
33
+ moduleResolutions?: ModuleResolutionSpec | undefined;
34
+ resolveModuleName?: ResolveModuleNameCallback | undefined;
35
+ }
36
+ export interface ResolveModuleNameCallbackOptions {
37
+ snapshot: Snapshot | InProgressSnapshot | undefined;
38
+ }
39
+ declare const inProgressSnapshotBrand: unique symbol;
40
+ export type InProgressSnapshot = number & {
41
+ readonly [inProgressSnapshotBrand]: never;
42
+ };
43
+ export type ResolveModuleNameCallback = (moduleName: string, containingDirectory: string, resolutionMode: ResolutionMode | undefined, options: ResolveModuleNameCallbackOptions) => StaticModuleResolution | undefined;
44
+ export type CreateProgramOptions = Omit<ProtocolCreateProgramOptions, "moduleResolver" | "projectReferences"> & {
45
+ moduleResolver?: ModuleResolver | undefined;
46
+ projectReferences?: readonly (Omit<ProjectReference, "path"> & {
47
+ path: string;
48
+ })[] | undefined;
49
+ };
50
+ export type CreateSnapshotProgramParams = Omit<ProtocolCreateSnapshotProgramParams, "options"> & {
51
+ options?: CreateProgramOptions | undefined;
52
+ };
53
+ export type ReconfigureSnapshotProgramParams = Omit<ProtocolReconfigureSnapshotProgramParams, "options"> & {
54
+ options?: CreateProgramOptions | undefined;
55
+ };
56
+ export type CreateSnapshotParams = Omit<ProtocolCreateSnapshotParams, "createPrograms" | "reconfigurePrograms"> & {
57
+ createPrograms?: readonly CreateSnapshotProgramParams[] | undefined;
58
+ reconfigurePrograms?: readonly ReconfigureSnapshotProgramParams[] | undefined;
59
+ };
60
+ export type LanguageServerSnapshotChanges = Omit<ProtocolLanguageServerSnapshotChanges, "createPrograms" | "reconfigurePrograms"> & {
61
+ createPrograms?: readonly CreateSnapshotProgramParams[] | undefined;
62
+ reconfigurePrograms?: readonly ReconfigureSnapshotProgramParams[] | undefined;
63
+ };
64
+ export interface TranspileOptions {
65
+ compilerOptions?: RawCompilerOptions | undefined;
66
+ fileName?: string | undefined;
67
+ reportDiagnostics?: boolean | undefined;
68
+ }
69
+ export interface TranspileOutput {
70
+ outputText: string;
71
+ diagnostics?: readonly Diagnostic[] | undefined;
72
+ sourceMapText?: string | undefined;
73
+ }
74
+ export { all, type AllAPIRequestGenerator, type AnyAPIRequestGenerator, type APIRequestGenerator, defer, type DeferredAPIRequestGenerator, type ExecutedGeneratorsResults } from "./generatorSupport.ts";
75
+ import { type AnyAPIRequestGenerator, type ExecutedGeneratorsResults } from "./generatorSupport.ts";
76
+ export declare class API<FromLSP extends boolean = false> implements FormatDiagnosticsHost {
26
77
  private toPath;
78
+ private readonly decoder;
79
+ private currentDirectory;
80
+ private caseSensitivity;
27
81
  private initialized;
82
+ private initializing;
28
83
  private activeSnapshots;
29
- private latestSnapshot;
30
- readonly internal: InternalAPI;
31
- constructor(options: APIOptions | LSPConnectionOptions);
84
+ private activeBuildOrchestrators;
85
+ private activeSourceFileLeases;
86
+ readonly printer: Printer;
87
+ readonly debug: DebugHandlers;
88
+ constructor(options?: APIOptions | LSPConnectionOptions);
89
+ /**
90
+ * Looks up a remote declaration's binder symbol. Throws for synthesized or configuration ASTs.
91
+ */
92
+ get getSymbol(): {
93
+ (declaration: Declaration): Symbol;
94
+ gen(declaration: Declaration): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
95
+ };
96
+ private get fetchDeclarationSymbol();
32
97
  /**
33
98
  * Create an API instance from an existing LSP connection's API session.
34
99
  * Use this when connecting to an API pipe provided by an LSP server via custom/initializeAPISession.
35
100
  */
36
- static fromLSPConnection(options: LSPConnectionOptions): API<true>;
37
- private ensureInitialized;
38
- parseConfigFile(file: DocumentIdentifier): ConfigResponse;
39
- updateSnapshot(params?: FromLSP extends true ? LSPUpdateSnapshotParams : UpdateSnapshotParams): Snapshot;
40
- close(): void;
101
+ static get fromLSPConnection(): {
102
+ (options: LSPConnectionOptions): API<true>;
103
+ gen(options: LSPConnectionOptions): Generator<ProtocolRequest, API<true>, ProtocolResponse["result"]>;
104
+ };
105
+ batch<T extends readonly AnyAPIRequestGenerator[]>(...requestGenerators: T): ExecutedGeneratorsResults<T>;
106
+ private get ensureInitialized();
107
+ private get initializeWorker();
108
+ getCurrentDirectory(): RootedDirectoryPath;
109
+ getCanonicalFileName(fileName: string): string;
110
+ private getCaseSensitivity;
111
+ getNewLine(): string;
112
+ get parseConfigFile(): {
113
+ (file: DocumentIdentifier): ParsedCommandLine;
114
+ gen(file: DocumentIdentifier): Generator<ProtocolRequest, ParsedCommandLine, ProtocolResponse["result"]>;
115
+ };
116
+ get parseCommandLine(): {
117
+ (commandLine: readonly string[]): ParsedCommandLine;
118
+ gen(commandLine: readonly string[]): Generator<ProtocolRequest, ParsedCommandLine, ProtocolResponse["result"]>;
119
+ };
120
+ get readConfigFile(): {
121
+ (file: DocumentIdentifier): ReadConfigFileResponse;
122
+ gen(file: DocumentIdentifier): Generator<ProtocolRequest, ReadConfigFileResponse, ProtocolResponse["result"]>;
123
+ };
124
+ get parseJsonConfigFileContent(): {
125
+ (json: any, options: {
126
+ configDirectory: string;
127
+ configFileName?: never;
128
+ } | {
129
+ configFileName: DocumentIdentifier;
130
+ configDirectory?: never;
131
+ }): ParsedCommandLine;
132
+ gen(json: any, options: {
133
+ configDirectory: string;
134
+ configFileName?: never;
135
+ } | {
136
+ configFileName: DocumentIdentifier;
137
+ configDirectory?: never;
138
+ }): Generator<ProtocolRequest, ParsedCommandLine, ProtocolResponse["result"]>;
139
+ };
140
+ /**
141
+ * Create and retain a source file independently of a program.
142
+ * Dispose the returned lease when the source file no longer needs to remain available remotely.
143
+ */
144
+ get createSourceFile(): {
145
+ (fileName: string, sourceText: string, options?: CreateSourceFileOptions): RetainedSourceFile;
146
+ gen(fileName: string, sourceText: string, options?: CreateSourceFileOptions): Generator<ProtocolRequest, RetainedSourceFile, ProtocolResponse["result"]>;
147
+ };
148
+ /**
149
+ * Read, create, and retain a source file independently of a program.
150
+ * Dispose the returned lease when the source file no longer needs to remain available remotely.
151
+ */
152
+ get createSourceFileFromFile(): {
153
+ (file: DocumentIdentifier, options?: CreateSourceFileOptions): RetainedSourceFile;
154
+ gen(file: DocumentIdentifier, options?: CreateSourceFileOptions): Generator<ProtocolRequest, RetainedSourceFile, ProtocolResponse["result"]>;
155
+ };
156
+ /**
157
+ * Retain an ordinary remote source file independently of the snapshot or lease that produced it.
158
+ */
159
+ get retainSourceFile(): {
160
+ (sourceFile: SourceFile): RetainedSourceFile;
161
+ gen(sourceFile: SourceFile): Generator<ProtocolRequest, RetainedSourceFile, ProtocolResponse["result"]>;
162
+ };
163
+ private retainSourceFileResponse;
164
+ private addSourceFileLease;
165
+ get transpileModule(): {
166
+ (input: string, options?: TranspileOptions): TranspileOutput;
167
+ gen(input: string, options?: TranspileOptions): Generator<ProtocolRequest, TranspileOutput, ProtocolResponse["result"]>;
168
+ };
169
+ get transpileModuleFromFile(): {
170
+ (file: DocumentIdentifier, options?: TranspileOptions): TranspileOutput;
171
+ gen(file: DocumentIdentifier, options?: TranspileOptions): Generator<ProtocolRequest, TranspileOutput, ProtocolResponse["result"]>;
172
+ };
173
+ get transpileDeclaration(): {
174
+ (input: string, options?: TranspileOptions): TranspileOutput;
175
+ gen(input: string, options?: TranspileOptions): Generator<ProtocolRequest, TranspileOutput, ProtocolResponse["result"]>;
176
+ };
177
+ get transpileDeclarationFromFile(): {
178
+ (file: DocumentIdentifier, options?: TranspileOptions): TranspileOutput;
179
+ gen(file: DocumentIdentifier, options?: TranspileOptions): Generator<ProtocolRequest, TranspileOutput, ProtocolResponse["result"]>;
180
+ };
181
+ get createSnapshot(): {
182
+ <const CreatePrograms extends CreateSnapshotParams["createPrograms"] = undefined, const OpenFiles extends CreateSnapshotParams["openFiles"] = undefined>(params: SnapshotOperationParams<CreateSnapshotParams, CreatePrograms, OpenFiles>): SnapshotForOperationResults<CreatePrograms, OpenFiles>;
183
+ (): Snapshot;
184
+ gen<const CreatePrograms extends CreateSnapshotParams["createPrograms"] = undefined, const OpenFiles extends CreateSnapshotParams["openFiles"] = undefined>(params: SnapshotOperationParams<CreateSnapshotParams, CreatePrograms, OpenFiles>): Generator<ProtocolRequest, SnapshotForOperationResults<CreatePrograms, OpenFiles>, ProtocolResponse["result"]>;
185
+ gen(): Generator<ProtocolRequest, Snapshot, ProtocolResponse["result"]>;
186
+ };
187
+ private get updateSnapshot();
188
+ private prepareCreateSnapshotParams;
189
+ private prepareLanguageServerSnapshotChanges;
190
+ private createSnapshotUpdater;
191
+ /**
192
+ * Returns the language server's current canonical snapshot after atomically
193
+ * adopting any supplied API-driven changes. Only available on LSP-connected APIs.
194
+ */
195
+ get getCurrentLanguageServerSnapshot(): {
196
+ <const CreatePrograms extends LanguageServerSnapshotChanges["createPrograms"] = undefined, const OpenFiles extends LanguageServerSnapshotChanges["openFiles"] = undefined>(...args: FromLSP extends true ? [changes: SnapshotOperationParams<LanguageServerSnapshotChanges, CreatePrograms, OpenFiles>, baseSnapshot?: Snapshot] : [changes: never, baseSnapshot?: never]): SnapshotForOperationResults<CreatePrograms, OpenFiles>;
197
+ (...args: FromLSP extends true ? [changes?: LanguageServerSnapshotChanges, baseSnapshot?: Snapshot] : [changes: never, baseSnapshot?: never]): Snapshot;
198
+ gen<const CreatePrograms extends LanguageServerSnapshotChanges["createPrograms"] = undefined, const OpenFiles extends LanguageServerSnapshotChanges["openFiles"] = undefined>(...args: FromLSP extends true ? [changes: SnapshotOperationParams<LanguageServerSnapshotChanges, CreatePrograms, OpenFiles>, baseSnapshot?: Snapshot] : [changes: never, baseSnapshot?: never]): Generator<ProtocolRequest, SnapshotForOperationResults<CreatePrograms, OpenFiles>, ProtocolResponse["result"]>;
199
+ gen(...args: FromLSP extends true ? [changes?: LanguageServerSnapshotChanges, baseSnapshot?: Snapshot] : [changes: never, baseSnapshot?: never]): Generator<ProtocolRequest, Snapshot, ProtocolResponse["result"]>;
200
+ };
201
+ [globalThis.Symbol.dispose](): void;
202
+ get close(): {
203
+ (): void;
204
+ gen(): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
205
+ };
206
+ get createModuleResolver(): {
207
+ (compilerOptions: RawCompilerOptions, options?: ModuleResolverOptions): ModuleResolver;
208
+ gen(compilerOptions: RawCompilerOptions, options?: ModuleResolverOptions): Generator<ProtocolRequest, ModuleResolver, ProtocolResponse["result"]>;
209
+ };
41
210
  clearSourceFileCache(): void;
211
+ get runWithTemporaryFileUpdate(): {
212
+ (baseSnapshot: Snapshot, file: DocumentIdentifier, newText: string, cb: (newSnapshot: Snapshot) => void): void;
213
+ gen(baseSnapshot: Snapshot, file: DocumentIdentifier, newText: string, cb: (newSnapshot: Snapshot) => void | Generator<ProtocolRequest, void, ProtocolResponse["result"]>): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
214
+ };
215
+ /**
216
+ * Returns a snapshot of collected timing information for requests made
217
+ * through this API instance: client-measured round-trip latency and bytes
218
+ * transferred, folded together with the server's own per-request processing
219
+ * time and an estimated transport overhead (round-trip minus server time).
220
+ *
221
+ * Fetching the snapshot issues a lightweight request to the server to
222
+ * retrieve its timing collection. Collection must be enabled via the
223
+ * `collectTiming` option or `TS_API_TIMING_DIR` environment variable; when
224
+ * it is not, the returned snapshot has `enabled: false` and zeroed totals.
225
+ */
226
+ get getTimingInfo(): {
227
+ (): TimingInfo;
228
+ gen(): Generator<ProtocolRequest, TimingInfo, ProtocolResponse["result"]>;
229
+ };
230
+ /** Clears all accumulated timing totals and recent-request history, on both the client and the server. */
231
+ get resetTimingInfo(): {
232
+ (): void;
233
+ gen(): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
234
+ };
235
+ /** Creates a program from current filesystem state. */
236
+ get createProgram(): {
237
+ (rootFiles: readonly DocumentIdentifier[], compilerOptions: RawCompilerOptions, createProgramOptions?: CreateProgramOptions): Program;
238
+ gen(rootFiles: readonly DocumentIdentifier[], compilerOptions: RawCompilerOptions, createProgramOptions?: CreateProgramOptions): Generator<ProtocolRequest, Program, ProtocolResponse["result"]>;
239
+ };
42
240
  }
43
- export declare class InternalAPI {
241
+ type EnsureInitialized = (() => void) & {
242
+ gen(): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
243
+ };
244
+ /** Returns whether a node is backed by a remote compiler response. */
245
+ export declare function isRemoteNode(node: Node): boolean;
246
+ /** Looks up a remote declaration's binder symbol through its API. Throws for non-remote declarations. */
247
+ export declare function getSymbol(declaration: Declaration): Symbol;
248
+ export declare namespace getSymbol {
249
+ function gen(declaration: Declaration): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
250
+ }
251
+ /** An independently retained source file and its disposable remote-lifetime lease. */
252
+ export declare class RetainedSourceFile {
253
+ readonly sourceFile: SourceFile;
254
+ private readonly lease;
255
+ private readonly onDispose;
256
+ private disposed;
257
+ private disposePromise;
258
+ constructor(sourceFile: SourceFile, lease: number, onDispose: () => void);
259
+ [globalThis.Symbol.dispose](): void;
260
+ get dispose(): {
261
+ (): void;
262
+ gen(): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
263
+ };
264
+ private get disposeWorker();
265
+ }
266
+ export declare class DebugHandlers {
44
267
  private client;
45
268
  private ensureInitialized;
46
- /** @internal */
47
- constructor(client: Client, ensureInitialized: () => void);
48
- startCPUProfile(dir: string): void;
49
- stopCPUProfile(): string;
50
- saveHeapProfile(dir: string): string;
269
+ constructor(client: Client, ensureInitialized: EnsureInitialized);
270
+ get startCPUProfile(): {
271
+ (dir: string): void;
272
+ gen(dir: string): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
273
+ };
274
+ get stopCPUProfile(): {
275
+ (): RootedFilePath;
276
+ gen(): Generator<ProtocolRequest, RootedFilePath, ProtocolResponse["result"]>;
277
+ };
278
+ get saveHeapProfile(): {
279
+ (dir: string): RootedFilePath;
280
+ gen(dir: string): Generator<ProtocolRequest, RootedFilePath, ProtocolResponse["result"]>;
281
+ };
282
+ }
283
+ type SnapshotUpdater = ((params: CreateSnapshotParams) => Snapshot) & {
284
+ gen(params: CreateSnapshotParams): Generator<ProtocolRequest, Snapshot, ProtocolResponse["result"]>;
285
+ };
286
+ export interface SnapshotOperation {
287
+ readonly createdPrograms?: readonly Program<SyntheticProjectId>[] | undefined;
288
+ readonly openedFiles?: readonly SnapshotOpenedFileOperation[] | undefined;
51
289
  }
290
+ export interface SnapshotOpenedFileOperation {
291
+ readonly project: Project;
292
+ }
293
+ /** Replaces every element of a tuple while preserving its length and index structure. */
294
+ type MapTupleTo<Tuple extends readonly unknown[], Result> = {
295
+ readonly [Index in keyof Tuple]: Result;
296
+ };
297
+ /**
298
+ * Keeps `Tuple` as an inference target while contextually typing each element from
299
+ * `Elements`. The mapped intersection supplies nested completions and excess-property
300
+ * checks without widening an inferred tuple to an array.
301
+ */
302
+ type ContextualizeTuple<Tuple extends readonly unknown[] | undefined, Elements extends readonly unknown[] | undefined> = Tuple & {
303
+ readonly [Index in keyof Tuple]: NonNullable<Elements>[number];
304
+ };
305
+ /** Substitutes the operation arrays with contextually typed, tuple-preserving versions. */
306
+ type SnapshotOperationParams<Params extends {
307
+ createPrograms?: readonly unknown[] | undefined;
308
+ openFiles?: readonly unknown[] | undefined;
309
+ }, CreatePrograms extends Params["createPrograms"], OpenFiles extends Params["openFiles"]> = Omit<Params, "createPrograms" | "openFiles"> & {
310
+ createPrograms?: ContextualizeTuple<CreatePrograms, Params["createPrograms"]> | undefined;
311
+ openFiles?: ContextualizeTuple<OpenFiles, Params["openFiles"]> | undefined;
312
+ };
313
+ /**
314
+ * Refines a snapshot's operation results to required tuples when the corresponding
315
+ * operation arrays were supplied, preserving their lengths for indexed access.
316
+ */
317
+ type SnapshotForOperationResults<CreatePrograms extends readonly unknown[] | undefined, OpenFiles extends readonly unknown[] | undefined> = Snapshot & {
318
+ readonly operation: SnapshotOperation & (CreatePrograms extends readonly unknown[] ? {
319
+ readonly createdPrograms: MapTupleTo<CreatePrograms, Program<SyntheticProjectId>>;
320
+ } : unknown) & (OpenFiles extends readonly unknown[] ? {
321
+ readonly openedFiles: MapTupleTo<OpenFiles, SnapshotOpenedFileOperation>;
322
+ } : unknown);
323
+ };
324
+ /** Derives the refined snapshot result type from a complete operation parameter type. */
325
+ export type SnapshotForOperation<Params extends CreateSnapshotParams> = SnapshotForOperationResults<Params extends {
326
+ createPrograms: infer CreatePrograms extends readonly unknown[];
327
+ } ? CreatePrograms : undefined, Params extends {
328
+ openFiles: infer OpenFiles extends readonly unknown[];
329
+ } ? OpenFiles : undefined>;
52
330
  export declare class Snapshot {
53
331
  readonly id: number;
332
+ readonly operation: SnapshotOperation;
54
333
  private projectMap;
55
334
  private toPath;
56
- private client;
57
- private objectRegistry;
335
+ private readonly api;
58
336
  private disposed;
337
+ private disposePromise;
59
338
  private onDispose;
60
- constructor(data: UpdateSnapshotResponse, client: Client, sourceFileCache: SourceFileCache, toPath: (fileName: string) => Path, onDispose: () => void);
339
+ private snapshotRegistry;
340
+ private projectDataMap;
341
+ private updateSnapshot;
342
+ private get client();
343
+ constructor(data: CreateSnapshotResponse, toPath: (fileName: string, basePath?: string) => PathKey, api: API<boolean>, onDispose: () => void, updateSnapshot: SnapshotUpdater, baseSnapshot?: Snapshot);
61
344
  getProjects(): readonly Project[];
62
- getProject(configFileName: string): Project | undefined;
63
- getDefaultProjectForFile(file: DocumentIdentifier): Project | undefined;
345
+ getConfiguredProject(configFileName: string): Project<ConfiguredProjectId> | undefined;
346
+ getProject<Id extends ProjectId>(projectId: Id): Project<Id> | undefined;
347
+ getProgram<Id extends ProjectId>(projectId: Id): Program<Id> | undefined;
348
+ get update(): {
349
+ <const CreatePrograms extends CreateSnapshotParams["createPrograms"] = undefined, const OpenFiles extends CreateSnapshotParams["openFiles"] = undefined>(params: SnapshotOperationParams<CreateSnapshotParams, CreatePrograms, OpenFiles>): SnapshotForOperationResults<CreatePrograms, OpenFiles>;
350
+ (params: CreateSnapshotParams): Snapshot;
351
+ gen<const CreatePrograms extends CreateSnapshotParams["createPrograms"] = undefined, const OpenFiles extends CreateSnapshotParams["openFiles"] = undefined>(params: SnapshotOperationParams<CreateSnapshotParams, CreatePrograms, OpenFiles>): Generator<ProtocolRequest, SnapshotForOperationResults<CreatePrograms, OpenFiles>, ProtocolResponse["result"]>;
352
+ gen(params: CreateSnapshotParams): Generator<ProtocolRequest, Snapshot, ProtocolResponse["result"]>;
353
+ };
354
+ /**
355
+ * Gets the default project for a given file from the configured projects and
356
+ * inferred project already loaded in the snapshot. Synthetic projects are not
357
+ * considered. Files that have been opened with `openFiles` are guaranteed to
358
+ * have a result.
359
+ */
360
+ get getDefaultProjectForFile(): {
361
+ (file: DocumentIdentifier): Project | undefined;
362
+ gen(file: DocumentIdentifier): Generator<ProtocolRequest, Project | undefined, ProtocolResponse["result"]>;
363
+ };
64
364
  [globalThis.Symbol.dispose](): void;
65
- dispose(): void;
365
+ get dispose(): {
366
+ (): void;
367
+ gen(): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
368
+ };
369
+ private get disposeWorker();
66
370
  isDisposed(): boolean;
67
371
  private ensureNotDisposed;
372
+ private requireProject;
68
373
  }
69
- declare class SnapshotObjectRegistry extends ObjectRegistry<Symbol, TypeObject, Signature> {
70
- private client;
374
+ export declare class ModuleResolver {
375
+ readonly id: number;
376
+ private readonly client;
377
+ private readonly disposeCallback;
378
+ private disposed;
379
+ constructor(id: number, client: Client, disposeCallback: (() => void) | undefined);
380
+ get resolveModuleName(): {
381
+ (moduleName: string, containingDirectory: DocumentIdentifier, resolutionMode?: ResolutionMode, options?: {
382
+ snapshot?: Snapshot | InProgressSnapshot | undefined;
383
+ }): ResolveModuleNameResult;
384
+ gen(moduleName: string, containingDirectory: DocumentIdentifier, resolutionMode?: ResolutionMode, options?: {
385
+ snapshot?: Snapshot | InProgressSnapshot | undefined;
386
+ }): Generator<ProtocolRequest, ResolveModuleNameResult, ProtocolResponse["result"]>;
387
+ };
388
+ [globalThis.Symbol.dispose](): void;
389
+ get dispose(): {
390
+ (): void;
391
+ gen(): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
392
+ };
393
+ }
394
+ declare class SnapshotObjectRegistry {
395
+ private readonly symbols;
396
+ private readonly projectRegistries;
397
+ private readonly snapshotId;
398
+ constructor(snapshotId: number);
399
+ addProjectRegistry(registry: ProjectObjectRegistry): void;
400
+ getOrCreateSymbol(data: SymbolResponse): Symbol;
401
+ getSymbol(id: number): Symbol | undefined;
402
+ clear(): void;
403
+ }
404
+ declare class ProjectObjectRegistry {
71
405
  private snapshotId;
72
- constructor(factories: ObjectFactories<Symbol, TypeObject, Signature>, client: Client, snapshotId: number);
73
- fetchType<T extends Type>(source: Symbol | Signature | Type, method: string, handle: number | undefined): T;
74
- fetchSymbol(source: Symbol | Signature | Type, method: string, handle: number | undefined): Symbol;
75
- fetchSignature(source: Symbol | Signature | Type, method: string, handle: number | undefined): Signature;
76
- fetchTypes(source: Symbol | Signature | Type, method: string, handles?: readonly number[]): readonly Type[];
77
- fetchSymbols(source: Symbol | Signature | Type, method: string, handles?: readonly number[]): readonly Symbol[];
406
+ readonly project: Project;
407
+ private snapshotRegistry;
408
+ private types;
409
+ private signatures;
410
+ private disposed;
411
+ private get client();
412
+ private get sourceFileCache();
413
+ constructor(snapshotId: number, project: Project, snapshotRegistry: SnapshotObjectRegistry);
414
+ getOrCreateSymbol(data: ProtocolSymbolResponse): Symbol;
415
+ /** Find an already-interned symbol and retain its file record for this registry. */
416
+ getCachedSymbol(reference: CompactSymbolReference): Symbol | undefined;
417
+ getOrCreateType(data: TypeResponse): TypeObject;
418
+ getType(id: number): TypeObject | undefined;
419
+ createNodeHandle<T extends Node>(handle: string): NodeHandle<T>;
420
+ getOrCreateSignature(data: SignatureResponse): Signature;
421
+ getSignature(id: number): Signature | undefined;
422
+ clear(): void;
423
+ private ensureNotDisposed;
424
+ get fetchOptionalType(): {
425
+ <T extends Type>(source: Symbol | Signature | Type, method: TypePropertyMethod, handle: number | false | undefined): T | undefined;
426
+ gen<T extends Type>(source: Symbol | Signature | Type, method: TypePropertyMethod, handle: number | false | undefined): Generator<ProtocolRequest, T | undefined, ProtocolResponse["result"]>;
427
+ };
428
+ get fetchType(): {
429
+ <T extends Type>(source: Symbol | Signature | Type, method: TypePropertyMethod, handle: number | false | undefined): T;
430
+ gen<T extends Type>(source: Symbol | Signature | Type, method: TypePropertyMethod, handle: number | false | undefined): Generator<ProtocolRequest, T, ProtocolResponse["result"]>;
431
+ };
432
+ get fetchSymbol(): {
433
+ (source: Symbol | Signature | Type, method: SymbolPropertyMethod, reference: CompactSymbolReference | undefined): Symbol;
434
+ gen(source: Symbol | Signature | Type, method: SymbolPropertyMethod, reference: CompactSymbolReference | undefined): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
435
+ };
436
+ get fetchSignature(): {
437
+ (source: Symbol | Signature | Type, method: SignaturePropertyMethod, handle: number | undefined): Signature;
438
+ gen(source: Symbol | Signature | Type, method: SignaturePropertyMethod, handle: number | undefined): Generator<ProtocolRequest, Signature, ProtocolResponse["result"]>;
439
+ };
440
+ get fetchTypes(): {
441
+ (source: Symbol | Signature | Type, method: TypesPropertyMethod, handles?: readonly number[]): readonly Type[];
442
+ gen(source: Symbol | Signature | Type, method: TypesPropertyMethod, handles?: readonly number[]): Generator<ProtocolRequest, readonly Type[], ProtocolResponse["result"]>;
443
+ };
444
+ get fetchSymbols(): {
445
+ (source: Symbol | Signature | Type, method: SymbolsPropertyMethod, references?: readonly CompactSymbolReference[]): readonly Symbol[];
446
+ gen(source: Symbol | Signature | Type, method: SymbolsPropertyMethod, references?: readonly CompactSymbolReference[]): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
447
+ };
448
+ private get fetchSymbolsFromServer();
449
+ get fetchBaseTypes(): {
450
+ (source: Type): readonly Type[];
451
+ gen(source: Type): Generator<ProtocolRequest, readonly Type[], ProtocolResponse["result"]>;
452
+ };
453
+ get fetchPropertiesOfType(): {
454
+ (source: Type): readonly Symbol[];
455
+ gen(source: Type): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
456
+ };
457
+ get fetchApparentPropertiesOfType(): {
458
+ (source: Type): readonly Symbol[];
459
+ gen(source: Type): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
460
+ };
461
+ get fetchPropertyOfType(): {
462
+ (source: Type, name: string): Symbol | undefined;
463
+ gen(source: Type, name: string): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
464
+ };
465
+ get fetchSignaturesOfType(): {
466
+ (source: Type, kind: SignatureKind): readonly Signature[];
467
+ gen(source: Type, kind: SignatureKind): Generator<ProtocolRequest, readonly Signature[], ProtocolResponse["result"]>;
468
+ };
469
+ get fetchIndexInfosOfType(): {
470
+ (source: Type): readonly IndexInfo[];
471
+ gen(source: Type): Generator<ProtocolRequest, readonly IndexInfo[], ProtocolResponse["result"]>;
472
+ };
473
+ get fetchTypeParameterAtPosition(): {
474
+ (source: Signature, pos: number): Type;
475
+ gen(source: Signature, pos: number): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
476
+ };
78
477
  }
79
- export declare class Project {
80
- readonly id: string;
81
- readonly configFileName: string;
82
- readonly compilerOptions: Record<string, unknown>;
83
- readonly rootFiles: readonly string[];
84
- readonly program: Program;
478
+ export declare class Project<Id extends ProjectId = ProjectId> {
479
+ readonly id: Id;
480
+ readonly configFileName: RootedFilePath | undefined;
481
+ readonly currentDirectory: RootedDirectoryPath;
482
+ readonly dirty: boolean;
483
+ readonly parsedCommandLine: ParsedCommandLine;
484
+ readonly program: Program<Id>;
85
485
  readonly checker: Checker;
86
- readonly emitter: Emitter;
87
- private client;
88
- constructor(data: ProjectResponse, snapshotId: number, client: Client, objectRegistry: SnapshotObjectRegistry, sourceFileCache: SourceFileCache, toPath: (fileName: string) => Path);
486
+ readonly languageService: LanguageService;
487
+ constructor(data: ProjectResponse, snapshotId: number, toPath: (fileName: string, basePath?: string) => PathKey, api: API<boolean>, snapshotRegistry: SnapshotObjectRegistry);
488
+ dispose(): void;
89
489
  }
90
- export declare class Program {
490
+ export declare class LanguageService {
91
491
  private snapshotId;
92
- private projectId;
93
- private client;
94
- private sourceFileCache;
95
- private toPath;
96
- private decoder;
97
- constructor(snapshotId: number, projectId: string, client: Client, sourceFileCache: SourceFileCache, toPath: (fileName: string) => Path);
98
- getSourceFile(file: DocumentIdentifier): SourceFile | undefined;
492
+ private project;
493
+ private objectRegistry;
494
+ private get client();
495
+ constructor(snapshotId: number, project: Project, objectRegistry: ProjectObjectRegistry);
496
+ get getImportAdderEdits(): {
497
+ (file: DocumentIdentifier, actions: readonly APIImportAdderAction[]): readonly TextEdit[];
498
+ gen(file: DocumentIdentifier, actions: readonly APIImportAdderAction[]): Generator<ProtocolRequest, readonly TextEdit[], ProtocolResponse["result"]>;
499
+ };
500
+ get getImportEditsForSymbols(): {
501
+ (file: DocumentIdentifier, symbols: readonly Symbol[], options?: GetImportEditsForSymbolsOptions): readonly TextEdit[];
502
+ gen(file: DocumentIdentifier, symbols: readonly Symbol[], options?: GetImportEditsForSymbolsOptions): Generator<ProtocolRequest, readonly TextEdit[], ProtocolResponse["result"]>;
503
+ };
504
+ get getReferencedSymbolsForNode(): {
505
+ (node: Node, position: number): ReferencedSymbolEntry[];
506
+ gen(node: Node, position: number): Generator<ProtocolRequest, ReferencedSymbolEntry[], ProtocolResponse["result"]>;
507
+ };
508
+ get getSignatureUsage(): {
509
+ (signatureDecl: Node): SignatureUsage[];
510
+ gen(signatureDecl: Node): Generator<ProtocolRequest, SignatureUsage[], ProtocolResponse["result"]>;
511
+ };
512
+ get getCompletionsAtPosition(): {
513
+ (document: string, position: number, options?: CompletionOptions): CompletionInfo | undefined;
514
+ gen(document: string, position: number, options?: CompletionOptions): Generator<ProtocolRequest, CompletionInfo | undefined, ProtocolResponse["result"]>;
515
+ };
516
+ /**
517
+ * Format a synthesized node with the correct indentation for insertion at a
518
+ * specific position in an existing source file.
519
+ *
520
+ * @param node The synthesized AST node to format.
521
+ * @param file The target file where the node will be inserted.
522
+ * @param position The UTF-16 code-unit offset in the target file for insertion.
523
+ * @returns The formatted text of the node, indented for the insertion position.
524
+ */
525
+ get formatNodeForInsertion(): {
526
+ (node: Node, file: DocumentIdentifier, position: number): string;
527
+ gen(node: Node, file: DocumentIdentifier, position: number): Generator<ProtocolRequest, string, ProtocolResponse["result"]>;
528
+ };
529
+ }
530
+ export declare class Program<Id extends ProjectId = ProjectId> implements FormatDiagnosticsHost {
531
+ readonly id: Id;
532
+ private readonly project;
533
+ private readonly toPath;
534
+ private readonly decoder;
535
+ private readonly sourceFileMetadataCache;
536
+ private ownedSnapshot;
537
+ private disposePromise;
538
+ private get client();
539
+ private get sourceFileCache();
540
+ constructor(snapshotId: number, project: Project<Id>, toPath: (fileName: string, basePath?: string) => PathKey);
541
+ getCurrentDirectory(): RootedDirectoryPath;
542
+ getCanonicalFileName(fileName: string): string;
543
+ getNewLine(): string;
544
+ [globalThis.Symbol.dispose](): void;
545
+ get dispose(): {
546
+ (): void;
547
+ gen(): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
548
+ };
549
+ private get disposeWorker();
550
+ getCompilerOptions(): CompilerOptions;
551
+ get getSourceFile(): {
552
+ (file: DocumentIdentifier): SourceFile | undefined;
553
+ gen(file: DocumentIdentifier): Generator<ProtocolRequest, SourceFile | undefined, ProtocolResponse["result"]>;
554
+ };
555
+ /**
556
+ * Returns the source file for an already-canonical path.
557
+ */
558
+ get getSourceFileByPath(): {
559
+ (path: PathKey): SourceFile | undefined;
560
+ gen(path: PathKey): Generator<ProtocolRequest, SourceFile | undefined, ProtocolResponse["result"]>;
561
+ };
562
+ private get getSourceFileWorker();
563
+ get getResolvedModule(): {
564
+ (file: DocumentIdentifier, moduleName: string, mode: ModuleKind): ResolvedModule | undefined;
565
+ gen(file: DocumentIdentifier, moduleName: string, mode: ModuleKind): Generator<ProtocolRequest, ResolvedModule | undefined, ProtocolResponse["result"]>;
566
+ };
567
+ get getModeForUsageLocation(): {
568
+ (file: DocumentIdentifier, usage: StringLiteralLikeNode): ModuleKind;
569
+ gen(file: DocumentIdentifier, usage: StringLiteralLikeNode): Generator<ProtocolRequest, ModuleKind, ProtocolResponse["result"]>;
570
+ };
571
+ get getModeForResolutionAtIndex(): {
572
+ (file: DocumentIdentifier, index: number): ModuleKind;
573
+ gen(file: DocumentIdentifier, index: number): Generator<ProtocolRequest, ModuleKind, ProtocolResponse["result"]>;
574
+ };
575
+ get getResolvedModuleFromModuleSpecifier(): {
576
+ (moduleSpecifier: StringLiteralLikeNode, sourceFile?: DocumentIdentifier): ResolvedModule | undefined;
577
+ gen(moduleSpecifier: StringLiteralLikeNode, sourceFile?: DocumentIdentifier): Generator<ProtocolRequest, ResolvedModule | undefined, ProtocolResponse["result"]>;
578
+ };
579
+ get getResolvedTypeReferenceDirective(): {
580
+ (file: DocumentIdentifier, typeDirectiveName: string, mode: ModuleKind): ResolvedTypeReferenceDirective | undefined;
581
+ gen(file: DocumentIdentifier, typeDirectiveName: string, mode: ModuleKind): Generator<ProtocolRequest, ResolvedTypeReferenceDirective | undefined, ProtocolResponse["result"]>;
582
+ };
583
+ get getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(): {
584
+ (typeReferenceDirective: FileReference, sourceFile: DocumentIdentifier): ResolvedTypeReferenceDirective | undefined;
585
+ gen(typeReferenceDirective: FileReference, sourceFile: DocumentIdentifier): Generator<ProtocolRequest, ResolvedTypeReferenceDirective | undefined, ProtocolResponse["result"]>;
586
+ };
587
+ get getSourceFileNames(): {
588
+ (): readonly RootedFilePath[];
589
+ gen(): Generator<ProtocolRequest, readonly RootedFilePath[], ProtocolResponse["result"]>;
590
+ };
591
+ /**
592
+ * Returns program-stored metadata for the given source file, or `undefined` if the file
593
+ * is not part of the program. Metadata is fetched lazily per file and cached on this
594
+ * `Program` instance.
595
+ */
596
+ get getSourceFileMetadata(): {
597
+ (file: DocumentIdentifier): SourceFileMetadata | undefined;
598
+ gen(file: DocumentIdentifier): Generator<ProtocolRequest, SourceFileMetadata | undefined, ProtocolResponse["result"]>;
599
+ };
600
+ /**
601
+ * Returns program-stored metadata for the source file at the given path, or `undefined`
602
+ * if the file is not part of the program. Like {@link getSourceFileMetadata}, but skips
603
+ * the file name to path conversion. Metadata is fetched lazily per file and cached on
604
+ * this `Program` instance.
605
+ */
606
+ get getSourceFileMetadataByPath(): {
607
+ (path: PathKey): SourceFileMetadata | undefined;
608
+ gen(path: PathKey): Generator<ProtocolRequest, SourceFileMetadata | undefined, ProtocolResponse["result"]>;
609
+ };
610
+ private get fetchSourceFileMetadata();
611
+ private pathKeyForFileName;
612
+ /**
613
+ * Returns whether the given source file was loaded as part of an external library
614
+ * (e.g. a dependency resolved from `node_modules`). The underlying program metadata is
615
+ * fetched lazily per file and cached on this `Program` instance.
616
+ */
617
+ get isSourceFileFromExternalLibrary(): {
618
+ (file: SourceFile): boolean;
619
+ gen(file: SourceFile): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
620
+ };
99
621
  /**
100
- * Get syntactic (parse) diagnostics for a specific file or all files.
101
- * @param file - Optional file to get diagnostics for. If omitted, returns diagnostics for all files.
622
+ * Returns whether the given source file is a default library file (e.g. `lib.d.ts`).
623
+ * The underlying program metadata is fetched lazily per file and cached on this
624
+ * `Program` instance.
102
625
  */
103
- getSyntacticDiagnostics(file?: DocumentIdentifier): readonly Diagnostic[];
626
+ get isSourceFileDefaultLibrary(): {
627
+ (file: SourceFile): boolean;
628
+ gen(file: SourceFile): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
629
+ };
104
630
  /**
105
- * Get semantic (type-check) diagnostics for a specific file or all files.
106
- * @param file - Optional file to get diagnostics for. If omitted, returns diagnostics for all files.
631
+ * Get all config source file names associated with this program's project config.
632
+ * Includes the root config file and any extended config files.
107
633
  */
108
- getSemanticDiagnostics(file?: DocumentIdentifier): readonly Diagnostic[];
634
+ get getConfigFileNames(): {
635
+ (): readonly RootedFilePath[];
636
+ gen(): Generator<ProtocolRequest, readonly RootedFilePath[], ProtocolResponse["result"]>;
637
+ };
109
638
  /**
110
- * Get suggestion diagnostics for a specific file or all files.
111
- * @param file - Optional file to get diagnostics for. If omitted, returns diagnostics for all files.
639
+ * Get a config source file by file name/URI.
640
+ * This can return the project's root tsconfig file or one of its extended config files.
112
641
  */
113
- getSuggestionDiagnostics(file?: DocumentIdentifier): readonly Diagnostic[];
642
+ get getConfigSourceFile(): {
643
+ (file: DocumentIdentifier): SourceFile | undefined;
644
+ gen(file: DocumentIdentifier): Generator<ProtocolRequest, SourceFile | undefined, ProtocolResponse["result"]>;
645
+ };
114
646
  /**
115
- * Get declaration emit diagnostics for a specific file or all files.
116
- * @param file - Optional file to get diagnostics for. If omitted, returns diagnostics for all files.
647
+ * Get syntactic (parse) diagnostics for specific files or all files.
648
+ * @param file - Optional file(s) to get diagnostics for. If omitted, returns diagnostics for all files.
117
649
  */
118
- getDeclarationDiagnostics(file?: DocumentIdentifier): readonly Diagnostic[];
650
+ get getSyntacticDiagnostics(): {
651
+ (file?: DocumentIdentifier | readonly DocumentIdentifier[]): readonly Diagnostic[];
652
+ gen(file?: DocumentIdentifier | readonly DocumentIdentifier[]): Generator<ProtocolRequest, readonly Diagnostic[], ProtocolResponse["result"]>;
653
+ };
654
+ /**
655
+ * Get binder diagnostics for specific files or all files.
656
+ * @param file - Optional file(s) to get diagnostics for. If omitted, returns diagnostics for all files.
657
+ */
658
+ get getBindDiagnostics(): {
659
+ (file?: DocumentIdentifier | readonly DocumentIdentifier[]): readonly Diagnostic[];
660
+ gen(file?: DocumentIdentifier | readonly DocumentIdentifier[]): Generator<ProtocolRequest, readonly Diagnostic[], ProtocolResponse["result"]>;
661
+ };
662
+ /**
663
+ * Get semantic (type-check) diagnostics for specific files or all files.
664
+ * @param file - Optional file(s) to get diagnostics for. If omitted, returns diagnostics for all files.
665
+ */
666
+ get getSemanticDiagnostics(): {
667
+ (file?: DocumentIdentifier | readonly DocumentIdentifier[]): readonly Diagnostic[];
668
+ gen(file?: DocumentIdentifier | readonly DocumentIdentifier[]): Generator<ProtocolRequest, readonly Diagnostic[], ProtocolResponse["result"]>;
669
+ };
670
+ /**
671
+ * Get suggestion diagnostics for specific files or all files.
672
+ * @param file - Optional file(s) to get diagnostics for. If omitted, returns diagnostics for all files.
673
+ */
674
+ get getSuggestionDiagnostics(): {
675
+ (file?: DocumentIdentifier | readonly DocumentIdentifier[]): readonly Diagnostic[];
676
+ gen(file?: DocumentIdentifier | readonly DocumentIdentifier[]): Generator<ProtocolRequest, readonly Diagnostic[], ProtocolResponse["result"]>;
677
+ };
678
+ /**
679
+ * Get declaration emit diagnostics for specific files or all files.
680
+ * @param file - Optional file(s) to get diagnostics for. If omitted, returns diagnostics for all files.
681
+ */
682
+ get getDeclarationDiagnostics(): {
683
+ (file?: DocumentIdentifier | readonly DocumentIdentifier[]): readonly Diagnostic[];
684
+ gen(file?: DocumentIdentifier | readonly DocumentIdentifier[]): Generator<ProtocolRequest, readonly Diagnostic[], ProtocolResponse["result"]>;
685
+ };
686
+ /**
687
+ * Get program-wide diagnostics for the project, including compiler options diagnostics.
688
+ */
689
+ get getProgramDiagnostics(): {
690
+ (): readonly Diagnostic[];
691
+ gen(): Generator<ProtocolRequest, readonly Diagnostic[], ProtocolResponse["result"]>;
692
+ };
693
+ /**
694
+ * Get global (non-file-specific) semantic diagnostics for the project.
695
+ */
696
+ get getGlobalDiagnostics(): {
697
+ (): readonly Diagnostic[];
698
+ gen(): Generator<ProtocolRequest, readonly Diagnostic[], ProtocolResponse["result"]>;
699
+ };
119
700
  /**
120
701
  * Get config file parsing diagnostics for the project.
121
702
  */
122
- getConfigFileParsingDiagnostics(): readonly Diagnostic[];
703
+ get getConfigFileParsingDiagnostics(): {
704
+ (): readonly Diagnostic[];
705
+ gen(): Generator<ProtocolRequest, readonly Diagnostic[], ProtocolResponse["result"]>;
706
+ };
707
+ /**
708
+ * Emits files to the configured filesystem. Layer and host filesystems are
709
+ * written through; full filesystems remain immutable and return emitted
710
+ * files in {@link EmitResult.fileSystem}.
711
+ */
712
+ get emit(): {
713
+ (emitOnly?: EmitOnly): EmitResult;
714
+ gen(emitOnly?: EmitOnly): Generator<ProtocolRequest, EmitResult, ProtocolResponse["result"]>;
715
+ };
716
+ /**
717
+ * Emits files and returns their contents without writing to the filesystem.
718
+ */
719
+ get emitToString(): {
720
+ (emitOnly?: EmitOnly): EmitOutput;
721
+ gen(emitOnly?: EmitOnly): Generator<ProtocolRequest, EmitOutput, ProtocolResponse["result"]>;
722
+ };
723
+ /**
724
+ * Gets JavaScript output for selected files regardless of project `noEmit`, `emitDeclarationOnly`, and `noEmitOnError` settings.
725
+ */
726
+ get getJavaScriptEmit(): {
727
+ (files: readonly DocumentIdentifier[]): EmitOutput;
728
+ gen(files: readonly DocumentIdentifier[]): Generator<ProtocolRequest, EmitOutput, ProtocolResponse["result"]>;
729
+ };
730
+ /**
731
+ * Gets declaration output for selected files regardless of project `noEmit`, `declaration`, `emitDeclarationOnly`, and `noEmitOnError` settings.
732
+ */
733
+ get getDeclarationEmit(): {
734
+ (files: readonly DocumentIdentifier[]): EmitOutput;
735
+ gen(files: readonly DocumentIdentifier[]): Generator<ProtocolRequest, EmitOutput, ProtocolResponse["result"]>;
736
+ };
737
+ getProject(): Project<Id>;
738
+ }
739
+ export interface BuildOrchestratorOptions {
740
+ cwd?: string | undefined;
741
+ dry?: boolean;
742
+ force?: boolean;
743
+ verbose?: boolean;
744
+ stopBuildOnErrors?: boolean;
745
+ overrideCompilerOptions?: OverrideCompilerOptions;
746
+ }
747
+ export interface OverrideCompilerOptions {
748
+ incremental?: boolean;
749
+ assumeChangesOnlyAffectDirectDependencies?: boolean;
750
+ declaration?: boolean;
751
+ declarationMap?: boolean;
752
+ emitDeclarationOnly?: boolean;
753
+ sourceMap?: boolean;
754
+ inlineSourceMap?: boolean;
755
+ traceResolution?: boolean;
756
+ }
757
+ export declare class BuildOrchestrator {
758
+ private client;
759
+ private id;
760
+ private disposed;
761
+ private disposePromise;
762
+ private onDispose;
763
+ constructor(client: Client, orchestratorResponse: CreateBuildOrchestratorResponse, onDispose: () => void);
764
+ [globalThis.Symbol.dispose](): void;
765
+ get dispose(): {
766
+ (): void;
767
+ gen(): Generator<ProtocolRequest, void, ProtocolResponse["result"]>;
768
+ };
769
+ private get disposeWorker();
770
+ get build(): {
771
+ (project?: string): BuildResponse;
772
+ gen(project?: string): Generator<ProtocolRequest, BuildResponse, ProtocolResponse["result"]>;
773
+ };
774
+ get buildReferences(): {
775
+ (project: string): BuildResponse;
776
+ gen(project: string): Generator<ProtocolRequest, BuildResponse, ProtocolResponse["result"]>;
777
+ };
778
+ get clean(): {
779
+ (project?: string): CleanBuildResponse;
780
+ gen(project?: string): Generator<ProtocolRequest, CleanBuildResponse, ProtocolResponse["result"]>;
781
+ };
782
+ get cleanReferences(): {
783
+ (project?: string): CleanBuildResponse;
784
+ gen(project?: string): Generator<ProtocolRequest, CleanBuildResponse, ProtocolResponse["result"]>;
785
+ };
786
+ isDisposed(): boolean;
787
+ private ensureNotDisposed;
123
788
  }
124
789
  export declare class Checker {
125
790
  private snapshotId;
126
- private projectId;
127
- private client;
791
+ private project;
128
792
  private objectRegistry;
129
- constructor(snapshotId: number, projectId: string, client: Client, objectRegistry: SnapshotObjectRegistry);
130
- getSymbolAtLocation(node: Node): Symbol | undefined;
131
- getSymbolAtLocation(nodes: readonly Node[]): (Symbol | undefined)[];
132
- getSymbolAtPosition(file: DocumentIdentifier, position: number): Symbol | undefined;
133
- getSymbolAtPosition(file: DocumentIdentifier, positions: readonly number[]): (Symbol | undefined)[];
134
- getTypeOfSymbol(symbol: Symbol): Type | undefined;
135
- getTypeOfSymbol(symbols: readonly Symbol[]): (Type | undefined)[];
136
- getDeclaredTypeOfSymbol(symbol: Symbol): Type | undefined;
137
- getReferencesToSymbolInFile(file: DocumentIdentifier, symbol: Symbol): NodeHandle[];
138
- getReferencedSymbolsForNode(node: Node, position: number): ReferencedSymbolEntry[];
139
- getSignatureUsage(signatureDecl: Node): SignatureUsage[];
140
- getCompletionsAtPosition(document: string, position: number, options?: CompletionOptions): CompletionInfo | undefined;
141
- getTypeAtLocation(node: Node): Type | undefined;
142
- getTypeAtLocation(nodes: readonly Node[]): (Type | undefined)[];
143
- getSignaturesOfType(type: Type, kind: SignatureKind): readonly Signature[];
144
- getResolvedSignature(node: Node): Signature | undefined;
145
- getTypeAtPosition(file: DocumentIdentifier, position: number): Type | undefined;
146
- getTypeAtPosition(file: DocumentIdentifier, positions: readonly number[]): (Type | undefined)[];
147
- resolveName(name: string, meaning: SymbolFlags, location?: Node | DocumentPosition, excludeGlobals?: boolean): Symbol | undefined;
148
- getResolvedSymbol(node: Identifier): Symbol | undefined;
149
- getContextualType(node: Expression): Type | undefined;
150
- getBaseTypeOfLiteralType(type: Type): Type | undefined;
151
- getNonNullableType(type: Type): Type | undefined;
152
- getTypeFromTypeNode(node: TypeNode): Type | undefined;
153
- getWidenedType(type: Type): Type | undefined;
154
- getParameterType(signature: Signature, index: number): Type | undefined;
155
- isArrayLikeType(type: Type): boolean;
156
- isTypeAssignableTo(source: Type, target: Type): boolean;
157
- getShorthandAssignmentValueSymbol(node: Node): Symbol | undefined;
158
- getTypeOfSymbolAtLocation(symbol: Symbol, location: Node): Type | undefined;
159
- private getIntrinsicType;
160
- getAnyType(): Type;
161
- getStringType(): Type;
162
- getNumberType(): Type;
163
- getBooleanType(): Type;
164
- getVoidType(): Type;
165
- getUndefinedType(): Type;
166
- getNullType(): Type;
167
- getNeverType(): Type;
168
- getUnknownType(): Type;
169
- getBigIntType(): Type;
170
- getESSymbolType(): Type;
171
- typeToTypeNode(type: Type, enclosingDeclaration?: Node, flags?: number): TypeNode | undefined;
172
- signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): Node | undefined;
173
- typeToString(type: Type, enclosingDeclaration?: Node, flags?: number): string;
174
- isContextSensitive(node: Node): boolean;
175
- getReturnTypeOfSignature(signature: Signature): Type | undefined;
176
- getRestTypeOfSignature(signature: Signature): Type | undefined;
177
- getTypePredicateOfSignature(signature: Signature): TypePredicate | undefined;
178
- getBaseTypes(type: Type): readonly Type[];
179
- getPropertiesOfType(type: Type): readonly Symbol[];
180
- getIndexInfosOfType(type: Type): readonly IndexInfo[];
181
- getConstraintOfTypeParameter(type: Type): Type | undefined;
182
- getTypeArguments(type: Type): readonly Type[];
793
+ private wellKnownSymbols;
794
+ private wellKnownSignatures;
795
+ private get client();
796
+ constructor(snapshotId: number, project: Project, objectRegistry: ProjectObjectRegistry);
797
+ dispose(): void;
798
+ /** Get the merged symbol, or the original symbol if it has not been merged. */
799
+ get getMergedSymbol(): {
800
+ (symbol: Symbol): Symbol;
801
+ gen(symbol: Symbol): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
802
+ };
803
+ /**
804
+ * Get a node's merged symbol. For a declaration, prefer
805
+ * {@link Checker.getSymbolOfDeclaration} for a non-nullable result.
806
+ */
807
+ get getSymbolOfNode(): {
808
+ (node: Node): Symbol | undefined;
809
+ gen(node: Node): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
810
+ };
811
+ /** Get a declaration's merged symbol. */
812
+ get getSymbolOfDeclaration(): {
813
+ (node: Declaration): Symbol;
814
+ gen(node: Declaration): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
815
+ };
816
+ /** Get a symbol's merged parent, if any. */
817
+ get getParentOfSymbol(): {
818
+ (symbol: Symbol): Symbol | undefined;
819
+ gen(symbol: Symbol): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
820
+ };
821
+ get getSymbolAtLocation(): {
822
+ (node: Node): Symbol | undefined;
823
+ (nodes: readonly Node[]): (Symbol | undefined)[];
824
+ gen(node: Node): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
825
+ gen(nodes: readonly Node[]): Generator<ProtocolRequest, (Symbol | undefined)[], ProtocolResponse["result"]>;
826
+ };
827
+ get getSymbolAtPosition(): {
828
+ (file: DocumentIdentifier, position: number): Symbol | undefined;
829
+ (file: DocumentIdentifier, positions: readonly number[]): (Symbol | undefined)[];
830
+ gen(file: DocumentIdentifier, position: number): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
831
+ gen(file: DocumentIdentifier, positions: readonly number[]): Generator<ProtocolRequest, (Symbol | undefined)[], ProtocolResponse["result"]>;
832
+ };
833
+ get getSymbolOfSourceFile(): {
834
+ (file: DocumentIdentifier): Symbol | undefined;
835
+ (files: readonly DocumentIdentifier[]): (Symbol | undefined)[];
836
+ gen(file: DocumentIdentifier): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
837
+ gen(files: readonly DocumentIdentifier[]): Generator<ProtocolRequest, (Symbol | undefined)[], ProtocolResponse["result"]>;
838
+ };
839
+ /**
840
+ * Get the type of a symbol. Always returns a type; for symbols whose type
841
+ * cannot be determined the checker yields the error type (use
842
+ * {@link Type.isErrorType} to detect it).
843
+ */
844
+ get getTypeOfSymbol(): {
845
+ (symbol: Symbol): Type;
846
+ (symbols: readonly Symbol[]): Type[];
847
+ gen(symbol: Symbol): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
848
+ gen(symbols: readonly Symbol[]): Generator<ProtocolRequest, Type[], ProtocolResponse["result"]>;
849
+ };
850
+ /**
851
+ * Get the declared type of a symbol. Always returns a type; for symbols whose
852
+ * declared type cannot be determined the checker yields the error type (use
853
+ * {@link Type.isErrorType} to detect it).
854
+ */
855
+ get getDeclaredTypeOfSymbol(): {
856
+ (symbol: Symbol): Type;
857
+ gen(symbol: Symbol): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
858
+ };
859
+ /**
860
+ * Get the type of a symbol, excluding the missing type when
861
+ * `exactOptionalPropertyTypes: true` is set; for symbols whose
862
+ * type cannot be determined the checker yields the error type
863
+ * (use {@link Type.isErrorType} to detect it).
864
+ */
865
+ get getNonMissingTypeOfSymbol(): {
866
+ (symbol: Symbol): Type;
867
+ gen(symbol: Symbol): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
868
+ };
869
+ get getReferencesToSymbolInFile(): {
870
+ (file: DocumentIdentifier, symbol: Symbol): NodeHandle[];
871
+ gen(file: DocumentIdentifier, symbol: Symbol): Generator<ProtocolRequest, NodeHandle[], ProtocolResponse["result"]>;
872
+ };
873
+ /**
874
+ * Get the type at a node location. Always returns a type; for nodes whose
875
+ * type cannot be determined the checker yields the error type (use
876
+ * {@link Type.isErrorType} to detect it).
877
+ */
878
+ get getTypeAtLocation(): {
879
+ (node: Node): Type;
880
+ (nodes: readonly Node[]): Type[];
881
+ gen(node: Node): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
882
+ gen(nodes: readonly Node[]): Generator<ProtocolRequest, Type[], ProtocolResponse["result"]>;
883
+ };
884
+ get getSignaturesOfType(): {
885
+ (type: Type, kind: SignatureKind): readonly Signature[];
886
+ gen(type: Type, kind: SignatureKind): Generator<ProtocolRequest, readonly Signature[], ProtocolResponse["result"]>;
887
+ };
888
+ /**
889
+ * Get the resolved signature of a call-like expression. Always returns a
890
+ * signature; when a call cannot be resolved the checker yields the unknown
891
+ * signature (use {@link Checker.isUnknownSignature} to detect it).
892
+ */
893
+ get getResolvedSignature(): {
894
+ (node: Node): Signature;
895
+ gen(node: Node): Generator<ProtocolRequest, Signature, ProtocolResponse["result"]>;
896
+ };
897
+ get getTypeAtPosition(): {
898
+ (file: DocumentIdentifier, position: number): Type | undefined;
899
+ (file: DocumentIdentifier, positions: readonly number[]): (Type | undefined)[];
900
+ gen(file: DocumentIdentifier, position: number): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
901
+ gen(file: DocumentIdentifier, positions: readonly number[]): Generator<ProtocolRequest, (Type | undefined)[], ProtocolResponse["result"]>;
902
+ };
903
+ get resolveName(): {
904
+ (name: string, meaning: SymbolFlags, location?: Node | DocumentPosition, excludeGlobals?: boolean): Symbol | undefined;
905
+ gen(name: string, meaning: SymbolFlags, location?: Node | DocumentPosition, excludeGlobals?: boolean): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
906
+ };
907
+ /**
908
+ * Returns all symbols with the given meaning that are visible at `location`.
909
+ */
910
+ get getSymbolsInScope(): {
911
+ (location: Node | DocumentPosition, meaning: SymbolFlags): readonly Symbol[];
912
+ gen(location: Node | DocumentPosition, meaning: SymbolFlags): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
913
+ };
914
+ get getResolvedSymbol(): {
915
+ (node: Identifier): Symbol | undefined;
916
+ gen(node: Identifier): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
917
+ };
918
+ get getContextualType(): {
919
+ (node: Expression): Type | undefined;
920
+ gen(node: Expression): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
921
+ };
922
+ get getContextualTypeForArgumentAtIndex(): {
923
+ (node: CallLikeExpression, argIndex: number): Type | undefined;
924
+ gen(node: CallLikeExpression, argIndex: number): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
925
+ };
926
+ get getAwaitedType(): {
927
+ (type: Type): Type | undefined;
928
+ gen(type: Type): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
929
+ };
930
+ /** Get the base type of a literal type (e.g. `number` for `42`). Always returns a type. */
931
+ get getBaseTypeOfLiteralType(): {
932
+ (type: Type): Type;
933
+ gen(type: Type): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
934
+ };
935
+ /** Get the type with `null` and `undefined` removed. Always returns a type. */
936
+ get getNonNullableType(): {
937
+ (type: Type): Type;
938
+ gen(type: Type): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
939
+ };
940
+ /**
941
+ * Get the type for a type node. Always returns a type; for type nodes whose
942
+ * type cannot be determined the checker yields the error type (use
943
+ * {@link Type.isErrorType} to detect it).
944
+ */
945
+ get getTypeFromTypeNode(): {
946
+ (node: TypeNode): Type;
947
+ gen(node: TypeNode): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
948
+ };
949
+ /** Get the widened type. Always returns a type. */
950
+ get getWidenedType(): {
951
+ (type: Type): Type;
952
+ gen(type: Type): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
953
+ };
954
+ /**
955
+ * Get the type of the parameter at the given index in a signature. Always
956
+ * returns a type; an out-of-range index yields the `any` type.
957
+ */
958
+ get getParameterType(): {
959
+ (signature: Signature, index: number): Type;
960
+ gen(signature: Signature, index: number): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
961
+ };
962
+ get isArrayLikeType(): {
963
+ (type: Type): boolean;
964
+ gen(type: Type): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
965
+ };
966
+ get isTypeAssignableTo(): {
967
+ (source: Type, target: Type): boolean;
968
+ gen(source: Type, target: Type): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
969
+ };
970
+ get getShorthandAssignmentValueSymbol(): {
971
+ (node: Node): Symbol | undefined;
972
+ gen(node: Node): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
973
+ };
974
+ /**
975
+ * Get the type of a symbol as narrowed at a specific location. Always returns
976
+ * a type; for symbols whose type cannot be determined the checker yields the
977
+ * error type (use {@link Type.isErrorType} to detect it).
978
+ */
979
+ get getTypeOfSymbolAtLocation(): {
980
+ (symbol: Symbol, location: Node): Type;
981
+ gen(symbol: Symbol, location: Node): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
982
+ };
983
+ private get getIntrinsicType();
984
+ get getAnyType(): {
985
+ (): Type;
986
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
987
+ };
988
+ get getStringType(): {
989
+ (): Type;
990
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
991
+ };
992
+ get getNumberType(): {
993
+ (): Type;
994
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
995
+ };
996
+ get getBooleanType(): {
997
+ (): Type;
998
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
999
+ };
1000
+ get getVoidType(): {
1001
+ (): Type;
1002
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1003
+ };
1004
+ get getUndefinedType(): {
1005
+ (): Type;
1006
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1007
+ };
1008
+ get getNullType(): {
1009
+ (): Type;
1010
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1011
+ };
1012
+ get getNeverType(): {
1013
+ (): Type;
1014
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1015
+ };
1016
+ get getUnknownType(): {
1017
+ (): Type;
1018
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1019
+ };
1020
+ get getBigIntType(): {
1021
+ (): Type;
1022
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1023
+ };
1024
+ get getESSymbolType(): {
1025
+ (): Type;
1026
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1027
+ };
1028
+ get getNonPrimitiveType(): {
1029
+ (): Type;
1030
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1031
+ };
1032
+ get typeToTypeNode(): {
1033
+ (type: Type, enclosingDeclaration?: Node, flags?: number): TypeNode | undefined;
1034
+ gen(type: Type, enclosingDeclaration?: Node, flags?: number): Generator<ProtocolRequest, TypeNode | undefined, ProtocolResponse["result"]>;
1035
+ };
1036
+ get signatureToSignatureDeclaration(): {
1037
+ (signature: Signature, kind: SyntaxKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): Node | undefined;
1038
+ gen(signature: Signature, kind: SyntaxKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): Generator<ProtocolRequest, Node | undefined, ProtocolResponse["result"]>;
1039
+ };
1040
+ get typeToString(): {
1041
+ (type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;
1042
+ gen(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): Generator<ProtocolRequest, string, ProtocolResponse["result"]>;
1043
+ };
1044
+ get isContextSensitive(): {
1045
+ (node: Node): boolean;
1046
+ gen(node: Node): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1047
+ };
1048
+ get isArrayType(): {
1049
+ (type: Type): boolean;
1050
+ gen(type: Type): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1051
+ };
1052
+ get isTupleType(): {
1053
+ (type: Type): boolean;
1054
+ gen(type: Type): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1055
+ };
1056
+ get isTupleTypeTarget(): {
1057
+ (type: Type): boolean;
1058
+ gen(type: Type): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1059
+ };
1060
+ /**
1061
+ * The following symbols are considered read-only:
1062
+ * - Properties with a `readonly` modifier
1063
+ * - Variables declared with `const`
1064
+ * - Get accessors without matching set accessors
1065
+ * - Enum members
1066
+ * - `Object.defineProperty` assignments with `writable: false` or no setter
1067
+ * - Unions and intersections of the above
1068
+ */
1069
+ get isReadonlySymbol(): {
1070
+ (symbol: Symbol): boolean;
1071
+ gen(symbol: Symbol): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1072
+ };
1073
+ /** Get the return type of a signature. Always returns a type. */
1074
+ get getReturnTypeOfSignature(): {
1075
+ (signature: Signature): Type;
1076
+ gen(signature: Signature): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1077
+ };
1078
+ /**
1079
+ * Get the rest type of a signature. Always returns a type; a signature with
1080
+ * no rest parameter yields the `any` type.
1081
+ */
1082
+ get getRestTypeOfSignature(): {
1083
+ (signature: Signature): Type;
1084
+ gen(signature: Signature): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1085
+ };
1086
+ get getTypePredicateOfSignature(): {
1087
+ (signature: Signature): TypePredicate | undefined;
1088
+ gen(signature: Signature): Generator<ProtocolRequest, TypePredicate | undefined, ProtocolResponse["result"]>;
1089
+ };
1090
+ /**
1091
+ * Get the base types of a class or interface type. A type with no base types
1092
+ * yields an empty array.
1093
+ */
1094
+ get getBaseTypes(): {
1095
+ (type: InterfaceType): readonly Type[];
1096
+ gen(type: InterfaceType): Generator<ProtocolRequest, readonly Type[], ProtocolResponse["result"]>;
1097
+ };
1098
+ /** Get the apparent type of a type. Always returns a type. */
1099
+ get getApparentType(): {
1100
+ (type: Type): Type;
1101
+ gen(type: Type): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1102
+ };
1103
+ /** Get the reduced type of a type. Always returns a type. */
1104
+ get getReducedType(): {
1105
+ (type: Type): Type;
1106
+ gen(type: Type): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1107
+ };
1108
+ get getPropertiesOfType(): {
1109
+ (type: Type): readonly Symbol[];
1110
+ gen(type: Type): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
1111
+ };
1112
+ get getIndexInfosOfType(): {
1113
+ (type: Type): readonly IndexInfo[];
1114
+ gen(type: Type): Generator<ProtocolRequest, readonly IndexInfo[], ProtocolResponse["result"]>;
1115
+ };
1116
+ get getIndexInfoOfType(): {
1117
+ (type: Type, kind: IndexKind): IndexInfo | undefined;
1118
+ gen(type: Type, kind: IndexKind): Generator<ProtocolRequest, IndexInfo | undefined, ProtocolResponse["result"]>;
1119
+ };
1120
+ get getIndexTypeOfType(): {
1121
+ (type: Type, kind: IndexKind): Type | undefined;
1122
+ gen(type: Type, kind: IndexKind): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1123
+ };
1124
+ get getTypeOfPropertyOfType(): {
1125
+ (type: Type, propertyName: string): Type | undefined;
1126
+ gen(type: Type, propertyName: string): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1127
+ };
1128
+ /**
1129
+ * Get the constraint of a type parameter (the `T` in `<U extends T>`), or
1130
+ * undefined if it has none.
1131
+ */
1132
+ get getConstraintOfTypeParameter(): {
1133
+ (type: TypeParameter): Type | undefined;
1134
+ gen(type: TypeParameter): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1135
+ };
1136
+ get getDefaultFromTypeParameter(): {
1137
+ (type: TypeParameter): Type | undefined;
1138
+ gen(type: TypeParameter): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1139
+ };
1140
+ get getBaseConstraintOfType(): {
1141
+ (type: Type): Type | undefined;
1142
+ gen(type: Type): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1143
+ };
1144
+ get getPropertyOfType(): {
1145
+ (type: Type, name: string): Symbol | undefined;
1146
+ gen(type: Type, name: string): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1147
+ };
1148
+ get getConstantValue(): {
1149
+ (node: Node): string | number | undefined;
1150
+ gen(node: Node): Generator<ProtocolRequest, string | number | undefined, ProtocolResponse["result"]>;
1151
+ };
1152
+ /** Get the signature of a function-like declaration. Always returns a signature. */
1153
+ get getSignatureFromDeclaration(): {
1154
+ (node: Node): Signature;
1155
+ gen(node: Node): Generator<ProtocolRequest, Signature, ProtocolResponse["result"]>;
1156
+ };
1157
+ get getExportSpecifierLocalTargetSymbol(): {
1158
+ (node: Node): Symbol | undefined;
1159
+ gen(node: Node): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1160
+ };
1161
+ /**
1162
+ * Follow all aliases to get the original symbol. Always returns a symbol; for
1163
+ * an unresolved alias the checker yields the unknown symbol (use
1164
+ * {@link Checker.isUnknownSymbol} to detect it).
1165
+ */
1166
+ get getAliasedSymbol(): {
1167
+ (symbol: Symbol): Symbol;
1168
+ gen(symbol: Symbol): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
1169
+ };
1170
+ /**
1171
+ * Get the fully qualified name of a symbol, walking up its parent chain
1172
+ * (e.g. `"/path/to/module".Namespace.Name`).
1173
+ */
1174
+ get getFullyQualifiedName(): {
1175
+ (symbol: Symbol): string;
1176
+ gen(symbol: Symbol): Generator<ProtocolRequest, string, ProtocolResponse["result"]>;
1177
+ };
1178
+ get getImmediateAliasedSymbol(): {
1179
+ (symbol: Symbol): Symbol | undefined;
1180
+ gen(symbol: Symbol): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1181
+ };
1182
+ /**
1183
+ * Get the target symbol if instantiated, or the provided symbol otherwise.
1184
+ */
1185
+ get getTargetSymbol(): {
1186
+ (symbol: Symbol): Symbol;
1187
+ gen(symbol: Symbol): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
1188
+ };
1189
+ get getExportSymbolOfSymbol(): {
1190
+ (symbol: Symbol): Symbol;
1191
+ gen(symbol: Symbol): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
1192
+ };
1193
+ /**
1194
+ * Fetch (once, then cache) the handle ids of the per-checker singleton
1195
+ * symbols (unknown, undefined, arguments). These ids are stable for the life
1196
+ * of the project's checker, so identity checks against them are local after
1197
+ * the first call.
1198
+ */
1199
+ private get getWellKnownSymbols();
1200
+ /**
1201
+ * Returns `true` if the symbol is the checker's "unknown" symbol (e.g. the
1202
+ * result of {@link Checker.getAliasedSymbol} on an unresolved alias).
1203
+ */
1204
+ get isUnknownSymbol(): {
1205
+ (symbol: Symbol): boolean;
1206
+ gen(symbol: Symbol): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1207
+ };
1208
+ /**
1209
+ * Returns `true` if the symbol is the checker's "undefined" symbol.
1210
+ */
1211
+ get isUndefinedSymbol(): {
1212
+ (symbol: Symbol): boolean;
1213
+ gen(symbol: Symbol): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1214
+ };
1215
+ /**
1216
+ * Returns `true` if the symbol is the checker's "arguments" symbol.
1217
+ */
1218
+ get isArgumentsSymbol(): {
1219
+ (symbol: Symbol): boolean;
1220
+ gen(symbol: Symbol): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1221
+ };
1222
+ /**
1223
+ * Fetch (once, then cache) the handle id of the per-checker unknown
1224
+ * signature. This id is stable for the life of the project's checker, so
1225
+ * identity checks against it are local after the first call.
1226
+ */
1227
+ private get getWellKnownSignatures();
1228
+ /**
1229
+ * Returns `true` if the signature is the checker's "unknown" signature (e.g.
1230
+ * the result of {@link Checker.getResolvedSignature} on a call that cannot be
1231
+ * resolved).
1232
+ */
1233
+ get isUnknownSignature(): {
1234
+ (signature: Signature): boolean;
1235
+ gen(signature: Signature): Generator<ProtocolRequest, boolean, ProtocolResponse["result"]>;
1236
+ };
1237
+ get getExportsOfModule(): {
1238
+ (symbol: Symbol): readonly Symbol[];
1239
+ gen(symbol: Symbol): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
1240
+ };
1241
+ get getMemberInModuleExports(): {
1242
+ (symbol: Symbol, name: string): Symbol | undefined;
1243
+ gen(symbol: Symbol, name: string): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1244
+ };
1245
+ get getJsDocTagsOfSymbol(): {
1246
+ (symbol: Symbol): readonly JSDocTagInfo[];
1247
+ gen(symbol: Symbol): Generator<ProtocolRequest, readonly JSDocTagInfo[], ProtocolResponse["result"]>;
1248
+ };
1249
+ get getDocumentationCommentOfSymbol(): {
1250
+ (symbol: Symbol): string;
1251
+ gen(symbol: Symbol): Generator<ProtocolRequest, string, ProtocolResponse["result"]>;
1252
+ };
1253
+ /**
1254
+ * Get the type arguments of a type reference (e.g. the `string` in `Array<string>`).
1255
+ */
1256
+ get getTypeArguments(): {
1257
+ (type: TypeReference): readonly Type[];
1258
+ gen(type: TypeReference): Generator<ProtocolRequest, readonly Type[], ProtocolResponse["result"]>;
1259
+ };
183
1260
  }
184
1261
  export interface PrintNodeOptions {
185
- preserveSourceNewlines?: boolean;
186
- neverAsciiEscape?: boolean;
187
- terminateUnterminatedLiterals?: boolean;
1262
+ preserveSourceNewlines?: boolean | undefined;
1263
+ neverAsciiEscape?: boolean | undefined;
1264
+ terminateUnterminatedLiterals?: boolean | undefined;
188
1265
  }
189
- export declare class Emitter {
1266
+ export declare class Printer {
190
1267
  private client;
191
1268
  constructor(client: Client);
192
- printNode(node: Node, options?: PrintNodeOptions): string;
1269
+ get printNode(): {
1270
+ (node: Node, options?: PrintNodeOptions): string;
1271
+ gen(node: Node, options?: PrintNodeOptions): Generator<ProtocolRequest, string, ProtocolResponse["result"]>;
1272
+ };
1273
+ get printFile(): {
1274
+ (sourceFile: SourceFile, options?: PrintNodeOptions): string;
1275
+ gen(sourceFile: SourceFile, options?: PrintNodeOptions): Generator<ProtocolRequest, string, ProtocolResponse["result"]>;
1276
+ };
193
1277
  }
194
- export declare class NodeHandle {
1278
+ export declare class NodeHandle<out T extends Node = Node> {
1279
+ /**
1280
+ * The project this handle was produced in, used as the default for {@link resolve}.
1281
+ * Node handles are only meaningful within a project's program, so the producing project
1282
+ * is remembered so callers don't have to pass it explicitly.
1283
+ */
1284
+ private readonly canonicalProject;
1285
+ /** The owning source file of a file-owned symbol's declaration. */
1286
+ private readonly fileOwner;
195
1287
  readonly index: number;
196
1288
  readonly kind: SyntaxKind;
197
- readonly path: Path;
198
- constructor(handle: string);
1289
+ readonly path: PathKey;
1290
+ constructor(handle: string, canonicalProject: Project | undefined, fileOwner?: SourceFileOwner);
199
1291
  /**
200
- * Resolve this handle to the actual AST node by fetching the source file
201
- * from the given project and looking up the node by index.
1292
+ * Resolve this handle to the actual AST node by fetching the source file from a project
1293
+ * and looking up the node by index. If no project is passed, the project that produced
1294
+ * the handle is used. Declarations of file-owned symbols identify an exact source file and
1295
+ * resolve through it, independently of any project.
202
1296
  */
203
- resolve(project: Project): Node | undefined;
1297
+ get resolve(): {
1298
+ (project?: Project | undefined): T | undefined;
1299
+ gen(project?: Project | undefined): Generator<ProtocolRequest, T | undefined, ProtocolResponse["result"]>;
1300
+ };
1301
+ private get fetchOwnerFile();
204
1302
  }
205
1303
  /** A symbol definition paired with all of its reference nodes. */
206
1304
  export interface ReferencedSymbolEntry {
207
1305
  /** The node handle for the symbol's definition. */
208
1306
  definition: NodeHandle;
209
1307
  /** The resolved symbol for the definition, if available. */
210
- symbol?: Symbol;
1308
+ symbol?: Symbol | undefined;
211
1309
  /** The node handles for each reference to the symbol. */
212
1310
  references: NodeHandle[];
213
1311
  }
@@ -216,44 +1314,96 @@ export interface SignatureUsage {
216
1314
  /** The node handle for the name reference. */
217
1315
  name: NodeHandle;
218
1316
  /** The node handle for the call expression, if the reference is invoked. */
219
- call?: NodeHandle;
1317
+ call?: NodeHandle | undefined;
220
1318
  }
1319
+ /** A cached source-file record and its owning API. */
1320
+ interface SourceFileOwner {
1321
+ readonly record: CachedSourceFile<Symbol>;
1322
+ readonly api: API<boolean>;
1323
+ }
1324
+ type SymbolStorage = {
1325
+ readonly kind: typeof SymbolOwnerKind.File;
1326
+ readonly owner: SourceFileOwner;
1327
+ } | {
1328
+ readonly kind: typeof SymbolOwnerKind.Snapshot;
1329
+ readonly registry: ProjectObjectRegistry;
1330
+ };
221
1331
  export declare class Symbol {
222
- private objectRegistry;
223
- readonly id: number;
1332
+ private readonly storage;
1333
+ get id(): number;
1334
+ /** The escaped (`__String`) name, used as the key in member/export tables. */
1335
+ readonly escapedName: __String;
1336
+ /** The display name (escaped underscores removed). */
224
1337
  readonly name: string;
225
1338
  readonly flags: SymbolFlags;
226
- readonly checkFlags: number;
227
- readonly declarations: readonly NodeHandle[];
228
- readonly valueDeclaration: NodeHandle | undefined;
229
- readonly parent: number;
230
- readonly exportSymbol: number;
231
- constructor(data: SymbolResponse, objectRegistry: SnapshotObjectRegistry);
232
- getParent(): Symbol | undefined;
233
- getMembers(): readonly Symbol[];
234
- getExports(): readonly Symbol[];
235
- getExportSymbol(): Symbol;
1339
+ readonly checkFlags: CheckFlags;
1340
+ readonly declarations: readonly NodeHandle<Declaration>[];
1341
+ readonly valueDeclaration: NodeHandle<Declaration> | undefined;
1342
+ private readonly parent;
1343
+ private readonly exportSymbol;
1344
+ private membersCache;
1345
+ private exportsCache;
1346
+ constructor(data: SymbolResponse, storage: SymbolStorage);
1347
+ get getParent(): {
1348
+ (): Symbol | undefined;
1349
+ gen(): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1350
+ };
1351
+ /**
1352
+ * Get this symbol's members keyed by escaped name. The result is cached on
1353
+ * the symbol, so repeated calls do not round-trip to the server.
1354
+ */
1355
+ get getMembers(): {
1356
+ (): ReadonlyMap<__String, Symbol>;
1357
+ gen(): Generator<ProtocolRequest, ReadonlyMap<__String, Symbol>, ProtocolResponse["result"]>;
1358
+ };
1359
+ /**
1360
+ * Get this symbol's exports keyed by escaped name. The result is cached on
1361
+ * the symbol, so repeated calls do not round-trip to the server.
1362
+ */
1363
+ get getExports(): {
1364
+ (): ReadonlyMap<__String, Symbol>;
1365
+ gen(): Generator<ProtocolRequest, ReadonlyMap<__String, Symbol>, ProtocolResponse["result"]>;
1366
+ };
1367
+ private get fetchSymbolTable();
1368
+ get getExportSymbol(): {
1369
+ (): Symbol;
1370
+ gen(): Generator<ProtocolRequest, Symbol, ProtocolResponse["result"]>;
1371
+ };
1372
+ get getJsDocTags(): {
1373
+ (checker: Checker): readonly JSDocTagInfo[];
1374
+ gen(checker: Checker): Generator<ProtocolRequest, readonly JSDocTagInfo[], ProtocolResponse["result"]>;
1375
+ };
1376
+ get getDocumentationComment(): {
1377
+ (checker: Checker): string;
1378
+ gen(checker: Checker): Generator<ProtocolRequest, string, ProtocolResponse["result"]>;
1379
+ };
1380
+ private get fetchSymbol();
1381
+ private get fetchSymbols();
1382
+ private internFileSymbol;
236
1383
  }
237
1384
  declare class TypeObject implements Type {
238
1385
  private objectRegistry;
239
1386
  readonly id: number;
240
1387
  readonly flags: TypeFlags;
241
1388
  readonly objectFlags: ObjectFlags;
242
- readonly symbol: number;
243
- readonly value: string | number | boolean;
1389
+ readonly symbol: CompactSymbolReference;
1390
+ readonly value: string | number | boolean | bigint;
244
1391
  readonly intrinsicName: string;
245
1392
  readonly isThisType: boolean;
246
1393
  readonly freshType: number;
247
1394
  readonly regularType: number;
248
1395
  readonly target: number;
1396
+ private readonly tupleType;
249
1397
  readonly typeParameters: readonly number[];
250
1398
  readonly outerTypeParameters: readonly number[];
251
1399
  readonly localTypeParameters: readonly number[];
1400
+ readonly thisType: number;
252
1401
  readonly aliasTypeArguments: readonly number[];
253
- readonly aliasSymbol: number;
1402
+ readonly aliasSymbol: CompactSymbolReference;
254
1403
  readonly elementFlags: readonly ElementFlags[];
255
1404
  readonly fixedLength: number;
256
1405
  readonly readonly: boolean;
1406
+ readonly labeledElementDeclarations?: readonly (NodeHandle<NamedTupleMember | ParameterDeclaration> | undefined)[];
257
1407
  readonly texts: readonly string[];
258
1408
  readonly objectType: number;
259
1409
  readonly indexType: number;
@@ -261,38 +1411,262 @@ declare class TypeObject implements Type {
261
1411
  readonly extendsType: number;
262
1412
  readonly baseType: number;
263
1413
  readonly substConstraint: number;
264
- constructor(data: TypeResponse, objectRegistry: SnapshotObjectRegistry);
265
- getSymbol(): Symbol | undefined;
266
- getAliasSymbol(): Symbol | undefined;
267
- getTarget(): Type;
268
- getFreshType(): FreshableType | undefined;
269
- getRegularType(): FreshableType | undefined;
270
- getTypes(): readonly Type[];
271
- getTypeParameters(): readonly Type[];
272
- getOuterTypeParameters(): readonly Type[];
273
- getLocalTypeParameters(): readonly Type[];
274
- getAliasTypeArguments(): readonly Type[];
275
- getObjectType(): Type;
276
- getIndexType(): Type;
277
- getCheckType(): Type;
278
- getExtendsType(): Type;
279
- getBaseType(): Type;
280
- getConstraint(): Type;
1414
+ readonly typeParameter: number;
1415
+ readonly constraintType: number;
1416
+ readonly nameType: number;
1417
+ readonly templateType: number;
1418
+ private trueType;
1419
+ private falseType;
1420
+ private constraint;
1421
+ private default;
1422
+ private nonNullableType;
1423
+ private apparentType;
1424
+ private reducedType;
1425
+ private properties;
1426
+ private apparentProperties;
1427
+ private callSignatures;
1428
+ private constructSignatures;
1429
+ private indexInfos;
1430
+ private baseTypes;
1431
+ private types;
1432
+ private stringIndexType;
1433
+ private numberIndexType;
1434
+ constructor(data: TypeResponse, objectRegistry: ProjectObjectRegistry);
1435
+ get getSymbol(): {
1436
+ (): Symbol | undefined;
1437
+ gen(): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1438
+ };
1439
+ get getProperties(): {
1440
+ (): readonly Symbol[];
1441
+ gen(): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
1442
+ };
1443
+ get getProperty(): {
1444
+ (propertyName: string): Symbol | undefined;
1445
+ gen(propertyName: string): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1446
+ };
1447
+ get getApparentProperties(): {
1448
+ (): readonly Symbol[];
1449
+ gen(): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
1450
+ };
1451
+ get getCallSignatures(): {
1452
+ (): readonly Signature[];
1453
+ gen(): Generator<ProtocolRequest, readonly Signature[], ProtocolResponse["result"]>;
1454
+ };
1455
+ get getConstructSignatures(): {
1456
+ (): readonly Signature[];
1457
+ gen(): Generator<ProtocolRequest, readonly Signature[], ProtocolResponse["result"]>;
1458
+ };
1459
+ get getNonNullableType(): {
1460
+ (): Type;
1461
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1462
+ };
1463
+ get getStringIndexType(): {
1464
+ (): Type | undefined;
1465
+ gen(): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1466
+ };
1467
+ private get getStringIndexTypeWorker();
1468
+ get getNumberIndexType(): {
1469
+ (): Type | undefined;
1470
+ gen(): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1471
+ };
1472
+ private get getNumberIndexTypeWorker();
1473
+ get getApparentType(): {
1474
+ (): Type;
1475
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1476
+ };
1477
+ get getReducedType(): {
1478
+ (): Type;
1479
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1480
+ };
1481
+ get getIndexInfos(): {
1482
+ (): readonly IndexInfo[];
1483
+ gen(): Generator<ProtocolRequest, readonly IndexInfo[], ProtocolResponse["result"]>;
1484
+ };
1485
+ get getAliasSymbol(): {
1486
+ (): Symbol | undefined;
1487
+ gen(): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1488
+ };
1489
+ get getTarget(): {
1490
+ (): Type;
1491
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1492
+ };
1493
+ get getFreshType(): {
1494
+ (): FreshableType | undefined;
1495
+ gen(): Generator<ProtocolRequest, FreshableType | undefined, ProtocolResponse["result"]>;
1496
+ };
1497
+ get getRegularType(): {
1498
+ (): FreshableType | undefined;
1499
+ gen(): Generator<ProtocolRequest, FreshableType | undefined, ProtocolResponse["result"]>;
1500
+ };
1501
+ get getTypes(): {
1502
+ (): readonly Type[] | undefined;
1503
+ gen(): Generator<ProtocolRequest, readonly Type[] | undefined, ProtocolResponse["result"]>;
1504
+ };
1505
+ get getTypeParameters(): {
1506
+ (): readonly TypeParameter[];
1507
+ gen(): Generator<ProtocolRequest, readonly TypeParameter[], ProtocolResponse["result"]>;
1508
+ };
1509
+ get getOuterTypeParameters(): {
1510
+ (): readonly TypeParameter[];
1511
+ gen(): Generator<ProtocolRequest, readonly TypeParameter[], ProtocolResponse["result"]>;
1512
+ };
1513
+ get getLocalTypeParameters(): {
1514
+ (): readonly TypeParameter[];
1515
+ gen(): Generator<ProtocolRequest, readonly TypeParameter[], ProtocolResponse["result"]>;
1516
+ };
1517
+ get getThisType(): {
1518
+ (): TypeParameter | undefined;
1519
+ gen(): Generator<ProtocolRequest, TypeParameter | undefined, ProtocolResponse["result"]>;
1520
+ };
1521
+ get getAliasTypeArguments(): {
1522
+ (): readonly Type[];
1523
+ gen(): Generator<ProtocolRequest, readonly Type[], ProtocolResponse["result"]>;
1524
+ };
1525
+ get getTypeParameter(): {
1526
+ (): TypeParameter;
1527
+ gen(): Generator<ProtocolRequest, TypeParameter, ProtocolResponse["result"]>;
1528
+ };
1529
+ get getConstraintType(): {
1530
+ (): Type;
1531
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1532
+ };
1533
+ get getNameType(): {
1534
+ (): Type | undefined;
1535
+ gen(): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1536
+ };
1537
+ get getTemplateType(): {
1538
+ (): Type;
1539
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1540
+ };
1541
+ get getObjectType(): {
1542
+ (): Type;
1543
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1544
+ };
1545
+ get getIndexType(): {
1546
+ (): Type;
1547
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1548
+ };
1549
+ get getCheckType(): {
1550
+ (): Type;
1551
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1552
+ };
1553
+ get getExtendsType(): {
1554
+ (): Type;
1555
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1556
+ };
1557
+ get getBaseType(): {
1558
+ (): Type;
1559
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1560
+ };
1561
+ get getConstraint(): {
1562
+ (): Type | undefined;
1563
+ gen(): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1564
+ };
1565
+ get getDefault(): {
1566
+ (): Type | undefined;
1567
+ gen(): Generator<ProtocolRequest, Type | undefined, ProtocolResponse["result"]>;
1568
+ };
1569
+ get getTrueType(): {
1570
+ (): Type;
1571
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1572
+ };
1573
+ get getFalseType(): {
1574
+ (): Type;
1575
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1576
+ };
1577
+ /**
1578
+ * Get the base types of this type. Returns `undefined` for any type that is
1579
+ * not a class or interface.
1580
+ */
1581
+ get getBaseTypes(): {
1582
+ (): readonly Type[] | undefined;
1583
+ gen(): Generator<ProtocolRequest, readonly Type[] | undefined, ProtocolResponse["result"]>;
1584
+ };
1585
+ isClassOrInterface(): this is InterfaceType;
1586
+ isUnionType(): this is UnionType;
1587
+ isIntersectionType(): this is IntersectionType;
1588
+ isObjectType(): this is ObjectType;
1589
+ isIntrinsicType(): this is IntrinsicType;
1590
+ isErrorType(): boolean;
1591
+ isLiteralType(): this is LiteralType;
1592
+ isStringLiteralType(): this is StringLiteralType;
1593
+ isNumberLiteralType(): this is NumberLiteralType;
1594
+ isBigIntLiteralType(): this is BigIntLiteralType;
1595
+ isBooleanLiteralType(): this is BooleanLiteralType;
1596
+ isTypeReference(): this is TypeReference;
1597
+ isTupleType(): this is TupleTypeReference;
1598
+ isTupleTypeTarget(): this is TupleType;
1599
+ isIndexType(): this is IndexType;
1600
+ isIndexedAccessType(): this is IndexedAccessType;
1601
+ isConditionalType(): this is ConditionalType;
1602
+ isSubstitutionType(): this is SubstitutionType;
1603
+ isTemplateLiteralType(): this is TemplateLiteralType;
1604
+ isStringMappingType(): this is StringMappingType;
1605
+ isTypeParameter(): this is TypeParameter;
1606
+ isMappedType(): this is MappedType;
281
1607
  }
1608
+ export declare function isUnionType(type: Type): type is UnionType;
1609
+ export declare function isIntersectionType(type: Type): type is IntersectionType;
1610
+ export declare function isObjectType(type: Type): type is ObjectType;
1611
+ export declare function isClassOrInterfaceType(type: Type): type is InterfaceType;
1612
+ export declare function isIntrinsicType(type: Type): type is IntrinsicType;
1613
+ /**
1614
+ * Whether this is the error type — the placeholder the checker produces when a
1615
+ * type cannot be determined (e.g. an unresolved reference). It is an intrinsic
1616
+ * type named `"error"` (this covers both the singleton error type and the
1617
+ * per-alias error types manufactured for unresolved type alias references).
1618
+ */
1619
+ export declare function isErrorType(type: Type): boolean;
1620
+ export declare function isLiteralType(type: Type): type is LiteralType;
1621
+ export declare function isStringLiteralType(type: Type): type is StringLiteralType;
1622
+ export declare function isNumberLiteralType(type: Type): type is NumberLiteralType;
1623
+ export declare function isBigIntLiteralType(type: Type): type is BigIntLiteralType;
1624
+ export declare function isBooleanLiteralType(type: Type): type is BooleanLiteralType;
1625
+ export declare function isTypeReference(type: Type): type is TypeReference;
1626
+ export declare function isTupleType(type: Type): type is TupleTypeReference;
1627
+ export declare function isTupleTypeTarget(type: Type): type is TupleType;
1628
+ export declare function isIndexType(type: Type): type is IndexType;
1629
+ export declare function isIndexedAccessType(type: Type): type is IndexedAccessType;
1630
+ export declare function isConditionalType(type: Type): type is ConditionalType;
1631
+ export declare function isSubstitutionType(type: Type): type is SubstitutionType;
1632
+ export declare function isTemplateLiteralType(type: Type): type is TemplateLiteralType;
1633
+ export declare function isStringMappingType(type: Type): type is StringMappingType;
1634
+ export declare function isTypeParameter(type: Type): type is TypeParameter;
282
1635
  export declare class Signature {
283
1636
  private flags;
284
1637
  private objectRegistry;
285
1638
  readonly id: number;
286
- readonly declaration?: NodeHandle | undefined;
1639
+ readonly declaration?: NodeHandle<Declaration> | undefined;
287
1640
  readonly typeParameters?: readonly number[] | undefined;
288
- readonly parameters: readonly number[];
289
- readonly thisParameter?: number | undefined;
1641
+ readonly parameters: readonly CompactSymbolReference[];
1642
+ readonly thisParameter?: CompactSymbolReference | undefined;
290
1643
  readonly target?: number | undefined;
291
- constructor(data: SignatureResponse, objectRegistry: SnapshotObjectRegistry);
292
- getTypeParameters(): readonly Type[];
293
- getParameters(): readonly Symbol[];
294
- getThisParameter(): Symbol | undefined;
295
- getTarget(): Signature | undefined;
1644
+ private returnType;
1645
+ constructor(data: SignatureResponse, project: Project, objectRegistry: ProjectObjectRegistry);
1646
+ get getTypeParameters(): {
1647
+ (): readonly TypeParameter[];
1648
+ gen(): Generator<ProtocolRequest, readonly TypeParameter[], ProtocolResponse["result"]>;
1649
+ };
1650
+ get getParameters(): {
1651
+ (): readonly Symbol[];
1652
+ gen(): Generator<ProtocolRequest, readonly Symbol[], ProtocolResponse["result"]>;
1653
+ };
1654
+ get getThisParameter(): {
1655
+ (): Symbol | undefined;
1656
+ gen(): Generator<ProtocolRequest, Symbol | undefined, ProtocolResponse["result"]>;
1657
+ };
1658
+ get getTarget(): {
1659
+ (): Signature | undefined;
1660
+ gen(): Generator<ProtocolRequest, Signature | undefined, ProtocolResponse["result"]>;
1661
+ };
1662
+ get getReturnType(): {
1663
+ (): Type;
1664
+ gen(): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1665
+ };
1666
+ get getTypeParameterAtPosition(): {
1667
+ (pos: number): Type;
1668
+ gen(pos: number): Generator<ProtocolRequest, Type, ProtocolResponse["result"]>;
1669
+ };
296
1670
  get hasRestParameter(): boolean;
297
1671
  get isConstruct(): boolean;
298
1672
  get isAbstract(): boolean;