1/*! ***************************************************************************** 2Copyright (c) Microsoft Corporation. All rights reserved. 3Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4this file except in compliance with the License. You may obtain a copy of the 5License at http://www.apache.org/licenses/LICENSE-2.0 6 7THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 8KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 9WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 10MERCHANTABLITY OR NON-INFRINGEMENT. 11 12See the Apache Version 2.0 License for specific language governing permissions 13and limitations under the License. 14***************************************************************************** */ 15 16declare namespace ts { 17 const versionMajorMinor = "4.9"; 18 /** The version of the TypeScript compiler release */ 19 const version: string; 20 /** 21 * Type of objects whose values are all of the same type. 22 * The `in` and `for-in` operators can *not* be safely used, 23 * since `Object.prototype` may be modified by outside code. 24 */ 25 interface MapLike<T> { 26 [index: string]: T; 27 } 28 interface SortedReadonlyArray<T> extends ReadonlyArray<T> { 29 " __sortedArrayBrand": any; 30 } 31 interface SortedArray<T> extends Array<T> { 32 " __sortedArrayBrand": any; 33 } 34 /** Common read methods for ES6 Map/Set. */ 35 interface ReadonlyCollection<K> { 36 readonly size: number; 37 has(key: K): boolean; 38 keys(): Iterator<K>; 39 } 40 /** Common write methods for ES6 Map/Set. */ 41 interface Collection<K> extends ReadonlyCollection<K> { 42 delete(key: K): boolean; 43 clear(): void; 44 } 45 /** ES6 Map interface, only read methods included. */ 46 interface ReadonlyESMap<K, V> extends ReadonlyCollection<K> { 47 get(key: K): V | undefined; 48 values(): Iterator<V>; 49 entries(): Iterator<[K, V]>; 50 forEach(action: (value: V, key: K) => void): void; 51 } 52 /** 53 * ES6 Map interface, only read methods included. 54 */ 55 interface ReadonlyMap<T> extends ReadonlyESMap<string, T> { 56 } 57 /** ES6 Map interface. */ 58 interface ESMap<K, V> extends ReadonlyESMap<K, V>, Collection<K> { 59 set(key: K, value: V): this; 60 } 61 /** 62 * ES6 Map interface. 63 */ 64 interface Map<T> extends ESMap<string, T> { 65 } 66 /** ES6 Set interface, only read methods included. */ 67 interface ReadonlySet<T> extends ReadonlyCollection<T> { 68 has(value: T): boolean; 69 values(): Iterator<T>; 70 entries(): Iterator<[T, T]>; 71 forEach(action: (value: T, key: T) => void): void; 72 } 73 /** ES6 Set interface. */ 74 interface Set<T> extends ReadonlySet<T>, Collection<T> { 75 add(value: T): this; 76 delete(value: T): boolean; 77 } 78 /** ES6 Iterator type. */ 79 interface Iterator<T> { 80 next(): { 81 value: T; 82 done?: false; 83 } | { 84 value: void; 85 done: true; 86 }; 87 } 88 /** Array that is only intended to be pushed to, never read. */ 89 interface Push<T> { 90 push(...values: T[]): void; 91 } 92} 93declare namespace ts { 94 export type Path = string & { 95 __pathBrand: any; 96 }; 97 export interface TextRange { 98 pos: number; 99 end: number; 100 } 101 export interface ReadonlyTextRange { 102 readonly pos: number; 103 readonly end: number; 104 } 105 export enum SyntaxKind { 106 Unknown = 0, 107 EndOfFileToken = 1, 108 SingleLineCommentTrivia = 2, 109 MultiLineCommentTrivia = 3, 110 NewLineTrivia = 4, 111 WhitespaceTrivia = 5, 112 ShebangTrivia = 6, 113 ConflictMarkerTrivia = 7, 114 NumericLiteral = 8, 115 BigIntLiteral = 9, 116 StringLiteral = 10, 117 JsxText = 11, 118 JsxTextAllWhiteSpaces = 12, 119 RegularExpressionLiteral = 13, 120 NoSubstitutionTemplateLiteral = 14, 121 TemplateHead = 15, 122 TemplateMiddle = 16, 123 TemplateTail = 17, 124 OpenBraceToken = 18, 125 CloseBraceToken = 19, 126 OpenParenToken = 20, 127 CloseParenToken = 21, 128 OpenBracketToken = 22, 129 CloseBracketToken = 23, 130 DotToken = 24, 131 DotDotDotToken = 25, 132 SemicolonToken = 26, 133 CommaToken = 27, 134 QuestionDotToken = 28, 135 LessThanToken = 29, 136 LessThanSlashToken = 30, 137 GreaterThanToken = 31, 138 LessThanEqualsToken = 32, 139 GreaterThanEqualsToken = 33, 140 EqualsEqualsToken = 34, 141 ExclamationEqualsToken = 35, 142 EqualsEqualsEqualsToken = 36, 143 ExclamationEqualsEqualsToken = 37, 144 EqualsGreaterThanToken = 38, 145 PlusToken = 39, 146 MinusToken = 40, 147 AsteriskToken = 41, 148 AsteriskAsteriskToken = 42, 149 SlashToken = 43, 150 PercentToken = 44, 151 PlusPlusToken = 45, 152 MinusMinusToken = 46, 153 LessThanLessThanToken = 47, 154 GreaterThanGreaterThanToken = 48, 155 GreaterThanGreaterThanGreaterThanToken = 49, 156 AmpersandToken = 50, 157 BarToken = 51, 158 CaretToken = 52, 159 ExclamationToken = 53, 160 TildeToken = 54, 161 AmpersandAmpersandToken = 55, 162 BarBarToken = 56, 163 QuestionToken = 57, 164 ColonToken = 58, 165 AtToken = 59, 166 QuestionQuestionToken = 60, 167 /** Only the JSDoc scanner produces BacktickToken. The normal scanner produces NoSubstitutionTemplateLiteral and related kinds. */ 168 BacktickToken = 61, 169 /** Only the JSDoc scanner produces HashToken. The normal scanner produces PrivateIdentifier. */ 170 HashToken = 62, 171 EqualsToken = 63, 172 PlusEqualsToken = 64, 173 MinusEqualsToken = 65, 174 AsteriskEqualsToken = 66, 175 AsteriskAsteriskEqualsToken = 67, 176 SlashEqualsToken = 68, 177 PercentEqualsToken = 69, 178 LessThanLessThanEqualsToken = 70, 179 GreaterThanGreaterThanEqualsToken = 71, 180 GreaterThanGreaterThanGreaterThanEqualsToken = 72, 181 AmpersandEqualsToken = 73, 182 BarEqualsToken = 74, 183 BarBarEqualsToken = 75, 184 AmpersandAmpersandEqualsToken = 76, 185 QuestionQuestionEqualsToken = 77, 186 CaretEqualsToken = 78, 187 Identifier = 79, 188 PrivateIdentifier = 80, 189 BreakKeyword = 81, 190 CaseKeyword = 82, 191 CatchKeyword = 83, 192 ClassKeyword = 84, 193 StructKeyword = 85, 194 ConstKeyword = 86, 195 ContinueKeyword = 87, 196 DebuggerKeyword = 88, 197 DefaultKeyword = 89, 198 DeleteKeyword = 90, 199 DoKeyword = 91, 200 ElseKeyword = 92, 201 EnumKeyword = 93, 202 ExportKeyword = 94, 203 ExtendsKeyword = 95, 204 FalseKeyword = 96, 205 FinallyKeyword = 97, 206 ForKeyword = 98, 207 FunctionKeyword = 99, 208 IfKeyword = 100, 209 ImportKeyword = 101, 210 InKeyword = 102, 211 InstanceOfKeyword = 103, 212 NewKeyword = 104, 213 NullKeyword = 105, 214 ReturnKeyword = 106, 215 SuperKeyword = 107, 216 SwitchKeyword = 108, 217 ThisKeyword = 109, 218 ThrowKeyword = 110, 219 TrueKeyword = 111, 220 TryKeyword = 112, 221 TypeOfKeyword = 113, 222 VarKeyword = 114, 223 VoidKeyword = 115, 224 WhileKeyword = 116, 225 WithKeyword = 117, 226 ImplementsKeyword = 118, 227 InterfaceKeyword = 119, 228 LetKeyword = 120, 229 PackageKeyword = 121, 230 PrivateKeyword = 122, 231 ProtectedKeyword = 123, 232 PublicKeyword = 124, 233 StaticKeyword = 125, 234 YieldKeyword = 126, 235 AbstractKeyword = 127, 236 AccessorKeyword = 128, 237 AsKeyword = 129, 238 AssertsKeyword = 130, 239 AssertKeyword = 131, 240 AnyKeyword = 132, 241 AsyncKeyword = 133, 242 AwaitKeyword = 134, 243 BooleanKeyword = 135, 244 ConstructorKeyword = 136, 245 DeclareKeyword = 137, 246 GetKeyword = 138, 247 InferKeyword = 139, 248 IntrinsicKeyword = 140, 249 IsKeyword = 141, 250 KeyOfKeyword = 142, 251 ModuleKeyword = 143, 252 NamespaceKeyword = 144, 253 NeverKeyword = 145, 254 OutKeyword = 146, 255 ReadonlyKeyword = 147, 256 RequireKeyword = 148, 257 NumberKeyword = 149, 258 ObjectKeyword = 150, 259 SatisfiesKeyword = 151, 260 SetKeyword = 152, 261 StringKeyword = 153, 262 SymbolKeyword = 154, 263 TypeKeyword = 155, 264 LazyKeyword = 156, 265 UndefinedKeyword = 157, 266 UniqueKeyword = 158, 267 UnknownKeyword = 159, 268 FromKeyword = 160, 269 GlobalKeyword = 161, 270 BigIntKeyword = 162, 271 OverrideKeyword = 163, 272 OfKeyword = 164, 273 QualifiedName = 165, 274 ComputedPropertyName = 166, 275 TypeParameter = 167, 276 Parameter = 168, 277 Decorator = 169, 278 PropertySignature = 170, 279 PropertyDeclaration = 171, 280 MethodSignature = 172, 281 MethodDeclaration = 173, 282 ClassStaticBlockDeclaration = 174, 283 Constructor = 175, 284 GetAccessor = 176, 285 SetAccessor = 177, 286 CallSignature = 178, 287 ConstructSignature = 179, 288 IndexSignature = 180, 289 TypePredicate = 181, 290 TypeReference = 182, 291 FunctionType = 183, 292 ConstructorType = 184, 293 TypeQuery = 185, 294 TypeLiteral = 186, 295 ArrayType = 187, 296 TupleType = 188, 297 OptionalType = 189, 298 RestType = 190, 299 UnionType = 191, 300 IntersectionType = 192, 301 ConditionalType = 193, 302 InferType = 194, 303 ParenthesizedType = 195, 304 ThisType = 196, 305 TypeOperator = 197, 306 IndexedAccessType = 198, 307 MappedType = 199, 308 LiteralType = 200, 309 NamedTupleMember = 201, 310 TemplateLiteralType = 202, 311 TemplateLiteralTypeSpan = 203, 312 ImportType = 204, 313 ObjectBindingPattern = 205, 314 ArrayBindingPattern = 206, 315 BindingElement = 207, 316 ArrayLiteralExpression = 208, 317 ObjectLiteralExpression = 209, 318 PropertyAccessExpression = 210, 319 ElementAccessExpression = 211, 320 CallExpression = 212, 321 NewExpression = 213, 322 TaggedTemplateExpression = 214, 323 TypeAssertionExpression = 215, 324 ParenthesizedExpression = 216, 325 FunctionExpression = 217, 326 ArrowFunction = 218, 327 EtsComponentExpression = 219, 328 DeleteExpression = 220, 329 TypeOfExpression = 221, 330 VoidExpression = 222, 331 AwaitExpression = 223, 332 PrefixUnaryExpression = 224, 333 PostfixUnaryExpression = 225, 334 BinaryExpression = 226, 335 ConditionalExpression = 227, 336 TemplateExpression = 228, 337 YieldExpression = 229, 338 SpreadElement = 230, 339 ClassExpression = 231, 340 OmittedExpression = 232, 341 ExpressionWithTypeArguments = 233, 342 AsExpression = 234, 343 NonNullExpression = 235, 344 MetaProperty = 236, 345 SyntheticExpression = 237, 346 SatisfiesExpression = 238, 347 TemplateSpan = 239, 348 SemicolonClassElement = 240, 349 Block = 241, 350 EmptyStatement = 242, 351 VariableStatement = 243, 352 ExpressionStatement = 244, 353 IfStatement = 245, 354 DoStatement = 246, 355 WhileStatement = 247, 356 ForStatement = 248, 357 ForInStatement = 249, 358 ForOfStatement = 250, 359 ContinueStatement = 251, 360 BreakStatement = 252, 361 ReturnStatement = 253, 362 WithStatement = 254, 363 SwitchStatement = 255, 364 LabeledStatement = 256, 365 ThrowStatement = 257, 366 TryStatement = 258, 367 DebuggerStatement = 259, 368 VariableDeclaration = 260, 369 VariableDeclarationList = 261, 370 FunctionDeclaration = 262, 371 ClassDeclaration = 263, 372 StructDeclaration = 264, 373 InterfaceDeclaration = 265, 374 TypeAliasDeclaration = 266, 375 EnumDeclaration = 267, 376 ModuleDeclaration = 268, 377 ModuleBlock = 269, 378 CaseBlock = 270, 379 NamespaceExportDeclaration = 271, 380 ImportEqualsDeclaration = 272, 381 ImportDeclaration = 273, 382 ImportClause = 274, 383 NamespaceImport = 275, 384 NamedImports = 276, 385 ImportSpecifier = 277, 386 ExportAssignment = 278, 387 ExportDeclaration = 279, 388 NamedExports = 280, 389 NamespaceExport = 281, 390 ExportSpecifier = 282, 391 MissingDeclaration = 283, 392 ExternalModuleReference = 284, 393 JsxElement = 285, 394 JsxSelfClosingElement = 286, 395 JsxOpeningElement = 287, 396 JsxClosingElement = 288, 397 JsxFragment = 289, 398 JsxOpeningFragment = 290, 399 JsxClosingFragment = 291, 400 JsxAttribute = 292, 401 JsxAttributes = 293, 402 JsxSpreadAttribute = 294, 403 JsxExpression = 295, 404 CaseClause = 296, 405 DefaultClause = 297, 406 HeritageClause = 298, 407 CatchClause = 299, 408 AssertClause = 300, 409 AssertEntry = 301, 410 ImportTypeAssertionContainer = 302, 411 PropertyAssignment = 303, 412 ShorthandPropertyAssignment = 304, 413 SpreadAssignment = 305, 414 EnumMember = 306, 415 UnparsedPrologue = 307, 416 UnparsedPrepend = 308, 417 UnparsedText = 309, 418 UnparsedInternalText = 310, 419 UnparsedSyntheticReference = 311, 420 SourceFile = 312, 421 Bundle = 313, 422 UnparsedSource = 314, 423 InputFiles = 315, 424 JSDocTypeExpression = 316, 425 JSDocNameReference = 317, 426 JSDocMemberName = 318, 427 JSDocAllType = 319, 428 JSDocUnknownType = 320, 429 JSDocNullableType = 321, 430 JSDocNonNullableType = 322, 431 JSDocOptionalType = 323, 432 JSDocFunctionType = 324, 433 JSDocVariadicType = 325, 434 JSDocNamepathType = 326, 435 JSDoc = 327, 436 /** @deprecated Use SyntaxKind.JSDoc */ 437 JSDocComment = 327, 438 JSDocText = 328, 439 JSDocTypeLiteral = 329, 440 JSDocSignature = 330, 441 JSDocLink = 331, 442 JSDocLinkCode = 332, 443 JSDocLinkPlain = 333, 444 JSDocTag = 334, 445 JSDocAugmentsTag = 335, 446 JSDocImplementsTag = 336, 447 JSDocAuthorTag = 337, 448 JSDocDeprecatedTag = 338, 449 JSDocClassTag = 339, 450 JSDocPublicTag = 340, 451 JSDocPrivateTag = 341, 452 JSDocProtectedTag = 342, 453 JSDocReadonlyTag = 343, 454 JSDocOverrideTag = 344, 455 JSDocCallbackTag = 345, 456 JSDocEnumTag = 346, 457 JSDocParameterTag = 347, 458 JSDocReturnTag = 348, 459 JSDocThisTag = 349, 460 JSDocTypeTag = 350, 461 JSDocTemplateTag = 351, 462 JSDocTypedefTag = 352, 463 JSDocSeeTag = 353, 464 JSDocPropertyTag = 354, 465 SyntaxList = 355, 466 NotEmittedStatement = 356, 467 PartiallyEmittedExpression = 357, 468 CommaListExpression = 358, 469 MergeDeclarationMarker = 359, 470 EndOfDeclarationMarker = 360, 471 SyntheticReferenceExpression = 361, 472 Count = 362, 473 FirstAssignment = 63, 474 LastAssignment = 78, 475 FirstCompoundAssignment = 64, 476 LastCompoundAssignment = 78, 477 FirstReservedWord = 81, 478 LastReservedWord = 117, 479 FirstKeyword = 81, 480 LastKeyword = 164, 481 FirstFutureReservedWord = 118, 482 LastFutureReservedWord = 126, 483 FirstTypeNode = 181, 484 LastTypeNode = 204, 485 FirstPunctuation = 18, 486 LastPunctuation = 78, 487 FirstToken = 0, 488 LastToken = 164, 489 FirstTriviaToken = 2, 490 LastTriviaToken = 7, 491 FirstLiteralToken = 8, 492 LastLiteralToken = 14, 493 FirstTemplateToken = 14, 494 LastTemplateToken = 17, 495 FirstBinaryOperator = 29, 496 LastBinaryOperator = 78, 497 FirstStatement = 243, 498 LastStatement = 259, 499 FirstNode = 165, 500 FirstJSDocNode = 316, 501 LastJSDocNode = 354, 502 FirstJSDocTagNode = 334, 503 LastJSDocTagNode = 354, 504 } 505 export type TriviaSyntaxKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia | SyntaxKind.NewLineTrivia | SyntaxKind.WhitespaceTrivia | SyntaxKind.ShebangTrivia | SyntaxKind.ConflictMarkerTrivia; 506 export type LiteralSyntaxKind = SyntaxKind.NumericLiteral | SyntaxKind.BigIntLiteral | SyntaxKind.StringLiteral | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.RegularExpressionLiteral | SyntaxKind.NoSubstitutionTemplateLiteral; 507 export type PseudoLiteralSyntaxKind = SyntaxKind.TemplateHead | SyntaxKind.TemplateMiddle | SyntaxKind.TemplateTail; 508 export type PunctuationSyntaxKind = SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.OpenParenToken | SyntaxKind.CloseParenToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.DotToken | SyntaxKind.DotDotDotToken | SyntaxKind.SemicolonToken | SyntaxKind.CommaToken | SyntaxKind.QuestionDotToken | SyntaxKind.LessThanToken | SyntaxKind.LessThanSlashToken | SyntaxKind.GreaterThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.EqualsEqualsToken | SyntaxKind.ExclamationEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.EqualsGreaterThanToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.AsteriskToken | SyntaxKind.AsteriskAsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken | SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken | SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken | SyntaxKind.ExclamationToken | SyntaxKind.TildeToken | SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken | SyntaxKind.QuestionQuestionToken | SyntaxKind.QuestionToken | SyntaxKind.ColonToken | SyntaxKind.AtToken | SyntaxKind.BacktickToken | SyntaxKind.HashToken | SyntaxKind.EqualsToken | SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken; 509 export type KeywordSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AccessorKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.AssertsKeyword | SyntaxKind.AssertKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.StructKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InferKeyword | SyntaxKind.InKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.OfKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.RequireKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SatisfiesKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.LazyKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword; 510 export type ModifierSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AccessorKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.ConstKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.ExportKeyword | SyntaxKind.InKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.StaticKeyword; 511 export type KeywordTypeSyntaxKind = SyntaxKind.AnyKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VoidKeyword; 512 export type TokenSyntaxKind = SyntaxKind.Unknown | SyntaxKind.EndOfFileToken | TriviaSyntaxKind | LiteralSyntaxKind | PseudoLiteralSyntaxKind | PunctuationSyntaxKind | SyntaxKind.Identifier | KeywordSyntaxKind; 513 export type JsxTokenSyntaxKind = SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken; 514 export type JSDocSyntaxKind = SyntaxKind.EndOfFileToken | SyntaxKind.WhitespaceTrivia | SyntaxKind.AtToken | SyntaxKind.NewLineTrivia | SyntaxKind.AsteriskToken | SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.LessThanToken | SyntaxKind.GreaterThanToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.EqualsToken | SyntaxKind.CommaToken | SyntaxKind.DotToken | SyntaxKind.Identifier | SyntaxKind.BacktickToken | SyntaxKind.HashToken | SyntaxKind.Unknown | KeywordSyntaxKind; 515 export enum NodeFlags { 516 None = 0, 517 Let = 1, 518 Const = 2, 519 NestedNamespace = 4, 520 Synthesized = 8, 521 Namespace = 16, 522 OptionalChain = 32, 523 ExportContext = 64, 524 ContainsThis = 128, 525 HasImplicitReturn = 256, 526 HasExplicitReturn = 512, 527 GlobalAugmentation = 1024, 528 HasAsyncFunctions = 2048, 529 DisallowInContext = 4096, 530 YieldContext = 8192, 531 DecoratorContext = 16384, 532 AwaitContext = 32768, 533 DisallowConditionalTypesContext = 65536, 534 ThisNodeHasError = 131072, 535 JavaScriptFile = 262144, 536 ThisNodeOrAnySubNodesHasError = 524288, 537 HasAggregatedChildData = 1048576, 538 JSDoc = 8388608, 539 JsonFile = 67108864, 540 EtsContext = 1073741824, 541 BlockScoped = 3, 542 ReachabilityCheckFlags = 768, 543 ReachabilityAndEmitFlags = 2816, 544 ContextFlags = 1124462592, 545 TypeExcludesFlags = 40960, 546 } 547 export enum EtsFlags { 548 None = 0, 549 StructContext = 2, 550 EtsExtendComponentsContext = 4, 551 EtsStylesComponentsContext = 8, 552 EtsBuildContext = 16, 553 EtsBuilderContext = 32, 554 EtsStateStylesContext = 64, 555 EtsComponentsContext = 128, 556 EtsNewExpressionContext = 256, 557 UICallbackContext = 512, 558 SyntaxComponentContext = 1024 559 } 560 export enum ModifierFlags { 561 None = 0, 562 Export = 1, 563 Ambient = 2, 564 Public = 4, 565 Private = 8, 566 Protected = 16, 567 Static = 32, 568 Readonly = 64, 569 Accessor = 128, 570 Abstract = 256, 571 Async = 512, 572 Default = 1024, 573 Const = 2048, 574 HasComputedJSDocModifiers = 4096, 575 Deprecated = 8192, 576 Override = 16384, 577 In = 32768, 578 Out = 65536, 579 Decorator = 131072, 580 HasComputedFlags = 536870912, 581 AccessibilityModifier = 28, 582 ParameterPropertyModifier = 16476, 583 NonPublicAccessibilityModifier = 24, 584 TypeScriptModifier = 117086, 585 ExportDefault = 1025, 586 All = 258047, 587 Modifier = 126975 588 } 589 export enum JsxFlags { 590 None = 0, 591 /** An element from a named property of the JSX.IntrinsicElements interface */ 592 IntrinsicNamedElement = 1, 593 /** An element inferred from the string index signature of the JSX.IntrinsicElements interface */ 594 IntrinsicIndexedElement = 2, 595 IntrinsicElement = 3 596 } 597 export interface Node extends ReadonlyTextRange { 598 readonly kind: SyntaxKind; 599 readonly flags: NodeFlags; 600 readonly parent: Node; 601 symbol: Symbol; 602 locals?: SymbolTable; 603 skipCheck?: boolean; 604 } 605 export interface JSDocContainer { 606 } 607 export type HasJSDoc = ParameterDeclaration | CallSignatureDeclaration | ClassStaticBlockDeclaration | ConstructSignatureDeclaration | MethodSignature | PropertySignature | ArrowFunction | ParenthesizedExpression | SpreadAssignment | ShorthandPropertyAssignment | PropertyAssignment | FunctionExpression | EmptyStatement | DebuggerStatement | Block | VariableStatement | ExpressionStatement | IfStatement | DoStatement | WhileStatement | ForStatement | ForInStatement | ForOfStatement | BreakStatement | ContinueStatement | ReturnStatement | WithStatement | SwitchStatement | LabeledStatement | ThrowStatement | TryStatement | FunctionDeclaration | ConstructorDeclaration | MethodDeclaration | VariableDeclaration | PropertyDeclaration | AccessorDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumMember | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportAssignment | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | ExportDeclaration | NamedTupleMember | ExportSpecifier | CaseClause | EndOfFileToken; 608 export type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType; 609 export type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement; 610 export type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute; 611 export type HasExpressionInitializer = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | EnumMember; 612 export type HasDecorators = ParameterDeclaration | PropertyDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ClassExpression | ClassDeclaration | StructDeclaration | FunctionDeclaration; 613 export type HasIllegalDecorators = PropertyAssignment | ShorthandPropertyAssignment | FunctionDeclaration | ConstructorDeclaration | IndexSignatureDeclaration | ClassStaticBlockDeclaration | MissingDeclaration | VariableStatement | InterfaceDeclaration | TypeAliasDeclaration | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportDeclaration | ExportAssignment; 614 export type HasModifiers = TypeParameterDeclaration | ParameterDeclaration | ConstructorTypeNode | PropertySignature | PropertyDeclaration | MethodSignature | MethodDeclaration | ConstructorDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | IndexSignatureDeclaration | FunctionExpression | ArrowFunction | ClassExpression | VariableStatement | FunctionDeclaration | ClassDeclaration | StructDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | ExportAssignment | ExportDeclaration; 615 export interface NodeArray<T extends Node> extends ReadonlyArray<T>, ReadonlyTextRange { 616 readonly hasTrailingComma: boolean; 617 } 618 export interface Token<TKind extends SyntaxKind> extends Node { 619 readonly kind: TKind; 620 } 621 export type EndOfFileToken = Token<SyntaxKind.EndOfFileToken> & JSDocContainer; 622 export interface PunctuationToken<TKind extends PunctuationSyntaxKind> extends Token<TKind> { 623 } 624 export type DotToken = PunctuationToken<SyntaxKind.DotToken>; 625 export type DotDotDotToken = PunctuationToken<SyntaxKind.DotDotDotToken>; 626 export type QuestionToken = PunctuationToken<SyntaxKind.QuestionToken>; 627 export type ExclamationToken = PunctuationToken<SyntaxKind.ExclamationToken>; 628 export type ColonToken = PunctuationToken<SyntaxKind.ColonToken>; 629 export type EqualsToken = PunctuationToken<SyntaxKind.EqualsToken>; 630 export type AsteriskToken = PunctuationToken<SyntaxKind.AsteriskToken>; 631 export type EqualsGreaterThanToken = PunctuationToken<SyntaxKind.EqualsGreaterThanToken>; 632 export type PlusToken = PunctuationToken<SyntaxKind.PlusToken>; 633 export type MinusToken = PunctuationToken<SyntaxKind.MinusToken>; 634 export type QuestionDotToken = PunctuationToken<SyntaxKind.QuestionDotToken>; 635 export interface KeywordToken<TKind extends KeywordSyntaxKind> extends Token<TKind> { 636 } 637 export type AssertsKeyword = KeywordToken<SyntaxKind.AssertsKeyword>; 638 export type AssertKeyword = KeywordToken<SyntaxKind.AssertKeyword>; 639 export type AwaitKeyword = KeywordToken<SyntaxKind.AwaitKeyword>; 640 /** @deprecated Use `AwaitKeyword` instead. */ 641 export type AwaitKeywordToken = AwaitKeyword; 642 /** @deprecated Use `AssertsKeyword` instead. */ 643 export type AssertsToken = AssertsKeyword; 644 export interface ModifierToken<TKind extends ModifierSyntaxKind> extends KeywordToken<TKind> { 645 } 646 export type AbstractKeyword = ModifierToken<SyntaxKind.AbstractKeyword>; 647 export type AccessorKeyword = ModifierToken<SyntaxKind.AccessorKeyword>; 648 export type AsyncKeyword = ModifierToken<SyntaxKind.AsyncKeyword>; 649 export type ConstKeyword = ModifierToken<SyntaxKind.ConstKeyword>; 650 export type DeclareKeyword = ModifierToken<SyntaxKind.DeclareKeyword>; 651 export type DefaultKeyword = ModifierToken<SyntaxKind.DefaultKeyword>; 652 export type ExportKeyword = ModifierToken<SyntaxKind.ExportKeyword>; 653 export type InKeyword = ModifierToken<SyntaxKind.InKeyword>; 654 export type PrivateKeyword = ModifierToken<SyntaxKind.PrivateKeyword>; 655 export type ProtectedKeyword = ModifierToken<SyntaxKind.ProtectedKeyword>; 656 export type PublicKeyword = ModifierToken<SyntaxKind.PublicKeyword>; 657 export type ReadonlyKeyword = ModifierToken<SyntaxKind.ReadonlyKeyword>; 658 export type OutKeyword = ModifierToken<SyntaxKind.OutKeyword>; 659 export type OverrideKeyword = ModifierToken<SyntaxKind.OverrideKeyword>; 660 export type StaticKeyword = ModifierToken<SyntaxKind.StaticKeyword>; 661 /** @deprecated Use `ReadonlyKeyword` instead. */ 662 export type ReadonlyToken = ReadonlyKeyword; 663 export type Modifier = AbstractKeyword | AccessorKeyword | AsyncKeyword | ConstKeyword | DeclareKeyword | DefaultKeyword | ExportKeyword | InKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword | OutKeyword | OverrideKeyword | ReadonlyKeyword | StaticKeyword; 664 export type ModifierLike = Modifier | Decorator; 665 export type AccessibilityModifier = PublicKeyword | PrivateKeyword | ProtectedKeyword; 666 export type ParameterPropertyModifier = AccessibilityModifier | ReadonlyKeyword; 667 export type ClassMemberModifier = AccessibilityModifier | ReadonlyKeyword | StaticKeyword | AccessorKeyword; 668 export type ModifiersArray = NodeArray<Modifier>; 669 export enum GeneratedIdentifierFlags { 670 None = 0, 671 ReservedInNestedScopes = 8, 672 Optimistic = 16, 673 FileLevel = 32, 674 AllowNameSubstitution = 64 675 } 676 export interface Identifier extends PrimaryExpression, Declaration { 677 readonly kind: SyntaxKind.Identifier; 678 /** 679 * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.) 680 * Text of identifier, but if the identifier begins with two underscores, this will begin with three. 681 */ 682 readonly escapedText: __String; 683 readonly originalKeywordKind?: SyntaxKind; 684 isInJSDocNamespace?: boolean; 685 } 686 export interface TransientIdentifier extends Identifier { 687 resolvedSymbol: Symbol; 688 } 689 export interface QualifiedName extends Node { 690 readonly kind: SyntaxKind.QualifiedName; 691 readonly left: EntityName; 692 readonly right: Identifier; 693 } 694 export type EntityName = Identifier | QualifiedName; 695 export type PropertyName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier; 696 export type MemberName = Identifier | PrivateIdentifier; 697 export type DeclarationName = Identifier | PrivateIdentifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | ElementAccessExpression | BindingPattern | EntityNameExpression; 698 export interface Declaration extends Node { 699 _declarationBrand: any; 700 } 701 export interface NamedDeclaration extends Declaration { 702 readonly name?: DeclarationName; 703 } 704 export interface DeclarationStatement extends NamedDeclaration, Statement { 705 readonly name?: Identifier | StringLiteral | NumericLiteral; 706 } 707 export interface ComputedPropertyName extends Node { 708 readonly kind: SyntaxKind.ComputedPropertyName; 709 readonly parent: Declaration; 710 readonly expression: Expression; 711 } 712 export interface PrivateIdentifier extends PrimaryExpression { 713 readonly kind: SyntaxKind.PrivateIdentifier; 714 readonly escapedText: __String; 715 } 716 export interface Decorator extends Node { 717 readonly kind: SyntaxKind.Decorator; 718 readonly parent: NamedDeclaration; 719 readonly expression: LeftHandSideExpression; 720 } 721 export interface TypeParameterDeclaration extends NamedDeclaration { 722 readonly kind: SyntaxKind.TypeParameter; 723 readonly parent: DeclarationWithTypeParameterChildren | InferTypeNode; 724 readonly modifiers?: NodeArray<Modifier>; 725 readonly name: Identifier; 726 /** Note: Consider calling `getEffectiveConstraintOfTypeParameter` */ 727 readonly constraint?: TypeNode; 728 readonly default?: TypeNode; 729 expression?: Expression; 730 } 731 export interface SignatureDeclarationBase extends NamedDeclaration, JSDocContainer { 732 readonly kind: SignatureDeclaration["kind"]; 733 readonly name?: PropertyName; 734 readonly typeParameters?: NodeArray<TypeParameterDeclaration> | undefined; 735 readonly parameters: NodeArray<ParameterDeclaration>; 736 readonly type?: TypeNode | undefined; 737 } 738 export type SignatureDeclaration = CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | AccessorDeclaration | FunctionExpression | ArrowFunction; 739 export interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement { 740 readonly kind: SyntaxKind.CallSignature; 741 } 742 export interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement { 743 readonly kind: SyntaxKind.ConstructSignature; 744 } 745 export type BindingName = Identifier | BindingPattern; 746 export interface VariableDeclaration extends NamedDeclaration, JSDocContainer { 747 readonly kind: SyntaxKind.VariableDeclaration; 748 readonly parent: VariableDeclarationList | CatchClause; 749 readonly name: BindingName; 750 readonly exclamationToken?: ExclamationToken; 751 readonly type?: TypeNode; 752 readonly initializer?: Expression; 753 } 754 export interface VariableDeclarationList extends Node { 755 readonly kind: SyntaxKind.VariableDeclarationList; 756 readonly parent: VariableStatement | ForStatement | ForOfStatement | ForInStatement; 757 readonly declarations: NodeArray<VariableDeclaration>; 758 } 759 export interface ParameterDeclaration extends NamedDeclaration, JSDocContainer { 760 readonly kind: SyntaxKind.Parameter; 761 readonly parent: SignatureDeclaration; 762 readonly modifiers?: NodeArray<ModifierLike>; 763 readonly dotDotDotToken?: DotDotDotToken; 764 readonly name: BindingName; 765 readonly questionToken?: QuestionToken; 766 readonly type?: TypeNode; 767 readonly initializer?: Expression; 768 } 769 export interface BindingElement extends NamedDeclaration { 770 readonly kind: SyntaxKind.BindingElement; 771 readonly parent: BindingPattern; 772 readonly propertyName?: PropertyName; 773 readonly dotDotDotToken?: DotDotDotToken; 774 readonly name: BindingName; 775 readonly initializer?: Expression; 776 } 777 export interface PropertySignature extends TypeElement, JSDocContainer { 778 readonly kind: SyntaxKind.PropertySignature; 779 readonly modifiers?: NodeArray<Modifier>; 780 readonly name: PropertyName; 781 readonly questionToken?: QuestionToken; 782 readonly type?: TypeNode; 783 } 784 export interface PropertyDeclaration extends ClassElement, JSDocContainer { 785 readonly kind: SyntaxKind.PropertyDeclaration; 786 readonly parent: ClassLikeDeclaration; 787 readonly modifiers?: NodeArray<ModifierLike>; 788 readonly name: PropertyName; 789 readonly questionToken?: QuestionToken; 790 readonly exclamationToken?: ExclamationToken; 791 readonly type?: TypeNode; 792 readonly initializer?: Expression; 793 } 794 export interface AutoAccessorPropertyDeclaration extends PropertyDeclaration { 795 _autoAccessorBrand: any; 796 } 797 export interface ObjectLiteralElement extends NamedDeclaration { 798 _objectLiteralBrand: any; 799 readonly name?: PropertyName; 800 } 801 /** Unlike ObjectLiteralElement, excludes JSXAttribute and JSXSpreadAttribute. */ 802 export type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | MethodDeclaration | AccessorDeclaration; 803 export interface PropertyAssignment extends ObjectLiteralElement, JSDocContainer { 804 readonly kind: SyntaxKind.PropertyAssignment; 805 readonly parent: ObjectLiteralExpression; 806 readonly name: PropertyName; 807 readonly initializer: Expression; 808 } 809 export interface ShorthandPropertyAssignment extends ObjectLiteralElement, JSDocContainer { 810 readonly kind: SyntaxKind.ShorthandPropertyAssignment; 811 readonly parent: ObjectLiteralExpression; 812 readonly name: Identifier; 813 readonly equalsToken?: EqualsToken; 814 readonly objectAssignmentInitializer?: Expression; 815 } 816 export interface SpreadAssignment extends ObjectLiteralElement, JSDocContainer { 817 readonly kind: SyntaxKind.SpreadAssignment; 818 readonly parent: ObjectLiteralExpression; 819 readonly expression: Expression; 820 } 821 export type VariableLikeDeclaration = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | PropertySignature | JsxAttribute | ShorthandPropertyAssignment | EnumMember | JSDocPropertyTag | JSDocParameterTag; 822 export interface PropertyLikeDeclaration extends NamedDeclaration { 823 readonly name: PropertyName; 824 } 825 export interface ObjectBindingPattern extends Node { 826 readonly kind: SyntaxKind.ObjectBindingPattern; 827 readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement; 828 readonly elements: NodeArray<BindingElement>; 829 } 830 export interface ArrayBindingPattern extends Node { 831 readonly kind: SyntaxKind.ArrayBindingPattern; 832 readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement; 833 readonly elements: NodeArray<ArrayBindingElement>; 834 } 835 export type BindingPattern = ObjectBindingPattern | ArrayBindingPattern; 836 export type ArrayBindingElement = BindingElement | OmittedExpression; 837 /** 838 * Several node kinds share function-like features such as a signature, 839 * a name, and a body. These nodes should extend FunctionLikeDeclarationBase. 840 * Examples: 841 * - FunctionDeclaration 842 * - MethodDeclaration 843 * - AccessorDeclaration 844 */ 845 export interface FunctionLikeDeclarationBase extends SignatureDeclarationBase { 846 _functionLikeDeclarationBrand: any; 847 readonly asteriskToken?: AsteriskToken | undefined; 848 readonly questionToken?: QuestionToken | undefined; 849 readonly exclamationToken?: ExclamationToken | undefined; 850 readonly body?: Block | Expression | undefined; 851 } 852 export type FunctionLikeDeclaration = FunctionDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | FunctionExpression | ArrowFunction; 853 /** @deprecated Use SignatureDeclaration */ 854 export type FunctionLike = SignatureDeclaration; 855 export interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement { 856 readonly kind: SyntaxKind.FunctionDeclaration; 857 readonly modifiers?: NodeArray<Modifier>; 858 readonly name?: Identifier; 859 readonly body?: FunctionBody; 860 } 861 export interface MethodSignature extends SignatureDeclarationBase, TypeElement { 862 readonly kind: SyntaxKind.MethodSignature; 863 readonly parent: ObjectTypeDeclaration; 864 readonly modifiers?: NodeArray<Modifier>; 865 readonly name: PropertyName; 866 } 867 export interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer { 868 readonly kind: SyntaxKind.MethodDeclaration; 869 readonly parent: ClassLikeDeclaration | ObjectLiteralExpression; 870 readonly modifiers?: NodeArray<ModifierLike> | undefined; 871 readonly name: PropertyName; 872 readonly body?: FunctionBody | undefined; 873 } 874 export interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer { 875 readonly kind: SyntaxKind.Constructor; 876 readonly parent: ClassLikeDeclaration; 877 readonly modifiers?: NodeArray<Modifier> | undefined; 878 readonly body?: FunctionBody | undefined; 879 } 880 /** For when we encounter a semicolon in a class declaration. ES6 allows these as class elements. */ 881 export interface SemicolonClassElement extends ClassElement { 882 readonly kind: SyntaxKind.SemicolonClassElement; 883 readonly parent: ClassLikeDeclaration; 884 } 885 export interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer { 886 readonly kind: SyntaxKind.GetAccessor; 887 readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration; 888 readonly modifiers?: NodeArray<ModifierLike>; 889 readonly name: PropertyName; 890 readonly body?: FunctionBody; 891 } 892 export interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer { 893 readonly kind: SyntaxKind.SetAccessor; 894 readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration; 895 readonly modifiers?: NodeArray<ModifierLike>; 896 readonly name: PropertyName; 897 readonly body?: FunctionBody; 898 } 899 export type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration; 900 export interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement { 901 readonly kind: SyntaxKind.IndexSignature; 902 readonly parent: ObjectTypeDeclaration; 903 readonly modifiers?: NodeArray<Modifier>; 904 readonly type: TypeNode; 905 } 906 export interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer { 907 readonly kind: SyntaxKind.ClassStaticBlockDeclaration; 908 readonly parent: ClassDeclaration | ClassExpression; 909 readonly body: Block; 910 } 911 export interface TypeNode extends Node { 912 _typeNodeBrand: any; 913 } 914 export interface KeywordTypeNode<TKind extends KeywordTypeSyntaxKind = KeywordTypeSyntaxKind> extends KeywordToken<TKind>, TypeNode { 915 readonly kind: TKind; 916 } 917 export interface ImportTypeAssertionContainer extends Node { 918 readonly kind: SyntaxKind.ImportTypeAssertionContainer; 919 readonly parent: ImportTypeNode; 920 readonly assertClause: AssertClause; 921 readonly multiLine?: boolean; 922 } 923 export interface ImportTypeNode extends NodeWithTypeArguments { 924 readonly kind: SyntaxKind.ImportType; 925 readonly isTypeOf: boolean; 926 readonly argument: TypeNode; 927 readonly assertions?: ImportTypeAssertionContainer; 928 readonly qualifier?: EntityName; 929 } 930 export interface ThisTypeNode extends TypeNode { 931 readonly kind: SyntaxKind.ThisType; 932 } 933 export type FunctionOrConstructorTypeNode = FunctionTypeNode | ConstructorTypeNode; 934 export interface FunctionOrConstructorTypeNodeBase extends TypeNode, SignatureDeclarationBase { 935 readonly kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType; 936 readonly type: TypeNode; 937 } 938 export interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase { 939 readonly kind: SyntaxKind.FunctionType; 940 } 941 export interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase { 942 readonly kind: SyntaxKind.ConstructorType; 943 readonly modifiers?: NodeArray<Modifier>; 944 } 945 export interface NodeWithTypeArguments extends TypeNode { 946 readonly typeArguments?: NodeArray<TypeNode>; 947 } 948 export type TypeReferenceType = TypeReferenceNode | ExpressionWithTypeArguments; 949 export interface TypeReferenceNode extends NodeWithTypeArguments { 950 readonly kind: SyntaxKind.TypeReference; 951 readonly typeName: EntityName; 952 } 953 export interface TypePredicateNode extends TypeNode { 954 readonly kind: SyntaxKind.TypePredicate; 955 readonly parent: SignatureDeclaration | JSDocTypeExpression; 956 readonly assertsModifier?: AssertsKeyword; 957 readonly parameterName: Identifier | ThisTypeNode; 958 readonly type?: TypeNode; 959 } 960 export interface TypeQueryNode extends NodeWithTypeArguments { 961 readonly kind: SyntaxKind.TypeQuery; 962 readonly exprName: EntityName; 963 } 964 export interface TypeLiteralNode extends TypeNode, Declaration { 965 readonly kind: SyntaxKind.TypeLiteral; 966 readonly members: NodeArray<TypeElement>; 967 } 968 export interface ArrayTypeNode extends TypeNode { 969 readonly kind: SyntaxKind.ArrayType; 970 readonly elementType: TypeNode; 971 } 972 export interface TupleTypeNode extends TypeNode { 973 readonly kind: SyntaxKind.TupleType; 974 readonly elements: NodeArray<TypeNode | NamedTupleMember>; 975 } 976 export interface NamedTupleMember extends TypeNode, JSDocContainer, Declaration { 977 readonly kind: SyntaxKind.NamedTupleMember; 978 readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>; 979 readonly name: Identifier; 980 readonly questionToken?: Token<SyntaxKind.QuestionToken>; 981 readonly type: TypeNode; 982 } 983 export interface OptionalTypeNode extends TypeNode { 984 readonly kind: SyntaxKind.OptionalType; 985 readonly type: TypeNode; 986 } 987 export interface RestTypeNode extends TypeNode { 988 readonly kind: SyntaxKind.RestType; 989 readonly type: TypeNode; 990 } 991 export type UnionOrIntersectionTypeNode = UnionTypeNode | IntersectionTypeNode; 992 export interface UnionTypeNode extends TypeNode { 993 readonly kind: SyntaxKind.UnionType; 994 readonly types: NodeArray<TypeNode>; 995 } 996 export interface IntersectionTypeNode extends TypeNode { 997 readonly kind: SyntaxKind.IntersectionType; 998 readonly types: NodeArray<TypeNode>; 999 } 1000 export interface ConditionalTypeNode extends TypeNode { 1001 readonly kind: SyntaxKind.ConditionalType; 1002 readonly checkType: TypeNode; 1003 readonly extendsType: TypeNode; 1004 readonly trueType: TypeNode; 1005 readonly falseType: TypeNode; 1006 } 1007 export interface InferTypeNode extends TypeNode { 1008 readonly kind: SyntaxKind.InferType; 1009 readonly typeParameter: TypeParameterDeclaration; 1010 } 1011 export interface ParenthesizedTypeNode extends TypeNode { 1012 readonly kind: SyntaxKind.ParenthesizedType; 1013 readonly type: TypeNode; 1014 } 1015 export interface TypeOperatorNode extends TypeNode { 1016 readonly kind: SyntaxKind.TypeOperator; 1017 readonly operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword; 1018 readonly type: TypeNode; 1019 } 1020 export interface IndexedAccessTypeNode extends TypeNode { 1021 readonly kind: SyntaxKind.IndexedAccessType; 1022 readonly objectType: TypeNode; 1023 readonly indexType: TypeNode; 1024 } 1025 export interface MappedTypeNode extends TypeNode, Declaration { 1026 readonly kind: SyntaxKind.MappedType; 1027 readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken; 1028 readonly typeParameter: TypeParameterDeclaration; 1029 readonly nameType?: TypeNode; 1030 readonly questionToken?: QuestionToken | PlusToken | MinusToken; 1031 readonly type?: TypeNode; 1032 /** Used only to produce grammar errors */ 1033 readonly members?: NodeArray<TypeElement>; 1034 } 1035 export interface LiteralTypeNode extends TypeNode { 1036 readonly kind: SyntaxKind.LiteralType; 1037 readonly literal: NullLiteral | BooleanLiteral | LiteralExpression | PrefixUnaryExpression; 1038 } 1039 export interface StringLiteral extends LiteralExpression, Declaration { 1040 readonly kind: SyntaxKind.StringLiteral; 1041 } 1042 export type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral; 1043 export type PropertyNameLiteral = Identifier | StringLiteralLike | NumericLiteral; 1044 export interface TemplateLiteralTypeNode extends TypeNode { 1045 kind: SyntaxKind.TemplateLiteralType; 1046 readonly head: TemplateHead; 1047 readonly templateSpans: NodeArray<TemplateLiteralTypeSpan>; 1048 } 1049 export interface TemplateLiteralTypeSpan extends TypeNode { 1050 readonly kind: SyntaxKind.TemplateLiteralTypeSpan; 1051 readonly parent: TemplateLiteralTypeNode; 1052 readonly type: TypeNode; 1053 readonly literal: TemplateMiddle | TemplateTail; 1054 } 1055 export interface Expression extends Node { 1056 _expressionBrand: any; 1057 } 1058 export interface OmittedExpression extends Expression { 1059 readonly kind: SyntaxKind.OmittedExpression; 1060 } 1061 export interface PartiallyEmittedExpression extends LeftHandSideExpression { 1062 readonly kind: SyntaxKind.PartiallyEmittedExpression; 1063 readonly expression: Expression; 1064 } 1065 export interface UnaryExpression extends Expression { 1066 _unaryExpressionBrand: any; 1067 } 1068 /** Deprecated, please use UpdateExpression */ 1069 export type IncrementExpression = UpdateExpression; 1070 export interface UpdateExpression extends UnaryExpression { 1071 _updateExpressionBrand: any; 1072 } 1073 export type PrefixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.TildeToken | SyntaxKind.ExclamationToken; 1074 export interface PrefixUnaryExpression extends UpdateExpression { 1075 readonly kind: SyntaxKind.PrefixUnaryExpression; 1076 readonly operator: PrefixUnaryOperator; 1077 readonly operand: UnaryExpression; 1078 } 1079 export type PostfixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken; 1080 export interface PostfixUnaryExpression extends UpdateExpression { 1081 readonly kind: SyntaxKind.PostfixUnaryExpression; 1082 readonly operand: LeftHandSideExpression; 1083 readonly operator: PostfixUnaryOperator; 1084 } 1085 export interface LeftHandSideExpression extends UpdateExpression { 1086 _leftHandSideExpressionBrand: any; 1087 } 1088 export interface MemberExpression extends LeftHandSideExpression { 1089 _memberExpressionBrand: any; 1090 } 1091 export interface PrimaryExpression extends MemberExpression { 1092 _primaryExpressionBrand: any; 1093 } 1094 export interface NullLiteral extends PrimaryExpression { 1095 readonly kind: SyntaxKind.NullKeyword; 1096 } 1097 export interface TrueLiteral extends PrimaryExpression { 1098 readonly kind: SyntaxKind.TrueKeyword; 1099 } 1100 export interface FalseLiteral extends PrimaryExpression { 1101 readonly kind: SyntaxKind.FalseKeyword; 1102 } 1103 export type BooleanLiteral = TrueLiteral | FalseLiteral; 1104 export interface ThisExpression extends PrimaryExpression { 1105 readonly kind: SyntaxKind.ThisKeyword; 1106 } 1107 export interface SuperExpression extends PrimaryExpression { 1108 readonly kind: SyntaxKind.SuperKeyword; 1109 } 1110 export interface ImportExpression extends PrimaryExpression { 1111 readonly kind: SyntaxKind.ImportKeyword; 1112 } 1113 export interface DeleteExpression extends UnaryExpression { 1114 readonly kind: SyntaxKind.DeleteExpression; 1115 readonly expression: UnaryExpression; 1116 } 1117 export interface TypeOfExpression extends UnaryExpression { 1118 readonly kind: SyntaxKind.TypeOfExpression; 1119 readonly expression: UnaryExpression; 1120 } 1121 export interface VoidExpression extends UnaryExpression { 1122 readonly kind: SyntaxKind.VoidExpression; 1123 readonly expression: UnaryExpression; 1124 } 1125 export interface AwaitExpression extends UnaryExpression { 1126 readonly kind: SyntaxKind.AwaitExpression; 1127 readonly expression: UnaryExpression; 1128 } 1129 export interface YieldExpression extends Expression { 1130 readonly kind: SyntaxKind.YieldExpression; 1131 readonly asteriskToken?: AsteriskToken; 1132 readonly expression?: Expression; 1133 } 1134 export interface SyntheticExpression extends Expression { 1135 readonly kind: SyntaxKind.SyntheticExpression; 1136 readonly isSpread: boolean; 1137 readonly type: Type; 1138 readonly tupleNameSource?: ParameterDeclaration | NamedTupleMember; 1139 } 1140 export type ExponentiationOperator = SyntaxKind.AsteriskAsteriskToken; 1141 export type MultiplicativeOperator = SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken; 1142 export type MultiplicativeOperatorOrHigher = ExponentiationOperator | MultiplicativeOperator; 1143 export type AdditiveOperator = SyntaxKind.PlusToken | SyntaxKind.MinusToken; 1144 export type AdditiveOperatorOrHigher = MultiplicativeOperatorOrHigher | AdditiveOperator; 1145 export type ShiftOperator = SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken; 1146 export type ShiftOperatorOrHigher = AdditiveOperatorOrHigher | ShiftOperator; 1147 export type RelationalOperator = SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword; 1148 export type RelationalOperatorOrHigher = ShiftOperatorOrHigher | RelationalOperator; 1149 export type EqualityOperator = SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken; 1150 export type EqualityOperatorOrHigher = RelationalOperatorOrHigher | EqualityOperator; 1151 export type BitwiseOperator = SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken; 1152 export type BitwiseOperatorOrHigher = EqualityOperatorOrHigher | BitwiseOperator; 1153 export type LogicalOperator = SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken; 1154 export type LogicalOperatorOrHigher = BitwiseOperatorOrHigher | LogicalOperator; 1155 export type CompoundAssignmentOperator = SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.QuestionQuestionEqualsToken; 1156 export type AssignmentOperator = SyntaxKind.EqualsToken | CompoundAssignmentOperator; 1157 export type AssignmentOperatorOrHigher = SyntaxKind.QuestionQuestionToken | LogicalOperatorOrHigher | AssignmentOperator; 1158 export type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken; 1159 export type LogicalOrCoalescingAssignmentOperator = SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.QuestionQuestionEqualsToken; 1160 export type BinaryOperatorToken = Token<BinaryOperator>; 1161 export interface BinaryExpression extends Expression, Declaration { 1162 readonly kind: SyntaxKind.BinaryExpression; 1163 readonly left: Expression; 1164 readonly operatorToken: BinaryOperatorToken; 1165 readonly right: Expression; 1166 } 1167 export type AssignmentOperatorToken = Token<AssignmentOperator>; 1168 export interface AssignmentExpression<TOperator extends AssignmentOperatorToken> extends BinaryExpression { 1169 readonly left: LeftHandSideExpression; 1170 readonly operatorToken: TOperator; 1171 } 1172 export interface ObjectDestructuringAssignment extends AssignmentExpression<EqualsToken> { 1173 readonly left: ObjectLiteralExpression; 1174 } 1175 export interface ArrayDestructuringAssignment extends AssignmentExpression<EqualsToken> { 1176 readonly left: ArrayLiteralExpression; 1177 } 1178 export type DestructuringAssignment = ObjectDestructuringAssignment | ArrayDestructuringAssignment; 1179 export type BindingOrAssignmentElement = VariableDeclaration | ParameterDeclaration | ObjectBindingOrAssignmentElement | ArrayBindingOrAssignmentElement; 1180 export type ObjectBindingOrAssignmentElement = BindingElement | PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment; 1181 export type ArrayBindingOrAssignmentElement = BindingElement | OmittedExpression | SpreadElement | ArrayLiteralExpression | ObjectLiteralExpression | AssignmentExpression<EqualsToken> | Identifier | PropertyAccessExpression | ElementAccessExpression; 1182 export type BindingOrAssignmentElementRestIndicator = DotDotDotToken | SpreadElement | SpreadAssignment; 1183 export type BindingOrAssignmentElementTarget = BindingOrAssignmentPattern | Identifier | PropertyAccessExpression | ElementAccessExpression | OmittedExpression; 1184 export type ObjectBindingOrAssignmentPattern = ObjectBindingPattern | ObjectLiteralExpression; 1185 export type ArrayBindingOrAssignmentPattern = ArrayBindingPattern | ArrayLiteralExpression; 1186 export type AssignmentPattern = ObjectLiteralExpression | ArrayLiteralExpression; 1187 export type BindingOrAssignmentPattern = ObjectBindingOrAssignmentPattern | ArrayBindingOrAssignmentPattern; 1188 export interface ConditionalExpression extends Expression { 1189 readonly kind: SyntaxKind.ConditionalExpression; 1190 readonly condition: Expression; 1191 readonly questionToken: QuestionToken; 1192 readonly whenTrue: Expression; 1193 readonly colonToken: ColonToken; 1194 readonly whenFalse: Expression; 1195 } 1196 export type FunctionBody = Block; 1197 export type ConciseBody = FunctionBody | Expression; 1198 export interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer { 1199 readonly kind: SyntaxKind.FunctionExpression; 1200 readonly modifiers?: NodeArray<Modifier>; 1201 readonly name?: Identifier; 1202 readonly body: FunctionBody; 1203 } 1204 export interface EtsComponentExpression extends PrimaryExpression, Declaration { 1205 readonly kind: SyntaxKind.EtsComponentExpression; 1206 readonly expression: LeftHandSideExpression; 1207 readonly typeArguments?: NodeArray<TypeNode>; 1208 readonly arguments: NodeArray<Expression>; 1209 readonly body?: Block; 1210 } 1211 export interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer { 1212 readonly kind: SyntaxKind.ArrowFunction; 1213 readonly modifiers?: NodeArray<Modifier>; 1214 readonly equalsGreaterThanToken: EqualsGreaterThanToken; 1215 readonly body: ConciseBody; 1216 readonly name: never; 1217 } 1218 export interface LiteralLikeNode extends Node { 1219 text: string; 1220 isUnterminated?: boolean; 1221 hasExtendedUnicodeEscape?: boolean; 1222 } 1223 export interface TemplateLiteralLikeNode extends LiteralLikeNode { 1224 rawText?: string; 1225 } 1226 export interface LiteralExpression extends LiteralLikeNode, PrimaryExpression { 1227 _literalExpressionBrand: any; 1228 } 1229 export interface RegularExpressionLiteral extends LiteralExpression { 1230 readonly kind: SyntaxKind.RegularExpressionLiteral; 1231 } 1232 export interface NoSubstitutionTemplateLiteral extends LiteralExpression, TemplateLiteralLikeNode, Declaration { 1233 readonly kind: SyntaxKind.NoSubstitutionTemplateLiteral; 1234 } 1235 export enum TokenFlags { 1236 None = 0, 1237 Scientific = 16, 1238 Octal = 32, 1239 HexSpecifier = 64, 1240 BinarySpecifier = 128, 1241 OctalSpecifier = 256, 1242 } 1243 export interface NumericLiteral extends LiteralExpression, Declaration { 1244 readonly kind: SyntaxKind.NumericLiteral; 1245 } 1246 export interface BigIntLiteral extends LiteralExpression { 1247 readonly kind: SyntaxKind.BigIntLiteral; 1248 } 1249 export type LiteralToken = NumericLiteral | BigIntLiteral | StringLiteral | JsxText | RegularExpressionLiteral | NoSubstitutionTemplateLiteral; 1250 export interface TemplateHead extends TemplateLiteralLikeNode { 1251 readonly kind: SyntaxKind.TemplateHead; 1252 readonly parent: TemplateExpression | TemplateLiteralTypeNode; 1253 } 1254 export interface TemplateMiddle extends TemplateLiteralLikeNode { 1255 readonly kind: SyntaxKind.TemplateMiddle; 1256 readonly parent: TemplateSpan | TemplateLiteralTypeSpan; 1257 } 1258 export interface TemplateTail extends TemplateLiteralLikeNode { 1259 readonly kind: SyntaxKind.TemplateTail; 1260 readonly parent: TemplateSpan | TemplateLiteralTypeSpan; 1261 } 1262 export type PseudoLiteralToken = TemplateHead | TemplateMiddle | TemplateTail; 1263 export type TemplateLiteralToken = NoSubstitutionTemplateLiteral | PseudoLiteralToken; 1264 export interface TemplateExpression extends PrimaryExpression { 1265 readonly kind: SyntaxKind.TemplateExpression; 1266 readonly head: TemplateHead; 1267 readonly templateSpans: NodeArray<TemplateSpan>; 1268 } 1269 export type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral; 1270 export interface TemplateSpan extends Node { 1271 readonly kind: SyntaxKind.TemplateSpan; 1272 readonly parent: TemplateExpression; 1273 readonly expression: Expression; 1274 readonly literal: TemplateMiddle | TemplateTail; 1275 } 1276 export interface ParenthesizedExpression extends PrimaryExpression, JSDocContainer { 1277 readonly kind: SyntaxKind.ParenthesizedExpression; 1278 readonly expression: Expression; 1279 } 1280 export interface ArrayLiteralExpression extends PrimaryExpression { 1281 readonly kind: SyntaxKind.ArrayLiteralExpression; 1282 readonly elements: NodeArray<Expression>; 1283 } 1284 export interface SpreadElement extends Expression { 1285 readonly kind: SyntaxKind.SpreadElement; 1286 readonly parent: ArrayLiteralExpression | CallExpression | NewExpression; 1287 readonly expression: Expression; 1288 } 1289 /** 1290 * This interface is a base interface for ObjectLiteralExpression and JSXAttributes to extend from. JSXAttributes is similar to 1291 * ObjectLiteralExpression in that it contains array of properties; however, JSXAttributes' properties can only be 1292 * JSXAttribute or JSXSpreadAttribute. ObjectLiteralExpression, on the other hand, can only have properties of type 1293 * ObjectLiteralElement (e.g. PropertyAssignment, ShorthandPropertyAssignment etc.) 1294 */ 1295 export interface ObjectLiteralExpressionBase<T extends ObjectLiteralElement> extends PrimaryExpression, Declaration { 1296 readonly properties: NodeArray<T>; 1297 } 1298 export interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike> { 1299 readonly kind: SyntaxKind.ObjectLiteralExpression; 1300 } 1301 export type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression; 1302 export type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression; 1303 export type AccessExpression = PropertyAccessExpression | ElementAccessExpression; 1304 export interface PropertyAccessExpression extends MemberExpression, NamedDeclaration { 1305 readonly kind: SyntaxKind.PropertyAccessExpression; 1306 readonly expression: LeftHandSideExpression; 1307 readonly questionDotToken?: QuestionDotToken; 1308 readonly name: MemberName; 1309 } 1310 export interface PropertyAccessChain extends PropertyAccessExpression { 1311 _optionalChainBrand: any; 1312 readonly name: MemberName; 1313 } 1314 export interface SuperPropertyAccessExpression extends PropertyAccessExpression { 1315 readonly expression: SuperExpression; 1316 } 1317 /** Brand for a PropertyAccessExpression which, like a QualifiedName, consists of a sequence of identifiers separated by dots. */ 1318 export interface PropertyAccessEntityNameExpression extends PropertyAccessExpression { 1319 _propertyAccessExpressionLikeQualifiedNameBrand?: any; 1320 readonly expression: EntityNameExpression; 1321 readonly name: Identifier; 1322 } 1323 export interface ElementAccessExpression extends MemberExpression { 1324 readonly kind: SyntaxKind.ElementAccessExpression; 1325 readonly expression: LeftHandSideExpression; 1326 readonly questionDotToken?: QuestionDotToken; 1327 readonly argumentExpression: Expression; 1328 } 1329 export interface ElementAccessChain extends ElementAccessExpression { 1330 _optionalChainBrand: any; 1331 } 1332 export interface SuperElementAccessExpression extends ElementAccessExpression { 1333 readonly expression: SuperExpression; 1334 } 1335 export type SuperProperty = SuperPropertyAccessExpression | SuperElementAccessExpression; 1336 export interface CallExpression extends LeftHandSideExpression, Declaration { 1337 readonly kind: SyntaxKind.CallExpression; 1338 readonly expression: LeftHandSideExpression; 1339 readonly questionDotToken?: QuestionDotToken; 1340 readonly typeArguments?: NodeArray<TypeNode>; 1341 readonly arguments: NodeArray<Expression>; 1342 } 1343 export interface CallChain extends CallExpression { 1344 _optionalChainBrand: any; 1345 } 1346 export type OptionalChain = PropertyAccessChain | ElementAccessChain | CallChain | NonNullChain; 1347 export interface SuperCall extends CallExpression { 1348 readonly expression: SuperExpression; 1349 } 1350 export interface ImportCall extends CallExpression { 1351 readonly expression: ImportExpression; 1352 } 1353 export interface ExpressionWithTypeArguments extends MemberExpression, NodeWithTypeArguments { 1354 readonly kind: SyntaxKind.ExpressionWithTypeArguments; 1355 readonly expression: LeftHandSideExpression; 1356 } 1357 export interface NewExpression extends PrimaryExpression, Declaration { 1358 readonly kind: SyntaxKind.NewExpression; 1359 readonly expression: LeftHandSideExpression; 1360 readonly typeArguments?: NodeArray<TypeNode>; 1361 readonly arguments?: NodeArray<Expression>; 1362 } 1363 export interface TaggedTemplateExpression extends MemberExpression { 1364 readonly kind: SyntaxKind.TaggedTemplateExpression; 1365 readonly tag: LeftHandSideExpression; 1366 readonly typeArguments?: NodeArray<TypeNode>; 1367 readonly template: TemplateLiteral; 1368 } 1369 export type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement | EtsComponentExpression; 1370 export interface AsExpression extends Expression { 1371 readonly kind: SyntaxKind.AsExpression; 1372 readonly expression: Expression; 1373 readonly type: TypeNode; 1374 } 1375 export interface TypeAssertion extends UnaryExpression { 1376 readonly kind: SyntaxKind.TypeAssertionExpression; 1377 readonly type: TypeNode; 1378 readonly expression: UnaryExpression; 1379 } 1380 export interface SatisfiesExpression extends Expression { 1381 readonly kind: SyntaxKind.SatisfiesExpression; 1382 readonly expression: Expression; 1383 readonly type: TypeNode; 1384 } 1385 export type AssertionExpression = TypeAssertion | AsExpression; 1386 export interface NonNullExpression extends LeftHandSideExpression { 1387 readonly kind: SyntaxKind.NonNullExpression; 1388 readonly expression: Expression; 1389 } 1390 export interface NonNullChain extends NonNullExpression { 1391 _optionalChainBrand: any; 1392 } 1393 export interface MetaProperty extends PrimaryExpression { 1394 readonly kind: SyntaxKind.MetaProperty; 1395 readonly keywordToken: SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword; 1396 readonly name: Identifier; 1397 } 1398 export interface JsxElement extends PrimaryExpression { 1399 readonly kind: SyntaxKind.JsxElement; 1400 readonly openingElement: JsxOpeningElement; 1401 readonly children: NodeArray<JsxChild>; 1402 readonly closingElement: JsxClosingElement; 1403 } 1404 export type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement; 1405 export type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute; 1406 export type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess; 1407 export interface JsxTagNamePropertyAccess extends PropertyAccessExpression { 1408 readonly expression: JsxTagNameExpression; 1409 } 1410 export interface JsxAttributes extends ObjectLiteralExpressionBase<JsxAttributeLike> { 1411 readonly kind: SyntaxKind.JsxAttributes; 1412 readonly parent: JsxOpeningLikeElement; 1413 } 1414 export interface JsxOpeningElement extends Expression { 1415 readonly kind: SyntaxKind.JsxOpeningElement; 1416 readonly parent: JsxElement; 1417 readonly tagName: JsxTagNameExpression; 1418 readonly typeArguments?: NodeArray<TypeNode>; 1419 readonly attributes: JsxAttributes; 1420 } 1421 export interface JsxSelfClosingElement extends PrimaryExpression { 1422 readonly kind: SyntaxKind.JsxSelfClosingElement; 1423 readonly tagName: JsxTagNameExpression; 1424 readonly typeArguments?: NodeArray<TypeNode>; 1425 readonly attributes: JsxAttributes; 1426 } 1427 export interface JsxFragment extends PrimaryExpression { 1428 readonly kind: SyntaxKind.JsxFragment; 1429 readonly openingFragment: JsxOpeningFragment; 1430 readonly children: NodeArray<JsxChild>; 1431 readonly closingFragment: JsxClosingFragment; 1432 } 1433 export interface JsxOpeningFragment extends Expression { 1434 readonly kind: SyntaxKind.JsxOpeningFragment; 1435 readonly parent: JsxFragment; 1436 } 1437 export interface JsxClosingFragment extends Expression { 1438 readonly kind: SyntaxKind.JsxClosingFragment; 1439 readonly parent: JsxFragment; 1440 } 1441 export interface JsxAttribute extends ObjectLiteralElement { 1442 readonly kind: SyntaxKind.JsxAttribute; 1443 readonly parent: JsxAttributes; 1444 readonly name: Identifier; 1445 readonly initializer?: JsxAttributeValue; 1446 } 1447 export type JsxAttributeValue = StringLiteral | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; 1448 export interface JsxSpreadAttribute extends ObjectLiteralElement { 1449 readonly kind: SyntaxKind.JsxSpreadAttribute; 1450 readonly parent: JsxAttributes; 1451 readonly expression: Expression; 1452 } 1453 export interface JsxClosingElement extends Node { 1454 readonly kind: SyntaxKind.JsxClosingElement; 1455 readonly parent: JsxElement; 1456 readonly tagName: JsxTagNameExpression; 1457 } 1458 export interface JsxExpression extends Expression { 1459 readonly kind: SyntaxKind.JsxExpression; 1460 readonly parent: JsxElement | JsxFragment | JsxAttributeLike; 1461 readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>; 1462 readonly expression?: Expression; 1463 } 1464 export interface JsxText extends LiteralLikeNode { 1465 readonly kind: SyntaxKind.JsxText; 1466 readonly parent: JsxElement | JsxFragment; 1467 readonly containsOnlyTriviaWhiteSpaces: boolean; 1468 } 1469 export type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; 1470 export interface Statement extends Node, JSDocContainer { 1471 _statementBrand: any; 1472 } 1473 export interface NotEmittedStatement extends Statement { 1474 readonly kind: SyntaxKind.NotEmittedStatement; 1475 } 1476 /** 1477 * A list of comma-separated expressions. This node is only created by transformations. 1478 */ 1479 export interface CommaListExpression extends Expression { 1480 readonly kind: SyntaxKind.CommaListExpression; 1481 readonly elements: NodeArray<Expression>; 1482 } 1483 export interface EmptyStatement extends Statement { 1484 readonly kind: SyntaxKind.EmptyStatement; 1485 } 1486 export interface DebuggerStatement extends Statement { 1487 readonly kind: SyntaxKind.DebuggerStatement; 1488 } 1489 export interface MissingDeclaration extends DeclarationStatement { 1490 readonly kind: SyntaxKind.MissingDeclaration; 1491 readonly name?: Identifier; 1492 } 1493 export type BlockLike = SourceFile | Block | ModuleBlock | CaseOrDefaultClause; 1494 export interface Block extends Statement { 1495 readonly kind: SyntaxKind.Block; 1496 readonly statements: NodeArray<Statement>; 1497 } 1498 export interface VariableStatement extends Statement { 1499 readonly kind: SyntaxKind.VariableStatement; 1500 readonly modifiers?: NodeArray<Modifier>; 1501 readonly declarationList: VariableDeclarationList; 1502 } 1503 export interface ExpressionStatement extends Statement { 1504 readonly kind: SyntaxKind.ExpressionStatement; 1505 readonly expression: Expression; 1506 } 1507 export interface IfStatement extends Statement { 1508 readonly kind: SyntaxKind.IfStatement; 1509 readonly expression: Expression; 1510 readonly thenStatement: Statement; 1511 readonly elseStatement?: Statement; 1512 } 1513 export interface IterationStatement extends Statement { 1514 readonly statement: Statement; 1515 } 1516 export interface DoStatement extends IterationStatement { 1517 readonly kind: SyntaxKind.DoStatement; 1518 readonly expression: Expression; 1519 } 1520 export interface WhileStatement extends IterationStatement { 1521 readonly kind: SyntaxKind.WhileStatement; 1522 readonly expression: Expression; 1523 } 1524 export type ForInitializer = VariableDeclarationList | Expression; 1525 export interface ForStatement extends IterationStatement { 1526 readonly kind: SyntaxKind.ForStatement; 1527 readonly initializer?: ForInitializer; 1528 readonly condition?: Expression; 1529 readonly incrementor?: Expression; 1530 } 1531 export type ForInOrOfStatement = ForInStatement | ForOfStatement; 1532 export interface ForInStatement extends IterationStatement { 1533 readonly kind: SyntaxKind.ForInStatement; 1534 readonly initializer: ForInitializer; 1535 readonly expression: Expression; 1536 } 1537 export interface ForOfStatement extends IterationStatement { 1538 readonly kind: SyntaxKind.ForOfStatement; 1539 readonly awaitModifier?: AwaitKeyword; 1540 readonly initializer: ForInitializer; 1541 readonly expression: Expression; 1542 } 1543 export interface BreakStatement extends Statement { 1544 readonly kind: SyntaxKind.BreakStatement; 1545 readonly label?: Identifier; 1546 } 1547 export interface ContinueStatement extends Statement { 1548 readonly kind: SyntaxKind.ContinueStatement; 1549 readonly label?: Identifier; 1550 } 1551 export type BreakOrContinueStatement = BreakStatement | ContinueStatement; 1552 export interface ReturnStatement extends Statement { 1553 readonly kind: SyntaxKind.ReturnStatement; 1554 readonly expression?: Expression; 1555 } 1556 export interface WithStatement extends Statement { 1557 readonly kind: SyntaxKind.WithStatement; 1558 readonly expression: Expression; 1559 readonly statement: Statement; 1560 } 1561 export interface SwitchStatement extends Statement { 1562 readonly kind: SyntaxKind.SwitchStatement; 1563 readonly expression: Expression; 1564 readonly caseBlock: CaseBlock; 1565 possiblyExhaustive?: boolean; 1566 } 1567 export interface CaseBlock extends Node { 1568 readonly kind: SyntaxKind.CaseBlock; 1569 readonly parent: SwitchStatement; 1570 readonly clauses: NodeArray<CaseOrDefaultClause>; 1571 } 1572 export interface CaseClause extends Node, JSDocContainer { 1573 readonly kind: SyntaxKind.CaseClause; 1574 readonly parent: CaseBlock; 1575 readonly expression: Expression; 1576 readonly statements: NodeArray<Statement>; 1577 } 1578 export interface DefaultClause extends Node { 1579 readonly kind: SyntaxKind.DefaultClause; 1580 readonly parent: CaseBlock; 1581 readonly statements: NodeArray<Statement>; 1582 } 1583 export type CaseOrDefaultClause = CaseClause | DefaultClause; 1584 export interface LabeledStatement extends Statement { 1585 readonly kind: SyntaxKind.LabeledStatement; 1586 readonly label: Identifier; 1587 readonly statement: Statement; 1588 } 1589 export interface ThrowStatement extends Statement { 1590 readonly kind: SyntaxKind.ThrowStatement; 1591 readonly expression: Expression; 1592 } 1593 export interface TryStatement extends Statement { 1594 readonly kind: SyntaxKind.TryStatement; 1595 readonly tryBlock: Block; 1596 readonly catchClause?: CatchClause; 1597 readonly finallyBlock?: Block; 1598 } 1599 export interface CatchClause extends Node { 1600 readonly kind: SyntaxKind.CatchClause; 1601 readonly parent: TryStatement; 1602 readonly variableDeclaration?: VariableDeclaration; 1603 readonly block: Block; 1604 } 1605 export type ObjectTypeDeclaration = ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode; 1606 export type DeclarationWithTypeParameters = DeclarationWithTypeParameterChildren | JSDocTypedefTag | JSDocCallbackTag | JSDocSignature; 1607 export type DeclarationWithTypeParameterChildren = SignatureDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | JSDocTemplateTag; 1608 export interface ClassLikeDeclarationBase extends NamedDeclaration, JSDocContainer { 1609 readonly kind: SyntaxKind.ClassDeclaration | SyntaxKind.ClassExpression | SyntaxKind.StructDeclaration; 1610 readonly name?: Identifier; 1611 readonly typeParameters?: NodeArray<TypeParameterDeclaration>; 1612 readonly heritageClauses?: NodeArray<HeritageClause>; 1613 readonly members: NodeArray<ClassElement>; 1614 } 1615 export interface ClassDeclaration extends ClassLikeDeclarationBase, DeclarationStatement { 1616 readonly kind: SyntaxKind.ClassDeclaration; 1617 readonly modifiers?: NodeArray<ModifierLike>; 1618 /** May be undefined in `export default class { ... }`. */ 1619 readonly name?: Identifier; 1620 } 1621 export interface StructDeclaration extends ClassLikeDeclarationBase, DeclarationStatement { 1622 readonly kind: SyntaxKind.StructDeclaration; 1623 readonly modifiers?: NodeArray<ModifierLike>; 1624 /** May be undefined in `export default class { ... }`. */ 1625 readonly name?: Identifier; 1626 } 1627 export interface ClassExpression extends ClassLikeDeclarationBase, PrimaryExpression { 1628 readonly kind: SyntaxKind.ClassExpression; 1629 readonly modifiers?: NodeArray<ModifierLike>; 1630 } 1631 export type ClassLikeDeclaration = ClassDeclaration | ClassExpression | StructDeclaration; 1632 export interface ClassElement extends NamedDeclaration { 1633 _classElementBrand: any; 1634 readonly name?: PropertyName; 1635 } 1636 export interface TypeElement extends NamedDeclaration { 1637 _typeElementBrand: any; 1638 readonly name?: PropertyName; 1639 readonly questionToken?: QuestionToken | undefined; 1640 } 1641 export interface InterfaceDeclaration extends DeclarationStatement, JSDocContainer { 1642 readonly kind: SyntaxKind.InterfaceDeclaration; 1643 readonly modifiers?: NodeArray<Modifier>; 1644 readonly name: Identifier; 1645 readonly typeParameters?: NodeArray<TypeParameterDeclaration>; 1646 readonly heritageClauses?: NodeArray<HeritageClause>; 1647 readonly members: NodeArray<TypeElement>; 1648 } 1649 export interface HeritageClause extends Node { 1650 readonly kind: SyntaxKind.HeritageClause; 1651 readonly parent: InterfaceDeclaration | ClassLikeDeclaration; 1652 readonly token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword; 1653 readonly types: NodeArray<ExpressionWithTypeArguments>; 1654 } 1655 export interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer { 1656 readonly kind: SyntaxKind.TypeAliasDeclaration; 1657 readonly modifiers?: NodeArray<Modifier>; 1658 readonly name: Identifier; 1659 readonly typeParameters?: NodeArray<TypeParameterDeclaration>; 1660 readonly type: TypeNode; 1661 } 1662 export interface EnumMember extends NamedDeclaration, JSDocContainer { 1663 readonly kind: SyntaxKind.EnumMember; 1664 readonly parent: EnumDeclaration; 1665 readonly name: PropertyName; 1666 readonly initializer?: Expression; 1667 } 1668 export interface EnumDeclaration extends DeclarationStatement, JSDocContainer { 1669 readonly kind: SyntaxKind.EnumDeclaration; 1670 readonly modifiers?: NodeArray<Modifier>; 1671 readonly name: Identifier; 1672 readonly members: NodeArray<EnumMember>; 1673 } 1674 export type ModuleName = Identifier | StringLiteral; 1675 export type ModuleBody = NamespaceBody | JSDocNamespaceBody; 1676 export interface ModuleDeclaration extends DeclarationStatement, JSDocContainer { 1677 readonly kind: SyntaxKind.ModuleDeclaration; 1678 readonly parent: ModuleBody | SourceFile; 1679 readonly modifiers?: NodeArray<Modifier>; 1680 readonly name: ModuleName; 1681 readonly body?: ModuleBody | JSDocNamespaceDeclaration; 1682 } 1683 export type NamespaceBody = ModuleBlock | NamespaceDeclaration; 1684 export interface NamespaceDeclaration extends ModuleDeclaration { 1685 readonly name: Identifier; 1686 readonly body: NamespaceBody; 1687 } 1688 export type JSDocNamespaceBody = Identifier | JSDocNamespaceDeclaration; 1689 export interface JSDocNamespaceDeclaration extends ModuleDeclaration { 1690 readonly name: Identifier; 1691 readonly body?: JSDocNamespaceBody; 1692 } 1693 export interface ModuleBlock extends Node, Statement { 1694 readonly kind: SyntaxKind.ModuleBlock; 1695 readonly parent: ModuleDeclaration; 1696 readonly statements: NodeArray<Statement>; 1697 } 1698 export type ModuleReference = EntityName | ExternalModuleReference; 1699 /** 1700 * One of: 1701 * - import x = require("mod"); 1702 * - import x = M.x; 1703 */ 1704 export interface ImportEqualsDeclaration extends DeclarationStatement, JSDocContainer { 1705 readonly kind: SyntaxKind.ImportEqualsDeclaration; 1706 readonly parent: SourceFile | ModuleBlock; 1707 readonly modifiers?: NodeArray<Modifier>; 1708 readonly name: Identifier; 1709 readonly isTypeOnly: boolean; 1710 readonly moduleReference: ModuleReference; 1711 } 1712 export interface ExternalModuleReference extends Node { 1713 readonly kind: SyntaxKind.ExternalModuleReference; 1714 readonly parent: ImportEqualsDeclaration; 1715 readonly expression: Expression; 1716 } 1717 export interface ImportDeclaration extends Statement { 1718 readonly kind: SyntaxKind.ImportDeclaration; 1719 readonly parent: SourceFile | ModuleBlock; 1720 readonly modifiers?: NodeArray<Modifier>; 1721 readonly importClause?: ImportClause; 1722 /** If this is not a StringLiteral it will be a grammar error. */ 1723 readonly moduleSpecifier: Expression; 1724 readonly assertClause?: AssertClause; 1725 } 1726 export type NamedImportBindings = NamespaceImport | NamedImports; 1727 export type NamedExportBindings = NamespaceExport | NamedExports; 1728 export interface ImportClause extends NamedDeclaration { 1729 readonly kind: SyntaxKind.ImportClause; 1730 readonly parent: ImportDeclaration; 1731 readonly isTypeOnly: boolean; 1732 readonly name?: Identifier; 1733 readonly namedBindings?: NamedImportBindings; 1734 readonly isLazy?: boolean; 1735 } 1736 export type AssertionKey = Identifier | StringLiteral; 1737 export interface AssertEntry extends Node { 1738 readonly kind: SyntaxKind.AssertEntry; 1739 readonly parent: AssertClause; 1740 readonly name: AssertionKey; 1741 readonly value: Expression; 1742 } 1743 export interface AssertClause extends Node { 1744 readonly kind: SyntaxKind.AssertClause; 1745 readonly parent: ImportDeclaration | ExportDeclaration; 1746 readonly elements: NodeArray<AssertEntry>; 1747 readonly multiLine?: boolean; 1748 } 1749 export interface NamespaceImport extends NamedDeclaration { 1750 readonly kind: SyntaxKind.NamespaceImport; 1751 readonly parent: ImportClause; 1752 readonly name: Identifier; 1753 } 1754 export interface NamespaceExport extends NamedDeclaration { 1755 readonly kind: SyntaxKind.NamespaceExport; 1756 readonly parent: ExportDeclaration; 1757 readonly name: Identifier; 1758 } 1759 export interface NamespaceExportDeclaration extends DeclarationStatement, JSDocContainer { 1760 readonly kind: SyntaxKind.NamespaceExportDeclaration; 1761 readonly name: Identifier; 1762 } 1763 export interface ExportDeclaration extends DeclarationStatement, JSDocContainer { 1764 readonly kind: SyntaxKind.ExportDeclaration; 1765 readonly parent: SourceFile | ModuleBlock; 1766 readonly modifiers?: NodeArray<Modifier>; 1767 readonly isTypeOnly: boolean; 1768 /** Will not be assigned in the case of `export * from "foo";` */ 1769 readonly exportClause?: NamedExportBindings; 1770 /** If this is not a StringLiteral it will be a grammar error. */ 1771 readonly moduleSpecifier?: Expression; 1772 readonly assertClause?: AssertClause; 1773 } 1774 export interface NamedImports extends Node { 1775 readonly kind: SyntaxKind.NamedImports; 1776 readonly parent: ImportClause; 1777 readonly elements: NodeArray<ImportSpecifier>; 1778 } 1779 export interface NamedExports extends Node { 1780 readonly kind: SyntaxKind.NamedExports; 1781 readonly parent: ExportDeclaration; 1782 readonly elements: NodeArray<ExportSpecifier>; 1783 } 1784 export type NamedImportsOrExports = NamedImports | NamedExports; 1785 export interface ImportSpecifier extends NamedDeclaration { 1786 readonly kind: SyntaxKind.ImportSpecifier; 1787 readonly parent: NamedImports; 1788 readonly propertyName?: Identifier; 1789 readonly name: Identifier; 1790 readonly isTypeOnly: boolean; 1791 } 1792 export interface ExportSpecifier extends NamedDeclaration, JSDocContainer { 1793 readonly kind: SyntaxKind.ExportSpecifier; 1794 readonly parent: NamedExports; 1795 readonly isTypeOnly: boolean; 1796 readonly propertyName?: Identifier; 1797 readonly name: Identifier; 1798 } 1799 export type ImportOrExportSpecifier = ImportSpecifier | ExportSpecifier; 1800 export type TypeOnlyCompatibleAliasDeclaration = ImportClause | ImportEqualsDeclaration | NamespaceImport | ImportOrExportSpecifier; 1801 export type TypeOnlyAliasDeclaration = ImportClause & { 1802 readonly isTypeOnly: true; 1803 readonly name: Identifier; 1804 } | ImportEqualsDeclaration & { 1805 readonly isTypeOnly: true; 1806 } | NamespaceImport & { 1807 readonly parent: ImportClause & { 1808 readonly isTypeOnly: true; 1809 }; 1810 } | ImportSpecifier & ({ 1811 readonly isTypeOnly: true; 1812 } | { 1813 readonly parent: NamedImports & { 1814 readonly parent: ImportClause & { 1815 readonly isTypeOnly: true; 1816 }; 1817 }; 1818 }) | ExportSpecifier & ({ 1819 readonly isTypeOnly: true; 1820 } | { 1821 readonly parent: NamedExports & { 1822 readonly parent: ExportDeclaration & { 1823 readonly isTypeOnly: true; 1824 }; 1825 }; 1826 }); 1827 /** 1828 * This is either an `export =` or an `export default` declaration. 1829 * Unless `isExportEquals` is set, this node was parsed as an `export default`. 1830 */ 1831 export interface ExportAssignment extends DeclarationStatement, JSDocContainer { 1832 readonly kind: SyntaxKind.ExportAssignment; 1833 readonly parent: SourceFile; 1834 readonly modifiers?: NodeArray<Modifier>; 1835 readonly isExportEquals?: boolean; 1836 readonly expression: Expression; 1837 } 1838 export interface FileReference extends TextRange { 1839 fileName: string; 1840 resolutionMode?: SourceFile["impliedNodeFormat"]; 1841 } 1842 export interface CheckJsDirective extends TextRange { 1843 enabled: boolean; 1844 } 1845 export type CommentKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia; 1846 export interface CommentRange extends TextRange { 1847 hasTrailingNewLine?: boolean; 1848 kind: CommentKind; 1849 } 1850 export interface SynthesizedComment extends CommentRange { 1851 text: string; 1852 pos: -1; 1853 end: -1; 1854 hasLeadingNewline?: boolean; 1855 } 1856 export interface JSDocTypeExpression extends TypeNode { 1857 readonly kind: SyntaxKind.JSDocTypeExpression; 1858 readonly type: TypeNode; 1859 } 1860 export interface JSDocNameReference extends Node { 1861 readonly kind: SyntaxKind.JSDocNameReference; 1862 readonly name: EntityName | JSDocMemberName; 1863 } 1864 /** Class#method reference in JSDoc */ 1865 export interface JSDocMemberName extends Node { 1866 readonly kind: SyntaxKind.JSDocMemberName; 1867 readonly left: EntityName | JSDocMemberName; 1868 readonly right: Identifier; 1869 } 1870 export interface JSDocType extends TypeNode { 1871 _jsDocTypeBrand: any; 1872 } 1873 export interface JSDocAllType extends JSDocType { 1874 readonly kind: SyntaxKind.JSDocAllType; 1875 } 1876 export interface JSDocUnknownType extends JSDocType { 1877 readonly kind: SyntaxKind.JSDocUnknownType; 1878 } 1879 export interface JSDocNonNullableType extends JSDocType { 1880 readonly kind: SyntaxKind.JSDocNonNullableType; 1881 readonly type: TypeNode; 1882 readonly postfix: boolean; 1883 } 1884 export interface JSDocNullableType extends JSDocType { 1885 readonly kind: SyntaxKind.JSDocNullableType; 1886 readonly type: TypeNode; 1887 readonly postfix: boolean; 1888 } 1889 export interface JSDocOptionalType extends JSDocType { 1890 readonly kind: SyntaxKind.JSDocOptionalType; 1891 readonly type: TypeNode; 1892 } 1893 export interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase { 1894 readonly kind: SyntaxKind.JSDocFunctionType; 1895 } 1896 export interface JSDocVariadicType extends JSDocType { 1897 readonly kind: SyntaxKind.JSDocVariadicType; 1898 readonly type: TypeNode; 1899 } 1900 export interface JSDocNamepathType extends JSDocType { 1901 readonly kind: SyntaxKind.JSDocNamepathType; 1902 readonly type: TypeNode; 1903 } 1904 export type JSDocTypeReferencingNode = JSDocVariadicType | JSDocOptionalType | JSDocNullableType | JSDocNonNullableType; 1905 export interface JSDoc extends Node { 1906 readonly kind: SyntaxKind.JSDoc; 1907 readonly parent: HasJSDoc; 1908 readonly tags?: NodeArray<JSDocTag>; 1909 readonly comment?: string | NodeArray<JSDocComment>; 1910 } 1911 export interface JSDocTag extends Node { 1912 readonly parent: JSDoc | JSDocTypeLiteral; 1913 readonly tagName: Identifier; 1914 readonly comment?: string | NodeArray<JSDocComment>; 1915 } 1916 export interface JSDocLink extends Node { 1917 readonly kind: SyntaxKind.JSDocLink; 1918 readonly name?: EntityName | JSDocMemberName; 1919 text: string; 1920 } 1921 export interface JSDocLinkCode extends Node { 1922 readonly kind: SyntaxKind.JSDocLinkCode; 1923 readonly name?: EntityName | JSDocMemberName; 1924 text: string; 1925 } 1926 export interface JSDocLinkPlain extends Node { 1927 readonly kind: SyntaxKind.JSDocLinkPlain; 1928 readonly name?: EntityName | JSDocMemberName; 1929 text: string; 1930 } 1931 export type JSDocComment = JSDocText | JSDocLink | JSDocLinkCode | JSDocLinkPlain; 1932 export interface JSDocText extends Node { 1933 readonly kind: SyntaxKind.JSDocText; 1934 text: string; 1935 } 1936 export interface JSDocUnknownTag extends JSDocTag { 1937 readonly kind: SyntaxKind.JSDocTag; 1938 } 1939 /** 1940 * Note that `@extends` is a synonym of `@augments`. 1941 * Both tags are represented by this interface. 1942 */ 1943 export interface JSDocAugmentsTag extends JSDocTag { 1944 readonly kind: SyntaxKind.JSDocAugmentsTag; 1945 readonly class: ExpressionWithTypeArguments & { 1946 readonly expression: Identifier | PropertyAccessEntityNameExpression; 1947 }; 1948 } 1949 export interface JSDocImplementsTag extends JSDocTag { 1950 readonly kind: SyntaxKind.JSDocImplementsTag; 1951 readonly class: ExpressionWithTypeArguments & { 1952 readonly expression: Identifier | PropertyAccessEntityNameExpression; 1953 }; 1954 } 1955 export interface JSDocAuthorTag extends JSDocTag { 1956 readonly kind: SyntaxKind.JSDocAuthorTag; 1957 } 1958 export interface JSDocDeprecatedTag extends JSDocTag { 1959 kind: SyntaxKind.JSDocDeprecatedTag; 1960 } 1961 export interface JSDocClassTag extends JSDocTag { 1962 readonly kind: SyntaxKind.JSDocClassTag; 1963 } 1964 export interface JSDocPublicTag extends JSDocTag { 1965 readonly kind: SyntaxKind.JSDocPublicTag; 1966 } 1967 export interface JSDocPrivateTag extends JSDocTag { 1968 readonly kind: SyntaxKind.JSDocPrivateTag; 1969 } 1970 export interface JSDocProtectedTag extends JSDocTag { 1971 readonly kind: SyntaxKind.JSDocProtectedTag; 1972 } 1973 export interface JSDocReadonlyTag extends JSDocTag { 1974 readonly kind: SyntaxKind.JSDocReadonlyTag; 1975 } 1976 export interface JSDocOverrideTag extends JSDocTag { 1977 readonly kind: SyntaxKind.JSDocOverrideTag; 1978 } 1979 export interface JSDocEnumTag extends JSDocTag, Declaration { 1980 readonly kind: SyntaxKind.JSDocEnumTag; 1981 readonly parent: JSDoc; 1982 readonly typeExpression: JSDocTypeExpression; 1983 } 1984 export interface JSDocThisTag extends JSDocTag { 1985 readonly kind: SyntaxKind.JSDocThisTag; 1986 readonly typeExpression: JSDocTypeExpression; 1987 } 1988 export interface JSDocTemplateTag extends JSDocTag { 1989 readonly kind: SyntaxKind.JSDocTemplateTag; 1990 readonly constraint: JSDocTypeExpression | undefined; 1991 readonly typeParameters: NodeArray<TypeParameterDeclaration>; 1992 } 1993 export interface JSDocSeeTag extends JSDocTag { 1994 readonly kind: SyntaxKind.JSDocSeeTag; 1995 readonly name?: JSDocNameReference; 1996 } 1997 export interface JSDocReturnTag extends JSDocTag { 1998 readonly kind: SyntaxKind.JSDocReturnTag; 1999 readonly typeExpression?: JSDocTypeExpression; 2000 } 2001 export interface JSDocTypeTag extends JSDocTag { 2002 readonly kind: SyntaxKind.JSDocTypeTag; 2003 readonly typeExpression: JSDocTypeExpression; 2004 } 2005 export interface JSDocTypedefTag extends JSDocTag, NamedDeclaration { 2006 readonly kind: SyntaxKind.JSDocTypedefTag; 2007 readonly parent: JSDoc; 2008 readonly fullName?: JSDocNamespaceDeclaration | Identifier; 2009 readonly name?: Identifier; 2010 readonly typeExpression?: JSDocTypeExpression | JSDocTypeLiteral; 2011 } 2012 export interface JSDocCallbackTag extends JSDocTag, NamedDeclaration { 2013 readonly kind: SyntaxKind.JSDocCallbackTag; 2014 readonly parent: JSDoc; 2015 readonly fullName?: JSDocNamespaceDeclaration | Identifier; 2016 readonly name?: Identifier; 2017 readonly typeExpression: JSDocSignature; 2018 } 2019 export interface JSDocSignature extends JSDocType, Declaration { 2020 readonly kind: SyntaxKind.JSDocSignature; 2021 readonly typeParameters?: readonly JSDocTemplateTag[]; 2022 readonly parameters: readonly JSDocParameterTag[]; 2023 readonly type: JSDocReturnTag | undefined; 2024 } 2025 export interface JSDocPropertyLikeTag extends JSDocTag, Declaration { 2026 readonly parent: JSDoc; 2027 readonly name: EntityName; 2028 readonly typeExpression?: JSDocTypeExpression; 2029 /** Whether the property name came before the type -- non-standard for JSDoc, but Typescript-like */ 2030 readonly isNameFirst: boolean; 2031 readonly isBracketed: boolean; 2032 } 2033 export interface JSDocPropertyTag extends JSDocPropertyLikeTag { 2034 readonly kind: SyntaxKind.JSDocPropertyTag; 2035 } 2036 export interface JSDocParameterTag extends JSDocPropertyLikeTag { 2037 readonly kind: SyntaxKind.JSDocParameterTag; 2038 } 2039 export interface JSDocTypeLiteral extends JSDocType { 2040 readonly kind: SyntaxKind.JSDocTypeLiteral; 2041 readonly jsDocPropertyTags?: readonly JSDocPropertyLikeTag[]; 2042 /** If true, then this type literal represents an *array* of its type. */ 2043 readonly isArrayType: boolean; 2044 } 2045 export enum FlowFlags { 2046 Unreachable = 1, 2047 Start = 2, 2048 BranchLabel = 4, 2049 LoopLabel = 8, 2050 Assignment = 16, 2051 TrueCondition = 32, 2052 FalseCondition = 64, 2053 SwitchClause = 128, 2054 ArrayMutation = 256, 2055 Call = 512, 2056 ReduceLabel = 1024, 2057 Referenced = 2048, 2058 Shared = 4096, 2059 Label = 12, 2060 Condition = 96 2061 } 2062 export type FlowNode = FlowStart | FlowLabel | FlowAssignment | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowCall | FlowReduceLabel; 2063 export interface FlowNodeBase { 2064 flags: FlowFlags; 2065 id?: number; 2066 } 2067 export interface FlowStart extends FlowNodeBase { 2068 node?: FunctionExpression | ArrowFunction | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; 2069 } 2070 export interface FlowLabel extends FlowNodeBase { 2071 antecedents: FlowNode[] | undefined; 2072 } 2073 export interface FlowAssignment extends FlowNodeBase { 2074 node: Expression | VariableDeclaration | BindingElement; 2075 antecedent: FlowNode; 2076 } 2077 export interface FlowCall extends FlowNodeBase { 2078 node: CallExpression; 2079 antecedent: FlowNode; 2080 } 2081 export interface FlowCondition extends FlowNodeBase { 2082 node: Expression; 2083 antecedent: FlowNode; 2084 } 2085 export interface FlowSwitchClause extends FlowNodeBase { 2086 switchStatement: SwitchStatement; 2087 clauseStart: number; 2088 clauseEnd: number; 2089 antecedent: FlowNode; 2090 } 2091 export interface FlowArrayMutation extends FlowNodeBase { 2092 node: CallExpression | BinaryExpression; 2093 antecedent: FlowNode; 2094 } 2095 export interface FlowReduceLabel extends FlowNodeBase { 2096 target: FlowLabel; 2097 antecedents: FlowNode[]; 2098 antecedent: FlowNode; 2099 } 2100 export type FlowType = Type | IncompleteType; 2101 export interface IncompleteType { 2102 flags: TypeFlags; 2103 type: Type; 2104 } 2105 export interface AmdDependency { 2106 path: string; 2107 name?: string; 2108 } 2109 /** 2110 * Subset of properties from SourceFile that are used in multiple utility functions 2111 */ 2112 export interface SourceFileLike { 2113 readonly text: string; 2114 readonly fileName?: string; 2115 } 2116 export interface SourceFile extends Declaration { 2117 readonly kind: SyntaxKind.SourceFile; 2118 readonly statements: NodeArray<Statement>; 2119 readonly endOfFileToken: Token<SyntaxKind.EndOfFileToken>; 2120 fileName: string; 2121 text: string; 2122 amdDependencies: readonly AmdDependency[]; 2123 moduleName?: string; 2124 referencedFiles: readonly FileReference[]; 2125 typeReferenceDirectives: readonly FileReference[]; 2126 libReferenceDirectives: readonly FileReference[]; 2127 languageVariant: LanguageVariant; 2128 isDeclarationFile: boolean; 2129 /** 2130 * lib.d.ts should have a reference comment like 2131 * 2132 * /// <reference no-default-lib="true"/> 2133 * 2134 * If any other file has this comment, it signals not to include lib.d.ts 2135 * because this containing file is intended to act as a default library. 2136 */ 2137 hasNoDefaultLib: boolean; 2138 languageVersion: ScriptTarget; 2139 /** 2140 * When `module` is `Node16` or `NodeNext`, this field controls whether the 2141 * source file in question is an ESNext-output-format file, or a CommonJS-output-format 2142 * module. This is derived by the module resolver as it looks up the file, since 2143 * it is derived from either the file extension of the module, or the containing 2144 * `package.json` context, and affects both checking and emit. 2145 * 2146 * It is _public_ so that (pre)transformers can set this field, 2147 * since it switches the builtin `node` module transform. Generally speaking, if unset, 2148 * the field is treated as though it is `ModuleKind.CommonJS`. 2149 * 2150 * Note that this field is only set by the module resolution process when 2151 * `moduleResolution` is `Node16` or `NodeNext`, which is implied by the `module` setting 2152 * of `Node16` or `NodeNext`, respectively, but may be overriden (eg, by a `moduleResolution` 2153 * of `node`). If so, this field will be unset and source files will be considered to be 2154 * CommonJS-output-format by the node module transformer and type checker, regardless of extension or context. 2155 */ 2156 impliedNodeFormat?: ModuleKind.ESNext | ModuleKind.CommonJS; 2157 } 2158 export interface Bundle extends Node { 2159 readonly kind: SyntaxKind.Bundle; 2160 readonly prepends: readonly (InputFiles | UnparsedSource)[]; 2161 readonly sourceFiles: readonly SourceFile[]; 2162 } 2163 export interface InputFiles extends Node { 2164 readonly kind: SyntaxKind.InputFiles; 2165 javascriptPath?: string; 2166 javascriptText: string; 2167 javascriptMapPath?: string; 2168 javascriptMapText?: string; 2169 declarationPath?: string; 2170 declarationText: string; 2171 declarationMapPath?: string; 2172 declarationMapText?: string; 2173 } 2174 export interface UnparsedSource extends Node { 2175 readonly kind: SyntaxKind.UnparsedSource; 2176 fileName: string; 2177 text: string; 2178 readonly prologues: readonly UnparsedPrologue[]; 2179 helpers: readonly UnscopedEmitHelper[] | undefined; 2180 referencedFiles: readonly FileReference[]; 2181 typeReferenceDirectives: readonly FileReference[] | undefined; 2182 libReferenceDirectives: readonly FileReference[]; 2183 hasNoDefaultLib?: boolean; 2184 sourceMapPath?: string; 2185 sourceMapText?: string; 2186 readonly syntheticReferences?: readonly UnparsedSyntheticReference[]; 2187 readonly texts: readonly UnparsedSourceText[]; 2188 } 2189 export type UnparsedSourceText = UnparsedPrepend | UnparsedTextLike; 2190 export type UnparsedNode = UnparsedPrologue | UnparsedSourceText | UnparsedSyntheticReference; 2191 export interface UnparsedSection extends Node { 2192 readonly kind: SyntaxKind; 2193 readonly parent: UnparsedSource; 2194 readonly data?: string; 2195 } 2196 export interface UnparsedPrologue extends UnparsedSection { 2197 readonly kind: SyntaxKind.UnparsedPrologue; 2198 readonly parent: UnparsedSource; 2199 readonly data: string; 2200 } 2201 export interface UnparsedPrepend extends UnparsedSection { 2202 readonly kind: SyntaxKind.UnparsedPrepend; 2203 readonly parent: UnparsedSource; 2204 readonly data: string; 2205 readonly texts: readonly UnparsedTextLike[]; 2206 } 2207 export interface UnparsedTextLike extends UnparsedSection { 2208 readonly kind: SyntaxKind.UnparsedText | SyntaxKind.UnparsedInternalText; 2209 readonly parent: UnparsedSource; 2210 } 2211 export interface UnparsedSyntheticReference extends UnparsedSection { 2212 readonly kind: SyntaxKind.UnparsedSyntheticReference; 2213 readonly parent: UnparsedSource; 2214 } 2215 export interface JsonSourceFile extends SourceFile { 2216 readonly statements: NodeArray<JsonObjectExpressionStatement>; 2217 } 2218 export interface TsConfigSourceFile extends JsonSourceFile { 2219 extendedSourceFiles?: string[]; 2220 } 2221 export interface JsonMinusNumericLiteral extends PrefixUnaryExpression { 2222 readonly kind: SyntaxKind.PrefixUnaryExpression; 2223 readonly operator: SyntaxKind.MinusToken; 2224 readonly operand: NumericLiteral; 2225 } 2226 export type JsonObjectExpression = ObjectLiteralExpression | ArrayLiteralExpression | JsonMinusNumericLiteral | NumericLiteral | StringLiteral | BooleanLiteral | NullLiteral; 2227 export interface JsonObjectExpressionStatement extends ExpressionStatement { 2228 readonly expression: JsonObjectExpression; 2229 } 2230 export interface ScriptReferenceHost { 2231 getCompilerOptions(): CompilerOptions; 2232 getSourceFile(fileName: string): SourceFile | undefined; 2233 getSourceFileByPath(path: Path): SourceFile | undefined; 2234 getCurrentDirectory(): string; 2235 } 2236 export interface ParseConfigHost { 2237 useCaseSensitiveFileNames: boolean; 2238 readDirectory(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): readonly string[]; 2239 /** 2240 * Gets a value indicating whether the specified path exists and is a file. 2241 * @param path The path to test. 2242 */ 2243 fileExists(path: string): boolean; 2244 readFile(path: string): string | undefined; 2245 trace?(s: string): void; 2246 } 2247 /** 2248 * Branded string for keeping track of when we've turned an ambiguous path 2249 * specified like "./blah" to an absolute path to an actual 2250 * tsconfig file, e.g. "/root/blah/tsconfig.json" 2251 */ 2252 export type ResolvedConfigFileName = string & { 2253 _isResolvedConfigFileName: never; 2254 }; 2255 export interface WriteFileCallbackData { 2256 } 2257 export type WriteFileCallback = (fileName: string, text: string, writeByteOrderMark: boolean, onError?: (message: string) => void, sourceFiles?: readonly SourceFile[], data?: WriteFileCallbackData) => void; 2258 export class OperationCanceledException { 2259 } 2260 export interface CancellationToken { 2261 isCancellationRequested(): boolean; 2262 /** @throws OperationCanceledException if isCancellationRequested is true */ 2263 throwIfCancellationRequested(): void; 2264 } 2265 export interface SymbolDisplayPart { 2266 text: string; 2267 kind: string; 2268 } 2269 export interface JsDocTagInfo { 2270 name: string; 2271 text?: string | SymbolDisplayPart[]; 2272 } 2273 export interface Program extends ScriptReferenceHost { 2274 getCurrentDirectory(): string; 2275 /** 2276 * Get a list of root file names that were passed to a 'createProgram' 2277 */ 2278 getRootFileNames(): readonly string[]; 2279 /** 2280 * Get a list of files in the program 2281 */ 2282 getSourceFiles(): readonly SourceFile[]; 2283 /** 2284 * Emits the JavaScript and declaration files. If targetSourceFile is not specified, then 2285 * the JavaScript and declaration files will be produced for all the files in this program. 2286 * If targetSourceFile is specified, then only the JavaScript and declaration for that 2287 * specific file will be generated. 2288 * 2289 * If writeFile is not specified then the writeFile callback from the compiler host will be 2290 * used for writing the JavaScript and declaration files. Otherwise, the writeFile parameter 2291 * will be invoked when writing the JavaScript and declaration files. 2292 */ 2293 emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult; 2294 getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 2295 getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 2296 getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[]; 2297 /** The first time this is called, it will return global diagnostics (no location). */ 2298 getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 2299 getSemanticDiagnosticsForLinter(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 2300 getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[]; 2301 getConfigFileParsingDiagnostics(): readonly Diagnostic[]; 2302 getEtsLibSFromProgram(): string[]; 2303 /** 2304 * Gets a type checker that can be used to semantically analyze source files in the program. 2305 */ 2306 getTypeChecker(): TypeChecker; 2307 /** 2308 * Gets a type checker that can be used to semantically analyze source files in the program for arkts linter. 2309 */ 2310 getLinterTypeChecker(): TypeChecker; 2311 getNodeCount(): number; 2312 getIdentifierCount(): number; 2313 getSymbolCount(): number; 2314 getTypeCount(): number; 2315 getInstantiationCount(): number; 2316 getRelationCacheSizes(): { 2317 assignable: number; 2318 identity: number; 2319 subtype: number; 2320 strictSubtype: number; 2321 }; 2322 isSourceFileFromExternalLibrary(file: SourceFile): boolean; 2323 isSourceFileDefaultLibrary(file: SourceFile): boolean; 2324 getSourceFileFromReference(referencingFile: SourceFile | UnparsedSource, ref: FileReference): SourceFile | undefined; 2325 getProjectReferences(): readonly ProjectReference[] | undefined; 2326 getResolvedProjectReferences(): readonly (ResolvedProjectReference | undefined)[] | undefined; 2327 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 2328 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 2329 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 2330 /** 2331 * Release typeChecker & linterTypeChecker 2332 */ 2333 releaseTypeChecker(): void; 2334 getEmitHost(writeFileCallback?: WriteFileCallback): EmitHost; 2335 } 2336 export type RedirectTargetsMap = ReadonlyESMap<Path, readonly string[]>; 2337 export interface ResolvedProjectReference { 2338 commandLine: ParsedCommandLine; 2339 sourceFile: SourceFile; 2340 references?: readonly (ResolvedProjectReference | undefined)[]; 2341 } 2342 export type CustomTransformerFactory = (context: TransformationContext) => CustomTransformer; 2343 export interface CustomTransformer { 2344 transformSourceFile(node: SourceFile): SourceFile; 2345 transformBundle(node: Bundle): Bundle; 2346 } 2347 export interface CustomTransformers { 2348 /** Custom transformers to evaluate before built-in .js transformations. */ 2349 before?: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]; 2350 /** Custom transformers to evaluate after built-in .js transformations. */ 2351 after?: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]; 2352 /** Custom transformers to evaluate after built-in .d.ts transformations. */ 2353 afterDeclarations?: (TransformerFactory<Bundle | SourceFile> | CustomTransformerFactory)[]; 2354 } 2355 export interface SourceMapSpan { 2356 /** Line number in the .js file. */ 2357 emittedLine: number; 2358 /** Column number in the .js file. */ 2359 emittedColumn: number; 2360 /** Line number in the .ts file. */ 2361 sourceLine: number; 2362 /** Column number in the .ts file. */ 2363 sourceColumn: number; 2364 /** Optional name (index into names array) associated with this span. */ 2365 nameIndex?: number; 2366 /** .ts file (index into sources array) associated with this span */ 2367 sourceIndex: number; 2368 } 2369 /** Return code used by getEmitOutput function to indicate status of the function */ 2370 export enum ExitStatus { 2371 Success = 0, 2372 DiagnosticsPresent_OutputsSkipped = 1, 2373 DiagnosticsPresent_OutputsGenerated = 2, 2374 InvalidProject_OutputsSkipped = 3, 2375 ProjectReferenceCycle_OutputsSkipped = 4, 2376 /** @deprecated Use ProjectReferenceCycle_OutputsSkipped instead. */ 2377 ProjectReferenceCycle_OutputsSkupped = 4 2378 } 2379 export interface EmitResult { 2380 emitSkipped: boolean; 2381 /** Contains declaration emit diagnostics */ 2382 diagnostics: readonly Diagnostic[]; 2383 emittedFiles?: string[]; 2384 } 2385 export interface TypeChecker { 2386 getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; 2387 getDeclaredTypeOfSymbol(symbol: Symbol): Type; 2388 getPropertiesOfType(type: Type): Symbol[]; 2389 getPropertyOfType(type: Type, propertyName: string): Symbol | undefined; 2390 getPrivateIdentifierPropertyOfType(leftType: Type, name: string, location: Node): Symbol | undefined; 2391 getIndexInfoOfType(type: Type, kind: IndexKind): IndexInfo | undefined; 2392 getIndexInfosOfType(type: Type): readonly IndexInfo[]; 2393 getIndexInfosOfIndexSymbol: (indexSymbol: Symbol) => IndexInfo[]; 2394 getSignaturesOfType(type: Type, kind: SignatureKind): readonly Signature[]; 2395 getIndexTypeOfType(type: Type, kind: IndexKind): Type | undefined; 2396 getBaseTypes(type: InterfaceType): BaseType[]; 2397 getBaseTypeOfLiteralType(type: Type): Type; 2398 getWidenedType(type: Type): Type; 2399 getReturnTypeOfSignature(signature: Signature): Type; 2400 getNullableType(type: Type, flags: TypeFlags): Type; 2401 getNonNullableType(type: Type): Type; 2402 getTypeArguments(type: TypeReference): readonly Type[]; 2403 /** Note that the resulting nodes cannot be checked. */ 2404 typeToTypeNode(type: Type, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): TypeNode | undefined; 2405 /** Note that the resulting nodes cannot be checked. */ 2406 signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): SignatureDeclaration & { 2407 typeArguments?: NodeArray<TypeNode>; 2408 } | undefined; 2409 /** Note that the resulting nodes cannot be checked. */ 2410 indexInfoToIndexSignatureDeclaration(indexInfo: IndexInfo, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): IndexSignatureDeclaration | undefined; 2411 /** Note that the resulting nodes cannot be checked. */ 2412 symbolToEntityName(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): EntityName | undefined; 2413 /** Note that the resulting nodes cannot be checked. */ 2414 symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Expression | undefined; 2415 /** Note that the resulting nodes cannot be checked. */ 2416 symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): NodeArray<TypeParameterDeclaration> | undefined; 2417 /** Note that the resulting nodes cannot be checked. */ 2418 symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): ParameterDeclaration | undefined; 2419 /** Note that the resulting nodes cannot be checked. */ 2420 typeParameterToDeclaration(parameter: TypeParameter, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): TypeParameterDeclaration | undefined; 2421 getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; 2422 getSymbolAtLocation(node: Node): Symbol | undefined; 2423 getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[]; 2424 /** 2425 * The function returns the value (local variable) symbol of an identifier in the short-hand property assignment. 2426 * This is necessary as an identifier in short-hand property assignment can contains two meaning: property name and property value. 2427 */ 2428 getShorthandAssignmentValueSymbol(location: Node | undefined): Symbol | undefined; 2429 getExportSpecifierLocalTargetSymbol(location: ExportSpecifier | Identifier): Symbol | undefined; 2430 /** 2431 * If a symbol is a local symbol with an associated exported symbol, returns the exported symbol. 2432 * Otherwise returns its input. 2433 * For example, at `export type T = number;`: 2434 * - `getSymbolAtLocation` at the location `T` will return the exported symbol for `T`. 2435 * - But the result of `getSymbolsInScope` will contain the *local* symbol for `T`, not the exported symbol. 2436 * - Calling `getExportSymbolOfSymbol` on that local symbol will return the exported symbol. 2437 */ 2438 getExportSymbolOfSymbol(symbol: Symbol): Symbol; 2439 getPropertySymbolOfDestructuringAssignment(location: Identifier): Symbol | undefined; 2440 getTypeOfAssignmentPattern(pattern: AssignmentPattern): Type; 2441 getTypeAtLocation(node: Node): Type; 2442 tryGetTypeAtLocationWithoutCheck(node: Node): Type; 2443 getTypeFromTypeNode(node: TypeNode): Type; 2444 signatureToString(signature: Signature, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): string; 2445 typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; 2446 symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): string; 2447 typePredicateToString(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; 2448 getFullyQualifiedName(symbol: Symbol): string; 2449 getAugmentedPropertiesOfType(type: Type): Symbol[]; 2450 getRootSymbols(symbol: Symbol): readonly Symbol[]; 2451 getSymbolOfExpando(node: Node, allowDeclaration: boolean): Symbol | undefined; 2452 getContextualType(node: Expression): Type | undefined; 2453 /** 2454 * returns unknownSignature in the case of an error. 2455 * returns undefined if the node is not valid. 2456 * @param argumentCount Apparent number of arguments, passed in case of a possibly incomplete call. This should come from an ArgumentListInfo. See `signatureHelp.ts`. 2457 */ 2458 getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; 2459 tryGetResolvedSignatureWithoutCheck(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; 2460 getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature | undefined; 2461 isImplementationOfOverload(node: SignatureDeclaration): boolean | undefined; 2462 isUndefinedSymbol(symbol: Symbol): boolean; 2463 isArgumentsSymbol(symbol: Symbol): boolean; 2464 isUnknownSymbol(symbol: Symbol): boolean; 2465 getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): string | number | undefined; 2466 isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName | ImportTypeNode, propertyName: string): boolean; 2467 /** Follow all aliases to get the original symbol. */ 2468 getAliasedSymbol(symbol: Symbol): Symbol; 2469 /** Follow a *single* alias to get the immediately aliased symbol. */ 2470 getImmediateAliasedSymbol(symbol: Symbol): Symbol | undefined; 2471 getExportsOfModule(moduleSymbol: Symbol): Symbol[]; 2472 getJsxIntrinsicTagNamesAt(location: Node): Symbol[]; 2473 isOptionalParameter(node: ParameterDeclaration): boolean; 2474 getAmbientModules(): Symbol[]; 2475 tryGetMemberInModuleExports(memberName: string, moduleSymbol: Symbol): Symbol | undefined; 2476 getApparentType(type: Type): Type; 2477 getBaseConstraintOfType(type: Type): Type | undefined; 2478 getDefaultFromTypeParameter(type: Type): Type | undefined; 2479 getTypePredicateOfSignature(signature: Signature): TypePredicate | undefined; 2480 /** 2481 * Depending on the operation performed, it may be appropriate to throw away the checker 2482 * if the cancellation token is triggered. Typically, if it is used for error checking 2483 * and the operation is cancelled, then it should be discarded, otherwise it is safe to keep. 2484 */ 2485 runWithCancellationToken<T>(token: CancellationToken, cb: (checker: TypeChecker) => T): T; 2486 getConstEnumRelate?(): ESMap<string, ESMap<string, string>>; 2487 clearConstEnumRelate?(): void; 2488 deleteConstEnumRelate?(path: string): void; 2489 } 2490 export enum NodeBuilderFlags { 2491 None = 0, 2492 NoTruncation = 1, 2493 WriteArrayAsGenericType = 2, 2494 GenerateNamesForShadowedTypeParams = 4, 2495 UseStructuralFallback = 8, 2496 ForbidIndexedAccessSymbolReferences = 16, 2497 WriteTypeArgumentsOfSignature = 32, 2498 UseFullyQualifiedType = 64, 2499 UseOnlyExternalAliasing = 128, 2500 SuppressAnyReturnType = 256, 2501 WriteTypeParametersInQualifiedName = 512, 2502 MultilineObjectLiterals = 1024, 2503 WriteClassExpressionAsTypeLiteral = 2048, 2504 UseTypeOfFunction = 4096, 2505 OmitParameterModifiers = 8192, 2506 UseAliasDefinedOutsideCurrentScope = 16384, 2507 UseSingleQuotesForStringLiteralType = 268435456, 2508 NoTypeReduction = 536870912, 2509 OmitThisParameter = 33554432, 2510 AllowThisInObjectLiteral = 32768, 2511 AllowQualifiedNameInPlaceOfIdentifier = 65536, 2512 /** @deprecated AllowQualifedNameInPlaceOfIdentifier. Use AllowQualifiedNameInPlaceOfIdentifier instead. */ 2513 AllowQualifedNameInPlaceOfIdentifier = 65536, 2514 AllowAnonymousIdentifier = 131072, 2515 AllowEmptyUnionOrIntersection = 262144, 2516 AllowEmptyTuple = 524288, 2517 AllowUniqueESSymbolType = 1048576, 2518 AllowEmptyIndexInfoType = 2097152, 2519 AllowNodeModulesRelativePaths = 67108864, 2520 IgnoreErrors = 70221824, 2521 InObjectTypeLiteral = 4194304, 2522 InTypeAlias = 8388608, 2523 InInitialEntityName = 16777216 2524 } 2525 export enum TypeFormatFlags { 2526 None = 0, 2527 NoTruncation = 1, 2528 WriteArrayAsGenericType = 2, 2529 UseStructuralFallback = 8, 2530 WriteTypeArgumentsOfSignature = 32, 2531 UseFullyQualifiedType = 64, 2532 SuppressAnyReturnType = 256, 2533 MultilineObjectLiterals = 1024, 2534 WriteClassExpressionAsTypeLiteral = 2048, 2535 UseTypeOfFunction = 4096, 2536 OmitParameterModifiers = 8192, 2537 UseAliasDefinedOutsideCurrentScope = 16384, 2538 UseSingleQuotesForStringLiteralType = 268435456, 2539 NoTypeReduction = 536870912, 2540 OmitThisParameter = 33554432, 2541 AllowUniqueESSymbolType = 1048576, 2542 AddUndefined = 131072, 2543 WriteArrowStyleSignature = 262144, 2544 InArrayType = 524288, 2545 InElementType = 2097152, 2546 InFirstTypeArgument = 4194304, 2547 InTypeAlias = 8388608, 2548 /** @deprecated */ WriteOwnNameForAnyLike = 0, 2549 NodeBuilderFlagsMask = 848330091 2550 } 2551 export enum SymbolFormatFlags { 2552 None = 0, 2553 WriteTypeParametersOrArguments = 1, 2554 UseOnlyExternalAliasing = 2, 2555 AllowAnyNodeKind = 4, 2556 UseAliasDefinedOutsideCurrentScope = 8, 2557 } 2558 interface SymbolWriter extends SymbolTracker { 2559 writeKeyword(text: string): void; 2560 writeOperator(text: string): void; 2561 writePunctuation(text: string): void; 2562 writeSpace(text: string): void; 2563 writeStringLiteral(text: string): void; 2564 writeParameter(text: string): void; 2565 writeProperty(text: string): void; 2566 writeSymbol(text: string, symbol: Symbol): void; 2567 writeLine(force?: boolean): void; 2568 increaseIndent(): void; 2569 decreaseIndent(): void; 2570 clear(): void; 2571 } 2572 export enum TypePredicateKind { 2573 This = 0, 2574 Identifier = 1, 2575 AssertsThis = 2, 2576 AssertsIdentifier = 3 2577 } 2578 export interface TypePredicateBase { 2579 kind: TypePredicateKind; 2580 type: Type | undefined; 2581 } 2582 export interface ThisTypePredicate extends TypePredicateBase { 2583 kind: TypePredicateKind.This; 2584 parameterName: undefined; 2585 parameterIndex: undefined; 2586 type: Type; 2587 } 2588 export interface IdentifierTypePredicate extends TypePredicateBase { 2589 kind: TypePredicateKind.Identifier; 2590 parameterName: string; 2591 parameterIndex: number; 2592 type: Type; 2593 } 2594 export interface AssertsThisTypePredicate extends TypePredicateBase { 2595 kind: TypePredicateKind.AssertsThis; 2596 parameterName: undefined; 2597 parameterIndex: undefined; 2598 type: Type | undefined; 2599 } 2600 export interface AssertsIdentifierTypePredicate extends TypePredicateBase { 2601 kind: TypePredicateKind.AssertsIdentifier; 2602 parameterName: string; 2603 parameterIndex: number; 2604 type: Type | undefined; 2605 } 2606 export type TypePredicate = ThisTypePredicate | IdentifierTypePredicate | AssertsThisTypePredicate | AssertsIdentifierTypePredicate; 2607 export enum SymbolFlags { 2608 None = 0, 2609 FunctionScopedVariable = 1, 2610 BlockScopedVariable = 2, 2611 Property = 4, 2612 EnumMember = 8, 2613 Function = 16, 2614 Class = 32, 2615 Interface = 64, 2616 ConstEnum = 128, 2617 RegularEnum = 256, 2618 ValueModule = 512, 2619 NamespaceModule = 1024, 2620 TypeLiteral = 2048, 2621 ObjectLiteral = 4096, 2622 Method = 8192, 2623 Constructor = 16384, 2624 GetAccessor = 32768, 2625 SetAccessor = 65536, 2626 Signature = 131072, 2627 TypeParameter = 262144, 2628 TypeAlias = 524288, 2629 ExportValue = 1048576, 2630 Alias = 2097152, 2631 Prototype = 4194304, 2632 ExportStar = 8388608, 2633 Optional = 16777216, 2634 Transient = 33554432, 2635 Assignment = 67108864, 2636 ModuleExports = 134217728, 2637 Enum = 384, 2638 Variable = 3, 2639 Value = 111551, 2640 Type = 788968, 2641 Namespace = 1920, 2642 Module = 1536, 2643 Accessor = 98304, 2644 FunctionScopedVariableExcludes = 111550, 2645 BlockScopedVariableExcludes = 111551, 2646 ParameterExcludes = 111551, 2647 PropertyExcludes = 0, 2648 EnumMemberExcludes = 900095, 2649 FunctionExcludes = 110991, 2650 ClassExcludes = 899503, 2651 InterfaceExcludes = 788872, 2652 RegularEnumExcludes = 899327, 2653 ConstEnumExcludes = 899967, 2654 ValueModuleExcludes = 110735, 2655 NamespaceModuleExcludes = 0, 2656 MethodExcludes = 103359, 2657 GetAccessorExcludes = 46015, 2658 SetAccessorExcludes = 78783, 2659 AccessorExcludes = 13247, 2660 TypeParameterExcludes = 526824, 2661 TypeAliasExcludes = 788968, 2662 AliasExcludes = 2097152, 2663 ModuleMember = 2623475, 2664 ExportHasLocal = 944, 2665 BlockScoped = 418, 2666 PropertyOrAccessor = 98308, 2667 ClassMember = 106500, 2668 } 2669 export interface Symbol { 2670 flags: SymbolFlags; 2671 escapedName: __String; 2672 declarations?: Declaration[]; 2673 valueDeclaration?: Declaration; 2674 members?: SymbolTable; 2675 exports?: SymbolTable; 2676 globalExports?: SymbolTable; 2677 exportSymbol?: Symbol; 2678 } 2679 export enum InternalSymbolName { 2680 Call = "__call", 2681 Constructor = "__constructor", 2682 New = "__new", 2683 Index = "__index", 2684 ExportStar = "__export", 2685 Global = "__global", 2686 Missing = "__missing", 2687 Type = "__type", 2688 Object = "__object", 2689 JSXAttributes = "__jsxAttributes", 2690 Class = "__class", 2691 Function = "__function", 2692 Computed = "__computed", 2693 Resolving = "__resolving__", 2694 ExportEquals = "export=", 2695 Default = "default", 2696 This = "this" 2697 } 2698 /** 2699 * This represents a string whose leading underscore have been escaped by adding extra leading underscores. 2700 * The shape of this brand is rather unique compared to others we've used. 2701 * Instead of just an intersection of a string and an object, it is that union-ed 2702 * with an intersection of void and an object. This makes it wholly incompatible 2703 * with a normal string (which is good, it cannot be misused on assignment or on usage), 2704 * while still being comparable with a normal string via === (also good) and castable from a string. 2705 */ 2706 export type __String = (string & { 2707 __escapedIdentifier: void; 2708 }) | (void & { 2709 __escapedIdentifier: void; 2710 }) | InternalSymbolName; 2711 /** ReadonlyMap where keys are `__String`s. */ 2712 export interface ReadonlyUnderscoreEscapedMap<T> extends ReadonlyESMap<__String, T> { 2713 } 2714 /** Map where keys are `__String`s. */ 2715 export interface UnderscoreEscapedMap<T> extends ESMap<__String, T>, ReadonlyUnderscoreEscapedMap<T> { 2716 } 2717 /** SymbolTable based on ES6 Map interface. */ 2718 export type SymbolTable = UnderscoreEscapedMap<Symbol>; 2719 export enum TypeFlags { 2720 Any = 1, 2721 Unknown = 2, 2722 String = 4, 2723 Number = 8, 2724 Boolean = 16, 2725 Enum = 32, 2726 BigInt = 64, 2727 StringLiteral = 128, 2728 NumberLiteral = 256, 2729 BooleanLiteral = 512, 2730 EnumLiteral = 1024, 2731 BigIntLiteral = 2048, 2732 ESSymbol = 4096, 2733 UniqueESSymbol = 8192, 2734 Void = 16384, 2735 Undefined = 32768, 2736 Null = 65536, 2737 Never = 131072, 2738 TypeParameter = 262144, 2739 Object = 524288, 2740 Union = 1048576, 2741 Intersection = 2097152, 2742 Index = 4194304, 2743 IndexedAccess = 8388608, 2744 Conditional = 16777216, 2745 Substitution = 33554432, 2746 NonPrimitive = 67108864, 2747 TemplateLiteral = 134217728, 2748 StringMapping = 268435456, 2749 Literal = 2944, 2750 Unit = 109440, 2751 StringOrNumberLiteral = 384, 2752 PossiblyFalsy = 117724, 2753 StringLike = 402653316, 2754 NumberLike = 296, 2755 BigIntLike = 2112, 2756 BooleanLike = 528, 2757 EnumLike = 1056, 2758 ESSymbolLike = 12288, 2759 VoidLike = 49152, 2760 UnionOrIntersection = 3145728, 2761 StructuredType = 3670016, 2762 TypeVariable = 8650752, 2763 InstantiableNonPrimitive = 58982400, 2764 InstantiablePrimitive = 406847488, 2765 Instantiable = 465829888, 2766 StructuredOrInstantiable = 469499904, 2767 Narrowable = 536624127, 2768 } 2769 export type DestructuringPattern = BindingPattern | ObjectLiteralExpression | ArrayLiteralExpression; 2770 export interface Type { 2771 flags: TypeFlags; 2772 symbol: Symbol; 2773 pattern?: DestructuringPattern; 2774 aliasSymbol?: Symbol; 2775 aliasTypeArguments?: readonly Type[]; 2776 } 2777 export interface LiteralType extends Type { 2778 value: string | number | PseudoBigInt; 2779 freshType: LiteralType; 2780 regularType: LiteralType; 2781 } 2782 export interface UniqueESSymbolType extends Type { 2783 symbol: Symbol; 2784 escapedName: __String; 2785 } 2786 export interface StringLiteralType extends LiteralType { 2787 value: string; 2788 } 2789 export interface NumberLiteralType extends LiteralType { 2790 value: number; 2791 } 2792 export interface BigIntLiteralType extends LiteralType { 2793 value: PseudoBigInt; 2794 } 2795 export interface EnumType extends Type { 2796 } 2797 export enum ObjectFlags { 2798 Class = 1, 2799 Interface = 2, 2800 Reference = 4, 2801 Tuple = 8, 2802 Anonymous = 16, 2803 Mapped = 32, 2804 Instantiated = 64, 2805 ObjectLiteral = 128, 2806 EvolvingArray = 256, 2807 ObjectLiteralPatternWithComputedProperties = 512, 2808 ReverseMapped = 1024, 2809 JsxAttributes = 2048, 2810 JSLiteral = 4096, 2811 FreshLiteral = 8192, 2812 ArrayLiteral = 16384, 2813 ClassOrInterface = 3, 2814 ContainsSpread = 2097152, 2815 ObjectRestType = 4194304, 2816 InstantiationExpressionType = 8388608, 2817 } 2818 export interface ObjectType extends Type { 2819 objectFlags: ObjectFlags; 2820 } 2821 /** Class and interface types (ObjectFlags.Class and ObjectFlags.Interface). */ 2822 export interface InterfaceType extends ObjectType { 2823 typeParameters: TypeParameter[] | undefined; 2824 outerTypeParameters: TypeParameter[] | undefined; 2825 localTypeParameters: TypeParameter[] | undefined; 2826 thisType: TypeParameter | undefined; 2827 } 2828 export type BaseType = ObjectType | IntersectionType | TypeVariable; 2829 export interface InterfaceTypeWithDeclaredMembers extends InterfaceType { 2830 declaredProperties: Symbol[]; 2831 declaredCallSignatures: Signature[]; 2832 declaredConstructSignatures: Signature[]; 2833 declaredIndexInfos: IndexInfo[]; 2834 } 2835 /** 2836 * Type references (ObjectFlags.Reference). When a class or interface has type parameters or 2837 * a "this" type, references to the class or interface are made using type references. The 2838 * typeArguments property specifies the types to substitute for the type parameters of the 2839 * class or interface and optionally includes an extra element that specifies the type to 2840 * substitute for "this" in the resulting instantiation. When no extra argument is present, 2841 * the type reference itself is substituted for "this". The typeArguments property is undefined 2842 * if the class or interface has no type parameters and the reference isn't specifying an 2843 * explicit "this" argument. 2844 */ 2845 export interface TypeReference extends ObjectType { 2846 target: GenericType; 2847 node?: TypeReferenceNode | ArrayTypeNode | TupleTypeNode; 2848 } 2849 export interface DeferredTypeReference extends TypeReference { 2850 } 2851 export interface GenericType extends InterfaceType, TypeReference { 2852 } 2853 export enum ElementFlags { 2854 Required = 1, 2855 Optional = 2, 2856 Rest = 4, 2857 Variadic = 8, 2858 Fixed = 3, 2859 Variable = 12, 2860 NonRequired = 14, 2861 NonRest = 11 2862 } 2863 export interface TupleType extends GenericType { 2864 elementFlags: readonly ElementFlags[]; 2865 minLength: number; 2866 fixedLength: number; 2867 hasRestElement: boolean; 2868 combinedFlags: ElementFlags; 2869 readonly: boolean; 2870 labeledElementDeclarations?: readonly (NamedTupleMember | ParameterDeclaration)[]; 2871 } 2872 export interface TupleTypeReference extends TypeReference { 2873 target: TupleType; 2874 } 2875 export interface UnionOrIntersectionType extends Type { 2876 types: Type[]; 2877 } 2878 export interface UnionType extends UnionOrIntersectionType { 2879 } 2880 export interface IntersectionType extends UnionOrIntersectionType { 2881 } 2882 export type StructuredType = ObjectType | UnionType | IntersectionType; 2883 export interface EvolvingArrayType extends ObjectType { 2884 elementType: Type; 2885 finalArrayType?: Type; 2886 } 2887 export interface InstantiableType extends Type { 2888 } 2889 export interface TypeParameter extends InstantiableType { 2890 } 2891 export interface IndexedAccessType extends InstantiableType { 2892 objectType: Type; 2893 indexType: Type; 2894 constraint?: Type; 2895 simplifiedForReading?: Type; 2896 simplifiedForWriting?: Type; 2897 } 2898 export type TypeVariable = TypeParameter | IndexedAccessType; 2899 export interface IndexType extends InstantiableType { 2900 type: InstantiableType | UnionOrIntersectionType; 2901 } 2902 export interface ConditionalRoot { 2903 node: ConditionalTypeNode; 2904 checkType: Type; 2905 extendsType: Type; 2906 isDistributive: boolean; 2907 inferTypeParameters?: TypeParameter[]; 2908 outerTypeParameters?: TypeParameter[]; 2909 instantiations?: Map<Type>; 2910 aliasSymbol?: Symbol; 2911 aliasTypeArguments?: Type[]; 2912 } 2913 export interface ConditionalType extends InstantiableType { 2914 root: ConditionalRoot; 2915 checkType: Type; 2916 extendsType: Type; 2917 resolvedTrueType?: Type; 2918 resolvedFalseType?: Type; 2919 } 2920 export interface TemplateLiteralType extends InstantiableType { 2921 texts: readonly string[]; 2922 types: readonly Type[]; 2923 } 2924 export interface StringMappingType extends InstantiableType { 2925 symbol: Symbol; 2926 type: Type; 2927 } 2928 export interface SubstitutionType extends InstantiableType { 2929 objectFlags: ObjectFlags; 2930 baseType: Type; 2931 constraint: Type; 2932 } 2933 export enum SignatureKind { 2934 Call = 0, 2935 Construct = 1 2936 } 2937 export interface Signature { 2938 declaration?: SignatureDeclaration | JSDocSignature; 2939 typeParameters?: readonly TypeParameter[]; 2940 parameters: readonly Symbol[]; 2941 } 2942 export enum IndexKind { 2943 String = 0, 2944 Number = 1 2945 } 2946 export interface IndexInfo { 2947 keyType: Type; 2948 type: Type; 2949 isReadonly: boolean; 2950 declaration?: IndexSignatureDeclaration; 2951 } 2952 export enum InferencePriority { 2953 NakedTypeVariable = 1, 2954 SpeculativeTuple = 2, 2955 SubstituteSource = 4, 2956 HomomorphicMappedType = 8, 2957 PartialHomomorphicMappedType = 16, 2958 MappedTypeConstraint = 32, 2959 ContravariantConditional = 64, 2960 ReturnType = 128, 2961 LiteralKeyof = 256, 2962 NoConstraints = 512, 2963 AlwaysStrict = 1024, 2964 MaxValue = 2048, 2965 PriorityImpliesCombination = 416, 2966 Circularity = -1 2967 } 2968 /** @deprecated Use FileExtensionInfo instead. */ 2969 export type JsFileExtensionInfo = FileExtensionInfo; 2970 export interface FileExtensionInfo { 2971 extension: string; 2972 isMixedContent: boolean; 2973 scriptKind?: ScriptKind; 2974 } 2975 export interface DiagnosticMessage { 2976 key: string; 2977 category: DiagnosticCategory; 2978 code: number; 2979 message: string; 2980 reportsUnnecessary?: {}; 2981 reportsDeprecated?: {}; 2982 } 2983 /** 2984 * A linked list of formatted diagnostic messages to be used as part of a multiline message. 2985 * It is built from the bottom up, leaving the head to be the "main" diagnostic. 2986 * While it seems that DiagnosticMessageChain is structurally similar to DiagnosticMessage, 2987 * the difference is that messages are all preformatted in DMC. 2988 */ 2989 export interface DiagnosticMessageChain { 2990 messageText: string; 2991 category: DiagnosticCategory; 2992 code: number; 2993 next?: DiagnosticMessageChain[]; 2994 } 2995 export interface Diagnostic extends DiagnosticRelatedInformation { 2996 /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */ 2997 reportsUnnecessary?: {}; 2998 reportsDeprecated?: {}; 2999 source?: string; 3000 relatedInformation?: DiagnosticRelatedInformation[]; 3001 } 3002 export interface DiagnosticRelatedInformation { 3003 category: DiagnosticCategory; 3004 code: number; 3005 file: SourceFile | undefined; 3006 start: number | undefined; 3007 length: number | undefined; 3008 messageText: string | DiagnosticMessageChain; 3009 } 3010 export interface DiagnosticWithLocation extends Diagnostic { 3011 file: SourceFile; 3012 start: number; 3013 length: number; 3014 } 3015 export enum DiagnosticCategory { 3016 Warning = 0, 3017 Error = 1, 3018 Suggestion = 2, 3019 Message = 3 3020 } 3021 export enum ModuleResolutionKind { 3022 Classic = 1, 3023 NodeJs = 2, 3024 Node16 = 3, 3025 NodeNext = 99 3026 } 3027 export enum ModuleDetectionKind { 3028 /** 3029 * Files with imports, exports and/or import.meta are considered modules 3030 */ 3031 Legacy = 1, 3032 /** 3033 * Legacy, but also files with jsx under react-jsx or react-jsxdev and esm mode files under moduleResolution: node16+ 3034 */ 3035 Auto = 2, 3036 /** 3037 * Consider all non-declaration files modules, regardless of present syntax 3038 */ 3039 Force = 3 3040 } 3041 export interface PluginImport { 3042 name: string; 3043 } 3044 export interface ProjectReference { 3045 /** A normalized path on disk */ 3046 path: string; 3047 /** The path as the user originally wrote it */ 3048 originalPath?: string; 3049 /** True if the output of this reference should be prepended to the output of this project. Only valid for --outFile compilations */ 3050 prepend?: boolean; 3051 /** True if it is intended that this reference form a circularity */ 3052 circular?: boolean; 3053 } 3054 export enum WatchFileKind { 3055 FixedPollingInterval = 0, 3056 PriorityPollingInterval = 1, 3057 DynamicPriorityPolling = 2, 3058 FixedChunkSizePolling = 3, 3059 UseFsEvents = 4, 3060 UseFsEventsOnParentDirectory = 5 3061 } 3062 export enum WatchDirectoryKind { 3063 UseFsEvents = 0, 3064 FixedPollingInterval = 1, 3065 DynamicPriorityPolling = 2, 3066 FixedChunkSizePolling = 3 3067 } 3068 export enum PollingWatchKind { 3069 FixedInterval = 0, 3070 PriorityInterval = 1, 3071 DynamicPriority = 2, 3072 FixedChunkSize = 3 3073 } 3074 export type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike<string[]> | PluginImport[] | ProjectReference[] | null | undefined | EtsOptions; 3075 export interface CompilerOptions { 3076 allowJs?: boolean; 3077 allowSyntheticDefaultImports?: boolean; 3078 allowUmdGlobalAccess?: boolean; 3079 allowUnreachableCode?: boolean; 3080 allowUnusedLabels?: boolean; 3081 alwaysStrict?: boolean; 3082 baseUrl?: string; 3083 charset?: string; 3084 checkJs?: boolean; 3085 declaration?: boolean; 3086 declarationMap?: boolean; 3087 emitDeclarationOnly?: boolean; 3088 declarationDir?: string; 3089 disableSizeLimit?: boolean; 3090 disableSourceOfProjectReferenceRedirect?: boolean; 3091 disableSolutionSearching?: boolean; 3092 disableReferencedProjectLoad?: boolean; 3093 downlevelIteration?: boolean; 3094 emitBOM?: boolean; 3095 emitDecoratorMetadata?: boolean; 3096 exactOptionalPropertyTypes?: boolean; 3097 experimentalDecorators?: boolean; 3098 forceConsistentCasingInFileNames?: boolean; 3099 importHelpers?: boolean; 3100 importsNotUsedAsValues?: ImportsNotUsedAsValues; 3101 inlineSourceMap?: boolean; 3102 inlineSources?: boolean; 3103 isolatedModules?: boolean; 3104 jsx?: JsxEmit; 3105 keyofStringsOnly?: boolean; 3106 lib?: string[]; 3107 locale?: string; 3108 mapRoot?: string; 3109 maxNodeModuleJsDepth?: number; 3110 module?: ModuleKind; 3111 moduleResolution?: ModuleResolutionKind; 3112 moduleSuffixes?: string[]; 3113 moduleDetection?: ModuleDetectionKind; 3114 newLine?: NewLineKind; 3115 noEmit?: boolean; 3116 noEmitHelpers?: boolean; 3117 noEmitOnError?: boolean; 3118 noErrorTruncation?: boolean; 3119 noFallthroughCasesInSwitch?: boolean; 3120 noImplicitAny?: boolean; 3121 noImplicitReturns?: boolean; 3122 noImplicitThis?: boolean; 3123 noStrictGenericChecks?: boolean; 3124 noUnusedLocals?: boolean; 3125 noUnusedParameters?: boolean; 3126 noImplicitUseStrict?: boolean; 3127 noPropertyAccessFromIndexSignature?: boolean; 3128 assumeChangesOnlyAffectDirectDependencies?: boolean; 3129 noLib?: boolean; 3130 noResolve?: boolean; 3131 noUncheckedIndexedAccess?: boolean; 3132 out?: string; 3133 outDir?: string; 3134 outFile?: string; 3135 paths?: MapLike<string[]>; 3136 preserveConstEnums?: boolean; 3137 noImplicitOverride?: boolean; 3138 preserveSymlinks?: boolean; 3139 preserveValueImports?: boolean; 3140 project?: string; 3141 reactNamespace?: string; 3142 jsxFactory?: string; 3143 jsxFragmentFactory?: string; 3144 jsxImportSource?: string; 3145 composite?: boolean; 3146 incremental?: boolean; 3147 tsBuildInfoFile?: string; 3148 removeComments?: boolean; 3149 rootDir?: string; 3150 rootDirs?: string[]; 3151 skipLibCheck?: boolean; 3152 skipDefaultLibCheck?: boolean; 3153 sourceMap?: boolean; 3154 sourceRoot?: string; 3155 strict?: boolean; 3156 strictFunctionTypes?: boolean; 3157 strictBindCallApply?: boolean; 3158 strictNullChecks?: boolean; 3159 strictPropertyInitialization?: boolean; 3160 stripInternal?: boolean; 3161 suppressExcessPropertyErrors?: boolean; 3162 suppressImplicitAnyIndexErrors?: boolean; 3163 target?: ScriptTarget; 3164 traceResolution?: boolean; 3165 useUnknownInCatchVariables?: boolean; 3166 resolveJsonModule?: boolean; 3167 types?: string[]; 3168 /** Paths used to compute primary types search locations */ 3169 typeRoots?: string[]; 3170 esModuleInterop?: boolean; 3171 useDefineForClassFields?: boolean; 3172 ets?: EtsOptions; 3173 packageManagerType?: string; 3174 emitNodeModulesFiles?: boolean; 3175 etsLoaderPath?: string; 3176 tsImportSendableEnable?: boolean; 3177 skipPathsInKeyForCompilationSettings?: boolean; 3178 compatibleSdkVersion?: number; 3179 compatibleSdkVersionStage?: string; 3180 [option: string]: CompilerOptionsValue | TsConfigSourceFile | undefined; 3181 } 3182 export interface EtsOptions { 3183 render: { 3184 method: string[]; 3185 decorator: string[]; 3186 }; 3187 components: string[]; 3188 libs: string[]; 3189 extend: { 3190 decorator: string[]; 3191 components: { 3192 name: string; 3193 type: string; 3194 instance: string; 3195 }[]; 3196 }; 3197 styles: { 3198 decorator: string; 3199 component: { 3200 name: string; 3201 type: string; 3202 instance: string; 3203 }; 3204 property: string; 3205 }; 3206 concurrent: { 3207 decorator: string; 3208 }; 3209 customComponent?: string; 3210 propertyDecorators: { 3211 name: string; 3212 needInitialization: boolean; 3213 }[]; 3214 emitDecorators: { 3215 name: string; 3216 emitParameters: boolean; 3217 }[]; 3218 syntaxComponents: { 3219 paramsUICallback: string[]; 3220 attrUICallback: { 3221 name: string; 3222 attributes: string[]; 3223 }[]; 3224 }; 3225 } 3226 export interface WatchOptions { 3227 watchFile?: WatchFileKind; 3228 watchDirectory?: WatchDirectoryKind; 3229 fallbackPolling?: PollingWatchKind; 3230 synchronousWatchDirectory?: boolean; 3231 excludeDirectories?: string[]; 3232 excludeFiles?: string[]; 3233 [option: string]: CompilerOptionsValue | undefined; 3234 } 3235 export interface TypeAcquisition { 3236 /** 3237 * @deprecated typingOptions.enableAutoDiscovery 3238 * Use typeAcquisition.enable instead. 3239 */ 3240 enableAutoDiscovery?: boolean; 3241 enable?: boolean; 3242 include?: string[]; 3243 exclude?: string[]; 3244 disableFilenameBasedTypeAcquisition?: boolean; 3245 [option: string]: CompilerOptionsValue | undefined; 3246 } 3247 export enum ModuleKind { 3248 None = 0, 3249 CommonJS = 1, 3250 AMD = 2, 3251 UMD = 3, 3252 System = 4, 3253 ES2015 = 5, 3254 ES2020 = 6, 3255 ES2022 = 7, 3256 ESNext = 99, 3257 Node16 = 100, 3258 NodeNext = 199 3259 } 3260 export enum JsxEmit { 3261 None = 0, 3262 Preserve = 1, 3263 React = 2, 3264 ReactNative = 3, 3265 ReactJSX = 4, 3266 ReactJSXDev = 5 3267 } 3268 export enum ImportsNotUsedAsValues { 3269 Remove = 0, 3270 Preserve = 1, 3271 Error = 2 3272 } 3273 export enum NewLineKind { 3274 CarriageReturnLineFeed = 0, 3275 LineFeed = 1 3276 } 3277 export interface LineAndCharacter { 3278 /** 0-based. */ 3279 line: number; 3280 character: number; 3281 } 3282 export enum ScriptKind { 3283 Unknown = 0, 3284 JS = 1, 3285 JSX = 2, 3286 TS = 3, 3287 TSX = 4, 3288 External = 5, 3289 JSON = 6, 3290 /** 3291 * Used on extensions that doesn't define the ScriptKind but the content defines it. 3292 * Deferred extensions are going to be included in all project contexts. 3293 */ 3294 Deferred = 7, 3295 ETS = 8 3296 } 3297 export enum ScriptTarget { 3298 ES3 = 0, 3299 ES5 = 1, 3300 ES2015 = 2, 3301 ES2016 = 3, 3302 ES2017 = 4, 3303 ES2018 = 5, 3304 ES2019 = 6, 3305 ES2020 = 7, 3306 ES2021 = 8, 3307 ES2022 = 9, 3308 ESNext = 99, 3309 JSON = 100, 3310 Latest = 99 3311 } 3312 export enum LanguageVariant { 3313 Standard = 0, 3314 JSX = 1 3315 } 3316 /** Either a parsed command line or a parsed tsconfig.json */ 3317 export interface ParsedCommandLine { 3318 options: CompilerOptions; 3319 typeAcquisition?: TypeAcquisition; 3320 fileNames: string[]; 3321 projectReferences?: readonly ProjectReference[]; 3322 watchOptions?: WatchOptions; 3323 raw?: any; 3324 errors: Diagnostic[]; 3325 wildcardDirectories?: MapLike<WatchDirectoryFlags>; 3326 compileOnSave?: boolean; 3327 } 3328 export enum WatchDirectoryFlags { 3329 None = 0, 3330 Recursive = 1 3331 } 3332 export interface CreateProgramOptions { 3333 rootNames: readonly string[]; 3334 options: CompilerOptions; 3335 projectReferences?: readonly ProjectReference[]; 3336 host?: CompilerHost; 3337 oldProgram?: Program; 3338 configFileParsingDiagnostics?: readonly Diagnostic[]; 3339 } 3340 export interface ModuleResolutionHost { 3341 fileExists(fileName: string): boolean; 3342 readFile(fileName: string): string | undefined; 3343 trace?(s: string): void; 3344 directoryExists?(directoryName: string): boolean; 3345 /** 3346 * Resolve a symbolic link. 3347 * @see https://nodejs.org/api/fs.html#fs_fs_realpathsync_path_options 3348 */ 3349 realpath?(path: string): string; 3350 getCurrentDirectory?(): string; 3351 getDirectories?(path: string): string[]; 3352 useCaseSensitiveFileNames?: boolean | (() => boolean) | undefined; 3353 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 3354 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 3355 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 3356 } 3357 /** 3358 * Used by services to specify the minimum host area required to set up source files under any compilation settings 3359 */ 3360 export interface MinimalResolutionCacheHost extends ModuleResolutionHost { 3361 getCompilationSettings(): CompilerOptions; 3362 getCompilerHost?(): CompilerHost | undefined; 3363 } 3364 /** 3365 * Represents the result of module resolution. 3366 * Module resolution will pick up tsx/jsx/js files even if '--jsx' and '--allowJs' are turned off. 3367 * The Program will then filter results based on these flags. 3368 * 3369 * Prefer to return a `ResolvedModuleFull` so that the file type does not have to be inferred. 3370 */ 3371 export interface ResolvedModule { 3372 /** Path of the file the module was resolved to. */ 3373 resolvedFileName: string; 3374 /** True if `resolvedFileName` comes from `node_modules`. */ 3375 isExternalLibraryImport?: boolean; 3376 } 3377 /** 3378 * ResolvedModule with an explicitly provided `extension` property. 3379 * Prefer this over `ResolvedModule`. 3380 * If changing this, remember to change `moduleResolutionIsEqualTo`. 3381 */ 3382 export interface ResolvedModuleFull extends ResolvedModule { 3383 /** 3384 * Extension of resolvedFileName. This must match what's at the end of resolvedFileName. 3385 * This is optional for backwards-compatibility, but will be added if not provided. 3386 */ 3387 extension: Extension; 3388 packageId?: PackageId; 3389 } 3390 /** 3391 * Unique identifier with a package name and version. 3392 * If changing this, remember to change `packageIdIsEqual`. 3393 */ 3394 export interface PackageId { 3395 /** 3396 * Name of the package. 3397 * Should not include `@types`. 3398 * If accessing a non-index file, this should include its name e.g. "foo/bar". 3399 */ 3400 name: string; 3401 /** 3402 * Name of a submodule within this package. 3403 * May be "". 3404 */ 3405 subModuleName: string; 3406 /** Version of the package, e.g. "1.2.3" */ 3407 version: string; 3408 } 3409 export enum Extension { 3410 Ts = ".ts", 3411 Tsx = ".tsx", 3412 Dts = ".d.ts", 3413 Js = ".js", 3414 Jsx = ".jsx", 3415 Json = ".json", 3416 TsBuildInfo = ".tsbuildinfo", 3417 Mjs = ".mjs", 3418 Mts = ".mts", 3419 Dmts = ".d.mts", 3420 Cjs = ".cjs", 3421 Cts = ".cts", 3422 Dcts = ".d.cts", 3423 Ets = ".ets", 3424 Dets = ".d.ets" 3425 } 3426 export interface ResolvedModuleWithFailedLookupLocations { 3427 readonly resolvedModule: ResolvedModuleFull | undefined; 3428 } 3429 export interface ResolvedTypeReferenceDirective { 3430 primary: boolean; 3431 resolvedFileName: string | undefined; 3432 packageId?: PackageId; 3433 /** True if `resolvedFileName` comes from `node_modules` or `oh_modules`. */ 3434 isExternalLibraryImport?: boolean; 3435 } 3436 export interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations { 3437 readonly resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined; 3438 readonly failedLookupLocations: string[]; 3439 } 3440 export interface FileCheckModuleInfo { 3441 fileNeedCheck: boolean; 3442 checkPayload: any; 3443 currentFileName: string; 3444 } 3445 export interface JsDocNodeCheckConfig { 3446 nodeNeedCheck: boolean; 3447 checkConfig: JsDocNodeCheckConfigItem[]; 3448 } 3449 export interface JsDocNodeCheckConfigItem { 3450 tagName: string[]; 3451 message: string; 3452 needConditionCheck: boolean; 3453 type: DiagnosticCategory; 3454 specifyCheckConditionFuncName: string; 3455 tagNameShouldExisted: boolean; 3456 checkValidCallback?: (jsDocTag: JSDocTag, config: JsDocNodeCheckConfigItem) => boolean; 3457 checkJsDocSpecialValidCallback?: (jsDocTags: readonly JSDocTag[], config: JsDocNodeCheckConfigItem) => boolean; 3458 } 3459 export interface TagCheckParam { 3460 needCheck: boolean; 3461 checkConfig: TagCheckConfig[]; 3462 } 3463 export interface TagCheckConfig { 3464 tagName: string; 3465 message: string; 3466 needConditionCheck: boolean; 3467 specifyCheckConditionFuncName: string; 3468 } 3469 export interface ConditionCheckResult { 3470 valid: boolean; 3471 type?: DiagnosticCategory; 3472 message?: string; 3473 } 3474 export interface CompilerHost extends ModuleResolutionHost { 3475 getSourceFile(fileName: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; 3476 getSourceFileByPath?(fileName: string, path: Path, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; 3477 getCancellationToken?(): CancellationToken; 3478 getDefaultLibFileName(options: CompilerOptions): string; 3479 getDefaultLibLocation?(): string; 3480 writeFile: WriteFileCallback; 3481 getCurrentDirectory(): string; 3482 getCanonicalFileName(fileName: string): string; 3483 useCaseSensitiveFileNames(): boolean; 3484 getNewLine(): string; 3485 readDirectory?(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): string[]; 3486 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 3487 /** 3488 * Returns the module resolution cache used by a provided `resolveModuleNames` implementation so that any non-name module resolution operations (eg, package.json lookup) can reuse it 3489 */ 3490 getModuleResolutionCache?(): ModuleResolutionCache | undefined; 3491 /** 3492 * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files 3493 */ 3494 resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 3495 getEnvironmentVariable?(name: string): string | undefined; 3496 /** If provided along with custom resolveModuleNames or resolveTypeReferenceDirectives, used to determine if unchanged file path needs to re-resolve modules/type reference directives */ 3497 hasInvalidatedResolutions?(filePath: Path): boolean; 3498 createHash?(data: string): string; 3499 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 3500 /** 3501 * get tagName where need to be determined based on the file path 3502 * @param jsDocFileCheckInfo filePath 3503 * @param symbolSourceFilePath filePath 3504 */ 3505 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 3506 /** 3507 * get checked results based on the file path and jsDocs 3508 * @param jsDocFileCheckedInfo 3509 * @param jsDocs 3510 */ 3511 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 3512 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 3513 getLastCompiledProgram?(): Program; 3514 } 3515 export interface SourceMapRange extends TextRange { 3516 source?: SourceMapSource; 3517 } 3518 export interface SourceMapSource { 3519 fileName: string; 3520 text: string; 3521 skipTrivia?: (pos: number) => number; 3522 } 3523 export enum EmitFlags { 3524 None = 0, 3525 SingleLine = 1, 3526 AdviseOnEmitNode = 2, 3527 NoSubstitution = 4, 3528 CapturesThis = 8, 3529 NoLeadingSourceMap = 16, 3530 NoTrailingSourceMap = 32, 3531 NoSourceMap = 48, 3532 NoNestedSourceMaps = 64, 3533 NoTokenLeadingSourceMaps = 128, 3534 NoTokenTrailingSourceMaps = 256, 3535 NoTokenSourceMaps = 384, 3536 NoLeadingComments = 512, 3537 NoTrailingComments = 1024, 3538 NoComments = 1536, 3539 NoNestedComments = 2048, 3540 HelperName = 4096, 3541 ExportName = 8192, 3542 LocalName = 16384, 3543 InternalName = 32768, 3544 Indented = 65536, 3545 NoIndentation = 131072, 3546 AsyncFunctionBody = 262144, 3547 ReuseTempVariableScope = 524288, 3548 CustomPrologue = 1048576, 3549 NoHoisting = 2097152, 3550 HasEndOfDeclarationMarker = 4194304, 3551 Iterator = 8388608, 3552 NoAsciiEscaping = 16777216, 3553 } 3554 export interface EmitHelperBase { 3555 readonly name: string; 3556 readonly scoped: boolean; 3557 readonly text: string | ((node: EmitHelperUniqueNameCallback) => string); 3558 readonly priority?: number; 3559 readonly dependencies?: EmitHelper[]; 3560 } 3561 export interface ScopedEmitHelper extends EmitHelperBase { 3562 readonly scoped: true; 3563 } 3564 export interface UnscopedEmitHelper extends EmitHelperBase { 3565 readonly scoped: false; 3566 readonly text: string; 3567 } 3568 export type EmitHelper = ScopedEmitHelper | UnscopedEmitHelper; 3569 export type EmitHelperUniqueNameCallback = (name: string) => string; 3570 export enum EmitHint { 3571 SourceFile = 0, 3572 Expression = 1, 3573 IdentifierName = 2, 3574 MappedTypeParameter = 3, 3575 Unspecified = 4, 3576 EmbeddedStatement = 5, 3577 JsxAttributeValue = 6 3578 } 3579 export interface SourceFileMayBeEmittedHost { 3580 getCompilerOptions(): CompilerOptions; 3581 isSourceFileFromExternalLibrary(file: SourceFile): boolean; 3582 getResolvedProjectReferenceToRedirect(fileName: string): ResolvedProjectReference | undefined; 3583 isSourceOfProjectReferenceRedirect(fileName: string): boolean; 3584 } 3585 export interface EmitHost extends ScriptReferenceHost, ModuleSpecifierResolutionHost, SourceFileMayBeEmittedHost { 3586 getSourceFiles(): readonly SourceFile[]; 3587 useCaseSensitiveFileNames(): boolean; 3588 getCurrentDirectory(): string; 3589 getLibFileFromReference(ref: FileReference): SourceFile | undefined; 3590 getCommonSourceDirectory(): string; 3591 getCanonicalFileName(fileName: string): string; 3592 getNewLine(): string; 3593 isEmitBlocked(emitFileName: string): boolean; 3594 getPrependNodes(): readonly (InputFiles | UnparsedSource)[]; 3595 writeFile: WriteFileCallback; 3596 getSourceFileFromReference: Program["getSourceFileFromReference"]; 3597 readonly redirectTargetsMap: RedirectTargetsMap; 3598 createHash?(data: string): string; 3599 } 3600 export enum OuterExpressionKinds { 3601 Parentheses = 1, 3602 TypeAssertions = 2, 3603 NonNullAssertions = 4, 3604 PartiallyEmittedExpressions = 8, 3605 Assertions = 6, 3606 All = 15, 3607 ExcludeJSDocTypeAssertion = 16 3608 } 3609 export type TypeOfTag = "undefined" | "number" | "bigint" | "boolean" | "string" | "symbol" | "object" | "function"; 3610 export interface NodeFactory { 3611 createNodeArray<T extends Node>(elements?: readonly T[], hasTrailingComma?: boolean): NodeArray<T>; 3612 createNumericLiteral(value: string | number, numericLiteralFlags?: TokenFlags): NumericLiteral; 3613 createBigIntLiteral(value: string | PseudoBigInt): BigIntLiteral; 3614 createStringLiteral(text: string, isSingleQuote?: boolean): StringLiteral; 3615 createStringLiteralFromNode(sourceNode: PropertyNameLiteral | PrivateIdentifier, isSingleQuote?: boolean): StringLiteral; 3616 createRegularExpressionLiteral(text: string): RegularExpressionLiteral; 3617 createIdentifier(text: string): Identifier; 3618 /** 3619 * Create a unique temporary variable. 3620 * @param recordTempVariable An optional callback used to record the temporary variable name. This 3621 * should usually be a reference to `hoistVariableDeclaration` from a `TransformationContext`, but 3622 * can be `undefined` if you plan to record the temporary variable manually. 3623 * @param reservedInNestedScopes When `true`, reserves the temporary variable name in all nested scopes 3624 * during emit so that the variable can be referenced in a nested function body. This is an alternative to 3625 * setting `EmitFlags.ReuseTempVariableScope` on the nested function itself. 3626 */ 3627 createTempVariable(recordTempVariable: ((node: Identifier) => void) | undefined, reservedInNestedScopes?: boolean): Identifier; 3628 /** 3629 * Create a unique temporary variable for use in a loop. 3630 * @param reservedInNestedScopes When `true`, reserves the temporary variable name in all nested scopes 3631 * during emit so that the variable can be referenced in a nested function body. This is an alternative to 3632 * setting `EmitFlags.ReuseTempVariableScope` on the nested function itself. 3633 */ 3634 createLoopVariable(reservedInNestedScopes?: boolean): Identifier; 3635 /** Create a unique name based on the supplied text. */ 3636 createUniqueName(text: string, flags?: GeneratedIdentifierFlags): Identifier; 3637 /** Create a unique name generated for a node. */ 3638 getGeneratedNameForNode(node: Node | undefined, flags?: GeneratedIdentifierFlags): Identifier; 3639 createPrivateIdentifier(text: string): PrivateIdentifier; 3640 createUniquePrivateName(text?: string): PrivateIdentifier; 3641 getGeneratedPrivateNameForNode(node: Node): PrivateIdentifier; 3642 createToken(token: SyntaxKind.SuperKeyword): SuperExpression; 3643 createToken(token: SyntaxKind.ThisKeyword): ThisExpression; 3644 createToken(token: SyntaxKind.NullKeyword): NullLiteral; 3645 createToken(token: SyntaxKind.TrueKeyword): TrueLiteral; 3646 createToken(token: SyntaxKind.FalseKeyword): FalseLiteral; 3647 createToken<TKind extends PunctuationSyntaxKind>(token: TKind): PunctuationToken<TKind>; 3648 createToken<TKind extends KeywordTypeSyntaxKind>(token: TKind): KeywordTypeNode<TKind>; 3649 createToken<TKind extends ModifierSyntaxKind>(token: TKind): ModifierToken<TKind>; 3650 createToken<TKind extends KeywordSyntaxKind>(token: TKind): KeywordToken<TKind>; 3651 createToken<TKind extends SyntaxKind.Unknown | SyntaxKind.EndOfFileToken>(token: TKind): Token<TKind>; 3652 createSuper(): SuperExpression; 3653 createThis(): ThisExpression; 3654 createNull(): NullLiteral; 3655 createTrue(): TrueLiteral; 3656 createFalse(): FalseLiteral; 3657 createModifier<T extends ModifierSyntaxKind>(kind: T): ModifierToken<T>; 3658 createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[] | undefined; 3659 createQualifiedName(left: EntityName, right: string | Identifier): QualifiedName; 3660 updateQualifiedName(node: QualifiedName, left: EntityName, right: Identifier): QualifiedName; 3661 createComputedPropertyName(expression: Expression): ComputedPropertyName; 3662 updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName; 3663 createTypeParameterDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; 3664 updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 3665 createParameterDeclaration(modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; 3666 updateParameterDeclaration(node: ParameterDeclaration, modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; 3667 createDecorator(expression: Expression): Decorator; 3668 updateDecorator(node: Decorator, expression: Expression): Decorator; 3669 createPropertySignature(modifiers: readonly Modifier[] | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined): PropertySignature; 3670 updatePropertySignature(node: PropertySignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined): PropertySignature; 3671 createPropertyDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 3672 updatePropertyDeclaration(node: PropertyDeclaration, modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 3673 createMethodSignature(modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): MethodSignature; 3674 updateMethodSignature(node: MethodSignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): MethodSignature; 3675 createMethodDeclaration(modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; 3676 updateMethodDeclaration(node: MethodDeclaration, modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; 3677 createConstructorDeclaration(modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 3678 updateConstructorDeclaration(node: ConstructorDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 3679 createGetAccessorDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 3680 updateGetAccessorDeclaration(node: GetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 3681 createSetAccessorDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 3682 updateSetAccessorDeclaration(node: SetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 3683 createCallSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): CallSignatureDeclaration; 3684 updateCallSignature(node: CallSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): CallSignatureDeclaration; 3685 createConstructSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): ConstructSignatureDeclaration; 3686 updateConstructSignature(node: ConstructSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructSignatureDeclaration; 3687 createIndexSignature(modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 3688 updateIndexSignature(node: IndexSignatureDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 3689 createTemplateLiteralTypeSpan(type: TypeNode, literal: TemplateMiddle | TemplateTail): TemplateLiteralTypeSpan; 3690 updateTemplateLiteralTypeSpan(node: TemplateLiteralTypeSpan, type: TypeNode, literal: TemplateMiddle | TemplateTail): TemplateLiteralTypeSpan; 3691 createClassStaticBlockDeclaration(body: Block): ClassStaticBlockDeclaration; 3692 updateClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, body: Block): ClassStaticBlockDeclaration; 3693 createKeywordTypeNode<TKind extends KeywordTypeSyntaxKind>(kind: TKind): KeywordTypeNode<TKind>; 3694 createTypePredicateNode(assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode | string, type: TypeNode | undefined): TypePredicateNode; 3695 updateTypePredicateNode(node: TypePredicateNode, assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode, type: TypeNode | undefined): TypePredicateNode; 3696 createTypeReferenceNode(typeName: string | EntityName, typeArguments?: readonly TypeNode[]): TypeReferenceNode; 3697 updateTypeReferenceNode(node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray<TypeNode> | undefined): TypeReferenceNode; 3698 createFunctionTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): FunctionTypeNode; 3699 updateFunctionTypeNode(node: FunctionTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): FunctionTypeNode; 3700 createConstructorTypeNode(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): ConstructorTypeNode; 3701 updateConstructorTypeNode(node: ConstructorTypeNode, modifiers: readonly Modifier[] | undefined, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): ConstructorTypeNode; 3702 createTypeQueryNode(exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; 3703 updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; 3704 createTypeLiteralNode(members: readonly TypeElement[] | undefined): TypeLiteralNode; 3705 updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray<TypeElement>): TypeLiteralNode; 3706 createArrayTypeNode(elementType: TypeNode): ArrayTypeNode; 3707 updateArrayTypeNode(node: ArrayTypeNode, elementType: TypeNode): ArrayTypeNode; 3708 createTupleTypeNode(elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode; 3709 updateTupleTypeNode(node: TupleTypeNode, elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode; 3710 createNamedTupleMember(dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember; 3711 updateNamedTupleMember(node: NamedTupleMember, dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember; 3712 createOptionalTypeNode(type: TypeNode): OptionalTypeNode; 3713 updateOptionalTypeNode(node: OptionalTypeNode, type: TypeNode): OptionalTypeNode; 3714 createRestTypeNode(type: TypeNode): RestTypeNode; 3715 updateRestTypeNode(node: RestTypeNode, type: TypeNode): RestTypeNode; 3716 createUnionTypeNode(types: readonly TypeNode[]): UnionTypeNode; 3717 updateUnionTypeNode(node: UnionTypeNode, types: NodeArray<TypeNode>): UnionTypeNode; 3718 createIntersectionTypeNode(types: readonly TypeNode[]): IntersectionTypeNode; 3719 updateIntersectionTypeNode(node: IntersectionTypeNode, types: NodeArray<TypeNode>): IntersectionTypeNode; 3720 createConditionalTypeNode(checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; 3721 updateConditionalTypeNode(node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; 3722 createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode; 3723 updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode; 3724 createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 3725 updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; 3726 createParenthesizedType(type: TypeNode): ParenthesizedTypeNode; 3727 updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode; 3728 createThisTypeNode(): ThisTypeNode; 3729 createTypeOperatorNode(operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode; 3730 updateTypeOperatorNode(node: TypeOperatorNode, type: TypeNode): TypeOperatorNode; 3731 createIndexedAccessTypeNode(objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode; 3732 updateIndexedAccessTypeNode(node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode; 3733 createMappedTypeNode(readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined): MappedTypeNode; 3734 updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined): MappedTypeNode; 3735 createLiteralTypeNode(literal: LiteralTypeNode["literal"]): LiteralTypeNode; 3736 updateLiteralTypeNode(node: LiteralTypeNode, literal: LiteralTypeNode["literal"]): LiteralTypeNode; 3737 createTemplateLiteralType(head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode; 3738 updateTemplateLiteralType(node: TemplateLiteralTypeNode, head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode; 3739 createObjectBindingPattern(elements: readonly BindingElement[]): ObjectBindingPattern; 3740 updateObjectBindingPattern(node: ObjectBindingPattern, elements: readonly BindingElement[]): ObjectBindingPattern; 3741 createArrayBindingPattern(elements: readonly ArrayBindingElement[]): ArrayBindingPattern; 3742 updateArrayBindingPattern(node: ArrayBindingPattern, elements: readonly ArrayBindingElement[]): ArrayBindingPattern; 3743 createBindingElement(dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression): BindingElement; 3744 updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined): BindingElement; 3745 createArrayLiteralExpression(elements?: readonly Expression[], multiLine?: boolean): ArrayLiteralExpression; 3746 updateArrayLiteralExpression(node: ArrayLiteralExpression, elements: readonly Expression[]): ArrayLiteralExpression; 3747 createObjectLiteralExpression(properties?: readonly ObjectLiteralElementLike[], multiLine?: boolean): ObjectLiteralExpression; 3748 updateObjectLiteralExpression(node: ObjectLiteralExpression, properties: readonly ObjectLiteralElementLike[]): ObjectLiteralExpression; 3749 createPropertyAccessExpression(expression: Expression, name: string | MemberName): PropertyAccessExpression; 3750 updatePropertyAccessExpression(node: PropertyAccessExpression, expression: Expression, name: MemberName): PropertyAccessExpression; 3751 createPropertyAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, name: string | MemberName): PropertyAccessChain; 3752 updatePropertyAccessChain(node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, name: MemberName): PropertyAccessChain; 3753 createElementAccessExpression(expression: Expression, index: number | Expression): ElementAccessExpression; 3754 updateElementAccessExpression(node: ElementAccessExpression, expression: Expression, argumentExpression: Expression): ElementAccessExpression; 3755 createElementAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, index: number | Expression): ElementAccessChain; 3756 updateElementAccessChain(node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, argumentExpression: Expression): ElementAccessChain; 3757 createCallExpression(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallExpression; 3758 updateCallExpression(node: CallExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallExpression; 3759 createCallChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallChain; 3760 updateCallChain(node: CallChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallChain; 3761 createNewExpression(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression; 3762 updateNewExpression(node: NewExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression; 3763 createTaggedTemplateExpression(tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 3764 updateTaggedTemplateExpression(node: TaggedTemplateExpression, tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 3765 createTypeAssertion(type: TypeNode, expression: Expression): TypeAssertion; 3766 updateTypeAssertion(node: TypeAssertion, type: TypeNode, expression: Expression): TypeAssertion; 3767 createParenthesizedExpression(expression: Expression): ParenthesizedExpression; 3768 updateParenthesizedExpression(node: ParenthesizedExpression, expression: Expression): ParenthesizedExpression; 3769 createFunctionExpression(modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[] | undefined, type: TypeNode | undefined, body: Block): FunctionExpression; 3770 updateFunctionExpression(node: FunctionExpression, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block): FunctionExpression; 3771 createArrowFunction(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction; 3772 updateArrowFunction(node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken, body: ConciseBody): ArrowFunction; 3773 createEtsComponentExpression(name: Expression, argumentExpression: Expression[] | NodeArray<Expression> | undefined, body: Block | undefined): EtsComponentExpression; 3774 updateEtsComponentExpression(node: EtsComponentExpression, name: Expression | undefined, argumentExpression: Expression[] | NodeArray<Expression> | undefined, body: Block | undefined): EtsComponentExpression; 3775 createDeleteExpression(expression: Expression): DeleteExpression; 3776 updateDeleteExpression(node: DeleteExpression, expression: Expression): DeleteExpression; 3777 createTypeOfExpression(expression: Expression): TypeOfExpression; 3778 updateTypeOfExpression(node: TypeOfExpression, expression: Expression): TypeOfExpression; 3779 createVoidExpression(expression: Expression): VoidExpression; 3780 updateVoidExpression(node: VoidExpression, expression: Expression): VoidExpression; 3781 createAwaitExpression(expression: Expression): AwaitExpression; 3782 updateAwaitExpression(node: AwaitExpression, expression: Expression): AwaitExpression; 3783 createPrefixUnaryExpression(operator: PrefixUnaryOperator, operand: Expression): PrefixUnaryExpression; 3784 updatePrefixUnaryExpression(node: PrefixUnaryExpression, operand: Expression): PrefixUnaryExpression; 3785 createPostfixUnaryExpression(operand: Expression, operator: PostfixUnaryOperator): PostfixUnaryExpression; 3786 updatePostfixUnaryExpression(node: PostfixUnaryExpression, operand: Expression): PostfixUnaryExpression; 3787 createBinaryExpression(left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression; 3788 updateBinaryExpression(node: BinaryExpression, left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression; 3789 createConditionalExpression(condition: Expression, questionToken: QuestionToken | undefined, whenTrue: Expression, colonToken: ColonToken | undefined, whenFalse: Expression): ConditionalExpression; 3790 updateConditionalExpression(node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression; 3791 createTemplateExpression(head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression; 3792 updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression; 3793 createTemplateHead(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateHead; 3794 createTemplateHead(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateHead; 3795 createTemplateMiddle(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateMiddle; 3796 createTemplateMiddle(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateMiddle; 3797 createTemplateTail(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateTail; 3798 createTemplateTail(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateTail; 3799 createNoSubstitutionTemplateLiteral(text: string, rawText?: string): NoSubstitutionTemplateLiteral; 3800 createNoSubstitutionTemplateLiteral(text: string | undefined, rawText: string): NoSubstitutionTemplateLiteral; 3801 createYieldExpression(asteriskToken: AsteriskToken, expression: Expression): YieldExpression; 3802 createYieldExpression(asteriskToken: undefined, expression: Expression | undefined): YieldExpression; 3803 updateYieldExpression(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression | undefined): YieldExpression; 3804 createSpreadElement(expression: Expression): SpreadElement; 3805 updateSpreadElement(node: SpreadElement, expression: Expression): SpreadElement; 3806 createClassExpression(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression; 3807 updateClassExpression(node: ClassExpression, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression; 3808 createOmittedExpression(): OmittedExpression; 3809 createExpressionWithTypeArguments(expression: Expression, typeArguments: readonly TypeNode[] | undefined): ExpressionWithTypeArguments; 3810 updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, expression: Expression, typeArguments: readonly TypeNode[] | undefined): ExpressionWithTypeArguments; 3811 createAsExpression(expression: Expression, type: TypeNode): AsExpression; 3812 updateAsExpression(node: AsExpression, expression: Expression, type: TypeNode): AsExpression; 3813 createNonNullExpression(expression: Expression): NonNullExpression; 3814 updateNonNullExpression(node: NonNullExpression, expression: Expression): NonNullExpression; 3815 createNonNullChain(expression: Expression): NonNullChain; 3816 updateNonNullChain(node: NonNullChain, expression: Expression): NonNullChain; 3817 createMetaProperty(keywordToken: MetaProperty["keywordToken"], name: Identifier): MetaProperty; 3818 updateMetaProperty(node: MetaProperty, name: Identifier): MetaProperty; 3819 createSatisfiesExpression(expression: Expression, type: TypeNode): SatisfiesExpression; 3820 updateSatisfiesExpression(node: SatisfiesExpression, expression: Expression, type: TypeNode): SatisfiesExpression; 3821 createTemplateSpan(expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan; 3822 updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan; 3823 createSemicolonClassElement(): SemicolonClassElement; 3824 createBlock(statements: readonly Statement[], multiLine?: boolean): Block; 3825 updateBlock(node: Block, statements: readonly Statement[]): Block; 3826 createVariableStatement(modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList | readonly VariableDeclaration[]): VariableStatement; 3827 updateVariableStatement(node: VariableStatement, modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList): VariableStatement; 3828 createEmptyStatement(): EmptyStatement; 3829 createExpressionStatement(expression: Expression): ExpressionStatement; 3830 updateExpressionStatement(node: ExpressionStatement, expression: Expression): ExpressionStatement; 3831 createIfStatement(expression: Expression, thenStatement: Statement, elseStatement?: Statement): IfStatement; 3832 updateIfStatement(node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement | undefined): IfStatement; 3833 createDoStatement(statement: Statement, expression: Expression): DoStatement; 3834 updateDoStatement(node: DoStatement, statement: Statement, expression: Expression): DoStatement; 3835 createWhileStatement(expression: Expression, statement: Statement): WhileStatement; 3836 updateWhileStatement(node: WhileStatement, expression: Expression, statement: Statement): WhileStatement; 3837 createForStatement(initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement; 3838 updateForStatement(node: ForStatement, initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement; 3839 createForInStatement(initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement; 3840 updateForInStatement(node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement; 3841 createForOfStatement(awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement; 3842 updateForOfStatement(node: ForOfStatement, awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement; 3843 createContinueStatement(label?: string | Identifier): ContinueStatement; 3844 updateContinueStatement(node: ContinueStatement, label: Identifier | undefined): ContinueStatement; 3845 createBreakStatement(label?: string | Identifier): BreakStatement; 3846 updateBreakStatement(node: BreakStatement, label: Identifier | undefined): BreakStatement; 3847 createReturnStatement(expression?: Expression): ReturnStatement; 3848 updateReturnStatement(node: ReturnStatement, expression: Expression | undefined): ReturnStatement; 3849 createWithStatement(expression: Expression, statement: Statement): WithStatement; 3850 updateWithStatement(node: WithStatement, expression: Expression, statement: Statement): WithStatement; 3851 createSwitchStatement(expression: Expression, caseBlock: CaseBlock): SwitchStatement; 3852 updateSwitchStatement(node: SwitchStatement, expression: Expression, caseBlock: CaseBlock): SwitchStatement; 3853 createLabeledStatement(label: string | Identifier, statement: Statement): LabeledStatement; 3854 updateLabeledStatement(node: LabeledStatement, label: Identifier, statement: Statement): LabeledStatement; 3855 createThrowStatement(expression: Expression): ThrowStatement; 3856 updateThrowStatement(node: ThrowStatement, expression: Expression): ThrowStatement; 3857 createTryStatement(tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement; 3858 updateTryStatement(node: TryStatement, tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement; 3859 createDebuggerStatement(): DebuggerStatement; 3860 createVariableDeclaration(name: string | BindingName, exclamationToken?: ExclamationToken, type?: TypeNode, initializer?: Expression): VariableDeclaration; 3861 updateVariableDeclaration(node: VariableDeclaration, name: BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 3862 createVariableDeclarationList(declarations: readonly VariableDeclaration[], flags?: NodeFlags): VariableDeclarationList; 3863 updateVariableDeclarationList(node: VariableDeclarationList, declarations: readonly VariableDeclaration[]): VariableDeclarationList; 3864 createFunctionDeclaration(modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; 3865 updateFunctionDeclaration(node: FunctionDeclaration, modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; 3866 createClassDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 3867 updateClassDeclaration(node: ClassDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 3868 createStructDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): StructDeclaration; 3869 updateStructDeclaration(node: StructDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): StructDeclaration; 3870 createInterfaceDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 3871 updateInterfaceDeclaration(node: InterfaceDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 3872 createTypeAliasDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 3873 updateTypeAliasDeclaration(node: TypeAliasDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 3874 createEnumDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 3875 updateEnumDeclaration(node: EnumDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 3876 createModuleDeclaration(modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration; 3877 updateModuleDeclaration(node: ModuleDeclaration, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 3878 createModuleBlock(statements: readonly Statement[]): ModuleBlock; 3879 updateModuleBlock(node: ModuleBlock, statements: readonly Statement[]): ModuleBlock; 3880 createCaseBlock(clauses: readonly CaseOrDefaultClause[]): CaseBlock; 3881 updateCaseBlock(node: CaseBlock, clauses: readonly CaseOrDefaultClause[]): CaseBlock; 3882 createNamespaceExportDeclaration(name: string | Identifier): NamespaceExportDeclaration; 3883 updateNamespaceExportDeclaration(node: NamespaceExportDeclaration, name: Identifier): NamespaceExportDeclaration; 3884 createImportEqualsDeclaration(modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 3885 updateImportEqualsDeclaration(node: ImportEqualsDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 3886 createImportDeclaration(modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause): ImportDeclaration; 3887 updateImportDeclaration(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 3888 createImportClause(isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; 3889 updateImportClause(node: ImportClause, isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; 3890 createAssertClause(elements: NodeArray<AssertEntry>, multiLine?: boolean): AssertClause; 3891 updateAssertClause(node: AssertClause, elements: NodeArray<AssertEntry>, multiLine?: boolean): AssertClause; 3892 createAssertEntry(name: AssertionKey, value: Expression): AssertEntry; 3893 updateAssertEntry(node: AssertEntry, name: AssertionKey, value: Expression): AssertEntry; 3894 createImportTypeAssertionContainer(clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; 3895 updateImportTypeAssertionContainer(node: ImportTypeAssertionContainer, clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; 3896 createNamespaceImport(name: Identifier): NamespaceImport; 3897 updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport; 3898 createNamespaceExport(name: Identifier): NamespaceExport; 3899 updateNamespaceExport(node: NamespaceExport, name: Identifier): NamespaceExport; 3900 createNamedImports(elements: readonly ImportSpecifier[]): NamedImports; 3901 updateNamedImports(node: NamedImports, elements: readonly ImportSpecifier[]): NamedImports; 3902 createImportSpecifier(isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ImportSpecifier; 3903 updateImportSpecifier(node: ImportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ImportSpecifier; 3904 createExportAssignment(modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 3905 updateExportAssignment(node: ExportAssignment, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 3906 createExportDeclaration(modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression, assertClause?: AssertClause): ExportDeclaration; 3907 updateExportDeclaration(node: ExportDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, assertClause: AssertClause | undefined): ExportDeclaration; 3908 createNamedExports(elements: readonly ExportSpecifier[]): NamedExports; 3909 updateNamedExports(node: NamedExports, elements: readonly ExportSpecifier[]): NamedExports; 3910 createExportSpecifier(isTypeOnly: boolean, propertyName: string | Identifier | undefined, name: string | Identifier): ExportSpecifier; 3911 updateExportSpecifier(node: ExportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ExportSpecifier; 3912 createExternalModuleReference(expression: Expression): ExternalModuleReference; 3913 updateExternalModuleReference(node: ExternalModuleReference, expression: Expression): ExternalModuleReference; 3914 createJSDocAllType(): JSDocAllType; 3915 createJSDocUnknownType(): JSDocUnknownType; 3916 createJSDocNonNullableType(type: TypeNode, postfix?: boolean): JSDocNonNullableType; 3917 updateJSDocNonNullableType(node: JSDocNonNullableType, type: TypeNode): JSDocNonNullableType; 3918 createJSDocNullableType(type: TypeNode, postfix?: boolean): JSDocNullableType; 3919 updateJSDocNullableType(node: JSDocNullableType, type: TypeNode): JSDocNullableType; 3920 createJSDocOptionalType(type: TypeNode): JSDocOptionalType; 3921 updateJSDocOptionalType(node: JSDocOptionalType, type: TypeNode): JSDocOptionalType; 3922 createJSDocFunctionType(parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): JSDocFunctionType; 3923 updateJSDocFunctionType(node: JSDocFunctionType, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): JSDocFunctionType; 3924 createJSDocVariadicType(type: TypeNode): JSDocVariadicType; 3925 updateJSDocVariadicType(node: JSDocVariadicType, type: TypeNode): JSDocVariadicType; 3926 createJSDocNamepathType(type: TypeNode): JSDocNamepathType; 3927 updateJSDocNamepathType(node: JSDocNamepathType, type: TypeNode): JSDocNamepathType; 3928 createJSDocTypeExpression(type: TypeNode): JSDocTypeExpression; 3929 updateJSDocTypeExpression(node: JSDocTypeExpression, type: TypeNode): JSDocTypeExpression; 3930 createJSDocNameReference(name: EntityName | JSDocMemberName): JSDocNameReference; 3931 updateJSDocNameReference(node: JSDocNameReference, name: EntityName | JSDocMemberName): JSDocNameReference; 3932 createJSDocMemberName(left: EntityName | JSDocMemberName, right: Identifier): JSDocMemberName; 3933 updateJSDocMemberName(node: JSDocMemberName, left: EntityName | JSDocMemberName, right: Identifier): JSDocMemberName; 3934 createJSDocLink(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLink; 3935 updateJSDocLink(node: JSDocLink, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLink; 3936 createJSDocLinkCode(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkCode; 3937 updateJSDocLinkCode(node: JSDocLinkCode, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkCode; 3938 createJSDocLinkPlain(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkPlain; 3939 updateJSDocLinkPlain(node: JSDocLinkPlain, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkPlain; 3940 createJSDocTypeLiteral(jsDocPropertyTags?: readonly JSDocPropertyLikeTag[], isArrayType?: boolean): JSDocTypeLiteral; 3941 updateJSDocTypeLiteral(node: JSDocTypeLiteral, jsDocPropertyTags: readonly JSDocPropertyLikeTag[] | undefined, isArrayType: boolean | undefined): JSDocTypeLiteral; 3942 createJSDocSignature(typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type?: JSDocReturnTag): JSDocSignature; 3943 updateJSDocSignature(node: JSDocSignature, typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type: JSDocReturnTag | undefined): JSDocSignature; 3944 createJSDocTemplateTag(tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment?: string | NodeArray<JSDocComment>): JSDocTemplateTag; 3945 updateJSDocTemplateTag(node: JSDocTemplateTag, tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment: string | NodeArray<JSDocComment> | undefined): JSDocTemplateTag; 3946 createJSDocTypedefTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression | JSDocTypeLiteral, fullName?: Identifier | JSDocNamespaceDeclaration, comment?: string | NodeArray<JSDocComment>): JSDocTypedefTag; 3947 updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | JSDocTypeLiteral | undefined, fullName: Identifier | JSDocNamespaceDeclaration | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocTypedefTag; 3948 createJSDocParameterTag(tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression, isNameFirst?: boolean, comment?: string | NodeArray<JSDocComment>): JSDocParameterTag; 3949 updateJSDocParameterTag(node: JSDocParameterTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | NodeArray<JSDocComment> | undefined): JSDocParameterTag; 3950 createJSDocPropertyTag(tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression, isNameFirst?: boolean, comment?: string | NodeArray<JSDocComment>): JSDocPropertyTag; 3951 updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | NodeArray<JSDocComment> | undefined): JSDocPropertyTag; 3952 createJSDocTypeTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocTypeTag; 3953 updateJSDocTypeTag(node: JSDocTypeTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray<JSDocComment> | undefined): JSDocTypeTag; 3954 createJSDocSeeTag(tagName: Identifier | undefined, nameExpression: JSDocNameReference | undefined, comment?: string | NodeArray<JSDocComment>): JSDocSeeTag; 3955 updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier | undefined, nameExpression: JSDocNameReference | undefined, comment?: string | NodeArray<JSDocComment>): JSDocSeeTag; 3956 createJSDocReturnTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocReturnTag; 3957 updateJSDocReturnTag(node: JSDocReturnTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocReturnTag; 3958 createJSDocThisTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocThisTag; 3959 updateJSDocThisTag(node: JSDocThisTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocThisTag; 3960 createJSDocEnumTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocEnumTag; 3961 updateJSDocEnumTag(node: JSDocEnumTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray<JSDocComment> | undefined): JSDocEnumTag; 3962 createJSDocCallbackTag(tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName?: Identifier | JSDocNamespaceDeclaration, comment?: string | NodeArray<JSDocComment>): JSDocCallbackTag; 3963 updateJSDocCallbackTag(node: JSDocCallbackTag, tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName: Identifier | JSDocNamespaceDeclaration | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocCallbackTag; 3964 createJSDocAugmentsTag(tagName: Identifier | undefined, className: JSDocAugmentsTag["class"], comment?: string | NodeArray<JSDocComment>): JSDocAugmentsTag; 3965 updateJSDocAugmentsTag(node: JSDocAugmentsTag, tagName: Identifier | undefined, className: JSDocAugmentsTag["class"], comment: string | NodeArray<JSDocComment> | undefined): JSDocAugmentsTag; 3966 createJSDocImplementsTag(tagName: Identifier | undefined, className: JSDocImplementsTag["class"], comment?: string | NodeArray<JSDocComment>): JSDocImplementsTag; 3967 updateJSDocImplementsTag(node: JSDocImplementsTag, tagName: Identifier | undefined, className: JSDocImplementsTag["class"], comment: string | NodeArray<JSDocComment> | undefined): JSDocImplementsTag; 3968 createJSDocAuthorTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocAuthorTag; 3969 updateJSDocAuthorTag(node: JSDocAuthorTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocAuthorTag; 3970 createJSDocClassTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocClassTag; 3971 updateJSDocClassTag(node: JSDocClassTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocClassTag; 3972 createJSDocPublicTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocPublicTag; 3973 updateJSDocPublicTag(node: JSDocPublicTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocPublicTag; 3974 createJSDocPrivateTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocPrivateTag; 3975 updateJSDocPrivateTag(node: JSDocPrivateTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocPrivateTag; 3976 createJSDocProtectedTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocProtectedTag; 3977 updateJSDocProtectedTag(node: JSDocProtectedTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocProtectedTag; 3978 createJSDocReadonlyTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocReadonlyTag; 3979 updateJSDocReadonlyTag(node: JSDocReadonlyTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocReadonlyTag; 3980 createJSDocUnknownTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocUnknownTag; 3981 updateJSDocUnknownTag(node: JSDocUnknownTag, tagName: Identifier, comment: string | NodeArray<JSDocComment> | undefined): JSDocUnknownTag; 3982 createJSDocDeprecatedTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocDeprecatedTag; 3983 updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocDeprecatedTag; 3984 createJSDocOverrideTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag; 3985 updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag; 3986 createJSDocText(text: string): JSDocText; 3987 updateJSDocText(node: JSDocText, text: string): JSDocText; 3988 createJSDocComment(comment?: string | NodeArray<JSDocComment> | undefined, tags?: readonly JSDocTag[] | undefined): JSDoc; 3989 updateJSDocComment(node: JSDoc, comment: string | NodeArray<JSDocComment> | undefined, tags: readonly JSDocTag[] | undefined): JSDoc; 3990 createJsxElement(openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement; 3991 updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement; 3992 createJsxSelfClosingElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement; 3993 updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement; 3994 createJsxOpeningElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement; 3995 updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement; 3996 createJsxClosingElement(tagName: JsxTagNameExpression): JsxClosingElement; 3997 updateJsxClosingElement(node: JsxClosingElement, tagName: JsxTagNameExpression): JsxClosingElement; 3998 createJsxFragment(openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; 3999 createJsxText(text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText; 4000 updateJsxText(node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText; 4001 createJsxOpeningFragment(): JsxOpeningFragment; 4002 createJsxJsxClosingFragment(): JsxClosingFragment; 4003 updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; 4004 createJsxAttribute(name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; 4005 updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; 4006 createJsxAttributes(properties: readonly JsxAttributeLike[]): JsxAttributes; 4007 updateJsxAttributes(node: JsxAttributes, properties: readonly JsxAttributeLike[]): JsxAttributes; 4008 createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute; 4009 updateJsxSpreadAttribute(node: JsxSpreadAttribute, expression: Expression): JsxSpreadAttribute; 4010 createJsxExpression(dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined): JsxExpression; 4011 updateJsxExpression(node: JsxExpression, expression: Expression | undefined): JsxExpression; 4012 createCaseClause(expression: Expression, statements: readonly Statement[]): CaseClause; 4013 updateCaseClause(node: CaseClause, expression: Expression, statements: readonly Statement[]): CaseClause; 4014 createDefaultClause(statements: readonly Statement[]): DefaultClause; 4015 updateDefaultClause(node: DefaultClause, statements: readonly Statement[]): DefaultClause; 4016 createHeritageClause(token: HeritageClause["token"], types: readonly ExpressionWithTypeArguments[]): HeritageClause; 4017 updateHeritageClause(node: HeritageClause, types: readonly ExpressionWithTypeArguments[]): HeritageClause; 4018 createCatchClause(variableDeclaration: string | BindingName | VariableDeclaration | undefined, block: Block): CatchClause; 4019 updateCatchClause(node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block): CatchClause; 4020 createPropertyAssignment(name: string | PropertyName, initializer: Expression): PropertyAssignment; 4021 updatePropertyAssignment(node: PropertyAssignment, name: PropertyName, initializer: Expression): PropertyAssignment; 4022 createShorthandPropertyAssignment(name: string | Identifier, objectAssignmentInitializer?: Expression): ShorthandPropertyAssignment; 4023 updateShorthandPropertyAssignment(node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression | undefined): ShorthandPropertyAssignment; 4024 createSpreadAssignment(expression: Expression): SpreadAssignment; 4025 updateSpreadAssignment(node: SpreadAssignment, expression: Expression): SpreadAssignment; 4026 createEnumMember(name: string | PropertyName, initializer?: Expression): EnumMember; 4027 updateEnumMember(node: EnumMember, name: PropertyName, initializer: Expression | undefined): EnumMember; 4028 createSourceFile(statements: readonly Statement[], endOfFileToken: EndOfFileToken, flags: NodeFlags): SourceFile; 4029 updateSourceFile(node: SourceFile, statements: readonly Statement[], isDeclarationFile?: boolean, referencedFiles?: readonly FileReference[], typeReferences?: readonly FileReference[], hasNoDefaultLib?: boolean, libReferences?: readonly FileReference[]): SourceFile; 4030 createNotEmittedStatement(original: Node): NotEmittedStatement; 4031 createPartiallyEmittedExpression(expression: Expression, original?: Node): PartiallyEmittedExpression; 4032 updatePartiallyEmittedExpression(node: PartiallyEmittedExpression, expression: Expression): PartiallyEmittedExpression; 4033 createCommaListExpression(elements: readonly Expression[]): CommaListExpression; 4034 updateCommaListExpression(node: CommaListExpression, elements: readonly Expression[]): CommaListExpression; 4035 createBundle(sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[]): Bundle; 4036 updateBundle(node: Bundle, sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[]): Bundle; 4037 createComma(left: Expression, right: Expression): BinaryExpression; 4038 createAssignment(left: ObjectLiteralExpression | ArrayLiteralExpression, right: Expression): DestructuringAssignment; 4039 createAssignment(left: Expression, right: Expression): AssignmentExpression<EqualsToken>; 4040 createLogicalOr(left: Expression, right: Expression): BinaryExpression; 4041 createLogicalAnd(left: Expression, right: Expression): BinaryExpression; 4042 createBitwiseOr(left: Expression, right: Expression): BinaryExpression; 4043 createBitwiseXor(left: Expression, right: Expression): BinaryExpression; 4044 createBitwiseAnd(left: Expression, right: Expression): BinaryExpression; 4045 createStrictEquality(left: Expression, right: Expression): BinaryExpression; 4046 createStrictInequality(left: Expression, right: Expression): BinaryExpression; 4047 createEquality(left: Expression, right: Expression): BinaryExpression; 4048 createInequality(left: Expression, right: Expression): BinaryExpression; 4049 createLessThan(left: Expression, right: Expression): BinaryExpression; 4050 createLessThanEquals(left: Expression, right: Expression): BinaryExpression; 4051 createGreaterThan(left: Expression, right: Expression): BinaryExpression; 4052 createGreaterThanEquals(left: Expression, right: Expression): BinaryExpression; 4053 createLeftShift(left: Expression, right: Expression): BinaryExpression; 4054 createRightShift(left: Expression, right: Expression): BinaryExpression; 4055 createUnsignedRightShift(left: Expression, right: Expression): BinaryExpression; 4056 createAdd(left: Expression, right: Expression): BinaryExpression; 4057 createSubtract(left: Expression, right: Expression): BinaryExpression; 4058 createMultiply(left: Expression, right: Expression): BinaryExpression; 4059 createDivide(left: Expression, right: Expression): BinaryExpression; 4060 createModulo(left: Expression, right: Expression): BinaryExpression; 4061 createExponent(left: Expression, right: Expression): BinaryExpression; 4062 createPrefixPlus(operand: Expression): PrefixUnaryExpression; 4063 createPrefixMinus(operand: Expression): PrefixUnaryExpression; 4064 createPrefixIncrement(operand: Expression): PrefixUnaryExpression; 4065 createPrefixDecrement(operand: Expression): PrefixUnaryExpression; 4066 createBitwiseNot(operand: Expression): PrefixUnaryExpression; 4067 createLogicalNot(operand: Expression): PrefixUnaryExpression; 4068 createPostfixIncrement(operand: Expression): PostfixUnaryExpression; 4069 createPostfixDecrement(operand: Expression): PostfixUnaryExpression; 4070 createImmediatelyInvokedFunctionExpression(statements: readonly Statement[]): CallExpression; 4071 createImmediatelyInvokedFunctionExpression(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 4072 createImmediatelyInvokedArrowFunction(statements: readonly Statement[]): CallExpression; 4073 createImmediatelyInvokedArrowFunction(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 4074 createVoidZero(): VoidExpression; 4075 createExportDefault(expression: Expression): ExportAssignment; 4076 createExternalModuleExport(exportName: Identifier): ExportDeclaration; 4077 restoreOuterExpressions(outerExpression: Expression | undefined, innerExpression: Expression, kinds?: OuterExpressionKinds): Expression; 4078 } 4079 export interface CoreTransformationContext { 4080 readonly factory: NodeFactory; 4081 /** Gets the compiler options supplied to the transformer. */ 4082 getCompilerOptions(): CompilerOptions; 4083 /** Starts a new lexical environment. */ 4084 startLexicalEnvironment(): void; 4085 /** Suspends the current lexical environment, usually after visiting a parameter list. */ 4086 suspendLexicalEnvironment(): void; 4087 /** Resumes a suspended lexical environment, usually before visiting a function body. */ 4088 resumeLexicalEnvironment(): void; 4089 /** Ends a lexical environment, returning any declarations. */ 4090 endLexicalEnvironment(): Statement[] | undefined; 4091 /** Hoists a function declaration to the containing scope. */ 4092 hoistFunctionDeclaration(node: FunctionDeclaration): void; 4093 /** Hoists a variable declaration to the containing scope. */ 4094 hoistVariableDeclaration(node: Identifier): void; 4095 } 4096 export interface TransformationContext extends CoreTransformationContext { 4097 /** Records a request for a non-scoped emit helper in the current context. */ 4098 requestEmitHelper(helper: EmitHelper): void; 4099 /** Gets and resets the requested non-scoped emit helpers. */ 4100 readEmitHelpers(): EmitHelper[] | undefined; 4101 /** Enables expression substitutions in the pretty printer for the provided SyntaxKind. */ 4102 enableSubstitution(kind: SyntaxKind): void; 4103 /** Determines whether expression substitutions are enabled for the provided node. */ 4104 isSubstitutionEnabled(node: Node): boolean; 4105 /** 4106 * Hook used by transformers to substitute expressions just before they 4107 * are emitted by the pretty printer. 4108 * 4109 * NOTE: Transformation hooks should only be modified during `Transformer` initialization, 4110 * before returning the `NodeTransformer` callback. 4111 */ 4112 onSubstituteNode: (hint: EmitHint, node: Node) => Node; 4113 /** 4114 * Enables before/after emit notifications in the pretty printer for the provided 4115 * SyntaxKind. 4116 */ 4117 enableEmitNotification(kind: SyntaxKind): void; 4118 /** 4119 * Determines whether before/after emit notifications should be raised in the pretty 4120 * printer when it emits a node. 4121 */ 4122 isEmitNotificationEnabled(node: Node): boolean; 4123 /** 4124 * Hook used to allow transformers to capture state before or after 4125 * the printer emits a node. 4126 * 4127 * NOTE: Transformation hooks should only be modified during `Transformer` initialization, 4128 * before returning the `NodeTransformer` callback. 4129 */ 4130 onEmitNode: (hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void) => void; 4131 /** Determines whether the lexical environment is suspended */ 4132 isLexicalEnvironmentSuspended?(): boolean; 4133 } 4134 export interface TransformationResult<T extends Node> { 4135 /** Gets the transformed source files. */ 4136 transformed: T[]; 4137 /** Gets diagnostics for the transformation. */ 4138 diagnostics?: DiagnosticWithLocation[]; 4139 /** 4140 * Gets a substitute for a node, if one is available; otherwise, returns the original node. 4141 * 4142 * @param hint A hint as to the intended usage of the node. 4143 * @param node The node to substitute. 4144 */ 4145 substituteNode(hint: EmitHint, node: Node): Node; 4146 /** 4147 * Emits a node with possible notification. 4148 * 4149 * @param hint A hint as to the intended usage of the node. 4150 * @param node The node to emit. 4151 * @param emitCallback A callback used to emit the node. 4152 */ 4153 emitNodeWithNotification(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void; 4154 /** 4155 * Indicates if a given node needs an emit notification 4156 * 4157 * @param node The node to emit. 4158 */ 4159 isEmitNotificationEnabled?(node: Node): boolean; 4160 /** 4161 * Clean up EmitNode entries on any parse-tree nodes. 4162 */ 4163 dispose(): void; 4164 } 4165 /** 4166 * A function that is used to initialize and return a `Transformer` callback, which in turn 4167 * will be used to transform one or more nodes. 4168 */ 4169 export type TransformerFactory<T extends Node> = (context: TransformationContext) => Transformer<T>; 4170 /** 4171 * A function that transforms a node. 4172 */ 4173 export type Transformer<T extends Node> = (node: T) => T; 4174 /** 4175 * A function that accepts and possibly transforms a node. 4176 */ 4177 export type Visitor = (node: Node) => VisitResult<Node>; 4178 export interface NodeVisitor { 4179 <T extends Node>(nodes: T, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T; 4180 <T extends Node>(nodes: T | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T | undefined; 4181 } 4182 export interface NodesVisitor { 4183 <T extends Node>(nodes: NodeArray<T>, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T>; 4184 <T extends Node>(nodes: NodeArray<T> | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T> | undefined; 4185 } 4186 export type VisitResult<T extends Node> = T | readonly T[] | undefined; 4187 export interface Printer { 4188 /** 4189 * Print a node and its subtree as-is, without any emit transformations. 4190 * @param hint A value indicating the purpose of a node. This is primarily used to 4191 * distinguish between an `Identifier` used in an expression position, versus an 4192 * `Identifier` used as an `IdentifierName` as part of a declaration. For most nodes you 4193 * should just pass `Unspecified`. 4194 * @param node The node to print. The node and its subtree are printed as-is, without any 4195 * emit transformations. 4196 * @param sourceFile A source file that provides context for the node. The source text of 4197 * the file is used to emit the original source content for literals and identifiers, while 4198 * the identifiers of the source file are used when generating unique names to avoid 4199 * collisions. 4200 */ 4201 printNode(hint: EmitHint, node: Node, sourceFile: SourceFile): string; 4202 /** 4203 * Prints a list of nodes using the given format flags 4204 */ 4205 printList<T extends Node>(format: ListFormat, list: NodeArray<T>, sourceFile: SourceFile): string; 4206 /** 4207 * Prints a source file as-is, without any emit transformations. 4208 */ 4209 printFile(sourceFile: SourceFile): string; 4210 /** 4211 * Prints a bundle of source files as-is, without any emit transformations. 4212 */ 4213 printBundle(bundle: Bundle): string; 4214 writeFile(sourceFile: SourceFile, writer: EmitTextWriter, sourceMapGenerator: SourceMapGenerator | undefined): void; 4215 } 4216 export interface PrintHandlers { 4217 /** 4218 * A hook used by the Printer when generating unique names to avoid collisions with 4219 * globally defined names that exist outside of the current source file. 4220 */ 4221 hasGlobalName?(name: string): boolean; 4222 /** 4223 * A hook used by the Printer to provide notifications prior to emitting a node. A 4224 * compatible implementation **must** invoke `emitCallback` with the provided `hint` and 4225 * `node` values. 4226 * @param hint A hint indicating the intended purpose of the node. 4227 * @param node The node to emit. 4228 * @param emitCallback A callback that, when invoked, will emit the node. 4229 * @example 4230 * ```ts 4231 * var printer = createPrinter(printerOptions, { 4232 * onEmitNode(hint, node, emitCallback) { 4233 * // set up or track state prior to emitting the node... 4234 * emitCallback(hint, node); 4235 * // restore state after emitting the node... 4236 * } 4237 * }); 4238 * ``` 4239 */ 4240 onEmitNode?(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void; 4241 /** 4242 * A hook used to check if an emit notification is required for a node. 4243 * @param node The node to emit. 4244 */ 4245 isEmitNotificationEnabled?(node: Node): boolean; 4246 /** 4247 * A hook used by the Printer to perform just-in-time substitution of a node. This is 4248 * primarily used by node transformations that need to substitute one node for another, 4249 * such as replacing `myExportedVar` with `exports.myExportedVar`. 4250 * @param hint A hint indicating the intended purpose of the node. 4251 * @param node The node to emit. 4252 * @example 4253 * ```ts 4254 * var printer = createPrinter(printerOptions, { 4255 * substituteNode(hint, node) { 4256 * // perform substitution if necessary... 4257 * return node; 4258 * } 4259 * }); 4260 * ``` 4261 */ 4262 substituteNode?(hint: EmitHint, node: Node): Node; 4263 } 4264 export interface PrinterOptions { 4265 removeComments?: boolean; 4266 newLine?: NewLineKind; 4267 omitTrailingSemicolon?: boolean; 4268 noEmitHelpers?: boolean; 4269 sourceMap?: boolean; 4270 inlineSourceMap?: boolean; 4271 inlineSources?: boolean; 4272 } 4273 export interface RawSourceMap { 4274 version: 3; 4275 file: string; 4276 sourceRoot?: string | null; 4277 sources: string[]; 4278 sourcesContent?: (string | null)[] | null; 4279 mappings: string; 4280 names?: string[] | null; 4281 } 4282 /** 4283 * Generates a source map. 4284 */ 4285 export interface SourceMapGenerator { 4286 getSources(): readonly string[]; 4287 /** 4288 * Adds a source to the source map. 4289 */ 4290 addSource(fileName: string): number; 4291 /** 4292 * Set the content for a source. 4293 */ 4294 setSourceContent(sourceIndex: number, content: string | null): void; 4295 /** 4296 * Adds a name. 4297 */ 4298 addName(name: string): number; 4299 /** 4300 * Adds a mapping without source information. 4301 */ 4302 addMapping(generatedLine: number, generatedCharacter: number): void; 4303 /** 4304 * Adds a mapping with source information. 4305 */ 4306 addMapping(generatedLine: number, generatedCharacter: number, sourceIndex: number, sourceLine: number, sourceCharacter: number, nameIndex?: number): void; 4307 /** 4308 * Appends a source map. 4309 */ 4310 appendSourceMap(generatedLine: number, generatedCharacter: number, sourceMap: RawSourceMap, sourceMapPath: string, start?: LineAndCharacter, end?: LineAndCharacter): void; 4311 /** 4312 * Gets the source map as a `RawSourceMap` object. 4313 */ 4314 toJSON(): RawSourceMap; 4315 /** 4316 * Gets the string representation of the source map. 4317 */ 4318 toString(): string; 4319 } 4320 export interface EmitTextWriter extends SymbolWriter { 4321 write(s: string): void; 4322 writeTrailingSemicolon(text: string): void; 4323 writeComment(text: string): void; 4324 getText(): string; 4325 rawWrite(s: string): void; 4326 writeLiteral(s: string): void; 4327 getTextPos(): number; 4328 getLine(): number; 4329 getColumn(): number; 4330 getIndent(): number; 4331 isAtStartOfLine(): boolean; 4332 hasTrailingComment(): boolean; 4333 hasTrailingWhitespace(): boolean; 4334 getTextPosWithWriteLine?(): number; 4335 nonEscapingWrite?(text: string): void; 4336 } 4337 export interface GetEffectiveTypeRootsHost { 4338 directoryExists?(directoryName: string): boolean; 4339 getCurrentDirectory?(): string; 4340 } 4341 export interface ModuleSpecifierResolutionHost { 4342 useCaseSensitiveFileNames?(): boolean; 4343 fileExists(path: string): boolean; 4344 getCurrentDirectory(): string; 4345 directoryExists?(path: string): boolean; 4346 readFile?(path: string): string | undefined; 4347 realpath?(path: string): string; 4348 getModuleSpecifierCache?(): ModuleSpecifierCache; 4349 getPackageJsonInfoCache?(): PackageJsonInfoCache | undefined; 4350 getGlobalTypingsCacheLocation?(): string | undefined; 4351 getNearestAncestorDirectoryWithPackageJson?(fileName: string, rootDir?: string): string | undefined; 4352 readonly redirectTargetsMap: RedirectTargetsMap; 4353 getProjectReferenceRedirect(fileName: string): string | undefined; 4354 isSourceOfProjectReferenceRedirect(fileName: string): boolean; 4355 } 4356 export interface ModulePath { 4357 path: string; 4358 isInNodeModules: boolean; 4359 isRedirect: boolean; 4360 } 4361 export interface ResolvedModuleSpecifierInfo { 4362 modulePaths: readonly ModulePath[] | undefined; 4363 moduleSpecifiers: readonly string[] | undefined; 4364 isBlockedByPackageJsonDependencies: boolean | undefined; 4365 } 4366 export interface ModuleSpecifierOptions { 4367 overrideImportMode?: SourceFile["impliedNodeFormat"]; 4368 } 4369 export interface ModuleSpecifierCache { 4370 get(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions): Readonly<ResolvedModuleSpecifierInfo> | undefined; 4371 set(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, modulePaths: readonly ModulePath[], moduleSpecifiers: readonly string[]): void; 4372 setBlockedByPackageJsonDependencies(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, isBlockedByPackageJsonDependencies: boolean): void; 4373 setModulePaths(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, modulePaths: readonly ModulePath[]): void; 4374 clear(): void; 4375 count(): number; 4376 } 4377 export interface SymbolTracker { 4378 trackSymbol?(symbol: Symbol, enclosingDeclaration: Node | undefined, meaning: SymbolFlags): boolean; 4379 reportInaccessibleThisError?(): void; 4380 reportPrivateInBaseOfClassExpression?(propertyName: string): void; 4381 reportInaccessibleUniqueSymbolError?(): void; 4382 reportCyclicStructureError?(): void; 4383 reportLikelyUnsafeImportRequiredError?(specifier: string): void; 4384 reportTruncationError?(): void; 4385 moduleResolverHost?: ModuleSpecifierResolutionHost & { 4386 getCommonSourceDirectory(): string; 4387 }; 4388 trackReferencedAmbientModule?(decl: ModuleDeclaration, symbol: Symbol): void; 4389 trackExternalModuleSymbolOfImportTypeNode?(symbol: Symbol): void; 4390 reportNonlocalAugmentation?(containingFile: SourceFile, parentSymbol: Symbol, augmentingSymbol: Symbol): void; 4391 reportNonSerializableProperty?(propertyName: string): void; 4392 reportImportTypeNodeResolutionModeOverride?(): void; 4393 } 4394 export interface TextSpan { 4395 start: number; 4396 length: number; 4397 } 4398 export interface TextChangeRange { 4399 span: TextSpan; 4400 newLength: number; 4401 } 4402 export interface SyntaxList extends Node { 4403 kind: SyntaxKind.SyntaxList; 4404 _children: Node[]; 4405 } 4406 export enum ListFormat { 4407 None = 0, 4408 SingleLine = 0, 4409 MultiLine = 1, 4410 PreserveLines = 2, 4411 LinesMask = 3, 4412 NotDelimited = 0, 4413 BarDelimited = 4, 4414 AmpersandDelimited = 8, 4415 CommaDelimited = 16, 4416 AsteriskDelimited = 32, 4417 DelimitersMask = 60, 4418 AllowTrailingComma = 64, 4419 Indented = 128, 4420 SpaceBetweenBraces = 256, 4421 SpaceBetweenSiblings = 512, 4422 Braces = 1024, 4423 Parenthesis = 2048, 4424 AngleBrackets = 4096, 4425 SquareBrackets = 8192, 4426 BracketsMask = 15360, 4427 OptionalIfUndefined = 16384, 4428 OptionalIfEmpty = 32768, 4429 Optional = 49152, 4430 PreferNewLine = 65536, 4431 NoTrailingNewLine = 131072, 4432 NoInterveningComments = 262144, 4433 NoSpaceIfEmpty = 524288, 4434 SingleElement = 1048576, 4435 SpaceAfterList = 2097152, 4436 Modifiers = 2359808, 4437 HeritageClauses = 512, 4438 SingleLineTypeLiteralMembers = 768, 4439 MultiLineTypeLiteralMembers = 32897, 4440 SingleLineTupleTypeElements = 528, 4441 MultiLineTupleTypeElements = 657, 4442 UnionTypeConstituents = 516, 4443 IntersectionTypeConstituents = 520, 4444 ObjectBindingPatternElements = 525136, 4445 ArrayBindingPatternElements = 524880, 4446 ObjectLiteralExpressionProperties = 526226, 4447 ImportClauseEntries = 526226, 4448 ArrayLiteralExpressionElements = 8914, 4449 CommaListElements = 528, 4450 CallExpressionArguments = 2576, 4451 NewExpressionArguments = 18960, 4452 TemplateExpressionSpans = 262144, 4453 SingleLineBlockStatements = 768, 4454 MultiLineBlockStatements = 129, 4455 VariableDeclarationList = 528, 4456 SingleLineFunctionBodyStatements = 768, 4457 MultiLineFunctionBodyStatements = 1, 4458 ClassHeritageClauses = 0, 4459 ClassMembers = 129, 4460 InterfaceMembers = 129, 4461 EnumMembers = 145, 4462 CaseBlockClauses = 129, 4463 NamedImportsOrExportsElements = 525136, 4464 JsxElementOrFragmentChildren = 262144, 4465 JsxElementAttributes = 262656, 4466 CaseOrDefaultClauseStatements = 163969, 4467 HeritageClauseTypes = 528, 4468 SourceFileStatements = 131073, 4469 Decorators = 2146305, 4470 TypeArguments = 53776, 4471 TypeParameters = 53776, 4472 Parameters = 2576, 4473 IndexSignatureParameters = 8848, 4474 JSDocComment = 33 4475 } 4476 export interface UserPreferences { 4477 readonly disableSuggestions?: boolean; 4478 readonly quotePreference?: "auto" | "double" | "single"; 4479 readonly includeCompletionsForModuleExports?: boolean; 4480 readonly includeCompletionsForImportStatements?: boolean; 4481 readonly includeCompletionsWithSnippetText?: boolean; 4482 readonly includeAutomaticOptionalChainCompletions?: boolean; 4483 readonly includeCompletionsWithInsertText?: boolean; 4484 readonly includeCompletionsWithClassMemberSnippets?: boolean; 4485 readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; 4486 readonly useLabelDetailsInCompletionEntries?: boolean; 4487 readonly allowIncompleteCompletions?: boolean; 4488 readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; 4489 /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ 4490 readonly importModuleSpecifierEnding?: "auto" | "minimal" | "index" | "js"; 4491 readonly allowTextChangesInNewFiles?: boolean; 4492 readonly providePrefixAndSuffixTextForRename?: boolean; 4493 readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; 4494 readonly provideRefactorNotApplicableReason?: boolean; 4495 readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; 4496 readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; 4497 readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; 4498 readonly includeInlayFunctionParameterTypeHints?: boolean; 4499 readonly includeInlayVariableTypeHints?: boolean; 4500 readonly includeInlayVariableTypeHintsWhenTypeMatchesName?: boolean; 4501 readonly includeInlayPropertyDeclarationTypeHints?: boolean; 4502 readonly includeInlayFunctionLikeReturnTypeHints?: boolean; 4503 readonly includeInlayEnumMemberValueHints?: boolean; 4504 readonly allowRenameOfImportPath?: boolean; 4505 readonly autoImportFileExcludePatterns?: string[]; 4506 } 4507 /** Represents a bigint literal value without requiring bigint support */ 4508 export interface PseudoBigInt { 4509 negative: boolean; 4510 base10Value: string; 4511 } 4512 export {}; 4513} 4514declare function setTimeout(handler: (...args: any[]) => void, timeout: number): any; 4515declare function clearTimeout(handle: any): void; 4516declare namespace ts { 4517 export enum FileWatcherEventKind { 4518 Created = 0, 4519 Changed = 1, 4520 Deleted = 2 4521 } 4522 export type FileWatcherCallback = (fileName: string, eventKind: FileWatcherEventKind, modifiedTime?: Date) => void; 4523 export type DirectoryWatcherCallback = (fileName: string) => void; 4524 export interface System { 4525 args: string[]; 4526 newLine: string; 4527 useCaseSensitiveFileNames: boolean; 4528 write(s: string): void; 4529 writeOutputIsTTY?(): boolean; 4530 getWidthOfTerminal?(): number; 4531 readFile(path: string, encoding?: string): string | undefined; 4532 getFileSize?(path: string): number; 4533 writeFile(path: string, data: string, writeByteOrderMark?: boolean): void; 4534 /** 4535 * @pollingInterval - this parameter is used in polling-based watchers and ignored in watchers that 4536 * use native OS file watching 4537 */ 4538 watchFile?(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher; 4539 watchDirectory?(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher; 4540 resolvePath(path: string): string; 4541 fileExists(path: string): boolean; 4542 directoryExists(path: string): boolean; 4543 createDirectory(path: string): void; 4544 getExecutingFilePath(): string; 4545 getCurrentDirectory(): string; 4546 getDirectories(path: string): string[]; 4547 readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 4548 getModifiedTime?(path: string): Date | undefined; 4549 setModifiedTime?(path: string, time: Date): void; 4550 deleteFile?(path: string): void; 4551 /** 4552 * A good implementation is node.js' `crypto.createHash`. (https://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm) 4553 */ 4554 createHash?(data: string): string; 4555 /** This must be cryptographically secure. Only implement this method using `crypto.createHash("sha256")`. */ 4556 createSHA256Hash?(data: string): string; 4557 getMemoryUsage?(): number; 4558 exit(exitCode?: number): void; 4559 realpath?(path: string): string; 4560 setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; 4561 clearTimeout?(timeoutId: any): void; 4562 clearScreen?(): void; 4563 base64decode?(input: string): string; 4564 base64encode?(input: string): string; 4565 } 4566 export interface FileWatcher { 4567 close(): void; 4568 } 4569 export function getNodeMajorVersion(): number | undefined; 4570 export let sys: System; 4571 export {}; 4572} 4573declare namespace ts { 4574 type ErrorCallback = (message: DiagnosticMessage, length: number) => void; 4575 interface Scanner { 4576 getStartPos(): number; 4577 getToken(): SyntaxKind; 4578 getTextPos(): number; 4579 getTokenPos(): number; 4580 getTokenText(): string; 4581 getTokenValue(): string; 4582 hasUnicodeEscape(): boolean; 4583 hasExtendedUnicodeEscape(): boolean; 4584 hasPrecedingLineBreak(): boolean; 4585 isIdentifier(): boolean; 4586 isReservedWord(): boolean; 4587 isUnterminated(): boolean; 4588 reScanGreaterToken(): SyntaxKind; 4589 reScanSlashToken(): SyntaxKind; 4590 reScanAsteriskEqualsToken(): SyntaxKind; 4591 reScanTemplateToken(isTaggedTemplate: boolean): SyntaxKind; 4592 reScanTemplateHeadOrNoSubstitutionTemplate(): SyntaxKind; 4593 scanJsxIdentifier(): SyntaxKind; 4594 scanJsxAttributeValue(): SyntaxKind; 4595 reScanJsxAttributeValue(): SyntaxKind; 4596 reScanJsxToken(allowMultilineJsxText?: boolean): JsxTokenSyntaxKind; 4597 reScanLessThanToken(): SyntaxKind; 4598 reScanHashToken(): SyntaxKind; 4599 reScanQuestionToken(): SyntaxKind; 4600 reScanInvalidIdentifier(): SyntaxKind; 4601 scanJsxToken(): JsxTokenSyntaxKind; 4602 scanJsDocToken(): JSDocSyntaxKind; 4603 scan(): SyntaxKind; 4604 getText(): string; 4605 setText(text: string | undefined, start?: number, length?: number): void; 4606 setOnError(onError: ErrorCallback | undefined): void; 4607 setScriptTarget(scriptTarget: ScriptTarget): void; 4608 setLanguageVariant(variant: LanguageVariant): void; 4609 setTextPos(textPos: number): void; 4610 lookAhead<T>(callback: () => T): T; 4611 scanRange<T>(start: number, length: number, callback: () => T): T; 4612 tryScan<T>(callback: () => T): T; 4613 setEtsContext(isEtsContext: boolean): void; 4614 } 4615 function tokenToString(t: SyntaxKind): string | undefined; 4616 function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number): number; 4617 function getLineAndCharacterOfPosition(sourceFile: SourceFileLike, position: number): LineAndCharacter; 4618 function isWhiteSpaceLike(ch: number): boolean; 4619 /** Does not include line breaks. For that, see isWhiteSpaceLike. */ 4620 function isWhiteSpaceSingleLine(ch: number): boolean; 4621 function isLineBreak(ch: number): boolean; 4622 function couldStartTrivia(text: string, pos: number): boolean; 4623 function forEachLeadingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; 4624 function forEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; 4625 function forEachTrailingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; 4626 function forEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; 4627 function reduceEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T, memo: U) => U, state: T, initial: U): U | undefined; 4628 function reduceEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T, memo: U) => U, state: T, initial: U): U | undefined; 4629 function getLeadingCommentRanges(text: string, pos: number): CommentRange[] | undefined; 4630 function getTrailingCommentRanges(text: string, pos: number): CommentRange[] | undefined; 4631 /** Optionally, get the shebang */ 4632 function getShebang(text: string): string | undefined; 4633 function isIdentifierStart(ch: number, languageVersion: ScriptTarget | undefined): boolean; 4634 function isIdentifierPart(ch: number, languageVersion: ScriptTarget | undefined, identifierVariant?: LanguageVariant): boolean; 4635 function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, languageVariant?: LanguageVariant, textInitial?: string, onError?: ErrorCallback, start?: number, length?: number): Scanner; 4636} 4637declare namespace ts { 4638 function isExternalModuleNameRelative(moduleName: string): boolean; 4639 function sortAndDeduplicateDiagnostics<T extends Diagnostic>(diagnostics: readonly T[]): SortedReadonlyArray<T>; 4640 function getDefaultLibFileName(options: CompilerOptions): string; 4641 function textSpanEnd(span: TextSpan): number; 4642 function textSpanIsEmpty(span: TextSpan): boolean; 4643 function textSpanContainsPosition(span: TextSpan, position: number): boolean; 4644 function textSpanContainsTextSpan(span: TextSpan, other: TextSpan): boolean; 4645 function textSpanOverlapsWith(span: TextSpan, other: TextSpan): boolean; 4646 function textSpanOverlap(span1: TextSpan, span2: TextSpan): TextSpan | undefined; 4647 function textSpanIntersectsWithTextSpan(span: TextSpan, other: TextSpan): boolean; 4648 function textSpanIntersectsWith(span: TextSpan, start: number, length: number): boolean; 4649 function decodedTextSpanIntersectsWith(start1: number, length1: number, start2: number, length2: number): boolean; 4650 function textSpanIntersectsWithPosition(span: TextSpan, position: number): boolean; 4651 function textSpanIntersection(span1: TextSpan, span2: TextSpan): TextSpan | undefined; 4652 function createTextSpan(start: number, length: number): TextSpan; 4653 function createTextSpanFromBounds(start: number, end: number): TextSpan; 4654 function textChangeRangeNewSpan(range: TextChangeRange): TextSpan; 4655 function textChangeRangeIsUnchanged(range: TextChangeRange): boolean; 4656 function createTextChangeRange(span: TextSpan, newLength: number): TextChangeRange; 4657 let unchangedTextChangeRange: TextChangeRange; 4658 /** 4659 * Called to merge all the changes that occurred across several versions of a script snapshot 4660 * into a single change. i.e. if a user keeps making successive edits to a script we will 4661 * have a text change from V1 to V2, V2 to V3, ..., Vn. 4662 * 4663 * This function will then merge those changes into a single change range valid between V1 and 4664 * Vn. 4665 */ 4666 function collapseTextChangeRangesAcrossMultipleVersions(changes: readonly TextChangeRange[]): TextChangeRange; 4667 function getTypeParameterOwner(d: Declaration): Declaration | undefined; 4668 type ParameterPropertyDeclaration = ParameterDeclaration & { 4669 parent: ConstructorDeclaration; 4670 name: Identifier; 4671 }; 4672 function isParameterPropertyDeclaration(node: Node, parent: Node): node is ParameterPropertyDeclaration; 4673 function isEmptyBindingPattern(node: BindingName): node is BindingPattern; 4674 function isEmptyBindingElement(node: BindingElement): boolean; 4675 function walkUpBindingElementsAndPatterns(binding: BindingElement): VariableDeclaration | ParameterDeclaration; 4676 function getCombinedModifierFlags(node: Declaration): ModifierFlags; 4677 function getCombinedNodeFlags(node: Node): NodeFlags; 4678 /** 4679 * Checks to see if the locale is in the appropriate format, 4680 * and if it is, attempts to set the appropriate language. 4681 */ 4682 function validateLocaleAndSetLanguage(locale: string, sys: { 4683 getExecutingFilePath(): string; 4684 resolvePath(path: string): string; 4685 fileExists(fileName: string): boolean; 4686 readFile(fileName: string): string | undefined; 4687 }, errors?: Push<Diagnostic>): void; 4688 function getOriginalNode(node: Node): Node; 4689 function getOriginalNode<T extends Node>(node: Node, nodeTest: (node: Node) => node is T): T; 4690 function getOriginalNode(node: Node | undefined): Node | undefined; 4691 function getOriginalNode<T extends Node>(node: Node | undefined, nodeTest: (node: Node | undefined) => node is T): T | undefined; 4692 /** 4693 * Iterates through the parent chain of a node and performs the callback on each parent until the callback 4694 * returns a truthy value, then returns that value. 4695 * If no such value is found, it applies the callback until the parent pointer is undefined or the callback returns "quit" 4696 * At that point findAncestor returns undefined. 4697 */ 4698 function findAncestor<T extends Node>(node: Node | undefined, callback: (element: Node) => element is T): T | undefined; 4699 function findAncestor(node: Node | undefined, callback: (element: Node) => boolean | "quit"): Node | undefined; 4700 /** 4701 * Gets a value indicating whether a node originated in the parse tree. 4702 * 4703 * @param node The node to test. 4704 */ 4705 function isParseTreeNode(node: Node): boolean; 4706 /** 4707 * Gets the original parse tree node for a node. 4708 * 4709 * @param node The original node. 4710 * @returns The original parse tree node if found; otherwise, undefined. 4711 */ 4712 function getParseTreeNode(node: Node | undefined): Node | undefined; 4713 /** 4714 * Gets the original parse tree node for a node. 4715 * 4716 * @param node The original node. 4717 * @param nodeTest A callback used to ensure the correct type of parse tree node is returned. 4718 * @returns The original parse tree node if found; otherwise, undefined. 4719 */ 4720 function getParseTreeNode<T extends Node>(node: T | undefined, nodeTest?: (node: Node) => node is T): T | undefined; 4721 /** Add an extra underscore to identifiers that start with two underscores to avoid issues with magic names like '__proto__' */ 4722 function escapeLeadingUnderscores(identifier: string): __String; 4723 /** 4724 * Remove extra underscore from escaped identifier text content. 4725 * 4726 * @param identifier The escaped identifier text. 4727 * @returns The unescaped identifier text. 4728 */ 4729 function unescapeLeadingUnderscores(identifier: __String): string; 4730 function idText(identifierOrPrivateName: Identifier | PrivateIdentifier): string; 4731 function symbolName(symbol: Symbol): string; 4732 function getNameOfJSDocTypedef(declaration: JSDocTypedefTag): Identifier | PrivateIdentifier | undefined; 4733 function getNameOfDeclaration(declaration: Declaration | Expression | undefined): DeclarationName | undefined; 4734 function getDecorators(node: HasDecorators): readonly Decorator[] | undefined; 4735 function getModifiers(node: HasModifiers): readonly Modifier[] | undefined; 4736 function getAllDecorators(node: Node | undefined): readonly Decorator[]; 4737 function getIllegalDecorators(node: HasIllegalDecorators): readonly Decorator[] | undefined; 4738 /** 4739 * Gets the JSDoc parameter tags for the node if present. 4740 * 4741 * @remarks Returns any JSDoc param tag whose name matches the provided 4742 * parameter, whether a param tag on a containing function 4743 * expression, or a param tag on a variable declaration whose 4744 * initializer is the containing function. The tags closest to the 4745 * node are returned first, so in the previous example, the param 4746 * tag on the containing function expression would be first. 4747 * 4748 * For binding patterns, parameter tags are matched by position. 4749 */ 4750 function getJSDocParameterTags(param: ParameterDeclaration): readonly JSDocParameterTag[]; 4751 /** 4752 * Gets the JSDoc type parameter tags for the node if present. 4753 * 4754 * @remarks Returns any JSDoc template tag whose names match the provided 4755 * parameter, whether a template tag on a containing function 4756 * expression, or a template tag on a variable declaration whose 4757 * initializer is the containing function. The tags closest to the 4758 * node are returned first, so in the previous example, the template 4759 * tag on the containing function expression would be first. 4760 */ 4761 function getJSDocTypeParameterTags(param: TypeParameterDeclaration): readonly JSDocTemplateTag[]; 4762 /** 4763 * Return true if the node has JSDoc parameter tags. 4764 * 4765 * @remarks Includes parameter tags that are not directly on the node, 4766 * for example on a variable declaration whose initializer is a function expression. 4767 */ 4768 function hasJSDocParameterTags(node: FunctionLikeDeclaration | SignatureDeclaration): boolean; 4769 /** Gets the JSDoc augments tag for the node if present */ 4770 function getJSDocAugmentsTag(node: Node): JSDocAugmentsTag | undefined; 4771 /** Gets the JSDoc implements tags for the node if present */ 4772 function getJSDocImplementsTags(node: Node): readonly JSDocImplementsTag[]; 4773 /** Gets the JSDoc class tag for the node if present */ 4774 function getJSDocClassTag(node: Node): JSDocClassTag | undefined; 4775 /** Gets the JSDoc public tag for the node if present */ 4776 function getJSDocPublicTag(node: Node): JSDocPublicTag | undefined; 4777 /** Gets the JSDoc private tag for the node if present */ 4778 function getJSDocPrivateTag(node: Node): JSDocPrivateTag | undefined; 4779 /** Gets the JSDoc protected tag for the node if present */ 4780 function getJSDocProtectedTag(node: Node): JSDocProtectedTag | undefined; 4781 /** Gets the JSDoc protected tag for the node if present */ 4782 function getJSDocReadonlyTag(node: Node): JSDocReadonlyTag | undefined; 4783 function getJSDocOverrideTagNoCache(node: Node): JSDocOverrideTag | undefined; 4784 /** Gets the JSDoc deprecated tag for the node if present */ 4785 function getJSDocDeprecatedTag(node: Node): JSDocDeprecatedTag | undefined; 4786 /** Gets the JSDoc enum tag for the node if present */ 4787 function getJSDocEnumTag(node: Node): JSDocEnumTag | undefined; 4788 /** Gets the JSDoc this tag for the node if present */ 4789 function getJSDocThisTag(node: Node): JSDocThisTag | undefined; 4790 /** Gets the JSDoc return tag for the node if present */ 4791 function getJSDocReturnTag(node: Node): JSDocReturnTag | undefined; 4792 /** Gets the JSDoc template tag for the node if present */ 4793 function getJSDocTemplateTag(node: Node): JSDocTemplateTag | undefined; 4794 /** Gets the JSDoc type tag for the node if present and valid */ 4795 function getJSDocTypeTag(node: Node): JSDocTypeTag | undefined; 4796 /** 4797 * Gets the type node for the node if provided via JSDoc. 4798 * 4799 * @remarks The search includes any JSDoc param tag that relates 4800 * to the provided parameter, for example a type tag on the 4801 * parameter itself, or a param tag on a containing function 4802 * expression, or a param tag on a variable declaration whose 4803 * initializer is the containing function. The tags closest to the 4804 * node are examined first, so in the previous example, the type 4805 * tag directly on the node would be returned. 4806 */ 4807 function getJSDocType(node: Node): TypeNode | undefined; 4808 /** 4809 * Gets the return type node for the node if provided via JSDoc return tag or type tag. 4810 * 4811 * @remarks `getJSDocReturnTag` just gets the whole JSDoc tag. This function 4812 * gets the type from inside the braces, after the fat arrow, etc. 4813 */ 4814 function getJSDocReturnType(node: Node): TypeNode | undefined; 4815 /** Get all JSDoc tags related to a node, including those on parent nodes. */ 4816 function getJSDocTags(node: Node): readonly JSDocTag[]; 4817 /** Gets all JSDoc tags that match a specified predicate */ 4818 function getAllJSDocTags<T extends JSDocTag>(node: Node, predicate: (tag: JSDocTag) => tag is T): readonly T[]; 4819 /** Gets all JSDoc tags of a specified kind */ 4820 function getAllJSDocTagsOfKind(node: Node, kind: SyntaxKind): readonly JSDocTag[]; 4821 /** Gets the text of a jsdoc comment, flattening links to their text. */ 4822 function getTextOfJSDocComment(comment?: string | NodeArray<JSDocComment>): string | undefined; 4823 /** 4824 * Gets the effective type parameters. If the node was parsed in a 4825 * JavaScript file, gets the type parameters from the `@template` tag from JSDoc. 4826 * 4827 * This does *not* return type parameters from a jsdoc reference to a generic type, eg 4828 * 4829 * type Id = <T>(x: T) => T 4830 * /** @type {Id} / 4831 * function id(x) { return x } 4832 */ 4833 function getEffectiveTypeParameterDeclarations(node: DeclarationWithTypeParameters): readonly TypeParameterDeclaration[]; 4834 function getEffectiveConstraintOfTypeParameter(node: TypeParameterDeclaration): TypeNode | undefined; 4835 function isMemberName(node: Node): node is MemberName; 4836 function isPropertyAccessChain(node: Node): node is PropertyAccessChain; 4837 function isElementAccessChain(node: Node): node is ElementAccessChain; 4838 function isCallChain(node: Node): node is CallChain; 4839 function isOptionalChain(node: Node): node is PropertyAccessChain | ElementAccessChain | CallChain | NonNullChain; 4840 function isNullishCoalesce(node: Node): boolean; 4841 function isConstTypeReference(node: Node): boolean; 4842 function skipPartiallyEmittedExpressions(node: Expression): Expression; 4843 function skipPartiallyEmittedExpressions(node: Node): Node; 4844 function isNonNullChain(node: Node): node is NonNullChain; 4845 function isBreakOrContinueStatement(node: Node): node is BreakOrContinueStatement; 4846 function isNamedExportBindings(node: Node): node is NamedExportBindings; 4847 function isUnparsedTextLike(node: Node): node is UnparsedTextLike; 4848 function isUnparsedNode(node: Node): node is UnparsedNode; 4849 function isJSDocPropertyLikeTag(node: Node): node is JSDocPropertyLikeTag; 4850 /** 4851 * True if kind is of some token syntax kind. 4852 * For example, this is true for an IfKeyword but not for an IfStatement. 4853 * Literals are considered tokens, except TemplateLiteral, but does include TemplateHead/Middle/Tail. 4854 */ 4855 function isTokenKind(kind: SyntaxKind): boolean; 4856 /** 4857 * True if node is of some token syntax kind. 4858 * For example, this is true for an IfKeyword but not for an IfStatement. 4859 * Literals are considered tokens, except TemplateLiteral, but does include TemplateHead/Middle/Tail. 4860 */ 4861 function isToken(n: Node): boolean; 4862 function isLiteralExpression(node: Node): node is LiteralExpression; 4863 function isTemplateLiteralToken(node: Node): node is TemplateLiteralToken; 4864 function isTemplateMiddleOrTemplateTail(node: Node): node is TemplateMiddle | TemplateTail; 4865 function isImportOrExportSpecifier(node: Node): node is ImportSpecifier | ExportSpecifier; 4866 function isTypeOnlyImportOrExportDeclaration(node: Node): node is TypeOnlyAliasDeclaration; 4867 function isAssertionKey(node: Node): node is AssertionKey; 4868 function isStringTextContainingNode(node: Node): node is StringLiteral | TemplateLiteralToken; 4869 function isModifier(node: Node): node is Modifier; 4870 function isEntityName(node: Node): node is EntityName; 4871 function isPropertyName(node: Node): node is PropertyName; 4872 function isBindingName(node: Node): node is BindingName; 4873 function isFunctionLike(node: Node | undefined): node is SignatureDeclaration; 4874 function isClassElement(node: Node): node is ClassElement; 4875 function isClassLike(node: Node): node is ClassLikeDeclaration; 4876 function isStruct(node: Node): node is StructDeclaration; 4877 function isAccessor(node: Node): node is AccessorDeclaration; 4878 function isAutoAccessorPropertyDeclaration(node: Node): node is AutoAccessorPropertyDeclaration; 4879 function isModifierLike(node: Node): node is ModifierLike; 4880 function isTypeElement(node: Node): node is TypeElement; 4881 function isClassOrTypeElement(node: Node): node is ClassElement | TypeElement; 4882 function isObjectLiteralElementLike(node: Node): node is ObjectLiteralElementLike; 4883 /** 4884 * Node test that determines whether a node is a valid type node. 4885 * This differs from the `isPartOfTypeNode` function which determines whether a node is *part* 4886 * of a TypeNode. 4887 */ 4888 function isTypeNode(node: Node): node is TypeNode; 4889 function isFunctionOrConstructorTypeNode(node: Node): node is FunctionTypeNode | ConstructorTypeNode; 4890 function isPropertyAccessOrQualifiedName(node: Node): node is PropertyAccessExpression | QualifiedName; 4891 function isCallLikeExpression(node: Node): node is CallLikeExpression; 4892 function isCallOrNewExpression(node: Node): node is CallExpression | NewExpression; 4893 function isTemplateLiteral(node: Node): node is TemplateLiteral; 4894 function isAssertionExpression(node: Node): node is AssertionExpression; 4895 function isIterationStatement(node: Node, lookInLabeledStatements: false): node is IterationStatement; 4896 function isIterationStatement(node: Node, lookInLabeledStatements: boolean): node is IterationStatement | LabeledStatement; 4897 function isJsxOpeningLikeElement(node: Node): node is JsxOpeningLikeElement; 4898 function isCaseOrDefaultClause(node: Node): node is CaseOrDefaultClause; 4899 /** True if node is of a kind that may contain comment text. */ 4900 function isJSDocCommentContainingNode(node: Node): boolean; 4901 function isSetAccessor(node: Node): node is SetAccessorDeclaration; 4902 function isGetAccessor(node: Node): node is GetAccessorDeclaration; 4903 /** True if has initializer node attached to it. */ 4904 function hasOnlyExpressionInitializer(node: Node): node is HasExpressionInitializer; 4905 function isObjectLiteralElement(node: Node): node is ObjectLiteralElement; 4906 function isStringLiteralLike(node: Node): node is StringLiteralLike; 4907 function isJSDocLinkLike(node: Node): node is JSDocLink | JSDocLinkCode | JSDocLinkPlain; 4908 function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean; 4909 function isRestParameter(node: ParameterDeclaration | JSDocParameterTag): boolean; 4910} 4911declare namespace ts { 4912 function getLeadingCommentRangesOfNode(node: Node, sourceFileOfNode: SourceFile): CommentRange[] | undefined; 4913 function createTextWriter(newLine: string): EmitTextWriter; 4914 /** 4915 * Bypasses immutability and directly sets the `parent` property of each `Node` recursively. 4916 * @param rootNode The root node from which to start the recursion. 4917 * @param incremental When `true`, only recursively descends through nodes whose `parent` pointers are incorrect. 4918 * This allows us to quickly bail out of setting `parent` for subtrees during incremental parsing. 4919 */ 4920 function setParentRecursive<T extends Node>(rootNode: T, incremental: boolean): T; 4921 function setParentRecursive<T extends Node>(rootNode: T | undefined, incremental: boolean): T | undefined; 4922} 4923declare namespace ts { 4924 const factory: NodeFactory; 4925 function createUnparsedSourceFile(text: string): UnparsedSource; 4926 function createUnparsedSourceFile(inputFile: InputFiles, type: "js" | "dts", stripInternal?: boolean): UnparsedSource; 4927 function createUnparsedSourceFile(text: string, mapPath: string | undefined, map: string | undefined): UnparsedSource; 4928 function createInputFiles(javascriptText: string, declarationText: string): InputFiles; 4929 function createInputFiles(readFileText: (path: string) => string | undefined, javascriptPath: string, javascriptMapPath: string | undefined, declarationPath: string, declarationMapPath: string | undefined, buildInfoPath: string | undefined): InputFiles; 4930 function createInputFiles(javascriptText: string, declarationText: string, javascriptMapPath: string | undefined, javascriptMapText: string | undefined, declarationMapPath: string | undefined, declarationMapText: string | undefined): InputFiles; 4931 /** 4932 * Create an external source map source file reference 4933 */ 4934 function createSourceMapSource(fileName: string, text: string, skipTrivia?: (pos: number) => number): SourceMapSource; 4935 function setOriginalNode<T extends Node>(node: T, original: Node | undefined): T; 4936} 4937declare namespace ts { 4938 /** 4939 * Clears any `EmitNode` entries from parse-tree nodes. 4940 * @param sourceFile A source file. 4941 */ 4942 function disposeEmitNodes(sourceFile: SourceFile | undefined): void; 4943 /** 4944 * Sets flags that control emit behavior of a node. 4945 */ 4946 function setEmitFlags<T extends Node>(node: T, emitFlags: EmitFlags): T; 4947 /** 4948 * Gets a custom text range to use when emitting source maps. 4949 */ 4950 function getSourceMapRange(node: Node): SourceMapRange; 4951 /** 4952 * Sets a custom text range to use when emitting source maps. 4953 */ 4954 function setSourceMapRange<T extends Node>(node: T, range: SourceMapRange | undefined): T; 4955 /** 4956 * Gets the TextRange to use for source maps for a token of a node. 4957 */ 4958 function getTokenSourceMapRange(node: Node, token: SyntaxKind): SourceMapRange | undefined; 4959 /** 4960 * Sets the TextRange to use for source maps for a token of a node. 4961 */ 4962 function setTokenSourceMapRange<T extends Node>(node: T, token: SyntaxKind, range: SourceMapRange | undefined): T; 4963 /** 4964 * Gets a custom text range to use when emitting comments. 4965 */ 4966 function getCommentRange(node: Node): TextRange; 4967 /** 4968 * Sets a custom text range to use when emitting comments. 4969 */ 4970 function setCommentRange<T extends Node>(node: T, range: TextRange): T; 4971 function getSyntheticLeadingComments(node: Node): SynthesizedComment[] | undefined; 4972 function setSyntheticLeadingComments<T extends Node>(node: T, comments: SynthesizedComment[] | undefined): T; 4973 function addSyntheticLeadingComment<T extends Node>(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T; 4974 function getSyntheticTrailingComments(node: Node): SynthesizedComment[] | undefined; 4975 function setSyntheticTrailingComments<T extends Node>(node: T, comments: SynthesizedComment[] | undefined): T; 4976 function addSyntheticTrailingComment<T extends Node>(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T; 4977 function moveSyntheticComments<T extends Node>(node: T, original: Node): T; 4978 /** 4979 * Gets the constant value to emit for an expression representing an enum. 4980 */ 4981 function getConstantValue(node: AccessExpression): string | number | undefined; 4982 /** 4983 * Sets the constant value to emit for an expression. 4984 */ 4985 function setConstantValue(node: AccessExpression, value: string | number): AccessExpression; 4986 /** 4987 * Adds an EmitHelper to a node. 4988 */ 4989 function addEmitHelper<T extends Node>(node: T, helper: EmitHelper): T; 4990 /** 4991 * Add EmitHelpers to a node. 4992 */ 4993 function addEmitHelpers<T extends Node>(node: T, helpers: EmitHelper[] | undefined): T; 4994 /** 4995 * Removes an EmitHelper from a node. 4996 */ 4997 function removeEmitHelper(node: Node, helper: EmitHelper): boolean; 4998 /** 4999 * Gets the EmitHelpers of a node. 5000 */ 5001 function getEmitHelpers(node: Node): EmitHelper[] | undefined; 5002 /** 5003 * Moves matching emit helpers from a source node to a target node. 5004 */ 5005 function moveEmitHelpers(source: Node, target: Node, predicate: (helper: EmitHelper) => boolean): void; 5006} 5007declare namespace ts { 5008 function isNumericLiteral(node: Node): node is NumericLiteral; 5009 function isBigIntLiteral(node: Node): node is BigIntLiteral; 5010 function isStringLiteral(node: Node): node is StringLiteral; 5011 function isJsxText(node: Node): node is JsxText; 5012 function isRegularExpressionLiteral(node: Node): node is RegularExpressionLiteral; 5013 function isNoSubstitutionTemplateLiteral(node: Node): node is NoSubstitutionTemplateLiteral; 5014 function isTemplateHead(node: Node): node is TemplateHead; 5015 function isTemplateMiddle(node: Node): node is TemplateMiddle; 5016 function isTemplateTail(node: Node): node is TemplateTail; 5017 function isDotDotDotToken(node: Node): node is DotDotDotToken; 5018 function isPlusToken(node: Node): node is PlusToken; 5019 function isMinusToken(node: Node): node is MinusToken; 5020 function isAsteriskToken(node: Node): node is AsteriskToken; 5021 function isIdentifier(node: Node): node is Identifier; 5022 function isPrivateIdentifier(node: Node): node is PrivateIdentifier; 5023 function isQualifiedName(node: Node): node is QualifiedName; 5024 function isComputedPropertyName(node: Node): node is ComputedPropertyName; 5025 function isTypeParameterDeclaration(node: Node): node is TypeParameterDeclaration; 5026 function isParameter(node: Node): node is ParameterDeclaration; 5027 function isDecorator(node: Node): node is Decorator; 5028 function isPropertySignature(node: Node): node is PropertySignature; 5029 function isPropertyDeclaration(node: Node): node is PropertyDeclaration; 5030 function isMethodSignature(node: Node): node is MethodSignature; 5031 function isMethodDeclaration(node: Node): node is MethodDeclaration; 5032 function isClassStaticBlockDeclaration(node: Node): node is ClassStaticBlockDeclaration; 5033 function isConstructorDeclaration(node: Node): node is ConstructorDeclaration; 5034 function isGetAccessorDeclaration(node: Node): node is GetAccessorDeclaration; 5035 function isSetAccessorDeclaration(node: Node): node is SetAccessorDeclaration; 5036 function isCallSignatureDeclaration(node: Node): node is CallSignatureDeclaration; 5037 function isConstructSignatureDeclaration(node: Node): node is ConstructSignatureDeclaration; 5038 function isIndexSignatureDeclaration(node: Node): node is IndexSignatureDeclaration; 5039 function isTypePredicateNode(node: Node): node is TypePredicateNode; 5040 function isTypeReferenceNode(node: Node): node is TypeReferenceNode; 5041 function isFunctionTypeNode(node: Node): node is FunctionTypeNode; 5042 function isConstructorTypeNode(node: Node): node is ConstructorTypeNode; 5043 function isTypeQueryNode(node: Node): node is TypeQueryNode; 5044 function isTypeLiteralNode(node: Node): node is TypeLiteralNode; 5045 function isArrayTypeNode(node: Node): node is ArrayTypeNode; 5046 function isTupleTypeNode(node: Node): node is TupleTypeNode; 5047 function isNamedTupleMember(node: Node): node is NamedTupleMember; 5048 function isOptionalTypeNode(node: Node): node is OptionalTypeNode; 5049 function isRestTypeNode(node: Node): node is RestTypeNode; 5050 function isUnionTypeNode(node: Node): node is UnionTypeNode; 5051 function isIntersectionTypeNode(node: Node): node is IntersectionTypeNode; 5052 function isConditionalTypeNode(node: Node): node is ConditionalTypeNode; 5053 function isInferTypeNode(node: Node): node is InferTypeNode; 5054 function isParenthesizedTypeNode(node: Node): node is ParenthesizedTypeNode; 5055 function isThisTypeNode(node: Node): node is ThisTypeNode; 5056 function isTypeOperatorNode(node: Node): node is TypeOperatorNode; 5057 function isIndexedAccessTypeNode(node: Node): node is IndexedAccessTypeNode; 5058 function isMappedTypeNode(node: Node): node is MappedTypeNode; 5059 function isLiteralTypeNode(node: Node): node is LiteralTypeNode; 5060 function isImportTypeNode(node: Node): node is ImportTypeNode; 5061 function isTemplateLiteralTypeSpan(node: Node): node is TemplateLiteralTypeSpan; 5062 function isTemplateLiteralTypeNode(node: Node): node is TemplateLiteralTypeNode; 5063 function isObjectBindingPattern(node: Node): node is ObjectBindingPattern; 5064 function isArrayBindingPattern(node: Node): node is ArrayBindingPattern; 5065 function isBindingElement(node: Node): node is BindingElement; 5066 function isArrayLiteralExpression(node: Node): node is ArrayLiteralExpression; 5067 function isObjectLiteralExpression(node: Node): node is ObjectLiteralExpression; 5068 function isPropertyAccessExpression(node: Node): node is PropertyAccessExpression; 5069 function isElementAccessExpression(node: Node): node is ElementAccessExpression; 5070 function isCallExpression(node: Node): node is CallExpression; 5071 function isNewExpression(node: Node): node is NewExpression; 5072 function isTaggedTemplateExpression(node: Node): node is TaggedTemplateExpression; 5073 function isTypeAssertionExpression(node: Node): node is TypeAssertion; 5074 function isParenthesizedExpression(node: Node): node is ParenthesizedExpression; 5075 function isFunctionExpression(node: Node): node is FunctionExpression; 5076 function isEtsComponentExpression(node: Node): node is EtsComponentExpression; 5077 function isArrowFunction(node: Node): node is ArrowFunction; 5078 function isDeleteExpression(node: Node): node is DeleteExpression; 5079 function isTypeOfExpression(node: Node): node is TypeOfExpression; 5080 function isVoidExpression(node: Node): node is VoidExpression; 5081 function isAwaitExpression(node: Node): node is AwaitExpression; 5082 function isPrefixUnaryExpression(node: Node): node is PrefixUnaryExpression; 5083 function isPostfixUnaryExpression(node: Node): node is PostfixUnaryExpression; 5084 function isBinaryExpression(node: Node): node is BinaryExpression; 5085 function isConditionalExpression(node: Node): node is ConditionalExpression; 5086 function isTemplateExpression(node: Node): node is TemplateExpression; 5087 function isYieldExpression(node: Node): node is YieldExpression; 5088 function isSpreadElement(node: Node): node is SpreadElement; 5089 function isClassExpression(node: Node): node is ClassExpression; 5090 function isOmittedExpression(node: Node): node is OmittedExpression; 5091 function isExpressionWithTypeArguments(node: Node): node is ExpressionWithTypeArguments; 5092 function isAsExpression(node: Node): node is AsExpression; 5093 function isSatisfiesExpression(node: Node): node is SatisfiesExpression; 5094 function isNonNullExpression(node: Node): node is NonNullExpression; 5095 function isMetaProperty(node: Node): node is MetaProperty; 5096 function isSyntheticExpression(node: Node): node is SyntheticExpression; 5097 function isPartiallyEmittedExpression(node: Node): node is PartiallyEmittedExpression; 5098 function isCommaListExpression(node: Node): node is CommaListExpression; 5099 function isTemplateSpan(node: Node): node is TemplateSpan; 5100 function isSemicolonClassElement(node: Node): node is SemicolonClassElement; 5101 function isBlock(node: Node): node is Block; 5102 function isVariableStatement(node: Node): node is VariableStatement; 5103 function isEmptyStatement(node: Node): node is EmptyStatement; 5104 function isExpressionStatement(node: Node): node is ExpressionStatement; 5105 function isIfStatement(node: Node): node is IfStatement; 5106 function isDoStatement(node: Node): node is DoStatement; 5107 function isWhileStatement(node: Node): node is WhileStatement; 5108 function isForStatement(node: Node): node is ForStatement; 5109 function isForInStatement(node: Node): node is ForInStatement; 5110 function isForOfStatement(node: Node): node is ForOfStatement; 5111 function isContinueStatement(node: Node): node is ContinueStatement; 5112 function isBreakStatement(node: Node): node is BreakStatement; 5113 function isReturnStatement(node: Node): node is ReturnStatement; 5114 function isWithStatement(node: Node): node is WithStatement; 5115 function isSwitchStatement(node: Node): node is SwitchStatement; 5116 function isLabeledStatement(node: Node): node is LabeledStatement; 5117 function isThrowStatement(node: Node): node is ThrowStatement; 5118 function isTryStatement(node: Node): node is TryStatement; 5119 function isDebuggerStatement(node: Node): node is DebuggerStatement; 5120 function isVariableDeclaration(node: Node): node is VariableDeclaration; 5121 function isVariableDeclarationList(node: Node): node is VariableDeclarationList; 5122 function isFunctionDeclaration(node: Node): node is FunctionDeclaration; 5123 function isClassDeclaration(node: Node): node is ClassDeclaration; 5124 function isStructDeclaration(node: Node): node is StructDeclaration; 5125 function isInterfaceDeclaration(node: Node): node is InterfaceDeclaration; 5126 function isTypeAliasDeclaration(node: Node): node is TypeAliasDeclaration; 5127 function isEnumDeclaration(node: Node): node is EnumDeclaration; 5128 function isModuleDeclaration(node: Node): node is ModuleDeclaration; 5129 function isModuleBlock(node: Node): node is ModuleBlock; 5130 function isCaseBlock(node: Node): node is CaseBlock; 5131 function isNamespaceExportDeclaration(node: Node): node is NamespaceExportDeclaration; 5132 function isImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration; 5133 function isImportDeclaration(node: Node): node is ImportDeclaration; 5134 function isImportClause(node: Node): node is ImportClause; 5135 function isImportTypeAssertionContainer(node: Node): node is ImportTypeAssertionContainer; 5136 function isAssertClause(node: Node): node is AssertClause; 5137 function isAssertEntry(node: Node): node is AssertEntry; 5138 function isNamespaceImport(node: Node): node is NamespaceImport; 5139 function isNamespaceExport(node: Node): node is NamespaceExport; 5140 function isNamedImports(node: Node): node is NamedImports; 5141 function isImportSpecifier(node: Node): node is ImportSpecifier; 5142 function isExportAssignment(node: Node): node is ExportAssignment; 5143 function isExportDeclaration(node: Node): node is ExportDeclaration; 5144 function isNamedExports(node: Node): node is NamedExports; 5145 function isExportSpecifier(node: Node): node is ExportSpecifier; 5146 function isMissingDeclaration(node: Node): node is MissingDeclaration; 5147 function isNotEmittedStatement(node: Node): node is NotEmittedStatement; 5148 function isExternalModuleReference(node: Node): node is ExternalModuleReference; 5149 function isJsxElement(node: Node): node is JsxElement; 5150 function isJsxSelfClosingElement(node: Node): node is JsxSelfClosingElement; 5151 function isJsxOpeningElement(node: Node): node is JsxOpeningElement; 5152 function isJsxClosingElement(node: Node): node is JsxClosingElement; 5153 function isJsxFragment(node: Node): node is JsxFragment; 5154 function isJsxOpeningFragment(node: Node): node is JsxOpeningFragment; 5155 function isJsxClosingFragment(node: Node): node is JsxClosingFragment; 5156 function isJsxAttribute(node: Node): node is JsxAttribute; 5157 function isJsxAttributes(node: Node): node is JsxAttributes; 5158 function isJsxSpreadAttribute(node: Node): node is JsxSpreadAttribute; 5159 function isJsxExpression(node: Node): node is JsxExpression; 5160 function isCaseClause(node: Node): node is CaseClause; 5161 function isDefaultClause(node: Node): node is DefaultClause; 5162 function isHeritageClause(node: Node): node is HeritageClause; 5163 function isCatchClause(node: Node): node is CatchClause; 5164 function isPropertyAssignment(node: Node): node is PropertyAssignment; 5165 function isShorthandPropertyAssignment(node: Node): node is ShorthandPropertyAssignment; 5166 function isSpreadAssignment(node: Node): node is SpreadAssignment; 5167 function isEnumMember(node: Node): node is EnumMember; 5168 function isUnparsedPrepend(node: Node): node is UnparsedPrepend; 5169 function isSourceFile(node: Node): node is SourceFile; 5170 function isBundle(node: Node): node is Bundle; 5171 function isUnparsedSource(node: Node): node is UnparsedSource; 5172 function isJSDocTypeExpression(node: Node): node is JSDocTypeExpression; 5173 function isJSDocNameReference(node: Node): node is JSDocNameReference; 5174 function isJSDocMemberName(node: Node): node is JSDocMemberName; 5175 function isJSDocLink(node: Node): node is JSDocLink; 5176 function isJSDocLinkCode(node: Node): node is JSDocLinkCode; 5177 function isJSDocLinkPlain(node: Node): node is JSDocLinkPlain; 5178 function isJSDocAllType(node: Node): node is JSDocAllType; 5179 function isJSDocUnknownType(node: Node): node is JSDocUnknownType; 5180 function isJSDocNullableType(node: Node): node is JSDocNullableType; 5181 function isJSDocNonNullableType(node: Node): node is JSDocNonNullableType; 5182 function isJSDocOptionalType(node: Node): node is JSDocOptionalType; 5183 function isJSDocFunctionType(node: Node): node is JSDocFunctionType; 5184 function isJSDocVariadicType(node: Node): node is JSDocVariadicType; 5185 function isJSDocNamepathType(node: Node): node is JSDocNamepathType; 5186 function isJSDoc(node: Node): node is JSDoc; 5187 function isJSDocTypeLiteral(node: Node): node is JSDocTypeLiteral; 5188 function isJSDocSignature(node: Node): node is JSDocSignature; 5189 function isJSDocAugmentsTag(node: Node): node is JSDocAugmentsTag; 5190 function isJSDocAuthorTag(node: Node): node is JSDocAuthorTag; 5191 function isJSDocClassTag(node: Node): node is JSDocClassTag; 5192 function isJSDocCallbackTag(node: Node): node is JSDocCallbackTag; 5193 function isJSDocPublicTag(node: Node): node is JSDocPublicTag; 5194 function isJSDocPrivateTag(node: Node): node is JSDocPrivateTag; 5195 function isJSDocProtectedTag(node: Node): node is JSDocProtectedTag; 5196 function isJSDocReadonlyTag(node: Node): node is JSDocReadonlyTag; 5197 function isJSDocOverrideTag(node: Node): node is JSDocOverrideTag; 5198 function isJSDocDeprecatedTag(node: Node): node is JSDocDeprecatedTag; 5199 function isJSDocSeeTag(node: Node): node is JSDocSeeTag; 5200 function isJSDocEnumTag(node: Node): node is JSDocEnumTag; 5201 function isJSDocParameterTag(node: Node): node is JSDocParameterTag; 5202 function isJSDocReturnTag(node: Node): node is JSDocReturnTag; 5203 function isJSDocThisTag(node: Node): node is JSDocThisTag; 5204 function isJSDocTypeTag(node: Node): node is JSDocTypeTag; 5205 function isJSDocTemplateTag(node: Node): node is JSDocTemplateTag; 5206 function isJSDocTypedefTag(node: Node): node is JSDocTypedefTag; 5207 function isJSDocUnknownTag(node: Node): node is JSDocUnknownTag; 5208 function isJSDocPropertyTag(node: Node): node is JSDocPropertyTag; 5209 function isJSDocImplementsTag(node: Node): node is JSDocImplementsTag; 5210} 5211declare namespace ts { 5212 function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T; 5213 function canHaveModifiers(node: Node): node is HasModifiers; 5214 function canHaveDecorators(node: Node): node is HasDecorators; 5215} 5216declare namespace ts { 5217 /** 5218 * Invokes a callback for each child of the given node. The 'cbNode' callback is invoked for all child nodes 5219 * stored in properties. If a 'cbNodes' callback is specified, it is invoked for embedded arrays; otherwise, 5220 * embedded arrays are flattened and the 'cbNode' callback is invoked for each element. If a callback returns 5221 * a truthy value, iteration stops and that value is returned. Otherwise, undefined is returned. 5222 * 5223 * @param node a given node to visit its children 5224 * @param cbNode a callback to be invoked for all child nodes 5225 * @param cbNodes a callback to be invoked for embedded array 5226 * 5227 * @remarks `forEachChild` must visit the children of a node in the order 5228 * that they appear in the source code. The language service depends on this property to locate nodes by position. 5229 */ 5230 export function forEachChild<T>(node: Node, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray<Node>) => T | undefined): T | undefined; 5231 export interface CreateSourceFileOptions { 5232 languageVersion: ScriptTarget; 5233 /** 5234 * Controls the format the file is detected as - this can be derived from only the path 5235 * and files on disk, but needs to be done with a module resolution cache in scope to be performant. 5236 * This is usually `undefined` for compilations that do not have `moduleResolution` values of `node16` or `nodenext`. 5237 */ 5238 impliedNodeFormat?: ModuleKind.ESNext | ModuleKind.CommonJS; 5239 /** 5240 * Controls how module-y-ness is set for the given file. Usually the result of calling 5241 * `getSetExternalModuleIndicator` on a valid `CompilerOptions` object. If not present, the default 5242 * check specified by `isFileProbablyExternalModule` will be used to set the field. 5243 */ 5244 setExternalModuleIndicator?: (file: SourceFile) => void; 5245 } 5246 export function createSourceFile(fileName: string, sourceText: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, setParentNodes?: boolean, scriptKind?: ScriptKind, options?: CompilerOptions): SourceFile; 5247 export function parseIsolatedEntityName(text: string, languageVersion: ScriptTarget): EntityName | undefined; 5248 /** 5249 * Parse json text into SyntaxTree and return node and parse errors if any 5250 * @param fileName 5251 * @param sourceText 5252 */ 5253 export function parseJsonText(fileName: string, sourceText: string): JsonSourceFile; 5254 export function isExternalModule(file: SourceFile): boolean; 5255 export function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean, option?: CompilerOptions): SourceFile; 5256 export {}; 5257} 5258declare namespace ts { 5259 export function parseCommandLine(commandLine: readonly string[], readFile?: (path: string) => string | undefined): ParsedCommandLine; 5260 export type DiagnosticReporter = (diagnostic: Diagnostic) => void; 5261 /** 5262 * Reports config file diagnostics 5263 */ 5264 export interface ConfigFileDiagnosticsReporter { 5265 /** 5266 * Reports unrecoverable error when parsing config file 5267 */ 5268 onUnRecoverableConfigFileDiagnostic: DiagnosticReporter; 5269 } 5270 /** 5271 * Interface extending ParseConfigHost to support ParseConfigFile that reads config file and reports errors 5272 */ 5273 export interface ParseConfigFileHost extends ParseConfigHost, ConfigFileDiagnosticsReporter { 5274 getCurrentDirectory(): string; 5275 } 5276 /** 5277 * Reads the config file, reports errors if any and exits if the config file cannot be found 5278 */ 5279 export function getParsedCommandLineOfConfigFile(configFileName: string, optionsToExtend: CompilerOptions | undefined, host: ParseConfigFileHost, extendedConfigCache?: Map<ExtendedConfigCacheEntry>, watchOptionsToExtend?: WatchOptions, extraFileExtensions?: readonly FileExtensionInfo[]): ParsedCommandLine | undefined; 5280 /** 5281 * Read tsconfig.json file 5282 * @param fileName The path to the config file 5283 */ 5284 export function readConfigFile(fileName: string, readFile: (path: string) => string | undefined): { 5285 config?: any; 5286 error?: Diagnostic; 5287 }; 5288 /** 5289 * Parse the text of the tsconfig.json file 5290 * @param fileName The path to the config file 5291 * @param jsonText The text of the config file 5292 */ 5293 export function parseConfigFileTextToJson(fileName: string, jsonText: string): { 5294 config?: any; 5295 error?: Diagnostic; 5296 }; 5297 /** 5298 * Read tsconfig.json file 5299 * @param fileName The path to the config file 5300 */ 5301 export function readJsonConfigFile(fileName: string, readFile: (path: string) => string | undefined): TsConfigSourceFile; 5302 /** 5303 * Convert the json syntax tree into the json value 5304 */ 5305 export function convertToObject(sourceFile: JsonSourceFile, errors: Push<Diagnostic>): any; 5306 /** 5307 * Parse the contents of a config file (tsconfig.json). 5308 * @param json The contents of the config file to parse 5309 * @param host Instance of ParseConfigHost used to enumerate files in folder. 5310 * @param basePath A root directory to resolve relative path entries in the config 5311 * file to. e.g. outDir 5312 */ 5313 export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map<ExtendedConfigCacheEntry>, existingWatchOptions?: WatchOptions): ParsedCommandLine; 5314 /** 5315 * Parse the contents of a config file (tsconfig.json). 5316 * @param jsonNode The contents of the config file to parse 5317 * @param host Instance of ParseConfigHost used to enumerate files in folder. 5318 * @param basePath A root directory to resolve relative path entries in the config 5319 * file to. e.g. outDir 5320 */ 5321 export function parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map<ExtendedConfigCacheEntry>, existingWatchOptions?: WatchOptions): ParsedCommandLine; 5322 export interface ParsedTsconfig { 5323 raw: any; 5324 options?: CompilerOptions; 5325 watchOptions?: WatchOptions; 5326 typeAcquisition?: TypeAcquisition; 5327 /** 5328 * Note that the case of the config path has not yet been normalized, as no files have been imported into the project yet 5329 */ 5330 extendedConfigPath?: string; 5331 } 5332 export interface ExtendedConfigCacheEntry { 5333 extendedResult: TsConfigSourceFile; 5334 extendedConfig: ParsedTsconfig | undefined; 5335 } 5336 export function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): { 5337 options: CompilerOptions; 5338 errors: Diagnostic[]; 5339 }; 5340 export function convertTypeAcquisitionFromJson(jsonOptions: any, basePath: string, configFileName?: string): { 5341 options: TypeAcquisition; 5342 errors: Diagnostic[]; 5343 }; 5344 export {}; 5345} 5346declare namespace ts { 5347 export function getEffectiveTypeRoots(options: CompilerOptions, host: GetEffectiveTypeRootsHost): string[] | undefined; 5348 /** 5349 * @param {string | undefined} containingFile - file that contains type reference directive, can be undefined if containing file is unknown. 5350 * This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups 5351 * is assumed to be the same as root directory of the project. 5352 */ 5353 export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache, resolutionMode?: SourceFile["impliedNodeFormat"]): ResolvedTypeReferenceDirectiveWithFailedLookupLocations; 5354 /** 5355 * Given a set of options, returns the set of type directive names 5356 * that should be included for this program automatically. 5357 * This list could either come from the config file, 5358 * or from enumerating the types root + initial secondary types lookup location. 5359 * More type directives might appear in the program later as a result of loading actual source files; 5360 * this list is only the set of defaults that are implicitly included. 5361 */ 5362 export function getAutomaticTypeDirectiveNames(options: CompilerOptions, host: ModuleResolutionHost): string[]; 5363 export interface TypeReferenceDirectiveResolutionCache extends PerDirectoryResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, PackageJsonInfoCache { 5364 } 5365 export interface ModeAwareCache<T> { 5366 get(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): T | undefined; 5367 set(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined, value: T): this; 5368 delete(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): this; 5369 has(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): boolean; 5370 forEach(cb: (elem: T, key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined) => void): void; 5371 size(): number; 5372 } 5373 /** 5374 * Cached resolutions per containing directory. 5375 * This assumes that any module id will have the same resolution for sibling files located in the same folder. 5376 */ 5377 export interface PerDirectoryResolutionCache<T> { 5378 getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference): ModeAwareCache<T>; 5379 clear(): void; 5380 /** 5381 * Updates with the current compilerOptions the cache will operate with. 5382 * This updates the redirects map as well if needed so module resolutions are cached if they can across the projects 5383 */ 5384 update(options: CompilerOptions): void; 5385 } 5386 export interface ModuleResolutionCache extends PerDirectoryResolutionCache<ResolvedModuleWithFailedLookupLocations>, NonRelativeModuleNameResolutionCache, PackageJsonInfoCache { 5387 getPackageJsonInfoCache(): PackageJsonInfoCache; 5388 } 5389 /** 5390 * Stored map from non-relative module name to a table: directory -> result of module lookup in this directory 5391 * We support only non-relative module names because resolution of relative module names is usually more deterministic and thus less expensive. 5392 */ 5393 export interface NonRelativeModuleNameResolutionCache extends PackageJsonInfoCache { 5394 getOrCreateCacheForModuleName(nonRelativeModuleName: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined, redirectedReference?: ResolvedProjectReference): PerModuleNameCache; 5395 } 5396 export interface PackageJsonInfoCache { 5397 clear(): void; 5398 } 5399 export interface PerModuleNameCache { 5400 get(directory: string): ResolvedModuleWithFailedLookupLocations | undefined; 5401 set(directory: string, result: ResolvedModuleWithFailedLookupLocations): void; 5402 } 5403 export function createModuleResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions): ModuleResolutionCache; 5404 export function createTypeReferenceDirectiveResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions, packageJsonInfoCache?: PackageJsonInfoCache): TypeReferenceDirectiveResolutionCache; 5405 export function resolveModuleNameFromCache(moduleName: string, containingFile: string, cache: ModuleResolutionCache, mode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; 5406 export function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations; 5407 export function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; 5408 /** 5409 * This will be called on the successfully resolved path from `loadModuleFromFile`. 5410 * (Not needed for `loadModuleFromNodeModules` as that looks up the `package.json` or `oh-package.json5` as part of resolution.) 5411 * 5412 * packageDirectory is the directory of the package itself. 5413 * For `blah/node_modules/foo/index.d.ts` this is packageDirectory: "foo" 5414 * For `/node_modules/foo/bar.d.ts` this is packageDirectory: "foo" 5415 * For `/node_modules/@types/foo/bar/index.d.ts` this is packageDirectory: "@types/foo" 5416 * For `/node_modules/foo/bar/index.d.ts` this is packageDirectory: "foo" 5417 */ 5418 export function parseModuleFromPath(resolved: string, packageManagerType?: string): string | undefined; 5419 export function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; 5420 export {}; 5421} 5422declare namespace ts { 5423 function concatenateDecoratorsAndModifiers(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined): readonly ModifierLike[] | undefined; 5424 function isEtsFunctionDecorators(name: string | undefined, options: CompilerOptions): boolean; 5425 function isOhpm(packageManagerType: string | undefined): boolean; 5426 const ohModulesPathPart: string; 5427 function isOHModules(modulePath: string): boolean; 5428 function isOhpmAndOhModules(packageManagerType: string | undefined, modulePath: string): boolean; 5429 function getModulePathPartByPMType(packageManagerType: string | undefined): string; 5430 function getModuleByPMType(packageManagerType: string | undefined): string; 5431 function getPackageJsonByPMType(packageManagerType: string | undefined): string; 5432 function isOHModulesDirectory(dirPath: Path): boolean; 5433 function isTargetModulesDerectory(dirPath: Path): boolean; 5434 function pathContainsOHModules(path: string): boolean; 5435 function choosePathContainsModules(packageManagerType: string | undefined, fileName: string): boolean; 5436 function getTypeExportImportAndConstEnumTransformer(context: TransformationContext): (node: SourceFile) => SourceFile; 5437 /** 5438 * Add 'type' flag to import/export when import/export an type member. 5439 * Replace const enum with number and string literal. 5440 */ 5441 function transformTypeExportImportAndConstEnumInTypeScript(context: TransformationContext): (node: SourceFile) => SourceFile; 5442 function hasTsNoCheckOrTsIgnoreFlag(node: SourceFile): boolean; 5443 function createObfTextSingleLineWriter(): EmitTextWriter; 5444} 5445declare namespace ts { 5446 /** 5447 * Visits a Node using the supplied visitor, possibly returning a new Node in its place. 5448 * 5449 * @param node The Node to visit. 5450 * @param visitor The callback used to visit the Node. 5451 * @param test A callback to execute to verify the Node is valid. 5452 * @param lift An optional callback to execute to lift a NodeArray into a valid Node. 5453 */ 5454 function visitNode<T extends Node>(node: T, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T; 5455 /** 5456 * Visits a Node using the supplied visitor, possibly returning a new Node in its place. 5457 * 5458 * @param node The Node to visit. 5459 * @param visitor The callback used to visit the Node. 5460 * @param test A callback to execute to verify the Node is valid. 5461 * @param lift An optional callback to execute to lift a NodeArray into a valid Node. 5462 */ 5463 function visitNode<T extends Node>(node: T | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T | undefined; 5464 /** 5465 * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place. 5466 * 5467 * @param nodes The NodeArray to visit. 5468 * @param visitor The callback used to visit a Node. 5469 * @param test A node test to execute for each node. 5470 * @param start An optional value indicating the starting offset at which to start visiting. 5471 * @param count An optional value indicating the maximum number of nodes to visit. 5472 */ 5473 function visitNodes<T extends Node>(nodes: NodeArray<T>, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T>; 5474 /** 5475 * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place. 5476 * 5477 * @param nodes The NodeArray to visit. 5478 * @param visitor The callback used to visit a Node. 5479 * @param test A node test to execute for each node. 5480 * @param start An optional value indicating the starting offset at which to start visiting. 5481 * @param count An optional value indicating the maximum number of nodes to visit. 5482 */ 5483 function visitNodes<T extends Node>(nodes: NodeArray<T> | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T> | undefined; 5484 /** 5485 * Starts a new lexical environment and visits a statement list, ending the lexical environment 5486 * and merging hoisted declarations upon completion. 5487 */ 5488 function visitLexicalEnvironment(statements: NodeArray<Statement>, visitor: Visitor, context: TransformationContext, start?: number, ensureUseStrict?: boolean, nodesVisitor?: NodesVisitor): NodeArray<Statement>; 5489 /** 5490 * Starts a new lexical environment and visits a parameter list, suspending the lexical 5491 * environment upon completion. 5492 */ 5493 function visitParameterList(nodes: NodeArray<ParameterDeclaration>, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor): NodeArray<ParameterDeclaration>; 5494 function visitParameterList(nodes: NodeArray<ParameterDeclaration> | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor): NodeArray<ParameterDeclaration> | undefined; 5495 /** 5496 * Resumes a suspended lexical environment and visits a function body, ending the lexical 5497 * environment and merging hoisted declarations upon completion. 5498 */ 5499 function visitFunctionBody(node: FunctionBody, visitor: Visitor, context: TransformationContext): FunctionBody; 5500 /** 5501 * Resumes a suspended lexical environment and visits a function body, ending the lexical 5502 * environment and merging hoisted declarations upon completion. 5503 */ 5504 function visitFunctionBody(node: FunctionBody | undefined, visitor: Visitor, context: TransformationContext): FunctionBody | undefined; 5505 /** 5506 * Resumes a suspended lexical environment and visits a concise body, ending the lexical 5507 * environment and merging hoisted declarations upon completion. 5508 */ 5509 function visitFunctionBody(node: ConciseBody, visitor: Visitor, context: TransformationContext): ConciseBody; 5510 /** 5511 * Visits an iteration body, adding any block-scoped variables required by the transformation. 5512 */ 5513 function visitIterationBody(body: Statement, visitor: Visitor, context: TransformationContext): Statement; 5514 /** 5515 * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place. 5516 * 5517 * @param node The Node whose children will be visited. 5518 * @param visitor The callback used to visit each child. 5519 * @param context A lexical environment context for the visitor. 5520 */ 5521 function visitEachChild<T extends Node>(node: T, visitor: Visitor, context: TransformationContext): T; 5522 /** 5523 * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place. 5524 * 5525 * @param node The Node whose children will be visited. 5526 * @param visitor The callback used to visit each child. 5527 * @param context A lexical environment context for the visitor. 5528 */ 5529 function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: typeof visitNodes, tokenVisitor?: Visitor): T | undefined; 5530} 5531declare namespace ts { 5532 interface SourceMapGeneratorOptions { 5533 extendedDiagnostics?: boolean; 5534 } 5535 function createSourceMapGenerator(host: EmitHost, file: string, sourceRoot: string, sourcesDirectoryPath: string, generatorOptions: SourceMapGeneratorOptions): SourceMapGenerator; 5536} 5537declare namespace ts { 5538 function getTsBuildInfoEmitOutputFilePath(options: CompilerOptions): string | undefined; 5539 function getTsBuildInfoEmitOutputFilePathForLinter(tsBuildInfoPath: string): string; 5540 function getOutputFileNames(commandLine: ParsedCommandLine, inputFileName: string, ignoreCase: boolean): readonly string[]; 5541 function createPrinter(printerOptions?: PrinterOptions, handlers?: PrintHandlers): Printer; 5542} 5543declare namespace ts { 5544 export function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName?: string): string | undefined; 5545 export function resolveTripleslashReference(moduleName: string, containingFile: string): string; 5546 export function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost; 5547 export function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5548 export interface FormatDiagnosticsHost { 5549 getCurrentDirectory(): string; 5550 getCanonicalFileName(fileName: string): string; 5551 getNewLine(): string; 5552 } 5553 export function formatDiagnostics(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string; 5554 export function formatDiagnostic(diagnostic: Diagnostic, host: FormatDiagnosticsHost): string; 5555 export function formatDiagnosticsWithColorAndContext(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string; 5556 export function flattenDiagnosticMessageText(diag: string | DiagnosticMessageChain | undefined, newLine: string, indent?: number): string; 5557 /** 5558 * Calculates the resulting resolution mode for some reference in some file - this is generally the explicitly 5559 * provided resolution mode in the reference, unless one is not present, in which case it is the mode of the containing file. 5560 */ 5561 export function getModeForFileReference(ref: FileReference | string, containingFileMode: SourceFile["impliedNodeFormat"]): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5562 /** 5563 * Calculates the final resolution mode for an import at some index within a file's imports list. This is generally the explicitly 5564 * defined mode of the import if provided, or, if not, the mode of the containing file (with some exceptions: import=require is always commonjs, dynamic import is always esm). 5565 * If you have an actual import node, prefer using getModeForUsageLocation on the reference string node. 5566 * @param file File to fetch the resolution mode within 5567 * @param index Index into the file's complete resolution list to get the resolution of - this is a concatenation of the file's imports and module augmentations 5568 */ 5569 export function getModeForResolutionAtIndex(file: SourceFile, index: number): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5570 /** 5571 * Calculates the final resolution mode for a given module reference node. This is generally the explicitly provided resolution mode, if 5572 * one exists, or the mode of the containing source file. (Excepting import=require, which is always commonjs, and dynamic import, which is always esm). 5573 * Notably, this function always returns `undefined` if the containing file has an `undefined` `impliedNodeFormat` - this field is only set when 5574 * `moduleResolution` is `node16`+. 5575 * @param file The file the import or import-like reference is contained within 5576 * @param usage The module reference string 5577 * @returns The final resolution mode of the import 5578 */ 5579 export function getModeForUsageLocation(file: { 5580 impliedNodeFormat?: SourceFile["impliedNodeFormat"]; 5581 }, usage: StringLiteralLike): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5582 export function getConfigFileParsingDiagnostics(configFileParseResult: ParsedCommandLine): readonly Diagnostic[]; 5583 /** 5584 * A function for determining if a given file is esm or cjs format, assuming modern node module resolution rules, as configured by the 5585 * `options` parameter. 5586 * 5587 * @param fileName The normalized absolute path to check the format of (it need not exist on disk) 5588 * @param [packageJsonInfoCache] A cache for package file lookups - it's best to have a cache when this function is called often 5589 * @param host The ModuleResolutionHost which can perform the filesystem lookups for package json data 5590 * @param options The compiler options to perform the analysis under - relevant options are `moduleResolution` and `traceResolution` 5591 * @returns `undefined` if the path has no relevant implied format, `ModuleKind.ESNext` for esm format, and `ModuleKind.CommonJS` for cjs format 5592 */ 5593 export function getImpliedNodeFormatForFile(fileName: Path, packageJsonInfoCache: PackageJsonInfoCache | undefined, host: ModuleResolutionHost, options: CompilerOptions): ModuleKind.ESNext | ModuleKind.CommonJS | undefined; 5594 /** 5595 * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions' 5596 * that represent a compilation unit. 5597 * 5598 * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and 5599 * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in. 5600 * 5601 * @param createProgramOptions - The options for creating a program. 5602 * @returns A 'Program' object. 5603 */ 5604 export function createProgram(createProgramOptions: CreateProgramOptions): Program; 5605 /** 5606 * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions' 5607 * that represent a compilation unit. 5608 * 5609 * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and 5610 * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in. 5611 * 5612 * @param rootNames - A set of root files. 5613 * @param options - The compiler options which should be used. 5614 * @param host - The host interacts with the underlying file system. 5615 * @param oldProgram - Reuses an old program structure. 5616 * @param configFileParsingDiagnostics - error during config file parsing 5617 * @returns A 'Program' object. 5618 */ 5619 export function createProgram(rootNames: readonly string[], options: CompilerOptions, host?: CompilerHost, oldProgram?: Program, configFileParsingDiagnostics?: readonly Diagnostic[]): Program; 5620 /** @deprecated */ export interface ResolveProjectReferencePathHost { 5621 fileExists(fileName: string): boolean; 5622 } 5623 /** 5624 * Returns the target config filename of a project reference. 5625 * Note: The file might not exist. 5626 */ 5627 export function resolveProjectReferencePath(ref: ProjectReference): ResolvedConfigFileName; 5628 /** @deprecated */ export function resolveProjectReferencePath(host: ResolveProjectReferencePathHost, ref: ProjectReference): ResolvedConfigFileName; 5629 export {}; 5630} 5631declare namespace ts { 5632 interface EmitOutput { 5633 outputFiles: OutputFile[]; 5634 emitSkipped: boolean; 5635 } 5636 interface OutputFile { 5637 name: string; 5638 writeByteOrderMark: boolean; 5639 text: string; 5640 } 5641} 5642declare namespace ts { 5643 type AffectedFileResult<T> = { 5644 result: T; 5645 affected: SourceFile | Program; 5646 } | undefined; 5647 interface BuilderProgramHost { 5648 /** 5649 * return true if file names are treated with case sensitivity 5650 */ 5651 useCaseSensitiveFileNames(): boolean; 5652 /** 5653 * If provided this would be used this hash instead of actual file shape text for detecting changes 5654 */ 5655 createHash?: (data: string) => string; 5656 /** 5657 * When emit or emitNextAffectedFile are called without writeFile, 5658 * this callback if present would be used to write files 5659 */ 5660 writeFile?: WriteFileCallback; 5661 } 5662 /** 5663 * Builder to manage the program state changes 5664 */ 5665 interface BuilderProgram { 5666 /** 5667 * Returns current program 5668 */ 5669 getProgram(): Program; 5670 /** 5671 * Get compiler options of the program 5672 */ 5673 getCompilerOptions(): CompilerOptions; 5674 /** 5675 * Get the source file in the program with file name 5676 */ 5677 getSourceFile(fileName: string): SourceFile | undefined; 5678 /** 5679 * Get a list of files in the program 5680 */ 5681 getSourceFiles(): readonly SourceFile[]; 5682 /** 5683 * Get the diagnostics for compiler options 5684 */ 5685 getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5686 /** 5687 * Get the diagnostics that dont belong to any file 5688 */ 5689 getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5690 /** 5691 * Get the diagnostics from config file parsing 5692 */ 5693 getConfigFileParsingDiagnostics(): readonly Diagnostic[]; 5694 /** 5695 * Get the syntax diagnostics, for all source files if source file is not supplied 5696 */ 5697 getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5698 /** 5699 * Get the declaration diagnostics, for all source files if source file is not supplied 5700 */ 5701 getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[]; 5702 /** 5703 * Get all the dependencies of the file 5704 */ 5705 getAllDependencies(sourceFile: SourceFile): readonly string[]; 5706 /** 5707 * Gets the semantic diagnostics from the program corresponding to this state of file (if provided) or whole program 5708 * The semantic diagnostics are cached and managed here 5709 * Note that it is assumed that when asked about semantic diagnostics through this API, 5710 * the file has been taken out of affected files so it is safe to use cache or get from program and cache the diagnostics 5711 * In case of SemanticDiagnosticsBuilderProgram if the source file is not provided, 5712 * it will iterate through all the affected files, to ensure that cache stays valid and yet provide a way to get all semantic diagnostics 5713 */ 5714 getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5715 /** 5716 * Emits the JavaScript and declaration files. 5717 * When targetSource file is specified, emits the files corresponding to that source file, 5718 * otherwise for the whole program. 5719 * In case of EmitAndSemanticDiagnosticsBuilderProgram, when targetSourceFile is specified, 5720 * it is assumed that that file is handled from affected file list. If targetSourceFile is not specified, 5721 * it will only emit all the affected files instead of whole program 5722 * 5723 * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host 5724 * in that order would be used to write the files 5725 */ 5726 emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult; 5727 /** 5728 * Get the current directory of the program 5729 */ 5730 getCurrentDirectory(): string; 5731 isFileUpdateInConstEnumCache?(sourceFile: SourceFile): boolean; 5732 builderProgramForLinter?: EmitAndSemanticDiagnosticsBuilderProgram; 5733 } 5734 /** 5735 * The builder that caches the semantic diagnostics for the program and handles the changed files and affected files 5736 */ 5737 interface SemanticDiagnosticsBuilderProgram extends BuilderProgram { 5738 /** 5739 * Gets the semantic diagnostics from the program for the next affected file and caches it 5740 * Returns undefined if the iteration is complete 5741 */ 5742 getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<readonly Diagnostic[]>; 5743 } 5744 /** 5745 * The builder that can handle the changes in program and iterate through changed file to emit the files 5746 * The semantic diagnostics are cached per file and managed by clearing for the changed/affected files 5747 */ 5748 interface EmitAndSemanticDiagnosticsBuilderProgram extends SemanticDiagnosticsBuilderProgram { 5749 /** 5750 * Emits the next affected file's emit result (EmitResult and sourceFiles emitted) or returns undefined if iteration is complete 5751 * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host 5752 * in that order would be used to write the files 5753 */ 5754 emitNextAffectedFile(writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): AffectedFileResult<EmitResult>; 5755 } 5756 /** 5757 * Create the builder to manage semantic diagnostics and cache them 5758 */ 5759 function createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): SemanticDiagnosticsBuilderProgram; 5760 function createSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): SemanticDiagnosticsBuilderProgram; 5761 /** 5762 * Create the builder that can handle the changes in program and iterate through changed files 5763 * to emit the those files and manage semantic diagnostics cache as well 5764 */ 5765 function createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): EmitAndSemanticDiagnosticsBuilderProgram; 5766 function createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): EmitAndSemanticDiagnosticsBuilderProgram; 5767 function createEmitAndSemanticDiagnosticsBuilderProgramForArkTs(newProgramOrRootNames: Program | readonly string[] | undefined, hostOrOptions: BuilderProgramHost | CompilerOptions | undefined, oldProgramOrHost?: CompilerHost | EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnosticsOrOldProgram?: readonly Diagnostic[] | EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): EmitAndSemanticDiagnosticsBuilderProgram; 5768 /** 5769 * Creates a builder thats just abstraction over program and can be used with watch 5770 */ 5771 function createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): BuilderProgram; 5772 function createAbstractBuilder(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): BuilderProgram; 5773} 5774declare namespace ts { 5775 interface ReadBuildProgramHost { 5776 useCaseSensitiveFileNames(): boolean; 5777 getCurrentDirectory(): string; 5778 readFile(fileName: string): string | undefined; 5779 getLastCompiledProgram?(): Program; 5780 } 5781 function readBuilderProgram(compilerOptions: CompilerOptions, host: ReadBuildProgramHost, isForLinter?: boolean): EmitAndSemanticDiagnosticsBuilderProgram | undefined; 5782 function createIncrementalCompilerHost(options: CompilerOptions, system?: System): CompilerHost; 5783 interface IncrementalProgramOptions<T extends BuilderProgram> { 5784 rootNames: readonly string[]; 5785 options: CompilerOptions; 5786 configFileParsingDiagnostics?: readonly Diagnostic[]; 5787 projectReferences?: readonly ProjectReference[]; 5788 host?: CompilerHost; 5789 createProgram?: CreateProgram<T>; 5790 } 5791 function createIncrementalProgram<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>({ rootNames, options, configFileParsingDiagnostics, projectReferences, host, createProgram }: IncrementalProgramOptions<T>): T; 5792 function createIncrementalProgramForArkTs({ rootNames, options, configFileParsingDiagnostics, projectReferences, host }: IncrementalProgramOptions<EmitAndSemanticDiagnosticsBuilderProgram>): EmitAndSemanticDiagnosticsBuilderProgram; 5793 type WatchStatusReporter = (diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number) => void; 5794 /** Create the program with rootNames and options, if they are undefined, oldProgram and new configFile diagnostics create new program */ 5795 type CreateProgram<T extends BuilderProgram> = (rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: T, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[] | undefined) => T; 5796 /** Host that has watch functionality used in --watch mode */ 5797 interface WatchHost { 5798 /** If provided, called with Diagnostic message that informs about change in watch status */ 5799 onWatchStatusChange?(diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number): void; 5800 /** Used to watch changes in source files, missing files needed to update the program or config file */ 5801 watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher; 5802 /** Used to watch resolved module's failed lookup locations, config file specs, type roots where auto type reference directives are added */ 5803 watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher; 5804 /** If provided, will be used to set delayed compilation, so that multiple changes in short span are compiled together */ 5805 setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; 5806 /** If provided, will be used to reset existing delayed compilation */ 5807 clearTimeout?(timeoutId: any): void; 5808 } 5809 interface ProgramHost<T extends BuilderProgram> { 5810 /** 5811 * Used to create the program when need for program creation or recreation detected 5812 */ 5813 createProgram: CreateProgram<T>; 5814 useCaseSensitiveFileNames(): boolean; 5815 getNewLine(): string; 5816 getCurrentDirectory(): string; 5817 getDefaultLibFileName(options: CompilerOptions): string; 5818 getDefaultLibLocation?(): string; 5819 createHash?(data: string): string; 5820 /** 5821 * Use to check file presence for source files and 5822 * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well 5823 */ 5824 fileExists(path: string): boolean; 5825 /** 5826 * Use to read file text for source files and 5827 * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well 5828 */ 5829 readFile(path: string, encoding?: string): string | undefined; 5830 /** If provided, used for module resolution as well as to handle directory structure */ 5831 directoryExists?(path: string): boolean; 5832 /** If provided, used in resolutions as well as handling directory structure */ 5833 getDirectories?(path: string): string[]; 5834 /** If provided, used to cache and handle directory structure modifications */ 5835 readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 5836 /** Symbol links resolution */ 5837 realpath?(path: string): string; 5838 /** If provided would be used to write log about compilation */ 5839 trace?(s: string): void; 5840 /** If provided is used to get the environment variable */ 5841 getEnvironmentVariable?(name: string): string | undefined; 5842 /** If provided, used to resolve the module names, otherwise typescript's default module resolution */ 5843 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 5844 /** If provided, used to resolve type reference directives, otherwise typescript's default resolution */ 5845 resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 5846 /** If provided along with custom resolveModuleNames or resolveTypeReferenceDirectives, used to determine if unchanged file path needs to re-resolve modules/type reference directives */ 5847 hasInvalidatedResolutions?(filePath: Path): boolean; 5848 /** 5849 * Returns the module resolution cache used by a provided `resolveModuleNames` implementation so that any non-name module resolution operations (eg, package.json lookup) can reuse it 5850 */ 5851 getModuleResolutionCache?(): ModuleResolutionCache | undefined; 5852 } 5853 interface WatchCompilerHost<T extends BuilderProgram> extends ProgramHost<T>, WatchHost { 5854 /** Instead of using output d.ts file from project reference, use its source file */ 5855 useSourceOfProjectReferenceRedirect?(): boolean; 5856 /** If provided, use this method to get parsed command lines for referenced projects */ 5857 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 5858 /** If provided, callback to invoke after every new program creation */ 5859 afterProgramCreate?(program: T): void; 5860 } 5861 /** 5862 * Host to create watch with root files and options 5863 */ 5864 interface WatchCompilerHostOfFilesAndCompilerOptions<T extends BuilderProgram> extends WatchCompilerHost<T> { 5865 /** root files to use to generate program */ 5866 rootFiles: string[]; 5867 /** Compiler options */ 5868 options: CompilerOptions; 5869 watchOptions?: WatchOptions; 5870 /** Project References */ 5871 projectReferences?: readonly ProjectReference[]; 5872 } 5873 /** 5874 * Host to create watch with config file 5875 */ 5876 interface WatchCompilerHostOfConfigFile<T extends BuilderProgram> extends WatchCompilerHost<T>, ConfigFileDiagnosticsReporter { 5877 /** Name of the config file to compile */ 5878 configFileName: string; 5879 /** Options to extend */ 5880 optionsToExtend?: CompilerOptions; 5881 watchOptionsToExtend?: WatchOptions; 5882 extraFileExtensions?: readonly FileExtensionInfo[]; 5883 /** 5884 * Used to generate source file names from the config file and its include, exclude, files rules 5885 * and also to cache the directory stucture 5886 */ 5887 readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 5888 } 5889 interface Watch<T> { 5890 /** Synchronize with host and get updated program */ 5891 getProgram(): T; 5892 /** Closes the watch */ 5893 close(): void; 5894 } 5895 /** 5896 * Creates the watch what generates program using the config file 5897 */ 5898 interface WatchOfConfigFile<T> extends Watch<T> { 5899 } 5900 /** 5901 * Creates the watch that generates program using the root files and compiler options 5902 */ 5903 interface WatchOfFilesAndCompilerOptions<T> extends Watch<T> { 5904 /** Updates the root files in the program, only if this is not config file compilation */ 5905 updateRootFileNames(fileNames: string[]): void; 5906 } 5907 /** 5908 * Create the watch compiler host for either configFile or fileNames and its options 5909 */ 5910 function createWatchCompilerHost<T extends BuilderProgram>(configFileName: string, optionsToExtend: CompilerOptions | undefined, system: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter, watchOptionsToExtend?: WatchOptions, extraFileExtensions?: readonly FileExtensionInfo[]): WatchCompilerHostOfConfigFile<T>; 5911 function createWatchCompilerHost<T extends BuilderProgram>(rootFiles: string[], options: CompilerOptions, system: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter, projectReferences?: readonly ProjectReference[], watchOptions?: WatchOptions): WatchCompilerHostOfFilesAndCompilerOptions<T>; 5912 /** 5913 * Creates the watch from the host for root files and compiler options 5914 */ 5915 function createWatchProgram<T extends BuilderProgram>(host: WatchCompilerHostOfFilesAndCompilerOptions<T>): WatchOfFilesAndCompilerOptions<T>; 5916 /** 5917 * Creates the watch from the host for config file 5918 */ 5919 function createWatchProgram<T extends BuilderProgram>(host: WatchCompilerHostOfConfigFile<T>): WatchOfConfigFile<T>; 5920} 5921declare namespace ts { 5922 interface BuildOptions { 5923 dry?: boolean; 5924 force?: boolean; 5925 verbose?: boolean; 5926 incremental?: boolean; 5927 assumeChangesOnlyAffectDirectDependencies?: boolean; 5928 traceResolution?: boolean; 5929 [option: string]: CompilerOptionsValue | undefined; 5930 } 5931 type ReportEmitErrorSummary = (errorCount: number, filesInError: (ReportFileInError | undefined)[]) => void; 5932 interface ReportFileInError { 5933 fileName: string; 5934 line: number; 5935 } 5936 interface SolutionBuilderHostBase<T extends BuilderProgram> extends ProgramHost<T> { 5937 createDirectory?(path: string): void; 5938 /** 5939 * Should provide create directory and writeFile if done of invalidatedProjects is not invoked with 5940 * writeFileCallback 5941 */ 5942 writeFile?(path: string, data: string, writeByteOrderMark?: boolean): void; 5943 getCustomTransformers?: (project: string) => CustomTransformers | undefined; 5944 getModifiedTime(fileName: string): Date | undefined; 5945 setModifiedTime(fileName: string, date: Date): void; 5946 deleteFile(fileName: string): void; 5947 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 5948 reportDiagnostic: DiagnosticReporter; 5949 reportSolutionBuilderStatus: DiagnosticReporter; 5950 afterProgramEmitAndDiagnostics?(program: T): void; 5951 } 5952 interface SolutionBuilderHost<T extends BuilderProgram> extends SolutionBuilderHostBase<T> { 5953 reportErrorSummary?: ReportEmitErrorSummary; 5954 } 5955 interface SolutionBuilderWithWatchHost<T extends BuilderProgram> extends SolutionBuilderHostBase<T>, WatchHost { 5956 } 5957 interface SolutionBuilder<T extends BuilderProgram> { 5958 build(project?: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus; 5959 clean(project?: string): ExitStatus; 5960 buildReferences(project: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus; 5961 cleanReferences(project?: string): ExitStatus; 5962 getNextInvalidatedProject(cancellationToken?: CancellationToken): InvalidatedProject<T> | undefined; 5963 } 5964 /** 5965 * Create a function that reports watch status by writing to the system and handles the formating of the diagnostic 5966 */ 5967 function createBuilderStatusReporter(system: System, pretty?: boolean): DiagnosticReporter; 5968 function createSolutionBuilderHost<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>(system?: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportErrorSummary?: ReportEmitErrorSummary): SolutionBuilderHost<T>; 5969 function createSolutionBuilderWithWatchHost<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>(system?: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter): SolutionBuilderWithWatchHost<T>; 5970 function createSolutionBuilder<T extends BuilderProgram>(host: SolutionBuilderHost<T>, rootNames: readonly string[], defaultOptions: BuildOptions): SolutionBuilder<T>; 5971 function createSolutionBuilderWithWatch<T extends BuilderProgram>(host: SolutionBuilderWithWatchHost<T>, rootNames: readonly string[], defaultOptions: BuildOptions, baseWatchOptions?: WatchOptions): SolutionBuilder<T>; 5972 enum InvalidatedProjectKind { 5973 Build = 0, 5974 UpdateBundle = 1, 5975 UpdateOutputFileStamps = 2 5976 } 5977 interface InvalidatedProjectBase { 5978 readonly kind: InvalidatedProjectKind; 5979 readonly project: ResolvedConfigFileName; 5980 /** 5981 * To dispose this project and ensure that all the necessary actions are taken and state is updated accordingly 5982 */ 5983 done(cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, customTransformers?: CustomTransformers): ExitStatus; 5984 getCompilerOptions(): CompilerOptions; 5985 getCurrentDirectory(): string; 5986 } 5987 interface UpdateOutputFileStampsProject extends InvalidatedProjectBase { 5988 readonly kind: InvalidatedProjectKind.UpdateOutputFileStamps; 5989 updateOutputFileStatmps(): void; 5990 } 5991 interface BuildInvalidedProject<T extends BuilderProgram> extends InvalidatedProjectBase { 5992 readonly kind: InvalidatedProjectKind.Build; 5993 getBuilderProgram(): T | undefined; 5994 getProgram(): Program | undefined; 5995 getSourceFile(fileName: string): SourceFile | undefined; 5996 getSourceFiles(): readonly SourceFile[]; 5997 getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5998 getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5999 getConfigFileParsingDiagnostics(): readonly Diagnostic[]; 6000 getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 6001 getAllDependencies(sourceFile: SourceFile): readonly string[]; 6002 getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 6003 getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<readonly Diagnostic[]>; 6004 emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult | undefined; 6005 } 6006 interface UpdateBundleProject<T extends BuilderProgram> extends InvalidatedProjectBase { 6007 readonly kind: InvalidatedProjectKind.UpdateBundle; 6008 emit(writeFile?: WriteFileCallback, customTransformers?: CustomTransformers): EmitResult | BuildInvalidedProject<T> | undefined; 6009 } 6010 type InvalidatedProject<T extends BuilderProgram> = UpdateOutputFileStampsProject | BuildInvalidedProject<T> | UpdateBundleProject<T>; 6011} 6012declare namespace ts.server { 6013 type ActionSet = "action::set"; 6014 type ActionInvalidate = "action::invalidate"; 6015 type ActionPackageInstalled = "action::packageInstalled"; 6016 type EventTypesRegistry = "event::typesRegistry"; 6017 type EventBeginInstallTypes = "event::beginInstallTypes"; 6018 type EventEndInstallTypes = "event::endInstallTypes"; 6019 type EventInitializationFailed = "event::initializationFailed"; 6020} 6021declare namespace ts.server { 6022 interface TypingInstallerResponse { 6023 readonly kind: ActionSet | ActionInvalidate | EventTypesRegistry | ActionPackageInstalled | EventBeginInstallTypes | EventEndInstallTypes | EventInitializationFailed; 6024 } 6025 interface TypingInstallerRequestWithProjectName { 6026 readonly projectName: string; 6027 } 6028 interface DiscoverTypings extends TypingInstallerRequestWithProjectName { 6029 readonly fileNames: string[]; 6030 readonly projectRootPath: Path; 6031 readonly compilerOptions: CompilerOptions; 6032 readonly watchOptions?: WatchOptions; 6033 readonly typeAcquisition: TypeAcquisition; 6034 readonly unresolvedImports: SortedReadonlyArray<string>; 6035 readonly cachePath?: string; 6036 readonly kind: "discover"; 6037 } 6038 interface CloseProject extends TypingInstallerRequestWithProjectName { 6039 readonly kind: "closeProject"; 6040 } 6041 interface TypesRegistryRequest { 6042 readonly kind: "typesRegistry"; 6043 } 6044 interface InstallPackageRequest extends TypingInstallerRequestWithProjectName { 6045 readonly kind: "installPackage"; 6046 readonly fileName: Path; 6047 readonly packageName: string; 6048 readonly projectRootPath: Path; 6049 } 6050 interface PackageInstalledResponse extends ProjectResponse { 6051 readonly kind: ActionPackageInstalled; 6052 readonly success: boolean; 6053 readonly message: string; 6054 } 6055 interface InitializationFailedResponse extends TypingInstallerResponse { 6056 readonly kind: EventInitializationFailed; 6057 readonly message: string; 6058 readonly stack?: string; 6059 } 6060 interface ProjectResponse extends TypingInstallerResponse { 6061 readonly projectName: string; 6062 } 6063 interface InvalidateCachedTypings extends ProjectResponse { 6064 readonly kind: ActionInvalidate; 6065 } 6066 interface InstallTypes extends ProjectResponse { 6067 readonly kind: EventBeginInstallTypes | EventEndInstallTypes; 6068 readonly eventId: number; 6069 readonly typingsInstallerVersion: string; 6070 readonly packagesToInstall: readonly string[]; 6071 } 6072 interface BeginInstallTypes extends InstallTypes { 6073 readonly kind: EventBeginInstallTypes; 6074 } 6075 interface EndInstallTypes extends InstallTypes { 6076 readonly kind: EventEndInstallTypes; 6077 readonly installSuccess: boolean; 6078 } 6079 interface SetTypings extends ProjectResponse { 6080 readonly typeAcquisition: TypeAcquisition; 6081 readonly compilerOptions: CompilerOptions; 6082 readonly typings: string[]; 6083 readonly unresolvedImports: SortedReadonlyArray<string>; 6084 readonly kind: ActionSet; 6085 } 6086} 6087declare namespace ts { 6088 interface Node { 6089 getSourceFile(): SourceFile; 6090 getChildCount(sourceFile?: SourceFile): number; 6091 getChildAt(index: number, sourceFile?: SourceFile): Node; 6092 getChildren(sourceFile?: SourceFile): Node[]; 6093 getStart(sourceFile?: SourceFile, includeJsDocComment?: boolean): number; 6094 getFullStart(): number; 6095 getEnd(): number; 6096 getWidth(sourceFile?: SourceFileLike): number; 6097 getFullWidth(): number; 6098 getLeadingTriviaWidth(sourceFile?: SourceFile): number; 6099 getFullText(sourceFile?: SourceFile): string; 6100 getText(sourceFile?: SourceFile): string; 6101 getFirstToken(sourceFile?: SourceFile): Node | undefined; 6102 getLastToken(sourceFile?: SourceFile): Node | undefined; 6103 forEachChild<T>(cbNode: (node: Node) => T | undefined, cbNodeArray?: (nodes: NodeArray<Node>) => T | undefined): T | undefined; 6104 } 6105 interface Identifier { 6106 readonly text: string; 6107 } 6108 interface PrivateIdentifier { 6109 readonly text: string; 6110 } 6111 interface Symbol { 6112 readonly name: string; 6113 getFlags(): SymbolFlags; 6114 getEscapedName(): __String; 6115 getName(): string; 6116 getDeclarations(): Declaration[] | undefined; 6117 getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; 6118 getJsDocTags(checker?: TypeChecker): JSDocTagInfo[]; 6119 } 6120 interface Type { 6121 getFlags(): TypeFlags; 6122 getSymbol(): Symbol | undefined; 6123 getProperties(): Symbol[]; 6124 getProperty(propertyName: string): Symbol | undefined; 6125 getApparentProperties(): Symbol[]; 6126 getCallSignatures(): readonly Signature[]; 6127 getConstructSignatures(): readonly Signature[]; 6128 getStringIndexType(): Type | undefined; 6129 getNumberIndexType(): Type | undefined; 6130 getBaseTypes(): BaseType[] | undefined; 6131 getNonNullableType(): Type; 6132 getConstraint(): Type | undefined; 6133 getDefault(): Type | undefined; 6134 isUnion(): this is UnionType; 6135 isIntersection(): this is IntersectionType; 6136 isUnionOrIntersection(): this is UnionOrIntersectionType; 6137 isLiteral(): this is LiteralType; 6138 isStringLiteral(): this is StringLiteralType; 6139 isNumberLiteral(): this is NumberLiteralType; 6140 isTypeParameter(): this is TypeParameter; 6141 isClassOrInterface(): this is InterfaceType; 6142 isClass(): this is InterfaceType; 6143 isIndexType(): this is IndexType; 6144 } 6145 interface TypeReference { 6146 typeArguments?: readonly Type[]; 6147 } 6148 interface Signature { 6149 getDeclaration(): SignatureDeclaration; 6150 getTypeParameters(): TypeParameter[] | undefined; 6151 getParameters(): Symbol[]; 6152 getTypeParameterAtPosition(pos: number): Type; 6153 getReturnType(): Type; 6154 getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; 6155 getJsDocTags(): JSDocTagInfo[]; 6156 } 6157 interface SourceFile { 6158 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6159 getLineEndOfPosition(pos: number): number; 6160 getLineStarts(): readonly number[]; 6161 getPositionOfLineAndCharacter(line: number, character: number): number; 6162 update(newText: string, textChangeRange: TextChangeRange): SourceFile; 6163 } 6164 interface SourceFileLike { 6165 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6166 } 6167 interface SourceMapSource { 6168 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6169 } 6170 /** 6171 * Represents an immutable snapshot of a script at a specified time.Once acquired, the 6172 * snapshot is observably immutable. i.e. the same calls with the same parameters will return 6173 * the same values. 6174 */ 6175 interface IScriptSnapshot { 6176 /** Gets a portion of the script snapshot specified by [start, end). */ 6177 getText(start: number, end: number): string; 6178 /** Gets the length of this script snapshot. */ 6179 getLength(): number; 6180 /** 6181 * Gets the TextChangeRange that describe how the text changed between this text and 6182 * an older version. This information is used by the incremental parser to determine 6183 * what sections of the script need to be re-parsed. 'undefined' can be returned if the 6184 * change range cannot be determined. However, in that case, incremental parsing will 6185 * not happen and the entire document will be re - parsed. 6186 */ 6187 getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange | undefined; 6188 /** Releases all resources held by this script snapshot */ 6189 dispose?(): void; 6190 } 6191 namespace ScriptSnapshot { 6192 function fromString(text: string): IScriptSnapshot; 6193 } 6194 interface PreProcessedFileInfo { 6195 referencedFiles: FileReference[]; 6196 typeReferenceDirectives: FileReference[]; 6197 libReferenceDirectives: FileReference[]; 6198 importedFiles: FileReference[]; 6199 ambientExternalModules?: string[]; 6200 isLibFile: boolean; 6201 } 6202 interface HostCancellationToken { 6203 isCancellationRequested(): boolean; 6204 } 6205 interface InstallPackageOptions { 6206 fileName: Path; 6207 packageName: string; 6208 } 6209 interface PerformanceEvent { 6210 kind: "UpdateGraph" | "CreatePackageJsonAutoImportProvider"; 6211 durationMs: number; 6212 } 6213 enum LanguageServiceMode { 6214 Semantic = 0, 6215 PartialSemantic = 1, 6216 Syntactic = 2 6217 } 6218 interface IncompleteCompletionsCache { 6219 get(): CompletionInfo | undefined; 6220 set(response: CompletionInfo): void; 6221 clear(): void; 6222 } 6223 interface LanguageServiceHost extends GetEffectiveTypeRootsHost, MinimalResolutionCacheHost { 6224 getCompilationSettings(): CompilerOptions; 6225 getNewLine?(): string; 6226 getProjectVersion?(): string; 6227 getScriptFileNames(): string[]; 6228 getScriptKind?(fileName: string): ScriptKind; 6229 getScriptVersion(fileName: string): string; 6230 getScriptSnapshot(fileName: string): IScriptSnapshot | undefined; 6231 getProjectReferences?(): readonly ProjectReference[] | undefined; 6232 getLocalizedDiagnosticMessages?(): any; 6233 getCancellationToken?(): HostCancellationToken; 6234 getCurrentDirectory(): string; 6235 getDefaultLibFileName(options: CompilerOptions): string; 6236 log?(s: string): void; 6237 trace?(s: string): void; 6238 error?(s: string): void; 6239 useCaseSensitiveFileNames?(): boolean; 6240 readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 6241 realpath?(path: string): string; 6242 readFile(path: string, encoding?: string): string | undefined; 6243 fileExists(path: string): boolean; 6244 getTypeRootsVersion?(): number; 6245 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 6246 getResolvedModuleWithFailedLookupLocationsFromCache?(modulename: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; 6247 resolveTypeReferenceDirectives?(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 6248 getDirectories?(directoryName: string): string[]; 6249 /** 6250 * Gets a set of custom transformers to use during emit. 6251 */ 6252 getCustomTransformers?(): CustomTransformers | undefined; 6253 isKnownTypesPackageName?(name: string): boolean; 6254 installPackage?(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>; 6255 writeFile?(fileName: string, content: string): void; 6256 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 6257 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 6258 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 6259 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 6260 shouldCompletionSortCustom?: boolean; 6261 uiProps?: string[]; 6262 clearProps?(): void; 6263 } 6264 type WithMetadata<T> = T & { 6265 metadata?: unknown; 6266 }; 6267 enum SemanticClassificationFormat { 6268 Original = "original", 6269 TwentyTwenty = "2020" 6270 } 6271 interface LanguageService { 6272 /** This is used as a part of restarting the language service. */ 6273 cleanupSemanticCache(): void; 6274 /** 6275 * Gets errors indicating invalid syntax in a file. 6276 * 6277 * In English, "this cdeo have, erorrs" is syntactically invalid because it has typos, 6278 * grammatical errors, and misplaced punctuation. Likewise, examples of syntax 6279 * errors in TypeScript are missing parentheses in an `if` statement, mismatched 6280 * curly braces, and using a reserved keyword as a variable name. 6281 * 6282 * These diagnostics are inexpensive to compute and don't require knowledge of 6283 * other files. Note that a non-empty result increases the likelihood of false positives 6284 * from `getSemanticDiagnostics`. 6285 * 6286 * While these represent the majority of syntax-related diagnostics, there are some 6287 * that require the type system, which will be present in `getSemanticDiagnostics`. 6288 * 6289 * @param fileName A path to the file you want syntactic diagnostics for 6290 */ 6291 getSyntacticDiagnostics(fileName: string): DiagnosticWithLocation[]; 6292 /** 6293 * Gets warnings or errors indicating type system issues in a given file. 6294 * Requesting semantic diagnostics may start up the type system and 6295 * run deferred work, so the first call may take longer than subsequent calls. 6296 * 6297 * Unlike the other get*Diagnostics functions, these diagnostics can potentially not 6298 * include a reference to a source file. Specifically, the first time this is called, 6299 * it will return global diagnostics with no associated location. 6300 * 6301 * To contrast the differences between semantic and syntactic diagnostics, consider the 6302 * sentence: "The sun is green." is syntactically correct; those are real English words with 6303 * correct sentence structure. However, it is semantically invalid, because it is not true. 6304 * 6305 * @param fileName A path to the file you want semantic diagnostics for 6306 */ 6307 getSemanticDiagnostics(fileName: string): Diagnostic[]; 6308 /** 6309 * Gets suggestion diagnostics for a specific file. These diagnostics tend to 6310 * proactively suggest refactors, as opposed to diagnostics that indicate 6311 * potentially incorrect runtime behavior. 6312 * 6313 * @param fileName A path to the file you want semantic diagnostics for 6314 */ 6315 getSuggestionDiagnostics(fileName: string): DiagnosticWithLocation[]; 6316 /** 6317 * Gets global diagnostics related to the program configuration and compiler options. 6318 */ 6319 getCompilerOptionsDiagnostics(): Diagnostic[]; 6320 /** @deprecated Use getEncodedSyntacticClassifications instead. */ 6321 getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; 6322 getSyntacticClassifications(fileName: string, span: TextSpan, format: SemanticClassificationFormat): ClassifiedSpan[] | ClassifiedSpan2020[]; 6323 /** @deprecated Use getEncodedSemanticClassifications instead. */ 6324 getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; 6325 getSemanticClassifications(fileName: string, span: TextSpan, format: SemanticClassificationFormat): ClassifiedSpan[] | ClassifiedSpan2020[]; 6326 /** Encoded as triples of [start, length, ClassificationType]. */ 6327 getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications; 6328 /** 6329 * Gets semantic highlights information for a particular file. Has two formats, an older 6330 * version used by VS and a format used by VS Code. 6331 * 6332 * @param fileName The path to the file 6333 * @param position A text span to return results within 6334 * @param format Which format to use, defaults to "original" 6335 * @returns a number array encoded as triples of [start, length, ClassificationType, ...]. 6336 */ 6337 getEncodedSemanticClassifications(fileName: string, span: TextSpan, format?: SemanticClassificationFormat): Classifications; 6338 /** 6339 * Gets completion entries at a particular position in a file. 6340 * 6341 * @param fileName The path to the file 6342 * @param position A zero-based index of the character where you want the entries 6343 * @param options An object describing how the request was triggered and what kinds 6344 * of code actions can be returned with the completions. 6345 * @param formattingSettings settings needed for calling formatting functions. 6346 */ 6347 getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined, formattingSettings?: FormatCodeSettings): WithMetadata<CompletionInfo> | undefined; 6348 /** 6349 * Gets the extended details for a completion entry retrieved from `getCompletionsAtPosition`. 6350 * 6351 * @param fileName The path to the file 6352 * @param position A zero based index of the character where you want the entries 6353 * @param entryName The `name` from an existing completion which came from `getCompletionsAtPosition` 6354 * @param formatOptions How should code samples in the completions be formatted, can be undefined for backwards compatibility 6355 * @param source `source` property from the completion entry 6356 * @param preferences User settings, can be undefined for backwards compatibility 6357 * @param data `data` property from the completion entry 6358 */ 6359 getCompletionEntryDetails(fileName: string, position: number, entryName: string, formatOptions: FormatCodeOptions | FormatCodeSettings | undefined, source: string | undefined, preferences: UserPreferences | undefined, data: CompletionEntryData | undefined): CompletionEntryDetails | undefined; 6360 getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): Symbol | undefined; 6361 /** 6362 * Gets semantic information about the identifier at a particular position in a 6363 * file. Quick info is what you typically see when you hover in an editor. 6364 * 6365 * @param fileName The path to the file 6366 * @param position A zero-based index of the character where you want the quick info 6367 */ 6368 getQuickInfoAtPosition(fileName: string, position: number): QuickInfo | undefined; 6369 getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan | undefined; 6370 getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan | undefined; 6371 getSignatureHelpItems(fileName: string, position: number, options: SignatureHelpItemsOptions | undefined): SignatureHelpItems | undefined; 6372 getRenameInfo(fileName: string, position: number, preferences: UserPreferences): RenameInfo; 6373 /** @deprecated Use the signature with `UserPreferences` instead. */ 6374 getRenameInfo(fileName: string, position: number, options?: RenameInfoOptions): RenameInfo; 6375 findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename?: boolean): readonly RenameLocation[] | undefined; 6376 getSmartSelectionRange(fileName: string, position: number): SelectionRange; 6377 getDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined; 6378 getDefinitionAndBoundSpan(fileName: string, position: number): DefinitionInfoAndBoundSpan | undefined; 6379 getTypeDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined; 6380 getImplementationAtPosition(fileName: string, position: number): readonly ImplementationLocation[] | undefined; 6381 getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[] | undefined; 6382 findReferences(fileName: string, position: number): ReferencedSymbol[] | undefined; 6383 getDocumentHighlights(fileName: string, position: number, filesToSearch: string[]): DocumentHighlights[] | undefined; 6384 getFileReferences(fileName: string): ReferenceEntry[]; 6385 /** @deprecated */ 6386 getOccurrencesAtPosition(fileName: string, position: number): readonly ReferenceEntry[] | undefined; 6387 getNavigateToItems(searchValue: string, maxResultCount?: number, fileName?: string, excludeDtsFiles?: boolean): NavigateToItem[]; 6388 getNavigationBarItems(fileName: string): NavigationBarItem[]; 6389 getNavigationTree(fileName: string): NavigationTree; 6390 prepareCallHierarchy(fileName: string, position: number): CallHierarchyItem | CallHierarchyItem[] | undefined; 6391 provideCallHierarchyIncomingCalls(fileName: string, position: number): CallHierarchyIncomingCall[]; 6392 provideCallHierarchyOutgoingCalls(fileName: string, position: number): CallHierarchyOutgoingCall[]; 6393 provideInlayHints(fileName: string, span: TextSpan, preferences: UserPreferences | undefined): InlayHint[]; 6394 getOutliningSpans(fileName: string): OutliningSpan[]; 6395 getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; 6396 getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; 6397 getIndentationAtPosition(fileName: string, position: number, options: EditorOptions | EditorSettings): number; 6398 getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6399 getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6400 getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6401 getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; 6402 isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; 6403 /** 6404 * This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag. 6405 * Editors should call this after `>` is typed. 6406 */ 6407 getJsxClosingTagAtPosition(fileName: string, position: number): JsxClosingTagInfo | undefined; 6408 getSpanOfEnclosingComment(fileName: string, position: number, onlyMultiLine: boolean): TextSpan | undefined; 6409 toLineColumnOffset?(fileName: string, position: number): LineAndCharacter; 6410 getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: readonly number[], formatOptions: FormatCodeSettings, preferences: UserPreferences): readonly CodeFixAction[]; 6411 getCombinedCodeFix(scope: CombinedCodeFixScope, fixId: {}, formatOptions: FormatCodeSettings, preferences: UserPreferences): CombinedCodeActions; 6412 applyCodeActionCommand(action: CodeActionCommand, formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult>; 6413 applyCodeActionCommand(action: CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult[]>; 6414 applyCodeActionCommand(action: CodeActionCommand | CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>; 6415 /** @deprecated `fileName` will be ignored */ 6416 applyCodeActionCommand(fileName: string, action: CodeActionCommand): Promise<ApplyCodeActionCommandResult>; 6417 /** @deprecated `fileName` will be ignored */ 6418 applyCodeActionCommand(fileName: string, action: CodeActionCommand[]): Promise<ApplyCodeActionCommandResult[]>; 6419 /** @deprecated `fileName` will be ignored */ 6420 applyCodeActionCommand(fileName: string, action: CodeActionCommand | CodeActionCommand[]): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>; 6421 getApplicableRefactors(fileName: string, positionOrRange: number | TextRange, preferences: UserPreferences | undefined, triggerReason?: RefactorTriggerReason, kind?: string): ApplicableRefactorInfo[]; 6422 getEditsForRefactor(fileName: string, formatOptions: FormatCodeSettings, positionOrRange: number | TextRange, refactorName: string, actionName: string, preferences: UserPreferences | undefined): RefactorEditInfo | undefined; 6423 organizeImports(args: OrganizeImportsArgs, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[]; 6424 getEditsForFileRename(oldFilePath: string, newFilePath: string, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[]; 6425 getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean, forceDtsEmit?: boolean): EmitOutput; 6426 getProgram(): Program | undefined; 6427 getBuilderProgram(): BuilderProgram | undefined; 6428 toggleLineComment(fileName: string, textRange: TextRange): TextChange[]; 6429 toggleMultilineComment(fileName: string, textRange: TextRange): TextChange[]; 6430 commentSelection(fileName: string, textRange: TextRange): TextChange[]; 6431 uncommentSelection(fileName: string, textRange: TextRange): TextChange[]; 6432 dispose(): void; 6433 updateRootFiles?(rootFiles: string[]): void; 6434 getProps?(): string[]; 6435 } 6436 interface JsxClosingTagInfo { 6437 readonly newText: string; 6438 } 6439 interface CombinedCodeFixScope { 6440 type: "file"; 6441 fileName: string; 6442 } 6443 enum OrganizeImportsMode { 6444 All = "All", 6445 SortAndCombine = "SortAndCombine", 6446 RemoveUnused = "RemoveUnused" 6447 } 6448 interface OrganizeImportsArgs extends CombinedCodeFixScope { 6449 /** @deprecated Use `mode` instead */ 6450 skipDestructiveCodeActions?: boolean; 6451 mode?: OrganizeImportsMode; 6452 } 6453 type CompletionsTriggerCharacter = "." | '"' | "'" | "`" | "/" | "@" | "<" | "#" | " "; 6454 enum CompletionTriggerKind { 6455 /** Completion was triggered by typing an identifier, manual invocation (e.g Ctrl+Space) or via API. */ 6456 Invoked = 1, 6457 /** Completion was triggered by a trigger character. */ 6458 TriggerCharacter = 2, 6459 /** Completion was re-triggered as the current completion list is incomplete. */ 6460 TriggerForIncompleteCompletions = 3 6461 } 6462 interface GetCompletionsAtPositionOptions extends UserPreferences { 6463 /** 6464 * If the editor is asking for completions because a certain character was typed 6465 * (as opposed to when the user explicitly requested them) this should be set. 6466 */ 6467 triggerCharacter?: CompletionsTriggerCharacter; 6468 triggerKind?: CompletionTriggerKind; 6469 /** @deprecated Use includeCompletionsForModuleExports */ 6470 includeExternalModuleExports?: boolean; 6471 /** @deprecated Use includeCompletionsWithInsertText */ 6472 includeInsertTextCompletions?: boolean; 6473 } 6474 type SignatureHelpTriggerCharacter = "," | "(" | "<"; 6475 type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; 6476 interface SignatureHelpItemsOptions { 6477 triggerReason?: SignatureHelpTriggerReason; 6478 } 6479 type SignatureHelpTriggerReason = SignatureHelpInvokedReason | SignatureHelpCharacterTypedReason | SignatureHelpRetriggeredReason; 6480 /** 6481 * Signals that the user manually requested signature help. 6482 * The language service will unconditionally attempt to provide a result. 6483 */ 6484 interface SignatureHelpInvokedReason { 6485 kind: "invoked"; 6486 triggerCharacter?: undefined; 6487 } 6488 /** 6489 * Signals that the signature help request came from a user typing a character. 6490 * Depending on the character and the syntactic context, the request may or may not be served a result. 6491 */ 6492 interface SignatureHelpCharacterTypedReason { 6493 kind: "characterTyped"; 6494 /** 6495 * Character that was responsible for triggering signature help. 6496 */ 6497 triggerCharacter: SignatureHelpTriggerCharacter; 6498 } 6499 /** 6500 * Signals that this signature help request came from typing a character or moving the cursor. 6501 * This should only occur if a signature help session was already active and the editor needs to see if it should adjust. 6502 * The language service will unconditionally attempt to provide a result. 6503 * `triggerCharacter` can be `undefined` for a retrigger caused by a cursor move. 6504 */ 6505 interface SignatureHelpRetriggeredReason { 6506 kind: "retrigger"; 6507 /** 6508 * Character that was responsible for triggering signature help. 6509 */ 6510 triggerCharacter?: SignatureHelpRetriggerCharacter; 6511 } 6512 interface ApplyCodeActionCommandResult { 6513 successMessage: string; 6514 } 6515 interface Classifications { 6516 spans: number[]; 6517 endOfLineState: EndOfLineState; 6518 } 6519 interface ClassifiedSpan { 6520 textSpan: TextSpan; 6521 classificationType: ClassificationTypeNames; 6522 } 6523 interface ClassifiedSpan2020 { 6524 textSpan: TextSpan; 6525 classificationType: number; 6526 } 6527 /** 6528 * Navigation bar interface designed for visual studio's dual-column layout. 6529 * This does not form a proper tree. 6530 * The navbar is returned as a list of top-level items, each of which has a list of child items. 6531 * Child items always have an empty array for their `childItems`. 6532 */ 6533 interface NavigationBarItem { 6534 text: string; 6535 kind: ScriptElementKind; 6536 kindModifiers: string; 6537 spans: TextSpan[]; 6538 childItems: NavigationBarItem[]; 6539 indent: number; 6540 bolded: boolean; 6541 grayed: boolean; 6542 } 6543 /** 6544 * Node in a tree of nested declarations in a file. 6545 * The top node is always a script or module node. 6546 */ 6547 interface NavigationTree { 6548 /** Name of the declaration, or a short description, e.g. "<class>". */ 6549 text: string; 6550 kind: ScriptElementKind; 6551 /** ScriptElementKindModifier separated by commas, e.g. "public,abstract" */ 6552 kindModifiers: string; 6553 /** 6554 * Spans of the nodes that generated this declaration. 6555 * There will be more than one if this is the result of merging. 6556 */ 6557 spans: TextSpan[]; 6558 nameSpan: TextSpan | undefined; 6559 /** Present if non-empty */ 6560 childItems?: NavigationTree[]; 6561 } 6562 interface CallHierarchyItem { 6563 name: string; 6564 kind: ScriptElementKind; 6565 kindModifiers?: string; 6566 file: string; 6567 span: TextSpan; 6568 selectionSpan: TextSpan; 6569 containerName?: string; 6570 } 6571 interface CallHierarchyIncomingCall { 6572 from: CallHierarchyItem; 6573 fromSpans: TextSpan[]; 6574 } 6575 interface CallHierarchyOutgoingCall { 6576 to: CallHierarchyItem; 6577 fromSpans: TextSpan[]; 6578 } 6579 enum InlayHintKind { 6580 Type = "Type", 6581 Parameter = "Parameter", 6582 Enum = "Enum" 6583 } 6584 interface InlayHint { 6585 text: string; 6586 position: number; 6587 kind: InlayHintKind; 6588 whitespaceBefore?: boolean; 6589 whitespaceAfter?: boolean; 6590 } 6591 interface TodoCommentDescriptor { 6592 text: string; 6593 priority: number; 6594 } 6595 interface TodoComment { 6596 descriptor: TodoCommentDescriptor; 6597 message: string; 6598 position: number; 6599 } 6600 interface TextChange { 6601 span: TextSpan; 6602 newText: string; 6603 } 6604 interface FileTextChanges { 6605 fileName: string; 6606 textChanges: readonly TextChange[]; 6607 isNewFile?: boolean; 6608 } 6609 interface CodeAction { 6610 /** Description of the code action to display in the UI of the editor */ 6611 description: string; 6612 /** Text changes to apply to each file as part of the code action */ 6613 changes: FileTextChanges[]; 6614 /** 6615 * If the user accepts the code fix, the editor should send the action back in a `applyAction` request. 6616 * This allows the language service to have side effects (e.g. installing dependencies) upon a code fix. 6617 */ 6618 commands?: CodeActionCommand[]; 6619 } 6620 interface CodeFixAction extends CodeAction { 6621 /** Short name to identify the fix, for use by telemetry. */ 6622 fixName: string; 6623 /** 6624 * If present, one may call 'getCombinedCodeFix' with this fixId. 6625 * This may be omitted to indicate that the code fix can't be applied in a group. 6626 */ 6627 fixId?: {}; 6628 fixAllDescription?: string; 6629 } 6630 interface CombinedCodeActions { 6631 changes: readonly FileTextChanges[]; 6632 commands?: readonly CodeActionCommand[]; 6633 } 6634 type CodeActionCommand = InstallPackageAction; 6635 interface InstallPackageAction { 6636 } 6637 /** 6638 * A set of one or more available refactoring actions, grouped under a parent refactoring. 6639 */ 6640 interface ApplicableRefactorInfo { 6641 /** 6642 * The programmatic name of the refactoring 6643 */ 6644 name: string; 6645 /** 6646 * A description of this refactoring category to show to the user. 6647 * If the refactoring gets inlined (see below), this text will not be visible. 6648 */ 6649 description: string; 6650 /** 6651 * Inlineable refactorings can have their actions hoisted out to the top level 6652 * of a context menu. Non-inlineanable refactorings should always be shown inside 6653 * their parent grouping. 6654 * 6655 * If not specified, this value is assumed to be 'true' 6656 */ 6657 inlineable?: boolean; 6658 actions: RefactorActionInfo[]; 6659 } 6660 /** 6661 * Represents a single refactoring action - for example, the "Extract Method..." refactor might 6662 * offer several actions, each corresponding to a surround class or closure to extract into. 6663 */ 6664 interface RefactorActionInfo { 6665 /** 6666 * The programmatic name of the refactoring action 6667 */ 6668 name: string; 6669 /** 6670 * A description of this refactoring action to show to the user. 6671 * If the parent refactoring is inlined away, this will be the only text shown, 6672 * so this description should make sense by itself if the parent is inlineable=true 6673 */ 6674 description: string; 6675 /** 6676 * A message to show to the user if the refactoring cannot be applied in 6677 * the current context. 6678 */ 6679 notApplicableReason?: string; 6680 /** 6681 * The hierarchical dotted name of the refactor action. 6682 */ 6683 kind?: string; 6684 } 6685 /** 6686 * A set of edits to make in response to a refactor action, plus an optional 6687 * location where renaming should be invoked from 6688 */ 6689 interface RefactorEditInfo { 6690 edits: FileTextChanges[]; 6691 renameFilename?: string; 6692 renameLocation?: number; 6693 commands?: CodeActionCommand[]; 6694 } 6695 type RefactorTriggerReason = "implicit" | "invoked"; 6696 interface TextInsertion { 6697 newText: string; 6698 /** The position in newText the caret should point to after the insertion. */ 6699 caretOffset: number; 6700 } 6701 interface DocumentSpan { 6702 textSpan: TextSpan; 6703 fileName: string; 6704 /** 6705 * If the span represents a location that was remapped (e.g. via a .d.ts.map file), 6706 * then the original filename and span will be specified here 6707 */ 6708 originalTextSpan?: TextSpan; 6709 originalFileName?: string; 6710 /** 6711 * If DocumentSpan.textSpan is the span for name of the declaration, 6712 * then this is the span for relevant declaration 6713 */ 6714 contextSpan?: TextSpan; 6715 originalContextSpan?: TextSpan; 6716 } 6717 interface RenameLocation extends DocumentSpan { 6718 readonly prefixText?: string; 6719 readonly suffixText?: string; 6720 } 6721 interface ReferenceEntry extends DocumentSpan { 6722 isWriteAccess: boolean; 6723 isInString?: true; 6724 } 6725 interface ImplementationLocation extends DocumentSpan { 6726 kind: ScriptElementKind; 6727 displayParts: SymbolDisplayPart[]; 6728 } 6729 enum HighlightSpanKind { 6730 none = "none", 6731 definition = "definition", 6732 reference = "reference", 6733 writtenReference = "writtenReference" 6734 } 6735 interface HighlightSpan { 6736 fileName?: string; 6737 isInString?: true; 6738 textSpan: TextSpan; 6739 contextSpan?: TextSpan; 6740 kind: HighlightSpanKind; 6741 } 6742 interface NavigateToItem { 6743 name: string; 6744 kind: ScriptElementKind; 6745 kindModifiers: string; 6746 matchKind: "exact" | "prefix" | "substring" | "camelCase"; 6747 isCaseSensitive: boolean; 6748 fileName: string; 6749 textSpan: TextSpan; 6750 containerName: string; 6751 containerKind: ScriptElementKind; 6752 } 6753 enum IndentStyle { 6754 None = 0, 6755 Block = 1, 6756 Smart = 2 6757 } 6758 enum SemicolonPreference { 6759 Ignore = "ignore", 6760 Insert = "insert", 6761 Remove = "remove" 6762 } 6763 /** @deprecated - consider using EditorSettings instead */ 6764 interface EditorOptions { 6765 BaseIndentSize?: number; 6766 IndentSize: number; 6767 TabSize: number; 6768 NewLineCharacter: string; 6769 ConvertTabsToSpaces: boolean; 6770 IndentStyle: IndentStyle; 6771 } 6772 interface EditorSettings { 6773 baseIndentSize?: number; 6774 indentSize?: number; 6775 tabSize?: number; 6776 newLineCharacter?: string; 6777 convertTabsToSpaces?: boolean; 6778 indentStyle?: IndentStyle; 6779 trimTrailingWhitespace?: boolean; 6780 } 6781 /** @deprecated - consider using FormatCodeSettings instead */ 6782 interface FormatCodeOptions extends EditorOptions { 6783 InsertSpaceAfterCommaDelimiter: boolean; 6784 InsertSpaceAfterSemicolonInForStatements: boolean; 6785 InsertSpaceBeforeAndAfterBinaryOperators: boolean; 6786 InsertSpaceAfterConstructor?: boolean; 6787 InsertSpaceAfterKeywordsInControlFlowStatements: boolean; 6788 InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; 6789 InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; 6790 InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean; 6791 InsertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; 6792 InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean; 6793 InsertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; 6794 InsertSpaceAfterTypeAssertion?: boolean; 6795 InsertSpaceBeforeFunctionParenthesis?: boolean; 6796 PlaceOpenBraceOnNewLineForFunctions: boolean; 6797 PlaceOpenBraceOnNewLineForControlBlocks: boolean; 6798 insertSpaceBeforeTypeAnnotation?: boolean; 6799 } 6800 interface FormatCodeSettings extends EditorSettings { 6801 readonly insertSpaceAfterCommaDelimiter?: boolean; 6802 readonly insertSpaceAfterSemicolonInForStatements?: boolean; 6803 readonly insertSpaceBeforeAndAfterBinaryOperators?: boolean; 6804 readonly insertSpaceAfterConstructor?: boolean; 6805 readonly insertSpaceAfterKeywordsInControlFlowStatements?: boolean; 6806 readonly insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean; 6807 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean; 6808 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean; 6809 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; 6810 readonly insertSpaceAfterOpeningAndBeforeClosingEmptyBraces?: boolean; 6811 readonly insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean; 6812 readonly insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; 6813 readonly insertSpaceAfterTypeAssertion?: boolean; 6814 readonly insertSpaceBeforeFunctionParenthesis?: boolean; 6815 readonly placeOpenBraceOnNewLineForFunctions?: boolean; 6816 readonly placeOpenBraceOnNewLineForControlBlocks?: boolean; 6817 readonly insertSpaceBeforeTypeAnnotation?: boolean; 6818 readonly indentMultiLineObjectLiteralBeginningOnBlankLine?: boolean; 6819 readonly semicolons?: SemicolonPreference; 6820 } 6821 function getDefaultFormatCodeSettings(newLineCharacter?: string): FormatCodeSettings; 6822 interface DefinitionInfo extends DocumentSpan { 6823 kind: ScriptElementKind; 6824 name: string; 6825 containerKind: ScriptElementKind; 6826 containerName: string; 6827 unverified?: boolean; 6828 } 6829 interface DefinitionInfoAndBoundSpan { 6830 definitions?: readonly DefinitionInfo[]; 6831 textSpan: TextSpan; 6832 } 6833 interface ReferencedSymbolDefinitionInfo extends DefinitionInfo { 6834 displayParts: SymbolDisplayPart[]; 6835 } 6836 interface ReferencedSymbol { 6837 definition: ReferencedSymbolDefinitionInfo; 6838 references: ReferencedSymbolEntry[]; 6839 } 6840 interface ReferencedSymbolEntry extends ReferenceEntry { 6841 isDefinition?: boolean; 6842 } 6843 enum SymbolDisplayPartKind { 6844 aliasName = 0, 6845 className = 1, 6846 enumName = 2, 6847 fieldName = 3, 6848 interfaceName = 4, 6849 keyword = 5, 6850 lineBreak = 6, 6851 numericLiteral = 7, 6852 stringLiteral = 8, 6853 localName = 9, 6854 methodName = 10, 6855 moduleName = 11, 6856 operator = 12, 6857 parameterName = 13, 6858 propertyName = 14, 6859 punctuation = 15, 6860 space = 16, 6861 text = 17, 6862 typeParameterName = 18, 6863 enumMemberName = 19, 6864 functionName = 20, 6865 regularExpressionLiteral = 21, 6866 link = 22, 6867 linkName = 23, 6868 linkText = 24 6869 } 6870 interface SymbolDisplayPart { 6871 text: string; 6872 kind: string; 6873 } 6874 interface JSDocLinkDisplayPart extends SymbolDisplayPart { 6875 target: DocumentSpan; 6876 } 6877 interface JSDocTagInfo { 6878 name: string; 6879 text?: SymbolDisplayPart[] | string; 6880 index?: number; 6881 } 6882 interface QuickInfo { 6883 kind: ScriptElementKind; 6884 kindModifiers: string; 6885 textSpan: TextSpan; 6886 displayParts?: SymbolDisplayPart[]; 6887 documentation?: SymbolDisplayPart[]; 6888 tags?: JSDocTagInfo[]; 6889 } 6890 type RenameInfo = RenameInfoSuccess | RenameInfoFailure; 6891 interface RenameInfoSuccess { 6892 canRename: true; 6893 /** 6894 * File or directory to rename. 6895 * If set, `getEditsForFileRename` should be called instead of `findRenameLocations`. 6896 */ 6897 fileToRename?: string; 6898 displayName: string; 6899 fullDisplayName: string; 6900 kind: ScriptElementKind; 6901 kindModifiers: string; 6902 triggerSpan: TextSpan; 6903 } 6904 interface RenameInfoFailure { 6905 canRename: false; 6906 localizedErrorMessage: string; 6907 } 6908 /** 6909 * @deprecated Use `UserPreferences` instead. 6910 */ 6911 interface RenameInfoOptions { 6912 readonly allowRenameOfImportPath?: boolean; 6913 } 6914 interface DocCommentTemplateOptions { 6915 readonly generateReturnInDocTemplate?: boolean; 6916 } 6917 interface SignatureHelpParameter { 6918 name: string; 6919 documentation: SymbolDisplayPart[]; 6920 displayParts: SymbolDisplayPart[]; 6921 isOptional: boolean; 6922 isRest?: boolean; 6923 } 6924 interface SelectionRange { 6925 textSpan: TextSpan; 6926 parent?: SelectionRange; 6927 } 6928 /** 6929 * Represents a single signature to show in signature help. 6930 * The id is used for subsequent calls into the language service to ask questions about the 6931 * signature help item in the context of any documents that have been updated. i.e. after 6932 * an edit has happened, while signature help is still active, the host can ask important 6933 * questions like 'what parameter is the user currently contained within?'. 6934 */ 6935 interface SignatureHelpItem { 6936 isVariadic: boolean; 6937 prefixDisplayParts: SymbolDisplayPart[]; 6938 suffixDisplayParts: SymbolDisplayPart[]; 6939 separatorDisplayParts: SymbolDisplayPart[]; 6940 parameters: SignatureHelpParameter[]; 6941 documentation: SymbolDisplayPart[]; 6942 tags: JSDocTagInfo[]; 6943 } 6944 /** 6945 * Represents a set of signature help items, and the preferred item that should be selected. 6946 */ 6947 interface SignatureHelpItems { 6948 items: SignatureHelpItem[]; 6949 applicableSpan: TextSpan; 6950 selectedItemIndex: number; 6951 argumentIndex: number; 6952 argumentCount: number; 6953 } 6954 enum CompletionInfoFlags { 6955 None = 0, 6956 MayIncludeAutoImports = 1, 6957 IsImportStatementCompletion = 2, 6958 IsContinuation = 4, 6959 ResolvedModuleSpecifiers = 8, 6960 ResolvedModuleSpecifiersBeyondLimit = 16, 6961 MayIncludeMethodSnippets = 32 6962 } 6963 interface CompletionInfo { 6964 /** For performance telemetry. */ 6965 flags?: CompletionInfoFlags; 6966 /** Not true for all global completions. This will be true if the enclosing scope matches a few syntax kinds. See `isSnippetScope`. */ 6967 isGlobalCompletion: boolean; 6968 isMemberCompletion: boolean; 6969 /** 6970 * In the absence of `CompletionEntry["replacementSpan"]`, the editor may choose whether to use 6971 * this span or its default one. If `CompletionEntry["replacementSpan"]` is defined, that span 6972 * must be used to commit that completion entry. 6973 */ 6974 optionalReplacementSpan?: TextSpan; 6975 /** 6976 * true when the current location also allows for a new identifier 6977 */ 6978 isNewIdentifierLocation: boolean; 6979 /** 6980 * Indicates to client to continue requesting completions on subsequent keystrokes. 6981 */ 6982 isIncomplete?: true; 6983 entries: CompletionEntry[]; 6984 } 6985 interface CompletionEntryDataAutoImport { 6986 /** 6987 * The name of the property or export in the module's symbol table. Differs from the completion name 6988 * in the case of InternalSymbolName.ExportEquals and InternalSymbolName.Default. 6989 */ 6990 exportName: string; 6991 moduleSpecifier?: string; 6992 /** The file name declaring the export's module symbol, if it was an external module */ 6993 fileName?: string; 6994 /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */ 6995 ambientModuleName?: string; 6996 /** True if the export was found in the package.json AutoImportProvider */ 6997 isPackageJsonImport?: true; 6998 } 6999 interface CompletionEntryDataUnresolved extends CompletionEntryDataAutoImport { 7000 /** The key in the `ExportMapCache` where the completion entry's `SymbolExportInfo[]` is found */ 7001 exportMapKey: string; 7002 } 7003 interface CompletionEntryDataResolved extends CompletionEntryDataAutoImport { 7004 moduleSpecifier: string; 7005 } 7006 type CompletionEntryData = CompletionEntryDataUnresolved | CompletionEntryDataResolved; 7007 interface CompletionEntry { 7008 name: string; 7009 kind: ScriptElementKind; 7010 kindModifiers?: string; 7011 sortText: string; 7012 insertText?: string; 7013 isSnippet?: true; 7014 /** 7015 * An optional span that indicates the text to be replaced by this completion item. 7016 * If present, this span should be used instead of the default one. 7017 * It will be set if the required span differs from the one generated by the default replacement behavior. 7018 */ 7019 replacementSpan?: TextSpan; 7020 hasAction?: true; 7021 source?: string; 7022 sourceDisplay?: SymbolDisplayPart[]; 7023 labelDetails?: CompletionEntryLabelDetails; 7024 isRecommended?: true; 7025 isFromUncheckedFile?: true; 7026 isPackageJsonImport?: true; 7027 isImportStatementCompletion?: true; 7028 /** 7029 * A property to be sent back to TS Server in the CompletionDetailsRequest, along with `name`, 7030 * that allows TS Server to look up the symbol represented by the completion item, disambiguating 7031 * items with the same name. Currently only defined for auto-import completions, but the type is 7032 * `unknown` in the protocol, so it can be changed as needed to support other kinds of completions. 7033 * The presence of this property should generally not be used to assume that this completion entry 7034 * is an auto-import. 7035 */ 7036 data?: CompletionEntryData; 7037 jsDoc?: JSDocTagInfo[]; 7038 displayParts?: SymbolDisplayPart[]; 7039 } 7040 interface CompletionEntryLabelDetails { 7041 detail?: string; 7042 description?: string; 7043 } 7044 interface CompletionEntryDetails { 7045 name: string; 7046 kind: ScriptElementKind; 7047 kindModifiers: string; 7048 displayParts: SymbolDisplayPart[]; 7049 documentation?: SymbolDisplayPart[]; 7050 tags?: JSDocTagInfo[]; 7051 codeActions?: CodeAction[]; 7052 /** @deprecated Use `sourceDisplay` instead. */ 7053 source?: SymbolDisplayPart[]; 7054 sourceDisplay?: SymbolDisplayPart[]; 7055 } 7056 interface OutliningSpan { 7057 /** The span of the document to actually collapse. */ 7058 textSpan: TextSpan; 7059 /** The span of the document to display when the user hovers over the collapsed span. */ 7060 hintSpan: TextSpan; 7061 /** The text to display in the editor for the collapsed region. */ 7062 bannerText: string; 7063 /** 7064 * Whether or not this region should be automatically collapsed when 7065 * the 'Collapse to Definitions' command is invoked. 7066 */ 7067 autoCollapse: boolean; 7068 /** 7069 * Classification of the contents of the span 7070 */ 7071 kind: OutliningSpanKind; 7072 } 7073 enum OutliningSpanKind { 7074 /** Single or multi-line comments */ 7075 Comment = "comment", 7076 /** Sections marked by '// #region' and '// #endregion' comments */ 7077 Region = "region", 7078 /** Declarations and expressions */ 7079 Code = "code", 7080 /** Contiguous blocks of import declarations */ 7081 Imports = "imports" 7082 } 7083 enum OutputFileType { 7084 JavaScript = 0, 7085 SourceMap = 1, 7086 Declaration = 2 7087 } 7088 enum EndOfLineState { 7089 None = 0, 7090 InMultiLineCommentTrivia = 1, 7091 InSingleQuoteStringLiteral = 2, 7092 InDoubleQuoteStringLiteral = 3, 7093 InTemplateHeadOrNoSubstitutionTemplate = 4, 7094 InTemplateMiddleOrTail = 5, 7095 InTemplateSubstitutionPosition = 6 7096 } 7097 enum TokenClass { 7098 Punctuation = 0, 7099 Keyword = 1, 7100 Operator = 2, 7101 Comment = 3, 7102 Whitespace = 4, 7103 Identifier = 5, 7104 NumberLiteral = 6, 7105 BigIntLiteral = 7, 7106 StringLiteral = 8, 7107 RegExpLiteral = 9 7108 } 7109 interface ClassificationResult { 7110 finalLexState: EndOfLineState; 7111 entries: ClassificationInfo[]; 7112 } 7113 interface ClassificationInfo { 7114 length: number; 7115 classification: TokenClass; 7116 } 7117 interface Classifier { 7118 /** 7119 * Gives lexical classifications of tokens on a line without any syntactic context. 7120 * For instance, a token consisting of the text 'string' can be either an identifier 7121 * named 'string' or the keyword 'string', however, because this classifier is not aware, 7122 * it relies on certain heuristics to give acceptable results. For classifications where 7123 * speed trumps accuracy, this function is preferable; however, for true accuracy, the 7124 * syntactic classifier is ideal. In fact, in certain editing scenarios, combining the 7125 * lexical, syntactic, and semantic classifiers may issue the best user experience. 7126 * 7127 * @param text The text of a line to classify. 7128 * @param lexState The state of the lexical classifier at the end of the previous line. 7129 * @param syntacticClassifierAbsent Whether the client is *not* using a syntactic classifier. 7130 * If there is no syntactic classifier (syntacticClassifierAbsent=true), 7131 * certain heuristics may be used in its place; however, if there is a 7132 * syntactic classifier (syntacticClassifierAbsent=false), certain 7133 * classifications which may be incorrectly categorized will be given 7134 * back as Identifiers in order to allow the syntactic classifier to 7135 * subsume the classification. 7136 * @deprecated Use getLexicalClassifications instead. 7137 */ 7138 getClassificationsForLine(text: string, lexState: EndOfLineState, syntacticClassifierAbsent: boolean): ClassificationResult; 7139 getEncodedLexicalClassifications(text: string, endOfLineState: EndOfLineState, syntacticClassifierAbsent: boolean): Classifications; 7140 } 7141 enum ScriptElementKind { 7142 unknown = "", 7143 warning = "warning", 7144 /** predefined type (void) or keyword (class) */ 7145 keyword = "keyword", 7146 /** top level script node */ 7147 scriptElement = "script", 7148 /** module foo {} */ 7149 moduleElement = "module", 7150 /** class X {} */ 7151 classElement = "class", 7152 /** var x = class X {} */ 7153 localClassElement = "local class", 7154 /** struct X {} */ 7155 structElement = "struct", 7156 /** interface Y {} */ 7157 interfaceElement = "interface", 7158 /** type T = ... */ 7159 typeElement = "type", 7160 /** enum E */ 7161 enumElement = "enum", 7162 enumMemberElement = "enum member", 7163 /** 7164 * Inside module and script only 7165 * const v = .. 7166 */ 7167 variableElement = "var", 7168 /** Inside function */ 7169 localVariableElement = "local var", 7170 /** 7171 * Inside module and script only 7172 * function f() { } 7173 */ 7174 functionElement = "function", 7175 /** Inside function */ 7176 localFunctionElement = "local function", 7177 /** class X { [public|private]* foo() {} } */ 7178 memberFunctionElement = "method", 7179 /** class X { [public|private]* [get|set] foo:number; } */ 7180 memberGetAccessorElement = "getter", 7181 memberSetAccessorElement = "setter", 7182 /** 7183 * class X { [public|private]* foo:number; } 7184 * interface Y { foo:number; } 7185 */ 7186 memberVariableElement = "property", 7187 /** class X { [public|private]* accessor foo: number; } */ 7188 memberAccessorVariableElement = "accessor", 7189 /** 7190 * class X { constructor() { } } 7191 * class X { static { } } 7192 */ 7193 constructorImplementationElement = "constructor", 7194 /** interface Y { ():number; } */ 7195 callSignatureElement = "call", 7196 /** interface Y { []:number; } */ 7197 indexSignatureElement = "index", 7198 /** interface Y { new():Y; } */ 7199 constructSignatureElement = "construct", 7200 /** function foo(*Y*: string) */ 7201 parameterElement = "parameter", 7202 typeParameterElement = "type parameter", 7203 primitiveType = "primitive type", 7204 label = "label", 7205 alias = "alias", 7206 constElement = "const", 7207 letElement = "let", 7208 directory = "directory", 7209 externalModuleName = "external module name", 7210 /** 7211 * <JsxTagName attribute1 attribute2={0} /> 7212 * @deprecated 7213 */ 7214 jsxAttribute = "JSX attribute", 7215 /** String literal */ 7216 string = "string", 7217 /** Jsdoc @link: in `{@link C link text}`, the before and after text "{@link " and "}" */ 7218 link = "link", 7219 /** Jsdoc @link: in `{@link C link text}`, the entity name "C" */ 7220 linkName = "link name", 7221 /** Jsdoc @link: in `{@link C link text}`, the link text "link text" */ 7222 linkText = "link text" 7223 } 7224 enum ScriptElementKindModifier { 7225 none = "", 7226 publicMemberModifier = "public", 7227 privateMemberModifier = "private", 7228 protectedMemberModifier = "protected", 7229 exportedModifier = "export", 7230 ambientModifier = "declare", 7231 staticModifier = "static", 7232 abstractModifier = "abstract", 7233 optionalModifier = "optional", 7234 deprecatedModifier = "deprecated", 7235 dtsModifier = ".d.ts", 7236 tsModifier = ".ts", 7237 tsxModifier = ".tsx", 7238 jsModifier = ".js", 7239 jsxModifier = ".jsx", 7240 jsonModifier = ".json", 7241 dmtsModifier = ".d.mts", 7242 mtsModifier = ".mts", 7243 mjsModifier = ".mjs", 7244 dctsModifier = ".d.cts", 7245 ctsModifier = ".cts", 7246 cjsModifier = ".cjs", 7247 etsModifier = ".ets", 7248 detsModifier = ".d.ets" 7249 } 7250 enum ClassificationTypeNames { 7251 comment = "comment", 7252 identifier = "identifier", 7253 keyword = "keyword", 7254 numericLiteral = "number", 7255 bigintLiteral = "bigint", 7256 operator = "operator", 7257 stringLiteral = "string", 7258 whiteSpace = "whitespace", 7259 text = "text", 7260 punctuation = "punctuation", 7261 className = "class name", 7262 enumName = "enum name", 7263 interfaceName = "interface name", 7264 moduleName = "module name", 7265 typeParameterName = "type parameter name", 7266 typeAliasName = "type alias name", 7267 parameterName = "parameter name", 7268 docCommentTagName = "doc comment tag name", 7269 jsxOpenTagName = "jsx open tag name", 7270 jsxCloseTagName = "jsx close tag name", 7271 jsxSelfClosingTagName = "jsx self closing tag name", 7272 jsxAttribute = "jsx attribute", 7273 jsxText = "jsx text", 7274 jsxAttributeStringLiteralValue = "jsx attribute string literal value" 7275 } 7276 enum ClassificationType { 7277 comment = 1, 7278 identifier = 2, 7279 keyword = 3, 7280 numericLiteral = 4, 7281 operator = 5, 7282 stringLiteral = 6, 7283 regularExpressionLiteral = 7, 7284 whiteSpace = 8, 7285 text = 9, 7286 punctuation = 10, 7287 className = 11, 7288 enumName = 12, 7289 interfaceName = 13, 7290 moduleName = 14, 7291 typeParameterName = 15, 7292 typeAliasName = 16, 7293 parameterName = 17, 7294 docCommentTagName = 18, 7295 jsxOpenTagName = 19, 7296 jsxCloseTagName = 20, 7297 jsxSelfClosingTagName = 21, 7298 jsxAttribute = 22, 7299 jsxText = 23, 7300 jsxAttributeStringLiteralValue = 24, 7301 bigintLiteral = 25 7302 } 7303 interface InlayHintsContext { 7304 file: SourceFile; 7305 program: Program; 7306 cancellationToken: CancellationToken; 7307 host: LanguageServiceHost; 7308 span: TextSpan; 7309 preferences: UserPreferences; 7310 } 7311} 7312declare namespace ts { 7313 /** The classifier is used for syntactic highlighting in editors via the TSServer */ 7314 function createClassifier(): Classifier; 7315} 7316declare namespace ts { 7317 interface DocumentHighlights { 7318 fileName: string; 7319 highlightSpans: HighlightSpan[]; 7320 } 7321} 7322declare namespace ts { 7323 /** 7324 * The document registry represents a store of SourceFile objects that can be shared between 7325 * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) 7326 * of files in the context. 7327 * SourceFile objects account for most of the memory usage by the language service. Sharing 7328 * the same DocumentRegistry instance between different instances of LanguageService allow 7329 * for more efficient memory utilization since all projects will share at least the library 7330 * file (lib.d.ts). 7331 * 7332 * A more advanced use of the document registry is to serialize sourceFile objects to disk 7333 * and re-hydrate them when needed. 7334 * 7335 * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it 7336 * to all subsequent createLanguageService calls. 7337 */ 7338 interface DocumentRegistry { 7339 /** 7340 * Request a stored SourceFile with a given fileName and compilationSettings. 7341 * The first call to acquire will call createLanguageServiceSourceFile to generate 7342 * the SourceFile if was not found in the registry. 7343 * 7344 * @param fileName The name of the file requested 7345 * @param compilationSettingsOrHost Some compilation settings like target affects the 7346 * shape of a the resulting SourceFile. This allows the DocumentRegistry to store 7347 * multiple copies of the same file for different compilation settings. A minimal 7348 * resolution cache is needed to fully define a source file's shape when 7349 * the compilation settings include `module: node16`+, so providing a cache host 7350 * object should be preferred. A common host is a language service `ConfiguredProject`. 7351 * @param scriptSnapshot Text of the file. Only used if the file was not found 7352 * in the registry and a new one was created. 7353 * @param version Current version of the file. Only used if the file was not found 7354 * in the registry and a new one was created. 7355 */ 7356 acquireDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7357 acquireDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7358 /** 7359 * Request an updated version of an already existing SourceFile with a given fileName 7360 * and compilationSettings. The update will in-turn call updateLanguageServiceSourceFile 7361 * to get an updated SourceFile. 7362 * 7363 * @param fileName The name of the file requested 7364 * @param compilationSettingsOrHost Some compilation settings like target affects the 7365 * shape of a the resulting SourceFile. This allows the DocumentRegistry to store 7366 * multiple copies of the same file for different compilation settings. A minimal 7367 * resolution cache is needed to fully define a source file's shape when 7368 * the compilation settings include `module: node16`+, so providing a cache host 7369 * object should be preferred. A common host is a language service `ConfiguredProject`. 7370 * @param scriptSnapshot Text of the file. 7371 * @param version Current version of the file. 7372 */ 7373 updateDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7374 updateDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7375 getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey; 7376 /** 7377 * Informs the DocumentRegistry that a file is not needed any longer. 7378 * 7379 * Note: It is not allowed to call release on a SourceFile that was not acquired from 7380 * this registry originally. 7381 * 7382 * @param fileName The name of the file to be released 7383 * @param compilationSettings The compilation settings used to acquire the file 7384 * @param scriptKind The script kind of the file to be released 7385 */ 7386 /**@deprecated pass scriptKind and impliedNodeFormat for correctness */ 7387 releaseDocument(fileName: string, compilationSettings: CompilerOptions, scriptKind?: ScriptKind): void; 7388 /** 7389 * Informs the DocumentRegistry that a file is not needed any longer. 7390 * 7391 * Note: It is not allowed to call release on a SourceFile that was not acquired from 7392 * this registry originally. 7393 * 7394 * @param fileName The name of the file to be released 7395 * @param compilationSettings The compilation settings used to acquire the file 7396 * @param scriptKind The script kind of the file to be released 7397 * @param impliedNodeFormat The implied source file format of the file to be released 7398 */ 7399 releaseDocument(fileName: string, compilationSettings: CompilerOptions, scriptKind: ScriptKind, impliedNodeFormat: SourceFile["impliedNodeFormat"]): void; 7400 /** 7401 * @deprecated pass scriptKind for and impliedNodeFormat correctness */ 7402 releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey, scriptKind?: ScriptKind): void; 7403 releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey, scriptKind: ScriptKind, impliedNodeFormat: SourceFile["impliedNodeFormat"]): void; 7404 reportStats(): string; 7405 } 7406 type DocumentRegistryBucketKey = string & { 7407 __bucketKey: any; 7408 }; 7409 function createDocumentRegistry(useCaseSensitiveFileNames?: boolean, currentDirectory?: string): DocumentRegistry; 7410} 7411declare namespace ts { 7412 function preProcessFile(sourceText: string, readImportFiles?: boolean, detectJavaScriptImports?: boolean): PreProcessedFileInfo; 7413} 7414declare namespace ts { 7415 interface TranspileOptions { 7416 compilerOptions?: CompilerOptions; 7417 fileName?: string; 7418 reportDiagnostics?: boolean; 7419 moduleName?: string; 7420 renamedDependencies?: MapLike<string>; 7421 transformers?: CustomTransformers; 7422 } 7423 interface TranspileOutput { 7424 outputText: string; 7425 diagnostics?: Diagnostic[]; 7426 sourceMapText?: string; 7427 } 7428 function transpileModule(input: string, transpileOptions: TranspileOptions): TranspileOutput; 7429 function transpile(input: string, compilerOptions?: CompilerOptions, fileName?: string, diagnostics?: Diagnostic[], moduleName?: string): string; 7430} 7431declare namespace ts { 7432 /** The version of the language service API */ 7433 const servicesVersion = "0.8"; 7434 function toEditorSettings(options: EditorOptions | EditorSettings): EditorSettings; 7435 function displayPartsToString(displayParts: SymbolDisplayPart[] | undefined): string; 7436 function getDefaultCompilerOptions(): CompilerOptions; 7437 function getSupportedCodeFixes(): string[]; 7438 function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTargetOrOptions: ScriptTarget | CreateSourceFileOptions, version: string, setNodeParents: boolean, scriptKind?: ScriptKind, option?: CompilerOptions): SourceFile; 7439 function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange | undefined, aggressiveChecks?: boolean, option?: CompilerOptions): SourceFile; 7440 function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry, syntaxOnlyOrLanguageServiceMode?: boolean | LanguageServiceMode): LanguageService; 7441 /** 7442 * Get the path of the default library files (lib.d.ts) as distributed with the typescript 7443 * node package. 7444 * The functionality is not supported if the ts module is consumed outside of a node module. 7445 */ 7446 function getDefaultLibFilePath(options: CompilerOptions): string; 7447} 7448declare namespace ts { 7449 /** 7450 * Transform one or more nodes using the supplied transformers. 7451 * @param source A single `Node` or an array of `Node` objects. 7452 * @param transformers An array of `TransformerFactory` callbacks used to process the transformation. 7453 * @param compilerOptions Optional compiler options. 7454 */ 7455 function transform<T extends Node>(source: T | T[], transformers: TransformerFactory<T>[], compilerOptions?: CompilerOptions): TransformationResult<T>; 7456} 7457declare namespace ts.server { 7458 interface CompressedData { 7459 length: number; 7460 compressionKind: string; 7461 data: any; 7462 } 7463 type ModuleImportResult = { 7464 module: {}; 7465 error: undefined; 7466 } | { 7467 module: undefined; 7468 error: { 7469 stack?: string; 7470 message?: string; 7471 }; 7472 }; 7473 /** @deprecated Use {@link ModuleImportResult} instead. */ 7474 type RequireResult = ModuleImportResult; 7475 interface ServerHost extends System { 7476 watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher; 7477 watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher; 7478 setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; 7479 clearTimeout(timeoutId: any): void; 7480 setImmediate(callback: (...args: any[]) => void, ...args: any[]): any; 7481 clearImmediate(timeoutId: any): void; 7482 gc?(): void; 7483 trace?(s: string): void; 7484 require?(initialPath: string, moduleName: string): ModuleImportResult; 7485 getJsDocNodeCheckedConfig?(fileCheckedInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 7486 getJsDocNodeConditionCheckedResult?(fileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 7487 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 7488 } 7489} 7490declare namespace ts.server { 7491 enum LogLevel { 7492 terse = 0, 7493 normal = 1, 7494 requestTime = 2, 7495 verbose = 3 7496 } 7497 const emptyArray: SortedReadonlyArray<never>; 7498 interface Logger { 7499 close(): void; 7500 hasLevel(level: LogLevel): boolean; 7501 loggingEnabled(): boolean; 7502 perftrc(s: string): void; 7503 info(s: string): void; 7504 startGroup(): void; 7505 endGroup(): void; 7506 msg(s: string, type?: Msg): void; 7507 getLogFileName(): string | undefined; 7508 } 7509 enum Msg { 7510 Err = "Err", 7511 Info = "Info", 7512 Perf = "Perf" 7513 } 7514 namespace Msg { 7515 /** @deprecated Only here for backwards-compatibility. Prefer just `Msg`. */ 7516 type Types = Msg; 7517 } 7518 function createInstallTypingsRequest(project: Project, typeAcquisition: TypeAcquisition, unresolvedImports: SortedReadonlyArray<string>, cachePath?: string): DiscoverTypings; 7519 namespace Errors { 7520 function ThrowNoProject(): never; 7521 function ThrowProjectLanguageServiceDisabled(): never; 7522 function ThrowProjectDoesNotContainDocument(fileName: string, project: Project): never; 7523 } 7524 type NormalizedPath = string & { 7525 __normalizedPathTag: any; 7526 }; 7527 function toNormalizedPath(fileName: string): NormalizedPath; 7528 function normalizedPathToPath(normalizedPath: NormalizedPath, currentDirectory: string, getCanonicalFileName: (f: string) => string): Path; 7529 function asNormalizedPath(fileName: string): NormalizedPath; 7530 interface NormalizedPathMap<T> { 7531 get(path: NormalizedPath): T | undefined; 7532 set(path: NormalizedPath, value: T): void; 7533 contains(path: NormalizedPath): boolean; 7534 remove(path: NormalizedPath): void; 7535 } 7536 function createNormalizedPathMap<T>(): NormalizedPathMap<T>; 7537 function isInferredProjectName(name: string): boolean; 7538 function makeInferredProjectName(counter: number): string; 7539 function createSortedArray<T>(): SortedArray<T>; 7540} 7541/** 7542 * Declaration module describing the TypeScript Server protocol 7543 */ 7544declare namespace ts.server.protocol { 7545 enum CommandTypes { 7546 JsxClosingTag = "jsxClosingTag", 7547 Brace = "brace", 7548 BraceCompletion = "braceCompletion", 7549 GetSpanOfEnclosingComment = "getSpanOfEnclosingComment", 7550 Change = "change", 7551 Close = "close", 7552 /** @deprecated Prefer CompletionInfo -- see comment on CompletionsResponse */ 7553 Completions = "completions", 7554 CompletionInfo = "completionInfo", 7555 CompletionDetails = "completionEntryDetails", 7556 CompileOnSaveAffectedFileList = "compileOnSaveAffectedFileList", 7557 CompileOnSaveEmitFile = "compileOnSaveEmitFile", 7558 Configure = "configure", 7559 Definition = "definition", 7560 DefinitionAndBoundSpan = "definitionAndBoundSpan", 7561 Implementation = "implementation", 7562 Exit = "exit", 7563 FileReferences = "fileReferences", 7564 Format = "format", 7565 Formatonkey = "formatonkey", 7566 Geterr = "geterr", 7567 GeterrForProject = "geterrForProject", 7568 SemanticDiagnosticsSync = "semanticDiagnosticsSync", 7569 SyntacticDiagnosticsSync = "syntacticDiagnosticsSync", 7570 SuggestionDiagnosticsSync = "suggestionDiagnosticsSync", 7571 NavBar = "navbar", 7572 Navto = "navto", 7573 NavTree = "navtree", 7574 NavTreeFull = "navtree-full", 7575 /** @deprecated */ 7576 Occurrences = "occurrences", 7577 DocumentHighlights = "documentHighlights", 7578 Open = "open", 7579 Quickinfo = "quickinfo", 7580 References = "references", 7581 Reload = "reload", 7582 Rename = "rename", 7583 Saveto = "saveto", 7584 SignatureHelp = "signatureHelp", 7585 FindSourceDefinition = "findSourceDefinition", 7586 Status = "status", 7587 TypeDefinition = "typeDefinition", 7588 ProjectInfo = "projectInfo", 7589 ReloadProjects = "reloadProjects", 7590 Unknown = "unknown", 7591 OpenExternalProject = "openExternalProject", 7592 OpenExternalProjects = "openExternalProjects", 7593 CloseExternalProject = "closeExternalProject", 7594 UpdateOpen = "updateOpen", 7595 GetOutliningSpans = "getOutliningSpans", 7596 TodoComments = "todoComments", 7597 Indentation = "indentation", 7598 DocCommentTemplate = "docCommentTemplate", 7599 CompilerOptionsForInferredProjects = "compilerOptionsForInferredProjects", 7600 GetCodeFixes = "getCodeFixes", 7601 GetCombinedCodeFix = "getCombinedCodeFix", 7602 ApplyCodeActionCommand = "applyCodeActionCommand", 7603 GetSupportedCodeFixes = "getSupportedCodeFixes", 7604 GetApplicableRefactors = "getApplicableRefactors", 7605 GetEditsForRefactor = "getEditsForRefactor", 7606 OrganizeImports = "organizeImports", 7607 GetEditsForFileRename = "getEditsForFileRename", 7608 ConfigurePlugin = "configurePlugin", 7609 SelectionRange = "selectionRange", 7610 ToggleLineComment = "toggleLineComment", 7611 ToggleMultilineComment = "toggleMultilineComment", 7612 CommentSelection = "commentSelection", 7613 UncommentSelection = "uncommentSelection", 7614 PrepareCallHierarchy = "prepareCallHierarchy", 7615 ProvideCallHierarchyIncomingCalls = "provideCallHierarchyIncomingCalls", 7616 ProvideCallHierarchyOutgoingCalls = "provideCallHierarchyOutgoingCalls", 7617 ProvideInlayHints = "provideInlayHints" 7618 } 7619 /** 7620 * A TypeScript Server message 7621 */ 7622 interface Message { 7623 /** 7624 * Sequence number of the message 7625 */ 7626 seq: number; 7627 /** 7628 * One of "request", "response", or "event" 7629 */ 7630 type: "request" | "response" | "event"; 7631 } 7632 /** 7633 * Client-initiated request message 7634 */ 7635 interface Request extends Message { 7636 type: "request"; 7637 /** 7638 * The command to execute 7639 */ 7640 command: string; 7641 /** 7642 * Object containing arguments for the command 7643 */ 7644 arguments?: any; 7645 } 7646 /** 7647 * Request to reload the project structure for all the opened files 7648 */ 7649 interface ReloadProjectsRequest extends Message { 7650 command: CommandTypes.ReloadProjects; 7651 } 7652 /** 7653 * Server-initiated event message 7654 */ 7655 interface Event extends Message { 7656 type: "event"; 7657 /** 7658 * Name of event 7659 */ 7660 event: string; 7661 /** 7662 * Event-specific information 7663 */ 7664 body?: any; 7665 } 7666 /** 7667 * Response by server to client request message. 7668 */ 7669 interface Response extends Message { 7670 type: "response"; 7671 /** 7672 * Sequence number of the request message. 7673 */ 7674 request_seq: number; 7675 /** 7676 * Outcome of the request. 7677 */ 7678 success: boolean; 7679 /** 7680 * The command requested. 7681 */ 7682 command: string; 7683 /** 7684 * If success === false, this should always be provided. 7685 * Otherwise, may (or may not) contain a success message. 7686 */ 7687 message?: string; 7688 /** 7689 * Contains message body if success === true. 7690 */ 7691 body?: any; 7692 /** 7693 * Contains extra information that plugin can include to be passed on 7694 */ 7695 metadata?: unknown; 7696 /** 7697 * Exposes information about the performance of this request-response pair. 7698 */ 7699 performanceData?: PerformanceData; 7700 } 7701 interface PerformanceData { 7702 /** 7703 * Time spent updating the program graph, in milliseconds. 7704 */ 7705 updateGraphDurationMs?: number; 7706 /** 7707 * The time spent creating or updating the auto-import program, in milliseconds. 7708 */ 7709 createAutoImportProviderProgramDurationMs?: number; 7710 } 7711 /** 7712 * Arguments for FileRequest messages. 7713 */ 7714 interface FileRequestArgs { 7715 /** 7716 * The file for the request (absolute pathname required). 7717 */ 7718 file: string; 7719 projectFileName?: string; 7720 } 7721 interface StatusRequest extends Request { 7722 command: CommandTypes.Status; 7723 } 7724 interface StatusResponseBody { 7725 /** 7726 * The TypeScript version (`ts.version`). 7727 */ 7728 version: string; 7729 } 7730 /** 7731 * Response to StatusRequest 7732 */ 7733 interface StatusResponse extends Response { 7734 body: StatusResponseBody; 7735 } 7736 /** 7737 * Requests a JS Doc comment template for a given position 7738 */ 7739 interface DocCommentTemplateRequest extends FileLocationRequest { 7740 command: CommandTypes.DocCommentTemplate; 7741 } 7742 /** 7743 * Response to DocCommentTemplateRequest 7744 */ 7745 interface DocCommandTemplateResponse extends Response { 7746 body?: TextInsertion; 7747 } 7748 /** 7749 * A request to get TODO comments from the file 7750 */ 7751 interface TodoCommentRequest extends FileRequest { 7752 command: CommandTypes.TodoComments; 7753 arguments: TodoCommentRequestArgs; 7754 } 7755 /** 7756 * Arguments for TodoCommentRequest request. 7757 */ 7758 interface TodoCommentRequestArgs extends FileRequestArgs { 7759 /** 7760 * Array of target TodoCommentDescriptors that describes TODO comments to be found 7761 */ 7762 descriptors: TodoCommentDescriptor[]; 7763 } 7764 /** 7765 * Response for TodoCommentRequest request. 7766 */ 7767 interface TodoCommentsResponse extends Response { 7768 body?: TodoComment[]; 7769 } 7770 /** 7771 * A request to determine if the caret is inside a comment. 7772 */ 7773 interface SpanOfEnclosingCommentRequest extends FileLocationRequest { 7774 command: CommandTypes.GetSpanOfEnclosingComment; 7775 arguments: SpanOfEnclosingCommentRequestArgs; 7776 } 7777 interface SpanOfEnclosingCommentRequestArgs extends FileLocationRequestArgs { 7778 /** 7779 * Requires that the enclosing span be a multi-line comment, or else the request returns undefined. 7780 */ 7781 onlyMultiLine: boolean; 7782 } 7783 /** 7784 * Request to obtain outlining spans in file. 7785 */ 7786 interface OutliningSpansRequest extends FileRequest { 7787 command: CommandTypes.GetOutliningSpans; 7788 } 7789 interface OutliningSpan { 7790 /** The span of the document to actually collapse. */ 7791 textSpan: TextSpan; 7792 /** The span of the document to display when the user hovers over the collapsed span. */ 7793 hintSpan: TextSpan; 7794 /** The text to display in the editor for the collapsed region. */ 7795 bannerText: string; 7796 /** 7797 * Whether or not this region should be automatically collapsed when 7798 * the 'Collapse to Definitions' command is invoked. 7799 */ 7800 autoCollapse: boolean; 7801 /** 7802 * Classification of the contents of the span 7803 */ 7804 kind: OutliningSpanKind; 7805 } 7806 /** 7807 * Response to OutliningSpansRequest request. 7808 */ 7809 interface OutliningSpansResponse extends Response { 7810 body?: OutliningSpan[]; 7811 } 7812 /** 7813 * A request to get indentation for a location in file 7814 */ 7815 interface IndentationRequest extends FileLocationRequest { 7816 command: CommandTypes.Indentation; 7817 arguments: IndentationRequestArgs; 7818 } 7819 /** 7820 * Response for IndentationRequest request. 7821 */ 7822 interface IndentationResponse extends Response { 7823 body?: IndentationResult; 7824 } 7825 /** 7826 * Indentation result representing where indentation should be placed 7827 */ 7828 interface IndentationResult { 7829 /** 7830 * The base position in the document that the indent should be relative to 7831 */ 7832 position: number; 7833 /** 7834 * The number of columns the indent should be at relative to the position's column. 7835 */ 7836 indentation: number; 7837 } 7838 /** 7839 * Arguments for IndentationRequest request. 7840 */ 7841 interface IndentationRequestArgs extends FileLocationRequestArgs { 7842 /** 7843 * An optional set of settings to be used when computing indentation. 7844 * If argument is omitted - then it will use settings for file that were previously set via 'configure' request or global settings. 7845 */ 7846 options?: EditorSettings; 7847 } 7848 /** 7849 * Arguments for ProjectInfoRequest request. 7850 */ 7851 interface ProjectInfoRequestArgs extends FileRequestArgs { 7852 /** 7853 * Indicate if the file name list of the project is needed 7854 */ 7855 needFileNameList: boolean; 7856 } 7857 /** 7858 * A request to get the project information of the current file. 7859 */ 7860 interface ProjectInfoRequest extends Request { 7861 command: CommandTypes.ProjectInfo; 7862 arguments: ProjectInfoRequestArgs; 7863 } 7864 /** 7865 * A request to retrieve compiler options diagnostics for a project 7866 */ 7867 interface CompilerOptionsDiagnosticsRequest extends Request { 7868 arguments: CompilerOptionsDiagnosticsRequestArgs; 7869 } 7870 /** 7871 * Arguments for CompilerOptionsDiagnosticsRequest request. 7872 */ 7873 interface CompilerOptionsDiagnosticsRequestArgs { 7874 /** 7875 * Name of the project to retrieve compiler options diagnostics. 7876 */ 7877 projectFileName: string; 7878 } 7879 /** 7880 * Response message body for "projectInfo" request 7881 */ 7882 interface ProjectInfo { 7883 /** 7884 * For configured project, this is the normalized path of the 'tsconfig.json' file 7885 * For inferred project, this is undefined 7886 */ 7887 configFileName: string; 7888 /** 7889 * The list of normalized file name in the project, including 'lib.d.ts' 7890 */ 7891 fileNames?: string[]; 7892 /** 7893 * Indicates if the project has a active language service instance 7894 */ 7895 languageServiceDisabled?: boolean; 7896 } 7897 /** 7898 * Represents diagnostic info that includes location of diagnostic in two forms 7899 * - start position and length of the error span 7900 * - startLocation and endLocation - a pair of Location objects that store start/end line and offset of the error span. 7901 */ 7902 interface DiagnosticWithLinePosition { 7903 message: string; 7904 start: number; 7905 length: number; 7906 startLocation: Location; 7907 endLocation: Location; 7908 category: string; 7909 code: number; 7910 /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */ 7911 reportsUnnecessary?: {}; 7912 reportsDeprecated?: {}; 7913 relatedInformation?: DiagnosticRelatedInformation[]; 7914 } 7915 /** 7916 * Response message for "projectInfo" request 7917 */ 7918 interface ProjectInfoResponse extends Response { 7919 body?: ProjectInfo; 7920 } 7921 /** 7922 * Request whose sole parameter is a file name. 7923 */ 7924 interface FileRequest extends Request { 7925 arguments: FileRequestArgs; 7926 } 7927 /** 7928 * Instances of this interface specify a location in a source file: 7929 * (file, line, character offset), where line and character offset are 1-based. 7930 */ 7931 interface FileLocationRequestArgs extends FileRequestArgs { 7932 /** 7933 * The line number for the request (1-based). 7934 */ 7935 line: number; 7936 /** 7937 * The character offset (on the line) for the request (1-based). 7938 */ 7939 offset: number; 7940 } 7941 type FileLocationOrRangeRequestArgs = FileLocationRequestArgs | FileRangeRequestArgs; 7942 /** 7943 * Request refactorings at a given position or selection area. 7944 */ 7945 interface GetApplicableRefactorsRequest extends Request { 7946 command: CommandTypes.GetApplicableRefactors; 7947 arguments: GetApplicableRefactorsRequestArgs; 7948 } 7949 type GetApplicableRefactorsRequestArgs = FileLocationOrRangeRequestArgs & { 7950 triggerReason?: RefactorTriggerReason; 7951 kind?: string; 7952 }; 7953 type RefactorTriggerReason = "implicit" | "invoked"; 7954 /** 7955 * Response is a list of available refactorings. 7956 * Each refactoring exposes one or more "Actions"; a user selects one action to invoke a refactoring 7957 */ 7958 interface GetApplicableRefactorsResponse extends Response { 7959 body?: ApplicableRefactorInfo[]; 7960 } 7961 /** 7962 * A set of one or more available refactoring actions, grouped under a parent refactoring. 7963 */ 7964 interface ApplicableRefactorInfo { 7965 /** 7966 * The programmatic name of the refactoring 7967 */ 7968 name: string; 7969 /** 7970 * A description of this refactoring category to show to the user. 7971 * If the refactoring gets inlined (see below), this text will not be visible. 7972 */ 7973 description: string; 7974 /** 7975 * Inlineable refactorings can have their actions hoisted out to the top level 7976 * of a context menu. Non-inlineanable refactorings should always be shown inside 7977 * their parent grouping. 7978 * 7979 * If not specified, this value is assumed to be 'true' 7980 */ 7981 inlineable?: boolean; 7982 actions: RefactorActionInfo[]; 7983 } 7984 /** 7985 * Represents a single refactoring action - for example, the "Extract Method..." refactor might 7986 * offer several actions, each corresponding to a surround class or closure to extract into. 7987 */ 7988 interface RefactorActionInfo { 7989 /** 7990 * The programmatic name of the refactoring action 7991 */ 7992 name: string; 7993 /** 7994 * A description of this refactoring action to show to the user. 7995 * If the parent refactoring is inlined away, this will be the only text shown, 7996 * so this description should make sense by itself if the parent is inlineable=true 7997 */ 7998 description: string; 7999 /** 8000 * A message to show to the user if the refactoring cannot be applied in 8001 * the current context. 8002 */ 8003 notApplicableReason?: string; 8004 /** 8005 * The hierarchical dotted name of the refactor action. 8006 */ 8007 kind?: string; 8008 } 8009 interface GetEditsForRefactorRequest extends Request { 8010 command: CommandTypes.GetEditsForRefactor; 8011 arguments: GetEditsForRefactorRequestArgs; 8012 } 8013 /** 8014 * Request the edits that a particular refactoring action produces. 8015 * Callers must specify the name of the refactor and the name of the action. 8016 */ 8017 type GetEditsForRefactorRequestArgs = FileLocationOrRangeRequestArgs & { 8018 refactor: string; 8019 action: string; 8020 }; 8021 interface GetEditsForRefactorResponse extends Response { 8022 body?: RefactorEditInfo; 8023 } 8024 interface RefactorEditInfo { 8025 edits: FileCodeEdits[]; 8026 /** 8027 * An optional location where the editor should start a rename operation once 8028 * the refactoring edits have been applied 8029 */ 8030 renameLocation?: Location; 8031 renameFilename?: string; 8032 } 8033 /** 8034 * Organize imports by: 8035 * 1) Removing unused imports 8036 * 2) Coalescing imports from the same module 8037 * 3) Sorting imports 8038 */ 8039 interface OrganizeImportsRequest extends Request { 8040 command: CommandTypes.OrganizeImports; 8041 arguments: OrganizeImportsRequestArgs; 8042 } 8043 type OrganizeImportsScope = GetCombinedCodeFixScope; 8044 enum OrganizeImportsMode { 8045 All = "All", 8046 SortAndCombine = "SortAndCombine", 8047 RemoveUnused = "RemoveUnused" 8048 } 8049 interface OrganizeImportsRequestArgs { 8050 scope: OrganizeImportsScope; 8051 /** @deprecated Use `mode` instead */ 8052 skipDestructiveCodeActions?: boolean; 8053 mode?: OrganizeImportsMode; 8054 } 8055 interface OrganizeImportsResponse extends Response { 8056 body: readonly FileCodeEdits[]; 8057 } 8058 interface GetEditsForFileRenameRequest extends Request { 8059 command: CommandTypes.GetEditsForFileRename; 8060 arguments: GetEditsForFileRenameRequestArgs; 8061 } 8062 /** Note: Paths may also be directories. */ 8063 interface GetEditsForFileRenameRequestArgs { 8064 readonly oldFilePath: string; 8065 readonly newFilePath: string; 8066 } 8067 interface GetEditsForFileRenameResponse extends Response { 8068 body: readonly FileCodeEdits[]; 8069 } 8070 /** 8071 * Request for the available codefixes at a specific position. 8072 */ 8073 interface CodeFixRequest extends Request { 8074 command: CommandTypes.GetCodeFixes; 8075 arguments: CodeFixRequestArgs; 8076 } 8077 interface GetCombinedCodeFixRequest extends Request { 8078 command: CommandTypes.GetCombinedCodeFix; 8079 arguments: GetCombinedCodeFixRequestArgs; 8080 } 8081 interface GetCombinedCodeFixResponse extends Response { 8082 body: CombinedCodeActions; 8083 } 8084 interface ApplyCodeActionCommandRequest extends Request { 8085 command: CommandTypes.ApplyCodeActionCommand; 8086 arguments: ApplyCodeActionCommandRequestArgs; 8087 } 8088 interface ApplyCodeActionCommandResponse extends Response { 8089 } 8090 interface FileRangeRequestArgs extends FileRequestArgs { 8091 /** 8092 * The line number for the request (1-based). 8093 */ 8094 startLine: number; 8095 /** 8096 * The character offset (on the line) for the request (1-based). 8097 */ 8098 startOffset: number; 8099 /** 8100 * The line number for the request (1-based). 8101 */ 8102 endLine: number; 8103 /** 8104 * The character offset (on the line) for the request (1-based). 8105 */ 8106 endOffset: number; 8107 } 8108 /** 8109 * Instances of this interface specify errorcodes on a specific location in a sourcefile. 8110 */ 8111 interface CodeFixRequestArgs extends FileRangeRequestArgs { 8112 /** 8113 * Errorcodes we want to get the fixes for. 8114 */ 8115 errorCodes: readonly number[]; 8116 } 8117 interface GetCombinedCodeFixRequestArgs { 8118 scope: GetCombinedCodeFixScope; 8119 fixId: {}; 8120 } 8121 interface GetCombinedCodeFixScope { 8122 type: "file"; 8123 args: FileRequestArgs; 8124 } 8125 interface ApplyCodeActionCommandRequestArgs { 8126 /** May also be an array of commands. */ 8127 command: {}; 8128 } 8129 /** 8130 * Response for GetCodeFixes request. 8131 */ 8132 interface GetCodeFixesResponse extends Response { 8133 body?: CodeAction[]; 8134 } 8135 /** 8136 * A request whose arguments specify a file location (file, line, col). 8137 */ 8138 interface FileLocationRequest extends FileRequest { 8139 arguments: FileLocationRequestArgs; 8140 } 8141 /** 8142 * A request to get codes of supported code fixes. 8143 */ 8144 interface GetSupportedCodeFixesRequest extends Request { 8145 command: CommandTypes.GetSupportedCodeFixes; 8146 } 8147 /** 8148 * A response for GetSupportedCodeFixesRequest request. 8149 */ 8150 interface GetSupportedCodeFixesResponse extends Response { 8151 /** 8152 * List of error codes supported by the server. 8153 */ 8154 body?: string[]; 8155 } 8156 /** 8157 * A request to get encoded semantic classifications for a span in the file 8158 */ 8159 interface EncodedSemanticClassificationsRequest extends FileRequest { 8160 arguments: EncodedSemanticClassificationsRequestArgs; 8161 } 8162 /** 8163 * Arguments for EncodedSemanticClassificationsRequest request. 8164 */ 8165 interface EncodedSemanticClassificationsRequestArgs extends FileRequestArgs { 8166 /** 8167 * Start position of the span. 8168 */ 8169 start: number; 8170 /** 8171 * Length of the span. 8172 */ 8173 length: number; 8174 /** 8175 * Optional parameter for the semantic highlighting response, if absent it 8176 * defaults to "original". 8177 */ 8178 format?: "original" | "2020"; 8179 } 8180 /** The response for a EncodedSemanticClassificationsRequest */ 8181 interface EncodedSemanticClassificationsResponse extends Response { 8182 body?: EncodedSemanticClassificationsResponseBody; 8183 } 8184 /** 8185 * Implementation response message. Gives series of text spans depending on the format ar. 8186 */ 8187 interface EncodedSemanticClassificationsResponseBody { 8188 endOfLineState: EndOfLineState; 8189 spans: number[]; 8190 } 8191 /** 8192 * Arguments in document highlight request; include: filesToSearch, file, 8193 * line, offset. 8194 */ 8195 interface DocumentHighlightsRequestArgs extends FileLocationRequestArgs { 8196 /** 8197 * List of files to search for document highlights. 8198 */ 8199 filesToSearch: string[]; 8200 } 8201 /** 8202 * Go to definition request; value of command field is 8203 * "definition". Return response giving the file locations that 8204 * define the symbol found in file at location line, col. 8205 */ 8206 interface DefinitionRequest extends FileLocationRequest { 8207 command: CommandTypes.Definition; 8208 } 8209 interface DefinitionAndBoundSpanRequest extends FileLocationRequest { 8210 readonly command: CommandTypes.DefinitionAndBoundSpan; 8211 } 8212 interface FindSourceDefinitionRequest extends FileLocationRequest { 8213 readonly command: CommandTypes.FindSourceDefinition; 8214 } 8215 interface DefinitionAndBoundSpanResponse extends Response { 8216 readonly body: DefinitionInfoAndBoundSpan; 8217 } 8218 /** 8219 * Go to type request; value of command field is 8220 * "typeDefinition". Return response giving the file locations that 8221 * define the type for the symbol found in file at location line, col. 8222 */ 8223 interface TypeDefinitionRequest extends FileLocationRequest { 8224 command: CommandTypes.TypeDefinition; 8225 } 8226 /** 8227 * Go to implementation request; value of command field is 8228 * "implementation". Return response giving the file locations that 8229 * implement the symbol found in file at location line, col. 8230 */ 8231 interface ImplementationRequest extends FileLocationRequest { 8232 command: CommandTypes.Implementation; 8233 } 8234 /** 8235 * Location in source code expressed as (one-based) line and (one-based) column offset. 8236 */ 8237 interface Location { 8238 line: number; 8239 offset: number; 8240 } 8241 /** 8242 * Object found in response messages defining a span of text in source code. 8243 */ 8244 interface TextSpan { 8245 /** 8246 * First character of the definition. 8247 */ 8248 start: Location; 8249 /** 8250 * One character past last character of the definition. 8251 */ 8252 end: Location; 8253 } 8254 /** 8255 * Object found in response messages defining a span of text in a specific source file. 8256 */ 8257 interface FileSpan extends TextSpan { 8258 /** 8259 * File containing text span. 8260 */ 8261 file: string; 8262 } 8263 interface JSDocTagInfo { 8264 /** Name of the JSDoc tag */ 8265 name: string; 8266 /** 8267 * Comment text after the JSDoc tag -- the text after the tag name until the next tag or end of comment 8268 * Display parts when UserPreferences.displayPartsForJSDoc is true, flattened to string otherwise. 8269 */ 8270 text?: string | SymbolDisplayPart[]; 8271 } 8272 interface TextSpanWithContext extends TextSpan { 8273 contextStart?: Location; 8274 contextEnd?: Location; 8275 } 8276 interface FileSpanWithContext extends FileSpan, TextSpanWithContext { 8277 } 8278 interface DefinitionInfo extends FileSpanWithContext { 8279 /** 8280 * When true, the file may or may not exist. 8281 */ 8282 unverified?: boolean; 8283 } 8284 interface DefinitionInfoAndBoundSpan { 8285 definitions: readonly DefinitionInfo[]; 8286 textSpan: TextSpan; 8287 } 8288 /** 8289 * Definition response message. Gives text range for definition. 8290 */ 8291 interface DefinitionResponse extends Response { 8292 body?: DefinitionInfo[]; 8293 } 8294 interface DefinitionInfoAndBoundSpanResponse extends Response { 8295 body?: DefinitionInfoAndBoundSpan; 8296 } 8297 /** @deprecated Use `DefinitionInfoAndBoundSpanResponse` instead. */ 8298 type DefinitionInfoAndBoundSpanReponse = DefinitionInfoAndBoundSpanResponse; 8299 /** 8300 * Definition response message. Gives text range for definition. 8301 */ 8302 interface TypeDefinitionResponse extends Response { 8303 body?: FileSpanWithContext[]; 8304 } 8305 /** 8306 * Implementation response message. Gives text range for implementations. 8307 */ 8308 interface ImplementationResponse extends Response { 8309 body?: FileSpanWithContext[]; 8310 } 8311 /** 8312 * Request to get brace completion for a location in the file. 8313 */ 8314 interface BraceCompletionRequest extends FileLocationRequest { 8315 command: CommandTypes.BraceCompletion; 8316 arguments: BraceCompletionRequestArgs; 8317 } 8318 /** 8319 * Argument for BraceCompletionRequest request. 8320 */ 8321 interface BraceCompletionRequestArgs extends FileLocationRequestArgs { 8322 /** 8323 * Kind of opening brace 8324 */ 8325 openingBrace: string; 8326 } 8327 interface JsxClosingTagRequest extends FileLocationRequest { 8328 readonly command: CommandTypes.JsxClosingTag; 8329 readonly arguments: JsxClosingTagRequestArgs; 8330 } 8331 interface JsxClosingTagRequestArgs extends FileLocationRequestArgs { 8332 } 8333 interface JsxClosingTagResponse extends Response { 8334 readonly body: TextInsertion; 8335 } 8336 /** 8337 * @deprecated 8338 * Get occurrences request; value of command field is 8339 * "occurrences". Return response giving spans that are relevant 8340 * in the file at a given line and column. 8341 */ 8342 interface OccurrencesRequest extends FileLocationRequest { 8343 command: CommandTypes.Occurrences; 8344 } 8345 /** @deprecated */ 8346 interface OccurrencesResponseItem extends FileSpanWithContext { 8347 /** 8348 * True if the occurrence is a write location, false otherwise. 8349 */ 8350 isWriteAccess: boolean; 8351 /** 8352 * True if the occurrence is in a string, undefined otherwise; 8353 */ 8354 isInString?: true; 8355 } 8356 /** @deprecated */ 8357 interface OccurrencesResponse extends Response { 8358 body?: OccurrencesResponseItem[]; 8359 } 8360 /** 8361 * Get document highlights request; value of command field is 8362 * "documentHighlights". Return response giving spans that are relevant 8363 * in the file at a given line and column. 8364 */ 8365 interface DocumentHighlightsRequest extends FileLocationRequest { 8366 command: CommandTypes.DocumentHighlights; 8367 arguments: DocumentHighlightsRequestArgs; 8368 } 8369 /** 8370 * Span augmented with extra information that denotes the kind of the highlighting to be used for span. 8371 */ 8372 interface HighlightSpan extends TextSpanWithContext { 8373 kind: HighlightSpanKind; 8374 } 8375 /** 8376 * Represents a set of highligh spans for a give name 8377 */ 8378 interface DocumentHighlightsItem { 8379 /** 8380 * File containing highlight spans. 8381 */ 8382 file: string; 8383 /** 8384 * Spans to highlight in file. 8385 */ 8386 highlightSpans: HighlightSpan[]; 8387 } 8388 /** 8389 * Response for a DocumentHighlightsRequest request. 8390 */ 8391 interface DocumentHighlightsResponse extends Response { 8392 body?: DocumentHighlightsItem[]; 8393 } 8394 /** 8395 * Find references request; value of command field is 8396 * "references". Return response giving the file locations that 8397 * reference the symbol found in file at location line, col. 8398 */ 8399 interface ReferencesRequest extends FileLocationRequest { 8400 command: CommandTypes.References; 8401 } 8402 interface ReferencesResponseItem extends FileSpanWithContext { 8403 /** 8404 * Text of line containing the reference. Including this 8405 * with the response avoids latency of editor loading files 8406 * to show text of reference line (the server already has loaded the referencing files). 8407 * 8408 * If {@link UserPreferences.disableLineTextInReferences} is enabled, the property won't be filled 8409 */ 8410 lineText?: string; 8411 /** 8412 * True if reference is a write location, false otherwise. 8413 */ 8414 isWriteAccess: boolean; 8415 /** 8416 * Present only if the search was triggered from a declaration. 8417 * True indicates that the references refers to the same symbol 8418 * (i.e. has the same meaning) as the declaration that began the 8419 * search. 8420 */ 8421 isDefinition?: boolean; 8422 } 8423 /** 8424 * The body of a "references" response message. 8425 */ 8426 interface ReferencesResponseBody { 8427 /** 8428 * The file locations referencing the symbol. 8429 */ 8430 refs: readonly ReferencesResponseItem[]; 8431 /** 8432 * The name of the symbol. 8433 */ 8434 symbolName: string; 8435 /** 8436 * The start character offset of the symbol (on the line provided by the references request). 8437 */ 8438 symbolStartOffset: number; 8439 /** 8440 * The full display name of the symbol. 8441 */ 8442 symbolDisplayString: string; 8443 } 8444 /** 8445 * Response to "references" request. 8446 */ 8447 interface ReferencesResponse extends Response { 8448 body?: ReferencesResponseBody; 8449 } 8450 interface FileReferencesRequest extends FileRequest { 8451 command: CommandTypes.FileReferences; 8452 } 8453 interface FileReferencesResponseBody { 8454 /** 8455 * The file locations referencing the symbol. 8456 */ 8457 refs: readonly ReferencesResponseItem[]; 8458 /** 8459 * The name of the symbol. 8460 */ 8461 symbolName: string; 8462 } 8463 interface FileReferencesResponse extends Response { 8464 body?: FileReferencesResponseBody; 8465 } 8466 /** 8467 * Argument for RenameRequest request. 8468 */ 8469 interface RenameRequestArgs extends FileLocationRequestArgs { 8470 /** 8471 * Should text at specified location be found/changed in comments? 8472 */ 8473 findInComments?: boolean; 8474 /** 8475 * Should text at specified location be found/changed in strings? 8476 */ 8477 findInStrings?: boolean; 8478 } 8479 /** 8480 * Rename request; value of command field is "rename". Return 8481 * response giving the file locations that reference the symbol 8482 * found in file at location line, col. Also return full display 8483 * name of the symbol so that client can print it unambiguously. 8484 */ 8485 interface RenameRequest extends FileLocationRequest { 8486 command: CommandTypes.Rename; 8487 arguments: RenameRequestArgs; 8488 } 8489 /** 8490 * Information about the item to be renamed. 8491 */ 8492 type RenameInfo = RenameInfoSuccess | RenameInfoFailure; 8493 interface RenameInfoSuccess { 8494 /** 8495 * True if item can be renamed. 8496 */ 8497 canRename: true; 8498 /** 8499 * File or directory to rename. 8500 * If set, `getEditsForFileRename` should be called instead of `findRenameLocations`. 8501 */ 8502 fileToRename?: string; 8503 /** 8504 * Display name of the item to be renamed. 8505 */ 8506 displayName: string; 8507 /** 8508 * Full display name of item to be renamed. 8509 */ 8510 fullDisplayName: string; 8511 /** 8512 * The items's kind (such as 'className' or 'parameterName' or plain 'text'). 8513 */ 8514 kind: ScriptElementKind; 8515 /** 8516 * Optional modifiers for the kind (such as 'public'). 8517 */ 8518 kindModifiers: string; 8519 /** Span of text to rename. */ 8520 triggerSpan: TextSpan; 8521 } 8522 interface RenameInfoFailure { 8523 canRename: false; 8524 /** 8525 * Error message if item can not be renamed. 8526 */ 8527 localizedErrorMessage: string; 8528 } 8529 /** 8530 * A group of text spans, all in 'file'. 8531 */ 8532 interface SpanGroup { 8533 /** The file to which the spans apply */ 8534 file: string; 8535 /** The text spans in this group */ 8536 locs: RenameTextSpan[]; 8537 } 8538 interface RenameTextSpan extends TextSpanWithContext { 8539 readonly prefixText?: string; 8540 readonly suffixText?: string; 8541 } 8542 interface RenameResponseBody { 8543 /** 8544 * Information about the item to be renamed. 8545 */ 8546 info: RenameInfo; 8547 /** 8548 * An array of span groups (one per file) that refer to the item to be renamed. 8549 */ 8550 locs: readonly SpanGroup[]; 8551 } 8552 /** 8553 * Rename response message. 8554 */ 8555 interface RenameResponse extends Response { 8556 body?: RenameResponseBody; 8557 } 8558 /** 8559 * Represents a file in external project. 8560 * External project is project whose set of files, compilation options and open\close state 8561 * is maintained by the client (i.e. if all this data come from .csproj file in Visual Studio). 8562 * External project will exist even if all files in it are closed and should be closed explicitly. 8563 * If external project includes one or more tsconfig.json/jsconfig.json files then tsserver will 8564 * create configured project for every config file but will maintain a link that these projects were created 8565 * as a result of opening external project so they should be removed once external project is closed. 8566 */ 8567 interface ExternalFile { 8568 /** 8569 * Name of file file 8570 */ 8571 fileName: string; 8572 /** 8573 * Script kind of the file 8574 */ 8575 scriptKind?: ScriptKindName | ts.ScriptKind; 8576 /** 8577 * Whether file has mixed content (i.e. .cshtml file that combines html markup with C#/JavaScript) 8578 */ 8579 hasMixedContent?: boolean; 8580 /** 8581 * Content of the file 8582 */ 8583 content?: string; 8584 } 8585 /** 8586 * Represent an external project 8587 */ 8588 interface ExternalProject { 8589 /** 8590 * Project name 8591 */ 8592 projectFileName: string; 8593 /** 8594 * List of root files in project 8595 */ 8596 rootFiles: ExternalFile[]; 8597 /** 8598 * Compiler options for the project 8599 */ 8600 options: ExternalProjectCompilerOptions; 8601 /** 8602 * @deprecated typingOptions. Use typeAcquisition instead 8603 */ 8604 typingOptions?: TypeAcquisition; 8605 /** 8606 * Explicitly specified type acquisition for the project 8607 */ 8608 typeAcquisition?: TypeAcquisition; 8609 } 8610 interface CompileOnSaveMixin { 8611 /** 8612 * If compile on save is enabled for the project 8613 */ 8614 compileOnSave?: boolean; 8615 } 8616 /** 8617 * For external projects, some of the project settings are sent together with 8618 * compiler settings. 8619 */ 8620 type ExternalProjectCompilerOptions = CompilerOptions & CompileOnSaveMixin & WatchOptions; 8621 interface FileWithProjectReferenceRedirectInfo { 8622 /** 8623 * Name of file 8624 */ 8625 fileName: string; 8626 /** 8627 * True if the file is primarily included in a referenced project 8628 */ 8629 isSourceOfProjectReferenceRedirect: boolean; 8630 } 8631 /** 8632 * Represents a set of changes that happen in project 8633 */ 8634 interface ProjectChanges { 8635 /** 8636 * List of added files 8637 */ 8638 added: string[] | FileWithProjectReferenceRedirectInfo[]; 8639 /** 8640 * List of removed files 8641 */ 8642 removed: string[] | FileWithProjectReferenceRedirectInfo[]; 8643 /** 8644 * List of updated files 8645 */ 8646 updated: string[] | FileWithProjectReferenceRedirectInfo[]; 8647 /** 8648 * List of files that have had their project reference redirect status updated 8649 * Only provided when the synchronizeProjectList request has includeProjectReferenceRedirectInfo set to true 8650 */ 8651 updatedRedirects?: FileWithProjectReferenceRedirectInfo[]; 8652 } 8653 /** 8654 * Information found in a configure request. 8655 */ 8656 interface ConfigureRequestArguments { 8657 /** 8658 * Information about the host, for example 'Emacs 24.4' or 8659 * 'Sublime Text version 3075' 8660 */ 8661 hostInfo?: string; 8662 /** 8663 * If present, tab settings apply only to this file. 8664 */ 8665 file?: string; 8666 /** 8667 * The format options to use during formatting and other code editing features. 8668 */ 8669 formatOptions?: FormatCodeSettings; 8670 preferences?: UserPreferences; 8671 /** 8672 * The host's additional supported .js file extensions 8673 */ 8674 extraFileExtensions?: FileExtensionInfo[]; 8675 watchOptions?: WatchOptions; 8676 } 8677 enum WatchFileKind { 8678 FixedPollingInterval = "FixedPollingInterval", 8679 PriorityPollingInterval = "PriorityPollingInterval", 8680 DynamicPriorityPolling = "DynamicPriorityPolling", 8681 FixedChunkSizePolling = "FixedChunkSizePolling", 8682 UseFsEvents = "UseFsEvents", 8683 UseFsEventsOnParentDirectory = "UseFsEventsOnParentDirectory" 8684 } 8685 enum WatchDirectoryKind { 8686 UseFsEvents = "UseFsEvents", 8687 FixedPollingInterval = "FixedPollingInterval", 8688 DynamicPriorityPolling = "DynamicPriorityPolling", 8689 FixedChunkSizePolling = "FixedChunkSizePolling" 8690 } 8691 enum PollingWatchKind { 8692 FixedInterval = "FixedInterval", 8693 PriorityInterval = "PriorityInterval", 8694 DynamicPriority = "DynamicPriority", 8695 FixedChunkSize = "FixedChunkSize" 8696 } 8697 interface WatchOptions { 8698 watchFile?: WatchFileKind | ts.WatchFileKind; 8699 watchDirectory?: WatchDirectoryKind | ts.WatchDirectoryKind; 8700 fallbackPolling?: PollingWatchKind | ts.PollingWatchKind; 8701 synchronousWatchDirectory?: boolean; 8702 excludeDirectories?: string[]; 8703 excludeFiles?: string[]; 8704 [option: string]: CompilerOptionsValue | undefined; 8705 } 8706 /** 8707 * Configure request; value of command field is "configure". Specifies 8708 * host information, such as host type, tab size, and indent size. 8709 */ 8710 interface ConfigureRequest extends Request { 8711 command: CommandTypes.Configure; 8712 arguments: ConfigureRequestArguments; 8713 } 8714 /** 8715 * Response to "configure" request. This is just an acknowledgement, so 8716 * no body field is required. 8717 */ 8718 interface ConfigureResponse extends Response { 8719 } 8720 interface ConfigurePluginRequestArguments { 8721 pluginName: string; 8722 configuration: any; 8723 } 8724 interface ConfigurePluginRequest extends Request { 8725 command: CommandTypes.ConfigurePlugin; 8726 arguments: ConfigurePluginRequestArguments; 8727 } 8728 interface ConfigurePluginResponse extends Response { 8729 } 8730 interface SelectionRangeRequest extends FileRequest { 8731 command: CommandTypes.SelectionRange; 8732 arguments: SelectionRangeRequestArgs; 8733 } 8734 interface SelectionRangeRequestArgs extends FileRequestArgs { 8735 locations: Location[]; 8736 } 8737 interface SelectionRangeResponse extends Response { 8738 body?: SelectionRange[]; 8739 } 8740 interface SelectionRange { 8741 textSpan: TextSpan; 8742 parent?: SelectionRange; 8743 } 8744 interface ToggleLineCommentRequest extends FileRequest { 8745 command: CommandTypes.ToggleLineComment; 8746 arguments: FileRangeRequestArgs; 8747 } 8748 interface ToggleMultilineCommentRequest extends FileRequest { 8749 command: CommandTypes.ToggleMultilineComment; 8750 arguments: FileRangeRequestArgs; 8751 } 8752 interface CommentSelectionRequest extends FileRequest { 8753 command: CommandTypes.CommentSelection; 8754 arguments: FileRangeRequestArgs; 8755 } 8756 interface UncommentSelectionRequest extends FileRequest { 8757 command: CommandTypes.UncommentSelection; 8758 arguments: FileRangeRequestArgs; 8759 } 8760 /** 8761 * Information found in an "open" request. 8762 */ 8763 interface OpenRequestArgs extends FileRequestArgs { 8764 /** 8765 * Used when a version of the file content is known to be more up to date than the one on disk. 8766 * Then the known content will be used upon opening instead of the disk copy 8767 */ 8768 fileContent?: string; 8769 /** 8770 * Used to specify the script kind of the file explicitly. It could be one of the following: 8771 * "TS", "JS", "TSX", "JSX" 8772 */ 8773 scriptKindName?: ScriptKindName; 8774 /** 8775 * Used to limit the searching for project config file. If given the searching will stop at this 8776 * root path; otherwise it will go all the way up to the dist root path. 8777 */ 8778 projectRootPath?: string; 8779 } 8780 type ScriptKindName = "TS" | "JS" | "TSX" | "JSX" | "ETS"; 8781 /** 8782 * Open request; value of command field is "open". Notify the 8783 * server that the client has file open. The server will not 8784 * monitor the filesystem for changes in this file and will assume 8785 * that the client is updating the server (using the change and/or 8786 * reload messages) when the file changes. Server does not currently 8787 * send a response to an open request. 8788 */ 8789 interface OpenRequest extends Request { 8790 command: CommandTypes.Open; 8791 arguments: OpenRequestArgs; 8792 } 8793 /** 8794 * Request to open or update external project 8795 */ 8796 interface OpenExternalProjectRequest extends Request { 8797 command: CommandTypes.OpenExternalProject; 8798 arguments: OpenExternalProjectArgs; 8799 } 8800 /** 8801 * Arguments to OpenExternalProjectRequest request 8802 */ 8803 type OpenExternalProjectArgs = ExternalProject; 8804 /** 8805 * Request to open multiple external projects 8806 */ 8807 interface OpenExternalProjectsRequest extends Request { 8808 command: CommandTypes.OpenExternalProjects; 8809 arguments: OpenExternalProjectsArgs; 8810 } 8811 /** 8812 * Arguments to OpenExternalProjectsRequest 8813 */ 8814 interface OpenExternalProjectsArgs { 8815 /** 8816 * List of external projects to open or update 8817 */ 8818 projects: ExternalProject[]; 8819 } 8820 /** 8821 * Response to OpenExternalProjectRequest request. This is just an acknowledgement, so 8822 * no body field is required. 8823 */ 8824 interface OpenExternalProjectResponse extends Response { 8825 } 8826 /** 8827 * Response to OpenExternalProjectsRequest request. This is just an acknowledgement, so 8828 * no body field is required. 8829 */ 8830 interface OpenExternalProjectsResponse extends Response { 8831 } 8832 /** 8833 * Request to close external project. 8834 */ 8835 interface CloseExternalProjectRequest extends Request { 8836 command: CommandTypes.CloseExternalProject; 8837 arguments: CloseExternalProjectRequestArgs; 8838 } 8839 /** 8840 * Arguments to CloseExternalProjectRequest request 8841 */ 8842 interface CloseExternalProjectRequestArgs { 8843 /** 8844 * Name of the project to close 8845 */ 8846 projectFileName: string; 8847 } 8848 /** 8849 * Response to CloseExternalProjectRequest request. This is just an acknowledgement, so 8850 * no body field is required. 8851 */ 8852 interface CloseExternalProjectResponse extends Response { 8853 } 8854 /** 8855 * Request to synchronize list of open files with the client 8856 */ 8857 interface UpdateOpenRequest extends Request { 8858 command: CommandTypes.UpdateOpen; 8859 arguments: UpdateOpenRequestArgs; 8860 } 8861 /** 8862 * Arguments to UpdateOpenRequest 8863 */ 8864 interface UpdateOpenRequestArgs { 8865 /** 8866 * List of newly open files 8867 */ 8868 openFiles?: OpenRequestArgs[]; 8869 /** 8870 * List of open files files that were changes 8871 */ 8872 changedFiles?: FileCodeEdits[]; 8873 /** 8874 * List of files that were closed 8875 */ 8876 closedFiles?: string[]; 8877 } 8878 /** 8879 * External projects have a typeAcquisition option so they need to be added separately to compiler options for inferred projects. 8880 */ 8881 type InferredProjectCompilerOptions = ExternalProjectCompilerOptions & TypeAcquisition; 8882 /** 8883 * Request to set compiler options for inferred projects. 8884 * External projects are opened / closed explicitly. 8885 * Configured projects are opened when user opens loose file that has 'tsconfig.json' or 'jsconfig.json' anywhere in one of containing folders. 8886 * This configuration file will be used to obtain a list of files and configuration settings for the project. 8887 * Inferred projects are created when user opens a loose file that is not the part of external project 8888 * or configured project and will contain only open file and transitive closure of referenced files if 'useOneInferredProject' is false, 8889 * or all open loose files and its transitive closure of referenced files if 'useOneInferredProject' is true. 8890 */ 8891 interface SetCompilerOptionsForInferredProjectsRequest extends Request { 8892 command: CommandTypes.CompilerOptionsForInferredProjects; 8893 arguments: SetCompilerOptionsForInferredProjectsArgs; 8894 } 8895 /** 8896 * Argument for SetCompilerOptionsForInferredProjectsRequest request. 8897 */ 8898 interface SetCompilerOptionsForInferredProjectsArgs { 8899 /** 8900 * Compiler options to be used with inferred projects. 8901 */ 8902 options: InferredProjectCompilerOptions; 8903 /** 8904 * Specifies the project root path used to scope compiler options. 8905 * It is an error to provide this property if the server has not been started with 8906 * `useInferredProjectPerProjectRoot` enabled. 8907 */ 8908 projectRootPath?: string; 8909 } 8910 /** 8911 * Response to SetCompilerOptionsForInferredProjectsResponse request. This is just an acknowledgement, so 8912 * no body field is required. 8913 */ 8914 interface SetCompilerOptionsForInferredProjectsResponse extends Response { 8915 } 8916 /** 8917 * Exit request; value of command field is "exit". Ask the server process 8918 * to exit. 8919 */ 8920 interface ExitRequest extends Request { 8921 command: CommandTypes.Exit; 8922 } 8923 /** 8924 * Close request; value of command field is "close". Notify the 8925 * server that the client has closed a previously open file. If 8926 * file is still referenced by open files, the server will resume 8927 * monitoring the filesystem for changes to file. Server does not 8928 * currently send a response to a close request. 8929 */ 8930 interface CloseRequest extends FileRequest { 8931 command: CommandTypes.Close; 8932 } 8933 /** 8934 * Request to obtain the list of files that should be regenerated if target file is recompiled. 8935 * NOTE: this us query-only operation and does not generate any output on disk. 8936 */ 8937 interface CompileOnSaveAffectedFileListRequest extends FileRequest { 8938 command: CommandTypes.CompileOnSaveAffectedFileList; 8939 } 8940 /** 8941 * Contains a list of files that should be regenerated in a project 8942 */ 8943 interface CompileOnSaveAffectedFileListSingleProject { 8944 /** 8945 * Project name 8946 */ 8947 projectFileName: string; 8948 /** 8949 * List of files names that should be recompiled 8950 */ 8951 fileNames: string[]; 8952 /** 8953 * true if project uses outFile or out compiler option 8954 */ 8955 projectUsesOutFile: boolean; 8956 } 8957 /** 8958 * Response for CompileOnSaveAffectedFileListRequest request; 8959 */ 8960 interface CompileOnSaveAffectedFileListResponse extends Response { 8961 body: CompileOnSaveAffectedFileListSingleProject[]; 8962 } 8963 /** 8964 * Request to recompile the file. All generated outputs (.js, .d.ts or .js.map files) is written on disk. 8965 */ 8966 interface CompileOnSaveEmitFileRequest extends FileRequest { 8967 command: CommandTypes.CompileOnSaveEmitFile; 8968 arguments: CompileOnSaveEmitFileRequestArgs; 8969 } 8970 /** 8971 * Arguments for CompileOnSaveEmitFileRequest 8972 */ 8973 interface CompileOnSaveEmitFileRequestArgs extends FileRequestArgs { 8974 /** 8975 * if true - then file should be recompiled even if it does not have any changes. 8976 */ 8977 forced?: boolean; 8978 includeLinePosition?: boolean; 8979 /** if true - return response as object with emitSkipped and diagnostics */ 8980 richResponse?: boolean; 8981 } 8982 interface CompileOnSaveEmitFileResponse extends Response { 8983 body: boolean | EmitResult; 8984 } 8985 interface EmitResult { 8986 emitSkipped: boolean; 8987 diagnostics: Diagnostic[] | DiagnosticWithLinePosition[]; 8988 } 8989 /** 8990 * Quickinfo request; value of command field is 8991 * "quickinfo". Return response giving a quick type and 8992 * documentation string for the symbol found in file at location 8993 * line, col. 8994 */ 8995 interface QuickInfoRequest extends FileLocationRequest { 8996 command: CommandTypes.Quickinfo; 8997 arguments: FileLocationRequestArgs; 8998 } 8999 /** 9000 * Body of QuickInfoResponse. 9001 */ 9002 interface QuickInfoResponseBody { 9003 /** 9004 * The symbol's kind (such as 'className' or 'parameterName' or plain 'text'). 9005 */ 9006 kind: ScriptElementKind; 9007 /** 9008 * Optional modifiers for the kind (such as 'public'). 9009 */ 9010 kindModifiers: string; 9011 /** 9012 * Starting file location of symbol. 9013 */ 9014 start: Location; 9015 /** 9016 * One past last character of symbol. 9017 */ 9018 end: Location; 9019 /** 9020 * Type and kind of symbol. 9021 */ 9022 displayString: string; 9023 /** 9024 * Documentation associated with symbol. 9025 * Display parts when UserPreferences.displayPartsForJSDoc is true, flattened to string otherwise. 9026 */ 9027 documentation: string | SymbolDisplayPart[]; 9028 /** 9029 * JSDoc tags associated with symbol. 9030 */ 9031 tags: JSDocTagInfo[]; 9032 } 9033 /** 9034 * Quickinfo response message. 9035 */ 9036 interface QuickInfoResponse extends Response { 9037 body?: QuickInfoResponseBody; 9038 } 9039 /** 9040 * Arguments for format messages. 9041 */ 9042 interface FormatRequestArgs extends FileLocationRequestArgs { 9043 /** 9044 * Last line of range for which to format text in file. 9045 */ 9046 endLine: number; 9047 /** 9048 * Character offset on last line of range for which to format text in file. 9049 */ 9050 endOffset: number; 9051 /** 9052 * Format options to be used. 9053 */ 9054 options?: FormatCodeSettings; 9055 } 9056 /** 9057 * Format request; value of command field is "format". Return 9058 * response giving zero or more edit instructions. The edit 9059 * instructions will be sorted in file order. Applying the edit 9060 * instructions in reverse to file will result in correctly 9061 * reformatted text. 9062 */ 9063 interface FormatRequest extends FileLocationRequest { 9064 command: CommandTypes.Format; 9065 arguments: FormatRequestArgs; 9066 } 9067 /** 9068 * Object found in response messages defining an editing 9069 * instruction for a span of text in source code. The effect of 9070 * this instruction is to replace the text starting at start and 9071 * ending one character before end with newText. For an insertion, 9072 * the text span is empty. For a deletion, newText is empty. 9073 */ 9074 interface CodeEdit { 9075 /** 9076 * First character of the text span to edit. 9077 */ 9078 start: Location; 9079 /** 9080 * One character past last character of the text span to edit. 9081 */ 9082 end: Location; 9083 /** 9084 * Replace the span defined above with this string (may be 9085 * the empty string). 9086 */ 9087 newText: string; 9088 } 9089 interface FileCodeEdits { 9090 fileName: string; 9091 textChanges: CodeEdit[]; 9092 } 9093 interface CodeFixResponse extends Response { 9094 /** The code actions that are available */ 9095 body?: CodeFixAction[]; 9096 } 9097 interface CodeAction { 9098 /** Description of the code action to display in the UI of the editor */ 9099 description: string; 9100 /** Text changes to apply to each file as part of the code action */ 9101 changes: FileCodeEdits[]; 9102 /** A command is an opaque object that should be passed to `ApplyCodeActionCommandRequestArgs` without modification. */ 9103 commands?: {}[]; 9104 } 9105 interface CombinedCodeActions { 9106 changes: readonly FileCodeEdits[]; 9107 commands?: readonly {}[]; 9108 } 9109 interface CodeFixAction extends CodeAction { 9110 /** Short name to identify the fix, for use by telemetry. */ 9111 fixName: string; 9112 /** 9113 * If present, one may call 'getCombinedCodeFix' with this fixId. 9114 * This may be omitted to indicate that the code fix can't be applied in a group. 9115 */ 9116 fixId?: {}; 9117 /** Should be present if and only if 'fixId' is. */ 9118 fixAllDescription?: string; 9119 } 9120 /** 9121 * Format and format on key response message. 9122 */ 9123 interface FormatResponse extends Response { 9124 body?: CodeEdit[]; 9125 } 9126 /** 9127 * Arguments for format on key messages. 9128 */ 9129 interface FormatOnKeyRequestArgs extends FileLocationRequestArgs { 9130 /** 9131 * Key pressed (';', '\n', or '}'). 9132 */ 9133 key: string; 9134 options?: FormatCodeSettings; 9135 } 9136 /** 9137 * Format on key request; value of command field is 9138 * "formatonkey". Given file location and key typed (as string), 9139 * return response giving zero or more edit instructions. The 9140 * edit instructions will be sorted in file order. Applying the 9141 * edit instructions in reverse to file will result in correctly 9142 * reformatted text. 9143 */ 9144 interface FormatOnKeyRequest extends FileLocationRequest { 9145 command: CommandTypes.Formatonkey; 9146 arguments: FormatOnKeyRequestArgs; 9147 } 9148 type CompletionsTriggerCharacter = "." | '"' | "'" | "`" | "/" | "@" | "<" | "#" | " "; 9149 enum CompletionTriggerKind { 9150 /** Completion was triggered by typing an identifier, manual invocation (e.g Ctrl+Space) or via API. */ 9151 Invoked = 1, 9152 /** Completion was triggered by a trigger character. */ 9153 TriggerCharacter = 2, 9154 /** Completion was re-triggered as the current completion list is incomplete. */ 9155 TriggerForIncompleteCompletions = 3 9156 } 9157 /** 9158 * Arguments for completions messages. 9159 */ 9160 interface CompletionsRequestArgs extends FileLocationRequestArgs { 9161 /** 9162 * Optional prefix to apply to possible completions. 9163 */ 9164 prefix?: string; 9165 /** 9166 * Character that was responsible for triggering completion. 9167 * Should be `undefined` if a user manually requested completion. 9168 */ 9169 triggerCharacter?: CompletionsTriggerCharacter; 9170 triggerKind?: CompletionTriggerKind; 9171 /** 9172 * @deprecated Use UserPreferences.includeCompletionsForModuleExports 9173 */ 9174 includeExternalModuleExports?: boolean; 9175 /** 9176 * @deprecated Use UserPreferences.includeCompletionsWithInsertText 9177 */ 9178 includeInsertTextCompletions?: boolean; 9179 } 9180 interface EtsOptions { 9181 render: { 9182 method: string[]; 9183 decorator: string[]; 9184 }; 9185 components: string[]; 9186 libs: string[]; 9187 extend: { 9188 decorator: string[]; 9189 components: { 9190 name: string; 9191 type: string; 9192 instance: string; 9193 }[]; 9194 }; 9195 styles: { 9196 decorator: string; 9197 component: { 9198 name: string; 9199 type: string; 9200 instance: string; 9201 }; 9202 property: string; 9203 }; 9204 concurrent: { 9205 decorator: string; 9206 }; 9207 customComponent?: string; 9208 propertyDecorators: { 9209 name: string; 9210 needInitialization: boolean; 9211 }[]; 9212 emitDecorators: { 9213 name: string; 9214 emitParameters: boolean; 9215 }[]; 9216 syntaxComponents: { 9217 paramsUICallback: string[]; 9218 attrUICallback: { 9219 name: string; 9220 attributes: string[]; 9221 }[]; 9222 }; 9223 } 9224 /** 9225 * Completions request; value of command field is "completions". 9226 * Given a file location (file, line, col) and a prefix (which may 9227 * be the empty string), return the possible completions that 9228 * begin with prefix. 9229 */ 9230 interface CompletionsRequest extends FileLocationRequest { 9231 command: CommandTypes.Completions | CommandTypes.CompletionInfo; 9232 arguments: CompletionsRequestArgs; 9233 } 9234 /** 9235 * Arguments for completion details request. 9236 */ 9237 interface CompletionDetailsRequestArgs extends FileLocationRequestArgs { 9238 /** 9239 * Names of one or more entries for which to obtain details. 9240 */ 9241 entryNames: (string | CompletionEntryIdentifier)[]; 9242 } 9243 interface CompletionEntryIdentifier { 9244 name: string; 9245 source?: string; 9246 data?: unknown; 9247 } 9248 /** 9249 * Completion entry details request; value of command field is 9250 * "completionEntryDetails". Given a file location (file, line, 9251 * col) and an array of completion entry names return more 9252 * detailed information for each completion entry. 9253 */ 9254 interface CompletionDetailsRequest extends FileLocationRequest { 9255 command: CommandTypes.CompletionDetails; 9256 arguments: CompletionDetailsRequestArgs; 9257 } 9258 /** 9259 * Part of a symbol description. 9260 */ 9261 interface SymbolDisplayPart { 9262 /** 9263 * Text of an item describing the symbol. 9264 */ 9265 text: string; 9266 /** 9267 * The symbol's kind (such as 'className' or 'parameterName' or plain 'text'). 9268 */ 9269 kind: string; 9270 } 9271 /** A part of a symbol description that links from a jsdoc @link tag to a declaration */ 9272 interface JSDocLinkDisplayPart extends SymbolDisplayPart { 9273 /** The location of the declaration that the @link tag links to. */ 9274 target: FileSpan; 9275 } 9276 /** 9277 * An item found in a completion response. 9278 */ 9279 interface CompletionEntry { 9280 /** 9281 * The symbol's name. 9282 */ 9283 name: string; 9284 /** 9285 * The symbol's kind (such as 'className' or 'parameterName'). 9286 */ 9287 kind: ScriptElementKind; 9288 /** 9289 * Optional modifiers for the kind (such as 'public'). 9290 */ 9291 kindModifiers?: string; 9292 /** 9293 * A string that is used for comparing completion items so that they can be ordered. This 9294 * is often the same as the name but may be different in certain circumstances. 9295 */ 9296 sortText: string; 9297 /** 9298 * Text to insert instead of `name`. 9299 * This is used to support bracketed completions; If `name` might be "a-b" but `insertText` would be `["a-b"]`, 9300 * coupled with `replacementSpan` to replace a dotted access with a bracket access. 9301 */ 9302 insertText?: string; 9303 /** 9304 * `insertText` should be interpreted as a snippet if true. 9305 */ 9306 isSnippet?: true; 9307 /** 9308 * An optional span that indicates the text to be replaced by this completion item. 9309 * If present, this span should be used instead of the default one. 9310 * It will be set if the required span differs from the one generated by the default replacement behavior. 9311 */ 9312 replacementSpan?: TextSpan; 9313 /** 9314 * Indicates whether commiting this completion entry will require additional code actions to be 9315 * made to avoid errors. The CompletionEntryDetails will have these actions. 9316 */ 9317 hasAction?: true; 9318 /** 9319 * Identifier (not necessarily human-readable) identifying where this completion came from. 9320 */ 9321 source?: string; 9322 /** 9323 * Human-readable description of the `source`. 9324 */ 9325 sourceDisplay?: SymbolDisplayPart[]; 9326 /** 9327 * Additional details for the label. 9328 */ 9329 labelDetails?: CompletionEntryLabelDetails; 9330 /** 9331 * If true, this completion should be highlighted as recommended. There will only be one of these. 9332 * This will be set when we know the user should write an expression with a certain type and that type is an enum or constructable class. 9333 * Then either that enum/class or a namespace containing it will be the recommended symbol. 9334 */ 9335 isRecommended?: true; 9336 /** 9337 * If true, this completion was generated from traversing the name table of an unchecked JS file, 9338 * and therefore may not be accurate. 9339 */ 9340 isFromUncheckedFile?: true; 9341 /** 9342 * If true, this completion was for an auto-import of a module not yet in the program, but listed 9343 * in the project package.json. Used for telemetry reporting. 9344 */ 9345 isPackageJsonImport?: true; 9346 /** 9347 * If true, this completion was an auto-import-style completion of an import statement (i.e., the 9348 * module specifier was inserted along with the imported identifier). Used for telemetry reporting. 9349 */ 9350 isImportStatementCompletion?: true; 9351 /** 9352 * A property to be sent back to TS Server in the CompletionDetailsRequest, along with `name`, 9353 * that allows TS Server to look up the symbol represented by the completion item, disambiguating 9354 * items with the same name. 9355 */ 9356 data?: unknown; 9357 /** 9358 * Js Doc info with symbol. 9359 */ 9360 jsDoc?: JsDocTagInfo[]; 9361 /** 9362 * Displayparts info with symbol. 9363 */ 9364 displayParts?: SymbolDisplayPart[]; 9365 } 9366 interface CompletionEntryLabelDetails { 9367 /** 9368 * An optional string which is rendered less prominently directly after 9369 * {@link CompletionEntry.name name}, without any spacing. Should be 9370 * used for function signatures or type annotations. 9371 */ 9372 detail?: string; 9373 /** 9374 * An optional string which is rendered less prominently after 9375 * {@link CompletionEntryLabelDetails.detail}. Should be used for fully qualified 9376 * names or file path. 9377 */ 9378 description?: string; 9379 } 9380 /** 9381 * Additional completion entry details, available on demand 9382 */ 9383 interface CompletionEntryDetails { 9384 /** 9385 * The symbol's name. 9386 */ 9387 name: string; 9388 /** 9389 * The symbol's kind (such as 'className' or 'parameterName'). 9390 */ 9391 kind: ScriptElementKind; 9392 /** 9393 * Optional modifiers for the kind (such as 'public'). 9394 */ 9395 kindModifiers: string; 9396 /** 9397 * Display parts of the symbol (similar to quick info). 9398 */ 9399 displayParts: SymbolDisplayPart[]; 9400 /** 9401 * Documentation strings for the symbol. 9402 */ 9403 documentation?: SymbolDisplayPart[]; 9404 /** 9405 * JSDoc tags for the symbol. 9406 */ 9407 tags?: JSDocTagInfo[]; 9408 /** 9409 * The associated code actions for this entry 9410 */ 9411 codeActions?: CodeAction[]; 9412 /** 9413 * @deprecated Use `sourceDisplay` instead. 9414 */ 9415 source?: SymbolDisplayPart[]; 9416 /** 9417 * Human-readable description of the `source` from the CompletionEntry. 9418 */ 9419 sourceDisplay?: SymbolDisplayPart[]; 9420 } 9421 /** @deprecated Prefer CompletionInfoResponse, which supports several top-level fields in addition to the array of entries. */ 9422 interface CompletionsResponse extends Response { 9423 body?: CompletionEntry[]; 9424 } 9425 interface CompletionInfoResponse extends Response { 9426 body?: CompletionInfo; 9427 } 9428 interface CompletionInfo { 9429 readonly flags?: number; 9430 readonly isGlobalCompletion: boolean; 9431 readonly isMemberCompletion: boolean; 9432 readonly isNewIdentifierLocation: boolean; 9433 /** 9434 * In the absence of `CompletionEntry["replacementSpan"]`, the editor may choose whether to use 9435 * this span or its default one. If `CompletionEntry["replacementSpan"]` is defined, that span 9436 * must be used to commit that completion entry. 9437 */ 9438 readonly optionalReplacementSpan?: TextSpan; 9439 readonly isIncomplete?: boolean; 9440 readonly entries: readonly CompletionEntry[]; 9441 } 9442 interface CompletionDetailsResponse extends Response { 9443 body?: CompletionEntryDetails[]; 9444 } 9445 /** 9446 * Signature help information for a single parameter 9447 */ 9448 interface SignatureHelpParameter { 9449 /** 9450 * The parameter's name 9451 */ 9452 name: string; 9453 /** 9454 * Documentation of the parameter. 9455 */ 9456 documentation: SymbolDisplayPart[]; 9457 /** 9458 * Display parts of the parameter. 9459 */ 9460 displayParts: SymbolDisplayPart[]; 9461 /** 9462 * Whether the parameter is optional or not. 9463 */ 9464 isOptional: boolean; 9465 } 9466 /** 9467 * Represents a single signature to show in signature help. 9468 */ 9469 interface SignatureHelpItem { 9470 /** 9471 * Whether the signature accepts a variable number of arguments. 9472 */ 9473 isVariadic: boolean; 9474 /** 9475 * The prefix display parts. 9476 */ 9477 prefixDisplayParts: SymbolDisplayPart[]; 9478 /** 9479 * The suffix display parts. 9480 */ 9481 suffixDisplayParts: SymbolDisplayPart[]; 9482 /** 9483 * The separator display parts. 9484 */ 9485 separatorDisplayParts: SymbolDisplayPart[]; 9486 /** 9487 * The signature helps items for the parameters. 9488 */ 9489 parameters: SignatureHelpParameter[]; 9490 /** 9491 * The signature's documentation 9492 */ 9493 documentation: SymbolDisplayPart[]; 9494 /** 9495 * The signature's JSDoc tags 9496 */ 9497 tags: JSDocTagInfo[]; 9498 } 9499 /** 9500 * Signature help items found in the response of a signature help request. 9501 */ 9502 interface SignatureHelpItems { 9503 /** 9504 * The signature help items. 9505 */ 9506 items: SignatureHelpItem[]; 9507 /** 9508 * The span for which signature help should appear on a signature 9509 */ 9510 applicableSpan: TextSpan; 9511 /** 9512 * The item selected in the set of available help items. 9513 */ 9514 selectedItemIndex: number; 9515 /** 9516 * The argument selected in the set of parameters. 9517 */ 9518 argumentIndex: number; 9519 /** 9520 * The argument count 9521 */ 9522 argumentCount: number; 9523 } 9524 type SignatureHelpTriggerCharacter = "," | "(" | "<"; 9525 type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; 9526 /** 9527 * Arguments of a signature help request. 9528 */ 9529 interface SignatureHelpRequestArgs extends FileLocationRequestArgs { 9530 /** 9531 * Reason why signature help was invoked. 9532 * See each individual possible 9533 */ 9534 triggerReason?: SignatureHelpTriggerReason; 9535 } 9536 type SignatureHelpTriggerReason = SignatureHelpInvokedReason | SignatureHelpCharacterTypedReason | SignatureHelpRetriggeredReason; 9537 /** 9538 * Signals that the user manually requested signature help. 9539 * The language service will unconditionally attempt to provide a result. 9540 */ 9541 interface SignatureHelpInvokedReason { 9542 kind: "invoked"; 9543 triggerCharacter?: undefined; 9544 } 9545 /** 9546 * Signals that the signature help request came from a user typing a character. 9547 * Depending on the character and the syntactic context, the request may or may not be served a result. 9548 */ 9549 interface SignatureHelpCharacterTypedReason { 9550 kind: "characterTyped"; 9551 /** 9552 * Character that was responsible for triggering signature help. 9553 */ 9554 triggerCharacter: SignatureHelpTriggerCharacter; 9555 } 9556 /** 9557 * Signals that this signature help request came from typing a character or moving the cursor. 9558 * This should only occur if a signature help session was already active and the editor needs to see if it should adjust. 9559 * The language service will unconditionally attempt to provide a result. 9560 * `triggerCharacter` can be `undefined` for a retrigger caused by a cursor move. 9561 */ 9562 interface SignatureHelpRetriggeredReason { 9563 kind: "retrigger"; 9564 /** 9565 * Character that was responsible for triggering signature help. 9566 */ 9567 triggerCharacter?: SignatureHelpRetriggerCharacter; 9568 } 9569 /** 9570 * Signature help request; value of command field is "signatureHelp". 9571 * Given a file location (file, line, col), return the signature 9572 * help. 9573 */ 9574 interface SignatureHelpRequest extends FileLocationRequest { 9575 command: CommandTypes.SignatureHelp; 9576 arguments: SignatureHelpRequestArgs; 9577 } 9578 /** 9579 * Response object for a SignatureHelpRequest. 9580 */ 9581 interface SignatureHelpResponse extends Response { 9582 body?: SignatureHelpItems; 9583 } 9584 type InlayHintKind = "Type" | "Parameter" | "Enum"; 9585 interface InlayHintsRequestArgs extends FileRequestArgs { 9586 /** 9587 * Start position of the span. 9588 */ 9589 start: number; 9590 /** 9591 * Length of the span. 9592 */ 9593 length: number; 9594 } 9595 interface InlayHintsRequest extends Request { 9596 command: CommandTypes.ProvideInlayHints; 9597 arguments: InlayHintsRequestArgs; 9598 } 9599 interface InlayHintItem { 9600 text: string; 9601 position: Location; 9602 kind: InlayHintKind; 9603 whitespaceBefore?: boolean; 9604 whitespaceAfter?: boolean; 9605 } 9606 interface InlayHintsResponse extends Response { 9607 body?: InlayHintItem[]; 9608 } 9609 /** 9610 * Synchronous request for semantic diagnostics of one file. 9611 */ 9612 interface SemanticDiagnosticsSyncRequest extends FileRequest { 9613 command: CommandTypes.SemanticDiagnosticsSync; 9614 arguments: SemanticDiagnosticsSyncRequestArgs; 9615 } 9616 interface SemanticDiagnosticsSyncRequestArgs extends FileRequestArgs { 9617 includeLinePosition?: boolean; 9618 } 9619 /** 9620 * Response object for synchronous sematic diagnostics request. 9621 */ 9622 interface SemanticDiagnosticsSyncResponse extends Response { 9623 body?: Diagnostic[] | DiagnosticWithLinePosition[]; 9624 } 9625 interface SuggestionDiagnosticsSyncRequest extends FileRequest { 9626 command: CommandTypes.SuggestionDiagnosticsSync; 9627 arguments: SuggestionDiagnosticsSyncRequestArgs; 9628 } 9629 type SuggestionDiagnosticsSyncRequestArgs = SemanticDiagnosticsSyncRequestArgs; 9630 type SuggestionDiagnosticsSyncResponse = SemanticDiagnosticsSyncResponse; 9631 /** 9632 * Synchronous request for syntactic diagnostics of one file. 9633 */ 9634 interface SyntacticDiagnosticsSyncRequest extends FileRequest { 9635 command: CommandTypes.SyntacticDiagnosticsSync; 9636 arguments: SyntacticDiagnosticsSyncRequestArgs; 9637 } 9638 interface SyntacticDiagnosticsSyncRequestArgs extends FileRequestArgs { 9639 includeLinePosition?: boolean; 9640 } 9641 /** 9642 * Response object for synchronous syntactic diagnostics request. 9643 */ 9644 interface SyntacticDiagnosticsSyncResponse extends Response { 9645 body?: Diagnostic[] | DiagnosticWithLinePosition[]; 9646 } 9647 /** 9648 * Arguments for GeterrForProject request. 9649 */ 9650 interface GeterrForProjectRequestArgs { 9651 /** 9652 * the file requesting project error list 9653 */ 9654 file: string; 9655 /** 9656 * Delay in milliseconds to wait before starting to compute 9657 * errors for the files in the file list 9658 */ 9659 delay: number; 9660 } 9661 /** 9662 * GeterrForProjectRequest request; value of command field is 9663 * "geterrForProject". It works similarly with 'Geterr', only 9664 * it request for every file in this project. 9665 */ 9666 interface GeterrForProjectRequest extends Request { 9667 command: CommandTypes.GeterrForProject; 9668 arguments: GeterrForProjectRequestArgs; 9669 } 9670 /** 9671 * Arguments for geterr messages. 9672 */ 9673 interface GeterrRequestArgs { 9674 /** 9675 * List of file names for which to compute compiler errors. 9676 * The files will be checked in list order. 9677 */ 9678 files: string[]; 9679 /** 9680 * Delay in milliseconds to wait before starting to compute 9681 * errors for the files in the file list 9682 */ 9683 delay: number; 9684 } 9685 /** 9686 * Geterr request; value of command field is "geterr". Wait for 9687 * delay milliseconds and then, if during the wait no change or 9688 * reload messages have arrived for the first file in the files 9689 * list, get the syntactic errors for the file, field requests, 9690 * and then get the semantic errors for the file. Repeat with a 9691 * smaller delay for each subsequent file on the files list. Best 9692 * practice for an editor is to send a file list containing each 9693 * file that is currently visible, in most-recently-used order. 9694 */ 9695 interface GeterrRequest extends Request { 9696 command: CommandTypes.Geterr; 9697 arguments: GeterrRequestArgs; 9698 } 9699 type RequestCompletedEventName = "requestCompleted"; 9700 /** 9701 * Event that is sent when server have finished processing request with specified id. 9702 */ 9703 interface RequestCompletedEvent extends Event { 9704 event: RequestCompletedEventName; 9705 body: RequestCompletedEventBody; 9706 } 9707 interface RequestCompletedEventBody { 9708 request_seq: number; 9709 } 9710 /** 9711 * Item of diagnostic information found in a DiagnosticEvent message. 9712 */ 9713 interface Diagnostic { 9714 /** 9715 * Starting file location at which text applies. 9716 */ 9717 start: Location; 9718 /** 9719 * The last file location at which the text applies. 9720 */ 9721 end: Location; 9722 /** 9723 * Text of diagnostic message. 9724 */ 9725 text: string; 9726 /** 9727 * The category of the diagnostic message, e.g. "error", "warning", or "suggestion". 9728 */ 9729 category: string; 9730 reportsUnnecessary?: {}; 9731 reportsDeprecated?: {}; 9732 /** 9733 * Any related spans the diagnostic may have, such as other locations relevant to an error, such as declarartion sites 9734 */ 9735 relatedInformation?: DiagnosticRelatedInformation[]; 9736 /** 9737 * The error code of the diagnostic message. 9738 */ 9739 code?: number; 9740 /** 9741 * The name of the plugin reporting the message. 9742 */ 9743 source?: string; 9744 } 9745 interface DiagnosticWithFileName extends Diagnostic { 9746 /** 9747 * Name of the file the diagnostic is in 9748 */ 9749 fileName: string; 9750 } 9751 /** 9752 * Represents additional spans returned with a diagnostic which are relevant to it 9753 */ 9754 interface DiagnosticRelatedInformation { 9755 /** 9756 * The category of the related information message, e.g. "error", "warning", or "suggestion". 9757 */ 9758 category: string; 9759 /** 9760 * The code used ot identify the related information 9761 */ 9762 code: number; 9763 /** 9764 * Text of related or additional information. 9765 */ 9766 message: string; 9767 /** 9768 * Associated location 9769 */ 9770 span?: FileSpan; 9771 } 9772 interface DiagnosticEventBody { 9773 /** 9774 * The file for which diagnostic information is reported. 9775 */ 9776 file: string; 9777 /** 9778 * An array of diagnostic information items. 9779 */ 9780 diagnostics: Diagnostic[]; 9781 } 9782 type DiagnosticEventKind = "semanticDiag" | "syntaxDiag" | "suggestionDiag"; 9783 /** 9784 * Event message for DiagnosticEventKind event types. 9785 * These events provide syntactic and semantic errors for a file. 9786 */ 9787 interface DiagnosticEvent extends Event { 9788 body?: DiagnosticEventBody; 9789 event: DiagnosticEventKind; 9790 } 9791 interface ConfigFileDiagnosticEventBody { 9792 /** 9793 * The file which trigged the searching and error-checking of the config file 9794 */ 9795 triggerFile: string; 9796 /** 9797 * The name of the found config file. 9798 */ 9799 configFile: string; 9800 /** 9801 * An arry of diagnostic information items for the found config file. 9802 */ 9803 diagnostics: DiagnosticWithFileName[]; 9804 } 9805 /** 9806 * Event message for "configFileDiag" event type. 9807 * This event provides errors for a found config file. 9808 */ 9809 interface ConfigFileDiagnosticEvent extends Event { 9810 body?: ConfigFileDiagnosticEventBody; 9811 event: "configFileDiag"; 9812 } 9813 type ProjectLanguageServiceStateEventName = "projectLanguageServiceState"; 9814 interface ProjectLanguageServiceStateEvent extends Event { 9815 event: ProjectLanguageServiceStateEventName; 9816 body?: ProjectLanguageServiceStateEventBody; 9817 } 9818 interface ProjectLanguageServiceStateEventBody { 9819 /** 9820 * Project name that has changes in the state of language service. 9821 * For configured projects this will be the config file path. 9822 * For external projects this will be the name of the projects specified when project was open. 9823 * For inferred projects this event is not raised. 9824 */ 9825 projectName: string; 9826 /** 9827 * True if language service state switched from disabled to enabled 9828 * and false otherwise. 9829 */ 9830 languageServiceEnabled: boolean; 9831 } 9832 type ProjectsUpdatedInBackgroundEventName = "projectsUpdatedInBackground"; 9833 interface ProjectsUpdatedInBackgroundEvent extends Event { 9834 event: ProjectsUpdatedInBackgroundEventName; 9835 body: ProjectsUpdatedInBackgroundEventBody; 9836 } 9837 interface ProjectsUpdatedInBackgroundEventBody { 9838 /** 9839 * Current set of open files 9840 */ 9841 openFiles: string[]; 9842 } 9843 type ProjectLoadingStartEventName = "projectLoadingStart"; 9844 interface ProjectLoadingStartEvent extends Event { 9845 event: ProjectLoadingStartEventName; 9846 body: ProjectLoadingStartEventBody; 9847 } 9848 interface ProjectLoadingStartEventBody { 9849 /** name of the project */ 9850 projectName: string; 9851 /** reason for loading */ 9852 reason: string; 9853 } 9854 type ProjectLoadingFinishEventName = "projectLoadingFinish"; 9855 interface ProjectLoadingFinishEvent extends Event { 9856 event: ProjectLoadingFinishEventName; 9857 body: ProjectLoadingFinishEventBody; 9858 } 9859 interface ProjectLoadingFinishEventBody { 9860 /** name of the project */ 9861 projectName: string; 9862 } 9863 type SurveyReadyEventName = "surveyReady"; 9864 interface SurveyReadyEvent extends Event { 9865 event: SurveyReadyEventName; 9866 body: SurveyReadyEventBody; 9867 } 9868 interface SurveyReadyEventBody { 9869 /** Name of the survey. This is an internal machine- and programmer-friendly name */ 9870 surveyId: string; 9871 } 9872 type LargeFileReferencedEventName = "largeFileReferenced"; 9873 interface LargeFileReferencedEvent extends Event { 9874 event: LargeFileReferencedEventName; 9875 body: LargeFileReferencedEventBody; 9876 } 9877 interface LargeFileReferencedEventBody { 9878 /** 9879 * name of the large file being loaded 9880 */ 9881 file: string; 9882 /** 9883 * size of the file 9884 */ 9885 fileSize: number; 9886 /** 9887 * max file size allowed on the server 9888 */ 9889 maxFileSize: number; 9890 } 9891 /** 9892 * Arguments for reload request. 9893 */ 9894 interface ReloadRequestArgs extends FileRequestArgs { 9895 /** 9896 * Name of temporary file from which to reload file 9897 * contents. May be same as file. 9898 */ 9899 tmpfile: string; 9900 } 9901 /** 9902 * Reload request message; value of command field is "reload". 9903 * Reload contents of file with name given by the 'file' argument 9904 * from temporary file with name given by the 'tmpfile' argument. 9905 * The two names can be identical. 9906 */ 9907 interface ReloadRequest extends FileRequest { 9908 command: CommandTypes.Reload; 9909 arguments: ReloadRequestArgs; 9910 } 9911 /** 9912 * Response to "reload" request. This is just an acknowledgement, so 9913 * no body field is required. 9914 */ 9915 interface ReloadResponse extends Response { 9916 } 9917 /** 9918 * Arguments for saveto request. 9919 */ 9920 interface SavetoRequestArgs extends FileRequestArgs { 9921 /** 9922 * Name of temporary file into which to save server's view of 9923 * file contents. 9924 */ 9925 tmpfile: string; 9926 } 9927 /** 9928 * Saveto request message; value of command field is "saveto". 9929 * For debugging purposes, save to a temporaryfile (named by 9930 * argument 'tmpfile') the contents of file named by argument 9931 * 'file'. The server does not currently send a response to a 9932 * "saveto" request. 9933 */ 9934 interface SavetoRequest extends FileRequest { 9935 command: CommandTypes.Saveto; 9936 arguments: SavetoRequestArgs; 9937 } 9938 /** 9939 * Arguments for navto request message. 9940 */ 9941 interface NavtoRequestArgs { 9942 /** 9943 * Search term to navigate to from current location; term can 9944 * be '.*' or an identifier prefix. 9945 */ 9946 searchValue: string; 9947 /** 9948 * Optional limit on the number of items to return. 9949 */ 9950 maxResultCount?: number; 9951 /** 9952 * The file for the request (absolute pathname required). 9953 */ 9954 file?: string; 9955 /** 9956 * Optional flag to indicate we want results for just the current file 9957 * or the entire project. 9958 */ 9959 currentFileOnly?: boolean; 9960 projectFileName?: string; 9961 } 9962 /** 9963 * Navto request message; value of command field is "navto". 9964 * Return list of objects giving file locations and symbols that 9965 * match the search term given in argument 'searchTerm'. The 9966 * context for the search is given by the named file. 9967 */ 9968 interface NavtoRequest extends Request { 9969 command: CommandTypes.Navto; 9970 arguments: NavtoRequestArgs; 9971 } 9972 /** 9973 * An item found in a navto response. 9974 */ 9975 interface NavtoItem extends FileSpan { 9976 /** 9977 * The symbol's name. 9978 */ 9979 name: string; 9980 /** 9981 * The symbol's kind (such as 'className' or 'parameterName'). 9982 */ 9983 kind: ScriptElementKind; 9984 /** 9985 * exact, substring, or prefix. 9986 */ 9987 matchKind: string; 9988 /** 9989 * If this was a case sensitive or insensitive match. 9990 */ 9991 isCaseSensitive: boolean; 9992 /** 9993 * Optional modifiers for the kind (such as 'public'). 9994 */ 9995 kindModifiers?: string; 9996 /** 9997 * Name of symbol's container symbol (if any); for example, 9998 * the class name if symbol is a class member. 9999 */ 10000 containerName?: string; 10001 /** 10002 * Kind of symbol's container symbol (if any). 10003 */ 10004 containerKind?: ScriptElementKind; 10005 } 10006 /** 10007 * Navto response message. Body is an array of navto items. Each 10008 * item gives a symbol that matched the search term. 10009 */ 10010 interface NavtoResponse extends Response { 10011 body?: NavtoItem[]; 10012 } 10013 /** 10014 * Arguments for change request message. 10015 */ 10016 interface ChangeRequestArgs extends FormatRequestArgs { 10017 /** 10018 * Optional string to insert at location (file, line, offset). 10019 */ 10020 insertString?: string; 10021 } 10022 /** 10023 * Change request message; value of command field is "change". 10024 * Update the server's view of the file named by argument 'file'. 10025 * Server does not currently send a response to a change request. 10026 */ 10027 interface ChangeRequest extends FileLocationRequest { 10028 command: CommandTypes.Change; 10029 arguments: ChangeRequestArgs; 10030 } 10031 /** 10032 * Response to "brace" request. 10033 */ 10034 interface BraceResponse extends Response { 10035 body?: TextSpan[]; 10036 } 10037 /** 10038 * Brace matching request; value of command field is "brace". 10039 * Return response giving the file locations of matching braces 10040 * found in file at location line, offset. 10041 */ 10042 interface BraceRequest extends FileLocationRequest { 10043 command: CommandTypes.Brace; 10044 } 10045 /** 10046 * NavBar items request; value of command field is "navbar". 10047 * Return response giving the list of navigation bar entries 10048 * extracted from the requested file. 10049 */ 10050 interface NavBarRequest extends FileRequest { 10051 command: CommandTypes.NavBar; 10052 } 10053 /** 10054 * NavTree request; value of command field is "navtree". 10055 * Return response giving the navigation tree of the requested file. 10056 */ 10057 interface NavTreeRequest extends FileRequest { 10058 command: CommandTypes.NavTree; 10059 } 10060 interface NavigationBarItem { 10061 /** 10062 * The item's display text. 10063 */ 10064 text: string; 10065 /** 10066 * The symbol's kind (such as 'className' or 'parameterName'). 10067 */ 10068 kind: ScriptElementKind; 10069 /** 10070 * Optional modifiers for the kind (such as 'public'). 10071 */ 10072 kindModifiers?: string; 10073 /** 10074 * The definition locations of the item. 10075 */ 10076 spans: TextSpan[]; 10077 /** 10078 * Optional children. 10079 */ 10080 childItems?: NavigationBarItem[]; 10081 /** 10082 * Number of levels deep this item should appear. 10083 */ 10084 indent: number; 10085 } 10086 /** protocol.NavigationTree is identical to ts.NavigationTree, except using protocol.TextSpan instead of ts.TextSpan */ 10087 interface NavigationTree { 10088 text: string; 10089 kind: ScriptElementKind; 10090 kindModifiers: string; 10091 spans: TextSpan[]; 10092 nameSpan: TextSpan | undefined; 10093 childItems?: NavigationTree[]; 10094 } 10095 type TelemetryEventName = "telemetry"; 10096 interface TelemetryEvent extends Event { 10097 event: TelemetryEventName; 10098 body: TelemetryEventBody; 10099 } 10100 interface TelemetryEventBody { 10101 telemetryEventName: string; 10102 payload: any; 10103 } 10104 type TypesInstallerInitializationFailedEventName = "typesInstallerInitializationFailed"; 10105 interface TypesInstallerInitializationFailedEvent extends Event { 10106 event: TypesInstallerInitializationFailedEventName; 10107 body: TypesInstallerInitializationFailedEventBody; 10108 } 10109 interface TypesInstallerInitializationFailedEventBody { 10110 message: string; 10111 } 10112 type TypingsInstalledTelemetryEventName = "typingsInstalled"; 10113 interface TypingsInstalledTelemetryEventBody extends TelemetryEventBody { 10114 telemetryEventName: TypingsInstalledTelemetryEventName; 10115 payload: TypingsInstalledTelemetryEventPayload; 10116 } 10117 interface TypingsInstalledTelemetryEventPayload { 10118 /** 10119 * Comma separated list of installed typing packages 10120 */ 10121 installedPackages: string; 10122 /** 10123 * true if install request succeeded, otherwise - false 10124 */ 10125 installSuccess: boolean; 10126 /** 10127 * version of typings installer 10128 */ 10129 typingsInstallerVersion: string; 10130 } 10131 type BeginInstallTypesEventName = "beginInstallTypes"; 10132 type EndInstallTypesEventName = "endInstallTypes"; 10133 interface BeginInstallTypesEvent extends Event { 10134 event: BeginInstallTypesEventName; 10135 body: BeginInstallTypesEventBody; 10136 } 10137 interface EndInstallTypesEvent extends Event { 10138 event: EndInstallTypesEventName; 10139 body: EndInstallTypesEventBody; 10140 } 10141 interface InstallTypesEventBody { 10142 /** 10143 * correlation id to match begin and end events 10144 */ 10145 eventId: number; 10146 /** 10147 * list of packages to install 10148 */ 10149 packages: readonly string[]; 10150 } 10151 interface BeginInstallTypesEventBody extends InstallTypesEventBody { 10152 } 10153 interface EndInstallTypesEventBody extends InstallTypesEventBody { 10154 /** 10155 * true if installation succeeded, otherwise false 10156 */ 10157 success: boolean; 10158 } 10159 interface NavBarResponse extends Response { 10160 body?: NavigationBarItem[]; 10161 } 10162 interface NavTreeResponse extends Response { 10163 body?: NavigationTree; 10164 } 10165 interface CallHierarchyItem { 10166 name: string; 10167 kind: ScriptElementKind; 10168 kindModifiers?: string; 10169 file: string; 10170 span: TextSpan; 10171 selectionSpan: TextSpan; 10172 containerName?: string; 10173 } 10174 interface CallHierarchyIncomingCall { 10175 from: CallHierarchyItem; 10176 fromSpans: TextSpan[]; 10177 } 10178 interface CallHierarchyOutgoingCall { 10179 to: CallHierarchyItem; 10180 fromSpans: TextSpan[]; 10181 } 10182 interface PrepareCallHierarchyRequest extends FileLocationRequest { 10183 command: CommandTypes.PrepareCallHierarchy; 10184 } 10185 interface PrepareCallHierarchyResponse extends Response { 10186 readonly body: CallHierarchyItem | CallHierarchyItem[]; 10187 } 10188 interface ProvideCallHierarchyIncomingCallsRequest extends FileLocationRequest { 10189 command: CommandTypes.ProvideCallHierarchyIncomingCalls; 10190 } 10191 interface ProvideCallHierarchyIncomingCallsResponse extends Response { 10192 readonly body: CallHierarchyIncomingCall[]; 10193 } 10194 interface ProvideCallHierarchyOutgoingCallsRequest extends FileLocationRequest { 10195 command: CommandTypes.ProvideCallHierarchyOutgoingCalls; 10196 } 10197 interface ProvideCallHierarchyOutgoingCallsResponse extends Response { 10198 readonly body: CallHierarchyOutgoingCall[]; 10199 } 10200 enum IndentStyle { 10201 None = "None", 10202 Block = "Block", 10203 Smart = "Smart" 10204 } 10205 enum SemicolonPreference { 10206 Ignore = "ignore", 10207 Insert = "insert", 10208 Remove = "remove" 10209 } 10210 interface EditorSettings { 10211 baseIndentSize?: number; 10212 indentSize?: number; 10213 tabSize?: number; 10214 newLineCharacter?: string; 10215 convertTabsToSpaces?: boolean; 10216 indentStyle?: IndentStyle | ts.IndentStyle; 10217 trimTrailingWhitespace?: boolean; 10218 } 10219 interface FormatCodeSettings extends EditorSettings { 10220 insertSpaceAfterCommaDelimiter?: boolean; 10221 insertSpaceAfterSemicolonInForStatements?: boolean; 10222 insertSpaceBeforeAndAfterBinaryOperators?: boolean; 10223 insertSpaceAfterConstructor?: boolean; 10224 insertSpaceAfterKeywordsInControlFlowStatements?: boolean; 10225 insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean; 10226 insertSpaceAfterOpeningAndBeforeClosingEmptyBraces?: boolean; 10227 insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean; 10228 insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean; 10229 insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; 10230 insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean; 10231 insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; 10232 insertSpaceAfterTypeAssertion?: boolean; 10233 insertSpaceBeforeFunctionParenthesis?: boolean; 10234 placeOpenBraceOnNewLineForFunctions?: boolean; 10235 placeOpenBraceOnNewLineForControlBlocks?: boolean; 10236 insertSpaceBeforeTypeAnnotation?: boolean; 10237 semicolons?: SemicolonPreference; 10238 } 10239 interface UserPreferences { 10240 readonly disableSuggestions?: boolean; 10241 readonly quotePreference?: "auto" | "double" | "single"; 10242 /** 10243 * If enabled, TypeScript will search through all external modules' exports and add them to the completions list. 10244 * This affects lone identifier completions but not completions on the right hand side of `obj.`. 10245 */ 10246 readonly includeCompletionsForModuleExports?: boolean; 10247 /** 10248 * Enables auto-import-style completions on partially-typed import statements. E.g., allows 10249 * `import write|` to be completed to `import { writeFile } from "fs"`. 10250 */ 10251 readonly includeCompletionsForImportStatements?: boolean; 10252 /** 10253 * Allows completions to be formatted with snippet text, indicated by `CompletionItem["isSnippet"]`. 10254 */ 10255 readonly includeCompletionsWithSnippetText?: boolean; 10256 /** 10257 * If enabled, the completion list will include completions with invalid identifier names. 10258 * For those entries, The `insertText` and `replacementSpan` properties will be set to change from `.x` property access to `["x"]`. 10259 */ 10260 readonly includeCompletionsWithInsertText?: boolean; 10261 /** 10262 * Unless this option is `false`, or `includeCompletionsWithInsertText` is not enabled, 10263 * member completion lists triggered with `.` will include entries on potentially-null and potentially-undefined 10264 * values, with insertion text to replace preceding `.` tokens with `?.`. 10265 */ 10266 readonly includeAutomaticOptionalChainCompletions?: boolean; 10267 /** 10268 * If enabled, completions for class members (e.g. methods and properties) will include 10269 * a whole declaration for the member. 10270 * E.g., `class A { f| }` could be completed to `class A { foo(): number {} }`, instead of 10271 * `class A { foo }`. 10272 */ 10273 readonly includeCompletionsWithClassMemberSnippets?: boolean; 10274 /** 10275 * If enabled, object literal methods will have a method declaration completion entry in addition 10276 * to the regular completion entry containing just the method name. 10277 * E.g., `const objectLiteral: T = { f| }` could be completed to `const objectLiteral: T = { foo(): void {} }`, 10278 * in addition to `const objectLiteral: T = { foo }`. 10279 */ 10280 readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; 10281 /** 10282 * Indicates whether {@link CompletionEntry.labelDetails completion entry label details} are supported. 10283 * If not, contents of `labelDetails` may be included in the {@link CompletionEntry.name} property. 10284 */ 10285 readonly useLabelDetailsInCompletionEntries?: boolean; 10286 readonly allowIncompleteCompletions?: boolean; 10287 readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; 10288 /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ 10289 readonly importModuleSpecifierEnding?: "auto" | "minimal" | "index" | "js"; 10290 readonly allowTextChangesInNewFiles?: boolean; 10291 readonly lazyConfiguredProjectsFromExternalProject?: boolean; 10292 readonly providePrefixAndSuffixTextForRename?: boolean; 10293 readonly provideRefactorNotApplicableReason?: boolean; 10294 readonly allowRenameOfImportPath?: boolean; 10295 readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; 10296 readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; 10297 readonly displayPartsForJSDoc?: boolean; 10298 readonly generateReturnInDocTemplate?: boolean; 10299 readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; 10300 readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; 10301 readonly includeInlayFunctionParameterTypeHints?: boolean; 10302 readonly includeInlayVariableTypeHints?: boolean; 10303 readonly includeInlayVariableTypeHintsWhenTypeMatchesName?: boolean; 10304 readonly includeInlayPropertyDeclarationTypeHints?: boolean; 10305 readonly includeInlayFunctionLikeReturnTypeHints?: boolean; 10306 readonly includeInlayEnumMemberValueHints?: boolean; 10307 readonly autoImportFileExcludePatterns?: string[]; 10308 /** 10309 * Indicates whether {@link ReferencesResponseItem.lineText} is supported. 10310 */ 10311 readonly disableLineTextInReferences?: boolean; 10312 } 10313 interface CompilerOptions { 10314 allowJs?: boolean; 10315 allowSyntheticDefaultImports?: boolean; 10316 allowUnreachableCode?: boolean; 10317 allowUnusedLabels?: boolean; 10318 alwaysStrict?: boolean; 10319 baseUrl?: string; 10320 charset?: string; 10321 checkJs?: boolean; 10322 declaration?: boolean; 10323 declarationDir?: string; 10324 disableSizeLimit?: boolean; 10325 downlevelIteration?: boolean; 10326 emitBOM?: boolean; 10327 emitDecoratorMetadata?: boolean; 10328 experimentalDecorators?: boolean; 10329 forceConsistentCasingInFileNames?: boolean; 10330 importHelpers?: boolean; 10331 inlineSourceMap?: boolean; 10332 inlineSources?: boolean; 10333 isolatedModules?: boolean; 10334 jsx?: JsxEmit | ts.JsxEmit; 10335 lib?: string[]; 10336 locale?: string; 10337 mapRoot?: string; 10338 maxNodeModuleJsDepth?: number; 10339 module?: ModuleKind | ts.ModuleKind; 10340 moduleResolution?: ModuleResolutionKind | ts.ModuleResolutionKind; 10341 newLine?: NewLineKind | ts.NewLineKind; 10342 noEmit?: boolean; 10343 noEmitHelpers?: boolean; 10344 noEmitOnError?: boolean; 10345 noErrorTruncation?: boolean; 10346 noFallthroughCasesInSwitch?: boolean; 10347 noImplicitAny?: boolean; 10348 noImplicitReturns?: boolean; 10349 noImplicitThis?: boolean; 10350 noUnusedLocals?: boolean; 10351 noUnusedParameters?: boolean; 10352 noImplicitUseStrict?: boolean; 10353 noLib?: boolean; 10354 noResolve?: boolean; 10355 out?: string; 10356 outDir?: string; 10357 outFile?: string; 10358 paths?: MapLike<string[]>; 10359 plugins?: PluginImport[]; 10360 preserveConstEnums?: boolean; 10361 preserveSymlinks?: boolean; 10362 project?: string; 10363 reactNamespace?: string; 10364 removeComments?: boolean; 10365 references?: ProjectReference[]; 10366 rootDir?: string; 10367 rootDirs?: string[]; 10368 skipLibCheck?: boolean; 10369 skipDefaultLibCheck?: boolean; 10370 sourceMap?: boolean; 10371 sourceRoot?: string; 10372 strict?: boolean; 10373 strictNullChecks?: boolean; 10374 suppressExcessPropertyErrors?: boolean; 10375 suppressImplicitAnyIndexErrors?: boolean; 10376 useDefineForClassFields?: boolean; 10377 target?: ScriptTarget | ts.ScriptTarget; 10378 traceResolution?: boolean; 10379 resolveJsonModule?: boolean; 10380 types?: string[]; 10381 /** Paths used to used to compute primary types search locations */ 10382 typeRoots?: string[]; 10383 ets?: EtsOptions; 10384 packageManagerType?: string; 10385 emitNodeModulesFiles?: boolean; 10386 [option: string]: CompilerOptionsValue | undefined; 10387 } 10388 enum JsxEmit { 10389 None = "None", 10390 Preserve = "Preserve", 10391 ReactNative = "ReactNative", 10392 React = "React" 10393 } 10394 enum ModuleKind { 10395 None = "None", 10396 CommonJS = "CommonJS", 10397 AMD = "AMD", 10398 UMD = "UMD", 10399 System = "System", 10400 ES6 = "ES6", 10401 ES2015 = "ES2015", 10402 ESNext = "ESNext" 10403 } 10404 enum ModuleResolutionKind { 10405 Classic = "Classic", 10406 Node = "Node" 10407 } 10408 enum NewLineKind { 10409 Crlf = "Crlf", 10410 Lf = "Lf" 10411 } 10412 enum ScriptTarget { 10413 ES3 = "ES3", 10414 ES5 = "ES5", 10415 ES6 = "ES6", 10416 ES2015 = "ES2015", 10417 ES2016 = "ES2016", 10418 ES2017 = "ES2017", 10419 ES2018 = "ES2018", 10420 ES2019 = "ES2019", 10421 ES2020 = "ES2020", 10422 ES2021 = "ES2021", 10423 ES2022 = "ES2022", 10424 ESNext = "ESNext" 10425 } 10426 enum ClassificationType { 10427 comment = 1, 10428 identifier = 2, 10429 keyword = 3, 10430 numericLiteral = 4, 10431 operator = 5, 10432 stringLiteral = 6, 10433 regularExpressionLiteral = 7, 10434 whiteSpace = 8, 10435 text = 9, 10436 punctuation = 10, 10437 className = 11, 10438 enumName = 12, 10439 interfaceName = 13, 10440 moduleName = 14, 10441 typeParameterName = 15, 10442 typeAliasName = 16, 10443 parameterName = 17, 10444 docCommentTagName = 18, 10445 jsxOpenTagName = 19, 10446 jsxCloseTagName = 20, 10447 jsxSelfClosingTagName = 21, 10448 jsxAttribute = 22, 10449 jsxText = 23, 10450 jsxAttributeStringLiteralValue = 24, 10451 bigintLiteral = 25 10452 } 10453} 10454declare namespace ts.server { 10455 interface ScriptInfoVersion { 10456 svc: number; 10457 text: number; 10458 } 10459 function isDynamicFileName(fileName: NormalizedPath): boolean; 10460 class ScriptInfo { 10461 private readonly host; 10462 readonly fileName: NormalizedPath; 10463 readonly scriptKind: ScriptKind; 10464 readonly hasMixedContent: boolean; 10465 readonly path: Path; 10466 /** 10467 * All projects that include this file 10468 */ 10469 readonly containingProjects: Project[]; 10470 private formatSettings; 10471 private preferences; 10472 private textStorage; 10473 constructor(host: ServerHost, fileName: NormalizedPath, scriptKind: ScriptKind, hasMixedContent: boolean, path: Path, initialVersion?: ScriptInfoVersion); 10474 isScriptOpen(): boolean; 10475 open(newText: string): void; 10476 close(fileExists?: boolean): void; 10477 getSnapshot(): IScriptSnapshot; 10478 private ensureRealPath; 10479 getFormatCodeSettings(): FormatCodeSettings | undefined; 10480 getPreferences(): protocol.UserPreferences | undefined; 10481 attachToProject(project: Project): boolean; 10482 isAttached(project: Project): boolean; 10483 detachFromProject(project: Project): void; 10484 detachAllProjects(): void; 10485 getDefaultProject(): Project; 10486 registerFileUpdate(): void; 10487 setOptions(formatSettings: FormatCodeSettings, preferences: protocol.UserPreferences | undefined): void; 10488 getLatestVersion(): string; 10489 saveTo(fileName: string): void; 10490 reloadFromFile(tempFileName?: NormalizedPath): boolean; 10491 editContent(start: number, end: number, newText: string): void; 10492 markContainingProjectsAsDirty(): void; 10493 isOrphan(): boolean; 10494 /** 10495 * @param line 1 based index 10496 */ 10497 lineToTextSpan(line: number): TextSpan; 10498 /** 10499 * @param line 1 based index 10500 * @param offset 1 based index 10501 */ 10502 lineOffsetToPosition(line: number, offset: number): number; 10503 positionToLineOffset(position: number): protocol.Location; 10504 isJavaScript(): boolean; 10505 } 10506} 10507declare namespace ts.server { 10508 interface InstallPackageOptionsWithProject extends InstallPackageOptions { 10509 projectName: string; 10510 projectRootPath: Path; 10511 } 10512 interface ITypingsInstaller { 10513 isKnownTypesPackageName(name: string): boolean; 10514 installPackage(options: InstallPackageOptionsWithProject): Promise<ApplyCodeActionCommandResult>; 10515 enqueueInstallTypingsRequest(p: Project, typeAcquisition: TypeAcquisition, unresolvedImports: SortedReadonlyArray<string> | undefined): void; 10516 attach(projectService: ProjectService): void; 10517 onProjectClosed(p: Project): void; 10518 readonly globalTypingsCacheLocation: string | undefined; 10519 } 10520 const nullTypingsInstaller: ITypingsInstaller; 10521} 10522declare namespace ts.server { 10523 enum ProjectKind { 10524 Inferred = 0, 10525 Configured = 1, 10526 External = 2, 10527 AutoImportProvider = 3, 10528 Auxiliary = 4 10529 } 10530 function allRootFilesAreJsOrDts(project: Project): boolean; 10531 function allFilesAreJsOrDts(project: Project): boolean; 10532 interface PluginCreateInfo { 10533 project: Project; 10534 languageService: LanguageService; 10535 languageServiceHost: LanguageServiceHost; 10536 serverHost: ServerHost; 10537 session?: Session<unknown>; 10538 config: any; 10539 } 10540 interface PluginModule { 10541 create(createInfo: PluginCreateInfo): LanguageService; 10542 getExternalFiles?(proj: Project): string[]; 10543 onConfigurationChanged?(config: any): void; 10544 } 10545 interface PluginModuleWithName { 10546 name: string; 10547 module: PluginModule; 10548 } 10549 type PluginModuleFactory = (mod: { 10550 typescript: typeof ts; 10551 }) => PluginModule; 10552 abstract class Project implements LanguageServiceHost, ModuleResolutionHost { 10553 readonly projectName: string; 10554 readonly projectKind: ProjectKind; 10555 readonly projectService: ProjectService; 10556 private documentRegistry; 10557 private compilerOptions; 10558 compileOnSaveEnabled: boolean; 10559 protected watchOptions: WatchOptions | undefined; 10560 private rootFiles; 10561 private rootFilesMap; 10562 private program; 10563 private externalFiles; 10564 private missingFilesMap; 10565 private generatedFilesMap; 10566 protected languageService: LanguageService; 10567 languageServiceEnabled: boolean; 10568 readonly trace?: (s: string) => void; 10569 readonly realpath?: (path: string) => string; 10570 private builderState; 10571 /** 10572 * Set of files names that were updated since the last call to getChangesSinceVersion. 10573 */ 10574 private updatedFileNames; 10575 /** 10576 * Set of files that was returned from the last call to getChangesSinceVersion. 10577 */ 10578 private lastReportedFileNames; 10579 /** 10580 * Last version that was reported. 10581 */ 10582 private lastReportedVersion; 10583 /** 10584 * Current project's program version. (incremented everytime new program is created that is not complete reuse from the old one) 10585 * This property is changed in 'updateGraph' based on the set of files in program 10586 */ 10587 private projectProgramVersion; 10588 /** 10589 * Current version of the project state. It is changed when: 10590 * - new root file was added/removed 10591 * - edit happen in some file that is currently included in the project. 10592 * This property is different from projectStructureVersion since in most cases edits don't affect set of files in the project 10593 */ 10594 private projectStateVersion; 10595 protected projectErrors: Diagnostic[] | undefined; 10596 protected isInitialLoadPending: () => boolean; 10597 private readonly cancellationToken; 10598 isNonTsProject(): boolean; 10599 isJsOnlyProject(): boolean; 10600 static resolveModule(moduleName: string, initialDir: string, host: ServerHost, log: (message: string) => void, logErrors?: (message: string) => void): {} | undefined; 10601 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 10602 getJsDocNodeCheckedConfig(jsDocFileCheckedInfo: FileCheckModuleInfo, sourceFilePath: string): JsDocNodeCheckConfig; 10603 getJsDocNodeConditionCheckedResult(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 10604 getTagNameNeededCheckByFile(filePath: string): TagCheckParam; 10605 getExpressionCheckedResultsByFile?(filePath: string, jsDocs: JSDoc[]): ConditionCheckResult; 10606 isKnownTypesPackageName(name: string): boolean; 10607 installPackage(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>; 10608 private get typingsCache(); 10609 getCompilationSettings(): CompilerOptions; 10610 getCompilerOptions(): CompilerOptions; 10611 getNewLine(): string; 10612 getProjectVersion(): string; 10613 getProjectReferences(): readonly ProjectReference[] | undefined; 10614 getScriptFileNames(): string[]; 10615 private getOrCreateScriptInfoAndAttachToProject; 10616 getScriptKind(fileName: string): ScriptKind; 10617 getScriptVersion(filename: string): string; 10618 getScriptSnapshot(filename: string): IScriptSnapshot | undefined; 10619 getCancellationToken(): HostCancellationToken; 10620 getCurrentDirectory(): string; 10621 getDefaultLibFileName(): string; 10622 useCaseSensitiveFileNames(): boolean; 10623 readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 10624 readFile(fileName: string): string | undefined; 10625 writeFile(fileName: string, content: string): void; 10626 fileExists(file: string): boolean; 10627 resolveModuleNames(moduleNames: string[], containingFile: string, reusedNames?: string[], redirectedReference?: ResolvedProjectReference, _options?: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModuleFull | undefined)[]; 10628 getModuleResolutionCache(): ModuleResolutionCache | undefined; 10629 getResolvedModuleWithFailedLookupLocationsFromCache(moduleName: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; 10630 resolveTypeReferenceDirectives(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference?: ResolvedProjectReference, _options?: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 10631 directoryExists(path: string): boolean; 10632 getDirectories(path: string): string[]; 10633 log(s: string): void; 10634 error(s: string): void; 10635 private setInternalCompilerOptionsForEmittingJsFiles; 10636 /** 10637 * Get the errors that dont have any file name associated 10638 */ 10639 getGlobalProjectErrors(): readonly Diagnostic[]; 10640 /** 10641 * Get all the project errors 10642 */ 10643 getAllProjectErrors(): readonly Diagnostic[]; 10644 setProjectErrors(projectErrors: Diagnostic[] | undefined): void; 10645 getLanguageService(ensureSynchronized?: boolean): LanguageService; 10646 getCompileOnSaveAffectedFileList(scriptInfo: ScriptInfo): string[]; 10647 /** 10648 * Returns true if emit was conducted 10649 */ 10650 emitFile(scriptInfo: ScriptInfo, writeFile: (path: string, data: string, writeByteOrderMark?: boolean) => void): EmitResult; 10651 enableLanguageService(): void; 10652 disableLanguageService(lastFileExceededProgramSize?: string): void; 10653 getProjectName(): string; 10654 protected removeLocalTypingsFromTypeAcquisition(newTypeAcquisition: TypeAcquisition): TypeAcquisition; 10655 getExternalFiles(): SortedReadonlyArray<string>; 10656 getSourceFile(path: Path): SourceFile | undefined; 10657 close(): void; 10658 private detachScriptInfoIfNotRoot; 10659 isClosed(): boolean; 10660 hasRoots(): boolean; 10661 getRootFiles(): NormalizedPath[]; 10662 getRootScriptInfos(): ScriptInfo[]; 10663 getScriptInfos(): ScriptInfo[]; 10664 getExcludedFiles(): readonly NormalizedPath[]; 10665 getFileNames(excludeFilesFromExternalLibraries?: boolean, excludeConfigFiles?: boolean): NormalizedPath[]; 10666 hasConfigFile(configFilePath: NormalizedPath): boolean; 10667 containsScriptInfo(info: ScriptInfo): boolean; 10668 containsFile(filename: NormalizedPath, requireOpen?: boolean): boolean; 10669 isRoot(info: ScriptInfo): boolean; 10670 addRoot(info: ScriptInfo, fileName?: NormalizedPath): void; 10671 addMissingFileRoot(fileName: NormalizedPath): void; 10672 removeFile(info: ScriptInfo, fileExists: boolean, detachFromProject: boolean): void; 10673 registerFileUpdate(fileName: string): void; 10674 markAsDirty(): void; 10675 /** 10676 * Updates set of files that contribute to this project 10677 * @returns: true if set of files in the project stays the same and false - otherwise. 10678 */ 10679 updateGraph(): boolean; 10680 protected removeExistingTypings(include: string[]): string[]; 10681 private updateGraphWorker; 10682 private detachScriptInfoFromProject; 10683 private addMissingFileWatcher; 10684 private isWatchedMissingFile; 10685 private createGeneratedFileWatcher; 10686 private isValidGeneratedFileWatcher; 10687 private clearGeneratedFileWatch; 10688 getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo | undefined; 10689 getScriptInfo(uncheckedFileName: string): ScriptInfo | undefined; 10690 filesToString(writeProjectFileNames: boolean): string; 10691 setCompilerOptions(compilerOptions: CompilerOptions): void; 10692 setTypeAcquisition(newTypeAcquisition: TypeAcquisition | undefined): void; 10693 getTypeAcquisition(): TypeAcquisition; 10694 protected removeRoot(info: ScriptInfo): void; 10695 protected enableGlobalPlugins(options: CompilerOptions, pluginConfigOverrides: Map<any> | undefined): void; 10696 protected enablePlugin(pluginConfigEntry: PluginImport, searchPaths: string[], pluginConfigOverrides: Map<any> | undefined): void; 10697 private enableProxy; 10698 /** Starts a new check for diagnostics. Call this if some file has updated that would cause diagnostics to be changed. */ 10699 refreshDiagnostics(): void; 10700 } 10701 /** 10702 * If a file is opened and no tsconfig (or jsconfig) is found, 10703 * the file and its imports/references are put into an InferredProject. 10704 */ 10705 class InferredProject extends Project { 10706 private _isJsInferredProject; 10707 toggleJsInferredProject(isJsInferredProject: boolean): void; 10708 setCompilerOptions(options?: CompilerOptions): void; 10709 /** this is canonical project root path */ 10710 readonly projectRootPath: string | undefined; 10711 addRoot(info: ScriptInfo): void; 10712 removeRoot(info: ScriptInfo): void; 10713 isProjectWithSingleRoot(): boolean; 10714 close(): void; 10715 getTypeAcquisition(): TypeAcquisition; 10716 } 10717 class AutoImportProviderProject extends Project { 10718 private hostProject; 10719 private rootFileNames; 10720 isOrphan(): boolean; 10721 updateGraph(): boolean; 10722 hasRoots(): boolean; 10723 markAsDirty(): void; 10724 getScriptFileNames(): string[]; 10725 getLanguageService(): never; 10726 getModuleResolutionHostForAutoImportProvider(): never; 10727 getProjectReferences(): readonly ProjectReference[] | undefined; 10728 getTypeAcquisition(): TypeAcquisition; 10729 } 10730 /** 10731 * If a file is opened, the server will look for a tsconfig (or jsconfig) 10732 * and if successful create a ConfiguredProject for it. 10733 * Otherwise it will create an InferredProject. 10734 */ 10735 class ConfiguredProject extends Project { 10736 readonly canonicalConfigFilePath: NormalizedPath; 10737 /** Ref count to the project when opened from external project */ 10738 private externalProjectRefCount; 10739 private projectReferences; 10740 /** 10741 * If the project has reload from disk pending, it reloads (and then updates graph as part of that) instead of just updating the graph 10742 * @returns: true if set of files in the project stays the same and false - otherwise. 10743 */ 10744 updateGraph(): boolean; 10745 getConfigFilePath(): NormalizedPath; 10746 getProjectReferences(): readonly ProjectReference[] | undefined; 10747 updateReferences(refs: readonly ProjectReference[] | undefined): void; 10748 /** 10749 * Get the errors that dont have any file name associated 10750 */ 10751 getGlobalProjectErrors(): readonly Diagnostic[]; 10752 /** 10753 * Get all the project errors 10754 */ 10755 getAllProjectErrors(): readonly Diagnostic[]; 10756 setProjectErrors(projectErrors: Diagnostic[]): void; 10757 close(): void; 10758 getEffectiveTypeRoots(): string[]; 10759 } 10760 /** 10761 * Project whose configuration is handled externally, such as in a '.csproj'. 10762 * These are created only if a host explicitly calls `openExternalProject`. 10763 */ 10764 class ExternalProject extends Project { 10765 externalProjectName: string; 10766 compileOnSaveEnabled: boolean; 10767 excludedFiles: readonly NormalizedPath[]; 10768 updateGraph(): boolean; 10769 getExcludedFiles(): readonly NormalizedPath[]; 10770 } 10771} 10772declare namespace ts.server { 10773 export const maxProgramSizeForNonTsFiles: number; 10774 export const ProjectsUpdatedInBackgroundEvent = "projectsUpdatedInBackground"; 10775 export const ProjectLoadingStartEvent = "projectLoadingStart"; 10776 export const ProjectLoadingFinishEvent = "projectLoadingFinish"; 10777 export const LargeFileReferencedEvent = "largeFileReferenced"; 10778 export const ConfigFileDiagEvent = "configFileDiag"; 10779 export const ProjectLanguageServiceStateEvent = "projectLanguageServiceState"; 10780 export const ProjectInfoTelemetryEvent = "projectInfo"; 10781 export const OpenFileInfoTelemetryEvent = "openFileInfo"; 10782 export interface ProjectsUpdatedInBackgroundEvent { 10783 eventName: typeof ProjectsUpdatedInBackgroundEvent; 10784 data: { 10785 openFiles: string[]; 10786 }; 10787 } 10788 export interface ProjectLoadingStartEvent { 10789 eventName: typeof ProjectLoadingStartEvent; 10790 data: { 10791 project: Project; 10792 reason: string; 10793 }; 10794 } 10795 export interface ProjectLoadingFinishEvent { 10796 eventName: typeof ProjectLoadingFinishEvent; 10797 data: { 10798 project: Project; 10799 }; 10800 } 10801 export interface LargeFileReferencedEvent { 10802 eventName: typeof LargeFileReferencedEvent; 10803 data: { 10804 file: string; 10805 fileSize: number; 10806 maxFileSize: number; 10807 }; 10808 } 10809 export interface ConfigFileDiagEvent { 10810 eventName: typeof ConfigFileDiagEvent; 10811 data: { 10812 triggerFile: string; 10813 configFileName: string; 10814 diagnostics: readonly Diagnostic[]; 10815 }; 10816 } 10817 export interface ProjectLanguageServiceStateEvent { 10818 eventName: typeof ProjectLanguageServiceStateEvent; 10819 data: { 10820 project: Project; 10821 languageServiceEnabled: boolean; 10822 }; 10823 } 10824 /** This will be converted to the payload of a protocol.TelemetryEvent in session.defaultEventHandler. */ 10825 export interface ProjectInfoTelemetryEvent { 10826 readonly eventName: typeof ProjectInfoTelemetryEvent; 10827 readonly data: ProjectInfoTelemetryEventData; 10828 } 10829 export interface ProjectInfoTelemetryEventData { 10830 /** Cryptographically secure hash of project file location. */ 10831 readonly projectId: string; 10832 /** Count of file extensions seen in the project. */ 10833 readonly fileStats: FileStats; 10834 /** 10835 * Any compiler options that might contain paths will be taken out. 10836 * Enum compiler options will be converted to strings. 10837 */ 10838 readonly compilerOptions: CompilerOptions; 10839 readonly extends: boolean | undefined; 10840 readonly files: boolean | undefined; 10841 readonly include: boolean | undefined; 10842 readonly exclude: boolean | undefined; 10843 readonly compileOnSave: boolean; 10844 readonly typeAcquisition: ProjectInfoTypeAcquisitionData; 10845 readonly configFileName: "tsconfig.json" | "jsconfig.json" | "other"; 10846 readonly projectType: "external" | "configured"; 10847 readonly languageServiceEnabled: boolean; 10848 /** TypeScript version used by the server. */ 10849 readonly version: string; 10850 } 10851 /** 10852 * Info that we may send about a file that was just opened. 10853 * Info about a file will only be sent once per session, even if the file changes in ways that might affect the info. 10854 * Currently this is only sent for '.js' files. 10855 */ 10856 export interface OpenFileInfoTelemetryEvent { 10857 readonly eventName: typeof OpenFileInfoTelemetryEvent; 10858 readonly data: OpenFileInfoTelemetryEventData; 10859 } 10860 export interface OpenFileInfoTelemetryEventData { 10861 readonly info: OpenFileInfo; 10862 } 10863 export interface ProjectInfoTypeAcquisitionData { 10864 readonly enable: boolean | undefined; 10865 readonly include: boolean; 10866 readonly exclude: boolean; 10867 } 10868 export interface FileStats { 10869 readonly js: number; 10870 readonly jsSize?: number; 10871 readonly jsx: number; 10872 readonly jsxSize?: number; 10873 readonly ts: number; 10874 readonly tsSize?: number; 10875 readonly tsx: number; 10876 readonly tsxSize?: number; 10877 readonly dts: number; 10878 readonly dtsSize?: number; 10879 readonly deferred: number; 10880 readonly deferredSize?: number; 10881 readonly ets: number; 10882 readonly etsSize?: number; 10883 readonly dets: number; 10884 readonly detsSize?: number; 10885 } 10886 export interface OpenFileInfo { 10887 readonly checkJs: boolean; 10888 } 10889 export type ProjectServiceEvent = LargeFileReferencedEvent | ProjectsUpdatedInBackgroundEvent | ProjectLoadingStartEvent | ProjectLoadingFinishEvent | ConfigFileDiagEvent | ProjectLanguageServiceStateEvent | ProjectInfoTelemetryEvent | OpenFileInfoTelemetryEvent; 10890 export type ProjectServiceEventHandler = (event: ProjectServiceEvent) => void; 10891 export interface SafeList { 10892 [name: string]: { 10893 match: RegExp; 10894 exclude?: (string | number)[][]; 10895 types?: string[]; 10896 }; 10897 } 10898 export interface TypesMapFile { 10899 typesMap: SafeList; 10900 simpleMap: { 10901 [libName: string]: string; 10902 }; 10903 } 10904 export function convertFormatOptions(protocolOptions: protocol.FormatCodeSettings): FormatCodeSettings; 10905 export function convertCompilerOptions(protocolOptions: protocol.ExternalProjectCompilerOptions): CompilerOptions & protocol.CompileOnSaveMixin; 10906 export function convertWatchOptions(protocolOptions: protocol.ExternalProjectCompilerOptions, currentDirectory?: string): WatchOptionsAndErrors | undefined; 10907 export function convertTypeAcquisition(protocolOptions: protocol.InferredProjectCompilerOptions): TypeAcquisition | undefined; 10908 export function tryConvertScriptKindName(scriptKindName: protocol.ScriptKindName | ScriptKind): ScriptKind; 10909 export function convertScriptKindName(scriptKindName: protocol.ScriptKindName): ScriptKind.Unknown | ScriptKind.JS | ScriptKind.JSX | ScriptKind.TS | ScriptKind.TSX | ScriptKind.ETS; 10910 export interface HostConfiguration { 10911 formatCodeOptions: FormatCodeSettings; 10912 preferences: protocol.UserPreferences; 10913 hostInfo: string; 10914 extraFileExtensions?: FileExtensionInfo[]; 10915 watchOptions?: WatchOptions; 10916 } 10917 export interface OpenConfiguredProjectResult { 10918 configFileName?: NormalizedPath; 10919 configFileErrors?: readonly Diagnostic[]; 10920 } 10921 export interface ProjectServiceOptions { 10922 host: ServerHost; 10923 logger: Logger; 10924 cancellationToken: HostCancellationToken; 10925 useSingleInferredProject: boolean; 10926 useInferredProjectPerProjectRoot: boolean; 10927 typingsInstaller: ITypingsInstaller; 10928 eventHandler?: ProjectServiceEventHandler; 10929 suppressDiagnosticEvents?: boolean; 10930 throttleWaitMilliseconds?: number; 10931 globalPlugins?: readonly string[]; 10932 pluginProbeLocations?: readonly string[]; 10933 allowLocalPluginLoads?: boolean; 10934 typesMapLocation?: string; 10935 /** @deprecated use serverMode instead */ 10936 syntaxOnly?: boolean; 10937 serverMode?: LanguageServiceMode; 10938 session: Session<unknown> | undefined; 10939 } 10940 export interface WatchOptionsAndErrors { 10941 watchOptions: WatchOptions; 10942 errors: Diagnostic[] | undefined; 10943 } 10944 export class ProjectService { 10945 private readonly nodeModulesWatchers; 10946 /** 10947 * Contains all the deleted script info's version information so that 10948 * it does not reset when creating script info again 10949 * (and could have potentially collided with version where contents mismatch) 10950 */ 10951 private readonly filenameToScriptInfoVersion; 10952 private readonly allJsFilesForOpenFileTelemetry; 10953 /** 10954 * maps external project file name to list of config files that were the part of this project 10955 */ 10956 private readonly externalProjectToConfiguredProjectMap; 10957 /** 10958 * external projects (configuration and list of root files is not controlled by tsserver) 10959 */ 10960 readonly externalProjects: ExternalProject[]; 10961 /** 10962 * projects built from openFileRoots 10963 */ 10964 readonly inferredProjects: InferredProject[]; 10965 /** 10966 * projects specified by a tsconfig.json file 10967 */ 10968 readonly configuredProjects: Map<ConfiguredProject>; 10969 /** 10970 * Open files: with value being project root path, and key being Path of the file that is open 10971 */ 10972 readonly openFiles: Map<NormalizedPath | undefined>; 10973 /** 10974 * Map of open files that are opened without complete path but have projectRoot as current directory 10975 */ 10976 private readonly openFilesWithNonRootedDiskPath; 10977 private compilerOptionsForInferredProjects; 10978 private compilerOptionsForInferredProjectsPerProjectRoot; 10979 private watchOptionsForInferredProjects; 10980 private watchOptionsForInferredProjectsPerProjectRoot; 10981 private typeAcquisitionForInferredProjects; 10982 private typeAcquisitionForInferredProjectsPerProjectRoot; 10983 /** 10984 * Project size for configured or external projects 10985 */ 10986 private readonly projectToSizeMap; 10987 private readonly hostConfiguration; 10988 private safelist; 10989 private readonly legacySafelist; 10990 private pendingProjectUpdates; 10991 readonly currentDirectory: NormalizedPath; 10992 readonly toCanonicalFileName: (f: string) => string; 10993 readonly host: ServerHost; 10994 readonly logger: Logger; 10995 readonly cancellationToken: HostCancellationToken; 10996 readonly useSingleInferredProject: boolean; 10997 readonly useInferredProjectPerProjectRoot: boolean; 10998 readonly typingsInstaller: ITypingsInstaller; 10999 private readonly globalCacheLocationDirectoryPath; 11000 readonly throttleWaitMilliseconds?: number; 11001 private readonly eventHandler?; 11002 private readonly suppressDiagnosticEvents?; 11003 readonly globalPlugins: readonly string[]; 11004 readonly pluginProbeLocations: readonly string[]; 11005 readonly allowLocalPluginLoads: boolean; 11006 private currentPluginConfigOverrides; 11007 readonly typesMapLocation: string | undefined; 11008 /** @deprecated use serverMode instead */ 11009 readonly syntaxOnly: boolean; 11010 readonly serverMode: LanguageServiceMode; 11011 /** Tracks projects that we have already sent telemetry for. */ 11012 private readonly seenProjects; 11013 private performanceEventHandler?; 11014 private pendingPluginEnablements?; 11015 private currentPluginEnablementPromise?; 11016 constructor(opts: ProjectServiceOptions); 11017 toPath(fileName: string): Path; 11018 private loadTypesMap; 11019 updateTypingsForProject(response: SetTypings | InvalidateCachedTypings | PackageInstalledResponse): void; 11020 private delayUpdateProjectGraph; 11021 private delayUpdateProjectGraphs; 11022 setCompilerOptionsForInferredProjects(projectCompilerOptions: protocol.InferredProjectCompilerOptions, projectRootPath?: string): void; 11023 findProject(projectName: string): Project | undefined; 11024 getDefaultProjectForFile(fileName: NormalizedPath, ensureProject: boolean): Project | undefined; 11025 private doEnsureDefaultProjectForFile; 11026 getScriptInfoEnsuringProjectsUptoDate(uncheckedFileName: string): ScriptInfo | undefined; 11027 /** 11028 * Ensures the project structures are upto date 11029 * This means, 11030 * - we go through all the projects and update them if they are dirty 11031 * - if updates reflect some change in structure or there was pending request to ensure projects for open files 11032 * ensure that each open script info has project 11033 */ 11034 private ensureProjectStructuresUptoDate; 11035 getFormatCodeOptions(file: NormalizedPath): FormatCodeSettings; 11036 getPreferences(file: NormalizedPath): protocol.UserPreferences; 11037 getHostFormatCodeOptions(): FormatCodeSettings; 11038 getHostPreferences(): protocol.UserPreferences; 11039 private onSourceFileChanged; 11040 private handleSourceMapProjects; 11041 private delayUpdateSourceInfoProjects; 11042 private delayUpdateProjectsOfScriptInfoPath; 11043 private handleDeletedFile; 11044 private removeProject; 11045 private assignOrphanScriptInfosToInferredProject; 11046 /** 11047 * Remove this file from the set of open, non-configured files. 11048 * @param info The file that has been closed or newly configured 11049 */ 11050 private closeOpenFile; 11051 private deleteScriptInfo; 11052 private configFileExists; 11053 /** 11054 * Returns true if the configFileExistenceInfo is needed/impacted by open files that are root of inferred project 11055 */ 11056 private configFileExistenceImpactsRootOfInferredProject; 11057 /** 11058 * This is called on file close, so that we stop watching the config file for this script info 11059 */ 11060 private stopWatchingConfigFilesForClosedScriptInfo; 11061 /** 11062 * This function tries to search for a tsconfig.json for the given file. 11063 * This is different from the method the compiler uses because 11064 * the compiler can assume it will always start searching in the 11065 * current directory (the directory in which tsc was invoked). 11066 * The server must start searching from the directory containing 11067 * the newly opened file. 11068 */ 11069 private forEachConfigFileLocation; 11070 /** 11071 * This function tries to search for a tsconfig.json for the given file. 11072 * This is different from the method the compiler uses because 11073 * the compiler can assume it will always start searching in the 11074 * current directory (the directory in which tsc was invoked). 11075 * The server must start searching from the directory containing 11076 * the newly opened file. 11077 * If script info is passed in, it is asserted to be open script info 11078 * otherwise just file name 11079 */ 11080 private getConfigFileNameForFile; 11081 private printProjects; 11082 private getConfiguredProjectByCanonicalConfigFilePath; 11083 private findExternalProjectByProjectName; 11084 /** Get a filename if the language service exceeds the maximum allowed program size; otherwise returns undefined. */ 11085 private getFilenameForExceededTotalSizeLimitForNonTsFiles; 11086 private createExternalProject; 11087 private addFilesToNonInferredProject; 11088 private updateNonInferredProjectFiles; 11089 private updateRootAndOptionsOfNonInferredProject; 11090 private sendConfigFileDiagEvent; 11091 private getOrCreateInferredProjectForProjectRootPathIfEnabled; 11092 private getOrCreateSingleInferredProjectIfEnabled; 11093 private getOrCreateSingleInferredWithoutProjectRoot; 11094 private createInferredProject; 11095 getScriptInfo(uncheckedFileName: string): ScriptInfo | undefined; 11096 private watchClosedScriptInfo; 11097 private createNodeModulesWatcher; 11098 private watchClosedScriptInfoInNodeModules; 11099 private getModifiedTime; 11100 private refreshScriptInfo; 11101 private refreshScriptInfosInDirectory; 11102 private stopWatchingScriptInfo; 11103 private getOrCreateScriptInfoNotOpenedByClientForNormalizedPath; 11104 private getOrCreateScriptInfoOpenedByClientForNormalizedPath; 11105 getOrCreateScriptInfoForNormalizedPath(fileName: NormalizedPath, openedByClient: boolean, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, hostToQueryFileExistsOn?: { 11106 fileExists(path: string): boolean; 11107 }): ScriptInfo | undefined; 11108 private getOrCreateScriptInfoWorker; 11109 /** 11110 * This gets the script info for the normalized path. If the path is not rooted disk path then the open script info with project root context is preferred 11111 */ 11112 getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo | undefined; 11113 getScriptInfoForPath(fileName: Path): ScriptInfo | undefined; 11114 private addSourceInfoToSourceMap; 11115 private addMissingSourceMapFile; 11116 setHostConfiguration(args: protocol.ConfigureRequestArguments): void; 11117 closeLog(): void; 11118 /** 11119 * This function rebuilds the project for every file opened by the client 11120 * This does not reload contents of open files from disk. But we could do that if needed 11121 */ 11122 reloadProjects(): void; 11123 /** 11124 * This function goes through all the openFiles and tries to file the config file for them. 11125 * If the config file is found and it refers to existing project, it reloads it either immediately 11126 * or schedules it for reload depending on delayReload option 11127 * If there is no existing project it just opens the configured project for the config file 11128 * reloadForInfo provides a way to filter out files to reload configured project for 11129 */ 11130 private reloadConfiguredProjectForFiles; 11131 /** 11132 * Remove the root of inferred project if script info is part of another project 11133 */ 11134 private removeRootOfInferredProjectIfNowPartOfOtherProject; 11135 /** 11136 * This function is to update the project structure for every inferred project. 11137 * It is called on the premise that all the configured projects are 11138 * up to date. 11139 * This will go through open files and assign them to inferred project if open file is not part of any other project 11140 * After that all the inferred project graphs are updated 11141 */ 11142 private ensureProjectForOpenFiles; 11143 /** 11144 * Open file whose contents is managed by the client 11145 * @param filename is absolute pathname 11146 * @param fileContent is a known version of the file content that is more up to date than the one on disk 11147 */ 11148 openClientFile(fileName: string, fileContent?: string, scriptKind?: ScriptKind, projectRootPath?: string): OpenConfiguredProjectResult; 11149 private findExternalProjectContainingOpenScriptInfo; 11150 private getOrCreateOpenScriptInfo; 11151 private assignProjectToOpenedScriptInfo; 11152 private createAncestorProjects; 11153 private ensureProjectChildren; 11154 private cleanupAfterOpeningFile; 11155 openClientFileWithNormalizedPath(fileName: NormalizedPath, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, projectRootPath?: NormalizedPath): OpenConfiguredProjectResult; 11156 private removeOrphanConfiguredProjects; 11157 private removeOrphanScriptInfos; 11158 private telemetryOnOpenFile; 11159 /** 11160 * Close file whose contents is managed by the client 11161 * @param filename is absolute pathname 11162 */ 11163 closeClientFile(uncheckedFileName: string): void; 11164 private collectChanges; 11165 private closeConfiguredProjectReferencedFromExternalProject; 11166 closeExternalProject(uncheckedFileName: string): void; 11167 openExternalProjects(projects: protocol.ExternalProject[]): void; 11168 /** Makes a filename safe to insert in a RegExp */ 11169 private static readonly filenameEscapeRegexp; 11170 private static escapeFilenameForRegex; 11171 resetSafeList(): void; 11172 applySafeList(proj: protocol.ExternalProject): NormalizedPath[]; 11173 openExternalProject(proj: protocol.ExternalProject): void; 11174 hasDeferredExtension(): boolean; 11175 private enableRequestedPluginsAsync; 11176 private enableRequestedPluginsWorker; 11177 private enableRequestedPluginsForProjectAsync; 11178 configurePlugin(args: protocol.ConfigurePluginRequestArguments): void; 11179 } 11180 export {}; 11181} 11182declare namespace ts.server { 11183 interface ServerCancellationToken extends HostCancellationToken { 11184 setRequest(requestId: number): void; 11185 resetRequest(requestId: number): void; 11186 } 11187 const nullCancellationToken: ServerCancellationToken; 11188 interface PendingErrorCheck { 11189 fileName: NormalizedPath; 11190 project: Project; 11191 } 11192 type CommandNames = protocol.CommandTypes; 11193 const CommandNames: any; 11194 function formatMessage<T extends protocol.Message>(msg: T, logger: Logger, byteLength: (s: string, encoding: string) => number, newLine: string): string; 11195 type Event = <T extends object>(body: T, eventName: string) => void; 11196 interface EventSender { 11197 event: Event; 11198 } 11199 interface SessionOptions { 11200 host: ServerHost; 11201 cancellationToken: ServerCancellationToken; 11202 useSingleInferredProject: boolean; 11203 useInferredProjectPerProjectRoot: boolean; 11204 typingsInstaller: ITypingsInstaller; 11205 byteLength: (buf: string, encoding?: string) => number; 11206 hrtime: (start?: number[]) => number[]; 11207 logger: Logger; 11208 /** 11209 * If falsy, all events are suppressed. 11210 */ 11211 canUseEvents: boolean; 11212 eventHandler?: ProjectServiceEventHandler; 11213 /** Has no effect if eventHandler is also specified. */ 11214 suppressDiagnosticEvents?: boolean; 11215 /** @deprecated use serverMode instead */ 11216 syntaxOnly?: boolean; 11217 serverMode?: LanguageServiceMode; 11218 throttleWaitMilliseconds?: number; 11219 noGetErrOnBackgroundUpdate?: boolean; 11220 globalPlugins?: readonly string[]; 11221 pluginProbeLocations?: readonly string[]; 11222 allowLocalPluginLoads?: boolean; 11223 typesMapLocation?: string; 11224 } 11225 class Session<TMessage = string> implements EventSender { 11226 private readonly gcTimer; 11227 protected projectService: ProjectService; 11228 private changeSeq; 11229 private performanceData; 11230 private currentRequestId; 11231 private errorCheck; 11232 protected host: ServerHost; 11233 private readonly cancellationToken; 11234 protected readonly typingsInstaller: ITypingsInstaller; 11235 protected byteLength: (buf: string, encoding?: string) => number; 11236 private hrtime; 11237 protected logger: Logger; 11238 protected canUseEvents: boolean; 11239 private suppressDiagnosticEvents?; 11240 private eventHandler; 11241 private readonly noGetErrOnBackgroundUpdate?; 11242 constructor(opts: SessionOptions); 11243 private sendRequestCompletedEvent; 11244 private addPerformanceData; 11245 private performanceEventHandler; 11246 private defaultEventHandler; 11247 private projectsUpdatedInBackgroundEvent; 11248 logError(err: Error, cmd: string): void; 11249 private logErrorWorker; 11250 send(msg: protocol.Message): void; 11251 protected writeMessage(msg: protocol.Message): void; 11252 event<T extends object>(body: T, eventName: string): void; 11253 /** @deprecated */ 11254 output(info: any, cmdName: string, reqSeq?: number, errorMsg?: string): void; 11255 private doOutput; 11256 private semanticCheck; 11257 private syntacticCheck; 11258 private suggestionCheck; 11259 private sendDiagnosticsEvent; 11260 /** It is the caller's responsibility to verify that `!this.suppressDiagnosticEvents`. */ 11261 private updateErrorCheck; 11262 private cleanProjects; 11263 private cleanup; 11264 private getEncodedSyntacticClassifications; 11265 private getEncodedSemanticClassifications; 11266 private getProject; 11267 private getConfigFileAndProject; 11268 private getConfigFileDiagnostics; 11269 private convertToDiagnosticsWithLinePositionFromDiagnosticFile; 11270 private getCompilerOptionsDiagnostics; 11271 private convertToDiagnosticsWithLinePosition; 11272 private getDiagnosticsWorker; 11273 private getDefinition; 11274 private mapDefinitionInfoLocations; 11275 private getDefinitionAndBoundSpan; 11276 private findSourceDefinition; 11277 private getEmitOutput; 11278 private mapJSDocTagInfo; 11279 private mapDisplayParts; 11280 private mapSignatureHelpItems; 11281 private mapDefinitionInfo; 11282 private static mapToOriginalLocation; 11283 private toFileSpan; 11284 private toFileSpanWithContext; 11285 private getTypeDefinition; 11286 private mapImplementationLocations; 11287 private getImplementation; 11288 private getOccurrences; 11289 private getSyntacticDiagnosticsSync; 11290 private getSemanticDiagnosticsSync; 11291 private getSuggestionDiagnosticsSync; 11292 private getJsxClosingTag; 11293 private getDocumentHighlights; 11294 private provideInlayHints; 11295 private setCompilerOptionsForInferredProjects; 11296 private getProjectInfo; 11297 private getProjectInfoWorker; 11298 private getRenameInfo; 11299 private getProjects; 11300 private getDefaultProject; 11301 private getRenameLocations; 11302 private mapRenameInfo; 11303 private toSpanGroups; 11304 private getReferences; 11305 private getFileReferences; 11306 /** 11307 * @param fileName is the name of the file to be opened 11308 * @param fileContent is a version of the file content that is known to be more up to date than the one on disk 11309 */ 11310 private openClientFile; 11311 private getPosition; 11312 private getPositionInFile; 11313 private getFileAndProject; 11314 private getFileAndLanguageServiceForSyntacticOperation; 11315 private getFileAndProjectWorker; 11316 private getOutliningSpans; 11317 private getTodoComments; 11318 private getDocCommentTemplate; 11319 private getSpanOfEnclosingComment; 11320 private getIndentation; 11321 private getBreakpointStatement; 11322 private getNameOrDottedNameSpan; 11323 private isValidBraceCompletion; 11324 private getQuickInfoWorker; 11325 private getFormattingEditsForRange; 11326 private getFormattingEditsForRangeFull; 11327 private getFormattingEditsForDocumentFull; 11328 private getFormattingEditsAfterKeystrokeFull; 11329 private getFormattingEditsAfterKeystroke; 11330 private getCompletions; 11331 private getCompletionEntryDetails; 11332 private getCompileOnSaveAffectedFileList; 11333 private emitFile; 11334 private getSignatureHelpItems; 11335 private toPendingErrorCheck; 11336 private getDiagnostics; 11337 private change; 11338 private reload; 11339 private saveToTmp; 11340 private closeClientFile; 11341 private mapLocationNavigationBarItems; 11342 private getNavigationBarItems; 11343 private toLocationNavigationTree; 11344 private getNavigationTree; 11345 private getNavigateToItems; 11346 private getFullNavigateToItems; 11347 private getSupportedCodeFixes; 11348 private isLocation; 11349 private extractPositionOrRange; 11350 private getRange; 11351 private getApplicableRefactors; 11352 private getEditsForRefactor; 11353 private organizeImports; 11354 private getEditsForFileRename; 11355 private getCodeFixes; 11356 private getCombinedCodeFix; 11357 private applyCodeActionCommand; 11358 private getStartAndEndPosition; 11359 private mapCodeAction; 11360 private mapCodeFixAction; 11361 private mapTextChangesToCodeEdits; 11362 private mapTextChangeToCodeEdit; 11363 private convertTextChangeToCodeEdit; 11364 private getBraceMatching; 11365 private getDiagnosticsForProject; 11366 private configurePlugin; 11367 private getSmartSelectionRange; 11368 private toggleLineComment; 11369 private toggleMultilineComment; 11370 private commentSelection; 11371 private uncommentSelection; 11372 private mapSelectionRange; 11373 private getScriptInfoFromProjectService; 11374 private toProtocolCallHierarchyItem; 11375 private toProtocolCallHierarchyIncomingCall; 11376 private toProtocolCallHierarchyOutgoingCall; 11377 private prepareCallHierarchy; 11378 private provideCallHierarchyIncomingCalls; 11379 private provideCallHierarchyOutgoingCalls; 11380 getCanonicalFileName(fileName: string): string; 11381 exit(): void; 11382 private notRequired; 11383 private requiredResponse; 11384 private handlers; 11385 addProtocolHandler(command: string, handler: (request: protocol.Request) => HandlerResponse): void; 11386 private setCurrentRequest; 11387 private resetCurrentRequest; 11388 executeWithRequestId<T>(requestId: number, f: () => T): T; 11389 executeCommand(request: protocol.Request): HandlerResponse; 11390 onMessage(message: TMessage): void; 11391 protected parseMessage(message: TMessage): protocol.Request; 11392 protected toStringMessage(message: TMessage): string; 11393 private getFormatOptions; 11394 private getPreferences; 11395 private getHostFormatOptions; 11396 private getHostPreferences; 11397 } 11398 interface HandlerResponse { 11399 response?: {}; 11400 responseRequired?: boolean; 11401 } 11402} 11403declare namespace ts { 11404 /** @deprecated Use `factory.createNodeArray` or the factory supplied by your transformation context instead. */ 11405 const createNodeArray: <T extends Node>(elements?: readonly T[] | undefined, hasTrailingComma?: boolean | undefined) => NodeArray<T>; 11406 /** @deprecated Use `factory.createNumericLiteral` or the factory supplied by your transformation context instead. */ 11407 const createNumericLiteral: (value: string | number, numericLiteralFlags?: TokenFlags | undefined) => NumericLiteral; 11408 /** @deprecated Use `factory.createBigIntLiteral` or the factory supplied by your transformation context instead. */ 11409 const createBigIntLiteral: (value: string | PseudoBigInt) => BigIntLiteral; 11410 /** @deprecated Use `factory.createStringLiteral` or the factory supplied by your transformation context instead. */ 11411 const createStringLiteral: { 11412 (text: string, isSingleQuote?: boolean | undefined): StringLiteral; 11413 (text: string, isSingleQuote?: boolean | undefined, hasExtendedUnicodeEscape?: boolean | undefined): StringLiteral; 11414 }; 11415 /** @deprecated Use `factory.createStringLiteralFromNode` or the factory supplied by your transformation context instead. */ 11416 const createStringLiteralFromNode: (sourceNode: PrivateIdentifier | PropertyNameLiteral, isSingleQuote?: boolean | undefined) => StringLiteral; 11417 /** @deprecated Use `factory.createRegularExpressionLiteral` or the factory supplied by your transformation context instead. */ 11418 const createRegularExpressionLiteral: (text: string) => RegularExpressionLiteral; 11419 /** @deprecated Use `factory.createLoopVariable` or the factory supplied by your transformation context instead. */ 11420 const createLoopVariable: (reservedInNestedScopes?: boolean | undefined) => Identifier; 11421 /** @deprecated Use `factory.createUniqueName` or the factory supplied by your transformation context instead. */ 11422 const createUniqueName: (text: string, flags?: GeneratedIdentifierFlags | undefined) => Identifier; 11423 /** @deprecated Use `factory.createPrivateIdentifier` or the factory supplied by your transformation context instead. */ 11424 const createPrivateIdentifier: (text: string) => PrivateIdentifier; 11425 /** @deprecated Use `factory.createSuper` or the factory supplied by your transformation context instead. */ 11426 const createSuper: () => SuperExpression; 11427 /** @deprecated Use `factory.createThis` or the factory supplied by your transformation context instead. */ 11428 const createThis: () => ThisExpression; 11429 /** @deprecated Use `factory.createNull` or the factory supplied by your transformation context instead. */ 11430 const createNull: () => NullLiteral; 11431 /** @deprecated Use `factory.createTrue` or the factory supplied by your transformation context instead. */ 11432 const createTrue: () => TrueLiteral; 11433 /** @deprecated Use `factory.createFalse` or the factory supplied by your transformation context instead. */ 11434 const createFalse: () => FalseLiteral; 11435 /** @deprecated Use `factory.createModifier` or the factory supplied by your transformation context instead. */ 11436 const createModifier: <T extends ModifierSyntaxKind>(kind: T) => ModifierToken<T>; 11437 /** @deprecated Use `factory.createModifiersFromModifierFlags` or the factory supplied by your transformation context instead. */ 11438 const createModifiersFromModifierFlags: (flags: ModifierFlags) => Modifier[] | undefined; 11439 /** @deprecated Use `factory.createQualifiedName` or the factory supplied by your transformation context instead. */ 11440 const createQualifiedName: (left: EntityName, right: string | Identifier) => QualifiedName; 11441 /** @deprecated Use `factory.updateQualifiedName` or the factory supplied by your transformation context instead. */ 11442 const updateQualifiedName: (node: QualifiedName, left: EntityName, right: Identifier) => QualifiedName; 11443 /** @deprecated Use `factory.createComputedPropertyName` or the factory supplied by your transformation context instead. */ 11444 const createComputedPropertyName: (expression: Expression) => ComputedPropertyName; 11445 /** @deprecated Use `factory.updateComputedPropertyName` or the factory supplied by your transformation context instead. */ 11446 const updateComputedPropertyName: (node: ComputedPropertyName, expression: Expression) => ComputedPropertyName; 11447 /** @deprecated Use `factory.createTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ 11448 const createTypeParameterDeclaration: { 11449 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; 11450 (name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; 11451 }; 11452 /** @deprecated Use `factory.updateTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ 11453 const updateTypeParameterDeclaration: { 11454 (node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 11455 (node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 11456 }; 11457 /** @deprecated Use `factory.createParameterDeclaration` or the factory supplied by your transformation context instead. */ 11458 const createParameter: { 11459 (modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken | undefined, type?: TypeNode | undefined, initializer?: Expression | undefined): ParameterDeclaration; 11460 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken | undefined, type?: TypeNode | undefined, initializer?: Expression | undefined): ParameterDeclaration; 11461 }; 11462 /** @deprecated Use `factory.updateParameterDeclaration` or the factory supplied by your transformation context instead. */ 11463 const updateParameter: { 11464 (node: ParameterDeclaration, modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; 11465 (node: ParameterDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; 11466 }; 11467 /** @deprecated Use `factory.createDecorator` or the factory supplied by your transformation context instead. */ 11468 const createDecorator: (expression: Expression) => Decorator; 11469 /** @deprecated Use `factory.updateDecorator` or the factory supplied by your transformation context instead. */ 11470 const updateDecorator: (node: Decorator, expression: Expression) => Decorator; 11471 /** @deprecated Use `factory.createPropertyDeclaration` or the factory supplied by your transformation context instead. */ 11472 const createProperty: { 11473 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 11474 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 11475 }; 11476 /** @deprecated Use `factory.updatePropertyDeclaration` or the factory supplied by your transformation context instead. */ 11477 const updateProperty: { 11478 (node: PropertyDeclaration, modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 11479 (node: PropertyDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 11480 }; 11481 /** @deprecated Use `factory.createMethodDeclaration` or the factory supplied by your transformation context instead. */ 11482 const createMethod: { 11483 (modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; 11484 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; 11485 }; 11486 /** @deprecated Use `factory.updateMethodDeclaration` or the factory supplied by your transformation context instead. */ 11487 const updateMethod: { 11488 (node: MethodDeclaration, modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; 11489 (node: MethodDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; 11490 }; 11491 /** @deprecated Use `factory.createConstructorDeclaration` or the factory supplied by your transformation context instead. */ 11492 const createConstructor: { 11493 (modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 11494 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 11495 }; 11496 /** @deprecated Use `factory.updateConstructorDeclaration` or the factory supplied by your transformation context instead. */ 11497 const updateConstructor: { 11498 (node: ConstructorDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 11499 (node: ConstructorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 11500 }; 11501 /** @deprecated Use `factory.createGetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 11502 const createGetAccessor: { 11503 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 11504 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 11505 }; 11506 /** @deprecated Use `factory.updateGetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 11507 const updateGetAccessor: { 11508 (node: GetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 11509 (node: GetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 11510 }; 11511 /** @deprecated Use `factory.createSetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 11512 const createSetAccessor: { 11513 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 11514 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 11515 }; 11516 /** @deprecated Use `factory.updateSetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 11517 const updateSetAccessor: { 11518 (node: SetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 11519 (node: SetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 11520 }; 11521 /** @deprecated Use `factory.createCallSignature` or the factory supplied by your transformation context instead. */ 11522 const createCallSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined) => CallSignatureDeclaration; 11523 /** @deprecated Use `factory.updateCallSignature` or the factory supplied by your transformation context instead. */ 11524 const updateCallSignature: (node: CallSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined) => CallSignatureDeclaration; 11525 /** @deprecated Use `factory.createConstructSignature` or the factory supplied by your transformation context instead. */ 11526 const createConstructSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined) => ConstructSignatureDeclaration; 11527 /** @deprecated Use `factory.updateConstructSignature` or the factory supplied by your transformation context instead. */ 11528 const updateConstructSignature: (node: ConstructSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined) => ConstructSignatureDeclaration; 11529 /** @deprecated Use `factory.updateIndexSignature` or the factory supplied by your transformation context instead. */ 11530 const updateIndexSignature: { 11531 (node: IndexSignatureDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 11532 (node: IndexSignatureDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 11533 }; 11534 /** @deprecated Use `factory.createKeywordTypeNode` or the factory supplied by your transformation context instead. */ 11535 const createKeywordTypeNode: <TKind extends KeywordTypeSyntaxKind>(kind: TKind) => KeywordTypeNode<TKind>; 11536 /** @deprecated Use `factory.createTypePredicateNode` or the factory supplied by your transformation context instead. */ 11537 const createTypePredicateNodeWithModifier: (assertsModifier: AssertsKeyword | undefined, parameterName: string | Identifier | ThisTypeNode, type: TypeNode | undefined) => TypePredicateNode; 11538 /** @deprecated Use `factory.updateTypePredicateNode` or the factory supplied by your transformation context instead. */ 11539 const updateTypePredicateNodeWithModifier: (node: TypePredicateNode, assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode, type: TypeNode | undefined) => TypePredicateNode; 11540 /** @deprecated Use `factory.createTypeReferenceNode` or the factory supplied by your transformation context instead. */ 11541 const createTypeReferenceNode: (typeName: string | EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeReferenceNode; 11542 /** @deprecated Use `factory.updateTypeReferenceNode` or the factory supplied by your transformation context instead. */ 11543 const updateTypeReferenceNode: (node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray<TypeNode> | undefined) => TypeReferenceNode; 11544 /** @deprecated Use `factory.createFunctionTypeNode` or the factory supplied by your transformation context instead. */ 11545 const createFunctionTypeNode: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => FunctionTypeNode; 11546 /** @deprecated Use `factory.updateFunctionTypeNode` or the factory supplied by your transformation context instead. */ 11547 const updateFunctionTypeNode: (node: FunctionTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode) => FunctionTypeNode; 11548 /** @deprecated Use `factory.createConstructorTypeNode` or the factory supplied by your transformation context instead. */ 11549 const createConstructorTypeNode: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => ConstructorTypeNode; 11550 /** @deprecated Use `factory.updateConstructorTypeNode` or the factory supplied by your transformation context instead. */ 11551 const updateConstructorTypeNode: (node: ConstructorTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode) => ConstructorTypeNode; 11552 /** @deprecated Use `factory.createTypeQueryNode` or the factory supplied by your transformation context instead. */ 11553 const createTypeQueryNode: (exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; 11554 /** @deprecated Use `factory.updateTypeQueryNode` or the factory supplied by your transformation context instead. */ 11555 const updateTypeQueryNode: (node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; 11556 /** @deprecated Use `factory.createTypeLiteralNode` or the factory supplied by your transformation context instead. */ 11557 const createTypeLiteralNode: (members: readonly TypeElement[] | undefined) => TypeLiteralNode; 11558 /** @deprecated Use `factory.updateTypeLiteralNode` or the factory supplied by your transformation context instead. */ 11559 const updateTypeLiteralNode: (node: TypeLiteralNode, members: NodeArray<TypeElement>) => TypeLiteralNode; 11560 /** @deprecated Use `factory.createArrayTypeNode` or the factory supplied by your transformation context instead. */ 11561 const createArrayTypeNode: (elementType: TypeNode) => ArrayTypeNode; 11562 /** @deprecated Use `factory.updateArrayTypeNode` or the factory supplied by your transformation context instead. */ 11563 const updateArrayTypeNode: (node: ArrayTypeNode, elementType: TypeNode) => ArrayTypeNode; 11564 /** @deprecated Use `factory.createTupleTypeNode` or the factory supplied by your transformation context instead. */ 11565 const createTupleTypeNode: (elements: readonly (TypeNode | NamedTupleMember)[]) => TupleTypeNode; 11566 /** @deprecated Use `factory.updateTupleTypeNode` or the factory supplied by your transformation context instead. */ 11567 const updateTupleTypeNode: (node: TupleTypeNode, elements: readonly (TypeNode | NamedTupleMember)[]) => TupleTypeNode; 11568 /** @deprecated Use `factory.createOptionalTypeNode` or the factory supplied by your transformation context instead. */ 11569 const createOptionalTypeNode: (type: TypeNode) => OptionalTypeNode; 11570 /** @deprecated Use `factory.updateOptionalTypeNode` or the factory supplied by your transformation context instead. */ 11571 const updateOptionalTypeNode: (node: OptionalTypeNode, type: TypeNode) => OptionalTypeNode; 11572 /** @deprecated Use `factory.createRestTypeNode` or the factory supplied by your transformation context instead. */ 11573 const createRestTypeNode: (type: TypeNode) => RestTypeNode; 11574 /** @deprecated Use `factory.updateRestTypeNode` or the factory supplied by your transformation context instead. */ 11575 const updateRestTypeNode: (node: RestTypeNode, type: TypeNode) => RestTypeNode; 11576 /** @deprecated Use `factory.createUnionTypeNode` or the factory supplied by your transformation context instead. */ 11577 const createUnionTypeNode: (types: readonly TypeNode[]) => UnionTypeNode; 11578 /** @deprecated Use `factory.updateUnionTypeNode` or the factory supplied by your transformation context instead. */ 11579 const updateUnionTypeNode: (node: UnionTypeNode, types: NodeArray<TypeNode>) => UnionTypeNode; 11580 /** @deprecated Use `factory.createIntersectionTypeNode` or the factory supplied by your transformation context instead. */ 11581 const createIntersectionTypeNode: (types: readonly TypeNode[]) => IntersectionTypeNode; 11582 /** @deprecated Use `factory.updateIntersectionTypeNode` or the factory supplied by your transformation context instead. */ 11583 const updateIntersectionTypeNode: (node: IntersectionTypeNode, types: NodeArray<TypeNode>) => IntersectionTypeNode; 11584 /** @deprecated Use `factory.createConditionalTypeNode` or the factory supplied by your transformation context instead. */ 11585 const createConditionalTypeNode: (checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode) => ConditionalTypeNode; 11586 /** @deprecated Use `factory.updateConditionalTypeNode` or the factory supplied by your transformation context instead. */ 11587 const updateConditionalTypeNode: (node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode) => ConditionalTypeNode; 11588 /** @deprecated Use `factory.createInferTypeNode` or the factory supplied by your transformation context instead. */ 11589 const createInferTypeNode: (typeParameter: TypeParameterDeclaration) => InferTypeNode; 11590 /** @deprecated Use `factory.updateInferTypeNode` or the factory supplied by your transformation context instead. */ 11591 const updateInferTypeNode: (node: InferTypeNode, typeParameter: TypeParameterDeclaration) => InferTypeNode; 11592 /** @deprecated Use `factory.createImportTypeNode` or the factory supplied by your transformation context instead. */ 11593 const createImportTypeNode: { 11594 (argument: TypeNode, assertions?: ImportTypeAssertionContainer | undefined, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11595 (argument: TypeNode, assertions?: ImportTypeAssertionContainer | undefined, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11596 (argument: TypeNode, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11597 }; 11598 /** @deprecated Use `factory.updateImportTypeNode` or the factory supplied by your transformation context instead. */ 11599 const updateImportTypeNode: { 11600 (node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11601 (node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11602 }; 11603 /** @deprecated Use `factory.createParenthesizedType` or the factory supplied by your transformation context instead. */ 11604 const createParenthesizedType: (type: TypeNode) => ParenthesizedTypeNode; 11605 /** @deprecated Use `factory.updateParenthesizedType` or the factory supplied by your transformation context instead. */ 11606 const updateParenthesizedType: (node: ParenthesizedTypeNode, type: TypeNode) => ParenthesizedTypeNode; 11607 /** @deprecated Use `factory.createThisTypeNode` or the factory supplied by your transformation context instead. */ 11608 const createThisTypeNode: () => ThisTypeNode; 11609 /** @deprecated Use `factory.updateTypeOperatorNode` or the factory supplied by your transformation context instead. */ 11610 const updateTypeOperatorNode: (node: TypeOperatorNode, type: TypeNode) => TypeOperatorNode; 11611 /** @deprecated Use `factory.createIndexedAccessTypeNode` or the factory supplied by your transformation context instead. */ 11612 const createIndexedAccessTypeNode: (objectType: TypeNode, indexType: TypeNode) => IndexedAccessTypeNode; 11613 /** @deprecated Use `factory.updateIndexedAccessTypeNode` or the factory supplied by your transformation context instead. */ 11614 const updateIndexedAccessTypeNode: (node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode) => IndexedAccessTypeNode; 11615 /** @deprecated Use `factory.createMappedTypeNode` or the factory supplied by your transformation context instead. */ 11616 const createMappedTypeNode: (readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined) => MappedTypeNode; 11617 /** @deprecated Use `factory.updateMappedTypeNode` or the factory supplied by your transformation context instead. */ 11618 const updateMappedTypeNode: (node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined) => MappedTypeNode; 11619 /** @deprecated Use `factory.createLiteralTypeNode` or the factory supplied by your transformation context instead. */ 11620 const createLiteralTypeNode: (literal: LiteralExpression | BooleanLiteral | PrefixUnaryExpression | NullLiteral) => LiteralTypeNode; 11621 /** @deprecated Use `factory.updateLiteralTypeNode` or the factory supplied by your transformation context instead. */ 11622 const updateLiteralTypeNode: (node: LiteralTypeNode, literal: LiteralExpression | BooleanLiteral | PrefixUnaryExpression | NullLiteral) => LiteralTypeNode; 11623 /** @deprecated Use `factory.createObjectBindingPattern` or the factory supplied by your transformation context instead. */ 11624 const createObjectBindingPattern: (elements: readonly BindingElement[]) => ObjectBindingPattern; 11625 /** @deprecated Use `factory.updateObjectBindingPattern` or the factory supplied by your transformation context instead. */ 11626 const updateObjectBindingPattern: (node: ObjectBindingPattern, elements: readonly BindingElement[]) => ObjectBindingPattern; 11627 /** @deprecated Use `factory.createArrayBindingPattern` or the factory supplied by your transformation context instead. */ 11628 const createArrayBindingPattern: (elements: readonly ArrayBindingElement[]) => ArrayBindingPattern; 11629 /** @deprecated Use `factory.updateArrayBindingPattern` or the factory supplied by your transformation context instead. */ 11630 const updateArrayBindingPattern: (node: ArrayBindingPattern, elements: readonly ArrayBindingElement[]) => ArrayBindingPattern; 11631 /** @deprecated Use `factory.createBindingElement` or the factory supplied by your transformation context instead. */ 11632 const createBindingElement: (dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression | undefined) => BindingElement; 11633 /** @deprecated Use `factory.updateBindingElement` or the factory supplied by your transformation context instead. */ 11634 const updateBindingElement: (node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined) => BindingElement; 11635 /** @deprecated Use `factory.createArrayLiteralExpression` or the factory supplied by your transformation context instead. */ 11636 const createArrayLiteral: (elements?: readonly Expression[] | undefined, multiLine?: boolean | undefined) => ArrayLiteralExpression; 11637 /** @deprecated Use `factory.updateArrayLiteralExpression` or the factory supplied by your transformation context instead. */ 11638 const updateArrayLiteral: (node: ArrayLiteralExpression, elements: readonly Expression[]) => ArrayLiteralExpression; 11639 /** @deprecated Use `factory.createObjectLiteralExpression` or the factory supplied by your transformation context instead. */ 11640 const createObjectLiteral: (properties?: readonly ObjectLiteralElementLike[] | undefined, multiLine?: boolean | undefined) => ObjectLiteralExpression; 11641 /** @deprecated Use `factory.updateObjectLiteralExpression` or the factory supplied by your transformation context instead. */ 11642 const updateObjectLiteral: (node: ObjectLiteralExpression, properties: readonly ObjectLiteralElementLike[]) => ObjectLiteralExpression; 11643 /** @deprecated Use `factory.createPropertyAccessExpression` or the factory supplied by your transformation context instead. */ 11644 const createPropertyAccess: (expression: Expression, name: string | MemberName) => PropertyAccessExpression; 11645 /** @deprecated Use `factory.updatePropertyAccessExpression` or the factory supplied by your transformation context instead. */ 11646 const updatePropertyAccess: (node: PropertyAccessExpression, expression: Expression, name: MemberName) => PropertyAccessExpression; 11647 /** @deprecated Use `factory.createPropertyAccessChain` or the factory supplied by your transformation context instead. */ 11648 const createPropertyAccessChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, name: string | MemberName) => PropertyAccessChain; 11649 /** @deprecated Use `factory.updatePropertyAccessChain` or the factory supplied by your transformation context instead. */ 11650 const updatePropertyAccessChain: (node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, name: MemberName) => PropertyAccessChain; 11651 /** @deprecated Use `factory.createElementAccessExpression` or the factory supplied by your transformation context instead. */ 11652 const createElementAccess: (expression: Expression, index: number | Expression) => ElementAccessExpression; 11653 /** @deprecated Use `factory.updateElementAccessExpression` or the factory supplied by your transformation context instead. */ 11654 const updateElementAccess: (node: ElementAccessExpression, expression: Expression, argumentExpression: Expression) => ElementAccessExpression; 11655 /** @deprecated Use `factory.createElementAccessChain` or the factory supplied by your transformation context instead. */ 11656 const createElementAccessChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, index: number | Expression) => ElementAccessChain; 11657 /** @deprecated Use `factory.updateElementAccessChain` or the factory supplied by your transformation context instead. */ 11658 const updateElementAccessChain: (node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, argumentExpression: Expression) => ElementAccessChain; 11659 /** @deprecated Use `factory.createCallExpression` or the factory supplied by your transformation context instead. */ 11660 const createCall: (expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => CallExpression; 11661 /** @deprecated Use `factory.updateCallExpression` or the factory supplied by your transformation context instead. */ 11662 const updateCall: (node: CallExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]) => CallExpression; 11663 /** @deprecated Use `factory.createCallChain` or the factory supplied by your transformation context instead. */ 11664 const createCallChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => CallChain; 11665 /** @deprecated Use `factory.updateCallChain` or the factory supplied by your transformation context instead. */ 11666 const updateCallChain: (node: CallChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]) => CallChain; 11667 /** @deprecated Use `factory.createNewExpression` or the factory supplied by your transformation context instead. */ 11668 const createNew: (expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => NewExpression; 11669 /** @deprecated Use `factory.updateNewExpression` or the factory supplied by your transformation context instead. */ 11670 const updateNew: (node: NewExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => NewExpression; 11671 /** @deprecated Use `factory.createTypeAssertion` or the factory supplied by your transformation context instead. */ 11672 const createTypeAssertion: (type: TypeNode, expression: Expression) => TypeAssertion; 11673 /** @deprecated Use `factory.updateTypeAssertion` or the factory supplied by your transformation context instead. */ 11674 const updateTypeAssertion: (node: TypeAssertion, type: TypeNode, expression: Expression) => TypeAssertion; 11675 /** @deprecated Use `factory.createParenthesizedExpression` or the factory supplied by your transformation context instead. */ 11676 const createParen: (expression: Expression) => ParenthesizedExpression; 11677 /** @deprecated Use `factory.updateParenthesizedExpression` or the factory supplied by your transformation context instead. */ 11678 const updateParen: (node: ParenthesizedExpression, expression: Expression) => ParenthesizedExpression; 11679 /** @deprecated Use `factory.createFunctionExpression` or the factory supplied by your transformation context instead. */ 11680 const createFunctionExpression: (modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[] | undefined, type: TypeNode | undefined, body: Block) => FunctionExpression; 11681 /** @deprecated Use `factory.updateFunctionExpression` or the factory supplied by your transformation context instead. */ 11682 const updateFunctionExpression: (node: FunctionExpression, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block) => FunctionExpression; 11683 /** @deprecated Use `factory.createDeleteExpression` or the factory supplied by your transformation context instead. */ 11684 const createDelete: (expression: Expression) => DeleteExpression; 11685 /** @deprecated Use `factory.updateDeleteExpression` or the factory supplied by your transformation context instead. */ 11686 const updateDelete: (node: DeleteExpression, expression: Expression) => DeleteExpression; 11687 /** @deprecated Use `factory.createTypeOfExpression` or the factory supplied by your transformation context instead. */ 11688 const createTypeOf: (expression: Expression) => TypeOfExpression; 11689 /** @deprecated Use `factory.updateTypeOfExpression` or the factory supplied by your transformation context instead. */ 11690 const updateTypeOf: (node: TypeOfExpression, expression: Expression) => TypeOfExpression; 11691 /** @deprecated Use `factory.createVoidExpression` or the factory supplied by your transformation context instead. */ 11692 const createVoid: (expression: Expression) => VoidExpression; 11693 /** @deprecated Use `factory.updateVoidExpression` or the factory supplied by your transformation context instead. */ 11694 const updateVoid: (node: VoidExpression, expression: Expression) => VoidExpression; 11695 /** @deprecated Use `factory.createAwaitExpression` or the factory supplied by your transformation context instead. */ 11696 const createAwait: (expression: Expression) => AwaitExpression; 11697 /** @deprecated Use `factory.updateAwaitExpression` or the factory supplied by your transformation context instead. */ 11698 const updateAwait: (node: AwaitExpression, expression: Expression) => AwaitExpression; 11699 /** @deprecated Use `factory.createPrefixExpression` or the factory supplied by your transformation context instead. */ 11700 const createPrefix: (operator: PrefixUnaryOperator, operand: Expression) => PrefixUnaryExpression; 11701 /** @deprecated Use `factory.updatePrefixExpression` or the factory supplied by your transformation context instead. */ 11702 const updatePrefix: (node: PrefixUnaryExpression, operand: Expression) => PrefixUnaryExpression; 11703 /** @deprecated Use `factory.createPostfixUnaryExpression` or the factory supplied by your transformation context instead. */ 11704 const createPostfix: (operand: Expression, operator: PostfixUnaryOperator) => PostfixUnaryExpression; 11705 /** @deprecated Use `factory.updatePostfixUnaryExpression` or the factory supplied by your transformation context instead. */ 11706 const updatePostfix: (node: PostfixUnaryExpression, operand: Expression) => PostfixUnaryExpression; 11707 /** @deprecated Use `factory.createBinaryExpression` or the factory supplied by your transformation context instead. */ 11708 const createBinary: (left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression) => BinaryExpression; 11709 /** @deprecated Use `factory.updateConditionalExpression` or the factory supplied by your transformation context instead. */ 11710 const updateConditional: (node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression) => ConditionalExpression; 11711 /** @deprecated Use `factory.createTemplateExpression` or the factory supplied by your transformation context instead. */ 11712 const createTemplateExpression: (head: TemplateHead, templateSpans: readonly TemplateSpan[]) => TemplateExpression; 11713 /** @deprecated Use `factory.updateTemplateExpression` or the factory supplied by your transformation context instead. */ 11714 const updateTemplateExpression: (node: TemplateExpression, head: TemplateHead, templateSpans: readonly TemplateSpan[]) => TemplateExpression; 11715 /** @deprecated Use `factory.createTemplateHead` or the factory supplied by your transformation context instead. */ 11716 const createTemplateHead: { 11717 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateHead; 11718 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateHead; 11719 }; 11720 /** @deprecated Use `factory.createTemplateMiddle` or the factory supplied by your transformation context instead. */ 11721 const createTemplateMiddle: { 11722 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateMiddle; 11723 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateMiddle; 11724 }; 11725 /** @deprecated Use `factory.createTemplateTail` or the factory supplied by your transformation context instead. */ 11726 const createTemplateTail: { 11727 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateTail; 11728 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateTail; 11729 }; 11730 /** @deprecated Use `factory.createNoSubstitutionTemplateLiteral` or the factory supplied by your transformation context instead. */ 11731 const createNoSubstitutionTemplateLiteral: { 11732 (text: string, rawText?: string | undefined): NoSubstitutionTemplateLiteral; 11733 (text: string | undefined, rawText: string): NoSubstitutionTemplateLiteral; 11734 }; 11735 /** @deprecated Use `factory.updateYieldExpression` or the factory supplied by your transformation context instead. */ 11736 const updateYield: (node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression | undefined) => YieldExpression; 11737 /** @deprecated Use `factory.createSpreadExpression` or the factory supplied by your transformation context instead. */ 11738 const createSpread: (expression: Expression) => SpreadElement; 11739 /** @deprecated Use `factory.updateSpreadExpression` or the factory supplied by your transformation context instead. */ 11740 const updateSpread: (node: SpreadElement, expression: Expression) => SpreadElement; 11741 /** @deprecated Use `factory.createOmittedExpression` or the factory supplied by your transformation context instead. */ 11742 const createOmittedExpression: () => OmittedExpression; 11743 /** @deprecated Use `factory.createAsExpression` or the factory supplied by your transformation context instead. */ 11744 const createAsExpression: (expression: Expression, type: TypeNode) => AsExpression; 11745 /** @deprecated Use `factory.updateAsExpression` or the factory supplied by your transformation context instead. */ 11746 const updateAsExpression: (node: AsExpression, expression: Expression, type: TypeNode) => AsExpression; 11747 /** @deprecated Use `factory.createNonNullExpression` or the factory supplied by your transformation context instead. */ 11748 const createNonNullExpression: (expression: Expression) => NonNullExpression; 11749 /** @deprecated Use `factory.updateNonNullExpression` or the factory supplied by your transformation context instead. */ 11750 const updateNonNullExpression: (node: NonNullExpression, expression: Expression) => NonNullExpression; 11751 /** @deprecated Use `factory.createNonNullChain` or the factory supplied by your transformation context instead. */ 11752 const createNonNullChain: (expression: Expression) => NonNullChain; 11753 /** @deprecated Use `factory.updateNonNullChain` or the factory supplied by your transformation context instead. */ 11754 const updateNonNullChain: (node: NonNullChain, expression: Expression) => NonNullChain; 11755 /** @deprecated Use `factory.createMetaProperty` or the factory supplied by your transformation context instead. */ 11756 const createMetaProperty: (keywordToken: SyntaxKind.ImportKeyword | SyntaxKind.NewKeyword, name: Identifier) => MetaProperty; 11757 /** @deprecated Use `factory.updateMetaProperty` or the factory supplied by your transformation context instead. */ 11758 const updateMetaProperty: (node: MetaProperty, name: Identifier) => MetaProperty; 11759 /** @deprecated Use `factory.createTemplateSpan` or the factory supplied by your transformation context instead. */ 11760 const createTemplateSpan: (expression: Expression, literal: TemplateMiddle | TemplateTail) => TemplateSpan; 11761 /** @deprecated Use `factory.updateTemplateSpan` or the factory supplied by your transformation context instead. */ 11762 const updateTemplateSpan: (node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail) => TemplateSpan; 11763 /** @deprecated Use `factory.createSemicolonClassElement` or the factory supplied by your transformation context instead. */ 11764 const createSemicolonClassElement: () => SemicolonClassElement; 11765 /** @deprecated Use `factory.createBlock` or the factory supplied by your transformation context instead. */ 11766 const createBlock: (statements: readonly Statement[], multiLine?: boolean | undefined) => Block; 11767 /** @deprecated Use `factory.updateBlock` or the factory supplied by your transformation context instead. */ 11768 const updateBlock: (node: Block, statements: readonly Statement[]) => Block; 11769 /** @deprecated Use `factory.createVariableStatement` or the factory supplied by your transformation context instead. */ 11770 const createVariableStatement: (modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList | readonly VariableDeclaration[]) => VariableStatement; 11771 /** @deprecated Use `factory.updateVariableStatement` or the factory supplied by your transformation context instead. */ 11772 const updateVariableStatement: (node: VariableStatement, modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList) => VariableStatement; 11773 /** @deprecated Use `factory.createEmptyStatement` or the factory supplied by your transformation context instead. */ 11774 const createEmptyStatement: () => EmptyStatement; 11775 /** @deprecated Use `factory.createExpressionStatement` or the factory supplied by your transformation context instead. */ 11776 const createExpressionStatement: (expression: Expression) => ExpressionStatement; 11777 /** @deprecated Use `factory.updateExpressionStatement` or the factory supplied by your transformation context instead. */ 11778 const updateExpressionStatement: (node: ExpressionStatement, expression: Expression) => ExpressionStatement; 11779 /** @deprecated Use `factory.createExpressionStatement` or the factory supplied by your transformation context instead. */ 11780 const createStatement: (expression: Expression) => ExpressionStatement; 11781 /** @deprecated Use `factory.updateExpressionStatement` or the factory supplied by your transformation context instead. */ 11782 const updateStatement: (node: ExpressionStatement, expression: Expression) => ExpressionStatement; 11783 /** @deprecated Use `factory.createIfStatement` or the factory supplied by your transformation context instead. */ 11784 const createIf: (expression: Expression, thenStatement: Statement, elseStatement?: Statement | undefined) => IfStatement; 11785 /** @deprecated Use `factory.updateIfStatement` or the factory supplied by your transformation context instead. */ 11786 const updateIf: (node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement | undefined) => IfStatement; 11787 /** @deprecated Use `factory.createDoStatement` or the factory supplied by your transformation context instead. */ 11788 const createDo: (statement: Statement, expression: Expression) => DoStatement; 11789 /** @deprecated Use `factory.updateDoStatement` or the factory supplied by your transformation context instead. */ 11790 const updateDo: (node: DoStatement, statement: Statement, expression: Expression) => DoStatement; 11791 /** @deprecated Use `factory.createWhileStatement` or the factory supplied by your transformation context instead. */ 11792 const createWhile: (expression: Expression, statement: Statement) => WhileStatement; 11793 /** @deprecated Use `factory.updateWhileStatement` or the factory supplied by your transformation context instead. */ 11794 const updateWhile: (node: WhileStatement, expression: Expression, statement: Statement) => WhileStatement; 11795 /** @deprecated Use `factory.createForStatement` or the factory supplied by your transformation context instead. */ 11796 const createFor: (initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement) => ForStatement; 11797 /** @deprecated Use `factory.updateForStatement` or the factory supplied by your transformation context instead. */ 11798 const updateFor: (node: ForStatement, initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement) => ForStatement; 11799 /** @deprecated Use `factory.createForInStatement` or the factory supplied by your transformation context instead. */ 11800 const createForIn: (initializer: ForInitializer, expression: Expression, statement: Statement) => ForInStatement; 11801 /** @deprecated Use `factory.updateForInStatement` or the factory supplied by your transformation context instead. */ 11802 const updateForIn: (node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement) => ForInStatement; 11803 /** @deprecated Use `factory.createForOfStatement` or the factory supplied by your transformation context instead. */ 11804 const createForOf: (awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement) => ForOfStatement; 11805 /** @deprecated Use `factory.updateForOfStatement` or the factory supplied by your transformation context instead. */ 11806 const updateForOf: (node: ForOfStatement, awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement) => ForOfStatement; 11807 /** @deprecated Use `factory.createContinueStatement` or the factory supplied by your transformation context instead. */ 11808 const createContinue: (label?: string | Identifier | undefined) => ContinueStatement; 11809 /** @deprecated Use `factory.updateContinueStatement` or the factory supplied by your transformation context instead. */ 11810 const updateContinue: (node: ContinueStatement, label: Identifier | undefined) => ContinueStatement; 11811 /** @deprecated Use `factory.createBreakStatement` or the factory supplied by your transformation context instead. */ 11812 const createBreak: (label?: string | Identifier | undefined) => BreakStatement; 11813 /** @deprecated Use `factory.updateBreakStatement` or the factory supplied by your transformation context instead. */ 11814 const updateBreak: (node: BreakStatement, label: Identifier | undefined) => BreakStatement; 11815 /** @deprecated Use `factory.createReturnStatement` or the factory supplied by your transformation context instead. */ 11816 const createReturn: (expression?: Expression | undefined) => ReturnStatement; 11817 /** @deprecated Use `factory.updateReturnStatement` or the factory supplied by your transformation context instead. */ 11818 const updateReturn: (node: ReturnStatement, expression: Expression | undefined) => ReturnStatement; 11819 /** @deprecated Use `factory.createWithStatement` or the factory supplied by your transformation context instead. */ 11820 const createWith: (expression: Expression, statement: Statement) => WithStatement; 11821 /** @deprecated Use `factory.updateWithStatement` or the factory supplied by your transformation context instead. */ 11822 const updateWith: (node: WithStatement, expression: Expression, statement: Statement) => WithStatement; 11823 /** @deprecated Use `factory.createSwitchStatement` or the factory supplied by your transformation context instead. */ 11824 const createSwitch: (expression: Expression, caseBlock: CaseBlock) => SwitchStatement; 11825 /** @deprecated Use `factory.updateSwitchStatement` or the factory supplied by your transformation context instead. */ 11826 const updateSwitch: (node: SwitchStatement, expression: Expression, caseBlock: CaseBlock) => SwitchStatement; 11827 /** @deprecated Use `factory.createLabelStatement` or the factory supplied by your transformation context instead. */ 11828 const createLabel: (label: string | Identifier, statement: Statement) => LabeledStatement; 11829 /** @deprecated Use `factory.updateLabelStatement` or the factory supplied by your transformation context instead. */ 11830 const updateLabel: (node: LabeledStatement, label: Identifier, statement: Statement) => LabeledStatement; 11831 /** @deprecated Use `factory.createThrowStatement` or the factory supplied by your transformation context instead. */ 11832 const createThrow: (expression: Expression) => ThrowStatement; 11833 /** @deprecated Use `factory.updateThrowStatement` or the factory supplied by your transformation context instead. */ 11834 const updateThrow: (node: ThrowStatement, expression: Expression) => ThrowStatement; 11835 /** @deprecated Use `factory.createTryStatement` or the factory supplied by your transformation context instead. */ 11836 const createTry: (tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined) => TryStatement; 11837 /** @deprecated Use `factory.updateTryStatement` or the factory supplied by your transformation context instead. */ 11838 const updateTry: (node: TryStatement, tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined) => TryStatement; 11839 /** @deprecated Use `factory.createDebuggerStatement` or the factory supplied by your transformation context instead. */ 11840 const createDebuggerStatement: () => DebuggerStatement; 11841 /** @deprecated Use `factory.createVariableDeclarationList` or the factory supplied by your transformation context instead. */ 11842 const createVariableDeclarationList: (declarations: readonly VariableDeclaration[], flags?: NodeFlags | undefined) => VariableDeclarationList; 11843 /** @deprecated Use `factory.updateVariableDeclarationList` or the factory supplied by your transformation context instead. */ 11844 const updateVariableDeclarationList: (node: VariableDeclarationList, declarations: readonly VariableDeclaration[]) => VariableDeclarationList; 11845 /** @deprecated Use `factory.createFunctionDeclaration` or the factory supplied by your transformation context instead. */ 11846 const createFunctionDeclaration: { 11847 (modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; 11848 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; 11849 }; 11850 /** @deprecated Use `factory.updateFunctionDeclaration` or the factory supplied by your transformation context instead. */ 11851 const updateFunctionDeclaration: { 11852 (node: FunctionDeclaration, modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; 11853 (node: FunctionDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; 11854 }; 11855 /** @deprecated Use `factory.createClassDeclaration` or the factory supplied by your transformation context instead. */ 11856 const createClassDeclaration: { 11857 (modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 11858 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 11859 }; 11860 /** @deprecated Use `factory.updateClassDeclaration` or the factory supplied by your transformation context instead. */ 11861 const updateClassDeclaration: { 11862 (node: ClassDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 11863 (node: ClassDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 11864 }; 11865 /** @deprecated Use `factory.createInterfaceDeclaration` or the factory supplied by your transformation context instead. */ 11866 const createInterfaceDeclaration: { 11867 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 11868 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 11869 }; 11870 /** @deprecated Use `factory.updateInterfaceDeclaration` or the factory supplied by your transformation context instead. */ 11871 const updateInterfaceDeclaration: { 11872 (node: InterfaceDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 11873 (node: InterfaceDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 11874 }; 11875 /** @deprecated Use `factory.createTypeAliasDeclaration` or the factory supplied by your transformation context instead. */ 11876 const createTypeAliasDeclaration: { 11877 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 11878 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 11879 }; 11880 /** @deprecated Use `factory.updateTypeAliasDeclaration` or the factory supplied by your transformation context instead. */ 11881 const updateTypeAliasDeclaration: { 11882 (node: TypeAliasDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 11883 (node: TypeAliasDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 11884 }; 11885 /** @deprecated Use `factory.createEnumDeclaration` or the factory supplied by your transformation context instead. */ 11886 const createEnumDeclaration: { 11887 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 11888 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 11889 }; 11890 /** @deprecated Use `factory.updateEnumDeclaration` or the factory supplied by your transformation context instead. */ 11891 const updateEnumDeclaration: { 11892 (node: EnumDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 11893 (node: EnumDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 11894 }; 11895 /** @deprecated Use `factory.createModuleDeclaration` or the factory supplied by your transformation context instead. */ 11896 const createModuleDeclaration: { 11897 (modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags | undefined): ModuleDeclaration; 11898 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags | undefined): ModuleDeclaration; 11899 }; 11900 /** @deprecated Use `factory.updateModuleDeclaration` or the factory supplied by your transformation context instead. */ 11901 const updateModuleDeclaration: { 11902 (node: ModuleDeclaration, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 11903 (node: ModuleDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 11904 }; 11905 /** @deprecated Use `factory.createModuleBlock` or the factory supplied by your transformation context instead. */ 11906 const createModuleBlock: (statements: readonly Statement[]) => ModuleBlock; 11907 /** @deprecated Use `factory.updateModuleBlock` or the factory supplied by your transformation context instead. */ 11908 const updateModuleBlock: (node: ModuleBlock, statements: readonly Statement[]) => ModuleBlock; 11909 /** @deprecated Use `factory.createCaseBlock` or the factory supplied by your transformation context instead. */ 11910 const createCaseBlock: (clauses: readonly CaseOrDefaultClause[]) => CaseBlock; 11911 /** @deprecated Use `factory.updateCaseBlock` or the factory supplied by your transformation context instead. */ 11912 const updateCaseBlock: (node: CaseBlock, clauses: readonly CaseOrDefaultClause[]) => CaseBlock; 11913 /** @deprecated Use `factory.createNamespaceExportDeclaration` or the factory supplied by your transformation context instead. */ 11914 const createNamespaceExportDeclaration: (name: string | Identifier) => NamespaceExportDeclaration; 11915 /** @deprecated Use `factory.updateNamespaceExportDeclaration` or the factory supplied by your transformation context instead. */ 11916 const updateNamespaceExportDeclaration: (node: NamespaceExportDeclaration, name: Identifier) => NamespaceExportDeclaration; 11917 /** @deprecated Use `factory.createImportEqualsDeclaration` or the factory supplied by your transformation context instead. */ 11918 const createImportEqualsDeclaration: { 11919 (modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 11920 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 11921 }; 11922 /** @deprecated Use `factory.updateImportEqualsDeclaration` or the factory supplied by your transformation context instead. */ 11923 const updateImportEqualsDeclaration: { 11924 (node: ImportEqualsDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 11925 (node: ImportEqualsDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 11926 }; 11927 /** @deprecated Use `factory.createImportDeclaration` or the factory supplied by your transformation context instead. */ 11928 const createImportDeclaration: { 11929 (modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause | undefined): ImportDeclaration; 11930 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause | undefined): ImportDeclaration; 11931 }; 11932 /** @deprecated Use `factory.updateImportDeclaration` or the factory supplied by your transformation context instead. */ 11933 const updateImportDeclaration: { 11934 (node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 11935 (node: ImportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 11936 }; 11937 /** @deprecated Use `factory.createNamespaceImport` or the factory supplied by your transformation context instead. */ 11938 const createNamespaceImport: (name: Identifier) => NamespaceImport; 11939 /** @deprecated Use `factory.updateNamespaceImport` or the factory supplied by your transformation context instead. */ 11940 const updateNamespaceImport: (node: NamespaceImport, name: Identifier) => NamespaceImport; 11941 /** @deprecated Use `factory.createNamedImports` or the factory supplied by your transformation context instead. */ 11942 const createNamedImports: (elements: readonly ImportSpecifier[]) => NamedImports; 11943 /** @deprecated Use `factory.updateNamedImports` or the factory supplied by your transformation context instead. */ 11944 const updateNamedImports: (node: NamedImports, elements: readonly ImportSpecifier[]) => NamedImports; 11945 /** @deprecated Use `factory.createImportSpecifier` or the factory supplied by your transformation context instead. */ 11946 const createImportSpecifier: (isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ImportSpecifier; 11947 /** @deprecated Use `factory.updateImportSpecifier` or the factory supplied by your transformation context instead. */ 11948 const updateImportSpecifier: (node: ImportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ImportSpecifier; 11949 /** @deprecated Use `factory.createExportAssignment` or the factory supplied by your transformation context instead. */ 11950 const createExportAssignment: { 11951 (modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 11952 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 11953 }; 11954 /** @deprecated Use `factory.updateExportAssignment` or the factory supplied by your transformation context instead. */ 11955 const updateExportAssignment: { 11956 (node: ExportAssignment, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 11957 (node: ExportAssignment, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 11958 }; 11959 /** @deprecated Use `factory.createNamedExports` or the factory supplied by your transformation context instead. */ 11960 const createNamedExports: (elements: readonly ExportSpecifier[]) => NamedExports; 11961 /** @deprecated Use `factory.updateNamedExports` or the factory supplied by your transformation context instead. */ 11962 const updateNamedExports: (node: NamedExports, elements: readonly ExportSpecifier[]) => NamedExports; 11963 /** @deprecated Use `factory.createExportSpecifier` or the factory supplied by your transformation context instead. */ 11964 const createExportSpecifier: (isTypeOnly: boolean, propertyName: string | Identifier | undefined, name: string | Identifier) => ExportSpecifier; 11965 /** @deprecated Use `factory.updateExportSpecifier` or the factory supplied by your transformation context instead. */ 11966 const updateExportSpecifier: (node: ExportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ExportSpecifier; 11967 /** @deprecated Use `factory.createExternalModuleReference` or the factory supplied by your transformation context instead. */ 11968 const createExternalModuleReference: (expression: Expression) => ExternalModuleReference; 11969 /** @deprecated Use `factory.updateExternalModuleReference` or the factory supplied by your transformation context instead. */ 11970 const updateExternalModuleReference: (node: ExternalModuleReference, expression: Expression) => ExternalModuleReference; 11971 /** @deprecated Use `factory.createJSDocTypeExpression` or the factory supplied by your transformation context instead. */ 11972 const createJSDocTypeExpression: (type: TypeNode) => JSDocTypeExpression; 11973 /** @deprecated Use `factory.createJSDocTypeTag` or the factory supplied by your transformation context instead. */ 11974 const createJSDocTypeTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTypeTag; 11975 /** @deprecated Use `factory.createJSDocReturnTag` or the factory supplied by your transformation context instead. */ 11976 const createJSDocReturnTag: (tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocReturnTag; 11977 /** @deprecated Use `factory.createJSDocThisTag` or the factory supplied by your transformation context instead. */ 11978 const createJSDocThisTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocThisTag; 11979 /** @deprecated Use `factory.createJSDocComment` or the factory supplied by your transformation context instead. */ 11980 const createJSDocComment: (comment?: string | NodeArray<JSDocComment> | undefined, tags?: readonly JSDocTag[] | undefined) => JSDoc; 11981 /** @deprecated Use `factory.createJSDocParameterTag` or the factory supplied by your transformation context instead. */ 11982 const createJSDocParameterTag: (tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, isNameFirst?: boolean | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocParameterTag; 11983 /** @deprecated Use `factory.createJSDocClassTag` or the factory supplied by your transformation context instead. */ 11984 const createJSDocClassTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocClassTag; 11985 /** @deprecated Use `factory.createJSDocAugmentsTag` or the factory supplied by your transformation context instead. */ 11986 const createJSDocAugmentsTag: (tagName: Identifier | undefined, className: ExpressionWithTypeArguments & { 11987 readonly expression: Identifier | PropertyAccessEntityNameExpression; 11988 }, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocAugmentsTag; 11989 /** @deprecated Use `factory.createJSDocEnumTag` or the factory supplied by your transformation context instead. */ 11990 const createJSDocEnumTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocEnumTag; 11991 /** @deprecated Use `factory.createJSDocTemplateTag` or the factory supplied by your transformation context instead. */ 11992 const createJSDocTemplateTag: (tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTemplateTag; 11993 /** @deprecated Use `factory.createJSDocTypedefTag` or the factory supplied by your transformation context instead. */ 11994 const createJSDocTypedefTag: (tagName: Identifier | undefined, typeExpression?: JSDocTypeLiteral | JSDocTypeExpression | undefined, fullName?: Identifier | JSDocNamespaceDeclaration | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTypedefTag; 11995 /** @deprecated Use `factory.createJSDocCallbackTag` or the factory supplied by your transformation context instead. */ 11996 const createJSDocCallbackTag: (tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName?: Identifier | JSDocNamespaceDeclaration | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocCallbackTag; 11997 /** @deprecated Use `factory.createJSDocSignature` or the factory supplied by your transformation context instead. */ 11998 const createJSDocSignature: (typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type?: JSDocReturnTag | undefined) => JSDocSignature; 11999 /** @deprecated Use `factory.createJSDocPropertyTag` or the factory supplied by your transformation context instead. */ 12000 const createJSDocPropertyTag: (tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, isNameFirst?: boolean | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPropertyTag; 12001 /** @deprecated Use `factory.createJSDocTypeLiteral` or the factory supplied by your transformation context instead. */ 12002 const createJSDocTypeLiteral: (jsDocPropertyTags?: readonly JSDocPropertyLikeTag[] | undefined, isArrayType?: boolean | undefined) => JSDocTypeLiteral; 12003 /** @deprecated Use `factory.createJSDocImplementsTag` or the factory supplied by your transformation context instead. */ 12004 const createJSDocImplementsTag: (tagName: Identifier | undefined, className: ExpressionWithTypeArguments & { 12005 readonly expression: Identifier | PropertyAccessEntityNameExpression; 12006 }, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocImplementsTag; 12007 /** @deprecated Use `factory.createJSDocAuthorTag` or the factory supplied by your transformation context instead. */ 12008 const createJSDocAuthorTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocAuthorTag; 12009 /** @deprecated Use `factory.createJSDocPublicTag` or the factory supplied by your transformation context instead. */ 12010 const createJSDocPublicTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPublicTag; 12011 /** @deprecated Use `factory.createJSDocPrivateTag` or the factory supplied by your transformation context instead. */ 12012 const createJSDocPrivateTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPrivateTag; 12013 /** @deprecated Use `factory.createJSDocProtectedTag` or the factory supplied by your transformation context instead. */ 12014 const createJSDocProtectedTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocProtectedTag; 12015 /** @deprecated Use `factory.createJSDocReadonlyTag` or the factory supplied by your transformation context instead. */ 12016 const createJSDocReadonlyTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocReadonlyTag; 12017 /** @deprecated Use `factory.createJSDocUnknownTag` or the factory supplied by your transformation context instead. */ 12018 const createJSDocTag: (tagName: Identifier, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocUnknownTag; 12019 /** @deprecated Use `factory.createJsxElement` or the factory supplied by your transformation context instead. */ 12020 const createJsxElement: (openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement) => JsxElement; 12021 /** @deprecated Use `factory.updateJsxElement` or the factory supplied by your transformation context instead. */ 12022 const updateJsxElement: (node: JsxElement, openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement) => JsxElement; 12023 /** @deprecated Use `factory.createJsxSelfClosingElement` or the factory supplied by your transformation context instead. */ 12024 const createJsxSelfClosingElement: (tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxSelfClosingElement; 12025 /** @deprecated Use `factory.updateJsxSelfClosingElement` or the factory supplied by your transformation context instead. */ 12026 const updateJsxSelfClosingElement: (node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxSelfClosingElement; 12027 /** @deprecated Use `factory.createJsxOpeningElement` or the factory supplied by your transformation context instead. */ 12028 const createJsxOpeningElement: (tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxOpeningElement; 12029 /** @deprecated Use `factory.updateJsxOpeningElement` or the factory supplied by your transformation context instead. */ 12030 const updateJsxOpeningElement: (node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxOpeningElement; 12031 /** @deprecated Use `factory.createJsxClosingElement` or the factory supplied by your transformation context instead. */ 12032 const createJsxClosingElement: (tagName: JsxTagNameExpression) => JsxClosingElement; 12033 /** @deprecated Use `factory.updateJsxClosingElement` or the factory supplied by your transformation context instead. */ 12034 const updateJsxClosingElement: (node: JsxClosingElement, tagName: JsxTagNameExpression) => JsxClosingElement; 12035 /** @deprecated Use `factory.createJsxFragment` or the factory supplied by your transformation context instead. */ 12036 const createJsxFragment: (openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment) => JsxFragment; 12037 /** @deprecated Use `factory.createJsxText` or the factory supplied by your transformation context instead. */ 12038 const createJsxText: (text: string, containsOnlyTriviaWhiteSpaces?: boolean | undefined) => JsxText; 12039 /** @deprecated Use `factory.updateJsxText` or the factory supplied by your transformation context instead. */ 12040 const updateJsxText: (node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean | undefined) => JsxText; 12041 /** @deprecated Use `factory.createJsxOpeningFragment` or the factory supplied by your transformation context instead. */ 12042 const createJsxOpeningFragment: () => JsxOpeningFragment; 12043 /** @deprecated Use `factory.createJsxJsxClosingFragment` or the factory supplied by your transformation context instead. */ 12044 const createJsxJsxClosingFragment: () => JsxClosingFragment; 12045 /** @deprecated Use `factory.updateJsxFragment` or the factory supplied by your transformation context instead. */ 12046 const updateJsxFragment: (node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment) => JsxFragment; 12047 /** @deprecated Use `factory.createJsxAttribute` or the factory supplied by your transformation context instead. */ 12048 const createJsxAttribute: (name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; 12049 /** @deprecated Use `factory.updateJsxAttribute` or the factory supplied by your transformation context instead. */ 12050 const updateJsxAttribute: (node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; 12051 /** @deprecated Use `factory.createJsxAttributes` or the factory supplied by your transformation context instead. */ 12052 const createJsxAttributes: (properties: readonly JsxAttributeLike[]) => JsxAttributes; 12053 /** @deprecated Use `factory.updateJsxAttributes` or the factory supplied by your transformation context instead. */ 12054 const updateJsxAttributes: (node: JsxAttributes, properties: readonly JsxAttributeLike[]) => JsxAttributes; 12055 /** @deprecated Use `factory.createJsxSpreadAttribute` or the factory supplied by your transformation context instead. */ 12056 const createJsxSpreadAttribute: (expression: Expression) => JsxSpreadAttribute; 12057 /** @deprecated Use `factory.updateJsxSpreadAttribute` or the factory supplied by your transformation context instead. */ 12058 const updateJsxSpreadAttribute: (node: JsxSpreadAttribute, expression: Expression) => JsxSpreadAttribute; 12059 /** @deprecated Use `factory.createJsxExpression` or the factory supplied by your transformation context instead. */ 12060 const createJsxExpression: (dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined) => JsxExpression; 12061 /** @deprecated Use `factory.updateJsxExpression` or the factory supplied by your transformation context instead. */ 12062 const updateJsxExpression: (node: JsxExpression, expression: Expression | undefined) => JsxExpression; 12063 /** @deprecated Use `factory.createCaseClause` or the factory supplied by your transformation context instead. */ 12064 const createCaseClause: (expression: Expression, statements: readonly Statement[]) => CaseClause; 12065 /** @deprecated Use `factory.updateCaseClause` or the factory supplied by your transformation context instead. */ 12066 const updateCaseClause: (node: CaseClause, expression: Expression, statements: readonly Statement[]) => CaseClause; 12067 /** @deprecated Use `factory.createDefaultClause` or the factory supplied by your transformation context instead. */ 12068 const createDefaultClause: (statements: readonly Statement[]) => DefaultClause; 12069 /** @deprecated Use `factory.updateDefaultClause` or the factory supplied by your transformation context instead. */ 12070 const updateDefaultClause: (node: DefaultClause, statements: readonly Statement[]) => DefaultClause; 12071 /** @deprecated Use `factory.createHeritageClause` or the factory supplied by your transformation context instead. */ 12072 const createHeritageClause: (token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword, types: readonly ExpressionWithTypeArguments[]) => HeritageClause; 12073 /** @deprecated Use `factory.updateHeritageClause` or the factory supplied by your transformation context instead. */ 12074 const updateHeritageClause: (node: HeritageClause, types: readonly ExpressionWithTypeArguments[]) => HeritageClause; 12075 /** @deprecated Use `factory.createCatchClause` or the factory supplied by your transformation context instead. */ 12076 const createCatchClause: (variableDeclaration: string | VariableDeclaration | BindingName | undefined, block: Block) => CatchClause; 12077 /** @deprecated Use `factory.updateCatchClause` or the factory supplied by your transformation context instead. */ 12078 const updateCatchClause: (node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block) => CatchClause; 12079 /** @deprecated Use `factory.createPropertyAssignment` or the factory supplied by your transformation context instead. */ 12080 const createPropertyAssignment: (name: string | PropertyName, initializer: Expression) => PropertyAssignment; 12081 /** @deprecated Use `factory.updatePropertyAssignment` or the factory supplied by your transformation context instead. */ 12082 const updatePropertyAssignment: (node: PropertyAssignment, name: PropertyName, initializer: Expression) => PropertyAssignment; 12083 /** @deprecated Use `factory.createShorthandPropertyAssignment` or the factory supplied by your transformation context instead. */ 12084 const createShorthandPropertyAssignment: (name: string | Identifier, objectAssignmentInitializer?: Expression | undefined) => ShorthandPropertyAssignment; 12085 /** @deprecated Use `factory.updateShorthandPropertyAssignment` or the factory supplied by your transformation context instead. */ 12086 const updateShorthandPropertyAssignment: (node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression | undefined) => ShorthandPropertyAssignment; 12087 /** @deprecated Use `factory.createSpreadAssignment` or the factory supplied by your transformation context instead. */ 12088 const createSpreadAssignment: (expression: Expression) => SpreadAssignment; 12089 /** @deprecated Use `factory.updateSpreadAssignment` or the factory supplied by your transformation context instead. */ 12090 const updateSpreadAssignment: (node: SpreadAssignment, expression: Expression) => SpreadAssignment; 12091 /** @deprecated Use `factory.createEnumMember` or the factory supplied by your transformation context instead. */ 12092 const createEnumMember: (name: string | PropertyName, initializer?: Expression | undefined) => EnumMember; 12093 /** @deprecated Use `factory.updateEnumMember` or the factory supplied by your transformation context instead. */ 12094 const updateEnumMember: (node: EnumMember, name: PropertyName, initializer: Expression | undefined) => EnumMember; 12095 /** @deprecated Use `factory.updateSourceFile` or the factory supplied by your transformation context instead. */ 12096 const updateSourceFileNode: (node: SourceFile, statements: readonly Statement[], isDeclarationFile?: boolean | undefined, referencedFiles?: readonly FileReference[] | undefined, typeReferences?: readonly FileReference[] | undefined, hasNoDefaultLib?: boolean | undefined, libReferences?: readonly FileReference[] | undefined) => SourceFile; 12097 /** @deprecated Use `factory.createNotEmittedStatement` or the factory supplied by your transformation context instead. */ 12098 const createNotEmittedStatement: (original: Node) => NotEmittedStatement; 12099 /** @deprecated Use `factory.createPartiallyEmittedExpression` or the factory supplied by your transformation context instead. */ 12100 const createPartiallyEmittedExpression: (expression: Expression, original?: Node | undefined) => PartiallyEmittedExpression; 12101 /** @deprecated Use `factory.updatePartiallyEmittedExpression` or the factory supplied by your transformation context instead. */ 12102 const updatePartiallyEmittedExpression: (node: PartiallyEmittedExpression, expression: Expression) => PartiallyEmittedExpression; 12103 /** @deprecated Use `factory.createCommaListExpression` or the factory supplied by your transformation context instead. */ 12104 const createCommaList: (elements: readonly Expression[]) => CommaListExpression; 12105 /** @deprecated Use `factory.updateCommaListExpression` or the factory supplied by your transformation context instead. */ 12106 const updateCommaList: (node: CommaListExpression, elements: readonly Expression[]) => CommaListExpression; 12107 /** @deprecated Use `factory.createBundle` or the factory supplied by your transformation context instead. */ 12108 const createBundle: (sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[] | undefined) => Bundle; 12109 /** @deprecated Use `factory.updateBundle` or the factory supplied by your transformation context instead. */ 12110 const updateBundle: (node: Bundle, sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[] | undefined) => Bundle; 12111 /** @deprecated Use `factory.createImmediatelyInvokedFunctionExpression` or the factory supplied by your transformation context instead. */ 12112 const createImmediatelyInvokedFunctionExpression: { 12113 (statements: readonly Statement[]): CallExpression; 12114 (statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 12115 }; 12116 /** @deprecated Use `factory.createImmediatelyInvokedArrowFunction` or the factory supplied by your transformation context instead. */ 12117 const createImmediatelyInvokedArrowFunction: { 12118 (statements: readonly Statement[]): CallExpression; 12119 (statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 12120 }; 12121 /** @deprecated Use `factory.createVoidZero` or the factory supplied by your transformation context instead. */ 12122 const createVoidZero: () => VoidExpression; 12123 /** @deprecated Use `factory.createExportDefault` or the factory supplied by your transformation context instead. */ 12124 const createExportDefault: (expression: Expression) => ExportAssignment; 12125 /** @deprecated Use `factory.createExternalModuleExport` or the factory supplied by your transformation context instead. */ 12126 const createExternalModuleExport: (exportName: Identifier) => ExportDeclaration; 12127 /** @deprecated Use `factory.createNamespaceExport` or the factory supplied by your transformation context instead. */ 12128 const createNamespaceExport: (name: Identifier) => NamespaceExport; 12129 /** @deprecated Use `factory.updateNamespaceExport` or the factory supplied by your transformation context instead. */ 12130 const updateNamespaceExport: (node: NamespaceExport, name: Identifier) => NamespaceExport; 12131 /** @deprecated Use `factory.createToken` or the factory supplied by your transformation context instead. */ 12132 const createToken: <TKind extends SyntaxKind>(kind: TKind) => Token<TKind>; 12133 /** @deprecated Use `factory.createIdentifier` or the factory supplied by your transformation context instead. */ 12134 const createIdentifier: (text: string) => Identifier; 12135 /** @deprecated Use `factory.createTempVariable` or the factory supplied by your transformation context instead. */ 12136 const createTempVariable: (recordTempVariable: ((node: Identifier) => void) | undefined) => Identifier; 12137 /** @deprecated Use `factory.getGeneratedNameForNode` or the factory supplied by your transformation context instead. */ 12138 const getGeneratedNameForNode: (node: Node | undefined) => Identifier; 12139 /** @deprecated Use `factory.createUniqueName(text, GeneratedIdentifierFlags.Optimistic)` or the factory supplied by your transformation context instead. */ 12140 const createOptimisticUniqueName: (text: string) => Identifier; 12141 /** @deprecated Use `factory.createUniqueName(text, GeneratedIdentifierFlags.Optimistic | GeneratedIdentifierFlags.FileLevel)` or the factory supplied by your transformation context instead. */ 12142 const createFileLevelUniqueName: (text: string) => Identifier; 12143 /** @deprecated Use `factory.createIndexSignature` or the factory supplied by your transformation context instead. */ 12144 const createIndexSignature: (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => IndexSignatureDeclaration; 12145 /** @deprecated Use `factory.createTypePredicateNode` or the factory supplied by your transformation context instead. */ 12146 const createTypePredicateNode: (parameterName: Identifier | ThisTypeNode | string, type: TypeNode) => TypePredicateNode; 12147 /** @deprecated Use `factory.updateTypePredicateNode` or the factory supplied by your transformation context instead. */ 12148 const updateTypePredicateNode: (node: TypePredicateNode, parameterName: Identifier | ThisTypeNode, type: TypeNode) => TypePredicateNode; 12149 /** @deprecated Use `factory.createStringLiteral`, `factory.createStringLiteralFromNode`, `factory.createNumericLiteral`, `factory.createBigIntLiteral`, `factory.createTrue`, `factory.createFalse`, or the factory supplied by your transformation context instead. */ 12150 const createLiteral: { 12151 (value: string | StringLiteral | NoSubstitutionTemplateLiteral | NumericLiteral | Identifier): StringLiteral; 12152 (value: number | PseudoBigInt): NumericLiteral; 12153 (value: boolean): BooleanLiteral; 12154 (value: string | number | PseudoBigInt | boolean): PrimaryExpression; 12155 }; 12156 /** @deprecated Use `factory.createMethodSignature` or the factory supplied by your transformation context instead. */ 12157 const createMethodSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined) => MethodSignature; 12158 /** @deprecated Use `factory.updateMethodSignature` or the factory supplied by your transformation context instead. */ 12159 const updateMethodSignature: (node: MethodSignature, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined, name: PropertyName, questionToken: QuestionToken | undefined) => MethodSignature; 12160 /** @deprecated Use `factory.createTypeOperatorNode` or the factory supplied by your transformation context instead. */ 12161 const createTypeOperatorNode: { 12162 (type: TypeNode): TypeOperatorNode; 12163 (operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode; 12164 }; 12165 /** @deprecated Use `factory.createTaggedTemplate` or the factory supplied by your transformation context instead. */ 12166 const createTaggedTemplate: { 12167 (tag: Expression, template: TemplateLiteral): TaggedTemplateExpression; 12168 (tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 12169 }; 12170 /** @deprecated Use `factory.updateTaggedTemplate` or the factory supplied by your transformation context instead. */ 12171 const updateTaggedTemplate: { 12172 (node: TaggedTemplateExpression, tag: Expression, template: TemplateLiteral): TaggedTemplateExpression; 12173 (node: TaggedTemplateExpression, tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 12174 }; 12175 /** @deprecated Use `factory.updateBinary` or the factory supplied by your transformation context instead. */ 12176 const updateBinary: (node: BinaryExpression, left: Expression, right: Expression, operator?: BinaryOperator | BinaryOperatorToken) => BinaryExpression; 12177 /** @deprecated Use `factory.createConditional` or the factory supplied by your transformation context instead. */ 12178 const createConditional: { 12179 (condition: Expression, whenTrue: Expression, whenFalse: Expression): ConditionalExpression; 12180 (condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression; 12181 }; 12182 /** @deprecated Use `factory.createYield` or the factory supplied by your transformation context instead. */ 12183 const createYield: { 12184 (expression?: Expression | undefined): YieldExpression; 12185 (asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression; 12186 }; 12187 /** @deprecated Use `factory.createClassExpression` or the factory supplied by your transformation context instead. */ 12188 const createClassExpression: (modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]) => ClassExpression; 12189 /** @deprecated Use `factory.updateClassExpression` or the factory supplied by your transformation context instead. */ 12190 const updateClassExpression: (node: ClassExpression, modifiers: readonly Modifier[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]) => ClassExpression; 12191 /** @deprecated Use `factory.createPropertySignature` or the factory supplied by your transformation context instead. */ 12192 const createPropertySignature: (modifiers: readonly Modifier[] | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer?: Expression | undefined) => PropertySignature; 12193 /** @deprecated Use `factory.updatePropertySignature` or the factory supplied by your transformation context instead. */ 12194 const updatePropertySignature: (node: PropertySignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined) => PropertySignature; 12195 /** @deprecated Use `factory.createExpressionWithTypeArguments` or the factory supplied by your transformation context instead. */ 12196 const createExpressionWithTypeArguments: (typeArguments: readonly TypeNode[] | undefined, expression: Expression) => ExpressionWithTypeArguments; 12197 /** @deprecated Use `factory.updateExpressionWithTypeArguments` or the factory supplied by your transformation context instead. */ 12198 const updateExpressionWithTypeArguments: (node: ExpressionWithTypeArguments, typeArguments: readonly TypeNode[] | undefined, expression: Expression) => ExpressionWithTypeArguments; 12199 /** @deprecated Use `factory.createArrowFunction` or the factory supplied by your transformation context instead. */ 12200 const createArrowFunction: { 12201 (modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction; 12202 (modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: ConciseBody): ArrowFunction; 12203 }; 12204 /** @deprecated Use `factory.updateArrowFunction` or the factory supplied by your transformation context instead. */ 12205 const updateArrowFunction: { 12206 (node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken, body: ConciseBody): ArrowFunction; 12207 (node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: ConciseBody): ArrowFunction; 12208 }; 12209 /** @deprecated Use `factory.createVariableDeclaration` or the factory supplied by your transformation context instead. */ 12210 const createVariableDeclaration: { 12211 (name: string | BindingName, type?: TypeNode | undefined, initializer?: Expression | undefined): VariableDeclaration; 12212 (name: string | BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 12213 }; 12214 /** @deprecated Use `factory.updateVariableDeclaration` or the factory supplied by your transformation context instead. */ 12215 const updateVariableDeclaration: { 12216 (node: VariableDeclaration, name: BindingName, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 12217 (node: VariableDeclaration, name: BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 12218 }; 12219 /** @deprecated Use `factory.createImportClause` or the factory supplied by your transformation context instead. */ 12220 const createImportClause: (name: Identifier | undefined, namedBindings: NamedImportBindings | undefined, isTypeOnly?: any) => ImportClause; 12221 /** @deprecated Use `factory.updateImportClause` or the factory supplied by your transformation context instead. */ 12222 const updateImportClause: (node: ImportClause, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined, isTypeOnly: boolean) => ImportClause; 12223 /** @deprecated Use `factory.createExportDeclaration` or the factory supplied by your transformation context instead. */ 12224 const createExportDeclaration: (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression | undefined, isTypeOnly?: any) => ExportDeclaration; 12225 /** @deprecated Use `factory.updateExportDeclaration` or the factory supplied by your transformation context instead. */ 12226 const updateExportDeclaration: (node: ExportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, isTypeOnly: boolean) => ExportDeclaration; 12227 /** @deprecated Use `factory.createJSDocParameterTag` or the factory supplied by your transformation context instead. */ 12228 const createJSDocParamTag: (name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, comment?: string | undefined) => JSDocParameterTag; 12229 /** @deprecated Use `factory.createComma` or the factory supplied by your transformation context instead. */ 12230 const createComma: (left: Expression, right: Expression) => Expression; 12231 /** @deprecated Use `factory.createLessThan` or the factory supplied by your transformation context instead. */ 12232 const createLessThan: (left: Expression, right: Expression) => Expression; 12233 /** @deprecated Use `factory.createAssignment` or the factory supplied by your transformation context instead. */ 12234 const createAssignment: (left: Expression, right: Expression) => BinaryExpression; 12235 /** @deprecated Use `factory.createStrictEquality` or the factory supplied by your transformation context instead. */ 12236 const createStrictEquality: (left: Expression, right: Expression) => BinaryExpression; 12237 /** @deprecated Use `factory.createStrictInequality` or the factory supplied by your transformation context instead. */ 12238 const createStrictInequality: (left: Expression, right: Expression) => BinaryExpression; 12239 /** @deprecated Use `factory.createAdd` or the factory supplied by your transformation context instead. */ 12240 const createAdd: (left: Expression, right: Expression) => BinaryExpression; 12241 /** @deprecated Use `factory.createSubtract` or the factory supplied by your transformation context instead. */ 12242 const createSubtract: (left: Expression, right: Expression) => BinaryExpression; 12243 /** @deprecated Use `factory.createLogicalAnd` or the factory supplied by your transformation context instead. */ 12244 const createLogicalAnd: (left: Expression, right: Expression) => BinaryExpression; 12245 /** @deprecated Use `factory.createLogicalOr` or the factory supplied by your transformation context instead. */ 12246 const createLogicalOr: (left: Expression, right: Expression) => BinaryExpression; 12247 /** @deprecated Use `factory.createPostfixIncrement` or the factory supplied by your transformation context instead. */ 12248 const createPostfixIncrement: (operand: Expression) => PostfixUnaryExpression; 12249 /** @deprecated Use `factory.createLogicalNot` or the factory supplied by your transformation context instead. */ 12250 const createLogicalNot: (operand: Expression) => PrefixUnaryExpression; 12251 /** @deprecated Use an appropriate `factory` method instead. */ 12252 const createNode: (kind: SyntaxKind, pos?: any, end?: any) => Node; 12253 /** 12254 * Creates a shallow, memberwise clone of a node ~for mutation~ with its `pos`, `end`, and `parent` set. 12255 * 12256 * NOTE: It is unsafe to change any properties of a `Node` that relate to its AST children, as those changes won't be 12257 * captured with respect to transformations. 12258 * 12259 * @deprecated Use an appropriate `factory.update...` method instead, use `setCommentRange` or `setSourceMapRange`, and avoid setting `parent`. 12260 */ 12261 const getMutableClone: <T extends Node>(node: T) => T; 12262} 12263declare namespace ts { 12264 /** @deprecated Use `isTypeAssertionExpression` instead. */ 12265 const isTypeAssertion: (node: Node) => node is TypeAssertion; 12266} 12267declare namespace ts { 12268 /** 12269 * @deprecated Use `ts.ReadonlyESMap<K, V>` instead. 12270 */ 12271 interface ReadonlyMap<T> extends ReadonlyESMap<string, T> { 12272 } 12273 /** 12274 * @deprecated Use `ts.ESMap<K, V>` instead. 12275 */ 12276 interface Map<T> extends ESMap<string, T> { 12277 } 12278} 12279declare namespace ts { 12280 /** 12281 * @deprecated Use `isMemberName` instead. 12282 */ 12283 const isIdentifierOrPrivateIdentifier: (node: Node) => node is MemberName; 12284} 12285declare namespace ts { 12286 interface NodeFactory { 12287 /** @deprecated Use the overload that accepts 'modifiers' */ 12288 createConstructorTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): ConstructorTypeNode; 12289 /** @deprecated Use the overload that accepts 'modifiers' */ 12290 updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): ConstructorTypeNode; 12291 } 12292} 12293declare namespace ts { 12294 interface NodeFactory { 12295 createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 12296 /** @deprecated Use the overload that accepts 'assertions' */ 12297 createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 12298 /** @deprecated Use the overload that accepts 'assertions' */ 12299 updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; 12300 } 12301} 12302declare namespace ts { 12303 interface NodeFactory { 12304 /** @deprecated Use the overload that accepts 'modifiers' */ 12305 createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; 12306 /** @deprecated Use the overload that accepts 'modifiers' */ 12307 updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 12308 } 12309} 12310declare namespace ts { 12311 interface Node { 12312 /** 12313 * @deprecated `decorators` has been removed from `Node` and merged with `modifiers` on the `Node` subtypes that support them. 12314 * Use `ts.canHaveDecorators()` to test whether a `Node` can have decorators. 12315 * Use `ts.getDecorators()` to get the decorators of a `Node`. 12316 * 12317 * For example: 12318 * ```ts 12319 * const decorators = ts.canHaveDecorators(node) ? ts.getDecorators(node) : undefined; 12320 * ``` 12321 */ 12322 readonly decorators?: undefined; 12323 /** 12324 * @deprecated `modifiers` has been removed from `Node` and moved to the `Node` subtypes that support them. 12325 * Use `ts.canHaveModifiers()` to test whether a `Node` can have modifiers. 12326 * Use `ts.getModifiers()` to get the modifiers of a `Node`. 12327 * 12328 * For example: 12329 * ```ts 12330 * const modifiers = ts.canHaveModifiers(node) ? ts.getModifiers(node) : undefined; 12331 * ``` 12332 */ 12333 readonly modifiers?: NodeArray<ModifierLike> | undefined; 12334 } 12335 interface PropertySignature { 12336 /** @deprecated A property signature cannot have an initializer */ 12337 readonly initializer?: Expression | undefined; 12338 } 12339 interface PropertyAssignment { 12340 /** @deprecated A property assignment cannot have a question token */ 12341 readonly questionToken?: QuestionToken | undefined; 12342 /** @deprecated A property assignment cannot have an exclamation token */ 12343 readonly exclamationToken?: ExclamationToken | undefined; 12344 } 12345 interface ShorthandPropertyAssignment { 12346 /** @deprecated A shorthand property assignment cannot have modifiers */ 12347 readonly modifiers?: NodeArray<Modifier> | undefined; 12348 /** @deprecated A shorthand property assignment cannot have a question token */ 12349 readonly questionToken?: QuestionToken | undefined; 12350 /** @deprecated A shorthand property assignment cannot have an exclamation token */ 12351 readonly exclamationToken?: ExclamationToken | undefined; 12352 } 12353 interface FunctionTypeNode { 12354 /** @deprecated A function type cannot have modifiers */ 12355 readonly modifiers?: NodeArray<Modifier> | undefined; 12356 } 12357 interface NodeFactory { 12358 /** 12359 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12360 */ 12361 createParameterDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; 12362 /** 12363 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12364 */ 12365 updateParameterDeclaration(node: ParameterDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; 12366 /** 12367 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12368 */ 12369 createPropertyDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 12370 /** 12371 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12372 */ 12373 updatePropertyDeclaration(node: PropertyDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 12374 /** 12375 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12376 */ 12377 createMethodDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; 12378 /** 12379 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12380 */ 12381 updateMethodDeclaration(node: MethodDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; 12382 /** 12383 * @deprecated This node does not support Decorators. Callers should use an overload that does not accept a `decorators` parameter. 12384 */ 12385 createConstructorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 12386 /** 12387 * @deprecated This node does not support Decorators. Callers should use an overload that does not accept a `decorators` parameter. 12388 */ 12389 updateConstructorDeclaration(node: ConstructorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 12390 /** 12391 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12392 */ 12393 createGetAccessorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 12394 /** 12395 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12396 */ 12397 updateGetAccessorDeclaration(node: GetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 12398 /** 12399 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12400 */ 12401 createSetAccessorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 12402 /** 12403 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12404 */ 12405 updateSetAccessorDeclaration(node: SetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 12406 /** 12407 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12408 */ 12409 createIndexSignature(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 12410 /** 12411 * @deprecated Decorators and modifiers are no longer supported for this function. Callers should use an overload that does not accept the `decorators` and `modifiers` parameters. 12412 */ 12413 updateIndexSignature(node: IndexSignatureDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 12414 /** 12415 * @deprecated Decorators and modifiers are no longer supported for this function. Callers should use an overload that does not accept the `decorators` and `modifiers` parameters. 12416 */ 12417 createClassStaticBlockDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, body: Block): ClassStaticBlockDeclaration; 12418 /** 12419 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12420 */ 12421 updateClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, body: Block): ClassStaticBlockDeclaration; 12422 /** 12423 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12424 */ 12425 createClassExpression(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression; 12426 /** 12427 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12428 */ 12429 updateClassExpression(node: ClassExpression, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression; 12430 /** 12431 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12432 */ 12433 createFunctionDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; 12434 /** 12435 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12436 */ 12437 updateFunctionDeclaration(node: FunctionDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; 12438 /** 12439 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12440 */ 12441 createClassDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 12442 /** 12443 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12444 */ 12445 updateClassDeclaration(node: ClassDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 12446 /** 12447 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12448 */ 12449 createInterfaceDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 12450 /** 12451 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12452 */ 12453 updateInterfaceDeclaration(node: InterfaceDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 12454 /** 12455 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12456 */ 12457 createTypeAliasDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 12458 /** 12459 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12460 */ 12461 updateTypeAliasDeclaration(node: TypeAliasDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 12462 /** 12463 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12464 */ 12465 createEnumDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 12466 /** 12467 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12468 */ 12469 updateEnumDeclaration(node: EnumDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 12470 /** 12471 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12472 */ 12473 createModuleDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration; 12474 /** 12475 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12476 */ 12477 updateModuleDeclaration(node: ModuleDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 12478 /** 12479 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12480 */ 12481 createImportEqualsDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 12482 /** 12483 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12484 */ 12485 updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 12486 /** 12487 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12488 */ 12489 createImportDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause): ImportDeclaration; 12490 /** 12491 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12492 */ 12493 updateImportDeclaration(node: ImportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 12494 /** 12495 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12496 */ 12497 createExportAssignment(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 12498 /** 12499 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12500 */ 12501 updateExportAssignment(node: ExportAssignment, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 12502 /** 12503 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12504 */ 12505 createExportDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression, assertClause?: AssertClause): ExportDeclaration; 12506 /** 12507 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12508 */ 12509 updateExportDeclaration(node: ExportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, assertClause: AssertClause | undefined): ExportDeclaration; 12510 } 12511} 12512declare namespace ts { 12513 namespace ArkTSLinter_1_0 { 12514 namespace Common { 12515 interface AutofixInfo { 12516 problemID: string; 12517 start: number; 12518 end: number; 12519 } 12520 interface CommandLineOptions { 12521 strictMode?: boolean; 12522 ideMode?: boolean; 12523 logTscErrors?: boolean; 12524 warningsAsErrors: boolean; 12525 parsedConfigFile?: ParsedCommandLine; 12526 inputFiles: string[]; 12527 autofixInfo?: AutofixInfo[]; 12528 } 12529 interface LintOptions { 12530 cmdOptions: CommandLineOptions; 12531 tsProgram?: Program; 12532 [key: string]: any; 12533 } 12534 } 12535 } 12536} 12537declare namespace ts { 12538 namespace ArkTSLinter_1_0 { 12539 const cookBookMsg: string[]; 12540 const cookBookTag: string[]; 12541 } 12542} 12543declare namespace ts { 12544 namespace ArkTSLinter_1_0 { 12545 namespace DiagnosticCheckerNamespace { 12546 interface DiagnosticChecker { 12547 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 12548 } 12549 } 12550 } 12551} 12552declare namespace ts { 12553 namespace ArkTSLinter_1_0 { 12554 import DiagnosticChecker = DiagnosticCheckerNamespace.DiagnosticChecker; 12555 namespace LibraryTypeCallDiagnosticCheckerNamespace { 12556 const TYPE_0_IS_NOT_ASSIGNABLE_TO_TYPE_1_ERROR_CODE = 2322; 12557 const TYPE_UNKNOWN_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 12558 const TYPE_NULL_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 12559 const TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 12560 const ARGUMENT_OF_TYPE_0_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_ERROR_CODE = 2345; 12561 const ARGUMENT_OF_TYPE_NULL_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 12562 const ARGUMENT_OF_TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 12563 const NO_OVERLOAD_MATCHES_THIS_CALL_ERROR_CODE = 2769; 12564 class LibraryTypeCallDiagnosticChecker implements DiagnosticChecker { 12565 inLibCall: boolean; 12566 diagnosticMessages: Array<ts.DiagnosticMessageChain> | undefined; 12567 filteredDiagnosticMessages: DiagnosticMessageChain[]; 12568 constructor(filteredDiagnosticMessages: DiagnosticMessageChain[]); 12569 configure(inLibCall: boolean, diagnosticMessages: Array<ts.DiagnosticMessageChain>): void; 12570 checkMessageText(msg: string): boolean; 12571 checkMessageChain(chain: ts.DiagnosticMessageChain): boolean; 12572 checkFilteredDiagnosticMessages(msgText: ts.DiagnosticMessageChain | string): boolean; 12573 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 12574 } 12575 } 12576 } 12577} 12578declare namespace ts { 12579 namespace ArkTSLinter_1_0 { 12580 namespace Utils { 12581 import AutofixInfo = Common.AutofixInfo; 12582 const PROPERTY_HAS_NO_INITIALIZER_ERROR_CODE = 2564; 12583 const NON_INITIALIZABLE_PROPERTY_DECORATORS: string[]; 12584 const NON_INITIALIZABLE_PROPERTY_ClASS_DECORATORS: string[]; 12585 const LIMITED_STANDARD_UTILITY_TYPES: string[]; 12586 const ALLOWED_STD_SYMBOL_API: string[]; 12587 enum ProblemSeverity { 12588 WARNING = 1, 12589 ERROR = 2 12590 } 12591 const ARKTS_IGNORE_DIRS: string[]; 12592 const ARKTS_IGNORE_FILES: string[]; 12593 function setTypeChecker(tsTypeChecker: TypeChecker): void; 12594 function clearTypeChecker(): void; 12595 function setTestMode(tsTestMode: boolean): void; 12596 function getStartPos(nodeOrComment: Node | CommentRange): number; 12597 function getEndPos(nodeOrComment: Node | CommentRange): number; 12598 function isAssignmentOperator(tsBinOp: BinaryOperatorToken): boolean; 12599 function isTypedArray(tsType: TypeNode | undefined): boolean; 12600 function isType(tsType: TypeNode | undefined, checkType: string): boolean; 12601 function entityNameToString(name: EntityName): string; 12602 function isNumberType(tsType: Type): boolean; 12603 function isBooleanType(tsType: Type): boolean; 12604 function isStringLikeType(tsType: Type): boolean; 12605 function isStringType(type: Type): boolean; 12606 function isPrimitiveEnumType(type: Type, primitiveType: TypeFlags): boolean; 12607 function isPrimitiveEnumMemberType(type: Type, primitiveType: TypeFlags): boolean; 12608 function unwrapParenthesizedType(tsType: TypeNode): TypeNode; 12609 function findParentIf(asExpr: AsExpression): IfStatement | null; 12610 function isDestructuringAssignmentLHS(tsExpr: ArrayLiteralExpression | ObjectLiteralExpression): boolean; 12611 function isEnumType(tsType: Type): boolean; 12612 function isEnumMemberType(tsType: Type): boolean; 12613 function isObjectLiteralType(tsType: Type): boolean; 12614 function isNumberLikeType(tsType: Type): boolean; 12615 function hasModifier(tsModifiers: readonly Modifier[] | undefined, tsModifierKind: number): boolean; 12616 function unwrapParenthesized(tsExpr: Expression): Expression; 12617 function followIfAliased(sym: Symbol): Symbol; 12618 function trueSymbolAtLocation(node: Node): Symbol | undefined; 12619 function clearTrueSymbolAtLocationCache(): void; 12620 function isTypeDeclSyntaxKind(kind: SyntaxKind): boolean; 12621 function symbolHasDuplicateName(symbol: Symbol, tsDeclKind: SyntaxKind): boolean; 12622 function isReferenceType(tsType: Type): boolean; 12623 function isPrimitiveType(type: Type): boolean; 12624 function isTypeSymbol(symbol: Symbol | undefined): boolean; 12625 function isGenericArrayType(tsType: Type): tsType is TypeReference; 12626 function isDerivedFrom(tsType: Type, checkType: CheckType): tsType is TypeReference; 12627 function isTypeReference(tsType: Type): tsType is TypeReference; 12628 function isNullType(tsTypeNode: TypeNode): boolean; 12629 function isThisOrSuperExpr(tsExpr: Expression): boolean; 12630 function isPrototypeSymbol(symbol: Symbol | undefined): boolean; 12631 function isFunctionSymbol(symbol: Symbol | undefined): boolean; 12632 function isInterfaceType(tsType: Type | undefined): boolean; 12633 function isAnyType(tsType: Type): tsType is TypeReference; 12634 function isUnknownType(tsType: Type): boolean; 12635 function isUnsupportedType(tsType: Type): boolean; 12636 function isUnsupportedUnionType(tsType: Type): boolean; 12637 function isFunctionOrMethod(tsSymbol: Symbol | undefined): boolean; 12638 function isMethodAssignment(tsSymbol: Symbol | undefined): boolean; 12639 function getDeclaration(tsSymbol: ts.Symbol | undefined): ts.Declaration | undefined; 12640 function isValidEnumMemberInit(tsExpr: Expression): boolean; 12641 function isCompileTimeExpression(tsExpr: Expression): boolean; 12642 function isConst(tsNode: Node): boolean; 12643 function isNumberConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 12644 function isIntegerConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 12645 function isStringConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression): boolean; 12646 function relatedByInheritanceOrIdentical(typeA: Type, typeB: Type): boolean; 12647 function needToDeduceStructuralIdentity(typeFrom: Type, typeTo: Type, allowPromotion?: boolean): boolean; 12648 function hasPredecessor(node: Node, predicate: (node: Node) => boolean): boolean; 12649 function processParentTypes(parentTypes: NodeArray<ExpressionWithTypeArguments>, typeB: Type, processInterfaces: boolean): boolean; 12650 function processParentTypesCheck(parentTypes: NodeArray<ExpressionWithTypeArguments>, checkType: CheckType): boolean; 12651 function isObjectType(tsType: Type): boolean; 12652 function logTscDiagnostic(diagnostics: readonly Diagnostic[], log: (message: any, ...args: any[]) => void): void; 12653 function encodeProblemInfo(problem: ProblemInfo): string; 12654 function decodeAutofixInfo(info: string): AutofixInfo; 12655 function isCallToFunctionWithOmittedReturnType(tsExpr: Expression): boolean; 12656 function validateObjectLiteralType(type: Type | undefined): boolean; 12657 function isStructDeclarationKind(kind: SyntaxKind): boolean; 12658 function isStructDeclaration(node: Node): boolean; 12659 function isStructObjectInitializer(objectLiteral: ObjectLiteralExpression): boolean; 12660 function hasMethods(type: Type): boolean; 12661 function isExpressionAssignableToType(lhsType: ts.Type | undefined, rhsExpr: ts.Expression): boolean; 12662 function isLiteralType(type: Type): boolean; 12663 function validateFields(type: Type, objectLiteral: ObjectLiteralExpression): boolean; 12664 function isSupportedType(typeNode: TypeNode): boolean; 12665 function isStruct(symbol: Symbol): boolean; 12666 enum CheckType { 12667 Array = 0, 12668 String = "String", 12669 Set = "Set", 12670 Map = "Map", 12671 Error = "Error" 12672 } 12673 const ES_OBJECT = "ESObject"; 12674 const LIMITED_STD_GLOBAL_FUNC: string[]; 12675 const LIMITED_STD_OBJECT_API: string[]; 12676 const LIMITED_STD_REFLECT_API: string[]; 12677 const LIMITED_STD_PROXYHANDLER_API: string[]; 12678 const ARKUI_DECORATORS: string[]; 12679 const FUNCTION_HAS_NO_RETURN_ERROR_CODE = 2366; 12680 const NON_RETURN_FUNCTION_DECORATORS: string[]; 12681 const STANDARD_LIBRARIES: string[]; 12682 const TYPED_ARRAYS: string[]; 12683 function getParentSymbolName(symbol: Symbol): string | undefined; 12684 function isGlobalSymbol(symbol: Symbol): boolean; 12685 function isSymbolAPI(symbol: Symbol): boolean; 12686 function isStdSymbol(symbol: ts.Symbol): boolean; 12687 function isSymbolIterator(symbol: ts.Symbol): boolean; 12688 function isDefaultImport(importSpec: ImportSpecifier): boolean; 12689 function hasAccessModifier(decl: Declaration): boolean; 12690 function getModifier(modifiers: readonly Modifier[] | undefined, modifierKind: SyntaxKind): Modifier | undefined; 12691 function getAccessModifier(modifiers: readonly Modifier[] | undefined): Modifier | undefined; 12692 function isStdRecordType(type: Type): boolean; 12693 function isStdPartialType(type: Type): boolean; 12694 function isStdRequiredType(type: Type): boolean; 12695 function isStdReadonlyType(type: Type): boolean; 12696 function isLibraryType(type: Type): boolean; 12697 function hasLibraryType(node: Node): boolean; 12698 function isLibrarySymbol(sym: Symbol | undefined): boolean; 12699 function pathContainsDirectory(targetPath: string, dir: string): boolean; 12700 function getScriptKind(srcFile: SourceFile): ScriptKind; 12701 function isStdLibraryType(type: Type): boolean; 12702 function isStdLibrarySymbol(sym: Symbol | undefined): boolean; 12703 function isIntrinsicObjectType(type: Type): boolean; 12704 function isDynamicType(type: Type | undefined): boolean | undefined; 12705 function isDynamicLiteralInitializer(expr: Expression): boolean; 12706 function isEsObjectType(typeNode: TypeNode): boolean; 12707 function isInsideBlock(node: ts.Node): boolean; 12708 function isEsObjectPossiblyAllowed(typeRef: ts.TypeReferenceNode): boolean; 12709 function isValueAssignableToESObject(node: ts.Node): boolean; 12710 function getVariableDeclarationTypeNode(node: Node): TypeNode | undefined; 12711 function getSymbolDeclarationTypeNode(sym: ts.Symbol): ts.TypeNode | undefined; 12712 function hasEsObjectType(node: Node): boolean; 12713 function symbolHasEsObjectType(sym: ts.Symbol): boolean; 12714 function isEsObjectSymbol(sym: Symbol): boolean; 12715 function isAnonymousType(type: Type): boolean; 12716 function getSymbolOfCallExpression(callExpr: CallExpression): Symbol | undefined; 12717 function typeIsRecursive(topType: Type, type?: Type | undefined): boolean; 12718 } 12719 } 12720} 12721declare namespace ts { 12722 namespace ArkTSLinter_1_0 { 12723 namespace Problems { 12724 enum FaultID { 12725 AnyType = 0, 12726 SymbolType = 1, 12727 ObjectLiteralNoContextType = 2, 12728 ArrayLiteralNoContextType = 3, 12729 ComputedPropertyName = 4, 12730 LiteralAsPropertyName = 5, 12731 TypeQuery = 6, 12732 RegexLiteral = 7, 12733 IsOperator = 8, 12734 DestructuringParameter = 9, 12735 YieldExpression = 10, 12736 InterfaceMerging = 11, 12737 EnumMerging = 12, 12738 InterfaceExtendsClass = 13, 12739 IndexMember = 14, 12740 WithStatement = 15, 12741 ThrowStatement = 16, 12742 IndexedAccessType = 17, 12743 UnknownType = 18, 12744 ForInStatement = 19, 12745 InOperator = 20, 12746 ImportFromPath = 21, 12747 FunctionExpression = 22, 12748 IntersectionType = 23, 12749 ObjectTypeLiteral = 24, 12750 CommaOperator = 25, 12751 LimitedReturnTypeInference = 26, 12752 LambdaWithTypeParameters = 27, 12753 ClassExpression = 28, 12754 DestructuringAssignment = 29, 12755 DestructuringDeclaration = 30, 12756 VarDeclaration = 31, 12757 CatchWithUnsupportedType = 32, 12758 DeleteOperator = 33, 12759 DeclWithDuplicateName = 34, 12760 UnaryArithmNotNumber = 35, 12761 ConstructorType = 36, 12762 ConstructorIface = 37, 12763 ConstructorFuncs = 38, 12764 CallSignature = 39, 12765 TypeAssertion = 40, 12766 PrivateIdentifier = 41, 12767 LocalFunction = 42, 12768 ConditionalType = 43, 12769 MappedType = 44, 12770 NamespaceAsObject = 45, 12771 ClassAsObject = 46, 12772 NonDeclarationInNamespace = 47, 12773 GeneratorFunction = 48, 12774 FunctionContainsThis = 49, 12775 PropertyAccessByIndex = 50, 12776 JsxElement = 51, 12777 EnumMemberNonConstInit = 52, 12778 ImplementsClass = 53, 12779 NoUndefinedPropAccess = 54, 12780 MultipleStaticBlocks = 55, 12781 ThisType = 56, 12782 IntefaceExtendDifProps = 57, 12783 StructuralIdentity = 58, 12784 DefaultImport = 59, 12785 ExportAssignment = 60, 12786 ImportAssignment = 61, 12787 GenericCallNoTypeArgs = 62, 12788 ParameterProperties = 63, 12789 InstanceofUnsupported = 64, 12790 ShorthandAmbientModuleDecl = 65, 12791 WildcardsInModuleName = 66, 12792 UMDModuleDefinition = 67, 12793 NewTarget = 68, 12794 DefiniteAssignment = 69, 12795 Prototype = 70, 12796 GlobalThis = 71, 12797 UtilityType = 72, 12798 PropertyDeclOnFunction = 73, 12799 FunctionApplyBindCall = 74, 12800 ConstAssertion = 75, 12801 ImportAssertion = 76, 12802 SpreadOperator = 77, 12803 LimitedStdLibApi = 78, 12804 ErrorSuppression = 79, 12805 StrictDiagnostic = 80, 12806 UnsupportedDecorators = 81, 12807 ImportAfterStatement = 82, 12808 EsObjectType = 83, 12809 LAST_ID = 84 12810 } 12811 class FaultAttributs { 12812 migratable?: boolean; 12813 warning?: boolean; 12814 cookBookRef: string; 12815 } 12816 const faultsAttrs: FaultAttributs[]; 12817 } 12818 } 12819} 12820declare namespace ts { 12821 namespace ArkTSLinter_1_0 { 12822 namespace Autofixer { 12823 import AutofixInfo = Common.AutofixInfo; 12824 import FaultID = Problems.FaultID; 12825 const AUTOFIX_ALL: AutofixInfo; 12826 const autofixInfo: AutofixInfo[]; 12827 function shouldAutofix(node: Node, faultID: FaultID): boolean; 12828 interface Autofix { 12829 replacementText: string; 12830 start: number; 12831 end: number; 12832 } 12833 function fixLiteralAsPropertyName(node: Node): Autofix[] | undefined; 12834 function fixPropertyAccessByIndex(node: Node): Autofix[] | undefined; 12835 function fixFunctionExpression(funcExpr: FunctionExpression, params?: NodeArray<ParameterDeclaration>, retType?: TypeNode | undefined): Autofix; 12836 function fixReturnType(funcLikeDecl: FunctionLikeDeclaration, typeNode: TypeNode): Autofix; 12837 function fixCtorParameterProperties(ctorDecl: ConstructorDeclaration, paramTypes: TypeNode[]): Autofix[] | undefined; 12838 } 12839 } 12840} 12841declare namespace ts { 12842 namespace ArkTSLinter_1_0 { 12843 import FaultID = Problems.FaultID; 12844 class LinterConfig { 12845 static nodeDesc: string[]; 12846 static tsSyntaxKindNames: string[]; 12847 static initStatic(): void; 12848 static terminalTokens: Set<SyntaxKind>; 12849 static incrementOnlyTokens: ESMap<SyntaxKind, FaultID>; 12850 } 12851 } 12852} 12853declare namespace ts { 12854 namespace ArkTSLinter_1_0 { 12855 import Autofix = Autofixer.Autofix; 12856 import LibraryTypeCallDiagnosticChecker = LibraryTypeCallDiagnosticCheckerNamespace.LibraryTypeCallDiagnosticChecker; 12857 interface ProblemInfo { 12858 line: number; 12859 column: number; 12860 start: number; 12861 end: number; 12862 type: string; 12863 severity: number; 12864 problem: string; 12865 suggest: string; 12866 rule: string; 12867 ruleTag: number; 12868 autofixable: boolean; 12869 autofix?: Autofix[]; 12870 } 12871 class TypeScriptLinter { 12872 private sourceFile; 12873 private tscStrictDiagnostics?; 12874 static ideMode: boolean; 12875 static strictMode: boolean; 12876 static logTscErrors: boolean; 12877 static warningsAsErrors: boolean; 12878 static lintEtsOnly: boolean; 12879 static totalVisitedNodes: number; 12880 static nodeCounters: number[]; 12881 static lineCounters: number[]; 12882 static totalErrorLines: number; 12883 static errorLineNumbersString: string; 12884 static totalWarningLines: number; 12885 static warningLineNumbersString: string; 12886 static reportDiagnostics: boolean; 12887 static problemsInfos: ProblemInfo[]; 12888 static filteredDiagnosticMessages: DiagnosticMessageChain[]; 12889 static initGlobals(): void; 12890 static initStatic(): void; 12891 static tsTypeChecker: TypeChecker; 12892 currentErrorLine: number; 12893 currentWarningLine: number; 12894 staticBlocks: Set<string>; 12895 libraryTypeCallDiagnosticChecker: LibraryTypeCallDiagnosticChecker; 12896 skipArkTSStaticBlocksCheck: boolean; 12897 constructor(sourceFile: SourceFile, tsProgram: Program, tscStrictDiagnostics?: Map<Diagnostic[]> | undefined); 12898 static clearTsTypeChecker(): void; 12899 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 12900 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 12901 visitTSNode(node: Node): void; 12902 private countInterfaceExtendsDifferentPropertyTypes; 12903 private countDeclarationsWithDuplicateName; 12904 private countClassMembersWithDuplicateName; 12905 private functionContainsThis; 12906 private isPrototypePropertyAccess; 12907 private interfaceInheritanceLint; 12908 private lintForInterfaceExtendsDifferentPorpertyTypes; 12909 private handleObjectLiteralExpression; 12910 private handleArrayLiteralExpression; 12911 private handleParameter; 12912 private handleEnumDeclaration; 12913 private handleInterfaceDeclaration; 12914 private handleThrowStatement; 12915 private handleForStatement; 12916 private handleForInStatement; 12917 private handleForOfStatement; 12918 private handleImportDeclaration; 12919 private handlePropertyAccessExpression; 12920 private handlePropertyAssignmentOrDeclaration; 12921 private filterOutDecoratorsDiagnostics; 12922 private checkInRange; 12923 private filterStrictDiagnostics; 12924 private handleFunctionExpression; 12925 private handleArrowFunction; 12926 private handleClassExpression; 12927 private handleFunctionDeclaration; 12928 private handleMissingReturnType; 12929 private hasLimitedTypeInferenceFromReturnExpr; 12930 private handlePrefixUnaryExpression; 12931 private handleBinaryExpression; 12932 private handleVariableDeclarationList; 12933 private handleVariableDeclaration; 12934 private handleEsObjectDelaration; 12935 private handleEsObjectAssignment; 12936 private handleCatchClause; 12937 private handleClassDeclaration; 12938 private handleModuleDeclaration; 12939 private handleTypeAliasDeclaration; 12940 private handleImportClause; 12941 private handleImportSpecifier; 12942 private handleNamespaceImport; 12943 private handleTypeAssertionExpression; 12944 private handleMethodDeclaration; 12945 private handleIdentifier; 12946 private isAllowedClassValueContext; 12947 private handleRestrictedValues; 12948 private identiferUseInValueContext; 12949 private isEnumPropAccess; 12950 private handleElementAccessExpression; 12951 private handleEnumMember; 12952 private handleExportAssignment; 12953 private handleCallExpression; 12954 private handleImportCall; 12955 private handleRequireCall; 12956 private handleGenericCallWithNoTypeArgs; 12957 private static listApplyBindCallApis; 12958 private handleFunctionApplyBindPropCall; 12959 private handleStructIdentAndUndefinedInArgs; 12960 private static LimitedApis; 12961 private handleStdlibAPICall; 12962 private findNonFilteringRangesFunctionCalls; 12963 private handleLibraryTypeCall; 12964 private handleNewExpression; 12965 private handleAsExpression; 12966 private handleTypeReference; 12967 private handleMetaProperty; 12968 private handleStructDeclaration; 12969 private handleSpreadOp; 12970 private handleConstructSignature; 12971 private handleComments; 12972 private handleExpressionWithTypeArguments; 12973 private handleComputedPropertyName; 12974 private checkErrorSuppressingAnnotation; 12975 private handleDecorators; 12976 private handleGetAccessor; 12977 private handleSetAccessor; 12978 private handleDeclarationInferredType; 12979 private handleDefiniteAssignmentAssertion; 12980 private validatedTypesSet; 12981 private checkAnyOrUnknownChildNode; 12982 private handleInferredObjectreference; 12983 private validateDeclInferredType; 12984 private handleClassStaticBlockDeclaration; 12985 lint(): void; 12986 } 12987 } 12988} 12989declare namespace ts { 12990 namespace ArkTSLinter_1_0 { 12991 class TSCCompiledProgram { 12992 private diagnosticsExtractor; 12993 constructor(program: BuilderProgram); 12994 getProgram(): Program; 12995 getBuilderProgram(): BuilderProgram; 12996 getStrictDiagnostics(fileName: string): Diagnostic[]; 12997 doAllGetDiagnostics(): void; 12998 } 12999 } 13000} 13001declare namespace ts { 13002 namespace ArkTSLinter_1_0 { 13003 function translateDiag(srcFile: SourceFile, problemInfo: ProblemInfo): Diagnostic; 13004 function runArkTSLinter(tsBuilderProgram: BuilderProgram, srcFile?: SourceFile, buildInfoWriteFile?: WriteFileCallback, arkTSVersion?: string): Diagnostic[]; 13005 } 13006} 13007declare namespace ts { 13008 namespace ArkTSLinter_1_1 { 13009 namespace Common { 13010 interface AutofixInfo { 13011 problemID: string; 13012 start: number; 13013 end: number; 13014 } 13015 interface CommandLineOptions { 13016 strictMode?: boolean; 13017 ideMode?: boolean; 13018 logTscErrors?: boolean; 13019 warningsAsErrors: boolean; 13020 parsedConfigFile?: ParsedCommandLine; 13021 inputFiles: string[]; 13022 autofixInfo?: AutofixInfo[]; 13023 } 13024 interface LintOptions { 13025 cmdOptions: CommandLineOptions; 13026 tsProgram?: Program; 13027 [key: string]: any; 13028 } 13029 enum ProblemSeverity { 13030 WARNING = 1, 13031 ERROR = 2 13032 } 13033 } 13034 } 13035} 13036declare namespace ts { 13037 namespace ArkTSLinter_1_1 { 13038 const cookBookMsg: string[]; 13039 const cookBookTag: string[]; 13040 } 13041} 13042declare namespace ts { 13043 namespace ArkTSLinter_1_1 { 13044 namespace DiagnosticCheckerNamespace { 13045 interface DiagnosticChecker { 13046 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 13047 } 13048 } 13049 } 13050} 13051declare namespace ts { 13052 namespace ArkTSLinter_1_1 { 13053 import DiagnosticChecker = DiagnosticCheckerNamespace.DiagnosticChecker; 13054 namespace LibraryTypeCallDiagnosticCheckerNamespace { 13055 const TYPE_0_IS_NOT_ASSIGNABLE_TO_TYPE_1_ERROR_CODE = 2322; 13056 const TYPE_UNKNOWN_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 13057 const TYPE_NULL_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 13058 const TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 13059 const ARGUMENT_OF_TYPE_0_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_ERROR_CODE = 2345; 13060 const ARGUMENT_OF_TYPE_NULL_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 13061 const ARGUMENT_OF_TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 13062 const NO_OVERLOAD_MATCHES_THIS_CALL_ERROR_CODE = 2769; 13063 const TYPE = "Type"; 13064 const IS_NOT_ASSIGNABLE_TO_TYPE = "is not assignable to type"; 13065 const ARGUMENT_OF_TYPE = "Argument of type"; 13066 const IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE = "is not assignable to parameter of type"; 13067 enum ErrorType { 13068 NO_ERROR = 0, 13069 UNKNOW = 1, 13070 NULL = 2, 13071 UNDEFINED = 3 13072 } 13073 class LibraryTypeCallDiagnosticChecker implements DiagnosticChecker { 13074 inLibCall: boolean; 13075 diagnosticMessages: Array<ts.DiagnosticMessageChain> | undefined; 13076 filteredDiagnosticMessages: DiagnosticMessageChain[]; 13077 constructor(filteredDiagnosticMessages: DiagnosticMessageChain[]); 13078 configure(inLibCall: boolean, diagnosticMessages: Array<ts.DiagnosticMessageChain>): void; 13079 checkMessageText(msg: string): boolean; 13080 static checkMessageChain(chain: ts.DiagnosticMessageChain, inLibCall: boolean): ErrorType; 13081 checkFilteredDiagnosticMessages(msgText: ts.DiagnosticMessageChain | string): boolean; 13082 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 13083 static rebuildTscDiagnostics(tscStrictDiagnostics: Map<Diagnostic[]>): void; 13084 static collectDiagnosticMessage(diagnosticMessageChain: DiagnosticMessageChain, textSet: Set<string>): void; 13085 } 13086 } 13087 } 13088} 13089declare namespace ts { 13090 namespace ArkTSLinter_1_1 { 13091 namespace Problems { 13092 import ProblemSeverity = Common.ProblemSeverity; 13093 enum FaultID { 13094 AnyType = 0, 13095 SymbolType = 1, 13096 ObjectLiteralNoContextType = 2, 13097 ArrayLiteralNoContextType = 3, 13098 ComputedPropertyName = 4, 13099 LiteralAsPropertyName = 5, 13100 TypeQuery = 6, 13101 IsOperator = 7, 13102 DestructuringParameter = 8, 13103 YieldExpression = 9, 13104 InterfaceMerging = 10, 13105 EnumMerging = 11, 13106 InterfaceExtendsClass = 12, 13107 IndexMember = 13, 13108 WithStatement = 14, 13109 ThrowStatement = 15, 13110 IndexedAccessType = 16, 13111 UnknownType = 17, 13112 ForInStatement = 18, 13113 InOperator = 19, 13114 FunctionExpression = 20, 13115 IntersectionType = 21, 13116 ObjectTypeLiteral = 22, 13117 CommaOperator = 23, 13118 LimitedReturnTypeInference = 24, 13119 ClassExpression = 25, 13120 DestructuringAssignment = 26, 13121 DestructuringDeclaration = 27, 13122 VarDeclaration = 28, 13123 CatchWithUnsupportedType = 29, 13124 DeleteOperator = 30, 13125 DeclWithDuplicateName = 31, 13126 UnaryArithmNotNumber = 32, 13127 ConstructorType = 33, 13128 ConstructorIface = 34, 13129 ConstructorFuncs = 35, 13130 CallSignature = 36, 13131 TypeAssertion = 37, 13132 PrivateIdentifier = 38, 13133 LocalFunction = 39, 13134 ConditionalType = 40, 13135 MappedType = 41, 13136 NamespaceAsObject = 42, 13137 ClassAsObject = 43, 13138 NonDeclarationInNamespace = 44, 13139 GeneratorFunction = 45, 13140 FunctionContainsThis = 46, 13141 PropertyAccessByIndex = 47, 13142 JsxElement = 48, 13143 EnumMemberNonConstInit = 49, 13144 ImplementsClass = 50, 13145 MethodReassignment = 51, 13146 MultipleStaticBlocks = 52, 13147 ThisType = 53, 13148 IntefaceExtendDifProps = 54, 13149 StructuralIdentity = 55, 13150 ExportAssignment = 56, 13151 ImportAssignment = 57, 13152 GenericCallNoTypeArgs = 58, 13153 ParameterProperties = 59, 13154 InstanceofUnsupported = 60, 13155 ShorthandAmbientModuleDecl = 61, 13156 WildcardsInModuleName = 62, 13157 UMDModuleDefinition = 63, 13158 NewTarget = 64, 13159 DefiniteAssignment = 65, 13160 Prototype = 66, 13161 GlobalThis = 67, 13162 UtilityType = 68, 13163 PropertyDeclOnFunction = 69, 13164 FunctionApplyCall = 70, 13165 FunctionBind = 71, 13166 ConstAssertion = 72, 13167 ImportAssertion = 73, 13168 SpreadOperator = 74, 13169 LimitedStdLibApi = 75, 13170 ErrorSuppression = 76, 13171 StrictDiagnostic = 77, 13172 ImportAfterStatement = 78, 13173 EsObjectType = 79, 13174 SendableClassInheritance = 80, 13175 SendablePropType = 81, 13176 SendableDefiniteAssignment = 82, 13177 SendableGenericTypes = 83, 13178 SendableCapturedVars = 84, 13179 SendableClassDecorator = 85, 13180 SendableObjectInitialization = 86, 13181 SendableComputedPropName = 87, 13182 SendableAsExpr = 88, 13183 SharedNoSideEffectImport = 89, 13184 SharedModuleExports = 90, 13185 SharedModuleNoWildcardExport = 91, 13186 NoTsImportEts = 92, 13187 SendableTypeInheritance = 93, 13188 SendableTypeExported = 94, 13189 NoTsReExportEts = 95, 13190 NoNamespaceImportEtsToTs = 96, 13191 NoSideEffectImportEtsToTs = 97, 13192 SendableExplicitFieldType = 98, 13193 SendableFunctionImportedVariables = 99, 13194 SendableFunctionDecorator = 100, 13195 SendableTypeAliasDecorator = 101, 13196 SendableTypeAliasDeclaration = 102, 13197 SendableFunctionAssignment = 103, 13198 SendableFunctionOverloadDecorator = 104, 13199 SendableFunctionProperty = 105, 13200 SendableFunctionAsExpr = 106, 13201 SendableDecoratorLimited = 107, 13202 SendableClosureExport = 108, 13203 SharedModuleExportsWarning = 109, 13204 SendableBetaCompatible = 110, 13205 SendablePropTypeWarning = 111, 13206 LAST_ID = 112 13207 } 13208 class FaultAttributes { 13209 cookBookRef: number; 13210 migratable: boolean; 13211 severity: ProblemSeverity; 13212 constructor(cookBookRef: number, migratable?: boolean, severity?: ProblemSeverity); 13213 } 13214 const faultsAttrs: FaultAttributes[]; 13215 } 13216 } 13217} 13218declare namespace ts { 13219 namespace ArkTSLinter_1_1 { 13220 import AutofixInfo = Common.AutofixInfo; 13221 namespace Utils { 13222 const PROPERTY_HAS_NO_INITIALIZER_ERROR_CODE = 2564; 13223 const NON_INITIALIZABLE_PROPERTY_DECORATORS: string[]; 13224 const NON_INITIALIZABLE_PROPERTY_CLASS_DECORATORS: string[]; 13225 const LIMITED_STANDARD_UTILITY_TYPES: string[]; 13226 const ALLOWED_STD_SYMBOL_API: string[]; 13227 const ARKTS_IGNORE_DIRS: string[]; 13228 const ARKTS_IGNORE_FILES: string[]; 13229 const SENDABLE_DECORATOR = "Sendable"; 13230 const SENDABLE_INTERFACE = "ISendable"; 13231 const SENDABLE_DECORATOR_NODES: SyntaxKind[]; 13232 const SENDABLE_CLOSURE_DECLS: SyntaxKind[]; 13233 const ARKTS_COLLECTIONS_D_ETS = "@arkts.collections.d.ets"; 13234 const COLLECTIONS_NAMESPACE = "collections"; 13235 const ARKTS_LANG_D_ETS = "@arkts.lang.d.ets"; 13236 const LANG_NAMESPACE = "lang"; 13237 const ISENDABLE_TYPE = "ISendable"; 13238 const USE_SHARED = "use shared"; 13239 const D_TS = ".d.ts"; 13240 function setTypeChecker(tsTypeChecker: TypeChecker): void; 13241 function clearTypeChecker(): void; 13242 function setTestMode(tsTestMode: boolean): void; 13243 function getStartPos(nodeOrComment: Node | CommentRange): number; 13244 function getEndPos(nodeOrComment: Node | CommentRange): number; 13245 function getHighlightRange(nodeOrComment: Node | CommentRange, faultId: number): [number, number]; 13246 function getVarDeclarationHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13247 function getCatchWithUnsupportedTypeHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13248 function getForInStatementHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13249 function getWithStatementHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13250 function getDeleteOperatorHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13251 function getTypeQueryHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13252 function getInstanceofUnsupportedHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13253 function getConstAssertionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13254 function getLimitedReturnTypeInferenceHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13255 function getLocalFunctionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13256 function getFunctionApplyCallHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13257 function getDeclWithDuplicateNameHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13258 function getObjectLiteralNoContextTypeHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13259 function getClassExpressionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13260 function getMultipleStaticBlocksHighlightRange(nodeOrComment: ts.Node | ts.CommentRange): [number, number] | undefined; 13261 function getSendableDefiniteAssignmentHighlightRange(nodeOrComment: ts.Node | ts.CommentRange): [number, number] | undefined; 13262 function getKeywordHighlightRange(nodeOrComment: Node | CommentRange, keyword: string): [number, number]; 13263 function isAssignmentOperator(tsBinOp: BinaryOperatorToken): boolean; 13264 function isType(tsType: TypeNode | undefined, checkType: string): boolean; 13265 function entityNameToString(name: EntityName): string; 13266 function isNumberLikeType(tsType: Type): boolean; 13267 function isBooleanLikeType(tsType: Type): boolean; 13268 function isStringLikeType(tsType: Type): boolean; 13269 function isStringType(tsType: ts.Type): boolean; 13270 function isPrimitiveEnumMemberType(type: Type, primitiveType: TypeFlags): boolean; 13271 function unwrapParenthesizedType(tsType: TypeNode): TypeNode; 13272 function findParentIf(asExpr: AsExpression): IfStatement | null; 13273 function isDestructuringAssignmentLHS(tsExpr: ArrayLiteralExpression | ObjectLiteralExpression): boolean; 13274 function isEnumType(tsType: ts.Type): boolean; 13275 function isEnum(tsSymbol: ts.Symbol): boolean; 13276 function isEnumMemberType(tsType: Type): boolean; 13277 function isObjectLiteralType(tsType: Type): boolean; 13278 function hasModifier(tsModifiers: readonly Modifier[] | undefined, tsModifierKind: number): boolean; 13279 function unwrapParenthesized(tsExpr: Expression): Expression; 13280 function followIfAliased(sym: Symbol): Symbol; 13281 function trueSymbolAtLocation(node: Node): Symbol | undefined; 13282 function clearTrueSymbolAtLocationCache(): void; 13283 function isTypeDeclSyntaxKind(kind: SyntaxKind): boolean; 13284 function symbolHasDuplicateName(symbol: Symbol, tsDeclKind: SyntaxKind): boolean; 13285 function isReferenceType(tsType: Type): boolean; 13286 function isPrimitiveType(type: Type): boolean; 13287 function isPrimitiveLiteralType(type: ts.Type): boolean; 13288 function isPurePrimitiveLiteralType(type: ts.Type): boolean; 13289 function isTypeSymbol(symbol: Symbol | undefined): boolean; 13290 function isGenericArrayType(tsType: Type): tsType is TypeReference; 13291 function isReadonlyArrayType(tsType: Type): boolean; 13292 function isTypedArray(tsType: ts.Type): boolean; 13293 function isArray(tsType: ts.Type): boolean; 13294 function isTuple(tsType: ts.Type): boolean; 13295 function isOrDerivedFrom(tsType: ts.Type, checkType: CheckType, checkedBaseTypes?: Set<ts.Type>): boolean; 13296 function isTypeReference(tsType: Type): tsType is TypeReference; 13297 function isNullType(tsTypeNode: TypeNode): boolean; 13298 function isThisOrSuperExpr(tsExpr: Expression): boolean; 13299 function isPrototypeSymbol(symbol: Symbol | undefined): boolean; 13300 function isFunctionSymbol(symbol: Symbol | undefined): boolean; 13301 function isInterfaceType(tsType: Type | undefined): boolean; 13302 function isAnyType(tsType: Type): tsType is TypeReference; 13303 function isUnknownType(tsType: Type): boolean; 13304 function isUnsupportedType(tsType: Type): boolean; 13305 function isUnsupportedUnionType(tsType: Type): boolean; 13306 function isFunctionOrMethod(tsSymbol: Symbol | undefined): boolean; 13307 function isMethodAssignment(tsSymbol: Symbol | undefined): boolean; 13308 function getDeclaration(tsSymbol: ts.Symbol | undefined): ts.Declaration | undefined; 13309 function isValidEnumMemberInit(tsExpr: Expression): boolean; 13310 function isCompileTimeExpression(tsExpr: Expression): boolean; 13311 function isConst(tsNode: Node): boolean; 13312 function isNumberConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 13313 function isIntegerConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 13314 function isStringConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression): boolean; 13315 function relatedByInheritanceOrIdentical(typeA: Type, typeB: Type): boolean; 13316 function reduceReference(t: ts.Type): ts.Type; 13317 function needToDeduceStructuralIdentity(lhsType: Type, rhsType: Type, rhsExpr: Expression, isStrict?: boolean): boolean; 13318 function needStrictMatchType(lhsType: ts.Type, rhsType: ts.Type): boolean; 13319 function hasPredecessor(node: Node, predicate: (node: Node) => boolean): boolean; 13320 function processParentTypes(parentTypes: NodeArray<ExpressionWithTypeArguments>, typeB: Type, processInterfaces: boolean): boolean; 13321 function isObject(tsType: Type): boolean; 13322 function logTscDiagnostic(diagnostics: readonly Diagnostic[], log: (message: any, ...args: any[]) => void): void; 13323 function encodeProblemInfo(problem: ProblemInfo): string; 13324 function decodeAutofixInfo(info: string): AutofixInfo; 13325 function isCallToFunctionWithOmittedReturnType(tsExpr: Expression): boolean; 13326 function validateObjectLiteralType(type: Type | undefined): boolean; 13327 function isStructDeclarationKind(kind: SyntaxKind): boolean; 13328 function isStructDeclaration(node: Node): boolean; 13329 function isStructObjectInitializer(objectLiteral: ObjectLiteralExpression): boolean; 13330 function hasMethods(type: Type): boolean; 13331 function checkTypeSet(typeSet: ts.Type, predicate: CheckType): boolean; 13332 function getNonNullableType(t: ts.Type): ts.Type; 13333 function isObjectLiteralAssignable(lhsType: ts.Type | undefined, rhsExpr: ts.ObjectLiteralExpression): boolean; 13334 function isLiteralType(type: Type): boolean; 13335 function validateFields(objectType: Type, objectLiteral: ObjectLiteralExpression): boolean; 13336 function isSupportedType(typeNode: TypeNode): boolean; 13337 function isStruct(symbol: Symbol): boolean; 13338 type CheckType = ((t: Type) => boolean); 13339 const ES_OBJECT = "ESObject"; 13340 const LIMITED_STD_GLOBAL_FUNC: string[]; 13341 const LIMITED_STD_OBJECT_API: string[]; 13342 const LIMITED_STD_REFLECT_API: string[]; 13343 const LIMITED_STD_PROXYHANDLER_API: string[]; 13344 const FUNCTION_HAS_NO_RETURN_ERROR_CODE = 2366; 13345 const NON_RETURN_FUNCTION_DECORATORS: string[]; 13346 const STANDARD_LIBRARIES: string[]; 13347 const TYPED_ARRAYS: string[]; 13348 function getParentSymbolName(symbol: Symbol): string | undefined; 13349 function isGlobalSymbol(symbol: Symbol): boolean; 13350 function isSymbolAPI(symbol: Symbol): boolean; 13351 function isStdSymbol(symbol: ts.Symbol): boolean; 13352 function isSymbolIterator(symbol: ts.Symbol): boolean; 13353 function isSymbolIteratorExpression(expr: ts.Expression): boolean; 13354 function isDefaultImport(importSpec: ImportSpecifier): boolean; 13355 function hasAccessModifier(decl: Declaration): boolean; 13356 function getModifier(modifiers: readonly Modifier[] | undefined, modifierKind: SyntaxKind): Modifier | undefined; 13357 function getAccessModifier(modifiers: readonly Modifier[] | undefined): Modifier | undefined; 13358 function isStdRecordType(type: Type): boolean; 13359 function isStdMapType(type: Type): boolean; 13360 function isStdErrorType(type: ts.Type): boolean; 13361 function isStdPartialType(type: Type): boolean; 13362 function isStdRequiredType(type: Type): boolean; 13363 function isStdReadonlyType(type: Type): boolean; 13364 function isLibraryType(type: Type): boolean; 13365 function hasLibraryType(node: Node): boolean; 13366 function isLibrarySymbol(sym: Symbol | undefined): boolean; 13367 function srcFilePathContainsDirectory(srcFile: SourceFile, dir: string): boolean; 13368 function pathContainsDirectory(targetPath: string, dir: string): boolean; 13369 function getScriptKind(srcFile: SourceFile): ScriptKind; 13370 function isStdLibraryType(type: Type): boolean; 13371 function isStdLibrarySymbol(sym: Symbol | undefined): boolean; 13372 function isIntrinsicObjectType(type: Type): boolean; 13373 function isDynamicType(type: Type | undefined): boolean | undefined; 13374 function isObjectType(type: ts.Type): type is ts.ObjectType; 13375 function isAnonymous(type: ts.Type): boolean; 13376 function isDynamicLiteralInitializer(expr: Expression): boolean; 13377 function isEsObjectType(typeNode: ts.TypeNode | undefined): boolean; 13378 function isInsideBlock(node: ts.Node): boolean; 13379 function isEsObjectPossiblyAllowed(typeRef: ts.TypeReferenceNode): boolean; 13380 function isValueAssignableToESObject(node: ts.Node): boolean; 13381 function getVariableDeclarationTypeNode(node: Node): TypeNode | undefined; 13382 function getSymbolDeclarationTypeNode(sym: ts.Symbol): ts.TypeNode | undefined; 13383 function hasEsObjectType(node: Node): boolean; 13384 function symbolHasEsObjectType(sym: ts.Symbol): boolean; 13385 function isEsObjectSymbol(sym: Symbol): boolean; 13386 function isAnonymousType(type: Type): boolean; 13387 function getSymbolOfCallExpression(callExpr: CallExpression): Symbol | undefined; 13388 function typeIsRecursive(topType: Type, type?: Type | undefined): boolean; 13389 function getTypeOrTypeConstraintAtLocation(expr: ts.Expression): ts.Type; 13390 function isStdBigIntType(type: ts.Type): boolean; 13391 function isStdNumberType(type: ts.Type): boolean; 13392 function isStdBooleanType(type: ts.Type): boolean; 13393 function isEnumStringLiteral(expr: ts.Expression): boolean; 13394 function isValidComputedPropertyName(computedProperty: ComputedPropertyName, isRecordObjectInitializer?: boolean): boolean; 13395 function isAllowedIndexSignature(node: ts.IndexSignatureDeclaration): boolean; 13396 function isArkTSCollectionsArrayLikeType(type: ts.Type): boolean; 13397 function isArkTSCollectionsClassOrInterfaceDeclaration(decl: ts.Node): boolean; 13398 function getDecoratorName(decorator: ts.Decorator): string; 13399 function unwrapParenthesizedTypeNode(typeNode: ts.TypeNode): ts.TypeNode; 13400 function isSendableTypeNode(typeNode: ts.TypeNode, isShared?: boolean): boolean; 13401 function isSendableType(type: ts.Type): boolean; 13402 function isShareableType(tsType: ts.Type): boolean; 13403 function isSendableClassOrInterface(type: ts.Type): boolean; 13404 function typeContainsSendableClassOrInterface(type: ts.Type): boolean; 13405 function typeContainsNonSendableClassOrInterface(type: ts.Type): boolean; 13406 function isConstEnum(sym: ts.Symbol | undefined): boolean; 13407 function isSendableUnionType(type: ts.UnionType): boolean; 13408 function hasSendableDecorator(decl: ts.ClassDeclaration | ts.FunctionDeclaration | ts.TypeAliasDeclaration): boolean; 13409 function getNonSendableDecorators(decl: ts.ClassDeclaration | ts.FunctionDeclaration | ts.TypeAliasDeclaration): ts.Decorator[] | undefined; 13410 function getSendableDecorator(decl: ts.ClassDeclaration | ts.FunctionDeclaration | ts.TypeAliasDeclaration): ts.Decorator | undefined; 13411 function getDecoratorsIfInSendableClass(declaration: ts.HasDecorators): readonly ts.Decorator[] | undefined; 13412 function isISendableInterface(type: ts.Type): boolean; 13413 function isSharedModule(sourceFile: ts.SourceFile): boolean; 13414 function getDeclarationNode(node: ts.Node): ts.Declaration | undefined; 13415 function isShareableEntity(node: ts.Node): boolean; 13416 function isSendableClassOrInterfaceEntity(node: ts.Node): boolean; 13417 function isInImportWhiteList(resolvedModule: ResolvedModuleFull): boolean; 13418 function hasSendableDecoratorFunctionOverload(decl: ts.FunctionDeclaration): boolean; 13419 function isSendableFunction(type: ts.Type): boolean; 13420 function isSendableTypeAlias(type: ts.Type): boolean; 13421 function hasSendableTypeAlias(type: ts.Type): boolean; 13422 function isNonSendableFunctionTypeAlias(type: ts.Type): boolean; 13423 function isWrongSendableFunctionAssignment(lhsType: ts.Type, rhsType: ts.Type): boolean; 13424 function searchFileExportDecl(sourceFile: ts.SourceFile, targetDecls?: ts.SyntaxKind[]): Set<ts.Node>; 13425 function normalizePath(path: string): string; 13426 function clearUtilsGlobalvariables(): void; 13427 } 13428 } 13429} 13430declare namespace ts { 13431 namespace ArkTSLinter_1_1 { 13432 namespace Autofixer { 13433 import AutofixInfo = Common.AutofixInfo; 13434 import FaultID = Problems.FaultID; 13435 const AUTOFIX_ALL: AutofixInfo; 13436 const autofixInfo: AutofixInfo[]; 13437 function shouldAutofix(node: Node, faultID: FaultID): boolean; 13438 interface Autofix { 13439 replacementText: string; 13440 start: number; 13441 end: number; 13442 } 13443 function fixLiteralAsPropertyName(node: Node): Autofix[] | undefined; 13444 function fixPropertyAccessByIndex(node: Node): Autofix[] | undefined; 13445 function fixFunctionExpression(funcExpr: FunctionExpression, params?: NodeArray<ParameterDeclaration>, retType?: TypeNode | undefined): Autofix; 13446 function fixReturnType(funcLikeDecl: FunctionLikeDeclaration, typeNode: TypeNode): Autofix; 13447 function fixCtorParameterProperties(ctorDecl: ConstructorDeclaration, paramTypes: TypeNode[]): Autofix[] | undefined; 13448 } 13449 } 13450} 13451declare namespace ts { 13452 namespace ArkTSLinter_1_1 { 13453 import FaultID = Problems.FaultID; 13454 class LinterConfig { 13455 static nodeDesc: string[]; 13456 static tsSyntaxKindNames: string[]; 13457 static initStatic(): void; 13458 static terminalTokens: Set<SyntaxKind>; 13459 static incrementOnlyTokens: ESMap<SyntaxKind, FaultID>; 13460 } 13461 } 13462} 13463declare namespace ts { 13464 namespace ArkTSLinter_1_1 { 13465 import Autofix = Autofixer.Autofix; 13466 import LibraryTypeCallDiagnosticChecker = LibraryTypeCallDiagnosticCheckerNamespace.LibraryTypeCallDiagnosticChecker; 13467 interface ProblemInfo { 13468 line: number; 13469 column: number; 13470 start: number; 13471 end: number; 13472 type: string; 13473 severity: number; 13474 problem: string; 13475 suggest: string; 13476 rule: string; 13477 ruleTag: number; 13478 autofixable: boolean; 13479 autofix?: Autofix[]; 13480 } 13481 class TypeScriptLinter { 13482 private sourceFile; 13483 private tscStrictDiagnostics?; 13484 static ideMode: boolean; 13485 static strictMode: boolean; 13486 static logTscErrors: boolean; 13487 static warningsAsErrors: boolean; 13488 static lintEtsOnly: boolean; 13489 static totalVisitedNodes: number; 13490 static nodeCounters: number[]; 13491 static lineCounters: number[]; 13492 static totalErrorLines: number; 13493 static errorLineNumbersString: string; 13494 static totalWarningLines: number; 13495 static warningLineNumbersString: string; 13496 static reportDiagnostics: boolean; 13497 static problemsInfos: ProblemInfo[]; 13498 static filteredDiagnosticMessages: DiagnosticMessageChain[]; 13499 static sharedModulesCache: ESMap<string, boolean>; 13500 static strictDiagnosticCache: Set<Diagnostic>; 13501 static unknowDiagnosticCache: Set<Diagnostic>; 13502 static initGlobals(): void; 13503 static initStatic(): void; 13504 static tsTypeChecker: TypeChecker; 13505 currentErrorLine: number; 13506 currentWarningLine: number; 13507 staticBlocks: Set<string>; 13508 libraryTypeCallDiagnosticChecker: LibraryTypeCallDiagnosticChecker; 13509 skipArkTSStaticBlocksCheck: boolean; 13510 private fileExportSendableDeclCaches?; 13511 private compatibleSdkVersionStage; 13512 private compatibleSdkVersion; 13513 constructor(sourceFile: SourceFile, tsProgram: Program, tscStrictDiagnostics?: Map<Diagnostic[]> | undefined); 13514 static clearTsTypeChecker(): void; 13515 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 13516 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 13517 private forEachNodeInSubtree; 13518 private visitSourceFile; 13519 private countInterfaceExtendsDifferentPropertyTypes; 13520 private countDeclarationsWithDuplicateName; 13521 private countClassMembersWithDuplicateName; 13522 private static scopeContainsThis; 13523 private isPrototypePropertyAccess; 13524 private interfaceInheritanceLint; 13525 private lintForInterfaceExtendsDifferentPorpertyTypes; 13526 private handleObjectLiteralExpression; 13527 private handleArrayLiteralExpression; 13528 private handleParameter; 13529 private handleEnumDeclaration; 13530 private handleInterfaceDeclaration; 13531 private handleThrowStatement; 13532 private handleForStatement; 13533 private handleForInStatement; 13534 private handleForOfStatement; 13535 private handleImportDeclaration; 13536 private handleSharedModuleNoSideEffectImport; 13537 private static inSharedModule; 13538 private handlePropertyAccessExpression; 13539 private handlePropertyDeclaration; 13540 private handleSendableClassProperty; 13541 private checkTypeAliasInSendableScope; 13542 private isNoneSendableTypeAlias; 13543 private handlePropertyAssignment; 13544 private handlePropertySignature; 13545 private handleSendableInterfaceProperty; 13546 private filterOutDecoratorsDiagnostics; 13547 private checkInRange; 13548 private filterStrictDiagnostics; 13549 private static isClassLikeOrIface; 13550 private handleFunctionExpression; 13551 private handleArrowFunction; 13552 private handleFunctionDeclaration; 13553 private handleMissingReturnType; 13554 private hasLimitedTypeInferenceFromReturnExpr; 13555 private isValidTypeForUnaryArithmeticOperator; 13556 private handlePrefixUnaryExpression; 13557 private handleBinaryExpression; 13558 private handleVariableDeclarationList; 13559 private handleVariableDeclaration; 13560 private handleEsObjectDelaration; 13561 private handleEsObjectAssignment; 13562 private handleCatchClause; 13563 private handleClassDeclaration; 13564 private scanCapturedVarsInSendableScope; 13565 private checkLocalDecl; 13566 private checkLocalDeclWithSendableClosure; 13567 private checkIsTopClosure; 13568 private checkNamespaceImportVar; 13569 isFileExportSendableDecl(decl: ts.Declaration): boolean; 13570 private checkClassDeclarationHeritageClause; 13571 private isValidSendableClassExtends; 13572 private checkSendableTypeParameter; 13573 private processClassStaticBlocks; 13574 private handleModuleDeclaration; 13575 private handleTypeAliasDeclaration; 13576 private handleImportClause; 13577 private handleImportSpecifier; 13578 private handleNamespaceImport; 13579 private handleTypeAssertionExpression; 13580 private handleMethodDeclaration; 13581 private handleMethodSignature; 13582 private handleIdentifier; 13583 private isAllowedClassValueContext; 13584 private handleRestrictedValues; 13585 private identiferUseInValueContext; 13586 private isEnumPropAccess; 13587 private isElementAcessAllowed; 13588 private handleElementAccessExpression; 13589 private handleEnumMember; 13590 private handleExportAssignment; 13591 private handleCallExpression; 13592 private handleEtsComponentExpression; 13593 private handleImportCall; 13594 private handleRequireCall; 13595 private handleGenericCallWithNoTypeArgs; 13596 private static readonly listFunctionApplyCallApis; 13597 private static readonly listFunctionBindApis; 13598 private handleFunctionApplyBindPropCall; 13599 private handleStructIdentAndUndefinedInArgs; 13600 private static LimitedApis; 13601 private handleStdlibAPICall; 13602 private findNonFilteringRangesFunctionCalls; 13603 private handleLibraryTypeCall; 13604 private handleNewExpression; 13605 private handleSendableGenericTypes; 13606 private handleAsExpression; 13607 private handleTypeReference; 13608 private checkSendableTypeArguments; 13609 private handleMetaProperty; 13610 private handleSpreadOp; 13611 private handleConstructSignature; 13612 private handleExpressionWithTypeArguments; 13613 private handleComputedPropertyName; 13614 private isSendableCompPropName; 13615 private handleGetAccessor; 13616 private handleSetAccessor; 13617 private handleDeclarationInferredType; 13618 private handleDefiniteAssignmentAssertion; 13619 private validatedTypesSet; 13620 private checkAnyOrUnknownChildNode; 13621 private handleInferredObjectreference; 13622 private validateDeclInferredType; 13623 private processNoCheckEntry; 13624 private reportThisKeywordsInScope; 13625 private handleCommentDirectives; 13626 private handleClassStaticBlockDeclaration; 13627 private handleIndexSignature; 13628 lint(): void; 13629 private handleExportKeyword; 13630 private handleExportDeclaration; 13631 private handleReturnStatement; 13632 /** 13633 * 'arkts-no-structural-typing' check was missing in some scenarios, 13634 * in order not to cause incompatibility, 13635 * only need to strictly match the type of filling the check again 13636 */ 13637 private checkAssignmentMatching; 13638 private handleDecorator; 13639 private isSendableDecoratorValid; 13640 } 13641 } 13642} 13643declare namespace ts { 13644 namespace ArkTSLinter_1_1 { 13645 import Autofix = Autofixer.Autofix; 13646 interface KitSymbol { 13647 source: string; 13648 bindings: string; 13649 } 13650 type KitSymbols = Record<string, KitSymbol>; 13651 interface KitInfo { 13652 symbols?: KitSymbols; 13653 } 13654 class InteropTypescriptLinter { 13655 private sourceFile; 13656 private isInSdk; 13657 static strictMode: boolean; 13658 static totalVisitedNodes: number; 13659 static nodeCounters: number[]; 13660 static lineCounters: number[]; 13661 static totalErrorLines: number; 13662 static errorLineNumbersString: string; 13663 static totalWarningLines: number; 13664 static warningLineNumbersString: string; 13665 static reportDiagnostics: boolean; 13666 static problemsInfos: ProblemInfo[]; 13667 static initGlobals(): void; 13668 static initStatic(): void; 13669 static tsTypeChecker: TypeChecker; 13670 static etsLoaderPath?: string; 13671 static kitInfos: Map<KitInfo>; 13672 private KIT; 13673 private D_TS; 13674 private D_ETS; 13675 private ETS; 13676 private SDK_PATH; 13677 currentErrorLine: number; 13678 currentWarningLine: number; 13679 constructor(sourceFile: SourceFile, tsProgram: Program, isInSdk: boolean); 13680 static clearTsTypeChecker(): void; 13681 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 13682 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 13683 private forEachNodeInSubtree; 13684 private visitSourceFile; 13685 private handleImportDeclaration; 13686 private checkSendableClassorISendable; 13687 private checkKitImportClause; 13688 private checkImportClause; 13689 private allowInSdkImportSendable; 13690 private handleClassDeclaration; 13691 private checkClassOrInterfaceDeclarationHeritageClause; 13692 private handleInterfaceDeclaration; 13693 private handleNewExpression; 13694 private handleSendableGenericTypes; 13695 private handleObjectLiteralExpression; 13696 private handleArrayLiteralExpression; 13697 private handleAsExpression; 13698 private handleExportDeclaration; 13699 private handleExportAssignment; 13700 private initKitInfos; 13701 private getKitModuleFileNames; 13702 lint(): void; 13703 } 13704 } 13705} 13706declare namespace ts { 13707 namespace ArkTSLinter_1_1 { 13708 class TSCCompiledProgram { 13709 private diagnosticsExtractor; 13710 constructor(program: BuilderProgram); 13711 getProgram(): Program; 13712 getBuilderProgram(): BuilderProgram; 13713 getStrictDiagnostics(sourceFile: SourceFile): Diagnostic[]; 13714 doAllGetDiagnostics(): void; 13715 } 13716 } 13717} 13718declare namespace ts { 13719 namespace ArkTSLinter_1_1 { 13720 function translateDiag(srcFile: SourceFile, problemInfo: ProblemInfo): Diagnostic; 13721 function runArkTSLinter(tsBuilderProgram: BuilderProgram, srcFile?: SourceFile, buildInfoWriteFile?: WriteFileCallback, arkTSVersion?: string): Diagnostic[]; 13722 } 13723} 13724declare namespace ts { 13725 enum TimePhase { 13726 START = "start", 13727 GET_PROGRAM = "getProgram(not ArkTSLinter)", 13728 UPDATE_ERROR_FILE = "updateErrorFile", 13729 INIT = "init", 13730 STRICT_PROGRAM_GET_SEMANTIC_DIAGNOSTICS = "strictProgramGetSemanticDiagnostics", 13731 NON_STRICT_PROGRAM_GET_SEMANTIC_DIAGNOSTICS = "nonStrictProgramGetSemanticDiagnostics", 13732 NON_STRICT_PROGRAM_GET_SYNTACTIC_DIAGNOSTICS = "nonStrictProgramGetSyntacticDiagnostics", 13733 GET_TSC_DIAGNOSTICS = "getTscDiagnostics", 13734 EMIT_BUILD_INFO = "emitBuildInfo", 13735 LINT = "lint" 13736 } 13737 class ArkTSLinterTimePrinter { 13738 private static instance?; 13739 private arkTSTimePrintSwitch; 13740 private timeMap; 13741 private constructor(); 13742 static getInstance(): ArkTSLinterTimePrinter; 13743 static destroyInstance(): void; 13744 setArkTSTimePrintSwitch(arkTSTimePrintSwitch: boolean): void; 13745 appendTime(key: string): void; 13746 private formatMapAsTable; 13747 printTimes(): void; 13748 } 13749} 13750 13751export = ts; 13752export as namespace ts;