tsc-ts 0.0.4 → 0.0.6

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 (584) hide show
  1. package/README.md +34 -2
  2. package/dist/api/compiler/ast-utilities.d.ts +82 -0
  3. package/dist/api/compiler/ast-utilities.js +462 -0
  4. package/dist/api/compiler/ast.d.ts +2351 -0
  5. package/dist/api/compiler/ast.js +11212 -0
  6. package/dist/api/compiler/astnav.d.ts +37 -0
  7. package/dist/api/compiler/astnav.js +767 -0
  8. package/dist/api/compiler/binder-utilities.d.ts +182 -0
  9. package/dist/api/compiler/binder-utilities.js +1241 -0
  10. package/dist/api/compiler/binder.d.ts +33 -0
  11. package/dist/api/compiler/binder.js +2359 -0
  12. package/dist/api/compiler/character-codes.d.ts +161 -0
  13. package/dist/api/compiler/character-codes.js +160 -0
  14. package/dist/api/compiler/checker-calls.d.ts +46 -0
  15. package/dist/api/compiler/checker-calls.js +1641 -0
  16. package/dist/api/compiler/checker-classes.d.ts +30 -0
  17. package/dist/api/compiler/checker-classes.js +582 -0
  18. package/dist/api/compiler/checker-contextual.d.ts +77 -0
  19. package/dist/api/compiler/checker-contextual.js +1136 -0
  20. package/dist/api/compiler/checker-declaration-order.d.ts +12 -0
  21. package/dist/api/compiler/checker-declaration-order.js +357 -0
  22. package/dist/api/compiler/checker-declarations.d.ts +33 -0
  23. package/dist/api/compiler/checker-declarations.js +888 -0
  24. package/dist/api/compiler/checker-declared-types.d.ts +48 -0
  25. package/dist/api/compiler/checker-declared-types.js +788 -0
  26. package/dist/api/compiler/checker-decorators.d.ts +26 -0
  27. package/dist/api/compiler/checker-decorators.js +562 -0
  28. package/dist/api/compiler/checker-deprecation.d.ts +33 -0
  29. package/dist/api/compiler/checker-deprecation.js +314 -0
  30. package/dist/api/compiler/checker-destructuring.d.ts +34 -0
  31. package/dist/api/compiler/checker-destructuring.js +584 -0
  32. package/dist/api/compiler/checker-elaboration.d.ts +15 -0
  33. package/dist/api/compiler/checker-elaboration.js +291 -0
  34. package/dist/api/compiler/checker-emit-helpers.d.ts +58 -0
  35. package/dist/api/compiler/checker-emit-helpers.js +154 -0
  36. package/dist/api/compiler/checker-emit-resolver.d.ts +75 -0
  37. package/dist/api/compiler/checker-emit-resolver.js +580 -0
  38. package/dist/api/compiler/checker-evaluator.d.ts +27 -0
  39. package/dist/api/compiler/checker-evaluator.js +188 -0
  40. package/dist/api/compiler/checker-expressions.d.ts +67 -0
  41. package/dist/api/compiler/checker-expressions.js +1351 -0
  42. package/dist/api/compiler/checker-features.d.ts +6 -0
  43. package/dist/api/compiler/checker-features.js +354 -0
  44. package/dist/api/compiler/checker-flow.d.ts +86 -0
  45. package/dist/api/compiler/checker-flow.js +169 -0
  46. package/dist/api/compiler/checker-functions.d.ts +43 -0
  47. package/dist/api/compiler/checker-functions.js +1002 -0
  48. package/dist/api/compiler/checker-generated-code.d.ts +25 -0
  49. package/dist/api/compiler/checker-generated-code.js +168 -0
  50. package/dist/api/compiler/checker-globals.d.ts +14 -0
  51. package/dist/api/compiler/checker-globals.js +37 -0
  52. package/dist/api/compiler/checker-grammar.d.ts +35 -0
  53. package/dist/api/compiler/checker-grammar.js +2587 -0
  54. package/dist/api/compiler/checker-heritage.d.ts +28 -0
  55. package/dist/api/compiler/checker-heritage.js +901 -0
  56. package/dist/api/compiler/checker-inference.d.ts +179 -0
  57. package/dist/api/compiler/checker-inference.js +2105 -0
  58. package/dist/api/compiler/checker-iteration.d.ts +115 -0
  59. package/dist/api/compiler/checker-iteration.js +857 -0
  60. package/dist/api/compiler/checker-javascript.d.ts +42 -0
  61. package/dist/api/compiler/checker-javascript.js +442 -0
  62. package/dist/api/compiler/checker-jsdoc.d.ts +30 -0
  63. package/dist/api/compiler/checker-jsdoc.js +320 -0
  64. package/dist/api/compiler/checker-jsx.d.ts +94 -0
  65. package/dist/api/compiler/checker-jsx.js +1433 -0
  66. package/dist/api/compiler/checker-literals.d.ts +6 -0
  67. package/dist/api/compiler/checker-literals.js +43 -0
  68. package/dist/api/compiler/checker-members.d.ts +200 -0
  69. package/dist/api/compiler/checker-members.js +2148 -0
  70. package/dist/api/compiler/checker-modules.d.ts +85 -0
  71. package/dist/api/compiler/checker-modules.js +2141 -0
  72. package/dist/api/compiler/checker-narrowing.d.ts +120 -0
  73. package/dist/api/compiler/checker-narrowing.js +2797 -0
  74. package/dist/api/compiler/checker-object-literals.d.ts +14 -0
  75. package/dist/api/compiler/checker-object-literals.js +483 -0
  76. package/dist/api/compiler/checker-operators.d.ts +33 -0
  77. package/dist/api/compiler/checker-operators.js +1040 -0
  78. package/dist/api/compiler/checker-overloads.d.ts +7 -0
  79. package/dist/api/compiler/checker-overloads.js +271 -0
  80. package/dist/api/compiler/checker-property-access.d.ts +34 -0
  81. package/dist/api/compiler/checker-property-access.js +672 -0
  82. package/dist/api/compiler/checker-services.d.ts +49 -0
  83. package/dist/api/compiler/checker-services.js +995 -0
  84. package/dist/api/compiler/checker-signatures.d.ts +55 -0
  85. package/dist/api/compiler/checker-signatures.js +789 -0
  86. package/dist/api/compiler/checker-source-file.d.ts +27 -0
  87. package/dist/api/compiler/checker-source-file.js +619 -0
  88. package/dist/api/compiler/checker-statements.d.ts +18 -0
  89. package/dist/api/compiler/checker-statements.js +226 -0
  90. package/dist/api/compiler/checker-super.d.ts +13 -0
  91. package/dist/api/compiler/checker-super.js +241 -0
  92. package/dist/api/compiler/checker-symbol-types.d.ts +51 -0
  93. package/dist/api/compiler/checker-symbol-types.js +955 -0
  94. package/dist/api/compiler/checker-symbols.d.ts +181 -0
  95. package/dist/api/compiler/checker-symbols.js +1784 -0
  96. package/dist/api/compiler/checker-type-factory.d.ts +142 -0
  97. package/dist/api/compiler/checker-type-factory.js +2542 -0
  98. package/dist/api/compiler/checker-type-nodes.d.ts +26 -0
  99. package/dist/api/compiler/checker-type-nodes.js +828 -0
  100. package/dist/api/compiler/checker-type-operators.d.ts +109 -0
  101. package/dist/api/compiler/checker-type-operators.js +1842 -0
  102. package/dist/api/compiler/checker-types.d.ts +1093 -0
  103. package/dist/api/compiler/checker-types.js +1874 -0
  104. package/dist/api/compiler/checker-unused.d.ts +19 -0
  105. package/dist/api/compiler/checker-unused.js +524 -0
  106. package/dist/api/compiler/checker-utilities.d.ts +33 -0
  107. package/dist/api/compiler/checker-utilities.js +141 -0
  108. package/dist/api/compiler/checker.d.ts +512 -0
  109. package/dist/api/compiler/checker.js +932 -0
  110. package/dist/api/compiler/command-line.d.ts +32 -0
  111. package/dist/api/compiler/command-line.js +383 -0
  112. package/dist/api/compiler/compile-program.d.ts +118 -0
  113. package/dist/api/compiler/compile-program.js +384 -0
  114. package/dist/api/compiler/diagnostic-locales.d.ts +22 -0
  115. package/dist/api/compiler/diagnostic-locales.js +64 -0
  116. package/dist/api/compiler/diagnostic-messages.d.ts +2166 -0
  117. package/dist/api/compiler/diagnostic-messages.js +184 -0
  118. package/dist/api/compiler/diagnostics.d.ts +161 -0
  119. package/dist/api/compiler/diagnostics.js +784 -0
  120. package/dist/api/compiler/emitter.d.ts +71 -0
  121. package/dist/api/compiler/emitter.js +327 -0
  122. package/dist/api/compiler/file-include.d.ts +144 -0
  123. package/dist/api/compiler/file-include.js +599 -0
  124. package/dist/api/compiler/file-loader.d.ts +290 -0
  125. package/dist/api/compiler/file-loader.js +1323 -0
  126. package/dist/api/compiler/file-system.d.ts +51 -0
  127. package/dist/api/compiler/file-system.js +132 -0
  128. package/dist/api/compiler/flow.d.ts +60 -0
  129. package/dist/api/compiler/flow.js +45 -0
  130. package/dist/api/compiler/instantiation.d.ts +74 -0
  131. package/dist/api/compiler/instantiation.js +835 -0
  132. package/dist/api/compiler/jsdoc.d.ts +75 -0
  133. package/dist/api/compiler/jsdoc.js +1229 -0
  134. package/dist/api/compiler/link-tables.d.ts +105 -0
  135. package/dist/api/compiler/link-tables.js +319 -0
  136. package/dist/api/compiler/locale-data.d.ts +24 -0
  137. package/dist/api/compiler/locale-data.js +183 -0
  138. package/dist/api/compiler/locale.d.ts +4 -0
  139. package/dist/api/compiler/locale.js +317 -0
  140. package/dist/api/compiler/locales/cs-CZ.d.ts +2 -0
  141. package/dist/api/compiler/locales/cs-CZ.js +3 -0
  142. package/dist/api/compiler/locales/de-DE.d.ts +2 -0
  143. package/dist/api/compiler/locales/de-DE.js +3 -0
  144. package/dist/api/compiler/locales/es-ES.d.ts +2 -0
  145. package/dist/api/compiler/locales/es-ES.js +3 -0
  146. package/dist/api/compiler/locales/fr-FR.d.ts +2 -0
  147. package/dist/api/compiler/locales/fr-FR.js +3 -0
  148. package/dist/api/compiler/locales/it-IT.d.ts +2 -0
  149. package/dist/api/compiler/locales/it-IT.js +3 -0
  150. package/dist/api/compiler/locales/ja-JP.d.ts +2 -0
  151. package/dist/api/compiler/locales/ja-JP.js +3 -0
  152. package/dist/api/compiler/locales/ko-KR.d.ts +2 -0
  153. package/dist/api/compiler/locales/ko-KR.js +3 -0
  154. package/dist/api/compiler/locales/pl-PL.d.ts +2 -0
  155. package/dist/api/compiler/locales/pl-PL.js +3 -0
  156. package/dist/api/compiler/locales/pt-BR.d.ts +2 -0
  157. package/dist/api/compiler/locales/pt-BR.js +3 -0
  158. package/dist/api/compiler/locales/ru-RU.d.ts +2 -0
  159. package/dist/api/compiler/locales/ru-RU.js +3 -0
  160. package/dist/api/compiler/locales/tr-TR.d.ts +2 -0
  161. package/dist/api/compiler/locales/tr-TR.js +3 -0
  162. package/dist/api/compiler/locales/zh-CN.d.ts +2 -0
  163. package/dist/api/compiler/locales/zh-CN.js +3 -0
  164. package/dist/api/compiler/locales/zh-TW.d.ts +2 -0
  165. package/dist/api/compiler/locales/zh-TW.js +3 -0
  166. package/dist/api/compiler/module-resolution-types.d.ts +83 -0
  167. package/dist/api/compiler/module-resolution-types.js +176 -0
  168. package/dist/api/compiler/module-resolution.d.ts +71 -0
  169. package/dist/api/compiler/module-resolution.js +1598 -0
  170. package/dist/api/compiler/module-specifiers.d.ts +64 -0
  171. package/dist/api/compiler/module-specifiers.js +1101 -0
  172. package/dist/api/compiler/name-resolver.d.ts +43 -0
  173. package/dist/api/compiler/name-resolver.js +509 -0
  174. package/dist/api/compiler/node-builder-names.d.ts +32 -0
  175. package/dist/api/compiler/node-builder-names.js +854 -0
  176. package/dist/api/compiler/node-builder-pseudo.d.ts +36 -0
  177. package/dist/api/compiler/node-builder-pseudo.js +745 -0
  178. package/dist/api/compiler/node-builder-reuse.d.ts +4 -0
  179. package/dist/api/compiler/node-builder-reuse.js +647 -0
  180. package/dist/api/compiler/node-builder.d.ts +270 -0
  181. package/dist/api/compiler/node-builder.js +2645 -0
  182. package/dist/api/compiler/option-declarations.d.ts +90 -0
  183. package/dist/api/compiler/option-declarations.js +1460 -0
  184. package/dist/api/compiler/options.d.ts +289 -0
  185. package/dist/api/compiler/options.js +1197 -0
  186. package/dist/api/compiler/output-paths.d.ts +42 -0
  187. package/dist/api/compiler/output-paths.js +195 -0
  188. package/dist/api/compiler/package-json.d.ts +175 -0
  189. package/dist/api/compiler/package-json.js +1015 -0
  190. package/dist/api/compiler/parallel-parse.d.ts +221 -0
  191. package/dist/api/compiler/parallel-parse.js +541 -0
  192. package/dist/api/compiler/parser.d.ts +604 -0
  193. package/dist/api/compiler/parser.js +6426 -0
  194. package/dist/api/compiler/path.d.ts +91 -0
  195. package/dist/api/compiler/path.js +705 -0
  196. package/dist/api/compiler/printer/async-helpers.d.ts +22 -0
  197. package/dist/api/compiler/printer/async-helpers.js +91 -0
  198. package/dist/api/compiler/printer/auto-generate.d.ts +13 -0
  199. package/dist/api/compiler/printer/auto-generate.js +20 -0
  200. package/dist/api/compiler/printer/decorator-helpers.d.ts +24 -0
  201. package/dist/api/compiler/printer/decorator-helpers.js +118 -0
  202. package/dist/api/compiler/printer/emit-context.d.ts +157 -0
  203. package/dist/api/compiler/printer/emit-context.js +582 -0
  204. package/dist/api/compiler/printer/emit-flags.d.ts +60 -0
  205. package/dist/api/compiler/printer/emit-flags.js +2 -0
  206. package/dist/api/compiler/printer/factory-base.d.ts +171 -0
  207. package/dist/api/compiler/printer/factory-base.js +1505 -0
  208. package/dist/api/compiler/printer/factory.d.ts +147 -0
  209. package/dist/api/compiler/printer/factory.js +542 -0
  210. package/dist/api/compiler/printer/helpers.d.ts +27 -0
  211. package/dist/api/compiler/printer/helpers.js +164 -0
  212. package/dist/api/compiler/printer/name-generator.d.ts +41 -0
  213. package/dist/api/compiler/printer/name-generator.js +283 -0
  214. package/dist/api/compiler/printer/printer.d.ts +411 -0
  215. package/dist/api/compiler/printer/printer.js +4517 -0
  216. package/dist/api/compiler/printer/text-writer.d.ts +46 -0
  217. package/dist/api/compiler/printer/text-writer.js +172 -0
  218. package/dist/api/compiler/printer/utilities.d.ts +82 -0
  219. package/dist/api/compiler/printer/utilities.js +817 -0
  220. package/dist/api/compiler/program-checker.d.ts +156 -0
  221. package/dist/api/compiler/program-checker.js +529 -0
  222. package/dist/api/compiler/program-utilities.d.ts +52 -0
  223. package/dist/api/compiler/program-utilities.js +365 -0
  224. package/dist/api/compiler/program.d.ts +180 -0
  225. package/dist/api/compiler/program.js +1019 -0
  226. package/dist/api/compiler/pseudo-bigint.d.ts +5 -0
  227. package/dist/api/compiler/pseudo-bigint.js +61 -0
  228. package/dist/api/compiler/regexp-checker.d.ts +38 -0
  229. package/dist/api/compiler/regexp-checker.js +942 -0
  230. package/dist/api/compiler/relations.d.ts +263 -0
  231. package/dist/api/compiler/relations.js +4002 -0
  232. package/dist/api/compiler/reparser.d.ts +48 -0
  233. package/dist/api/compiler/reparser.js +1323 -0
  234. package/dist/api/compiler/scanner.d.ts +256 -0
  235. package/dist/api/compiler/scanner.js +2853 -0
  236. package/dist/api/compiler/side-state.d.ts +16 -0
  237. package/dist/api/compiler/side-state.js +89 -0
  238. package/dist/api/compiler/sourcemap.d.ts +55 -0
  239. package/dist/api/compiler/sourcemap.js +340 -0
  240. package/dist/api/compiler/spelling.d.ts +14 -0
  241. package/dist/api/compiler/spelling.js +128 -0
  242. package/dist/api/compiler/symbol-accessibility.d.ts +57 -0
  243. package/dist/api/compiler/symbol-accessibility.js +991 -0
  244. package/dist/api/compiler/symbol.d.ts +282 -0
  245. package/dist/api/compiler/symbol.js +339 -0
  246. package/dist/api/compiler/symlinks.d.ts +32 -0
  247. package/dist/api/compiler/symlinks.js +114 -0
  248. package/dist/api/compiler/syntax-kind.d.ts +389 -0
  249. package/dist/api/compiler/syntax-kind.js +2 -0
  250. package/dist/api/compiler/timeline.d.ts +9 -0
  251. package/dist/api/compiler/timeline.js +54 -0
  252. package/dist/api/compiler/transformers/alias-references.d.ts +39 -0
  253. package/dist/api/compiler/transformers/alias-references.js +677 -0
  254. package/dist/api/compiler/transformers/async-utilities.d.ts +51 -0
  255. package/dist/api/compiler/transformers/async-utilities.js +260 -0
  256. package/dist/api/compiler/transformers/async.d.ts +53 -0
  257. package/dist/api/compiler/transformers/async.js +645 -0
  258. package/dist/api/compiler/transformers/class-fields.d.ts +206 -0
  259. package/dist/api/compiler/transformers/class-fields.js +2418 -0
  260. package/dist/api/compiler/transformers/class-utilities.d.ts +46 -0
  261. package/dist/api/compiler/transformers/class-utilities.js +261 -0
  262. package/dist/api/compiler/transformers/commonjs-module.d.ts +103 -0
  263. package/dist/api/compiler/transformers/commonjs-module.js +1180 -0
  264. package/dist/api/compiler/transformers/const-enum-inliner.d.ts +11 -0
  265. package/dist/api/compiler/transformers/const-enum-inliner.js +36 -0
  266. package/dist/api/compiler/transformers/declarations-diagnostics.d.ts +52 -0
  267. package/dist/api/compiler/transformers/declarations-diagnostics.js +539 -0
  268. package/dist/api/compiler/transformers/declarations-pseudo.d.ts +160 -0
  269. package/dist/api/compiler/transformers/declarations-pseudo.js +799 -0
  270. package/dist/api/compiler/transformers/declarations-resolver.d.ts +152 -0
  271. package/dist/api/compiler/transformers/declarations-resolver.js +35 -0
  272. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +119 -0
  273. package/dist/api/compiler/transformers/declarations-syntactic.js +1582 -0
  274. package/dist/api/compiler/transformers/declarations-tracker.d.ts +46 -0
  275. package/dist/api/compiler/transformers/declarations-tracker.js +198 -0
  276. package/dist/api/compiler/transformers/declarations.d.ts +175 -0
  277. package/dist/api/compiler/transformers/declarations.js +2381 -0
  278. package/dist/api/compiler/transformers/decorator-metadata.d.ts +54 -0
  279. package/dist/api/compiler/transformers/decorator-metadata.js +554 -0
  280. package/dist/api/compiler/transformers/decorator-utilities.d.ts +38 -0
  281. package/dist/api/compiler/transformers/decorator-utilities.js +238 -0
  282. package/dist/api/compiler/transformers/destructuring.d.ts +25 -0
  283. package/dist/api/compiler/transformers/destructuring.js +626 -0
  284. package/dist/api/compiler/transformers/downlevel.d.ts +6 -0
  285. package/dist/api/compiler/transformers/downlevel.js +45 -0
  286. package/dist/api/compiler/transformers/emit-resolver.d.ts +61 -0
  287. package/dist/api/compiler/transformers/emit-resolver.js +197 -0
  288. package/dist/api/compiler/transformers/es-decorators.d.ts +118 -0
  289. package/dist/api/compiler/transformers/es-decorators.js +1901 -0
  290. package/dist/api/compiler/transformers/exponentiation.d.ts +11 -0
  291. package/dist/api/compiler/transformers/exponentiation.js +76 -0
  292. package/dist/api/compiler/transformers/external-module-info.d.ts +35 -0
  293. package/dist/api/compiler/transformers/external-module-info.js +351 -0
  294. package/dist/api/compiler/transformers/for-await.d.ts +43 -0
  295. package/dist/api/compiler/transformers/for-await.js +469 -0
  296. package/dist/api/compiler/transformers/import-elision.d.ts +16 -0
  297. package/dist/api/compiler/transformers/import-elision.js +124 -0
  298. package/dist/api/compiler/transformers/jsx-entities.d.ts +1 -0
  299. package/dist/api/compiler/transformers/jsx-entities.js +256 -0
  300. package/dist/api/compiler/transformers/jsx.d.ts +71 -0
  301. package/dist/api/compiler/transformers/jsx.js +700 -0
  302. package/dist/api/compiler/transformers/legacy-decorators.d.ts +56 -0
  303. package/dist/api/compiler/transformers/legacy-decorators.js +564 -0
  304. package/dist/api/compiler/transformers/logical-assignment.d.ts +14 -0
  305. package/dist/api/compiler/transformers/logical-assignment.js +62 -0
  306. package/dist/api/compiler/transformers/module-utilities.d.ts +9 -0
  307. package/dist/api/compiler/transformers/module-utilities.js +36 -0
  308. package/dist/api/compiler/transformers/module.d.ts +49 -0
  309. package/dist/api/compiler/transformers/module.js +296 -0
  310. package/dist/api/compiler/transformers/named-evaluation.d.ts +26 -0
  311. package/dist/api/compiler/transformers/named-evaluation.js +266 -0
  312. package/dist/api/compiler/transformers/nullish-coalescing.d.ts +9 -0
  313. package/dist/api/compiler/transformers/nullish-coalescing.js +26 -0
  314. package/dist/api/compiler/transformers/object-rest-spread.d.ts +34 -0
  315. package/dist/api/compiler/transformers/object-rest-spread.js +411 -0
  316. package/dist/api/compiler/transformers/optional-catch.d.ts +9 -0
  317. package/dist/api/compiler/transformers/optional-catch.js +20 -0
  318. package/dist/api/compiler/transformers/optional-chain.d.ts +14 -0
  319. package/dist/api/compiler/transformers/optional-chain.js +188 -0
  320. package/dist/api/compiler/transformers/reference-resolver.d.ts +129 -0
  321. package/dist/api/compiler/transformers/reference-resolver.js +1157 -0
  322. package/dist/api/compiler/transformers/runtime-syntax.d.ts +71 -0
  323. package/dist/api/compiler/transformers/runtime-syntax.js +753 -0
  324. package/dist/api/compiler/transformers/subtree-facts.d.ts +10 -0
  325. package/dist/api/compiler/transformers/subtree-facts.js +205 -0
  326. package/dist/api/compiler/transformers/syntax-facts.d.ts +52 -0
  327. package/dist/api/compiler/transformers/syntax-facts.js +258 -0
  328. package/dist/api/compiler/transformers/tagged-template.d.ts +17 -0
  329. package/dist/api/compiler/transformers/tagged-template.js +148 -0
  330. package/dist/api/compiler/transformers/transformer.d.ts +17 -0
  331. package/dist/api/compiler/transformers/transformer.js +54 -0
  332. package/dist/api/compiler/transformers/type-eraser.d.ts +21 -0
  333. package/dist/api/compiler/transformers/type-eraser.js +346 -0
  334. package/dist/api/compiler/transformers/type-serialization.d.ts +20 -0
  335. package/dist/api/compiler/transformers/type-serialization.js +347 -0
  336. package/dist/api/compiler/transformers/using.d.ts +56 -0
  337. package/dist/api/compiler/transformers/using.js +453 -0
  338. package/dist/api/compiler/transformers/utilities.d.ts +50 -0
  339. package/dist/api/compiler/transformers/utilities.js +347 -0
  340. package/dist/api/compiler/transformers/visitor-base.d.ts +6 -0
  341. package/dist/api/compiler/transformers/visitor-base.js +817 -0
  342. package/dist/api/compiler/transformers/visitor-hooks.d.ts +29 -0
  343. package/dist/api/compiler/transformers/visitor-hooks.js +189 -0
  344. package/dist/api/compiler/tsconfig.d.ts +177 -0
  345. package/dist/api/compiler/tsconfig.js +1311 -0
  346. package/dist/api/compiler/type-printer.d.ts +15 -0
  347. package/dist/api/compiler/type-printer.js +74 -0
  348. package/dist/api/compiler/types.d.ts +87 -0
  349. package/dist/api/compiler/types.js +23 -0
  350. package/dist/api/compiler/unicode-identifiers.d.ts +2 -0
  351. package/dist/api/compiler/unicode-identifiers.js +209 -0
  352. package/dist/api/compiler/unicode-properties.d.ts +8 -0
  353. package/dist/api/compiler/unicode-properties.js +531 -0
  354. package/dist/api/compiler/vfs-match.d.ts +24 -0
  355. package/dist/api/compiler/vfs-match.js +587 -0
  356. package/dist/api/library/ast.d.ts +3 -2
  357. package/dist/api/library/ast.generated.d.ts +127 -139
  358. package/dist/api/library/checker.d.ts +51 -0
  359. package/dist/api/library/checker.js +318 -0
  360. package/dist/api/library/diagnostics.d.ts +13 -0
  361. package/dist/api/library/diagnostics.js +50 -0
  362. package/dist/api/library/disk.d.ts +13 -0
  363. package/dist/api/library/disk.js +66 -0
  364. package/dist/api/library/errors.d.ts +13 -0
  365. package/dist/api/library/errors.js +24 -0
  366. package/dist/api/library/host.d.ts +24 -0
  367. package/dist/api/library/host.js +52 -0
  368. package/dist/api/library/index.d.ts +5 -1
  369. package/dist/api/library/index.js +4 -0
  370. package/dist/api/library/nodes.d.ts +51 -0
  371. package/dist/api/library/nodes.js +196 -0
  372. package/dist/api/library/options.d.ts +144 -0
  373. package/dist/api/library/options.js +308 -0
  374. package/dist/api/library/parse.d.ts +19 -0
  375. package/dist/api/library/parse.js +41 -0
  376. package/dist/api/library/program.d.ts +21 -0
  377. package/dist/api/library/program.js +234 -0
  378. package/dist/api/library/types.d.ts +14 -1
  379. package/package.json +12 -8
  380. package/src/compiler/ast-utilities.ts +548 -0
  381. package/src/compiler/ast.ts +12870 -0
  382. package/src/compiler/astnav.ts +799 -0
  383. package/src/compiler/binder-utilities.ts +1392 -0
  384. package/src/compiler/binder.ts +2707 -0
  385. package/src/compiler/build-info.ts +1197 -0
  386. package/src/compiler/character-codes.ts +323 -0
  387. package/src/compiler/checker-calls.ts +2155 -0
  388. package/src/compiler/checker-classes.ts +706 -0
  389. package/src/compiler/checker-contextual.ts +1457 -0
  390. package/src/compiler/checker-declaration-order.ts +438 -0
  391. package/src/compiler/checker-declarations.ts +1201 -0
  392. package/src/compiler/checker-declared-types.ts +919 -0
  393. package/src/compiler/checker-decorators.ts +694 -0
  394. package/src/compiler/checker-deprecation.ts +355 -0
  395. package/src/compiler/checker-destructuring.ts +805 -0
  396. package/src/compiler/checker-elaboration.ts +477 -0
  397. package/src/compiler/checker-emit-helpers.ts +224 -0
  398. package/src/compiler/checker-emit-resolver.ts +769 -0
  399. package/src/compiler/checker-evaluator.ts +243 -0
  400. package/src/compiler/checker-expressions.ts +1831 -0
  401. package/src/compiler/checker-features.ts +361 -0
  402. package/src/compiler/checker-flow.ts +394 -0
  403. package/src/compiler/checker-functions.ts +1296 -0
  404. package/src/compiler/checker-generated-code.ts +227 -0
  405. package/src/compiler/checker-globals.ts +52 -0
  406. package/src/compiler/checker-grammar.ts +3596 -0
  407. package/src/compiler/checker-heritage.ts +1240 -0
  408. package/src/compiler/checker-inference.ts +2584 -0
  409. package/src/compiler/checker-iteration.ts +1206 -0
  410. package/src/compiler/checker-javascript.ts +502 -0
  411. package/src/compiler/checker-jsdoc.ts +360 -0
  412. package/src/compiler/checker-jsx.ts +1928 -0
  413. package/src/compiler/checker-literals.ts +61 -0
  414. package/src/compiler/checker-members.ts +2480 -0
  415. package/src/compiler/checker-modules.ts +2896 -0
  416. package/src/compiler/checker-narrowing.ts +3230 -0
  417. package/src/compiler/checker-object-literals.ts +591 -0
  418. package/src/compiler/checker-operators.ts +1422 -0
  419. package/src/compiler/checker-overloads.ts +328 -0
  420. package/src/compiler/checker-property-access.ts +906 -0
  421. package/src/compiler/checker-services.ts +1149 -0
  422. package/src/compiler/checker-signatures.ts +1032 -0
  423. package/src/compiler/checker-source-file.ts +732 -0
  424. package/src/compiler/checker-statements.ts +292 -0
  425. package/src/compiler/checker-super.ts +261 -0
  426. package/src/compiler/checker-symbol-types.ts +1187 -0
  427. package/src/compiler/checker-symbols.ts +2157 -0
  428. package/src/compiler/checker-type-factory.ts +2616 -0
  429. package/src/compiler/checker-type-nodes.ts +1033 -0
  430. package/src/compiler/checker-type-operators.ts +2510 -0
  431. package/src/compiler/checker-types.ts +2520 -0
  432. package/src/compiler/checker-unused.ts +642 -0
  433. package/src/compiler/checker-utilities.ts +161 -0
  434. package/src/compiler/checker.ts +1138 -0
  435. package/src/compiler/command-line.ts +436 -0
  436. package/src/compiler/compile-program.ts +439 -0
  437. package/src/compiler/decoder.ts +1209 -0
  438. package/src/compiler/diagnostic-locales.ts +86 -0
  439. package/src/compiler/diagnostic-messages.ts +2349 -0
  440. package/src/compiler/diagnostics.ts +858 -0
  441. package/src/compiler/emitter.ts +434 -0
  442. package/src/compiler/encoder.ts +1945 -0
  443. package/src/compiler/file-include.ts +741 -0
  444. package/src/compiler/file-loader.ts +1597 -0
  445. package/src/compiler/file-system.ts +143 -0
  446. package/src/compiler/flow.ts +89 -0
  447. package/src/compiler/help.ts +473 -0
  448. package/src/compiler/incremental.ts +2818 -0
  449. package/src/compiler/init.ts +141 -0
  450. package/src/compiler/instantiation.ts +938 -0
  451. package/src/compiler/jsdoc.ts +1386 -0
  452. package/src/compiler/link-tables.ts +343 -0
  453. package/src/compiler/locale-data.ts +203 -0
  454. package/src/compiler/locale.ts +307 -0
  455. package/src/compiler/locales/cs-CZ.ts +5 -0
  456. package/src/compiler/locales/de-DE.ts +5 -0
  457. package/src/compiler/locales/es-ES.ts +5 -0
  458. package/src/compiler/locales/fr-FR.ts +5 -0
  459. package/src/compiler/locales/it-IT.ts +5 -0
  460. package/src/compiler/locales/ja-JP.ts +5 -0
  461. package/src/compiler/locales/ko-KR.ts +5 -0
  462. package/src/compiler/locales/pl-PL.ts +5 -0
  463. package/src/compiler/locales/pt-BR.ts +5 -0
  464. package/src/compiler/locales/ru-RU.ts +5 -0
  465. package/src/compiler/locales/tr-TR.ts +5 -0
  466. package/src/compiler/locales/zh-CN.ts +5 -0
  467. package/src/compiler/locales/zh-TW.ts +5 -0
  468. package/src/compiler/module-resolution-types.ts +243 -0
  469. package/src/compiler/module-resolution.ts +2072 -0
  470. package/src/compiler/module-specifiers.ts +1491 -0
  471. package/src/compiler/name-resolver.ts +646 -0
  472. package/src/compiler/node-builder-names.ts +1071 -0
  473. package/src/compiler/node-builder-pseudo.ts +892 -0
  474. package/src/compiler/node-builder-reuse.ts +764 -0
  475. package/src/compiler/node-builder.ts +3433 -0
  476. package/src/compiler/option-declarations.ts +1560 -0
  477. package/src/compiler/options.ts +1576 -0
  478. package/src/compiler/output-paths.ts +334 -0
  479. package/src/compiler/package-json.ts +1083 -0
  480. package/src/compiler/parallel-check.ts +1954 -0
  481. package/src/compiler/parallel-parse.ts +595 -0
  482. package/src/compiler/parse-thread.ts +136 -0
  483. package/src/compiler/parser.ts +7766 -0
  484. package/src/compiler/path.ts +717 -0
  485. package/src/compiler/printer/async-helpers.ts +183 -0
  486. package/src/compiler/printer/auto-generate.ts +27 -0
  487. package/src/compiler/printer/decorator-helpers.ts +218 -0
  488. package/src/compiler/printer/emit-context.ts +684 -0
  489. package/src/compiler/printer/emit-flags.ts +64 -0
  490. package/src/compiler/printer/factory-base.ts +2577 -0
  491. package/src/compiler/printer/factory.ts +764 -0
  492. package/src/compiler/printer/helpers.ts +291 -0
  493. package/src/compiler/printer/name-generator.ts +372 -0
  494. package/src/compiler/printer/printer.ts +5072 -0
  495. package/src/compiler/printer/text-writer.ts +183 -0
  496. package/src/compiler/printer/utilities.ts +884 -0
  497. package/src/compiler/program-checker.ts +594 -0
  498. package/src/compiler/program-utilities.ts +435 -0
  499. package/src/compiler/program.ts +1426 -0
  500. package/src/compiler/pseudo-bigint.ts +62 -0
  501. package/src/compiler/regexp-checker.ts +1142 -0
  502. package/src/compiler/relations.ts +5149 -0
  503. package/src/compiler/reparser.ts +1566 -0
  504. package/src/compiler/scanner.ts +2951 -0
  505. package/src/compiler/show-config.ts +239 -0
  506. package/src/compiler/side-state.ts +125 -0
  507. package/src/compiler/sourcemap.ts +366 -0
  508. package/src/compiler/spelling.ts +122 -0
  509. package/src/compiler/symbol-accessibility.ts +1166 -0
  510. package/src/compiler/symbol.ts +557 -0
  511. package/src/compiler/symlinks.ts +137 -0
  512. package/src/compiler/syntax-kind.ts +391 -0
  513. package/src/compiler/thread-entry.ts +191 -0
  514. package/src/compiler/timeline.ts +53 -0
  515. package/src/compiler/transformers/alias-references.ts +757 -0
  516. package/src/compiler/transformers/async-utilities.ts +335 -0
  517. package/src/compiler/transformers/async.ts +838 -0
  518. package/src/compiler/transformers/class-fields.ts +2967 -0
  519. package/src/compiler/transformers/class-utilities.ts +324 -0
  520. package/src/compiler/transformers/commonjs-module.ts +1621 -0
  521. package/src/compiler/transformers/const-enum-inliner.ts +50 -0
  522. package/src/compiler/transformers/declarations-diagnostics.ts +833 -0
  523. package/src/compiler/transformers/declarations-pseudo.ts +969 -0
  524. package/src/compiler/transformers/declarations-resolver.ts +249 -0
  525. package/src/compiler/transformers/declarations-syntactic.ts +1867 -0
  526. package/src/compiler/transformers/declarations-tracker.ts +269 -0
  527. package/src/compiler/transformers/declarations.ts +3120 -0
  528. package/src/compiler/transformers/decorator-metadata.ts +697 -0
  529. package/src/compiler/transformers/decorator-utilities.ts +283 -0
  530. package/src/compiler/transformers/destructuring.ts +708 -0
  531. package/src/compiler/transformers/downlevel.ts +50 -0
  532. package/src/compiler/transformers/emit-resolver.ts +258 -0
  533. package/src/compiler/transformers/es-decorators.ts +2682 -0
  534. package/src/compiler/transformers/exponentiation.ts +80 -0
  535. package/src/compiler/transformers/external-module-info.ts +412 -0
  536. package/src/compiler/transformers/for-await.ts +687 -0
  537. package/src/compiler/transformers/import-elision.ts +152 -0
  538. package/src/compiler/transformers/jsx-entities.ts +256 -0
  539. package/src/compiler/transformers/jsx.ts +824 -0
  540. package/src/compiler/transformers/legacy-decorators.ts +726 -0
  541. package/src/compiler/transformers/logical-assignment.ts +75 -0
  542. package/src/compiler/transformers/module-utilities.ts +42 -0
  543. package/src/compiler/transformers/module.ts +474 -0
  544. package/src/compiler/transformers/named-evaluation.ts +389 -0
  545. package/src/compiler/transformers/nullish-coalescing.ts +35 -0
  546. package/src/compiler/transformers/object-rest-spread.ts +577 -0
  547. package/src/compiler/transformers/optional-catch.ts +29 -0
  548. package/src/compiler/transformers/optional-chain.ts +246 -0
  549. package/src/compiler/transformers/reference-resolver.ts +1213 -0
  550. package/src/compiler/transformers/runtime-syntax.ts +942 -0
  551. package/src/compiler/transformers/subtree-facts.ts +253 -0
  552. package/src/compiler/transformers/syntax-facts.ts +358 -0
  553. package/src/compiler/transformers/tagged-template.ts +167 -0
  554. package/src/compiler/transformers/transformer.ts +56 -0
  555. package/src/compiler/transformers/type-eraser.ts +520 -0
  556. package/src/compiler/transformers/type-serialization.ts +374 -0
  557. package/src/compiler/transformers/using.ts +613 -0
  558. package/src/compiler/transformers/utilities.ts +419 -0
  559. package/src/compiler/transformers/visitor-base.ts +1601 -0
  560. package/src/compiler/transformers/visitor-hooks.ts +252 -0
  561. package/src/compiler/tsc-build.ts +1422 -0
  562. package/src/compiler/tsc-cli.ts +669 -0
  563. package/src/compiler/tsc-compile.ts +446 -0
  564. package/src/compiler/tsc-watch.ts +922 -0
  565. package/src/compiler/tsconfig.ts +1574 -0
  566. package/src/compiler/type-printer.ts +110 -0
  567. package/src/compiler/types.ts +115 -0
  568. package/src/compiler/unicode-identifiers.ts +212 -0
  569. package/src/compiler/unicode-properties.ts +537 -0
  570. package/src/compiler/vfs-match.ts +597 -0
  571. package/src/compiler/xxh3.ts +650 -0
  572. package/src/library/ast.generated.ts +141 -167
  573. package/src/library/ast.ts +4 -1
  574. package/src/library/checker.ts +384 -0
  575. package/src/library/diagnostics.ts +72 -0
  576. package/src/library/disk.ts +73 -0
  577. package/src/library/errors.ts +26 -0
  578. package/src/library/host.ts +63 -0
  579. package/src/library/index.ts +21 -0
  580. package/src/library/nodes.ts +232 -0
  581. package/src/library/options.ts +449 -0
  582. package/src/library/parse.ts +63 -0
  583. package/src/library/program.ts +293 -0
  584. package/src/library/types.ts +14 -1
@@ -0,0 +1,1093 @@
1
+ import type { ProgramLifetime } from '@scriptc/types';
2
+ import type { Node } from './ast.js';
3
+ import { type Symbol, type SymbolTable } from './symbol.js';
4
+ export declare const enum TypeFlags {
5
+ None = 0,
6
+ Any = 1,
7
+ Unknown = 2,
8
+ Undefined = 4,
9
+ Null = 8,
10
+ Void = 16,
11
+ String = 32,
12
+ Number = 64,
13
+ BigInt = 128,
14
+ Boolean = 256,
15
+ ESSymbol = 512,
16
+ StringLiteral = 1024,
17
+ NumberLiteral = 2048,
18
+ BigIntLiteral = 4096,
19
+ BooleanLiteral = 8192,
20
+ UniqueESSymbol = 16384,
21
+ /** Always combined with StringLiteral, NumberLiteral, or Union. */
22
+ EnumLiteral = 32768,
23
+ /** A numeric enum member with a computed value. */
24
+ Enum = 65536,
25
+ NonPrimitive = 131072,
26
+ Never = 262144,
27
+ TypeParameter = 524288,
28
+ Object = 1048576,
29
+ Index = 2097152,
30
+ TemplateLiteral = 4194304,
31
+ StringMapping = 8388608,
32
+ Substitution = 16777216,
33
+ IndexedAccess = 33554432,
34
+ Conditional = 67108864,
35
+ Union = 134217728,
36
+ Intersection = 268435456,
37
+ Reserved1 = 536870912,
38
+ Reserved2 = 1073741824,
39
+ AnyOrUnknown = 3,
40
+ Nullable = 12,
41
+ Literal = 15360,
42
+ Unit = 97292,
43
+ Freshable = 80896,
44
+ StringOrNumberLiteral = 3072,
45
+ StringOrNumberLiteralOrUnique = 19456,
46
+ DefinitelyFalsy = 15388,
47
+ PossiblyFalsy = 15868,
48
+ Intrinsic = 393983,
49
+ StringLike = 12583968,
50
+ NumberLike = 67648,
51
+ BigIntLike = 4224,
52
+ BooleanLike = 8448,
53
+ EnumLike = 98304,
54
+ ESSymbolLike = 16896,
55
+ VoidLike = 20,
56
+ Primitive = 12713980,
57
+ DefinitelyNonNullable = 13893600,
58
+ DisjointDomains = 12812284,
59
+ UnionOrIntersection = 402653184,
60
+ StructuredType = 403701760,
61
+ TypeVariable = 34078720,
62
+ InstantiableNonPrimitive = 117964800,
63
+ InstantiablePrimitive = 14680064,
64
+ Instantiable = 132644864,
65
+ StructuredOrInstantiable = 536346624,
66
+ ObjectFlagsType = 403963917,
67
+ Simplifiable = 102760448,
68
+ Singleton = 394239,
69
+ /** Types where narrowing actually narrows. */
70
+ Narrowable = 536575971,
71
+ /** Aggregated during union and intersection construction. */
72
+ IncludesMask = 416808959,
73
+ IncludesMissingType = 524288,
74
+ IncludesNonWideningType = 2097152,
75
+ IncludesWildcard = 33554432,
76
+ IncludesEmptyObject = 67108864,
77
+ IncludesInstantiable = 16777216,
78
+ IncludesConstrainedTypeVariable = 536870912,
79
+ IncludesError = 1073741824,
80
+ NotPrimitiveUnion = 286523411
81
+ }
82
+ /** The sign bit, which TypeScript enums can't hold as a positive flag. */
83
+ export declare const typeFlagsReserved3 = -2147483648;
84
+ export declare const enum ObjectFlags {
85
+ None = 0,
86
+ Class = 1,
87
+ Interface = 2,
88
+ /** A generic type reference. */
89
+ Reference = 4,
90
+ Tuple = 8,
91
+ Anonymous = 16,
92
+ Mapped = 32,
93
+ /** An instantiated anonymous or mapped type. */
94
+ Instantiated = 64,
95
+ ObjectLiteral = 128,
96
+ EvolvingArray = 256,
97
+ ObjectLiteralPatternWithComputedProperties = 512,
98
+ ReverseMapped = 1024,
99
+ JsxAttributes = 2048,
100
+ /** Declared in JS: reads and writes of missing members are allowed. */
101
+ JSLiteral = 4096,
102
+ FreshLiteral = 8192,
103
+ ArrayLiteral = 16384,
104
+ PrimitiveUnion = 32768,
105
+ ContainsWideningType = 65536,
106
+ ContainsObjectOrArrayLiteral = 131072,
107
+ /** Is or contains anyFunctionType or silentNeverType. */
108
+ NonInferrableType = 262144,
109
+ CouldContainTypeVariablesComputed = 524288,
110
+ CouldContainTypeVariables = 1048576,
111
+ MembersResolved = 2097152,
112
+ ClassOrInterface = 3,
113
+ RequiresWidening = 196608,
114
+ PropagatingFlags = 458752,
115
+ InstantiatedMapped = 96,
116
+ ContainsSpread = 4194304,
117
+ ObjectRestType = 8388608,
118
+ InstantiationExpressionType = 16777216,
119
+ SingleSignatureType = 33554432,
120
+ IsClassInstanceClone = 67108864,
121
+ IdenticalBaseTypeCalculated = 134217728,
122
+ IdenticalBaseTypeExists = 268435456,
123
+ UnresolvedMembers = 536870912,
124
+ FromTypeNode = 1073741824,
125
+ /**
126
+ * The type keeps the state that is computed lazily in the checker's side tables instead of its
127
+ * own fields, which stay unset (`sideOf`). Every type with `TSC_TS_SIDE_STATE=1`.
128
+ */
129
+ SideState = -2147483648,
130
+ IsGenericTypeComputed = 4194304,
131
+ IsGenericObjectType = 8388608,
132
+ IsGenericIndexType = 16777216,
133
+ IsGenericType = 25165824,
134
+ ContainsIntersections = 33554432,
135
+ IsUnknownLikeUnionComputed = 67108864,
136
+ IsUnknownLikeUnion = 134217728,
137
+ IsNeverIntersectionComputed = 33554432,
138
+ IsNeverIntersection = 67108864,
139
+ IsConstrainedTypeVariable = 134217728,
140
+ ObjectTypeKindMask = 50332991
141
+ }
142
+ export declare const enum ElementFlags {
143
+ None = 0,
144
+ Required = 1,
145
+ Optional = 2,
146
+ Rest = 4,
147
+ Variadic = 8,
148
+ Fixed = 3,
149
+ Variable = 12,
150
+ NonRequired = 14,
151
+ NonRest = 11
152
+ }
153
+ export declare const enum SignatureFlags {
154
+ None = 0,
155
+ HasRestParameter = 1,
156
+ HasLiteralTypes = 2,
157
+ Construct = 4,
158
+ Abstract = 8,
159
+ IsInnerCallChain = 16,
160
+ IsOuterCallChain = 32,
161
+ IsUntypedSignatureInJSFile = 64,
162
+ IsNonInferrable = 128,
163
+ IsSignatureCandidateForOverloadFailure = 256,
164
+ /** The signature keeps its lazily computed state in the checker's side tables (`signatureSideOf`). */
165
+ SideState = 512,
166
+ PropagatingFlags = 335,
167
+ CallChainFlags = 48
168
+ }
169
+ export declare const enum SignatureKind {
170
+ Call = 0,
171
+ Construct = 1
172
+ }
173
+ export declare const enum IndexFlags {
174
+ None = 0,
175
+ StringsOnly = 1,
176
+ NoIndexSignatures = 2,
177
+ NoReducibleCheck = 4
178
+ }
179
+ export declare const enum AccessFlags {
180
+ None = 0,
181
+ IncludeUndefined = 1,
182
+ NoIndexSignatures = 2,
183
+ Writing = 4,
184
+ CacheSymbol = 8,
185
+ AllowMissing = 16,
186
+ ExpressionPosition = 32,
187
+ ReportDeprecated = 64,
188
+ SuppressNoImplicitAnyError = 128,
189
+ Contextual = 256,
190
+ Persistent = 1
191
+ }
192
+ export declare const enum VarianceFlags {
193
+ Invariant = 0,
194
+ Covariant = 1,
195
+ Contravariant = 2,
196
+ Bivariant = 3,
197
+ /** An unwitnessed type parameter. */
198
+ Independent = 4,
199
+ VarianceMask = 7,
200
+ /** Relies on structural comparisons not reflected in generic relationships. */
201
+ Unmeasurable = 8,
202
+ /** May produce false negatives, never false positives. */
203
+ Unreliable = 16,
204
+ AllowsStructuralFallback = 24
205
+ }
206
+ /** `x & y` picks the lesser in False < Unknown < Maybe < True; `x | y` the greater. */
207
+ export declare const enum Ternary {
208
+ False = 0,
209
+ Unknown = 1,
210
+ Maybe = 3,
211
+ True = -1
212
+ }
213
+ export declare const enum TypePredicateKind {
214
+ This = 0,
215
+ Identifier = 1,
216
+ AssertsThis = 2,
217
+ AssertsIdentifier = 3
218
+ }
219
+ export declare const enum NodeCheckFlags {
220
+ None = 0,
221
+ TypeChecked = 1,
222
+ UnusedChecked = 2,
223
+ ContextChecked = 64,
224
+ EnumValuesComputed = 1024,
225
+ AssignmentsMarked = 131072,
226
+ ContainsClassWithPrivateIdentifiers = 1048576,
227
+ ContainsSuperPropertyInStaticInitializer = 2097152,
228
+ InCheckIdentifier = 4194304,
229
+ InitializerIsUndefined = 16777216,
230
+ InitializerIsUndefinedComputed = 33554432
231
+ }
232
+ export declare const enum CheckMode {
233
+ Normal = 0,
234
+ Contextual = 1,
235
+ Inferential = 2,
236
+ SkipContextSensitive = 4,
237
+ SkipGenericFunctions = 8,
238
+ IsForSignatureHelp = 16,
239
+ RestBindingElement = 32,
240
+ TypeOnly = 64,
241
+ ForceTuple = 128
242
+ }
243
+ export declare const enum TypeFormatFlags {
244
+ None = 0,
245
+ NoTruncation = 1,
246
+ WriteArrayAsGenericType = 2,
247
+ UseStructuralFallback = 8,
248
+ WriteTypeArgumentsOfSignature = 32,
249
+ UseFullyQualifiedType = 64,
250
+ SuppressAnyReturnType = 256,
251
+ MultilineObjectLiterals = 1024,
252
+ WriteClassExpressionAsTypeLiteral = 2048,
253
+ UseTypeOfFunction = 4096,
254
+ OmitParameterModifiers = 8192,
255
+ UseAliasDefinedOutsideCurrentScope = 16384,
256
+ AllowUniqueESSymbolType = 1048576,
257
+ AddUndefined = 131072,
258
+ WriteArrowStyleSignature = 262144,
259
+ InArrayType = 524288,
260
+ InElementType = 2097152,
261
+ InFirstTypeArgument = 4194304,
262
+ InTypeAlias = 8388608,
263
+ OmitThisParameter = 33554432,
264
+ WriteCallStyleSignature = 134217728,
265
+ UseSingleQuotesForStringLiteralType = 268435456,
266
+ NoTypeReduction = 536870912
267
+ }
268
+ /** Kinds of the checker's `cachedTypesById` entries, which are keyed by kind and type id (tsgo's CachedTypeKey). */
269
+ export declare const enum CachedTypeKind {
270
+ LiteralUnionBaseType = 0,
271
+ IndexType = 1,
272
+ StringIndexType = 2,
273
+ EquivalentBaseType = 3,
274
+ Apparent = 4,
275
+ Awaited = 5,
276
+ EvolvingArray = 6,
277
+ ArrayLiteral = 7,
278
+ PermissiveInstantiation = 8,
279
+ RestrictiveInstantiation = 9,
280
+ RestrictiveTypeParameter = 10,
281
+ IndexedAccessForReading = 11,
282
+ IndexedAccessForWriting = 12,
283
+ Widened = 13,
284
+ RegularObjectLiteral = 14,
285
+ PromisedTypeOfPromise = 15,
286
+ Optional = 16,
287
+ OptionalProperty = 17
288
+ }
289
+ export declare function cachedTypeKey(kind: CachedTypeKind, id: number): number;
290
+ /** The `cachedTypesByPair` key of two type ids and four bits, or -1 when an id is too large to pack. */
291
+ export declare function cachedTypePairKey(a: number, b: number, bits: number): number;
292
+ /** An alias symbol and its type arguments, for types written through a type alias. */
293
+ export declare class TypeAlias {
294
+ readonly symbol: Symbol;
295
+ readonly typeArguments: Type[];
296
+ constructor(symbol: Symbol, typeArguments: Type[]);
297
+ }
298
+ /**
299
+ * Values keyed by a list of types, an optional alias and a small tag: the keys `typeListKey(types) +
300
+ * aliasKey(alias)` plus a suffix spelled, without building them. A lookup takes a number hashing the
301
+ * parts (`typeListHash`); entries keep their parts, so a match is exact and keys sharing a hash chain.
302
+ * Like tsgo's hashed type list keys. A list must not change after it keys an entry.
303
+ *
304
+ * Entries are numbered in the order they are added: `heads` maps a hash to its first entry, and the
305
+ * lists and values of the entries are kept in arrays by number. Aliases, tags and the chains of
306
+ * entries that share a hash get arrays once an entry needs them.
307
+ */
308
+ export declare class TypeListCache<V> {
309
+ private heads;
310
+ private lists;
311
+ private values;
312
+ private aliases;
313
+ private tags;
314
+ /** The next entry with the same hash, or -1. */
315
+ private nexts;
316
+ constructor();
317
+ get(hash: number, types: readonly Type[], alias: TypeAlias | undefined, tag: number): V | undefined;
318
+ set(hash: number, types: readonly Type[], alias: TypeAlias | undefined, tag: number, value: V): void;
319
+ clear(): void;
320
+ /** The number of the entry with these parts, or -1. */
321
+ private find;
322
+ private findFrom;
323
+ }
324
+ /**
325
+ * One list for each sequence of types that a checker keeps (`Checker.typeLists`): references and
326
+ * instantiation caches hold the same type arguments in many places, mostly lists of one or two types,
327
+ * and share one list for them. A list must not change once it is in the table.
328
+ */
329
+ export declare class TypeListTable {
330
+ private readonly heads;
331
+ private readonly lists;
332
+ /** The next list with the same hash, or -1, once two lists share one. */
333
+ private nexts;
334
+ /**
335
+ * The list in the table with the types of `types`, in order, or `types` itself, which joins the
336
+ * table. `hash` is `typeListHash(types, undefined, 0)`.
337
+ */
338
+ intern(hash: number, types: Type[]): Type[];
339
+ }
340
+ /**
341
+ * The references to a generic class, interface or tuple type, by the hash of their type arguments
342
+ * (`createTypeReference`). A reference is its own entry: a lookup compares its type arguments. A
343
+ * reference whose hash another reference has is kept in `collisions`.
344
+ */
345
+ export declare class ReferenceCache {
346
+ private readonly references;
347
+ private collisions;
348
+ get(hash: number, typeArguments: readonly Type[]): TypeReference | undefined;
349
+ /** Adds `reference`, whose type arguments `get` did not find. */
350
+ add(hash: number, reference: TypeReference): void;
351
+ }
352
+ /**
353
+ * Fields that few types set, kept out of line in `Type.extra`, which is created on the first write
354
+ * of a value other than the field's default. A type then costs one slot for all of them. Each field
355
+ * is read and written through an accessor of the type class it belongs to, which returns the
356
+ * default while the type has no extra fields. Rare fields that hot paths read stay inline (the
357
+ * alias, construct signatures): a native accessor returns an owned reference, which costs reference
358
+ * counting on every read of a counted value.
359
+ */
360
+ export declare class TypeExtra implements ProgramLifetime {
361
+ objectTypeWithoutAbstractConstructSignatures: Type | undefined;
362
+ instantiations: TypeListCache<Type> | undefined;
363
+ node: Node | undefined;
364
+ resolvedReducedType: Type | undefined;
365
+ regularType: Type | undefined;
366
+ origin: Type | undefined;
367
+ keyPropertyName: string;
368
+ constituentMap: Map<Type, Type> | undefined;
369
+ constituentIds: Int32Array | undefined;
370
+ membershipTests: number;
371
+ uniqueLiteralFilledInstantiation: Type | undefined;
372
+ constructor();
373
+ }
374
+ /** The extra fields of `t`, created if it has none yet. */
375
+ export declare function typeExtra(t: Type): TypeExtra;
376
+ /**
377
+ * The base of every type. Narrow by `flags` (and `objectFlags` for object types), then cast to
378
+ * the subclass, as tsgo does with `AsUnionType()` etc.
379
+ */
380
+ /**
381
+ * `TSC_TS_SIDE_STATE=1` (a test of the side tables): every type and signature keeps its lazily
382
+ * computed state in the checker's side tables (`ObjectFlags.SideState`, `SignatureFlags.SideState`).
383
+ */
384
+ export declare const sideStateForAll: boolean;
385
+ /**
386
+ * What the methods of types that tsc-ts's public API calls need from the checker that created the type
387
+ * (`InterfaceType.checking`, `ConditionalType.checking`); the Checker implements it.
388
+ */
389
+ export interface TypeChecking {
390
+ baseTypesOf(t: InterfaceType): readonly Type[];
391
+ trueTypeOf(t: ConditionalType): Type;
392
+ falseTypeOf(t: ConditionalType): Type;
393
+ }
394
+ export declare class Type implements ProgramLifetime {
395
+ flags: TypeFlags;
396
+ objectFlags: ObjectFlags;
397
+ readonly id: number;
398
+ symbol: Symbol | undefined;
399
+ alias: TypeAlias | undefined;
400
+ /** For types with a computed base constraint (type variables, structured types, …). */
401
+ resolvedBaseConstraint: Type | undefined;
402
+ /** Rarely set fields; undefined while all of them have their defaults. */
403
+ extra: TypeExtra | undefined;
404
+ constructor(flags: TypeFlags, objectFlags: ObjectFlags, id: number, symbol: Symbol | undefined);
405
+ getSymbol(): Symbol | undefined;
406
+ getAliasSymbol(): Symbol | undefined;
407
+ getAliasTypeArguments(): readonly Type[];
408
+ /** The target of a type reference, index type or string mapping type. */
409
+ getTarget(): Type | undefined;
410
+ /** The members of a union or intersection type, or the types of a template literal type. */
411
+ getTypes(): readonly Type[];
412
+ getFreshType(): Type | undefined;
413
+ getRegularType(): Type | undefined;
414
+ getObjectType(): Type | undefined;
415
+ getIndexType(): Type | undefined;
416
+ getCheckType(): Type | undefined;
417
+ getExtendsType(): Type | undefined;
418
+ getTrueType(): Type | undefined;
419
+ getFalseType(): Type | undefined;
420
+ /** The base type of a substitution type. */
421
+ getBaseType(): Type | undefined;
422
+ /** The constraint of a substitution type. */
423
+ getConstraint(): Type | undefined;
424
+ /** The type parameters of a class or interface type, outer and local, without its `this` type. */
425
+ getTypeParameters(): readonly Type[];
426
+ getOuterTypeParameters(): readonly Type[];
427
+ getLocalTypeParameters(): readonly Type[];
428
+ /** The base types of a class or interface type, or undefined for any other type. */
429
+ getBaseTypes(): readonly Type[] | undefined;
430
+ isClassOrInterface(): boolean;
431
+ isUnionType(): boolean;
432
+ isIntersectionType(): boolean;
433
+ isObjectType(): boolean;
434
+ isIntrinsicType(): boolean;
435
+ /** Whether this is the error type: an intrinsic type named `error`. */
436
+ isErrorType(): boolean;
437
+ isLiteralType(): boolean;
438
+ isStringLiteralType(): boolean;
439
+ isNumberLiteralType(): boolean;
440
+ isBigIntLiteralType(): boolean;
441
+ isBooleanLiteralType(): boolean;
442
+ isTypeReference(): boolean;
443
+ isTupleType(): boolean;
444
+ isIndexType(): boolean;
445
+ isIndexedAccessType(): boolean;
446
+ isConditionalType(): boolean;
447
+ isSubstitutionType(): boolean;
448
+ isTemplateLiteralType(): boolean;
449
+ isStringMappingType(): boolean;
450
+ isTypeParameter(): boolean;
451
+ }
452
+ export declare class IntrinsicType extends Type {
453
+ readonly intrinsicName: string;
454
+ constructor(flags: TypeFlags, objectFlags: ObjectFlags, id: number, intrinsicName: string);
455
+ }
456
+ /**
457
+ * A literal or enum member type. `value` is the string of string literals, the number of number
458
+ * literals, `true`/`false` for booleans, the decimal digits (with a leading `-`) of bigints, and
459
+ * unset for computed enum members.
460
+ */
461
+ export declare class LiteralType extends Type {
462
+ readonly stringValue: string;
463
+ readonly numberValue: number;
464
+ /** Created on first use, except for `true` and `false`. */
465
+ freshType: LiteralType | undefined;
466
+ regularType: LiteralType;
467
+ constructor(flags: TypeFlags, id: number, symbol: Symbol | undefined, stringValue: string, numberValue: number);
468
+ /** The value, as TypeScript 7's API gives it: a string, number, bigint or boolean. */
469
+ get value(): string | number | bigint | boolean;
470
+ }
471
+ export declare class UniqueESSymbolType extends Type {
472
+ readonly name: string;
473
+ constructor(id: number, symbol: Symbol, name: string);
474
+ }
475
+ /**
476
+ * The members table of a type, built when `members` is read (checker-members.ts): of an instantiated
477
+ * type whose member symbols are instantiated on demand (`PendingInstantiatedMembers`), where reading
478
+ * `properties` builds the properties too, as tsgo builds them when it resolves the members, and
479
+ * lookups by name instantiate only the member asked for; or of a type whose members are all
480
+ * properties (`PropertyMembers`), where lookups by name read the properties.
481
+ */
482
+ export declare abstract class PendingMembers {
483
+ /**
484
+ * Set when `properties` is built and the members table is not (`PropertyMembers`): the type's
485
+ * properties, which lookups by name then read.
486
+ */
487
+ materializedProperties: Symbol[] | undefined;
488
+ /**
489
+ * Sets `t.propertiesValue`. Where lookups can read the properties, it replaces `t.pendingMembers`
490
+ * with a `PropertyMembers`; otherwise it sets `t.membersValue` too and clears `t.pendingMembers`.
491
+ */
492
+ abstract materialize(t: StructuredType): void;
493
+ /** Sets `t.membersValue` and `t.propertiesValue` and clears `t.pendingMembers`. */
494
+ abstract materializeTable(t: StructuredType): void;
495
+ /** `members.get(name)` of the table tsgo would have built by now. */
496
+ abstract get(name: string): Symbol | undefined;
497
+ }
498
+ /**
499
+ * The property names of instantiated types whose members tables are built on demand, shared by the
500
+ * instantiations of one source that have the same names in the same order: most instantiations of
501
+ * a class or interface have the members of their source and of the same bases.
502
+ */
503
+ export declare class MemberNames {
504
+ /** The names of the properties, in order. */
505
+ readonly names: string[];
506
+ /** The index of each name in `names`. */
507
+ readonly positions: Map<string, number>;
508
+ /** The indexes in `names` of the members table's names, in table order. */
509
+ readonly tableOrder: number[];
510
+ constructor(names: string[], positions: Map<string, number>, tableOrder: number[]);
511
+ }
512
+ /** A type with members: object types, unions and intersections. */
513
+ export declare class StructuredType extends Type {
514
+ membersValue: SymbolTable | undefined;
515
+ propertiesValue: Symbol[];
516
+ /** Set while the member symbols of an instantiated type are not instantiated yet. */
517
+ pendingMembers: PendingMembers | undefined;
518
+ callSignatures: Signature[];
519
+ constructSignatures: Signature[];
520
+ indexInfos: IndexInfo[];
521
+ constructor(flags: TypeFlags, objectFlags: ObjectFlags, id: number, symbol: Symbol | undefined);
522
+ get objectTypeWithoutAbstractConstructSignatures(): Type | undefined;
523
+ set objectTypeWithoutAbstractConstructSignatures(t: Type | undefined);
524
+ get members(): SymbolTable | undefined;
525
+ set members(members: SymbolTable | undefined);
526
+ get properties(): Symbol[];
527
+ set properties(properties: Symbol[]);
528
+ }
529
+ export declare class ObjectType extends StructuredType {
530
+ /** The generic type this one instantiates. */
531
+ target: Type | undefined;
532
+ mapper: TypeMapper | undefined;
533
+ constructor(objectFlags: ObjectFlags, id: number, symbol: Symbol | undefined);
534
+ get instantiations(): TypeListCache<Type> | undefined;
535
+ set instantiations(instantiations: TypeListCache<Type> | undefined);
536
+ }
537
+ /** An instantiation of a generic class, interface or tuple type. */
538
+ export declare class TypeReference extends ObjectType {
539
+ resolvedTypeArguments: Type[] | undefined;
540
+ constructor(objectFlags: ObjectFlags, id: number, symbol: Symbol | undefined);
541
+ /** The type node of a deferred reference, else undefined. */
542
+ get node(): Node | undefined;
543
+ set node(node: Node | undefined);
544
+ }
545
+ /** A class or interface; when generic, also the reference to itself instantiated with its own type parameters. */
546
+ export declare class InterfaceType extends TypeReference {
547
+ /** Outer, then local type parameters, then the `this` type. */
548
+ allTypeParameters: Type[];
549
+ outerTypeParameterCount: number;
550
+ thisType: Type | undefined;
551
+ baseTypesResolved: boolean;
552
+ declaredMembersResolved: boolean;
553
+ resolvedBaseConstructorType: Type | undefined;
554
+ resolvedBaseTypes: Type[];
555
+ declaredMembers: SymbolTable | undefined;
556
+ declaredCallSignatures: Signature[];
557
+ declaredConstructSignatures: Signature[];
558
+ declaredIndexInfos: IndexInfo[];
559
+ /** Positions of the declared members by name, for lazily instantiated members of instantiations. */
560
+ declaredMemberPositions: Map<string, number> | undefined;
561
+ /** The member states of the last pending instantiation of the type's members (`sharedStates`). */
562
+ lastMemberStates: number[] | undefined;
563
+ /** The property names of the last instantiation whose members table is built on demand. */
564
+ lastMemberNames: MemberNames | undefined;
565
+ /** The references to a generic class, interface or tuple type, by their type arguments. */
566
+ references: ReferenceCache | undefined;
567
+ /** The checker that created the type, for `getBaseTypes()`. */
568
+ checking: TypeChecking | undefined;
569
+ constructor(objectFlags: ObjectFlags, id: number, symbol: Symbol | undefined);
570
+ outerTypeParameters(): Type[];
571
+ localTypeParameters(): Type[];
572
+ typeParameters(): Type[];
573
+ /** `typeParameters().length`, without copying them. */
574
+ typeParameterCount(): number;
575
+ }
576
+ export declare class TupleElementInfo {
577
+ readonly flags: ElementFlags;
578
+ /** A NamedTupleMember or ParameterDeclaration, if labeled. */
579
+ readonly labeledDeclaration: Node | undefined;
580
+ constructor(flags: ElementFlags, labeledDeclaration: Node | undefined);
581
+ }
582
+ export declare class TupleType extends InterfaceType {
583
+ elementInfos: TupleElementInfo[];
584
+ /** Required or variadic elements. */
585
+ minLength: number;
586
+ /** Leading required or optional elements. */
587
+ fixedLength: number;
588
+ combinedFlags: ElementFlags;
589
+ readonly: boolean;
590
+ constructor(objectFlags: ObjectFlags, id: number);
591
+ /** The flags of each element (TypeScript 7's API). */
592
+ get elementFlags(): ElementFlags[];
593
+ }
594
+ export declare class InstantiationExpressionType extends ObjectType {
595
+ node: Node | undefined;
596
+ constructor(objectFlags: ObjectFlags, id: number, symbol: Symbol | undefined);
597
+ }
598
+ export declare class MappedType extends ObjectType {
599
+ declaration: Node | undefined;
600
+ typeParameter: Type | undefined;
601
+ constraintType: Type | undefined;
602
+ nameType: Type | undefined;
603
+ templateType: Type | undefined;
604
+ modifiersType: Type | undefined;
605
+ resolvedApparentType: Type | undefined;
606
+ containsError: boolean;
607
+ constructor(objectFlags: ObjectFlags, id: number, symbol: Symbol | undefined);
608
+ }
609
+ export declare class ReverseMappedType extends ObjectType {
610
+ source: Type | undefined;
611
+ mappedType: Type | undefined;
612
+ constraintType: Type | undefined;
613
+ constructor(objectFlags: ObjectFlags, id: number);
614
+ }
615
+ export declare class EvolvingArrayType extends ObjectType {
616
+ elementType: Type | undefined;
617
+ finalArrayType: Type | undefined;
618
+ constructor(objectFlags: ObjectFlags, id: number);
619
+ }
620
+ /**
621
+ * A union or intersection. Few have their members resolved or their properties cached, so those
622
+ * live in `membersOf` (`UnionOrIntersectionMembers`), which is created when they are first written.
623
+ */
624
+ export declare class UnionOrIntersectionType extends Type {
625
+ readonly types: Type[];
626
+ membersOf: UnionOrIntersectionMembers | undefined;
627
+ constructor(flags: TypeFlags, objectFlags: ObjectFlags, id: number, types: Type[]);
628
+ }
629
+ /**
630
+ * The resolved members of a union or intersection (`membersHolder`) and the caches of its
631
+ * properties, created on first use.
632
+ */
633
+ export declare class UnionOrIntersectionMembers extends StructuredType {
634
+ propertyCache: SymbolTable | undefined;
635
+ propertyCacheWithoutFunctionPropertyAugment: SymbolTable | undefined;
636
+ resolvedProperties: Symbol[] | undefined;
637
+ constructor(flags: TypeFlags, id: number);
638
+ }
639
+ /** The members holder of a union or intersection, created if it has none yet. */
640
+ export declare function unionOrIntersectionMembers(t: UnionOrIntersectionType): UnionOrIntersectionMembers;
641
+ /** A union; all of its own fields are rarely set and live in `extra`. */
642
+ export declare class UnionType extends UnionOrIntersectionType {
643
+ constructor(objectFlags: ObjectFlags, id: number, types: Type[]);
644
+ get resolvedReducedType(): Type | undefined;
645
+ set resolvedReducedType(t: Type | undefined);
646
+ get regularType(): Type | undefined;
647
+ set regularType(t: Type | undefined);
648
+ /** The denormalized union, intersection or index type the union came from. */
649
+ get origin(): Type | undefined;
650
+ set origin(t: Type | undefined);
651
+ /** A property with a unique unit type in every object of the union; '' if not computed, '\0' if none. */
652
+ get keyPropertyName(): string;
653
+ set keyPropertyName(name: string);
654
+ get constituentMap(): Map<Type, Type> | undefined;
655
+ set constituentMap(map: Map<Type, Type> | undefined);
656
+ /**
657
+ * A hash table of the ids of a large union's constituents, for membership tests; created on the
658
+ * second test (`constituentTable`). About eight bytes a constituent, where a set of them took
659
+ * about five times that.
660
+ */
661
+ get constituentIds(): Int32Array | undefined;
662
+ set constituentIds(ids: Int32Array | undefined);
663
+ get membershipTests(): number;
664
+ set membershipTests(tests: number);
665
+ }
666
+ export declare class IntersectionType extends UnionOrIntersectionType {
667
+ resolvedApparentType: Type | undefined;
668
+ constructor(objectFlags: ObjectFlags, id: number, types: Type[]);
669
+ get uniqueLiteralFilledInstantiation(): Type | undefined;
670
+ set uniqueLiteralFilledInstantiation(t: Type | undefined);
671
+ }
672
+ export declare class TypeParameter extends Type {
673
+ constraint: Type | undefined;
674
+ target: Type | undefined;
675
+ mapper: TypeMapper | undefined;
676
+ isThisType: boolean;
677
+ resolvedDefaultType: Type | undefined;
678
+ constructor(id: number, symbol: Symbol | undefined);
679
+ }
680
+ /** `keyof T`. */
681
+ export declare class IndexType extends Type {
682
+ readonly target: Type;
683
+ readonly indexFlags: IndexFlags;
684
+ constructor(id: number, target: Type, indexFlags: IndexFlags);
685
+ }
686
+ /** `T[K]`. */
687
+ export declare class IndexedAccessType extends Type {
688
+ readonly objectType: Type;
689
+ readonly indexType: Type;
690
+ /** Only AccessFlags.Persistent. */
691
+ readonly accessFlags: AccessFlags;
692
+ constructor(id: number, objectType: Type, indexType: Type, accessFlags: AccessFlags);
693
+ }
694
+ export declare class TemplateLiteralType extends Type {
695
+ /** One longer than `types`. */
696
+ readonly texts: string[];
697
+ readonly types: Type[];
698
+ constructor(id: number, texts: string[], types: Type[]);
699
+ }
700
+ /** `Uppercase<T>` and friends. */
701
+ export declare class StringMappingType extends Type {
702
+ readonly target: Type;
703
+ constructor(id: number, symbol: Symbol, target: Type);
704
+ }
705
+ export declare class SubstitutionType extends Type {
706
+ readonly baseType: Type;
707
+ /** What the base type is known to satisfy. */
708
+ readonly constraint: Type;
709
+ constructor(id: number, baseType: Type, constraint: Type);
710
+ }
711
+ export declare class ConditionalRoot {
712
+ readonly node: Node;
713
+ readonly checkType: Type;
714
+ readonly extendsType: Type;
715
+ readonly isDistributive: boolean;
716
+ readonly inferTypeParameters: Type[];
717
+ readonly outerTypeParameters: Type[];
718
+ readonly instantiations: TypeListCache<Type>;
719
+ readonly alias: TypeAlias | undefined;
720
+ /**
721
+ * The type arguments of an extends type that is a reference to a class or interface; null for
722
+ * other extends types, undefined until computed.
723
+ */
724
+ referenceArgs: ReferenceArgs | null | undefined;
725
+ constructor(node: Node, checkType: Type, extendsType: Type, isDistributive: boolean, inferTypeParameters: Type[], outerTypeParameters: Type[], alias: TypeAlias | undefined);
726
+ }
727
+ /** What each type argument of a conditional type's extends type is, for `isFalseForEveryInference`. */
728
+ export declare class ReferenceArgs {
729
+ readonly kinds: ReferenceArgKind[];
730
+ /** The `infer` type parameter of each `ReferenceArgKind.Infer` type argument. */
731
+ readonly inferTypeParameters: (Type | undefined)[];
732
+ constructor(kinds: ReferenceArgKind[], inferTypeParameters: (Type | undefined)[]);
733
+ }
734
+ export declare const enum ReferenceArgKind {
735
+ /** Has no `infer` type parameters, so inference doesn't change it. */
736
+ Fixed = 0,
737
+ /** Just an `infer` type parameter that occurs nowhere else in the extends type. */
738
+ Infer = 1,
739
+ /** An object type with `infer` type parameters: an instantiation of it is an object type. */
740
+ Object = 2,
741
+ Other = 3
742
+ }
743
+ export declare class ConditionalType extends Type {
744
+ readonly root: ConditionalRoot;
745
+ readonly checkType: Type;
746
+ readonly extendsType: Type;
747
+ resolvedTrueType: Type | undefined;
748
+ resolvedFalseType: Type | undefined;
749
+ /** The true and false types, as one list (getBranchTypesFromConditionalType). */
750
+ resolvedBranchTypes: Type[] | undefined;
751
+ resolvedInferredTrueType: Type | undefined;
752
+ resolvedDefaultConstraint: Type | undefined;
753
+ resolvedConstraintOfDistributive: Type | undefined;
754
+ readonly mapper: TypeMapper | undefined;
755
+ readonly combinedMapper: TypeMapper | undefined;
756
+ /** The checker that created the type, for `getTrueType()` and `getFalseType()`. */
757
+ checking: TypeChecking | undefined;
758
+ constructor(id: number, root: ConditionalRoot, checkType: Type, extendsType: Type, mapper: TypeMapper | undefined, combinedMapper: TypeMapper | undefined);
759
+ }
760
+ export declare class TypePredicate {
761
+ readonly kind: TypePredicateKind;
762
+ readonly parameterIndex: number;
763
+ readonly parameterName: string;
764
+ readonly type: Type | undefined;
765
+ constructor(kind: TypePredicateKind, parameterName: string, parameterIndex: number, type: Type | undefined);
766
+ }
767
+ export declare class CompositeSignature {
768
+ /** False for an intersection. */
769
+ readonly isUnion: boolean;
770
+ readonly signatures: Signature[];
771
+ constructor(isUnion: boolean, signatures: Signature[]);
772
+ }
773
+ /**
774
+ * Fields that few signatures set, kept out of line in `Signature.extra` (see TypeExtra): the `this`
775
+ * parameter, composite signatures and the caches of derived signatures.
776
+ */
777
+ export declare class SignatureExtra implements ProgramLifetime {
778
+ thisParameter: Symbol | undefined;
779
+ isolatedSignatureType: Type | undefined;
780
+ composite: CompositeSignature | undefined;
781
+ erasedSignatureCache: Signature | undefined;
782
+ canonicalSignatureCache: Signature | undefined;
783
+ baseSignatureCache: Signature | undefined;
784
+ optionalCallSignatureCache: Signature | undefined;
785
+ instantiations: TypeListCache<Signature> | undefined;
786
+ constructor();
787
+ }
788
+ /** The extra fields of `s`, created if it has none yet. */
789
+ export declare function signatureExtra(s: Signature): SignatureExtra;
790
+ export declare class Signature implements ProgramLifetime {
791
+ readonly id: number;
792
+ flags: SignatureFlags;
793
+ minArgumentCount: number;
794
+ /** -1 until computed. */
795
+ resolvedMinArgumentCount: number;
796
+ declaration: Node | undefined;
797
+ typeParameters: Type[];
798
+ parameters: Symbol[];
799
+ resolvedReturnType: Type | undefined;
800
+ resolvedTypePredicate: TypePredicate | undefined;
801
+ target: Signature | undefined;
802
+ mapper: TypeMapper | undefined;
803
+ /** Rarely set fields; undefined while all of them have their defaults. */
804
+ extra: SignatureExtra | undefined;
805
+ constructor(id: number, flags: SignatureFlags, declaration: Node | undefined, typeParameters: Type[], thisParameter: Symbol | undefined, parameters: Symbol[], resolvedReturnType: Type | undefined, resolvedTypePredicate: TypePredicate | undefined, minArgumentCount: number);
806
+ get thisParameter(): Symbol | undefined;
807
+ set thisParameter(symbol: Symbol | undefined);
808
+ getTypeParameters(): readonly Type[];
809
+ getParameters(): readonly Symbol[];
810
+ getThisParameter(): Symbol | undefined;
811
+ /** The signature this one was instantiated from. */
812
+ getTarget(): Signature | undefined;
813
+ get isolatedSignatureType(): Type | undefined;
814
+ set isolatedSignatureType(t: Type | undefined);
815
+ get composite(): CompositeSignature | undefined;
816
+ set composite(composite: CompositeSignature | undefined);
817
+ /** Caches of derived signatures. */
818
+ get erasedSignatureCache(): Signature | undefined;
819
+ set erasedSignatureCache(s: Signature | undefined);
820
+ get canonicalSignatureCache(): Signature | undefined;
821
+ set canonicalSignatureCache(s: Signature | undefined);
822
+ get baseSignatureCache(): Signature | undefined;
823
+ set baseSignatureCache(s: Signature | undefined);
824
+ get optionalCallSignatureCache(): Signature | undefined;
825
+ set optionalCallSignatureCache(s: Signature | undefined);
826
+ get instantiations(): TypeListCache<Signature> | undefined;
827
+ set instantiations(instantiations: TypeListCache<Signature> | undefined);
828
+ hasRestParameter(): boolean;
829
+ }
830
+ export declare class IndexInfo implements ProgramLifetime {
831
+ readonly keyType: Type;
832
+ readonly valueType: Type;
833
+ readonly isReadonly: boolean;
834
+ /** The IndexSignatureDeclaration. */
835
+ readonly declaration: Node | undefined;
836
+ /** Elements with computed property names that make up the index signature. */
837
+ readonly components: Node[];
838
+ indexSymbol: Symbol | undefined;
839
+ constructor(keyType: Type, valueType: Type, isReadonly: boolean, declaration: Node | undefined, components: Node[]);
840
+ /** The value type (TypeScript 7's API). */
841
+ get type(): Type;
842
+ }
843
+ export declare const emptyTypes: Type[];
844
+ export declare const emptySymbols: Symbol[];
845
+ export declare const emptySignatures: Signature[];
846
+ export declare const emptyIndexInfos: IndexInfo[];
847
+ export declare const enum TypeMapperKind {
848
+ Unknown = 0,
849
+ Simple = 1,
850
+ Array = 2,
851
+ Merged = 3
852
+ }
853
+ /** Maps type parameters to types. Subclasses replace tsgo's function mappers. */
854
+ export declare abstract class TypeMapper {
855
+ abstract map(type: Type): Type;
856
+ kind(): TypeMapperKind;
857
+ /** Whether the mapper only maps a `this` type parameter. */
858
+ mapsThisOnly(): boolean;
859
+ }
860
+ export declare class SimpleTypeMapper extends TypeMapper {
861
+ readonly source: Type;
862
+ readonly target: Type;
863
+ constructor(source: Type, target: Type);
864
+ map(type: Type): Type;
865
+ kind(): TypeMapperKind;
866
+ mapsThisOnly(): boolean;
867
+ }
868
+ export declare class ArrayTypeMapper extends TypeMapper {
869
+ readonly sources: Type[];
870
+ readonly targets: Type[];
871
+ constructor(sources: Type[], targets: Type[]);
872
+ map(type: Type): Type;
873
+ kind(): TypeMapperKind;
874
+ mapsThisOnly(): boolean;
875
+ /** The number of targets, one per source. */
876
+ targetCount(): number;
877
+ /** The target of the source at `index`. */
878
+ targetAt(index: number): Type;
879
+ }
880
+ /**
881
+ * The mapper of a type reference's members: its type arguments, then the reference itself for the
882
+ * last source, the class or interface's `this` type. `targets` holds the type arguments only, so the
883
+ * reference's own list serves without a copy that adds the reference.
884
+ */
885
+ export declare class ThisArgumentTypeMapper extends ArrayTypeMapper {
886
+ readonly thisTarget: Type;
887
+ constructor(sources: Type[], typeArguments: Type[], thisTarget: Type);
888
+ map(type: Type): Type;
889
+ targetCount(): number;
890
+ targetAt(index: number): Type;
891
+ }
892
+ /** An ArrayTypeMapper that looks its sources up in an index, built on its first lookup. */
893
+ export declare class IndexedArrayTypeMapper extends ArrayTypeMapper {
894
+ /** The index of each source's first occurrence. */
895
+ index: Map<Type, number> | undefined;
896
+ /** The number of sources `index` was built from. */
897
+ indexedLength: number;
898
+ map(type: Type): Type;
899
+ }
900
+ /** Maps each of `sources` to one target. */
901
+ export declare class ArrayToSingleTypeMapper extends TypeMapper {
902
+ readonly sources: Type[];
903
+ readonly target: Type;
904
+ constructor(sources: Type[], target: Type);
905
+ map(type: Type): Type;
906
+ mapsThisOnly(): boolean;
907
+ }
908
+ /** Applies `m1`, then `m2`. */
909
+ export declare class MergedTypeMapper extends TypeMapper {
910
+ readonly m1: TypeMapper;
911
+ readonly m2: TypeMapper;
912
+ constructor(m1: TypeMapper, m2: TypeMapper);
913
+ map(type: Type): Type;
914
+ kind(): TypeMapperKind;
915
+ }
916
+ export declare function newTypeMapper(sources: Type[], targets: Type[]): TypeMapper;
917
+ /** `newTypeMapper(sources, [...typeArguments, thisTarget])`, without building that list where it can. */
918
+ export declare function newThisArgumentTypeMapper(sources: Type[], typeArguments: Type[], thisTarget: Type): TypeMapper;
919
+ export declare function mergeTypeMappers(m1: TypeMapper | undefined, m2: TypeMapper): TypeMapper;
920
+ export declare function prependTypeMapping(source: Type, target: Type, mapper: TypeMapper | undefined): TypeMapper;
921
+ export declare function appendTypeMapping(mapper: TypeMapper | undefined, source: Type, target: Type): TypeMapper;
922
+ /**
923
+ * What the checker caches per symbol and rarely sets. Common values (the type, target, mapper, name type
924
+ * and others) are columns of `Checker` instead; see link-tables.ts. The fields most links objects have
925
+ * are fields of this class; the others are in a RareSymbolLinks object, created on the first write of
926
+ * one of them, behind accessors.
927
+ */
928
+ export declare class SymbolLinks implements ProgramLifetime {
929
+ /** Constituents of a deferred union/intersection property type. */
930
+ deferralParent: Type | undefined;
931
+ deferralConstituents: Type[] | undefined;
932
+ immediateTarget: Symbol | undefined;
933
+ aliasTarget: Symbol | undefined;
934
+ resolvedExports: SymbolTable | undefined;
935
+ resolvedMembers: SymbolTable | undefined;
936
+ declaredType: Type | undefined;
937
+ /** The other links, created on first write. */
938
+ private rareLinks;
939
+ functionOrConstructorChecked: boolean;
940
+ aliasReferenced: boolean;
941
+ constructor();
942
+ private rare;
943
+ get writeType(): Type | undefined;
944
+ set writeType(value: Type | undefined);
945
+ get deferralWriteConstituents(): Type[] | undefined;
946
+ set deferralWriteConstituents(value: Type[] | undefined);
947
+ get typeOnlyDeclaration(): Node | undefined;
948
+ set typeOnlyDeclaration(value: Node | undefined);
949
+ get typeOnlyExportStarMap(): Map<string, Node> | undefined;
950
+ set typeOnlyExportStarMap(value: Map<string, Node> | undefined);
951
+ get exportsChecked(): boolean;
952
+ set exportsChecked(value: boolean);
953
+ get lateSymbol(): Symbol | undefined;
954
+ set lateSymbol(value: Symbol | undefined);
955
+ get typeParameters(): Type[] | undefined;
956
+ set typeParameters(value: Type[] | undefined);
957
+ get instantiations(): Map<string, Type> | undefined;
958
+ set instantiations(value: Map<string, Type> | undefined);
959
+ get interfaceChecked(): boolean;
960
+ set interfaceChecked(value: boolean);
961
+ get indexSignaturesChecked(): boolean;
962
+ set indexSignaturesChecked(value: boolean);
963
+ get typeParametersChecked(): boolean;
964
+ set typeParametersChecked(value: boolean);
965
+ get enumChecked(): boolean;
966
+ set enumChecked(value: boolean);
967
+ get variances(): VarianceFlags[] | undefined;
968
+ set variances(value: VarianceFlags[] | undefined);
969
+ get lastAssignmentPos(): number;
970
+ set lastAssignmentPos(value: number);
971
+ get hasDefiniteAssignment(): boolean;
972
+ set hasDefiniteAssignment(value: boolean);
973
+ get isConstructorDeclaredProperty(): boolean;
974
+ set isConstructorDeclaredProperty(value: boolean);
975
+ get thisAssignmentKind(): number;
976
+ set thisAssignmentKind(value: number);
977
+ get thisAssignmentLocation(): Node | undefined;
978
+ set thisAssignmentLocation(value: Node | undefined);
979
+ get reverseMappedPropertyType(): Type | undefined;
980
+ set reverseMappedPropertyType(value: Type | undefined);
981
+ get reverseMappedMappedType(): Type | undefined;
982
+ set reverseMappedMappedType(value: Type | undefined);
983
+ get reverseMappedConstraintType(): Type | undefined;
984
+ set reverseMappedConstraintType(value: Type | undefined);
985
+ }
986
+ /** The links of a symbol that few symbols have (SymbolLinks). */
987
+ export declare class RareSymbolLinks implements ProgramLifetime {
988
+ writeType: Type | undefined;
989
+ deferralWriteConstituents: Type[] | undefined;
990
+ typeOnlyDeclaration: Node | undefined;
991
+ /** Exports reached only through `export type *`, by name. */
992
+ typeOnlyExportStarMap: Map<string, Node> | undefined;
993
+ exportsChecked: boolean;
994
+ lateSymbol: Symbol | undefined;
995
+ /** Type parameters of a type alias. */
996
+ typeParameters: Type[] | undefined;
997
+ /** Instantiations of a generic type alias. */
998
+ instantiations: Map<string, Type> | undefined;
999
+ interfaceChecked: boolean;
1000
+ indexSignaturesChecked: boolean;
1001
+ typeParametersChecked: boolean;
1002
+ enumChecked: boolean;
1003
+ variances: VarianceFlags[] | undefined;
1004
+ lastAssignmentPos: number;
1005
+ hasDefiniteAssignment: boolean;
1006
+ isConstructorDeclaredProperty: boolean;
1007
+ /** A `ThisAssignmentKind` plus one; zero until computed. */
1008
+ thisAssignmentKind: number;
1009
+ thisAssignmentLocation: Node | undefined;
1010
+ reverseMappedPropertyType: Type | undefined;
1011
+ reverseMappedMappedType: Type | undefined;
1012
+ reverseMappedConstraintType: Type | undefined;
1013
+ constructor();
1014
+ }
1015
+ /**
1016
+ * What the checker caches per node and rarely sets. The resolved symbol, type and signature are columns of
1017
+ * `Checker` instead; see link-tables.ts. As in SymbolLinks, the fields few links objects have are in a
1018
+ * RareNodeLinks object behind accessors.
1019
+ */
1020
+ export declare class NodeLinks implements ProgramLifetime {
1021
+ /** Outer type parameters of an anonymous object type node. */
1022
+ outerTypeParameters: Type[] | undefined;
1023
+ effectsSignature: Signature | undefined;
1024
+ /** Type of an assertion's operand. */
1025
+ assertionExpressionType: Type | undefined;
1026
+ /** The other links, created on first write. */
1027
+ private rareLinks;
1028
+ flags: NodeCheckFlags;
1029
+ constructor();
1030
+ private rare;
1031
+ get contextFreeType(): Type | undefined;
1032
+ set contextFreeType(value: Type | undefined);
1033
+ get enumStringValue(): string;
1034
+ set enumStringValue(value: string);
1035
+ get enumNumberValue(): number;
1036
+ set enumNumberValue(value: number);
1037
+ get enumValueKind(): number;
1038
+ set enumValueKind(value: number);
1039
+ get enumValueFlags(): number;
1040
+ set enumValueFlags(value: number);
1041
+ get hasReportedStatementInAmbientContext(): boolean;
1042
+ set hasReportedStatementInAmbientContext(value: boolean);
1043
+ get declarationRequiresScopeChange(): number;
1044
+ set declarationRequiresScopeChange(value: number);
1045
+ get typeChecked(): boolean;
1046
+ set typeChecked(value: boolean);
1047
+ get deferredNodes(): Node[] | undefined;
1048
+ set deferredNodes(value: Node[] | undefined);
1049
+ get switchTypes(): Type[] | undefined;
1050
+ set switchTypes(value: Type[] | undefined);
1051
+ get switchWitnesses(): string[] | undefined;
1052
+ set switchWitnesses(value: string[] | undefined);
1053
+ get switchWitnessesValid(): boolean;
1054
+ set switchWitnessesValid(value: boolean);
1055
+ get exhaustiveState(): number;
1056
+ set exhaustiveState(value: number);
1057
+ get decoratorSignature(): Signature | undefined;
1058
+ set decoratorSignature(value: Signature | undefined);
1059
+ get containsArgumentsReference(): number;
1060
+ set containsArgumentsReference(value: number);
1061
+ get mentionsArguments(): number;
1062
+ set mentionsArguments(value: number);
1063
+ }
1064
+ /** The links of a node that few nodes have (NodeLinks). */
1065
+ export declare class RareNodeLinks implements ProgramLifetime {
1066
+ /** Context-free type of an expression. */
1067
+ contextFreeType: Type | undefined;
1068
+ /** Enum member value: a string, or a number when `enumValueIsNumber`. */
1069
+ enumStringValue: string;
1070
+ enumNumberValue: number;
1071
+ enumValueKind: number;
1072
+ /** EvaluatedFlags of the enum member value. */
1073
+ enumValueFlags: number;
1074
+ hasReportedStatementInAmbientContext: boolean;
1075
+ declarationRequiresScopeChange: number;
1076
+ /** For source files: whether the file has been checked, and its nodes waiting for a deferred check. */
1077
+ typeChecked: boolean;
1078
+ deferredNodes: Node[] | undefined;
1079
+ /** Case clause types of a switch statement. */
1080
+ switchTypes: Type[] | undefined;
1081
+ /** `typeof` case texts of a switch statement; '' for default and duplicates. */
1082
+ switchWitnesses: string[] | undefined;
1083
+ switchWitnessesValid: boolean;
1084
+ /** 0 unknown, 1 computing, 2 not exhaustive, 3 exhaustive. */
1085
+ exhaustiveState: number;
1086
+ /** The signature the runtime calls a decorator of this declaration with. */
1087
+ decoratorSignature: Signature | undefined;
1088
+ /** Whether a function body references `arguments`: 0 until computed, 1 for no, 2 for yes. */
1089
+ containsArgumentsReference: number;
1090
+ /** For source files: whether the file has an identifier `arguments`: 0 until computed, 1 for no, 2 for yes. */
1091
+ mentionsArguments: number;
1092
+ constructor();
1093
+ }