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 refreshTypeChecker(): void; 2336 setProgramSourceFiles(file: SourceFile): void; 2337 initProcessingFiles(): void; 2338 processImportedModules(file: SourceFile): void; 2339 getProcessingFiles(): SourceFile[] | undefined; 2340 deleteProgramSourceFiles(fileNames: string[]): void; 2341 } 2342 export type RedirectTargetsMap = ReadonlyESMap<Path, readonly string[]>; 2343 export interface ResolvedProjectReference { 2344 commandLine: ParsedCommandLine; 2345 sourceFile: SourceFile; 2346 references?: readonly (ResolvedProjectReference | undefined)[]; 2347 } 2348 export type CustomTransformerFactory = (context: TransformationContext) => CustomTransformer; 2349 export interface CustomTransformer { 2350 transformSourceFile(node: SourceFile): SourceFile; 2351 transformBundle(node: Bundle): Bundle; 2352 } 2353 export interface CustomTransformers { 2354 /** Custom transformers to evaluate before built-in .js transformations. */ 2355 before?: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]; 2356 /** Custom transformers to evaluate after built-in .js transformations. */ 2357 after?: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]; 2358 /** Custom transformers to evaluate after built-in .d.ts transformations. */ 2359 afterDeclarations?: (TransformerFactory<Bundle | SourceFile> | CustomTransformerFactory)[]; 2360 } 2361 export interface SourceMapSpan { 2362 /** Line number in the .js file. */ 2363 emittedLine: number; 2364 /** Column number in the .js file. */ 2365 emittedColumn: number; 2366 /** Line number in the .ts file. */ 2367 sourceLine: number; 2368 /** Column number in the .ts file. */ 2369 sourceColumn: number; 2370 /** Optional name (index into names array) associated with this span. */ 2371 nameIndex?: number; 2372 /** .ts file (index into sources array) associated with this span */ 2373 sourceIndex: number; 2374 } 2375 /** Return code used by getEmitOutput function to indicate status of the function */ 2376 export enum ExitStatus { 2377 Success = 0, 2378 DiagnosticsPresent_OutputsSkipped = 1, 2379 DiagnosticsPresent_OutputsGenerated = 2, 2380 InvalidProject_OutputsSkipped = 3, 2381 ProjectReferenceCycle_OutputsSkipped = 4, 2382 /** @deprecated Use ProjectReferenceCycle_OutputsSkipped instead. */ 2383 ProjectReferenceCycle_OutputsSkupped = 4 2384 } 2385 export interface EmitResult { 2386 emitSkipped: boolean; 2387 /** Contains declaration emit diagnostics */ 2388 diagnostics: readonly Diagnostic[]; 2389 emittedFiles?: string[]; 2390 } 2391 export interface TypeChecker { 2392 getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; 2393 getDeclaredTypeOfSymbol(symbol: Symbol): Type; 2394 getPropertiesOfType(type: Type): Symbol[]; 2395 getPropertyOfType(type: Type, propertyName: string): Symbol | undefined; 2396 getPrivateIdentifierPropertyOfType(leftType: Type, name: string, location: Node): Symbol | undefined; 2397 getIndexInfoOfType(type: Type, kind: IndexKind): IndexInfo | undefined; 2398 getIndexInfosOfType(type: Type): readonly IndexInfo[]; 2399 getIndexInfosOfIndexSymbol: (indexSymbol: Symbol) => IndexInfo[]; 2400 getSignaturesOfType(type: Type, kind: SignatureKind): readonly Signature[]; 2401 getIndexTypeOfType(type: Type, kind: IndexKind): Type | undefined; 2402 getBaseTypes(type: InterfaceType): BaseType[]; 2403 getBaseTypeOfLiteralType(type: Type): Type; 2404 getWidenedType(type: Type): Type; 2405 getReturnTypeOfSignature(signature: Signature): Type; 2406 getNullableType(type: Type, flags: TypeFlags): Type; 2407 getNonNullableType(type: Type): Type; 2408 getTypeArguments(type: TypeReference): readonly Type[]; 2409 /** Note that the resulting nodes cannot be checked. */ 2410 typeToTypeNode(type: Type, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): TypeNode | undefined; 2411 /** Note that the resulting nodes cannot be checked. */ 2412 signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): SignatureDeclaration & { 2413 typeArguments?: NodeArray<TypeNode>; 2414 } | undefined; 2415 /** Note that the resulting nodes cannot be checked. */ 2416 indexInfoToIndexSignatureDeclaration(indexInfo: IndexInfo, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): IndexSignatureDeclaration | undefined; 2417 /** Note that the resulting nodes cannot be checked. */ 2418 symbolToEntityName(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): EntityName | undefined; 2419 /** Note that the resulting nodes cannot be checked. */ 2420 symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Expression | undefined; 2421 /** Note that the resulting nodes cannot be checked. */ 2422 symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): NodeArray<TypeParameterDeclaration> | undefined; 2423 /** Note that the resulting nodes cannot be checked. */ 2424 symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): ParameterDeclaration | undefined; 2425 /** Note that the resulting nodes cannot be checked. */ 2426 typeParameterToDeclaration(parameter: TypeParameter, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): TypeParameterDeclaration | undefined; 2427 getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; 2428 getSymbolAtLocation(node: Node): Symbol | undefined; 2429 getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[]; 2430 /** 2431 * The function returns the value (local variable) symbol of an identifier in the short-hand property assignment. 2432 * This is necessary as an identifier in short-hand property assignment can contains two meaning: property name and property value. 2433 */ 2434 getShorthandAssignmentValueSymbol(location: Node | undefined): Symbol | undefined; 2435 getExportSpecifierLocalTargetSymbol(location: ExportSpecifier | Identifier): Symbol | undefined; 2436 /** 2437 * If a symbol is a local symbol with an associated exported symbol, returns the exported symbol. 2438 * Otherwise returns its input. 2439 * For example, at `export type T = number;`: 2440 * - `getSymbolAtLocation` at the location `T` will return the exported symbol for `T`. 2441 * - But the result of `getSymbolsInScope` will contain the *local* symbol for `T`, not the exported symbol. 2442 * - Calling `getExportSymbolOfSymbol` on that local symbol will return the exported symbol. 2443 */ 2444 getExportSymbolOfSymbol(symbol: Symbol): Symbol; 2445 getPropertySymbolOfDestructuringAssignment(location: Identifier): Symbol | undefined; 2446 getTypeOfAssignmentPattern(pattern: AssignmentPattern): Type; 2447 getTypeAtLocation(node: Node): Type; 2448 tryGetTypeAtLocationWithoutCheck(node: Node): Type; 2449 getTypeFromTypeNode(node: TypeNode): Type; 2450 signatureToString(signature: Signature, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): string; 2451 typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; 2452 symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): string; 2453 typePredicateToString(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; 2454 getFullyQualifiedName(symbol: Symbol): string; 2455 getAugmentedPropertiesOfType(type: Type): Symbol[]; 2456 getRootSymbols(symbol: Symbol): readonly Symbol[]; 2457 getSymbolOfExpando(node: Node, allowDeclaration: boolean): Symbol | undefined; 2458 getContextualType(node: Expression): Type | undefined; 2459 /** 2460 * returns unknownSignature in the case of an error. 2461 * returns undefined if the node is not valid. 2462 * @param argumentCount Apparent number of arguments, passed in case of a possibly incomplete call. This should come from an ArgumentListInfo. See `signatureHelp.ts`. 2463 */ 2464 getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; 2465 tryGetResolvedSignatureWithoutCheck(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; 2466 getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature | undefined; 2467 isImplementationOfOverload(node: SignatureDeclaration): boolean | undefined; 2468 isUndefinedSymbol(symbol: Symbol): boolean; 2469 isArgumentsSymbol(symbol: Symbol): boolean; 2470 isUnknownSymbol(symbol: Symbol): boolean; 2471 getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): string | number | undefined; 2472 isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName | ImportTypeNode, propertyName: string): boolean; 2473 /** Follow all aliases to get the original symbol. */ 2474 getAliasedSymbol(symbol: Symbol): Symbol; 2475 /** Follow a *single* alias to get the immediately aliased symbol. */ 2476 getImmediateAliasedSymbol(symbol: Symbol): Symbol | undefined; 2477 getExportsOfModule(moduleSymbol: Symbol): Symbol[]; 2478 getJsxIntrinsicTagNamesAt(location: Node): Symbol[]; 2479 isOptionalParameter(node: ParameterDeclaration): boolean; 2480 getAmbientModules(): Symbol[]; 2481 tryGetMemberInModuleExports(memberName: string, moduleSymbol: Symbol): Symbol | undefined; 2482 getApparentType(type: Type): Type; 2483 getBaseConstraintOfType(type: Type): Type | undefined; 2484 getDefaultFromTypeParameter(type: Type): Type | undefined; 2485 getTypePredicateOfSignature(signature: Signature): TypePredicate | undefined; 2486 /** 2487 * Depending on the operation performed, it may be appropriate to throw away the checker 2488 * if the cancellation token is triggered. Typically, if it is used for error checking 2489 * and the operation is cancelled, then it should be discarded, otherwise it is safe to keep. 2490 */ 2491 runWithCancellationToken<T>(token: CancellationToken, cb: (checker: TypeChecker) => T): T; 2492 getConstEnumRelate?(): ESMap<string, ESMap<string, string>>; 2493 clearConstEnumRelate?(): void; 2494 deleteConstEnumRelate?(path: string): void; 2495 } 2496 export enum NodeBuilderFlags { 2497 None = 0, 2498 NoTruncation = 1, 2499 WriteArrayAsGenericType = 2, 2500 GenerateNamesForShadowedTypeParams = 4, 2501 UseStructuralFallback = 8, 2502 ForbidIndexedAccessSymbolReferences = 16, 2503 WriteTypeArgumentsOfSignature = 32, 2504 UseFullyQualifiedType = 64, 2505 UseOnlyExternalAliasing = 128, 2506 SuppressAnyReturnType = 256, 2507 WriteTypeParametersInQualifiedName = 512, 2508 MultilineObjectLiterals = 1024, 2509 WriteClassExpressionAsTypeLiteral = 2048, 2510 UseTypeOfFunction = 4096, 2511 OmitParameterModifiers = 8192, 2512 UseAliasDefinedOutsideCurrentScope = 16384, 2513 UseSingleQuotesForStringLiteralType = 268435456, 2514 NoTypeReduction = 536870912, 2515 OmitThisParameter = 33554432, 2516 AllowThisInObjectLiteral = 32768, 2517 AllowQualifiedNameInPlaceOfIdentifier = 65536, 2518 /** @deprecated AllowQualifedNameInPlaceOfIdentifier. Use AllowQualifiedNameInPlaceOfIdentifier instead. */ 2519 AllowQualifedNameInPlaceOfIdentifier = 65536, 2520 AllowAnonymousIdentifier = 131072, 2521 AllowEmptyUnionOrIntersection = 262144, 2522 AllowEmptyTuple = 524288, 2523 AllowUniqueESSymbolType = 1048576, 2524 AllowEmptyIndexInfoType = 2097152, 2525 AllowNodeModulesRelativePaths = 67108864, 2526 IgnoreErrors = 70221824, 2527 InObjectTypeLiteral = 4194304, 2528 InTypeAlias = 8388608, 2529 InInitialEntityName = 16777216 2530 } 2531 export enum TypeFormatFlags { 2532 None = 0, 2533 NoTruncation = 1, 2534 WriteArrayAsGenericType = 2, 2535 UseStructuralFallback = 8, 2536 WriteTypeArgumentsOfSignature = 32, 2537 UseFullyQualifiedType = 64, 2538 SuppressAnyReturnType = 256, 2539 MultilineObjectLiterals = 1024, 2540 WriteClassExpressionAsTypeLiteral = 2048, 2541 UseTypeOfFunction = 4096, 2542 OmitParameterModifiers = 8192, 2543 UseAliasDefinedOutsideCurrentScope = 16384, 2544 UseSingleQuotesForStringLiteralType = 268435456, 2545 NoTypeReduction = 536870912, 2546 OmitThisParameter = 33554432, 2547 AllowUniqueESSymbolType = 1048576, 2548 AddUndefined = 131072, 2549 WriteArrowStyleSignature = 262144, 2550 InArrayType = 524288, 2551 InElementType = 2097152, 2552 InFirstTypeArgument = 4194304, 2553 InTypeAlias = 8388608, 2554 /** @deprecated */ WriteOwnNameForAnyLike = 0, 2555 NodeBuilderFlagsMask = 848330091 2556 } 2557 export enum SymbolFormatFlags { 2558 None = 0, 2559 WriteTypeParametersOrArguments = 1, 2560 UseOnlyExternalAliasing = 2, 2561 AllowAnyNodeKind = 4, 2562 UseAliasDefinedOutsideCurrentScope = 8, 2563 } 2564 interface SymbolWriter extends SymbolTracker { 2565 writeKeyword(text: string): void; 2566 writeOperator(text: string): void; 2567 writePunctuation(text: string): void; 2568 writeSpace(text: string): void; 2569 writeStringLiteral(text: string): void; 2570 writeParameter(text: string): void; 2571 writeProperty(text: string): void; 2572 writeSymbol(text: string, symbol: Symbol): void; 2573 writeLine(force?: boolean): void; 2574 increaseIndent(): void; 2575 decreaseIndent(): void; 2576 clear(): void; 2577 } 2578 export enum TypePredicateKind { 2579 This = 0, 2580 Identifier = 1, 2581 AssertsThis = 2, 2582 AssertsIdentifier = 3 2583 } 2584 export interface TypePredicateBase { 2585 kind: TypePredicateKind; 2586 type: Type | undefined; 2587 } 2588 export interface ThisTypePredicate extends TypePredicateBase { 2589 kind: TypePredicateKind.This; 2590 parameterName: undefined; 2591 parameterIndex: undefined; 2592 type: Type; 2593 } 2594 export interface IdentifierTypePredicate extends TypePredicateBase { 2595 kind: TypePredicateKind.Identifier; 2596 parameterName: string; 2597 parameterIndex: number; 2598 type: Type; 2599 } 2600 export interface AssertsThisTypePredicate extends TypePredicateBase { 2601 kind: TypePredicateKind.AssertsThis; 2602 parameterName: undefined; 2603 parameterIndex: undefined; 2604 type: Type | undefined; 2605 } 2606 export interface AssertsIdentifierTypePredicate extends TypePredicateBase { 2607 kind: TypePredicateKind.AssertsIdentifier; 2608 parameterName: string; 2609 parameterIndex: number; 2610 type: Type | undefined; 2611 } 2612 export type TypePredicate = ThisTypePredicate | IdentifierTypePredicate | AssertsThisTypePredicate | AssertsIdentifierTypePredicate; 2613 export enum SymbolFlags { 2614 None = 0, 2615 FunctionScopedVariable = 1, 2616 BlockScopedVariable = 2, 2617 Property = 4, 2618 EnumMember = 8, 2619 Function = 16, 2620 Class = 32, 2621 Interface = 64, 2622 ConstEnum = 128, 2623 RegularEnum = 256, 2624 ValueModule = 512, 2625 NamespaceModule = 1024, 2626 TypeLiteral = 2048, 2627 ObjectLiteral = 4096, 2628 Method = 8192, 2629 Constructor = 16384, 2630 GetAccessor = 32768, 2631 SetAccessor = 65536, 2632 Signature = 131072, 2633 TypeParameter = 262144, 2634 TypeAlias = 524288, 2635 ExportValue = 1048576, 2636 Alias = 2097152, 2637 Prototype = 4194304, 2638 ExportStar = 8388608, 2639 Optional = 16777216, 2640 Transient = 33554432, 2641 Assignment = 67108864, 2642 ModuleExports = 134217728, 2643 Enum = 384, 2644 Variable = 3, 2645 Value = 111551, 2646 Type = 788968, 2647 Namespace = 1920, 2648 Module = 1536, 2649 Accessor = 98304, 2650 FunctionScopedVariableExcludes = 111550, 2651 BlockScopedVariableExcludes = 111551, 2652 ParameterExcludes = 111551, 2653 PropertyExcludes = 0, 2654 EnumMemberExcludes = 900095, 2655 FunctionExcludes = 110991, 2656 ClassExcludes = 899503, 2657 InterfaceExcludes = 788872, 2658 RegularEnumExcludes = 899327, 2659 ConstEnumExcludes = 899967, 2660 ValueModuleExcludes = 110735, 2661 NamespaceModuleExcludes = 0, 2662 MethodExcludes = 103359, 2663 GetAccessorExcludes = 46015, 2664 SetAccessorExcludes = 78783, 2665 AccessorExcludes = 13247, 2666 TypeParameterExcludes = 526824, 2667 TypeAliasExcludes = 788968, 2668 AliasExcludes = 2097152, 2669 ModuleMember = 2623475, 2670 ExportHasLocal = 944, 2671 BlockScoped = 418, 2672 PropertyOrAccessor = 98308, 2673 ClassMember = 106500, 2674 } 2675 export interface Symbol { 2676 flags: SymbolFlags; 2677 escapedName: __String; 2678 declarations?: Declaration[]; 2679 valueDeclaration?: Declaration; 2680 members?: SymbolTable; 2681 exports?: SymbolTable; 2682 globalExports?: SymbolTable; 2683 exportSymbol?: Symbol; 2684 } 2685 export enum InternalSymbolName { 2686 Call = "__call", 2687 Constructor = "__constructor", 2688 New = "__new", 2689 Index = "__index", 2690 ExportStar = "__export", 2691 Global = "__global", 2692 Missing = "__missing", 2693 Type = "__type", 2694 Object = "__object", 2695 JSXAttributes = "__jsxAttributes", 2696 Class = "__class", 2697 Function = "__function", 2698 Computed = "__computed", 2699 Resolving = "__resolving__", 2700 ExportEquals = "export=", 2701 Default = "default", 2702 This = "this" 2703 } 2704 /** 2705 * This represents a string whose leading underscore have been escaped by adding extra leading underscores. 2706 * The shape of this brand is rather unique compared to others we've used. 2707 * Instead of just an intersection of a string and an object, it is that union-ed 2708 * with an intersection of void and an object. This makes it wholly incompatible 2709 * with a normal string (which is good, it cannot be misused on assignment or on usage), 2710 * while still being comparable with a normal string via === (also good) and castable from a string. 2711 */ 2712 export type __String = (string & { 2713 __escapedIdentifier: void; 2714 }) | (void & { 2715 __escapedIdentifier: void; 2716 }) | InternalSymbolName; 2717 /** ReadonlyMap where keys are `__String`s. */ 2718 export interface ReadonlyUnderscoreEscapedMap<T> extends ReadonlyESMap<__String, T> { 2719 } 2720 /** Map where keys are `__String`s. */ 2721 export interface UnderscoreEscapedMap<T> extends ESMap<__String, T>, ReadonlyUnderscoreEscapedMap<T> { 2722 } 2723 /** SymbolTable based on ES6 Map interface. */ 2724 export type SymbolTable = UnderscoreEscapedMap<Symbol>; 2725 export enum TypeFlags { 2726 Any = 1, 2727 Unknown = 2, 2728 String = 4, 2729 Number = 8, 2730 Boolean = 16, 2731 Enum = 32, 2732 BigInt = 64, 2733 StringLiteral = 128, 2734 NumberLiteral = 256, 2735 BooleanLiteral = 512, 2736 EnumLiteral = 1024, 2737 BigIntLiteral = 2048, 2738 ESSymbol = 4096, 2739 UniqueESSymbol = 8192, 2740 Void = 16384, 2741 Undefined = 32768, 2742 Null = 65536, 2743 Never = 131072, 2744 TypeParameter = 262144, 2745 Object = 524288, 2746 Union = 1048576, 2747 Intersection = 2097152, 2748 Index = 4194304, 2749 IndexedAccess = 8388608, 2750 Conditional = 16777216, 2751 Substitution = 33554432, 2752 NonPrimitive = 67108864, 2753 TemplateLiteral = 134217728, 2754 StringMapping = 268435456, 2755 Literal = 2944, 2756 Unit = 109440, 2757 StringOrNumberLiteral = 384, 2758 PossiblyFalsy = 117724, 2759 StringLike = 402653316, 2760 NumberLike = 296, 2761 BigIntLike = 2112, 2762 BooleanLike = 528, 2763 EnumLike = 1056, 2764 ESSymbolLike = 12288, 2765 VoidLike = 49152, 2766 UnionOrIntersection = 3145728, 2767 StructuredType = 3670016, 2768 TypeVariable = 8650752, 2769 InstantiableNonPrimitive = 58982400, 2770 InstantiablePrimitive = 406847488, 2771 Instantiable = 465829888, 2772 StructuredOrInstantiable = 469499904, 2773 Narrowable = 536624127, 2774 } 2775 export type DestructuringPattern = BindingPattern | ObjectLiteralExpression | ArrayLiteralExpression; 2776 export interface Type { 2777 flags: TypeFlags; 2778 symbol: Symbol; 2779 pattern?: DestructuringPattern; 2780 aliasSymbol?: Symbol; 2781 aliasTypeArguments?: readonly Type[]; 2782 } 2783 export interface LiteralType extends Type { 2784 value: string | number | PseudoBigInt; 2785 freshType: LiteralType; 2786 regularType: LiteralType; 2787 } 2788 export interface UniqueESSymbolType extends Type { 2789 symbol: Symbol; 2790 escapedName: __String; 2791 } 2792 export interface StringLiteralType extends LiteralType { 2793 value: string; 2794 } 2795 export interface NumberLiteralType extends LiteralType { 2796 value: number; 2797 } 2798 export interface BigIntLiteralType extends LiteralType { 2799 value: PseudoBigInt; 2800 } 2801 export interface EnumType extends Type { 2802 } 2803 export enum ObjectFlags { 2804 Class = 1, 2805 Interface = 2, 2806 Reference = 4, 2807 Tuple = 8, 2808 Anonymous = 16, 2809 Mapped = 32, 2810 Instantiated = 64, 2811 ObjectLiteral = 128, 2812 EvolvingArray = 256, 2813 ObjectLiteralPatternWithComputedProperties = 512, 2814 ReverseMapped = 1024, 2815 JsxAttributes = 2048, 2816 JSLiteral = 4096, 2817 FreshLiteral = 8192, 2818 ArrayLiteral = 16384, 2819 ClassOrInterface = 3, 2820 ContainsSpread = 2097152, 2821 ObjectRestType = 4194304, 2822 InstantiationExpressionType = 8388608, 2823 } 2824 export interface ObjectType extends Type { 2825 objectFlags: ObjectFlags; 2826 } 2827 /** Class and interface types (ObjectFlags.Class and ObjectFlags.Interface). */ 2828 export interface InterfaceType extends ObjectType { 2829 typeParameters: TypeParameter[] | undefined; 2830 outerTypeParameters: TypeParameter[] | undefined; 2831 localTypeParameters: TypeParameter[] | undefined; 2832 thisType: TypeParameter | undefined; 2833 } 2834 export type BaseType = ObjectType | IntersectionType | TypeVariable; 2835 export interface InterfaceTypeWithDeclaredMembers extends InterfaceType { 2836 declaredProperties: Symbol[]; 2837 declaredCallSignatures: Signature[]; 2838 declaredConstructSignatures: Signature[]; 2839 declaredIndexInfos: IndexInfo[]; 2840 } 2841 /** 2842 * Type references (ObjectFlags.Reference). When a class or interface has type parameters or 2843 * a "this" type, references to the class or interface are made using type references. The 2844 * typeArguments property specifies the types to substitute for the type parameters of the 2845 * class or interface and optionally includes an extra element that specifies the type to 2846 * substitute for "this" in the resulting instantiation. When no extra argument is present, 2847 * the type reference itself is substituted for "this". The typeArguments property is undefined 2848 * if the class or interface has no type parameters and the reference isn't specifying an 2849 * explicit "this" argument. 2850 */ 2851 export interface TypeReference extends ObjectType { 2852 target: GenericType; 2853 node?: TypeReferenceNode | ArrayTypeNode | TupleTypeNode; 2854 } 2855 export interface DeferredTypeReference extends TypeReference { 2856 } 2857 export interface GenericType extends InterfaceType, TypeReference { 2858 } 2859 export enum ElementFlags { 2860 Required = 1, 2861 Optional = 2, 2862 Rest = 4, 2863 Variadic = 8, 2864 Fixed = 3, 2865 Variable = 12, 2866 NonRequired = 14, 2867 NonRest = 11 2868 } 2869 export interface TupleType extends GenericType { 2870 elementFlags: readonly ElementFlags[]; 2871 minLength: number; 2872 fixedLength: number; 2873 hasRestElement: boolean; 2874 combinedFlags: ElementFlags; 2875 readonly: boolean; 2876 labeledElementDeclarations?: readonly (NamedTupleMember | ParameterDeclaration)[]; 2877 } 2878 export interface TupleTypeReference extends TypeReference { 2879 target: TupleType; 2880 } 2881 export interface UnionOrIntersectionType extends Type { 2882 types: Type[]; 2883 } 2884 export interface UnionType extends UnionOrIntersectionType { 2885 } 2886 export interface IntersectionType extends UnionOrIntersectionType { 2887 } 2888 export type StructuredType = ObjectType | UnionType | IntersectionType; 2889 export interface EvolvingArrayType extends ObjectType { 2890 elementType: Type; 2891 finalArrayType?: Type; 2892 } 2893 export interface InstantiableType extends Type { 2894 } 2895 export interface TypeParameter extends InstantiableType { 2896 } 2897 export interface IndexedAccessType extends InstantiableType { 2898 objectType: Type; 2899 indexType: Type; 2900 constraint?: Type; 2901 simplifiedForReading?: Type; 2902 simplifiedForWriting?: Type; 2903 } 2904 export type TypeVariable = TypeParameter | IndexedAccessType; 2905 export interface IndexType extends InstantiableType { 2906 type: InstantiableType | UnionOrIntersectionType; 2907 } 2908 export interface ConditionalRoot { 2909 node: ConditionalTypeNode; 2910 checkType: Type; 2911 extendsType: Type; 2912 isDistributive: boolean; 2913 inferTypeParameters?: TypeParameter[]; 2914 outerTypeParameters?: TypeParameter[]; 2915 instantiations?: Map<Type>; 2916 aliasSymbol?: Symbol; 2917 aliasTypeArguments?: Type[]; 2918 } 2919 export interface ConditionalType extends InstantiableType { 2920 root: ConditionalRoot; 2921 checkType: Type; 2922 extendsType: Type; 2923 resolvedTrueType?: Type; 2924 resolvedFalseType?: Type; 2925 } 2926 export interface TemplateLiteralType extends InstantiableType { 2927 texts: readonly string[]; 2928 types: readonly Type[]; 2929 } 2930 export interface StringMappingType extends InstantiableType { 2931 symbol: Symbol; 2932 type: Type; 2933 } 2934 export interface SubstitutionType extends InstantiableType { 2935 objectFlags: ObjectFlags; 2936 baseType: Type; 2937 constraint: Type; 2938 } 2939 export enum SignatureKind { 2940 Call = 0, 2941 Construct = 1 2942 } 2943 export interface Signature { 2944 declaration?: SignatureDeclaration | JSDocSignature; 2945 typeParameters?: readonly TypeParameter[]; 2946 parameters: readonly Symbol[]; 2947 } 2948 export enum IndexKind { 2949 String = 0, 2950 Number = 1 2951 } 2952 export interface IndexInfo { 2953 keyType: Type; 2954 type: Type; 2955 isReadonly: boolean; 2956 declaration?: IndexSignatureDeclaration; 2957 } 2958 export enum InferencePriority { 2959 NakedTypeVariable = 1, 2960 SpeculativeTuple = 2, 2961 SubstituteSource = 4, 2962 HomomorphicMappedType = 8, 2963 PartialHomomorphicMappedType = 16, 2964 MappedTypeConstraint = 32, 2965 ContravariantConditional = 64, 2966 ReturnType = 128, 2967 LiteralKeyof = 256, 2968 NoConstraints = 512, 2969 AlwaysStrict = 1024, 2970 MaxValue = 2048, 2971 PriorityImpliesCombination = 416, 2972 Circularity = -1 2973 } 2974 /** @deprecated Use FileExtensionInfo instead. */ 2975 export type JsFileExtensionInfo = FileExtensionInfo; 2976 export interface FileExtensionInfo { 2977 extension: string; 2978 isMixedContent: boolean; 2979 scriptKind?: ScriptKind; 2980 } 2981 export interface DiagnosticMessage { 2982 key: string; 2983 category: DiagnosticCategory; 2984 code: number; 2985 message: string; 2986 reportsUnnecessary?: {}; 2987 reportsDeprecated?: {}; 2988 } 2989 /** 2990 * A linked list of formatted diagnostic messages to be used as part of a multiline message. 2991 * It is built from the bottom up, leaving the head to be the "main" diagnostic. 2992 * While it seems that DiagnosticMessageChain is structurally similar to DiagnosticMessage, 2993 * the difference is that messages are all preformatted in DMC. 2994 */ 2995 export interface DiagnosticMessageChain { 2996 messageText: string; 2997 category: DiagnosticCategory; 2998 code: number; 2999 next?: DiagnosticMessageChain[]; 3000 } 3001 export interface Diagnostic extends DiagnosticRelatedInformation { 3002 /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */ 3003 reportsUnnecessary?: {}; 3004 reportsDeprecated?: {}; 3005 source?: string; 3006 relatedInformation?: DiagnosticRelatedInformation[]; 3007 } 3008 export interface DiagnosticRelatedInformation { 3009 category: DiagnosticCategory; 3010 code: number; 3011 file: SourceFile | undefined; 3012 start: number | undefined; 3013 length: number | undefined; 3014 messageText: string | DiagnosticMessageChain; 3015 } 3016 export interface DiagnosticWithLocation extends Diagnostic { 3017 file: SourceFile; 3018 start: number; 3019 length: number; 3020 } 3021 export enum DiagnosticCategory { 3022 Warning = 0, 3023 Error = 1, 3024 Suggestion = 2, 3025 Message = 3 3026 } 3027 export enum ModuleResolutionKind { 3028 Classic = 1, 3029 NodeJs = 2, 3030 Node16 = 3, 3031 NodeNext = 99 3032 } 3033 export enum ModuleDetectionKind { 3034 /** 3035 * Files with imports, exports and/or import.meta are considered modules 3036 */ 3037 Legacy = 1, 3038 /** 3039 * Legacy, but also files with jsx under react-jsx or react-jsxdev and esm mode files under moduleResolution: node16+ 3040 */ 3041 Auto = 2, 3042 /** 3043 * Consider all non-declaration files modules, regardless of present syntax 3044 */ 3045 Force = 3 3046 } 3047 export interface PluginImport { 3048 name: string; 3049 } 3050 export interface ProjectReference { 3051 /** A normalized path on disk */ 3052 path: string; 3053 /** The path as the user originally wrote it */ 3054 originalPath?: string; 3055 /** True if the output of this reference should be prepended to the output of this project. Only valid for --outFile compilations */ 3056 prepend?: boolean; 3057 /** True if it is intended that this reference form a circularity */ 3058 circular?: boolean; 3059 } 3060 export enum WatchFileKind { 3061 FixedPollingInterval = 0, 3062 PriorityPollingInterval = 1, 3063 DynamicPriorityPolling = 2, 3064 FixedChunkSizePolling = 3, 3065 UseFsEvents = 4, 3066 UseFsEventsOnParentDirectory = 5 3067 } 3068 export enum WatchDirectoryKind { 3069 UseFsEvents = 0, 3070 FixedPollingInterval = 1, 3071 DynamicPriorityPolling = 2, 3072 FixedChunkSizePolling = 3 3073 } 3074 export enum PollingWatchKind { 3075 FixedInterval = 0, 3076 PriorityInterval = 1, 3077 DynamicPriority = 2, 3078 FixedChunkSize = 3 3079 } 3080 export type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike<string[]> | PluginImport[] | ProjectReference[] | null | undefined | EtsOptions; 3081 export interface CompilerOptions { 3082 allowJs?: boolean; 3083 allowSyntheticDefaultImports?: boolean; 3084 allowUmdGlobalAccess?: boolean; 3085 allowUnreachableCode?: boolean; 3086 allowUnusedLabels?: boolean; 3087 alwaysStrict?: boolean; 3088 baseUrl?: string; 3089 charset?: string; 3090 checkJs?: boolean; 3091 declaration?: boolean; 3092 declarationMap?: boolean; 3093 emitDeclarationOnly?: boolean; 3094 declarationDir?: string; 3095 disableSizeLimit?: boolean; 3096 disableSourceOfProjectReferenceRedirect?: boolean; 3097 disableSolutionSearching?: boolean; 3098 disableReferencedProjectLoad?: boolean; 3099 downlevelIteration?: boolean; 3100 emitBOM?: boolean; 3101 emitDecoratorMetadata?: boolean; 3102 exactOptionalPropertyTypes?: boolean; 3103 experimentalDecorators?: boolean; 3104 forceConsistentCasingInFileNames?: boolean; 3105 importHelpers?: boolean; 3106 importsNotUsedAsValues?: ImportsNotUsedAsValues; 3107 inlineSourceMap?: boolean; 3108 inlineSources?: boolean; 3109 isolatedModules?: boolean; 3110 jsx?: JsxEmit; 3111 keyofStringsOnly?: boolean; 3112 lib?: string[]; 3113 locale?: string; 3114 mapRoot?: string; 3115 maxNodeModuleJsDepth?: number; 3116 module?: ModuleKind; 3117 moduleResolution?: ModuleResolutionKind; 3118 moduleSuffixes?: string[]; 3119 moduleDetection?: ModuleDetectionKind; 3120 newLine?: NewLineKind; 3121 noEmit?: boolean; 3122 noEmitHelpers?: boolean; 3123 noEmitOnError?: boolean; 3124 noErrorTruncation?: boolean; 3125 noFallthroughCasesInSwitch?: boolean; 3126 noImplicitAny?: boolean; 3127 noImplicitReturns?: boolean; 3128 noImplicitThis?: boolean; 3129 noStrictGenericChecks?: boolean; 3130 noUnusedLocals?: boolean; 3131 noUnusedParameters?: boolean; 3132 noImplicitUseStrict?: boolean; 3133 noPropertyAccessFromIndexSignature?: boolean; 3134 assumeChangesOnlyAffectDirectDependencies?: boolean; 3135 noLib?: boolean; 3136 noResolve?: boolean; 3137 noUncheckedIndexedAccess?: boolean; 3138 out?: string; 3139 outDir?: string; 3140 outFile?: string; 3141 paths?: MapLike<string[]>; 3142 preserveConstEnums?: boolean; 3143 noImplicitOverride?: boolean; 3144 preserveSymlinks?: boolean; 3145 preserveValueImports?: boolean; 3146 project?: string; 3147 reactNamespace?: string; 3148 jsxFactory?: string; 3149 jsxFragmentFactory?: string; 3150 jsxImportSource?: string; 3151 composite?: boolean; 3152 incremental?: boolean; 3153 tsBuildInfoFile?: string; 3154 removeComments?: boolean; 3155 rootDir?: string; 3156 rootDirs?: string[]; 3157 skipLibCheck?: boolean; 3158 skipDefaultLibCheck?: boolean; 3159 sourceMap?: boolean; 3160 sourceRoot?: string; 3161 strict?: boolean; 3162 strictFunctionTypes?: boolean; 3163 strictBindCallApply?: boolean; 3164 strictNullChecks?: boolean; 3165 strictPropertyInitialization?: boolean; 3166 stripInternal?: boolean; 3167 suppressExcessPropertyErrors?: boolean; 3168 suppressImplicitAnyIndexErrors?: boolean; 3169 target?: ScriptTarget; 3170 traceResolution?: boolean; 3171 useUnknownInCatchVariables?: boolean; 3172 resolveJsonModule?: boolean; 3173 types?: string[]; 3174 /** Paths used to compute primary types search locations */ 3175 typeRoots?: string[]; 3176 esModuleInterop?: boolean; 3177 useDefineForClassFields?: boolean; 3178 ets?: EtsOptions; 3179 packageManagerType?: string; 3180 emitNodeModulesFiles?: boolean; 3181 etsLoaderPath?: string; 3182 tsImportSendableEnable?: boolean; 3183 skipPathsInKeyForCompilationSettings?: boolean; 3184 compatibleSdkVersion?: number; 3185 compatibleSdkVersionStage?: string; 3186 [option: string]: CompilerOptionsValue | TsConfigSourceFile | undefined; 3187 } 3188 export interface EtsOptions { 3189 render: { 3190 method: string[]; 3191 decorator: string[]; 3192 }; 3193 components: string[]; 3194 libs: string[]; 3195 extend: { 3196 decorator: string[]; 3197 components: { 3198 name: string; 3199 type: string; 3200 instance: string; 3201 }[]; 3202 }; 3203 styles: { 3204 decorator: string; 3205 component: { 3206 name: string; 3207 type: string; 3208 instance: string; 3209 }; 3210 property: string; 3211 }; 3212 concurrent: { 3213 decorator: string; 3214 }; 3215 customComponent?: string; 3216 propertyDecorators: { 3217 name: string; 3218 needInitialization: boolean; 3219 }[]; 3220 emitDecorators: { 3221 name: string; 3222 emitParameters: boolean; 3223 }[]; 3224 syntaxComponents: { 3225 paramsUICallback: string[]; 3226 attrUICallback: { 3227 name: string; 3228 attributes: string[]; 3229 }[]; 3230 }; 3231 } 3232 export interface WatchOptions { 3233 watchFile?: WatchFileKind; 3234 watchDirectory?: WatchDirectoryKind; 3235 fallbackPolling?: PollingWatchKind; 3236 synchronousWatchDirectory?: boolean; 3237 excludeDirectories?: string[]; 3238 excludeFiles?: string[]; 3239 [option: string]: CompilerOptionsValue | undefined; 3240 } 3241 export interface TypeAcquisition { 3242 /** 3243 * @deprecated typingOptions.enableAutoDiscovery 3244 * Use typeAcquisition.enable instead. 3245 */ 3246 enableAutoDiscovery?: boolean; 3247 enable?: boolean; 3248 include?: string[]; 3249 exclude?: string[]; 3250 disableFilenameBasedTypeAcquisition?: boolean; 3251 [option: string]: CompilerOptionsValue | undefined; 3252 } 3253 export enum ModuleKind { 3254 None = 0, 3255 CommonJS = 1, 3256 AMD = 2, 3257 UMD = 3, 3258 System = 4, 3259 ES2015 = 5, 3260 ES2020 = 6, 3261 ES2022 = 7, 3262 ESNext = 99, 3263 Node16 = 100, 3264 NodeNext = 199 3265 } 3266 export enum JsxEmit { 3267 None = 0, 3268 Preserve = 1, 3269 React = 2, 3270 ReactNative = 3, 3271 ReactJSX = 4, 3272 ReactJSXDev = 5 3273 } 3274 export enum ImportsNotUsedAsValues { 3275 Remove = 0, 3276 Preserve = 1, 3277 Error = 2 3278 } 3279 export enum NewLineKind { 3280 CarriageReturnLineFeed = 0, 3281 LineFeed = 1 3282 } 3283 export interface LineAndCharacter { 3284 /** 0-based. */ 3285 line: number; 3286 character: number; 3287 } 3288 export enum ScriptKind { 3289 Unknown = 0, 3290 JS = 1, 3291 JSX = 2, 3292 TS = 3, 3293 TSX = 4, 3294 External = 5, 3295 JSON = 6, 3296 /** 3297 * Used on extensions that doesn't define the ScriptKind but the content defines it. 3298 * Deferred extensions are going to be included in all project contexts. 3299 */ 3300 Deferred = 7, 3301 ETS = 8 3302 } 3303 export enum ScriptTarget { 3304 ES3 = 0, 3305 ES5 = 1, 3306 ES2015 = 2, 3307 ES2016 = 3, 3308 ES2017 = 4, 3309 ES2018 = 5, 3310 ES2019 = 6, 3311 ES2020 = 7, 3312 ES2021 = 8, 3313 ES2022 = 9, 3314 ESNext = 99, 3315 JSON = 100, 3316 Latest = 99 3317 } 3318 export enum LanguageVariant { 3319 Standard = 0, 3320 JSX = 1 3321 } 3322 /** Either a parsed command line or a parsed tsconfig.json */ 3323 export interface ParsedCommandLine { 3324 options: CompilerOptions; 3325 typeAcquisition?: TypeAcquisition; 3326 fileNames: string[]; 3327 projectReferences?: readonly ProjectReference[]; 3328 watchOptions?: WatchOptions; 3329 raw?: any; 3330 errors: Diagnostic[]; 3331 wildcardDirectories?: MapLike<WatchDirectoryFlags>; 3332 compileOnSave?: boolean; 3333 } 3334 export enum WatchDirectoryFlags { 3335 None = 0, 3336 Recursive = 1 3337 } 3338 export interface CreateProgramOptions { 3339 rootNames: readonly string[]; 3340 options: CompilerOptions; 3341 projectReferences?: readonly ProjectReference[]; 3342 host?: CompilerHost; 3343 oldProgram?: Program; 3344 configFileParsingDiagnostics?: readonly Diagnostic[]; 3345 } 3346 export interface ModuleResolutionHost { 3347 fileExists(fileName: string): boolean; 3348 readFile(fileName: string): string | undefined; 3349 trace?(s: string): void; 3350 directoryExists?(directoryName: string): boolean; 3351 /** 3352 * Resolve a symbolic link. 3353 * @see https://nodejs.org/api/fs.html#fs_fs_realpathsync_path_options 3354 */ 3355 realpath?(path: string): string; 3356 getCurrentDirectory?(): string; 3357 getDirectories?(path: string): string[]; 3358 useCaseSensitiveFileNames?: boolean | (() => boolean) | undefined; 3359 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 3360 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 3361 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 3362 } 3363 /** 3364 * Used by services to specify the minimum host area required to set up source files under any compilation settings 3365 */ 3366 export interface MinimalResolutionCacheHost extends ModuleResolutionHost { 3367 getCompilationSettings(): CompilerOptions; 3368 getCompilerHost?(): CompilerHost | undefined; 3369 } 3370 /** 3371 * Represents the result of module resolution. 3372 * Module resolution will pick up tsx/jsx/js files even if '--jsx' and '--allowJs' are turned off. 3373 * The Program will then filter results based on these flags. 3374 * 3375 * Prefer to return a `ResolvedModuleFull` so that the file type does not have to be inferred. 3376 */ 3377 export interface ResolvedModule { 3378 /** Path of the file the module was resolved to. */ 3379 resolvedFileName: string; 3380 /** True if `resolvedFileName` comes from `node_modules`. */ 3381 isExternalLibraryImport?: boolean; 3382 } 3383 /** 3384 * ResolvedModule with an explicitly provided `extension` property. 3385 * Prefer this over `ResolvedModule`. 3386 * If changing this, remember to change `moduleResolutionIsEqualTo`. 3387 */ 3388 export interface ResolvedModuleFull extends ResolvedModule { 3389 /** 3390 * Extension of resolvedFileName. This must match what's at the end of resolvedFileName. 3391 * This is optional for backwards-compatibility, but will be added if not provided. 3392 */ 3393 extension: Extension; 3394 packageId?: PackageId; 3395 } 3396 /** 3397 * Unique identifier with a package name and version. 3398 * If changing this, remember to change `packageIdIsEqual`. 3399 */ 3400 export interface PackageId { 3401 /** 3402 * Name of the package. 3403 * Should not include `@types`. 3404 * If accessing a non-index file, this should include its name e.g. "foo/bar". 3405 */ 3406 name: string; 3407 /** 3408 * Name of a submodule within this package. 3409 * May be "". 3410 */ 3411 subModuleName: string; 3412 /** Version of the package, e.g. "1.2.3" */ 3413 version: string; 3414 } 3415 export enum Extension { 3416 Ts = ".ts", 3417 Tsx = ".tsx", 3418 Dts = ".d.ts", 3419 Js = ".js", 3420 Jsx = ".jsx", 3421 Json = ".json", 3422 TsBuildInfo = ".tsbuildinfo", 3423 Mjs = ".mjs", 3424 Mts = ".mts", 3425 Dmts = ".d.mts", 3426 Cjs = ".cjs", 3427 Cts = ".cts", 3428 Dcts = ".d.cts", 3429 Ets = ".ets", 3430 Dets = ".d.ets" 3431 } 3432 export interface ResolvedModuleWithFailedLookupLocations { 3433 readonly resolvedModule: ResolvedModuleFull | undefined; 3434 } 3435 export interface ResolvedTypeReferenceDirective { 3436 primary: boolean; 3437 resolvedFileName: string | undefined; 3438 packageId?: PackageId; 3439 /** True if `resolvedFileName` comes from `node_modules` or `oh_modules`. */ 3440 isExternalLibraryImport?: boolean; 3441 } 3442 export interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations { 3443 readonly resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined; 3444 readonly failedLookupLocations: string[]; 3445 } 3446 export interface FileCheckModuleInfo { 3447 fileNeedCheck: boolean; 3448 checkPayload: any; 3449 currentFileName: string; 3450 } 3451 export interface JsDocNodeCheckConfig { 3452 nodeNeedCheck: boolean; 3453 checkConfig: JsDocNodeCheckConfigItem[]; 3454 } 3455 export interface JsDocNodeCheckConfigItem { 3456 tagName: string[]; 3457 message: string; 3458 needConditionCheck: boolean; 3459 type: DiagnosticCategory; 3460 specifyCheckConditionFuncName: string; 3461 tagNameShouldExisted: boolean; 3462 checkValidCallback?: (jsDocTag: JSDocTag, config: JsDocNodeCheckConfigItem) => boolean; 3463 checkJsDocSpecialValidCallback?: (jsDocTags: readonly JSDocTag[], config: JsDocNodeCheckConfigItem) => boolean; 3464 } 3465 export interface TagCheckParam { 3466 needCheck: boolean; 3467 checkConfig: TagCheckConfig[]; 3468 } 3469 export interface TagCheckConfig { 3470 tagName: string; 3471 message: string; 3472 needConditionCheck: boolean; 3473 specifyCheckConditionFuncName: string; 3474 } 3475 export interface ConditionCheckResult { 3476 valid: boolean; 3477 type?: DiagnosticCategory; 3478 message?: string; 3479 } 3480 export interface CompilerHost extends ModuleResolutionHost { 3481 getSourceFile(fileName: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; 3482 getSourceFileByPath?(fileName: string, path: Path, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; 3483 getCancellationToken?(): CancellationToken; 3484 getDefaultLibFileName(options: CompilerOptions): string; 3485 getDefaultLibLocation?(): string; 3486 writeFile: WriteFileCallback; 3487 getCurrentDirectory(): string; 3488 getCanonicalFileName(fileName: string): string; 3489 useCaseSensitiveFileNames(): boolean; 3490 getNewLine(): string; 3491 readDirectory?(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): string[]; 3492 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 3493 /** 3494 * 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 3495 */ 3496 getModuleResolutionCache?(): ModuleResolutionCache | undefined; 3497 /** 3498 * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files 3499 */ 3500 resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 3501 getEnvironmentVariable?(name: string): string | undefined; 3502 /** If provided along with custom resolveModuleNames or resolveTypeReferenceDirectives, used to determine if unchanged file path needs to re-resolve modules/type reference directives */ 3503 hasInvalidatedResolutions?(filePath: Path): boolean; 3504 createHash?(data: string): string; 3505 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 3506 /** 3507 * get tagName where need to be determined based on the file path 3508 * @param jsDocFileCheckInfo filePath 3509 * @param symbolSourceFilePath filePath 3510 */ 3511 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 3512 /** 3513 * get checked results based on the file path and jsDocs 3514 * @param jsDocFileCheckedInfo 3515 * @param jsDocs 3516 */ 3517 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 3518 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 3519 getLastCompiledProgram?(): Program; 3520 } 3521 export interface SourceMapRange extends TextRange { 3522 source?: SourceMapSource; 3523 } 3524 export interface SourceMapSource { 3525 fileName: string; 3526 text: string; 3527 skipTrivia?: (pos: number) => number; 3528 } 3529 export enum EmitFlags { 3530 None = 0, 3531 SingleLine = 1, 3532 AdviseOnEmitNode = 2, 3533 NoSubstitution = 4, 3534 CapturesThis = 8, 3535 NoLeadingSourceMap = 16, 3536 NoTrailingSourceMap = 32, 3537 NoSourceMap = 48, 3538 NoNestedSourceMaps = 64, 3539 NoTokenLeadingSourceMaps = 128, 3540 NoTokenTrailingSourceMaps = 256, 3541 NoTokenSourceMaps = 384, 3542 NoLeadingComments = 512, 3543 NoTrailingComments = 1024, 3544 NoComments = 1536, 3545 NoNestedComments = 2048, 3546 HelperName = 4096, 3547 ExportName = 8192, 3548 LocalName = 16384, 3549 InternalName = 32768, 3550 Indented = 65536, 3551 NoIndentation = 131072, 3552 AsyncFunctionBody = 262144, 3553 ReuseTempVariableScope = 524288, 3554 CustomPrologue = 1048576, 3555 NoHoisting = 2097152, 3556 HasEndOfDeclarationMarker = 4194304, 3557 Iterator = 8388608, 3558 NoAsciiEscaping = 16777216, 3559 } 3560 export interface EmitHelperBase { 3561 readonly name: string; 3562 readonly scoped: boolean; 3563 readonly text: string | ((node: EmitHelperUniqueNameCallback) => string); 3564 readonly priority?: number; 3565 readonly dependencies?: EmitHelper[]; 3566 } 3567 export interface ScopedEmitHelper extends EmitHelperBase { 3568 readonly scoped: true; 3569 } 3570 export interface UnscopedEmitHelper extends EmitHelperBase { 3571 readonly scoped: false; 3572 readonly text: string; 3573 } 3574 export type EmitHelper = ScopedEmitHelper | UnscopedEmitHelper; 3575 export type EmitHelperUniqueNameCallback = (name: string) => string; 3576 export enum EmitHint { 3577 SourceFile = 0, 3578 Expression = 1, 3579 IdentifierName = 2, 3580 MappedTypeParameter = 3, 3581 Unspecified = 4, 3582 EmbeddedStatement = 5, 3583 JsxAttributeValue = 6 3584 } 3585 export interface SourceFileMayBeEmittedHost { 3586 getCompilerOptions(): CompilerOptions; 3587 isSourceFileFromExternalLibrary(file: SourceFile): boolean; 3588 getResolvedProjectReferenceToRedirect(fileName: string): ResolvedProjectReference | undefined; 3589 isSourceOfProjectReferenceRedirect(fileName: string): boolean; 3590 } 3591 export interface EmitHost extends ScriptReferenceHost, ModuleSpecifierResolutionHost, SourceFileMayBeEmittedHost { 3592 getSourceFiles(): readonly SourceFile[]; 3593 useCaseSensitiveFileNames(): boolean; 3594 getCurrentDirectory(): string; 3595 getLibFileFromReference(ref: FileReference): SourceFile | undefined; 3596 getCommonSourceDirectory(): string; 3597 getCanonicalFileName(fileName: string): string; 3598 getNewLine(): string; 3599 isEmitBlocked(emitFileName: string): boolean; 3600 getPrependNodes(): readonly (InputFiles | UnparsedSource)[]; 3601 writeFile: WriteFileCallback; 3602 getSourceFileFromReference: Program["getSourceFileFromReference"]; 3603 readonly redirectTargetsMap: RedirectTargetsMap; 3604 createHash?(data: string): string; 3605 } 3606 export enum OuterExpressionKinds { 3607 Parentheses = 1, 3608 TypeAssertions = 2, 3609 NonNullAssertions = 4, 3610 PartiallyEmittedExpressions = 8, 3611 Assertions = 6, 3612 All = 15, 3613 ExcludeJSDocTypeAssertion = 16 3614 } 3615 export type TypeOfTag = "undefined" | "number" | "bigint" | "boolean" | "string" | "symbol" | "object" | "function"; 3616 export interface NodeFactory { 3617 createNodeArray<T extends Node>(elements?: readonly T[], hasTrailingComma?: boolean): NodeArray<T>; 3618 createNumericLiteral(value: string | number, numericLiteralFlags?: TokenFlags): NumericLiteral; 3619 createBigIntLiteral(value: string | PseudoBigInt): BigIntLiteral; 3620 createStringLiteral(text: string, isSingleQuote?: boolean): StringLiteral; 3621 createStringLiteralFromNode(sourceNode: PropertyNameLiteral | PrivateIdentifier, isSingleQuote?: boolean): StringLiteral; 3622 createRegularExpressionLiteral(text: string): RegularExpressionLiteral; 3623 createIdentifier(text: string): Identifier; 3624 /** 3625 * Create a unique temporary variable. 3626 * @param recordTempVariable An optional callback used to record the temporary variable name. This 3627 * should usually be a reference to `hoistVariableDeclaration` from a `TransformationContext`, but 3628 * can be `undefined` if you plan to record the temporary variable manually. 3629 * @param reservedInNestedScopes When `true`, reserves the temporary variable name in all nested scopes 3630 * during emit so that the variable can be referenced in a nested function body. This is an alternative to 3631 * setting `EmitFlags.ReuseTempVariableScope` on the nested function itself. 3632 */ 3633 createTempVariable(recordTempVariable: ((node: Identifier) => void) | undefined, reservedInNestedScopes?: boolean): Identifier; 3634 /** 3635 * Create a unique temporary variable for use in a loop. 3636 * @param reservedInNestedScopes When `true`, reserves the temporary variable name in all nested scopes 3637 * during emit so that the variable can be referenced in a nested function body. This is an alternative to 3638 * setting `EmitFlags.ReuseTempVariableScope` on the nested function itself. 3639 */ 3640 createLoopVariable(reservedInNestedScopes?: boolean): Identifier; 3641 /** Create a unique name based on the supplied text. */ 3642 createUniqueName(text: string, flags?: GeneratedIdentifierFlags): Identifier; 3643 /** Create a unique name generated for a node. */ 3644 getGeneratedNameForNode(node: Node | undefined, flags?: GeneratedIdentifierFlags): Identifier; 3645 createPrivateIdentifier(text: string): PrivateIdentifier; 3646 createUniquePrivateName(text?: string): PrivateIdentifier; 3647 getGeneratedPrivateNameForNode(node: Node): PrivateIdentifier; 3648 createToken(token: SyntaxKind.SuperKeyword): SuperExpression; 3649 createToken(token: SyntaxKind.ThisKeyword): ThisExpression; 3650 createToken(token: SyntaxKind.NullKeyword): NullLiteral; 3651 createToken(token: SyntaxKind.TrueKeyword): TrueLiteral; 3652 createToken(token: SyntaxKind.FalseKeyword): FalseLiteral; 3653 createToken<TKind extends PunctuationSyntaxKind>(token: TKind): PunctuationToken<TKind>; 3654 createToken<TKind extends KeywordTypeSyntaxKind>(token: TKind): KeywordTypeNode<TKind>; 3655 createToken<TKind extends ModifierSyntaxKind>(token: TKind): ModifierToken<TKind>; 3656 createToken<TKind extends KeywordSyntaxKind>(token: TKind): KeywordToken<TKind>; 3657 createToken<TKind extends SyntaxKind.Unknown | SyntaxKind.EndOfFileToken>(token: TKind): Token<TKind>; 3658 createSuper(): SuperExpression; 3659 createThis(): ThisExpression; 3660 createNull(): NullLiteral; 3661 createTrue(): TrueLiteral; 3662 createFalse(): FalseLiteral; 3663 createModifier<T extends ModifierSyntaxKind>(kind: T): ModifierToken<T>; 3664 createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[] | undefined; 3665 createQualifiedName(left: EntityName, right: string | Identifier): QualifiedName; 3666 updateQualifiedName(node: QualifiedName, left: EntityName, right: Identifier): QualifiedName; 3667 createComputedPropertyName(expression: Expression): ComputedPropertyName; 3668 updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName; 3669 createTypeParameterDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; 3670 updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 3671 createParameterDeclaration(modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; 3672 updateParameterDeclaration(node: ParameterDeclaration, modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; 3673 createDecorator(expression: Expression): Decorator; 3674 updateDecorator(node: Decorator, expression: Expression): Decorator; 3675 createPropertySignature(modifiers: readonly Modifier[] | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined): PropertySignature; 3676 updatePropertySignature(node: PropertySignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined): PropertySignature; 3677 createPropertyDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 3678 updatePropertyDeclaration(node: PropertyDeclaration, modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 3679 createMethodSignature(modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): MethodSignature; 3680 updateMethodSignature(node: MethodSignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): MethodSignature; 3681 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; 3682 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; 3683 createConstructorDeclaration(modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 3684 updateConstructorDeclaration(node: ConstructorDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 3685 createGetAccessorDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 3686 updateGetAccessorDeclaration(node: GetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 3687 createSetAccessorDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 3688 updateSetAccessorDeclaration(node: SetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 3689 createCallSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): CallSignatureDeclaration; 3690 updateCallSignature(node: CallSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): CallSignatureDeclaration; 3691 createConstructSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): ConstructSignatureDeclaration; 3692 updateConstructSignature(node: ConstructSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructSignatureDeclaration; 3693 createIndexSignature(modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 3694 updateIndexSignature(node: IndexSignatureDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 3695 createTemplateLiteralTypeSpan(type: TypeNode, literal: TemplateMiddle | TemplateTail): TemplateLiteralTypeSpan; 3696 updateTemplateLiteralTypeSpan(node: TemplateLiteralTypeSpan, type: TypeNode, literal: TemplateMiddle | TemplateTail): TemplateLiteralTypeSpan; 3697 createClassStaticBlockDeclaration(body: Block): ClassStaticBlockDeclaration; 3698 updateClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, body: Block): ClassStaticBlockDeclaration; 3699 createKeywordTypeNode<TKind extends KeywordTypeSyntaxKind>(kind: TKind): KeywordTypeNode<TKind>; 3700 createTypePredicateNode(assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode | string, type: TypeNode | undefined): TypePredicateNode; 3701 updateTypePredicateNode(node: TypePredicateNode, assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode, type: TypeNode | undefined): TypePredicateNode; 3702 createTypeReferenceNode(typeName: string | EntityName, typeArguments?: readonly TypeNode[]): TypeReferenceNode; 3703 updateTypeReferenceNode(node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray<TypeNode> | undefined): TypeReferenceNode; 3704 createFunctionTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): FunctionTypeNode; 3705 updateFunctionTypeNode(node: FunctionTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): FunctionTypeNode; 3706 createConstructorTypeNode(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): ConstructorTypeNode; 3707 updateConstructorTypeNode(node: ConstructorTypeNode, modifiers: readonly Modifier[] | undefined, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): ConstructorTypeNode; 3708 createTypeQueryNode(exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; 3709 updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; 3710 createTypeLiteralNode(members: readonly TypeElement[] | undefined): TypeLiteralNode; 3711 updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray<TypeElement>): TypeLiteralNode; 3712 createArrayTypeNode(elementType: TypeNode): ArrayTypeNode; 3713 updateArrayTypeNode(node: ArrayTypeNode, elementType: TypeNode): ArrayTypeNode; 3714 createTupleTypeNode(elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode; 3715 updateTupleTypeNode(node: TupleTypeNode, elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode; 3716 createNamedTupleMember(dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember; 3717 updateNamedTupleMember(node: NamedTupleMember, dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember; 3718 createOptionalTypeNode(type: TypeNode): OptionalTypeNode; 3719 updateOptionalTypeNode(node: OptionalTypeNode, type: TypeNode): OptionalTypeNode; 3720 createRestTypeNode(type: TypeNode): RestTypeNode; 3721 updateRestTypeNode(node: RestTypeNode, type: TypeNode): RestTypeNode; 3722 createUnionTypeNode(types: readonly TypeNode[]): UnionTypeNode; 3723 updateUnionTypeNode(node: UnionTypeNode, types: NodeArray<TypeNode>): UnionTypeNode; 3724 createIntersectionTypeNode(types: readonly TypeNode[]): IntersectionTypeNode; 3725 updateIntersectionTypeNode(node: IntersectionTypeNode, types: NodeArray<TypeNode>): IntersectionTypeNode; 3726 createConditionalTypeNode(checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; 3727 updateConditionalTypeNode(node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; 3728 createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode; 3729 updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode; 3730 createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 3731 updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; 3732 createParenthesizedType(type: TypeNode): ParenthesizedTypeNode; 3733 updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode; 3734 createThisTypeNode(): ThisTypeNode; 3735 createTypeOperatorNode(operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode; 3736 updateTypeOperatorNode(node: TypeOperatorNode, type: TypeNode): TypeOperatorNode; 3737 createIndexedAccessTypeNode(objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode; 3738 updateIndexedAccessTypeNode(node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode; 3739 createMappedTypeNode(readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined): MappedTypeNode; 3740 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; 3741 createLiteralTypeNode(literal: LiteralTypeNode["literal"]): LiteralTypeNode; 3742 updateLiteralTypeNode(node: LiteralTypeNode, literal: LiteralTypeNode["literal"]): LiteralTypeNode; 3743 createTemplateLiteralType(head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode; 3744 updateTemplateLiteralType(node: TemplateLiteralTypeNode, head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode; 3745 createObjectBindingPattern(elements: readonly BindingElement[]): ObjectBindingPattern; 3746 updateObjectBindingPattern(node: ObjectBindingPattern, elements: readonly BindingElement[]): ObjectBindingPattern; 3747 createArrayBindingPattern(elements: readonly ArrayBindingElement[]): ArrayBindingPattern; 3748 updateArrayBindingPattern(node: ArrayBindingPattern, elements: readonly ArrayBindingElement[]): ArrayBindingPattern; 3749 createBindingElement(dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression): BindingElement; 3750 updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined): BindingElement; 3751 createArrayLiteralExpression(elements?: readonly Expression[], multiLine?: boolean): ArrayLiteralExpression; 3752 updateArrayLiteralExpression(node: ArrayLiteralExpression, elements: readonly Expression[]): ArrayLiteralExpression; 3753 createObjectLiteralExpression(properties?: readonly ObjectLiteralElementLike[], multiLine?: boolean): ObjectLiteralExpression; 3754 updateObjectLiteralExpression(node: ObjectLiteralExpression, properties: readonly ObjectLiteralElementLike[]): ObjectLiteralExpression; 3755 createPropertyAccessExpression(expression: Expression, name: string | MemberName): PropertyAccessExpression; 3756 updatePropertyAccessExpression(node: PropertyAccessExpression, expression: Expression, name: MemberName): PropertyAccessExpression; 3757 createPropertyAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, name: string | MemberName): PropertyAccessChain; 3758 updatePropertyAccessChain(node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, name: MemberName): PropertyAccessChain; 3759 createElementAccessExpression(expression: Expression, index: number | Expression): ElementAccessExpression; 3760 updateElementAccessExpression(node: ElementAccessExpression, expression: Expression, argumentExpression: Expression): ElementAccessExpression; 3761 createElementAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, index: number | Expression): ElementAccessChain; 3762 updateElementAccessChain(node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, argumentExpression: Expression): ElementAccessChain; 3763 createCallExpression(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallExpression; 3764 updateCallExpression(node: CallExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallExpression; 3765 createCallChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallChain; 3766 updateCallChain(node: CallChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallChain; 3767 createNewExpression(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression; 3768 updateNewExpression(node: NewExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression; 3769 createTaggedTemplateExpression(tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 3770 updateTaggedTemplateExpression(node: TaggedTemplateExpression, tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 3771 createTypeAssertion(type: TypeNode, expression: Expression): TypeAssertion; 3772 updateTypeAssertion(node: TypeAssertion, type: TypeNode, expression: Expression): TypeAssertion; 3773 createParenthesizedExpression(expression: Expression): ParenthesizedExpression; 3774 updateParenthesizedExpression(node: ParenthesizedExpression, expression: Expression): ParenthesizedExpression; 3775 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; 3776 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; 3777 createArrowFunction(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction; 3778 updateArrowFunction(node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken, body: ConciseBody): ArrowFunction; 3779 createEtsComponentExpression(name: Expression, argumentExpression: Expression[] | NodeArray<Expression> | undefined, body: Block | undefined): EtsComponentExpression; 3780 updateEtsComponentExpression(node: EtsComponentExpression, name: Expression | undefined, argumentExpression: Expression[] | NodeArray<Expression> | undefined, body: Block | undefined): EtsComponentExpression; 3781 createDeleteExpression(expression: Expression): DeleteExpression; 3782 updateDeleteExpression(node: DeleteExpression, expression: Expression): DeleteExpression; 3783 createTypeOfExpression(expression: Expression): TypeOfExpression; 3784 updateTypeOfExpression(node: TypeOfExpression, expression: Expression): TypeOfExpression; 3785 createVoidExpression(expression: Expression): VoidExpression; 3786 updateVoidExpression(node: VoidExpression, expression: Expression): VoidExpression; 3787 createAwaitExpression(expression: Expression): AwaitExpression; 3788 updateAwaitExpression(node: AwaitExpression, expression: Expression): AwaitExpression; 3789 createPrefixUnaryExpression(operator: PrefixUnaryOperator, operand: Expression): PrefixUnaryExpression; 3790 updatePrefixUnaryExpression(node: PrefixUnaryExpression, operand: Expression): PrefixUnaryExpression; 3791 createPostfixUnaryExpression(operand: Expression, operator: PostfixUnaryOperator): PostfixUnaryExpression; 3792 updatePostfixUnaryExpression(node: PostfixUnaryExpression, operand: Expression): PostfixUnaryExpression; 3793 createBinaryExpression(left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression; 3794 updateBinaryExpression(node: BinaryExpression, left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression; 3795 createConditionalExpression(condition: Expression, questionToken: QuestionToken | undefined, whenTrue: Expression, colonToken: ColonToken | undefined, whenFalse: Expression): ConditionalExpression; 3796 updateConditionalExpression(node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression; 3797 createTemplateExpression(head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression; 3798 updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression; 3799 createTemplateHead(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateHead; 3800 createTemplateHead(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateHead; 3801 createTemplateMiddle(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateMiddle; 3802 createTemplateMiddle(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateMiddle; 3803 createTemplateTail(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateTail; 3804 createTemplateTail(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateTail; 3805 createNoSubstitutionTemplateLiteral(text: string, rawText?: string): NoSubstitutionTemplateLiteral; 3806 createNoSubstitutionTemplateLiteral(text: string | undefined, rawText: string): NoSubstitutionTemplateLiteral; 3807 createYieldExpression(asteriskToken: AsteriskToken, expression: Expression): YieldExpression; 3808 createYieldExpression(asteriskToken: undefined, expression: Expression | undefined): YieldExpression; 3809 updateYieldExpression(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression | undefined): YieldExpression; 3810 createSpreadElement(expression: Expression): SpreadElement; 3811 updateSpreadElement(node: SpreadElement, expression: Expression): SpreadElement; 3812 createClassExpression(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression; 3813 updateClassExpression(node: ClassExpression, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression; 3814 createOmittedExpression(): OmittedExpression; 3815 createExpressionWithTypeArguments(expression: Expression, typeArguments: readonly TypeNode[] | undefined): ExpressionWithTypeArguments; 3816 updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, expression: Expression, typeArguments: readonly TypeNode[] | undefined): ExpressionWithTypeArguments; 3817 createAsExpression(expression: Expression, type: TypeNode): AsExpression; 3818 updateAsExpression(node: AsExpression, expression: Expression, type: TypeNode): AsExpression; 3819 createNonNullExpression(expression: Expression): NonNullExpression; 3820 updateNonNullExpression(node: NonNullExpression, expression: Expression): NonNullExpression; 3821 createNonNullChain(expression: Expression): NonNullChain; 3822 updateNonNullChain(node: NonNullChain, expression: Expression): NonNullChain; 3823 createMetaProperty(keywordToken: MetaProperty["keywordToken"], name: Identifier): MetaProperty; 3824 updateMetaProperty(node: MetaProperty, name: Identifier): MetaProperty; 3825 createSatisfiesExpression(expression: Expression, type: TypeNode): SatisfiesExpression; 3826 updateSatisfiesExpression(node: SatisfiesExpression, expression: Expression, type: TypeNode): SatisfiesExpression; 3827 createTemplateSpan(expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan; 3828 updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan; 3829 createSemicolonClassElement(): SemicolonClassElement; 3830 createBlock(statements: readonly Statement[], multiLine?: boolean): Block; 3831 updateBlock(node: Block, statements: readonly Statement[]): Block; 3832 createVariableStatement(modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList | readonly VariableDeclaration[]): VariableStatement; 3833 updateVariableStatement(node: VariableStatement, modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList): VariableStatement; 3834 createEmptyStatement(): EmptyStatement; 3835 createExpressionStatement(expression: Expression): ExpressionStatement; 3836 updateExpressionStatement(node: ExpressionStatement, expression: Expression): ExpressionStatement; 3837 createIfStatement(expression: Expression, thenStatement: Statement, elseStatement?: Statement): IfStatement; 3838 updateIfStatement(node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement | undefined): IfStatement; 3839 createDoStatement(statement: Statement, expression: Expression): DoStatement; 3840 updateDoStatement(node: DoStatement, statement: Statement, expression: Expression): DoStatement; 3841 createWhileStatement(expression: Expression, statement: Statement): WhileStatement; 3842 updateWhileStatement(node: WhileStatement, expression: Expression, statement: Statement): WhileStatement; 3843 createForStatement(initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement; 3844 updateForStatement(node: ForStatement, initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement; 3845 createForInStatement(initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement; 3846 updateForInStatement(node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement; 3847 createForOfStatement(awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement; 3848 updateForOfStatement(node: ForOfStatement, awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement; 3849 createContinueStatement(label?: string | Identifier): ContinueStatement; 3850 updateContinueStatement(node: ContinueStatement, label: Identifier | undefined): ContinueStatement; 3851 createBreakStatement(label?: string | Identifier): BreakStatement; 3852 updateBreakStatement(node: BreakStatement, label: Identifier | undefined): BreakStatement; 3853 createReturnStatement(expression?: Expression): ReturnStatement; 3854 updateReturnStatement(node: ReturnStatement, expression: Expression | undefined): ReturnStatement; 3855 createWithStatement(expression: Expression, statement: Statement): WithStatement; 3856 updateWithStatement(node: WithStatement, expression: Expression, statement: Statement): WithStatement; 3857 createSwitchStatement(expression: Expression, caseBlock: CaseBlock): SwitchStatement; 3858 updateSwitchStatement(node: SwitchStatement, expression: Expression, caseBlock: CaseBlock): SwitchStatement; 3859 createLabeledStatement(label: string | Identifier, statement: Statement): LabeledStatement; 3860 updateLabeledStatement(node: LabeledStatement, label: Identifier, statement: Statement): LabeledStatement; 3861 createThrowStatement(expression: Expression): ThrowStatement; 3862 updateThrowStatement(node: ThrowStatement, expression: Expression): ThrowStatement; 3863 createTryStatement(tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement; 3864 updateTryStatement(node: TryStatement, tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement; 3865 createDebuggerStatement(): DebuggerStatement; 3866 createVariableDeclaration(name: string | BindingName, exclamationToken?: ExclamationToken, type?: TypeNode, initializer?: Expression): VariableDeclaration; 3867 updateVariableDeclaration(node: VariableDeclaration, name: BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 3868 createVariableDeclarationList(declarations: readonly VariableDeclaration[], flags?: NodeFlags): VariableDeclarationList; 3869 updateVariableDeclarationList(node: VariableDeclarationList, declarations: readonly VariableDeclaration[]): VariableDeclarationList; 3870 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; 3871 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; 3872 createClassDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 3873 updateClassDeclaration(node: ClassDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 3874 createStructDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): StructDeclaration; 3875 updateStructDeclaration(node: StructDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): StructDeclaration; 3876 createInterfaceDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 3877 updateInterfaceDeclaration(node: InterfaceDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 3878 createTypeAliasDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 3879 updateTypeAliasDeclaration(node: TypeAliasDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 3880 createEnumDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 3881 updateEnumDeclaration(node: EnumDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 3882 createModuleDeclaration(modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration; 3883 updateModuleDeclaration(node: ModuleDeclaration, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 3884 createModuleBlock(statements: readonly Statement[]): ModuleBlock; 3885 updateModuleBlock(node: ModuleBlock, statements: readonly Statement[]): ModuleBlock; 3886 createCaseBlock(clauses: readonly CaseOrDefaultClause[]): CaseBlock; 3887 updateCaseBlock(node: CaseBlock, clauses: readonly CaseOrDefaultClause[]): CaseBlock; 3888 createNamespaceExportDeclaration(name: string | Identifier): NamespaceExportDeclaration; 3889 updateNamespaceExportDeclaration(node: NamespaceExportDeclaration, name: Identifier): NamespaceExportDeclaration; 3890 createImportEqualsDeclaration(modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 3891 updateImportEqualsDeclaration(node: ImportEqualsDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 3892 createImportDeclaration(modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause): ImportDeclaration; 3893 updateImportDeclaration(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 3894 createImportClause(isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; 3895 updateImportClause(node: ImportClause, isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; 3896 createAssertClause(elements: NodeArray<AssertEntry>, multiLine?: boolean): AssertClause; 3897 updateAssertClause(node: AssertClause, elements: NodeArray<AssertEntry>, multiLine?: boolean): AssertClause; 3898 createAssertEntry(name: AssertionKey, value: Expression): AssertEntry; 3899 updateAssertEntry(node: AssertEntry, name: AssertionKey, value: Expression): AssertEntry; 3900 createImportTypeAssertionContainer(clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; 3901 updateImportTypeAssertionContainer(node: ImportTypeAssertionContainer, clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; 3902 createNamespaceImport(name: Identifier): NamespaceImport; 3903 updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport; 3904 createNamespaceExport(name: Identifier): NamespaceExport; 3905 updateNamespaceExport(node: NamespaceExport, name: Identifier): NamespaceExport; 3906 createNamedImports(elements: readonly ImportSpecifier[]): NamedImports; 3907 updateNamedImports(node: NamedImports, elements: readonly ImportSpecifier[]): NamedImports; 3908 createImportSpecifier(isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ImportSpecifier; 3909 updateImportSpecifier(node: ImportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ImportSpecifier; 3910 createExportAssignment(modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 3911 updateExportAssignment(node: ExportAssignment, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 3912 createExportDeclaration(modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression, assertClause?: AssertClause): ExportDeclaration; 3913 updateExportDeclaration(node: ExportDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, assertClause: AssertClause | undefined): ExportDeclaration; 3914 createNamedExports(elements: readonly ExportSpecifier[]): NamedExports; 3915 updateNamedExports(node: NamedExports, elements: readonly ExportSpecifier[]): NamedExports; 3916 createExportSpecifier(isTypeOnly: boolean, propertyName: string | Identifier | undefined, name: string | Identifier): ExportSpecifier; 3917 updateExportSpecifier(node: ExportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ExportSpecifier; 3918 createExternalModuleReference(expression: Expression): ExternalModuleReference; 3919 updateExternalModuleReference(node: ExternalModuleReference, expression: Expression): ExternalModuleReference; 3920 createJSDocAllType(): JSDocAllType; 3921 createJSDocUnknownType(): JSDocUnknownType; 3922 createJSDocNonNullableType(type: TypeNode, postfix?: boolean): JSDocNonNullableType; 3923 updateJSDocNonNullableType(node: JSDocNonNullableType, type: TypeNode): JSDocNonNullableType; 3924 createJSDocNullableType(type: TypeNode, postfix?: boolean): JSDocNullableType; 3925 updateJSDocNullableType(node: JSDocNullableType, type: TypeNode): JSDocNullableType; 3926 createJSDocOptionalType(type: TypeNode): JSDocOptionalType; 3927 updateJSDocOptionalType(node: JSDocOptionalType, type: TypeNode): JSDocOptionalType; 3928 createJSDocFunctionType(parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): JSDocFunctionType; 3929 updateJSDocFunctionType(node: JSDocFunctionType, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): JSDocFunctionType; 3930 createJSDocVariadicType(type: TypeNode): JSDocVariadicType; 3931 updateJSDocVariadicType(node: JSDocVariadicType, type: TypeNode): JSDocVariadicType; 3932 createJSDocNamepathType(type: TypeNode): JSDocNamepathType; 3933 updateJSDocNamepathType(node: JSDocNamepathType, type: TypeNode): JSDocNamepathType; 3934 createJSDocTypeExpression(type: TypeNode): JSDocTypeExpression; 3935 updateJSDocTypeExpression(node: JSDocTypeExpression, type: TypeNode): JSDocTypeExpression; 3936 createJSDocNameReference(name: EntityName | JSDocMemberName): JSDocNameReference; 3937 updateJSDocNameReference(node: JSDocNameReference, name: EntityName | JSDocMemberName): JSDocNameReference; 3938 createJSDocMemberName(left: EntityName | JSDocMemberName, right: Identifier): JSDocMemberName; 3939 updateJSDocMemberName(node: JSDocMemberName, left: EntityName | JSDocMemberName, right: Identifier): JSDocMemberName; 3940 createJSDocLink(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLink; 3941 updateJSDocLink(node: JSDocLink, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLink; 3942 createJSDocLinkCode(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkCode; 3943 updateJSDocLinkCode(node: JSDocLinkCode, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkCode; 3944 createJSDocLinkPlain(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkPlain; 3945 updateJSDocLinkPlain(node: JSDocLinkPlain, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkPlain; 3946 createJSDocTypeLiteral(jsDocPropertyTags?: readonly JSDocPropertyLikeTag[], isArrayType?: boolean): JSDocTypeLiteral; 3947 updateJSDocTypeLiteral(node: JSDocTypeLiteral, jsDocPropertyTags: readonly JSDocPropertyLikeTag[] | undefined, isArrayType: boolean | undefined): JSDocTypeLiteral; 3948 createJSDocSignature(typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type?: JSDocReturnTag): JSDocSignature; 3949 updateJSDocSignature(node: JSDocSignature, typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type: JSDocReturnTag | undefined): JSDocSignature; 3950 createJSDocTemplateTag(tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment?: string | NodeArray<JSDocComment>): JSDocTemplateTag; 3951 updateJSDocTemplateTag(node: JSDocTemplateTag, tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment: string | NodeArray<JSDocComment> | undefined): JSDocTemplateTag; 3952 createJSDocTypedefTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression | JSDocTypeLiteral, fullName?: Identifier | JSDocNamespaceDeclaration, comment?: string | NodeArray<JSDocComment>): JSDocTypedefTag; 3953 updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | JSDocTypeLiteral | undefined, fullName: Identifier | JSDocNamespaceDeclaration | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocTypedefTag; 3954 createJSDocParameterTag(tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression, isNameFirst?: boolean, comment?: string | NodeArray<JSDocComment>): JSDocParameterTag; 3955 updateJSDocParameterTag(node: JSDocParameterTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | NodeArray<JSDocComment> | undefined): JSDocParameterTag; 3956 createJSDocPropertyTag(tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression, isNameFirst?: boolean, comment?: string | NodeArray<JSDocComment>): JSDocPropertyTag; 3957 updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | NodeArray<JSDocComment> | undefined): JSDocPropertyTag; 3958 createJSDocTypeTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocTypeTag; 3959 updateJSDocTypeTag(node: JSDocTypeTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray<JSDocComment> | undefined): JSDocTypeTag; 3960 createJSDocSeeTag(tagName: Identifier | undefined, nameExpression: JSDocNameReference | undefined, comment?: string | NodeArray<JSDocComment>): JSDocSeeTag; 3961 updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier | undefined, nameExpression: JSDocNameReference | undefined, comment?: string | NodeArray<JSDocComment>): JSDocSeeTag; 3962 createJSDocReturnTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocReturnTag; 3963 updateJSDocReturnTag(node: JSDocReturnTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocReturnTag; 3964 createJSDocThisTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocThisTag; 3965 updateJSDocThisTag(node: JSDocThisTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocThisTag; 3966 createJSDocEnumTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocEnumTag; 3967 updateJSDocEnumTag(node: JSDocEnumTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray<JSDocComment> | undefined): JSDocEnumTag; 3968 createJSDocCallbackTag(tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName?: Identifier | JSDocNamespaceDeclaration, comment?: string | NodeArray<JSDocComment>): JSDocCallbackTag; 3969 updateJSDocCallbackTag(node: JSDocCallbackTag, tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName: Identifier | JSDocNamespaceDeclaration | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocCallbackTag; 3970 createJSDocAugmentsTag(tagName: Identifier | undefined, className: JSDocAugmentsTag["class"], comment?: string | NodeArray<JSDocComment>): JSDocAugmentsTag; 3971 updateJSDocAugmentsTag(node: JSDocAugmentsTag, tagName: Identifier | undefined, className: JSDocAugmentsTag["class"], comment: string | NodeArray<JSDocComment> | undefined): JSDocAugmentsTag; 3972 createJSDocImplementsTag(tagName: Identifier | undefined, className: JSDocImplementsTag["class"], comment?: string | NodeArray<JSDocComment>): JSDocImplementsTag; 3973 updateJSDocImplementsTag(node: JSDocImplementsTag, tagName: Identifier | undefined, className: JSDocImplementsTag["class"], comment: string | NodeArray<JSDocComment> | undefined): JSDocImplementsTag; 3974 createJSDocAuthorTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocAuthorTag; 3975 updateJSDocAuthorTag(node: JSDocAuthorTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocAuthorTag; 3976 createJSDocClassTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocClassTag; 3977 updateJSDocClassTag(node: JSDocClassTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocClassTag; 3978 createJSDocPublicTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocPublicTag; 3979 updateJSDocPublicTag(node: JSDocPublicTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocPublicTag; 3980 createJSDocPrivateTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocPrivateTag; 3981 updateJSDocPrivateTag(node: JSDocPrivateTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocPrivateTag; 3982 createJSDocProtectedTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocProtectedTag; 3983 updateJSDocProtectedTag(node: JSDocProtectedTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocProtectedTag; 3984 createJSDocReadonlyTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocReadonlyTag; 3985 updateJSDocReadonlyTag(node: JSDocReadonlyTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocReadonlyTag; 3986 createJSDocUnknownTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocUnknownTag; 3987 updateJSDocUnknownTag(node: JSDocUnknownTag, tagName: Identifier, comment: string | NodeArray<JSDocComment> | undefined): JSDocUnknownTag; 3988 createJSDocDeprecatedTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocDeprecatedTag; 3989 updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocDeprecatedTag; 3990 createJSDocOverrideTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag; 3991 updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag; 3992 createJSDocText(text: string): JSDocText; 3993 updateJSDocText(node: JSDocText, text: string): JSDocText; 3994 createJSDocComment(comment?: string | NodeArray<JSDocComment> | undefined, tags?: readonly JSDocTag[] | undefined): JSDoc; 3995 updateJSDocComment(node: JSDoc, comment: string | NodeArray<JSDocComment> | undefined, tags: readonly JSDocTag[] | undefined): JSDoc; 3996 createJsxElement(openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement; 3997 updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement; 3998 createJsxSelfClosingElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement; 3999 updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement; 4000 createJsxOpeningElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement; 4001 updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement; 4002 createJsxClosingElement(tagName: JsxTagNameExpression): JsxClosingElement; 4003 updateJsxClosingElement(node: JsxClosingElement, tagName: JsxTagNameExpression): JsxClosingElement; 4004 createJsxFragment(openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; 4005 createJsxText(text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText; 4006 updateJsxText(node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText; 4007 createJsxOpeningFragment(): JsxOpeningFragment; 4008 createJsxJsxClosingFragment(): JsxClosingFragment; 4009 updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; 4010 createJsxAttribute(name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; 4011 updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; 4012 createJsxAttributes(properties: readonly JsxAttributeLike[]): JsxAttributes; 4013 updateJsxAttributes(node: JsxAttributes, properties: readonly JsxAttributeLike[]): JsxAttributes; 4014 createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute; 4015 updateJsxSpreadAttribute(node: JsxSpreadAttribute, expression: Expression): JsxSpreadAttribute; 4016 createJsxExpression(dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined): JsxExpression; 4017 updateJsxExpression(node: JsxExpression, expression: Expression | undefined): JsxExpression; 4018 createCaseClause(expression: Expression, statements: readonly Statement[]): CaseClause; 4019 updateCaseClause(node: CaseClause, expression: Expression, statements: readonly Statement[]): CaseClause; 4020 createDefaultClause(statements: readonly Statement[]): DefaultClause; 4021 updateDefaultClause(node: DefaultClause, statements: readonly Statement[]): DefaultClause; 4022 createHeritageClause(token: HeritageClause["token"], types: readonly ExpressionWithTypeArguments[]): HeritageClause; 4023 updateHeritageClause(node: HeritageClause, types: readonly ExpressionWithTypeArguments[]): HeritageClause; 4024 createCatchClause(variableDeclaration: string | BindingName | VariableDeclaration | undefined, block: Block): CatchClause; 4025 updateCatchClause(node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block): CatchClause; 4026 createPropertyAssignment(name: string | PropertyName, initializer: Expression): PropertyAssignment; 4027 updatePropertyAssignment(node: PropertyAssignment, name: PropertyName, initializer: Expression): PropertyAssignment; 4028 createShorthandPropertyAssignment(name: string | Identifier, objectAssignmentInitializer?: Expression): ShorthandPropertyAssignment; 4029 updateShorthandPropertyAssignment(node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression | undefined): ShorthandPropertyAssignment; 4030 createSpreadAssignment(expression: Expression): SpreadAssignment; 4031 updateSpreadAssignment(node: SpreadAssignment, expression: Expression): SpreadAssignment; 4032 createEnumMember(name: string | PropertyName, initializer?: Expression): EnumMember; 4033 updateEnumMember(node: EnumMember, name: PropertyName, initializer: Expression | undefined): EnumMember; 4034 createSourceFile(statements: readonly Statement[], endOfFileToken: EndOfFileToken, flags: NodeFlags): SourceFile; 4035 updateSourceFile(node: SourceFile, statements: readonly Statement[], isDeclarationFile?: boolean, referencedFiles?: readonly FileReference[], typeReferences?: readonly FileReference[], hasNoDefaultLib?: boolean, libReferences?: readonly FileReference[]): SourceFile; 4036 createNotEmittedStatement(original: Node): NotEmittedStatement; 4037 createPartiallyEmittedExpression(expression: Expression, original?: Node): PartiallyEmittedExpression; 4038 updatePartiallyEmittedExpression(node: PartiallyEmittedExpression, expression: Expression): PartiallyEmittedExpression; 4039 createCommaListExpression(elements: readonly Expression[]): CommaListExpression; 4040 updateCommaListExpression(node: CommaListExpression, elements: readonly Expression[]): CommaListExpression; 4041 createBundle(sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[]): Bundle; 4042 updateBundle(node: Bundle, sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[]): Bundle; 4043 createComma(left: Expression, right: Expression): BinaryExpression; 4044 createAssignment(left: ObjectLiteralExpression | ArrayLiteralExpression, right: Expression): DestructuringAssignment; 4045 createAssignment(left: Expression, right: Expression): AssignmentExpression<EqualsToken>; 4046 createLogicalOr(left: Expression, right: Expression): BinaryExpression; 4047 createLogicalAnd(left: Expression, right: Expression): BinaryExpression; 4048 createBitwiseOr(left: Expression, right: Expression): BinaryExpression; 4049 createBitwiseXor(left: Expression, right: Expression): BinaryExpression; 4050 createBitwiseAnd(left: Expression, right: Expression): BinaryExpression; 4051 createStrictEquality(left: Expression, right: Expression): BinaryExpression; 4052 createStrictInequality(left: Expression, right: Expression): BinaryExpression; 4053 createEquality(left: Expression, right: Expression): BinaryExpression; 4054 createInequality(left: Expression, right: Expression): BinaryExpression; 4055 createLessThan(left: Expression, right: Expression): BinaryExpression; 4056 createLessThanEquals(left: Expression, right: Expression): BinaryExpression; 4057 createGreaterThan(left: Expression, right: Expression): BinaryExpression; 4058 createGreaterThanEquals(left: Expression, right: Expression): BinaryExpression; 4059 createLeftShift(left: Expression, right: Expression): BinaryExpression; 4060 createRightShift(left: Expression, right: Expression): BinaryExpression; 4061 createUnsignedRightShift(left: Expression, right: Expression): BinaryExpression; 4062 createAdd(left: Expression, right: Expression): BinaryExpression; 4063 createSubtract(left: Expression, right: Expression): BinaryExpression; 4064 createMultiply(left: Expression, right: Expression): BinaryExpression; 4065 createDivide(left: Expression, right: Expression): BinaryExpression; 4066 createModulo(left: Expression, right: Expression): BinaryExpression; 4067 createExponent(left: Expression, right: Expression): BinaryExpression; 4068 createPrefixPlus(operand: Expression): PrefixUnaryExpression; 4069 createPrefixMinus(operand: Expression): PrefixUnaryExpression; 4070 createPrefixIncrement(operand: Expression): PrefixUnaryExpression; 4071 createPrefixDecrement(operand: Expression): PrefixUnaryExpression; 4072 createBitwiseNot(operand: Expression): PrefixUnaryExpression; 4073 createLogicalNot(operand: Expression): PrefixUnaryExpression; 4074 createPostfixIncrement(operand: Expression): PostfixUnaryExpression; 4075 createPostfixDecrement(operand: Expression): PostfixUnaryExpression; 4076 createImmediatelyInvokedFunctionExpression(statements: readonly Statement[]): CallExpression; 4077 createImmediatelyInvokedFunctionExpression(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 4078 createImmediatelyInvokedArrowFunction(statements: readonly Statement[]): CallExpression; 4079 createImmediatelyInvokedArrowFunction(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 4080 createVoidZero(): VoidExpression; 4081 createExportDefault(expression: Expression): ExportAssignment; 4082 createExternalModuleExport(exportName: Identifier): ExportDeclaration; 4083 restoreOuterExpressions(outerExpression: Expression | undefined, innerExpression: Expression, kinds?: OuterExpressionKinds): Expression; 4084 } 4085 export interface CoreTransformationContext { 4086 readonly factory: NodeFactory; 4087 /** Gets the compiler options supplied to the transformer. */ 4088 getCompilerOptions(): CompilerOptions; 4089 /** Starts a new lexical environment. */ 4090 startLexicalEnvironment(): void; 4091 /** Suspends the current lexical environment, usually after visiting a parameter list. */ 4092 suspendLexicalEnvironment(): void; 4093 /** Resumes a suspended lexical environment, usually before visiting a function body. */ 4094 resumeLexicalEnvironment(): void; 4095 /** Ends a lexical environment, returning any declarations. */ 4096 endLexicalEnvironment(): Statement[] | undefined; 4097 /** Hoists a function declaration to the containing scope. */ 4098 hoistFunctionDeclaration(node: FunctionDeclaration): void; 4099 /** Hoists a variable declaration to the containing scope. */ 4100 hoistVariableDeclaration(node: Identifier): void; 4101 } 4102 export interface TransformationContext extends CoreTransformationContext { 4103 /** Records a request for a non-scoped emit helper in the current context. */ 4104 requestEmitHelper(helper: EmitHelper): void; 4105 /** Gets and resets the requested non-scoped emit helpers. */ 4106 readEmitHelpers(): EmitHelper[] | undefined; 4107 /** Enables expression substitutions in the pretty printer for the provided SyntaxKind. */ 4108 enableSubstitution(kind: SyntaxKind): void; 4109 /** Determines whether expression substitutions are enabled for the provided node. */ 4110 isSubstitutionEnabled(node: Node): boolean; 4111 /** 4112 * Hook used by transformers to substitute expressions just before they 4113 * are emitted by the pretty printer. 4114 * 4115 * NOTE: Transformation hooks should only be modified during `Transformer` initialization, 4116 * before returning the `NodeTransformer` callback. 4117 */ 4118 onSubstituteNode: (hint: EmitHint, node: Node) => Node; 4119 /** 4120 * Enables before/after emit notifications in the pretty printer for the provided 4121 * SyntaxKind. 4122 */ 4123 enableEmitNotification(kind: SyntaxKind): void; 4124 /** 4125 * Determines whether before/after emit notifications should be raised in the pretty 4126 * printer when it emits a node. 4127 */ 4128 isEmitNotificationEnabled(node: Node): boolean; 4129 /** 4130 * Hook used to allow transformers to capture state before or after 4131 * the printer emits a node. 4132 * 4133 * NOTE: Transformation hooks should only be modified during `Transformer` initialization, 4134 * before returning the `NodeTransformer` callback. 4135 */ 4136 onEmitNode: (hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void) => void; 4137 /** Determines whether the lexical environment is suspended */ 4138 isLexicalEnvironmentSuspended?(): boolean; 4139 } 4140 export interface TransformationResult<T extends Node> { 4141 /** Gets the transformed source files. */ 4142 transformed: T[]; 4143 /** Gets diagnostics for the transformation. */ 4144 diagnostics?: DiagnosticWithLocation[]; 4145 /** 4146 * Gets a substitute for a node, if one is available; otherwise, returns the original node. 4147 * 4148 * @param hint A hint as to the intended usage of the node. 4149 * @param node The node to substitute. 4150 */ 4151 substituteNode(hint: EmitHint, node: Node): Node; 4152 /** 4153 * Emits a node with possible notification. 4154 * 4155 * @param hint A hint as to the intended usage of the node. 4156 * @param node The node to emit. 4157 * @param emitCallback A callback used to emit the node. 4158 */ 4159 emitNodeWithNotification(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void; 4160 /** 4161 * Indicates if a given node needs an emit notification 4162 * 4163 * @param node The node to emit. 4164 */ 4165 isEmitNotificationEnabled?(node: Node): boolean; 4166 /** 4167 * Clean up EmitNode entries on any parse-tree nodes. 4168 */ 4169 dispose(): void; 4170 } 4171 /** 4172 * A function that is used to initialize and return a `Transformer` callback, which in turn 4173 * will be used to transform one or more nodes. 4174 */ 4175 export type TransformerFactory<T extends Node> = (context: TransformationContext) => Transformer<T>; 4176 /** 4177 * A function that transforms a node. 4178 */ 4179 export type Transformer<T extends Node> = (node: T) => T; 4180 /** 4181 * A function that accepts and possibly transforms a node. 4182 */ 4183 export type Visitor = (node: Node) => VisitResult<Node>; 4184 export interface NodeVisitor { 4185 <T extends Node>(nodes: T, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T; 4186 <T extends Node>(nodes: T | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T | undefined; 4187 } 4188 export interface NodesVisitor { 4189 <T extends Node>(nodes: NodeArray<T>, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T>; 4190 <T extends Node>(nodes: NodeArray<T> | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T> | undefined; 4191 } 4192 export type VisitResult<T extends Node> = T | readonly T[] | undefined; 4193 export interface Printer { 4194 /** 4195 * Print a node and its subtree as-is, without any emit transformations. 4196 * @param hint A value indicating the purpose of a node. This is primarily used to 4197 * distinguish between an `Identifier` used in an expression position, versus an 4198 * `Identifier` used as an `IdentifierName` as part of a declaration. For most nodes you 4199 * should just pass `Unspecified`. 4200 * @param node The node to print. The node and its subtree are printed as-is, without any 4201 * emit transformations. 4202 * @param sourceFile A source file that provides context for the node. The source text of 4203 * the file is used to emit the original source content for literals and identifiers, while 4204 * the identifiers of the source file are used when generating unique names to avoid 4205 * collisions. 4206 */ 4207 printNode(hint: EmitHint, node: Node, sourceFile: SourceFile): string; 4208 /** 4209 * Prints a list of nodes using the given format flags 4210 */ 4211 printList<T extends Node>(format: ListFormat, list: NodeArray<T>, sourceFile: SourceFile): string; 4212 /** 4213 * Prints a source file as-is, without any emit transformations. 4214 */ 4215 printFile(sourceFile: SourceFile): string; 4216 /** 4217 * Prints a bundle of source files as-is, without any emit transformations. 4218 */ 4219 printBundle(bundle: Bundle): string; 4220 writeFile(sourceFile: SourceFile, writer: EmitTextWriter, sourceMapGenerator: SourceMapGenerator | undefined): void; 4221 } 4222 export interface PrintHandlers { 4223 /** 4224 * A hook used by the Printer when generating unique names to avoid collisions with 4225 * globally defined names that exist outside of the current source file. 4226 */ 4227 hasGlobalName?(name: string): boolean; 4228 /** 4229 * A hook used by the Printer to provide notifications prior to emitting a node. A 4230 * compatible implementation **must** invoke `emitCallback` with the provided `hint` and 4231 * `node` values. 4232 * @param hint A hint indicating the intended purpose of the node. 4233 * @param node The node to emit. 4234 * @param emitCallback A callback that, when invoked, will emit the node. 4235 * @example 4236 * ```ts 4237 * var printer = createPrinter(printerOptions, { 4238 * onEmitNode(hint, node, emitCallback) { 4239 * // set up or track state prior to emitting the node... 4240 * emitCallback(hint, node); 4241 * // restore state after emitting the node... 4242 * } 4243 * }); 4244 * ``` 4245 */ 4246 onEmitNode?(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void; 4247 /** 4248 * A hook used to check if an emit notification is required for a node. 4249 * @param node The node to emit. 4250 */ 4251 isEmitNotificationEnabled?(node: Node): boolean; 4252 /** 4253 * A hook used by the Printer to perform just-in-time substitution of a node. This is 4254 * primarily used by node transformations that need to substitute one node for another, 4255 * such as replacing `myExportedVar` with `exports.myExportedVar`. 4256 * @param hint A hint indicating the intended purpose of the node. 4257 * @param node The node to emit. 4258 * @example 4259 * ```ts 4260 * var printer = createPrinter(printerOptions, { 4261 * substituteNode(hint, node) { 4262 * // perform substitution if necessary... 4263 * return node; 4264 * } 4265 * }); 4266 * ``` 4267 */ 4268 substituteNode?(hint: EmitHint, node: Node): Node; 4269 } 4270 export interface PrinterOptions { 4271 removeComments?: boolean; 4272 newLine?: NewLineKind; 4273 omitTrailingSemicolon?: boolean; 4274 noEmitHelpers?: boolean; 4275 sourceMap?: boolean; 4276 inlineSourceMap?: boolean; 4277 inlineSources?: boolean; 4278 } 4279 export interface RawSourceMap { 4280 version: 3; 4281 file: string; 4282 sourceRoot?: string | null; 4283 sources: string[]; 4284 sourcesContent?: (string | null)[] | null; 4285 mappings: string; 4286 names?: string[] | null; 4287 } 4288 /** 4289 * Generates a source map. 4290 */ 4291 export interface SourceMapGenerator { 4292 getSources(): readonly string[]; 4293 /** 4294 * Adds a source to the source map. 4295 */ 4296 addSource(fileName: string): number; 4297 /** 4298 * Set the content for a source. 4299 */ 4300 setSourceContent(sourceIndex: number, content: string | null): void; 4301 /** 4302 * Adds a name. 4303 */ 4304 addName(name: string): number; 4305 /** 4306 * Adds a mapping without source information. 4307 */ 4308 addMapping(generatedLine: number, generatedCharacter: number): void; 4309 /** 4310 * Adds a mapping with source information. 4311 */ 4312 addMapping(generatedLine: number, generatedCharacter: number, sourceIndex: number, sourceLine: number, sourceCharacter: number, nameIndex?: number): void; 4313 /** 4314 * Appends a source map. 4315 */ 4316 appendSourceMap(generatedLine: number, generatedCharacter: number, sourceMap: RawSourceMap, sourceMapPath: string, start?: LineAndCharacter, end?: LineAndCharacter): void; 4317 /** 4318 * Gets the source map as a `RawSourceMap` object. 4319 */ 4320 toJSON(): RawSourceMap; 4321 /** 4322 * Gets the string representation of the source map. 4323 */ 4324 toString(): string; 4325 } 4326 export interface EmitTextWriter extends SymbolWriter { 4327 write(s: string): void; 4328 writeTrailingSemicolon(text: string): void; 4329 writeComment(text: string): void; 4330 getText(): string; 4331 rawWrite(s: string): void; 4332 writeLiteral(s: string): void; 4333 getTextPos(): number; 4334 getLine(): number; 4335 getColumn(): number; 4336 getIndent(): number; 4337 isAtStartOfLine(): boolean; 4338 hasTrailingComment(): boolean; 4339 hasTrailingWhitespace(): boolean; 4340 getTextPosWithWriteLine?(): number; 4341 nonEscapingWrite?(text: string): void; 4342 } 4343 export interface GetEffectiveTypeRootsHost { 4344 directoryExists?(directoryName: string): boolean; 4345 getCurrentDirectory?(): string; 4346 } 4347 export interface ModuleSpecifierResolutionHost { 4348 useCaseSensitiveFileNames?(): boolean; 4349 fileExists(path: string): boolean; 4350 getCurrentDirectory(): string; 4351 directoryExists?(path: string): boolean; 4352 readFile?(path: string): string | undefined; 4353 realpath?(path: string): string; 4354 getModuleSpecifierCache?(): ModuleSpecifierCache; 4355 getPackageJsonInfoCache?(): PackageJsonInfoCache | undefined; 4356 getGlobalTypingsCacheLocation?(): string | undefined; 4357 getNearestAncestorDirectoryWithPackageJson?(fileName: string, rootDir?: string): string | undefined; 4358 readonly redirectTargetsMap: RedirectTargetsMap; 4359 getProjectReferenceRedirect(fileName: string): string | undefined; 4360 isSourceOfProjectReferenceRedirect(fileName: string): boolean; 4361 } 4362 export interface ModulePath { 4363 path: string; 4364 isInNodeModules: boolean; 4365 isRedirect: boolean; 4366 } 4367 export interface ResolvedModuleSpecifierInfo { 4368 modulePaths: readonly ModulePath[] | undefined; 4369 moduleSpecifiers: readonly string[] | undefined; 4370 isBlockedByPackageJsonDependencies: boolean | undefined; 4371 } 4372 export interface ModuleSpecifierOptions { 4373 overrideImportMode?: SourceFile["impliedNodeFormat"]; 4374 } 4375 export interface ModuleSpecifierCache { 4376 get(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions): Readonly<ResolvedModuleSpecifierInfo> | undefined; 4377 set(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, modulePaths: readonly ModulePath[], moduleSpecifiers: readonly string[]): void; 4378 setBlockedByPackageJsonDependencies(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, isBlockedByPackageJsonDependencies: boolean): void; 4379 setModulePaths(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, modulePaths: readonly ModulePath[]): void; 4380 clear(): void; 4381 count(): number; 4382 } 4383 export interface SymbolTracker { 4384 trackSymbol?(symbol: Symbol, enclosingDeclaration: Node | undefined, meaning: SymbolFlags): boolean; 4385 reportInaccessibleThisError?(): void; 4386 reportPrivateInBaseOfClassExpression?(propertyName: string): void; 4387 reportInaccessibleUniqueSymbolError?(): void; 4388 reportCyclicStructureError?(): void; 4389 reportLikelyUnsafeImportRequiredError?(specifier: string): void; 4390 reportTruncationError?(): void; 4391 moduleResolverHost?: ModuleSpecifierResolutionHost & { 4392 getCommonSourceDirectory(): string; 4393 }; 4394 trackReferencedAmbientModule?(decl: ModuleDeclaration, symbol: Symbol): void; 4395 trackExternalModuleSymbolOfImportTypeNode?(symbol: Symbol): void; 4396 reportNonlocalAugmentation?(containingFile: SourceFile, parentSymbol: Symbol, augmentingSymbol: Symbol): void; 4397 reportNonSerializableProperty?(propertyName: string): void; 4398 reportImportTypeNodeResolutionModeOverride?(): void; 4399 } 4400 export interface TextSpan { 4401 start: number; 4402 length: number; 4403 } 4404 export interface TextChangeRange { 4405 span: TextSpan; 4406 newLength: number; 4407 } 4408 export interface SyntaxList extends Node { 4409 kind: SyntaxKind.SyntaxList; 4410 _children: Node[]; 4411 } 4412 export enum ListFormat { 4413 None = 0, 4414 SingleLine = 0, 4415 MultiLine = 1, 4416 PreserveLines = 2, 4417 LinesMask = 3, 4418 NotDelimited = 0, 4419 BarDelimited = 4, 4420 AmpersandDelimited = 8, 4421 CommaDelimited = 16, 4422 AsteriskDelimited = 32, 4423 DelimitersMask = 60, 4424 AllowTrailingComma = 64, 4425 Indented = 128, 4426 SpaceBetweenBraces = 256, 4427 SpaceBetweenSiblings = 512, 4428 Braces = 1024, 4429 Parenthesis = 2048, 4430 AngleBrackets = 4096, 4431 SquareBrackets = 8192, 4432 BracketsMask = 15360, 4433 OptionalIfUndefined = 16384, 4434 OptionalIfEmpty = 32768, 4435 Optional = 49152, 4436 PreferNewLine = 65536, 4437 NoTrailingNewLine = 131072, 4438 NoInterveningComments = 262144, 4439 NoSpaceIfEmpty = 524288, 4440 SingleElement = 1048576, 4441 SpaceAfterList = 2097152, 4442 Modifiers = 2359808, 4443 HeritageClauses = 512, 4444 SingleLineTypeLiteralMembers = 768, 4445 MultiLineTypeLiteralMembers = 32897, 4446 SingleLineTupleTypeElements = 528, 4447 MultiLineTupleTypeElements = 657, 4448 UnionTypeConstituents = 516, 4449 IntersectionTypeConstituents = 520, 4450 ObjectBindingPatternElements = 525136, 4451 ArrayBindingPatternElements = 524880, 4452 ObjectLiteralExpressionProperties = 526226, 4453 ImportClauseEntries = 526226, 4454 ArrayLiteralExpressionElements = 8914, 4455 CommaListElements = 528, 4456 CallExpressionArguments = 2576, 4457 NewExpressionArguments = 18960, 4458 TemplateExpressionSpans = 262144, 4459 SingleLineBlockStatements = 768, 4460 MultiLineBlockStatements = 129, 4461 VariableDeclarationList = 528, 4462 SingleLineFunctionBodyStatements = 768, 4463 MultiLineFunctionBodyStatements = 1, 4464 ClassHeritageClauses = 0, 4465 ClassMembers = 129, 4466 InterfaceMembers = 129, 4467 EnumMembers = 145, 4468 CaseBlockClauses = 129, 4469 NamedImportsOrExportsElements = 525136, 4470 JsxElementOrFragmentChildren = 262144, 4471 JsxElementAttributes = 262656, 4472 CaseOrDefaultClauseStatements = 163969, 4473 HeritageClauseTypes = 528, 4474 SourceFileStatements = 131073, 4475 Decorators = 2146305, 4476 TypeArguments = 53776, 4477 TypeParameters = 53776, 4478 Parameters = 2576, 4479 IndexSignatureParameters = 8848, 4480 JSDocComment = 33 4481 } 4482 export interface UserPreferences { 4483 readonly disableSuggestions?: boolean; 4484 readonly quotePreference?: "auto" | "double" | "single"; 4485 readonly includeCompletionsForModuleExports?: boolean; 4486 readonly includeCompletionsForImportStatements?: boolean; 4487 readonly includeCompletionsWithSnippetText?: boolean; 4488 readonly includeAutomaticOptionalChainCompletions?: boolean; 4489 readonly includeCompletionsWithInsertText?: boolean; 4490 readonly includeCompletionsWithClassMemberSnippets?: boolean; 4491 readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; 4492 readonly useLabelDetailsInCompletionEntries?: boolean; 4493 readonly allowIncompleteCompletions?: boolean; 4494 readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; 4495 /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ 4496 readonly importModuleSpecifierEnding?: "auto" | "minimal" | "index" | "js"; 4497 readonly allowTextChangesInNewFiles?: boolean; 4498 readonly providePrefixAndSuffixTextForRename?: boolean; 4499 readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; 4500 readonly provideRefactorNotApplicableReason?: boolean; 4501 readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; 4502 readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; 4503 readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; 4504 readonly includeInlayFunctionParameterTypeHints?: boolean; 4505 readonly includeInlayVariableTypeHints?: boolean; 4506 readonly includeInlayVariableTypeHintsWhenTypeMatchesName?: boolean; 4507 readonly includeInlayPropertyDeclarationTypeHints?: boolean; 4508 readonly includeInlayFunctionLikeReturnTypeHints?: boolean; 4509 readonly includeInlayEnumMemberValueHints?: boolean; 4510 readonly allowRenameOfImportPath?: boolean; 4511 readonly autoImportFileExcludePatterns?: string[]; 4512 } 4513 /** Represents a bigint literal value without requiring bigint support */ 4514 export interface PseudoBigInt { 4515 negative: boolean; 4516 base10Value: string; 4517 } 4518 export {}; 4519} 4520declare function setTimeout(handler: (...args: any[]) => void, timeout: number): any; 4521declare function clearTimeout(handle: any): void; 4522declare namespace ts { 4523 export enum FileWatcherEventKind { 4524 Created = 0, 4525 Changed = 1, 4526 Deleted = 2 4527 } 4528 export type FileWatcherCallback = (fileName: string, eventKind: FileWatcherEventKind, modifiedTime?: Date) => void; 4529 export type DirectoryWatcherCallback = (fileName: string) => void; 4530 export interface System { 4531 args: string[]; 4532 newLine: string; 4533 useCaseSensitiveFileNames: boolean; 4534 write(s: string): void; 4535 writeOutputIsTTY?(): boolean; 4536 getWidthOfTerminal?(): number; 4537 readFile(path: string, encoding?: string): string | undefined; 4538 getFileSize?(path: string): number; 4539 writeFile(path: string, data: string, writeByteOrderMark?: boolean): void; 4540 /** 4541 * @pollingInterval - this parameter is used in polling-based watchers and ignored in watchers that 4542 * use native OS file watching 4543 */ 4544 watchFile?(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher; 4545 watchDirectory?(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher; 4546 resolvePath(path: string): string; 4547 fileExists(path: string): boolean; 4548 directoryExists(path: string): boolean; 4549 createDirectory(path: string): void; 4550 getExecutingFilePath(): string; 4551 getCurrentDirectory(): string; 4552 getDirectories(path: string): string[]; 4553 readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 4554 getModifiedTime?(path: string): Date | undefined; 4555 setModifiedTime?(path: string, time: Date): void; 4556 deleteFile?(path: string): void; 4557 /** 4558 * A good implementation is node.js' `crypto.createHash`. (https://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm) 4559 */ 4560 createHash?(data: string): string; 4561 /** This must be cryptographically secure. Only implement this method using `crypto.createHash("sha256")`. */ 4562 createSHA256Hash?(data: string): string; 4563 getMemoryUsage?(): number; 4564 exit(exitCode?: number): void; 4565 realpath?(path: string): string; 4566 setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; 4567 clearTimeout?(timeoutId: any): void; 4568 clearScreen?(): void; 4569 base64decode?(input: string): string; 4570 base64encode?(input: string): string; 4571 } 4572 export interface FileWatcher { 4573 close(): void; 4574 } 4575 export function getNodeMajorVersion(): number | undefined; 4576 export let sys: System; 4577 export {}; 4578} 4579declare namespace ts { 4580 type ErrorCallback = (message: DiagnosticMessage, length: number) => void; 4581 interface Scanner { 4582 getStartPos(): number; 4583 getToken(): SyntaxKind; 4584 getTextPos(): number; 4585 getTokenPos(): number; 4586 getTokenText(): string; 4587 getTokenValue(): string; 4588 hasUnicodeEscape(): boolean; 4589 hasExtendedUnicodeEscape(): boolean; 4590 hasPrecedingLineBreak(): boolean; 4591 isIdentifier(): boolean; 4592 isReservedWord(): boolean; 4593 isUnterminated(): boolean; 4594 reScanGreaterToken(): SyntaxKind; 4595 reScanSlashToken(): SyntaxKind; 4596 reScanAsteriskEqualsToken(): SyntaxKind; 4597 reScanTemplateToken(isTaggedTemplate: boolean): SyntaxKind; 4598 reScanTemplateHeadOrNoSubstitutionTemplate(): SyntaxKind; 4599 scanJsxIdentifier(): SyntaxKind; 4600 scanJsxAttributeValue(): SyntaxKind; 4601 reScanJsxAttributeValue(): SyntaxKind; 4602 reScanJsxToken(allowMultilineJsxText?: boolean): JsxTokenSyntaxKind; 4603 reScanLessThanToken(): SyntaxKind; 4604 reScanHashToken(): SyntaxKind; 4605 reScanQuestionToken(): SyntaxKind; 4606 reScanInvalidIdentifier(): SyntaxKind; 4607 scanJsxToken(): JsxTokenSyntaxKind; 4608 scanJsDocToken(): JSDocSyntaxKind; 4609 scan(): SyntaxKind; 4610 getText(): string; 4611 setText(text: string | undefined, start?: number, length?: number): void; 4612 setOnError(onError: ErrorCallback | undefined): void; 4613 setScriptTarget(scriptTarget: ScriptTarget): void; 4614 setLanguageVariant(variant: LanguageVariant): void; 4615 setTextPos(textPos: number): void; 4616 lookAhead<T>(callback: () => T): T; 4617 scanRange<T>(start: number, length: number, callback: () => T): T; 4618 tryScan<T>(callback: () => T): T; 4619 setEtsContext(isEtsContext: boolean): void; 4620 } 4621 function tokenToString(t: SyntaxKind): string | undefined; 4622 function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number): number; 4623 function getLineAndCharacterOfPosition(sourceFile: SourceFileLike, position: number): LineAndCharacter; 4624 function isWhiteSpaceLike(ch: number): boolean; 4625 /** Does not include line breaks. For that, see isWhiteSpaceLike. */ 4626 function isWhiteSpaceSingleLine(ch: number): boolean; 4627 function isLineBreak(ch: number): boolean; 4628 function couldStartTrivia(text: string, pos: number): boolean; 4629 function forEachLeadingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; 4630 function forEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; 4631 function forEachTrailingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; 4632 function forEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; 4633 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; 4634 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; 4635 function getLeadingCommentRanges(text: string, pos: number): CommentRange[] | undefined; 4636 function getTrailingCommentRanges(text: string, pos: number): CommentRange[] | undefined; 4637 /** Optionally, get the shebang */ 4638 function getShebang(text: string): string | undefined; 4639 function isIdentifierStart(ch: number, languageVersion: ScriptTarget | undefined): boolean; 4640 function isIdentifierPart(ch: number, languageVersion: ScriptTarget | undefined, identifierVariant?: LanguageVariant): boolean; 4641 function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, languageVariant?: LanguageVariant, textInitial?: string, onError?: ErrorCallback, start?: number, length?: number): Scanner; 4642} 4643declare namespace ts { 4644 function isExternalModuleNameRelative(moduleName: string): boolean; 4645 function sortAndDeduplicateDiagnostics<T extends Diagnostic>(diagnostics: readonly T[]): SortedReadonlyArray<T>; 4646 function getDefaultLibFileName(options: CompilerOptions): string; 4647 function textSpanEnd(span: TextSpan): number; 4648 function textSpanIsEmpty(span: TextSpan): boolean; 4649 function textSpanContainsPosition(span: TextSpan, position: number): boolean; 4650 function textSpanContainsTextSpan(span: TextSpan, other: TextSpan): boolean; 4651 function textSpanOverlapsWith(span: TextSpan, other: TextSpan): boolean; 4652 function textSpanOverlap(span1: TextSpan, span2: TextSpan): TextSpan | undefined; 4653 function textSpanIntersectsWithTextSpan(span: TextSpan, other: TextSpan): boolean; 4654 function textSpanIntersectsWith(span: TextSpan, start: number, length: number): boolean; 4655 function decodedTextSpanIntersectsWith(start1: number, length1: number, start2: number, length2: number): boolean; 4656 function textSpanIntersectsWithPosition(span: TextSpan, position: number): boolean; 4657 function textSpanIntersection(span1: TextSpan, span2: TextSpan): TextSpan | undefined; 4658 function createTextSpan(start: number, length: number): TextSpan; 4659 function createTextSpanFromBounds(start: number, end: number): TextSpan; 4660 function textChangeRangeNewSpan(range: TextChangeRange): TextSpan; 4661 function textChangeRangeIsUnchanged(range: TextChangeRange): boolean; 4662 function createTextChangeRange(span: TextSpan, newLength: number): TextChangeRange; 4663 let unchangedTextChangeRange: TextChangeRange; 4664 /** 4665 * Called to merge all the changes that occurred across several versions of a script snapshot 4666 * into a single change. i.e. if a user keeps making successive edits to a script we will 4667 * have a text change from V1 to V2, V2 to V3, ..., Vn. 4668 * 4669 * This function will then merge those changes into a single change range valid between V1 and 4670 * Vn. 4671 */ 4672 function collapseTextChangeRangesAcrossMultipleVersions(changes: readonly TextChangeRange[]): TextChangeRange; 4673 function getTypeParameterOwner(d: Declaration): Declaration | undefined; 4674 type ParameterPropertyDeclaration = ParameterDeclaration & { 4675 parent: ConstructorDeclaration; 4676 name: Identifier; 4677 }; 4678 function isParameterPropertyDeclaration(node: Node, parent: Node): node is ParameterPropertyDeclaration; 4679 function isEmptyBindingPattern(node: BindingName): node is BindingPattern; 4680 function isEmptyBindingElement(node: BindingElement): boolean; 4681 function walkUpBindingElementsAndPatterns(binding: BindingElement): VariableDeclaration | ParameterDeclaration; 4682 function getCombinedModifierFlags(node: Declaration): ModifierFlags; 4683 function getCombinedNodeFlags(node: Node): NodeFlags; 4684 /** 4685 * Checks to see if the locale is in the appropriate format, 4686 * and if it is, attempts to set the appropriate language. 4687 */ 4688 function validateLocaleAndSetLanguage(locale: string, sys: { 4689 getExecutingFilePath(): string; 4690 resolvePath(path: string): string; 4691 fileExists(fileName: string): boolean; 4692 readFile(fileName: string): string | undefined; 4693 }, errors?: Push<Diagnostic>): void; 4694 function getOriginalNode(node: Node): Node; 4695 function getOriginalNode<T extends Node>(node: Node, nodeTest: (node: Node) => node is T): T; 4696 function getOriginalNode(node: Node | undefined): Node | undefined; 4697 function getOriginalNode<T extends Node>(node: Node | undefined, nodeTest: (node: Node | undefined) => node is T): T | undefined; 4698 /** 4699 * Iterates through the parent chain of a node and performs the callback on each parent until the callback 4700 * returns a truthy value, then returns that value. 4701 * If no such value is found, it applies the callback until the parent pointer is undefined or the callback returns "quit" 4702 * At that point findAncestor returns undefined. 4703 */ 4704 function findAncestor<T extends Node>(node: Node | undefined, callback: (element: Node) => element is T): T | undefined; 4705 function findAncestor(node: Node | undefined, callback: (element: Node) => boolean | "quit"): Node | undefined; 4706 /** 4707 * Gets a value indicating whether a node originated in the parse tree. 4708 * 4709 * @param node The node to test. 4710 */ 4711 function isParseTreeNode(node: Node): boolean; 4712 /** 4713 * Gets the original parse tree node for a node. 4714 * 4715 * @param node The original node. 4716 * @returns The original parse tree node if found; otherwise, undefined. 4717 */ 4718 function getParseTreeNode(node: Node | undefined): Node | undefined; 4719 /** 4720 * Gets the original parse tree node for a node. 4721 * 4722 * @param node The original node. 4723 * @param nodeTest A callback used to ensure the correct type of parse tree node is returned. 4724 * @returns The original parse tree node if found; otherwise, undefined. 4725 */ 4726 function getParseTreeNode<T extends Node>(node: T | undefined, nodeTest?: (node: Node) => node is T): T | undefined; 4727 /** Add an extra underscore to identifiers that start with two underscores to avoid issues with magic names like '__proto__' */ 4728 function escapeLeadingUnderscores(identifier: string): __String; 4729 /** 4730 * Remove extra underscore from escaped identifier text content. 4731 * 4732 * @param identifier The escaped identifier text. 4733 * @returns The unescaped identifier text. 4734 */ 4735 function unescapeLeadingUnderscores(identifier: __String): string; 4736 function idText(identifierOrPrivateName: Identifier | PrivateIdentifier): string; 4737 function symbolName(symbol: Symbol): string; 4738 function getNameOfJSDocTypedef(declaration: JSDocTypedefTag): Identifier | PrivateIdentifier | undefined; 4739 function getNameOfDeclaration(declaration: Declaration | Expression | undefined): DeclarationName | undefined; 4740 function getDecorators(node: HasDecorators): readonly Decorator[] | undefined; 4741 function getModifiers(node: HasModifiers): readonly Modifier[] | undefined; 4742 function getAllDecorators(node: Node | undefined): readonly Decorator[]; 4743 function getIllegalDecorators(node: HasIllegalDecorators): readonly Decorator[] | undefined; 4744 /** 4745 * Gets the JSDoc parameter tags for the node if present. 4746 * 4747 * @remarks Returns any JSDoc param tag whose name matches the provided 4748 * parameter, whether a param tag on a containing function 4749 * expression, or a param tag on a variable declaration whose 4750 * initializer is the containing function. The tags closest to the 4751 * node are returned first, so in the previous example, the param 4752 * tag on the containing function expression would be first. 4753 * 4754 * For binding patterns, parameter tags are matched by position. 4755 */ 4756 function getJSDocParameterTags(param: ParameterDeclaration): readonly JSDocParameterTag[]; 4757 /** 4758 * Gets the JSDoc type parameter tags for the node if present. 4759 * 4760 * @remarks Returns any JSDoc template tag whose names match the provided 4761 * parameter, whether a template tag on a containing function 4762 * expression, or a template tag on a variable declaration whose 4763 * initializer is the containing function. The tags closest to the 4764 * node are returned first, so in the previous example, the template 4765 * tag on the containing function expression would be first. 4766 */ 4767 function getJSDocTypeParameterTags(param: TypeParameterDeclaration): readonly JSDocTemplateTag[]; 4768 /** 4769 * Return true if the node has JSDoc parameter tags. 4770 * 4771 * @remarks Includes parameter tags that are not directly on the node, 4772 * for example on a variable declaration whose initializer is a function expression. 4773 */ 4774 function hasJSDocParameterTags(node: FunctionLikeDeclaration | SignatureDeclaration): boolean; 4775 /** Gets the JSDoc augments tag for the node if present */ 4776 function getJSDocAugmentsTag(node: Node): JSDocAugmentsTag | undefined; 4777 /** Gets the JSDoc implements tags for the node if present */ 4778 function getJSDocImplementsTags(node: Node): readonly JSDocImplementsTag[]; 4779 /** Gets the JSDoc class tag for the node if present */ 4780 function getJSDocClassTag(node: Node): JSDocClassTag | undefined; 4781 /** Gets the JSDoc public tag for the node if present */ 4782 function getJSDocPublicTag(node: Node): JSDocPublicTag | undefined; 4783 /** Gets the JSDoc private tag for the node if present */ 4784 function getJSDocPrivateTag(node: Node): JSDocPrivateTag | undefined; 4785 /** Gets the JSDoc protected tag for the node if present */ 4786 function getJSDocProtectedTag(node: Node): JSDocProtectedTag | undefined; 4787 /** Gets the JSDoc protected tag for the node if present */ 4788 function getJSDocReadonlyTag(node: Node): JSDocReadonlyTag | undefined; 4789 function getJSDocOverrideTagNoCache(node: Node): JSDocOverrideTag | undefined; 4790 /** Gets the JSDoc deprecated tag for the node if present */ 4791 function getJSDocDeprecatedTag(node: Node): JSDocDeprecatedTag | undefined; 4792 /** Gets the JSDoc enum tag for the node if present */ 4793 function getJSDocEnumTag(node: Node): JSDocEnumTag | undefined; 4794 /** Gets the JSDoc this tag for the node if present */ 4795 function getJSDocThisTag(node: Node): JSDocThisTag | undefined; 4796 /** Gets the JSDoc return tag for the node if present */ 4797 function getJSDocReturnTag(node: Node): JSDocReturnTag | undefined; 4798 /** Gets the JSDoc template tag for the node if present */ 4799 function getJSDocTemplateTag(node: Node): JSDocTemplateTag | undefined; 4800 /** Gets the JSDoc type tag for the node if present and valid */ 4801 function getJSDocTypeTag(node: Node): JSDocTypeTag | undefined; 4802 /** 4803 * Gets the type node for the node if provided via JSDoc. 4804 * 4805 * @remarks The search includes any JSDoc param tag that relates 4806 * to the provided parameter, for example a type tag on the 4807 * parameter itself, or a param tag on a containing function 4808 * expression, or a param tag on a variable declaration whose 4809 * initializer is the containing function. The tags closest to the 4810 * node are examined first, so in the previous example, the type 4811 * tag directly on the node would be returned. 4812 */ 4813 function getJSDocType(node: Node): TypeNode | undefined; 4814 /** 4815 * Gets the return type node for the node if provided via JSDoc return tag or type tag. 4816 * 4817 * @remarks `getJSDocReturnTag` just gets the whole JSDoc tag. This function 4818 * gets the type from inside the braces, after the fat arrow, etc. 4819 */ 4820 function getJSDocReturnType(node: Node): TypeNode | undefined; 4821 /** Get all JSDoc tags related to a node, including those on parent nodes. */ 4822 function getJSDocTags(node: Node): readonly JSDocTag[]; 4823 /** Gets all JSDoc tags that match a specified predicate */ 4824 function getAllJSDocTags<T extends JSDocTag>(node: Node, predicate: (tag: JSDocTag) => tag is T): readonly T[]; 4825 /** Gets all JSDoc tags of a specified kind */ 4826 function getAllJSDocTagsOfKind(node: Node, kind: SyntaxKind): readonly JSDocTag[]; 4827 /** Gets the text of a jsdoc comment, flattening links to their text. */ 4828 function getTextOfJSDocComment(comment?: string | NodeArray<JSDocComment>): string | undefined; 4829 /** 4830 * Gets the effective type parameters. If the node was parsed in a 4831 * JavaScript file, gets the type parameters from the `@template` tag from JSDoc. 4832 * 4833 * This does *not* return type parameters from a jsdoc reference to a generic type, eg 4834 * 4835 * type Id = <T>(x: T) => T 4836 * /** @type {Id} / 4837 * function id(x) { return x } 4838 */ 4839 function getEffectiveTypeParameterDeclarations(node: DeclarationWithTypeParameters): readonly TypeParameterDeclaration[]; 4840 function getEffectiveConstraintOfTypeParameter(node: TypeParameterDeclaration): TypeNode | undefined; 4841 function isMemberName(node: Node): node is MemberName; 4842 function isPropertyAccessChain(node: Node): node is PropertyAccessChain; 4843 function isElementAccessChain(node: Node): node is ElementAccessChain; 4844 function isCallChain(node: Node): node is CallChain; 4845 function isOptionalChain(node: Node): node is PropertyAccessChain | ElementAccessChain | CallChain | NonNullChain; 4846 function isNullishCoalesce(node: Node): boolean; 4847 function isConstTypeReference(node: Node): boolean; 4848 function skipPartiallyEmittedExpressions(node: Expression): Expression; 4849 function skipPartiallyEmittedExpressions(node: Node): Node; 4850 function isNonNullChain(node: Node): node is NonNullChain; 4851 function isBreakOrContinueStatement(node: Node): node is BreakOrContinueStatement; 4852 function isNamedExportBindings(node: Node): node is NamedExportBindings; 4853 function isUnparsedTextLike(node: Node): node is UnparsedTextLike; 4854 function isUnparsedNode(node: Node): node is UnparsedNode; 4855 function isJSDocPropertyLikeTag(node: Node): node is JSDocPropertyLikeTag; 4856 /** 4857 * True if kind 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 isTokenKind(kind: SyntaxKind): boolean; 4862 /** 4863 * True if node is of some token syntax kind. 4864 * For example, this is true for an IfKeyword but not for an IfStatement. 4865 * Literals are considered tokens, except TemplateLiteral, but does include TemplateHead/Middle/Tail. 4866 */ 4867 function isToken(n: Node): boolean; 4868 function isLiteralExpression(node: Node): node is LiteralExpression; 4869 function isTemplateLiteralToken(node: Node): node is TemplateLiteralToken; 4870 function isTemplateMiddleOrTemplateTail(node: Node): node is TemplateMiddle | TemplateTail; 4871 function isImportOrExportSpecifier(node: Node): node is ImportSpecifier | ExportSpecifier; 4872 function isTypeOnlyImportOrExportDeclaration(node: Node): node is TypeOnlyAliasDeclaration; 4873 function isAssertionKey(node: Node): node is AssertionKey; 4874 function isStringTextContainingNode(node: Node): node is StringLiteral | TemplateLiteralToken; 4875 function isModifier(node: Node): node is Modifier; 4876 function isEntityName(node: Node): node is EntityName; 4877 function isPropertyName(node: Node): node is PropertyName; 4878 function isBindingName(node: Node): node is BindingName; 4879 function isFunctionLike(node: Node | undefined): node is SignatureDeclaration; 4880 function isClassElement(node: Node): node is ClassElement; 4881 function isClassLike(node: Node): node is ClassLikeDeclaration; 4882 function isStruct(node: Node): node is StructDeclaration; 4883 function isAccessor(node: Node): node is AccessorDeclaration; 4884 function isAutoAccessorPropertyDeclaration(node: Node): node is AutoAccessorPropertyDeclaration; 4885 function isModifierLike(node: Node): node is ModifierLike; 4886 function isTypeElement(node: Node): node is TypeElement; 4887 function isClassOrTypeElement(node: Node): node is ClassElement | TypeElement; 4888 function isObjectLiteralElementLike(node: Node): node is ObjectLiteralElementLike; 4889 /** 4890 * Node test that determines whether a node is a valid type node. 4891 * This differs from the `isPartOfTypeNode` function which determines whether a node is *part* 4892 * of a TypeNode. 4893 */ 4894 function isTypeNode(node: Node): node is TypeNode; 4895 function isFunctionOrConstructorTypeNode(node: Node): node is FunctionTypeNode | ConstructorTypeNode; 4896 function isPropertyAccessOrQualifiedName(node: Node): node is PropertyAccessExpression | QualifiedName; 4897 function isCallLikeExpression(node: Node): node is CallLikeExpression; 4898 function isCallOrNewExpression(node: Node): node is CallExpression | NewExpression; 4899 function isTemplateLiteral(node: Node): node is TemplateLiteral; 4900 function isAssertionExpression(node: Node): node is AssertionExpression; 4901 function isIterationStatement(node: Node, lookInLabeledStatements: false): node is IterationStatement; 4902 function isIterationStatement(node: Node, lookInLabeledStatements: boolean): node is IterationStatement | LabeledStatement; 4903 function isJsxOpeningLikeElement(node: Node): node is JsxOpeningLikeElement; 4904 function isCaseOrDefaultClause(node: Node): node is CaseOrDefaultClause; 4905 /** True if node is of a kind that may contain comment text. */ 4906 function isJSDocCommentContainingNode(node: Node): boolean; 4907 function isSetAccessor(node: Node): node is SetAccessorDeclaration; 4908 function isGetAccessor(node: Node): node is GetAccessorDeclaration; 4909 /** True if has initializer node attached to it. */ 4910 function hasOnlyExpressionInitializer(node: Node): node is HasExpressionInitializer; 4911 function isObjectLiteralElement(node: Node): node is ObjectLiteralElement; 4912 function isStringLiteralLike(node: Node): node is StringLiteralLike; 4913 function isJSDocLinkLike(node: Node): node is JSDocLink | JSDocLinkCode | JSDocLinkPlain; 4914 function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean; 4915 function isRestParameter(node: ParameterDeclaration | JSDocParameterTag): boolean; 4916} 4917declare namespace ts { 4918 function getLeadingCommentRangesOfNode(node: Node, sourceFileOfNode: SourceFile): CommentRange[] | undefined; 4919 function createTextWriter(newLine: string): EmitTextWriter; 4920 /** 4921 * Bypasses immutability and directly sets the `parent` property of each `Node` recursively. 4922 * @param rootNode The root node from which to start the recursion. 4923 * @param incremental When `true`, only recursively descends through nodes whose `parent` pointers are incorrect. 4924 * This allows us to quickly bail out of setting `parent` for subtrees during incremental parsing. 4925 */ 4926 function setParentRecursive<T extends Node>(rootNode: T, incremental: boolean): T; 4927 function setParentRecursive<T extends Node>(rootNode: T | undefined, incremental: boolean): T | undefined; 4928} 4929declare namespace ts { 4930 const factory: NodeFactory; 4931 function createUnparsedSourceFile(text: string): UnparsedSource; 4932 function createUnparsedSourceFile(inputFile: InputFiles, type: "js" | "dts", stripInternal?: boolean): UnparsedSource; 4933 function createUnparsedSourceFile(text: string, mapPath: string | undefined, map: string | undefined): UnparsedSource; 4934 function createInputFiles(javascriptText: string, declarationText: string): InputFiles; 4935 function createInputFiles(readFileText: (path: string) => string | undefined, javascriptPath: string, javascriptMapPath: string | undefined, declarationPath: string, declarationMapPath: string | undefined, buildInfoPath: string | undefined): InputFiles; 4936 function createInputFiles(javascriptText: string, declarationText: string, javascriptMapPath: string | undefined, javascriptMapText: string | undefined, declarationMapPath: string | undefined, declarationMapText: string | undefined): InputFiles; 4937 /** 4938 * Create an external source map source file reference 4939 */ 4940 function createSourceMapSource(fileName: string, text: string, skipTrivia?: (pos: number) => number): SourceMapSource; 4941 function setOriginalNode<T extends Node>(node: T, original: Node | undefined): T; 4942} 4943declare namespace ts { 4944 /** 4945 * Clears any `EmitNode` entries from parse-tree nodes. 4946 * @param sourceFile A source file. 4947 */ 4948 function disposeEmitNodes(sourceFile: SourceFile | undefined): void; 4949 /** 4950 * Sets flags that control emit behavior of a node. 4951 */ 4952 function setEmitFlags<T extends Node>(node: T, emitFlags: EmitFlags): T; 4953 /** 4954 * Gets a custom text range to use when emitting source maps. 4955 */ 4956 function getSourceMapRange(node: Node): SourceMapRange; 4957 /** 4958 * Sets a custom text range to use when emitting source maps. 4959 */ 4960 function setSourceMapRange<T extends Node>(node: T, range: SourceMapRange | undefined): T; 4961 /** 4962 * Gets the TextRange to use for source maps for a token of a node. 4963 */ 4964 function getTokenSourceMapRange(node: Node, token: SyntaxKind): SourceMapRange | undefined; 4965 /** 4966 * Sets the TextRange to use for source maps for a token of a node. 4967 */ 4968 function setTokenSourceMapRange<T extends Node>(node: T, token: SyntaxKind, range: SourceMapRange | undefined): T; 4969 /** 4970 * Gets a custom text range to use when emitting comments. 4971 */ 4972 function getCommentRange(node: Node): TextRange; 4973 /** 4974 * Sets a custom text range to use when emitting comments. 4975 */ 4976 function setCommentRange<T extends Node>(node: T, range: TextRange): T; 4977 function getSyntheticLeadingComments(node: Node): SynthesizedComment[] | undefined; 4978 function setSyntheticLeadingComments<T extends Node>(node: T, comments: SynthesizedComment[] | undefined): T; 4979 function addSyntheticLeadingComment<T extends Node>(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T; 4980 function getSyntheticTrailingComments(node: Node): SynthesizedComment[] | undefined; 4981 function setSyntheticTrailingComments<T extends Node>(node: T, comments: SynthesizedComment[] | undefined): T; 4982 function addSyntheticTrailingComment<T extends Node>(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T; 4983 function moveSyntheticComments<T extends Node>(node: T, original: Node): T; 4984 /** 4985 * Gets the constant value to emit for an expression representing an enum. 4986 */ 4987 function getConstantValue(node: AccessExpression): string | number | undefined; 4988 /** 4989 * Sets the constant value to emit for an expression. 4990 */ 4991 function setConstantValue(node: AccessExpression, value: string | number): AccessExpression; 4992 /** 4993 * Adds an EmitHelper to a node. 4994 */ 4995 function addEmitHelper<T extends Node>(node: T, helper: EmitHelper): T; 4996 /** 4997 * Add EmitHelpers to a node. 4998 */ 4999 function addEmitHelpers<T extends Node>(node: T, helpers: EmitHelper[] | undefined): T; 5000 /** 5001 * Removes an EmitHelper from a node. 5002 */ 5003 function removeEmitHelper(node: Node, helper: EmitHelper): boolean; 5004 /** 5005 * Gets the EmitHelpers of a node. 5006 */ 5007 function getEmitHelpers(node: Node): EmitHelper[] | undefined; 5008 /** 5009 * Moves matching emit helpers from a source node to a target node. 5010 */ 5011 function moveEmitHelpers(source: Node, target: Node, predicate: (helper: EmitHelper) => boolean): void; 5012} 5013declare namespace ts { 5014 function isNumericLiteral(node: Node): node is NumericLiteral; 5015 function isBigIntLiteral(node: Node): node is BigIntLiteral; 5016 function isStringLiteral(node: Node): node is StringLiteral; 5017 function isJsxText(node: Node): node is JsxText; 5018 function isRegularExpressionLiteral(node: Node): node is RegularExpressionLiteral; 5019 function isNoSubstitutionTemplateLiteral(node: Node): node is NoSubstitutionTemplateLiteral; 5020 function isTemplateHead(node: Node): node is TemplateHead; 5021 function isTemplateMiddle(node: Node): node is TemplateMiddle; 5022 function isTemplateTail(node: Node): node is TemplateTail; 5023 function isDotDotDotToken(node: Node): node is DotDotDotToken; 5024 function isPlusToken(node: Node): node is PlusToken; 5025 function isMinusToken(node: Node): node is MinusToken; 5026 function isAsteriskToken(node: Node): node is AsteriskToken; 5027 function isIdentifier(node: Node): node is Identifier; 5028 function isPrivateIdentifier(node: Node): node is PrivateIdentifier; 5029 function isQualifiedName(node: Node): node is QualifiedName; 5030 function isComputedPropertyName(node: Node): node is ComputedPropertyName; 5031 function isTypeParameterDeclaration(node: Node): node is TypeParameterDeclaration; 5032 function isParameter(node: Node): node is ParameterDeclaration; 5033 function isDecorator(node: Node): node is Decorator; 5034 function isPropertySignature(node: Node): node is PropertySignature; 5035 function isPropertyDeclaration(node: Node): node is PropertyDeclaration; 5036 function isMethodSignature(node: Node): node is MethodSignature; 5037 function isMethodDeclaration(node: Node): node is MethodDeclaration; 5038 function isClassStaticBlockDeclaration(node: Node): node is ClassStaticBlockDeclaration; 5039 function isConstructorDeclaration(node: Node): node is ConstructorDeclaration; 5040 function isGetAccessorDeclaration(node: Node): node is GetAccessorDeclaration; 5041 function isSetAccessorDeclaration(node: Node): node is SetAccessorDeclaration; 5042 function isCallSignatureDeclaration(node: Node): node is CallSignatureDeclaration; 5043 function isConstructSignatureDeclaration(node: Node): node is ConstructSignatureDeclaration; 5044 function isIndexSignatureDeclaration(node: Node): node is IndexSignatureDeclaration; 5045 function isTypePredicateNode(node: Node): node is TypePredicateNode; 5046 function isTypeReferenceNode(node: Node): node is TypeReferenceNode; 5047 function isFunctionTypeNode(node: Node): node is FunctionTypeNode; 5048 function isConstructorTypeNode(node: Node): node is ConstructorTypeNode; 5049 function isTypeQueryNode(node: Node): node is TypeQueryNode; 5050 function isTypeLiteralNode(node: Node): node is TypeLiteralNode; 5051 function isArrayTypeNode(node: Node): node is ArrayTypeNode; 5052 function isTupleTypeNode(node: Node): node is TupleTypeNode; 5053 function isNamedTupleMember(node: Node): node is NamedTupleMember; 5054 function isOptionalTypeNode(node: Node): node is OptionalTypeNode; 5055 function isRestTypeNode(node: Node): node is RestTypeNode; 5056 function isUnionTypeNode(node: Node): node is UnionTypeNode; 5057 function isIntersectionTypeNode(node: Node): node is IntersectionTypeNode; 5058 function isConditionalTypeNode(node: Node): node is ConditionalTypeNode; 5059 function isInferTypeNode(node: Node): node is InferTypeNode; 5060 function isParenthesizedTypeNode(node: Node): node is ParenthesizedTypeNode; 5061 function isThisTypeNode(node: Node): node is ThisTypeNode; 5062 function isTypeOperatorNode(node: Node): node is TypeOperatorNode; 5063 function isIndexedAccessTypeNode(node: Node): node is IndexedAccessTypeNode; 5064 function isMappedTypeNode(node: Node): node is MappedTypeNode; 5065 function isLiteralTypeNode(node: Node): node is LiteralTypeNode; 5066 function isImportTypeNode(node: Node): node is ImportTypeNode; 5067 function isTemplateLiteralTypeSpan(node: Node): node is TemplateLiteralTypeSpan; 5068 function isTemplateLiteralTypeNode(node: Node): node is TemplateLiteralTypeNode; 5069 function isObjectBindingPattern(node: Node): node is ObjectBindingPattern; 5070 function isArrayBindingPattern(node: Node): node is ArrayBindingPattern; 5071 function isBindingElement(node: Node): node is BindingElement; 5072 function isArrayLiteralExpression(node: Node): node is ArrayLiteralExpression; 5073 function isObjectLiteralExpression(node: Node): node is ObjectLiteralExpression; 5074 function isPropertyAccessExpression(node: Node): node is PropertyAccessExpression; 5075 function isElementAccessExpression(node: Node): node is ElementAccessExpression; 5076 function isCallExpression(node: Node): node is CallExpression; 5077 function isNewExpression(node: Node): node is NewExpression; 5078 function isTaggedTemplateExpression(node: Node): node is TaggedTemplateExpression; 5079 function isTypeAssertionExpression(node: Node): node is TypeAssertion; 5080 function isParenthesizedExpression(node: Node): node is ParenthesizedExpression; 5081 function isFunctionExpression(node: Node): node is FunctionExpression; 5082 function isEtsComponentExpression(node: Node): node is EtsComponentExpression; 5083 function isArrowFunction(node: Node): node is ArrowFunction; 5084 function isDeleteExpression(node: Node): node is DeleteExpression; 5085 function isTypeOfExpression(node: Node): node is TypeOfExpression; 5086 function isVoidExpression(node: Node): node is VoidExpression; 5087 function isAwaitExpression(node: Node): node is AwaitExpression; 5088 function isPrefixUnaryExpression(node: Node): node is PrefixUnaryExpression; 5089 function isPostfixUnaryExpression(node: Node): node is PostfixUnaryExpression; 5090 function isBinaryExpression(node: Node): node is BinaryExpression; 5091 function isConditionalExpression(node: Node): node is ConditionalExpression; 5092 function isTemplateExpression(node: Node): node is TemplateExpression; 5093 function isYieldExpression(node: Node): node is YieldExpression; 5094 function isSpreadElement(node: Node): node is SpreadElement; 5095 function isClassExpression(node: Node): node is ClassExpression; 5096 function isOmittedExpression(node: Node): node is OmittedExpression; 5097 function isExpressionWithTypeArguments(node: Node): node is ExpressionWithTypeArguments; 5098 function isAsExpression(node: Node): node is AsExpression; 5099 function isSatisfiesExpression(node: Node): node is SatisfiesExpression; 5100 function isNonNullExpression(node: Node): node is NonNullExpression; 5101 function isMetaProperty(node: Node): node is MetaProperty; 5102 function isSyntheticExpression(node: Node): node is SyntheticExpression; 5103 function isPartiallyEmittedExpression(node: Node): node is PartiallyEmittedExpression; 5104 function isCommaListExpression(node: Node): node is CommaListExpression; 5105 function isTemplateSpan(node: Node): node is TemplateSpan; 5106 function isSemicolonClassElement(node: Node): node is SemicolonClassElement; 5107 function isBlock(node: Node): node is Block; 5108 function isVariableStatement(node: Node): node is VariableStatement; 5109 function isEmptyStatement(node: Node): node is EmptyStatement; 5110 function isExpressionStatement(node: Node): node is ExpressionStatement; 5111 function isIfStatement(node: Node): node is IfStatement; 5112 function isDoStatement(node: Node): node is DoStatement; 5113 function isWhileStatement(node: Node): node is WhileStatement; 5114 function isForStatement(node: Node): node is ForStatement; 5115 function isForInStatement(node: Node): node is ForInStatement; 5116 function isForOfStatement(node: Node): node is ForOfStatement; 5117 function isContinueStatement(node: Node): node is ContinueStatement; 5118 function isBreakStatement(node: Node): node is BreakStatement; 5119 function isReturnStatement(node: Node): node is ReturnStatement; 5120 function isWithStatement(node: Node): node is WithStatement; 5121 function isSwitchStatement(node: Node): node is SwitchStatement; 5122 function isLabeledStatement(node: Node): node is LabeledStatement; 5123 function isThrowStatement(node: Node): node is ThrowStatement; 5124 function isTryStatement(node: Node): node is TryStatement; 5125 function isDebuggerStatement(node: Node): node is DebuggerStatement; 5126 function isVariableDeclaration(node: Node): node is VariableDeclaration; 5127 function isVariableDeclarationList(node: Node): node is VariableDeclarationList; 5128 function isFunctionDeclaration(node: Node): node is FunctionDeclaration; 5129 function isClassDeclaration(node: Node): node is ClassDeclaration; 5130 function isStructDeclaration(node: Node): node is StructDeclaration; 5131 function isInterfaceDeclaration(node: Node): node is InterfaceDeclaration; 5132 function isTypeAliasDeclaration(node: Node): node is TypeAliasDeclaration; 5133 function isEnumDeclaration(node: Node): node is EnumDeclaration; 5134 function isModuleDeclaration(node: Node): node is ModuleDeclaration; 5135 function isModuleBlock(node: Node): node is ModuleBlock; 5136 function isCaseBlock(node: Node): node is CaseBlock; 5137 function isNamespaceExportDeclaration(node: Node): node is NamespaceExportDeclaration; 5138 function isImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration; 5139 function isImportDeclaration(node: Node): node is ImportDeclaration; 5140 function isImportClause(node: Node): node is ImportClause; 5141 function isImportTypeAssertionContainer(node: Node): node is ImportTypeAssertionContainer; 5142 function isAssertClause(node: Node): node is AssertClause; 5143 function isAssertEntry(node: Node): node is AssertEntry; 5144 function isNamespaceImport(node: Node): node is NamespaceImport; 5145 function isNamespaceExport(node: Node): node is NamespaceExport; 5146 function isNamedImports(node: Node): node is NamedImports; 5147 function isImportSpecifier(node: Node): node is ImportSpecifier; 5148 function isExportAssignment(node: Node): node is ExportAssignment; 5149 function isExportDeclaration(node: Node): node is ExportDeclaration; 5150 function isNamedExports(node: Node): node is NamedExports; 5151 function isExportSpecifier(node: Node): node is ExportSpecifier; 5152 function isMissingDeclaration(node: Node): node is MissingDeclaration; 5153 function isNotEmittedStatement(node: Node): node is NotEmittedStatement; 5154 function isExternalModuleReference(node: Node): node is ExternalModuleReference; 5155 function isJsxElement(node: Node): node is JsxElement; 5156 function isJsxSelfClosingElement(node: Node): node is JsxSelfClosingElement; 5157 function isJsxOpeningElement(node: Node): node is JsxOpeningElement; 5158 function isJsxClosingElement(node: Node): node is JsxClosingElement; 5159 function isJsxFragment(node: Node): node is JsxFragment; 5160 function isJsxOpeningFragment(node: Node): node is JsxOpeningFragment; 5161 function isJsxClosingFragment(node: Node): node is JsxClosingFragment; 5162 function isJsxAttribute(node: Node): node is JsxAttribute; 5163 function isJsxAttributes(node: Node): node is JsxAttributes; 5164 function isJsxSpreadAttribute(node: Node): node is JsxSpreadAttribute; 5165 function isJsxExpression(node: Node): node is JsxExpression; 5166 function isCaseClause(node: Node): node is CaseClause; 5167 function isDefaultClause(node: Node): node is DefaultClause; 5168 function isHeritageClause(node: Node): node is HeritageClause; 5169 function isCatchClause(node: Node): node is CatchClause; 5170 function isPropertyAssignment(node: Node): node is PropertyAssignment; 5171 function isShorthandPropertyAssignment(node: Node): node is ShorthandPropertyAssignment; 5172 function isSpreadAssignment(node: Node): node is SpreadAssignment; 5173 function isEnumMember(node: Node): node is EnumMember; 5174 function isUnparsedPrepend(node: Node): node is UnparsedPrepend; 5175 function isSourceFile(node: Node): node is SourceFile; 5176 function isBundle(node: Node): node is Bundle; 5177 function isUnparsedSource(node: Node): node is UnparsedSource; 5178 function isJSDocTypeExpression(node: Node): node is JSDocTypeExpression; 5179 function isJSDocNameReference(node: Node): node is JSDocNameReference; 5180 function isJSDocMemberName(node: Node): node is JSDocMemberName; 5181 function isJSDocLink(node: Node): node is JSDocLink; 5182 function isJSDocLinkCode(node: Node): node is JSDocLinkCode; 5183 function isJSDocLinkPlain(node: Node): node is JSDocLinkPlain; 5184 function isJSDocAllType(node: Node): node is JSDocAllType; 5185 function isJSDocUnknownType(node: Node): node is JSDocUnknownType; 5186 function isJSDocNullableType(node: Node): node is JSDocNullableType; 5187 function isJSDocNonNullableType(node: Node): node is JSDocNonNullableType; 5188 function isJSDocOptionalType(node: Node): node is JSDocOptionalType; 5189 function isJSDocFunctionType(node: Node): node is JSDocFunctionType; 5190 function isJSDocVariadicType(node: Node): node is JSDocVariadicType; 5191 function isJSDocNamepathType(node: Node): node is JSDocNamepathType; 5192 function isJSDoc(node: Node): node is JSDoc; 5193 function isJSDocTypeLiteral(node: Node): node is JSDocTypeLiteral; 5194 function isJSDocSignature(node: Node): node is JSDocSignature; 5195 function isJSDocAugmentsTag(node: Node): node is JSDocAugmentsTag; 5196 function isJSDocAuthorTag(node: Node): node is JSDocAuthorTag; 5197 function isJSDocClassTag(node: Node): node is JSDocClassTag; 5198 function isJSDocCallbackTag(node: Node): node is JSDocCallbackTag; 5199 function isJSDocPublicTag(node: Node): node is JSDocPublicTag; 5200 function isJSDocPrivateTag(node: Node): node is JSDocPrivateTag; 5201 function isJSDocProtectedTag(node: Node): node is JSDocProtectedTag; 5202 function isJSDocReadonlyTag(node: Node): node is JSDocReadonlyTag; 5203 function isJSDocOverrideTag(node: Node): node is JSDocOverrideTag; 5204 function isJSDocDeprecatedTag(node: Node): node is JSDocDeprecatedTag; 5205 function isJSDocSeeTag(node: Node): node is JSDocSeeTag; 5206 function isJSDocEnumTag(node: Node): node is JSDocEnumTag; 5207 function isJSDocParameterTag(node: Node): node is JSDocParameterTag; 5208 function isJSDocReturnTag(node: Node): node is JSDocReturnTag; 5209 function isJSDocThisTag(node: Node): node is JSDocThisTag; 5210 function isJSDocTypeTag(node: Node): node is JSDocTypeTag; 5211 function isJSDocTemplateTag(node: Node): node is JSDocTemplateTag; 5212 function isJSDocTypedefTag(node: Node): node is JSDocTypedefTag; 5213 function isJSDocUnknownTag(node: Node): node is JSDocUnknownTag; 5214 function isJSDocPropertyTag(node: Node): node is JSDocPropertyTag; 5215 function isJSDocImplementsTag(node: Node): node is JSDocImplementsTag; 5216} 5217declare namespace ts { 5218 function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T; 5219 function canHaveModifiers(node: Node): node is HasModifiers; 5220 function canHaveDecorators(node: Node): node is HasDecorators; 5221} 5222declare namespace ts { 5223 /** 5224 * Invokes a callback for each child of the given node. The 'cbNode' callback is invoked for all child nodes 5225 * stored in properties. If a 'cbNodes' callback is specified, it is invoked for embedded arrays; otherwise, 5226 * embedded arrays are flattened and the 'cbNode' callback is invoked for each element. If a callback returns 5227 * a truthy value, iteration stops and that value is returned. Otherwise, undefined is returned. 5228 * 5229 * @param node a given node to visit its children 5230 * @param cbNode a callback to be invoked for all child nodes 5231 * @param cbNodes a callback to be invoked for embedded array 5232 * 5233 * @remarks `forEachChild` must visit the children of a node in the order 5234 * that they appear in the source code. The language service depends on this property to locate nodes by position. 5235 */ 5236 export function forEachChild<T>(node: Node, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray<Node>) => T | undefined): T | undefined; 5237 export interface CreateSourceFileOptions { 5238 languageVersion: ScriptTarget; 5239 /** 5240 * Controls the format the file is detected as - this can be derived from only the path 5241 * and files on disk, but needs to be done with a module resolution cache in scope to be performant. 5242 * This is usually `undefined` for compilations that do not have `moduleResolution` values of `node16` or `nodenext`. 5243 */ 5244 impliedNodeFormat?: ModuleKind.ESNext | ModuleKind.CommonJS; 5245 /** 5246 * Controls how module-y-ness is set for the given file. Usually the result of calling 5247 * `getSetExternalModuleIndicator` on a valid `CompilerOptions` object. If not present, the default 5248 * check specified by `isFileProbablyExternalModule` will be used to set the field. 5249 */ 5250 setExternalModuleIndicator?: (file: SourceFile) => void; 5251 } 5252 export function createSourceFile(fileName: string, sourceText: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, setParentNodes?: boolean, scriptKind?: ScriptKind, options?: CompilerOptions): SourceFile; 5253 export function parseIsolatedEntityName(text: string, languageVersion: ScriptTarget): EntityName | undefined; 5254 /** 5255 * Parse json text into SyntaxTree and return node and parse errors if any 5256 * @param fileName 5257 * @param sourceText 5258 */ 5259 export function parseJsonText(fileName: string, sourceText: string): JsonSourceFile; 5260 export function isExternalModule(file: SourceFile): boolean; 5261 export function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean, option?: CompilerOptions): SourceFile; 5262 export {}; 5263} 5264declare namespace ts { 5265 export function parseCommandLine(commandLine: readonly string[], readFile?: (path: string) => string | undefined): ParsedCommandLine; 5266 export type DiagnosticReporter = (diagnostic: Diagnostic) => void; 5267 /** 5268 * Reports config file diagnostics 5269 */ 5270 export interface ConfigFileDiagnosticsReporter { 5271 /** 5272 * Reports unrecoverable error when parsing config file 5273 */ 5274 onUnRecoverableConfigFileDiagnostic: DiagnosticReporter; 5275 } 5276 /** 5277 * Interface extending ParseConfigHost to support ParseConfigFile that reads config file and reports errors 5278 */ 5279 export interface ParseConfigFileHost extends ParseConfigHost, ConfigFileDiagnosticsReporter { 5280 getCurrentDirectory(): string; 5281 } 5282 /** 5283 * Reads the config file, reports errors if any and exits if the config file cannot be found 5284 */ 5285 export function getParsedCommandLineOfConfigFile(configFileName: string, optionsToExtend: CompilerOptions | undefined, host: ParseConfigFileHost, extendedConfigCache?: Map<ExtendedConfigCacheEntry>, watchOptionsToExtend?: WatchOptions, extraFileExtensions?: readonly FileExtensionInfo[]): ParsedCommandLine | undefined; 5286 /** 5287 * Read tsconfig.json file 5288 * @param fileName The path to the config file 5289 */ 5290 export function readConfigFile(fileName: string, readFile: (path: string) => string | undefined): { 5291 config?: any; 5292 error?: Diagnostic; 5293 }; 5294 /** 5295 * Parse the text of the tsconfig.json file 5296 * @param fileName The path to the config file 5297 * @param jsonText The text of the config file 5298 */ 5299 export function parseConfigFileTextToJson(fileName: string, jsonText: string): { 5300 config?: any; 5301 error?: Diagnostic; 5302 }; 5303 /** 5304 * Read tsconfig.json file 5305 * @param fileName The path to the config file 5306 */ 5307 export function readJsonConfigFile(fileName: string, readFile: (path: string) => string | undefined): TsConfigSourceFile; 5308 /** 5309 * Convert the json syntax tree into the json value 5310 */ 5311 export function convertToObject(sourceFile: JsonSourceFile, errors: Push<Diagnostic>): any; 5312 /** 5313 * Parse the contents of a config file (tsconfig.json). 5314 * @param json The contents of the config file to parse 5315 * @param host Instance of ParseConfigHost used to enumerate files in folder. 5316 * @param basePath A root directory to resolve relative path entries in the config 5317 * file to. e.g. outDir 5318 */ 5319 export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map<ExtendedConfigCacheEntry>, existingWatchOptions?: WatchOptions): ParsedCommandLine; 5320 /** 5321 * Parse the contents of a config file (tsconfig.json). 5322 * @param jsonNode The contents of the config file to parse 5323 * @param host Instance of ParseConfigHost used to enumerate files in folder. 5324 * @param basePath A root directory to resolve relative path entries in the config 5325 * file to. e.g. outDir 5326 */ 5327 export function parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map<ExtendedConfigCacheEntry>, existingWatchOptions?: WatchOptions): ParsedCommandLine; 5328 export interface ParsedTsconfig { 5329 raw: any; 5330 options?: CompilerOptions; 5331 watchOptions?: WatchOptions; 5332 typeAcquisition?: TypeAcquisition; 5333 /** 5334 * Note that the case of the config path has not yet been normalized, as no files have been imported into the project yet 5335 */ 5336 extendedConfigPath?: string; 5337 } 5338 export interface ExtendedConfigCacheEntry { 5339 extendedResult: TsConfigSourceFile; 5340 extendedConfig: ParsedTsconfig | undefined; 5341 } 5342 export function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): { 5343 options: CompilerOptions; 5344 errors: Diagnostic[]; 5345 }; 5346 export function convertTypeAcquisitionFromJson(jsonOptions: any, basePath: string, configFileName?: string): { 5347 options: TypeAcquisition; 5348 errors: Diagnostic[]; 5349 }; 5350 export {}; 5351} 5352declare namespace ts { 5353 export function getEffectiveTypeRoots(options: CompilerOptions, host: GetEffectiveTypeRootsHost): string[] | undefined; 5354 /** 5355 * @param {string | undefined} containingFile - file that contains type reference directive, can be undefined if containing file is unknown. 5356 * This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups 5357 * is assumed to be the same as root directory of the project. 5358 */ 5359 export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache, resolutionMode?: SourceFile["impliedNodeFormat"]): ResolvedTypeReferenceDirectiveWithFailedLookupLocations; 5360 /** 5361 * Given a set of options, returns the set of type directive names 5362 * that should be included for this program automatically. 5363 * This list could either come from the config file, 5364 * or from enumerating the types root + initial secondary types lookup location. 5365 * More type directives might appear in the program later as a result of loading actual source files; 5366 * this list is only the set of defaults that are implicitly included. 5367 */ 5368 export function getAutomaticTypeDirectiveNames(options: CompilerOptions, host: ModuleResolutionHost): string[]; 5369 export interface TypeReferenceDirectiveResolutionCache extends PerDirectoryResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, PackageJsonInfoCache { 5370 } 5371 export interface ModeAwareCache<T> { 5372 get(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): T | undefined; 5373 set(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined, value: T): this; 5374 delete(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): this; 5375 has(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): boolean; 5376 forEach(cb: (elem: T, key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined) => void): void; 5377 size(): number; 5378 } 5379 /** 5380 * Cached resolutions per containing directory. 5381 * This assumes that any module id will have the same resolution for sibling files located in the same folder. 5382 */ 5383 export interface PerDirectoryResolutionCache<T> { 5384 getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference): ModeAwareCache<T>; 5385 clear(): void; 5386 /** 5387 * Updates with the current compilerOptions the cache will operate with. 5388 * This updates the redirects map as well if needed so module resolutions are cached if they can across the projects 5389 */ 5390 update(options: CompilerOptions): void; 5391 } 5392 export interface ModuleResolutionCache extends PerDirectoryResolutionCache<ResolvedModuleWithFailedLookupLocations>, NonRelativeModuleNameResolutionCache, PackageJsonInfoCache { 5393 getPackageJsonInfoCache(): PackageJsonInfoCache; 5394 } 5395 /** 5396 * Stored map from non-relative module name to a table: directory -> result of module lookup in this directory 5397 * We support only non-relative module names because resolution of relative module names is usually more deterministic and thus less expensive. 5398 */ 5399 export interface NonRelativeModuleNameResolutionCache extends PackageJsonInfoCache { 5400 getOrCreateCacheForModuleName(nonRelativeModuleName: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined, redirectedReference?: ResolvedProjectReference): PerModuleNameCache; 5401 } 5402 export interface PackageJsonInfoCache { 5403 clear(): void; 5404 } 5405 export interface PerModuleNameCache { 5406 get(directory: string): ResolvedModuleWithFailedLookupLocations | undefined; 5407 set(directory: string, result: ResolvedModuleWithFailedLookupLocations): void; 5408 } 5409 export function createModuleResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions): ModuleResolutionCache; 5410 export function createTypeReferenceDirectiveResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions, packageJsonInfoCache?: PackageJsonInfoCache): TypeReferenceDirectiveResolutionCache; 5411 export function resolveModuleNameFromCache(moduleName: string, containingFile: string, cache: ModuleResolutionCache, mode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; 5412 export function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations; 5413 export function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; 5414 /** 5415 * This will be called on the successfully resolved path from `loadModuleFromFile`. 5416 * (Not needed for `loadModuleFromNodeModules` as that looks up the `package.json` or `oh-package.json5` as part of resolution.) 5417 * 5418 * packageDirectory is the directory of the package itself. 5419 * For `blah/node_modules/foo/index.d.ts` this is packageDirectory: "foo" 5420 * For `/node_modules/foo/bar.d.ts` this is packageDirectory: "foo" 5421 * For `/node_modules/@types/foo/bar/index.d.ts` this is packageDirectory: "@types/foo" 5422 * For `/node_modules/foo/bar/index.d.ts` this is packageDirectory: "foo" 5423 */ 5424 export function parseModuleFromPath(resolved: string, packageManagerType?: string): string | undefined; 5425 export function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; 5426 export {}; 5427} 5428declare namespace ts { 5429 function concatenateDecoratorsAndModifiers(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined): readonly ModifierLike[] | undefined; 5430 function isEtsFunctionDecorators(name: string | undefined, options: CompilerOptions): boolean; 5431 function isOhpm(packageManagerType: string | undefined): boolean; 5432 const ohModulesPathPart: string; 5433 function isOHModules(modulePath: string): boolean; 5434 function isOhpmAndOhModules(packageManagerType: string | undefined, modulePath: string): boolean; 5435 function getModulePathPartByPMType(packageManagerType: string | undefined): string; 5436 function getModuleByPMType(packageManagerType: string | undefined): string; 5437 function getPackageJsonByPMType(packageManagerType: string | undefined): string; 5438 function isOHModulesDirectory(dirPath: Path): boolean; 5439 function isTargetModulesDerectory(dirPath: Path): boolean; 5440 function pathContainsOHModules(path: string): boolean; 5441 function choosePathContainsModules(packageManagerType: string | undefined, fileName: string): boolean; 5442 function getTypeExportImportAndConstEnumTransformer(context: TransformationContext): (node: SourceFile) => SourceFile; 5443 /** 5444 * Add 'type' flag to import/export when import/export an type member. 5445 * Replace const enum with number and string literal. 5446 */ 5447 function transformTypeExportImportAndConstEnumInTypeScript(context: TransformationContext): (node: SourceFile) => SourceFile; 5448 function hasTsNoCheckOrTsIgnoreFlag(node: SourceFile): boolean; 5449 function createObfTextSingleLineWriter(): EmitTextWriter; 5450} 5451declare namespace ts { 5452 /** 5453 * Visits a Node using the supplied visitor, possibly returning a new Node in its place. 5454 * 5455 * @param node The Node to visit. 5456 * @param visitor The callback used to visit the Node. 5457 * @param test A callback to execute to verify the Node is valid. 5458 * @param lift An optional callback to execute to lift a NodeArray into a valid Node. 5459 */ 5460 function visitNode<T extends Node>(node: T, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T; 5461 /** 5462 * Visits a Node using the supplied visitor, possibly returning a new Node in its place. 5463 * 5464 * @param node The Node to visit. 5465 * @param visitor The callback used to visit the Node. 5466 * @param test A callback to execute to verify the Node is valid. 5467 * @param lift An optional callback to execute to lift a NodeArray into a valid Node. 5468 */ 5469 function visitNode<T extends Node>(node: T | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T | undefined; 5470 /** 5471 * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place. 5472 * 5473 * @param nodes The NodeArray to visit. 5474 * @param visitor The callback used to visit a Node. 5475 * @param test A node test to execute for each node. 5476 * @param start An optional value indicating the starting offset at which to start visiting. 5477 * @param count An optional value indicating the maximum number of nodes to visit. 5478 */ 5479 function visitNodes<T extends Node>(nodes: NodeArray<T>, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T>; 5480 /** 5481 * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place. 5482 * 5483 * @param nodes The NodeArray to visit. 5484 * @param visitor The callback used to visit a Node. 5485 * @param test A node test to execute for each node. 5486 * @param start An optional value indicating the starting offset at which to start visiting. 5487 * @param count An optional value indicating the maximum number of nodes to visit. 5488 */ 5489 function visitNodes<T extends Node>(nodes: NodeArray<T> | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T> | undefined; 5490 /** 5491 * Starts a new lexical environment and visits a statement list, ending the lexical environment 5492 * and merging hoisted declarations upon completion. 5493 */ 5494 function visitLexicalEnvironment(statements: NodeArray<Statement>, visitor: Visitor, context: TransformationContext, start?: number, ensureUseStrict?: boolean, nodesVisitor?: NodesVisitor): NodeArray<Statement>; 5495 /** 5496 * Starts a new lexical environment and visits a parameter list, suspending the lexical 5497 * environment upon completion. 5498 */ 5499 function visitParameterList(nodes: NodeArray<ParameterDeclaration>, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor): NodeArray<ParameterDeclaration>; 5500 function visitParameterList(nodes: NodeArray<ParameterDeclaration> | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor): NodeArray<ParameterDeclaration> | undefined; 5501 /** 5502 * Resumes a suspended lexical environment and visits a function body, ending the lexical 5503 * environment and merging hoisted declarations upon completion. 5504 */ 5505 function visitFunctionBody(node: FunctionBody, visitor: Visitor, context: TransformationContext): FunctionBody; 5506 /** 5507 * Resumes a suspended lexical environment and visits a function body, ending the lexical 5508 * environment and merging hoisted declarations upon completion. 5509 */ 5510 function visitFunctionBody(node: FunctionBody | undefined, visitor: Visitor, context: TransformationContext): FunctionBody | undefined; 5511 /** 5512 * Resumes a suspended lexical environment and visits a concise body, ending the lexical 5513 * environment and merging hoisted declarations upon completion. 5514 */ 5515 function visitFunctionBody(node: ConciseBody, visitor: Visitor, context: TransformationContext): ConciseBody; 5516 /** 5517 * Visits an iteration body, adding any block-scoped variables required by the transformation. 5518 */ 5519 function visitIterationBody(body: Statement, visitor: Visitor, context: TransformationContext): Statement; 5520 /** 5521 * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place. 5522 * 5523 * @param node The Node whose children will be visited. 5524 * @param visitor The callback used to visit each child. 5525 * @param context A lexical environment context for the visitor. 5526 */ 5527 function visitEachChild<T extends Node>(node: T, visitor: Visitor, context: TransformationContext): T; 5528 /** 5529 * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place. 5530 * 5531 * @param node The Node whose children will be visited. 5532 * @param visitor The callback used to visit each child. 5533 * @param context A lexical environment context for the visitor. 5534 */ 5535 function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: typeof visitNodes, tokenVisitor?: Visitor): T | undefined; 5536} 5537declare namespace ts { 5538 interface SourceMapGeneratorOptions { 5539 extendedDiagnostics?: boolean; 5540 } 5541 function createSourceMapGenerator(host: EmitHost, file: string, sourceRoot: string, sourcesDirectoryPath: string, generatorOptions: SourceMapGeneratorOptions): SourceMapGenerator; 5542} 5543declare namespace ts { 5544 function getTsBuildInfoEmitOutputFilePath(options: CompilerOptions): string | undefined; 5545 function getTsBuildInfoEmitOutputFilePathForLinter(tsBuildInfoPath: string): string; 5546 function getOutputFileNames(commandLine: ParsedCommandLine, inputFileName: string, ignoreCase: boolean): readonly string[]; 5547 function createPrinter(printerOptions?: PrinterOptions, handlers?: PrintHandlers): Printer; 5548} 5549declare namespace ts { 5550 export function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName?: string): string | undefined; 5551 export function resolveTripleslashReference(moduleName: string, containingFile: string): string; 5552 export function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost; 5553 export function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5554 export interface FormatDiagnosticsHost { 5555 getCurrentDirectory(): string; 5556 getCanonicalFileName(fileName: string): string; 5557 getNewLine(): string; 5558 } 5559 export function formatDiagnostics(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string; 5560 export function formatDiagnostic(diagnostic: Diagnostic, host: FormatDiagnosticsHost): string; 5561 export function formatDiagnosticsWithColorAndContext(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string; 5562 export function flattenDiagnosticMessageText(diag: string | DiagnosticMessageChain | undefined, newLine: string, indent?: number): string; 5563 /** 5564 * Calculates the resulting resolution mode for some reference in some file - this is generally the explicitly 5565 * provided resolution mode in the reference, unless one is not present, in which case it is the mode of the containing file. 5566 */ 5567 export function getModeForFileReference(ref: FileReference | string, containingFileMode: SourceFile["impliedNodeFormat"]): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5568 /** 5569 * Calculates the final resolution mode for an import at some index within a file's imports list. This is generally the explicitly 5570 * 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). 5571 * If you have an actual import node, prefer using getModeForUsageLocation on the reference string node. 5572 * @param file File to fetch the resolution mode within 5573 * @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 5574 */ 5575 export function getModeForResolutionAtIndex(file: SourceFile, index: number): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5576 /** 5577 * Calculates the final resolution mode for a given module reference node. This is generally the explicitly provided resolution mode, if 5578 * one exists, or the mode of the containing source file. (Excepting import=require, which is always commonjs, and dynamic import, which is always esm). 5579 * Notably, this function always returns `undefined` if the containing file has an `undefined` `impliedNodeFormat` - this field is only set when 5580 * `moduleResolution` is `node16`+. 5581 * @param file The file the import or import-like reference is contained within 5582 * @param usage The module reference string 5583 * @returns The final resolution mode of the import 5584 */ 5585 export function getModeForUsageLocation(file: { 5586 impliedNodeFormat?: SourceFile["impliedNodeFormat"]; 5587 }, usage: StringLiteralLike): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5588 export function getConfigFileParsingDiagnostics(configFileParseResult: ParsedCommandLine): readonly Diagnostic[]; 5589 /** 5590 * A function for determining if a given file is esm or cjs format, assuming modern node module resolution rules, as configured by the 5591 * `options` parameter. 5592 * 5593 * @param fileName The normalized absolute path to check the format of (it need not exist on disk) 5594 * @param [packageJsonInfoCache] A cache for package file lookups - it's best to have a cache when this function is called often 5595 * @param host The ModuleResolutionHost which can perform the filesystem lookups for package json data 5596 * @param options The compiler options to perform the analysis under - relevant options are `moduleResolution` and `traceResolution` 5597 * @returns `undefined` if the path has no relevant implied format, `ModuleKind.ESNext` for esm format, and `ModuleKind.CommonJS` for cjs format 5598 */ 5599 export function getImpliedNodeFormatForFile(fileName: Path, packageJsonInfoCache: PackageJsonInfoCache | undefined, host: ModuleResolutionHost, options: CompilerOptions): ModuleKind.ESNext | ModuleKind.CommonJS | undefined; 5600 /** 5601 * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions' 5602 * that represent a compilation unit. 5603 * 5604 * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and 5605 * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in. 5606 * 5607 * @param createProgramOptions - The options for creating a program. 5608 * @returns A 'Program' object. 5609 */ 5610 export function createProgram(createProgramOptions: CreateProgramOptions): Program; 5611 /** 5612 * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions' 5613 * that represent a compilation unit. 5614 * 5615 * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and 5616 * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in. 5617 * 5618 * @param rootNames - A set of root files. 5619 * @param options - The compiler options which should be used. 5620 * @param host - The host interacts with the underlying file system. 5621 * @param oldProgram - Reuses an old program structure. 5622 * @param configFileParsingDiagnostics - error during config file parsing 5623 * @returns A 'Program' object. 5624 */ 5625 export function createProgram(rootNames: readonly string[], options: CompilerOptions, host?: CompilerHost, oldProgram?: Program, configFileParsingDiagnostics?: readonly Diagnostic[]): Program; 5626 /** @deprecated */ export interface ResolveProjectReferencePathHost { 5627 fileExists(fileName: string): boolean; 5628 } 5629 /** 5630 * Returns the target config filename of a project reference. 5631 * Note: The file might not exist. 5632 */ 5633 export function resolveProjectReferencePath(ref: ProjectReference): ResolvedConfigFileName; 5634 /** @deprecated */ export function resolveProjectReferencePath(host: ResolveProjectReferencePathHost, ref: ProjectReference): ResolvedConfigFileName; 5635 export {}; 5636} 5637declare namespace ts { 5638 interface EmitOutput { 5639 outputFiles: OutputFile[]; 5640 emitSkipped: boolean; 5641 } 5642 interface OutputFile { 5643 name: string; 5644 writeByteOrderMark: boolean; 5645 text: string; 5646 } 5647} 5648declare namespace ts { 5649 type AffectedFileResult<T> = { 5650 result: T; 5651 affected: SourceFile | Program; 5652 } | undefined; 5653 interface BuilderProgramHost { 5654 /** 5655 * return true if file names are treated with case sensitivity 5656 */ 5657 useCaseSensitiveFileNames(): boolean; 5658 /** 5659 * If provided this would be used this hash instead of actual file shape text for detecting changes 5660 */ 5661 createHash?: (data: string) => string; 5662 /** 5663 * When emit or emitNextAffectedFile are called without writeFile, 5664 * this callback if present would be used to write files 5665 */ 5666 writeFile?: WriteFileCallback; 5667 } 5668 /** 5669 * Builder to manage the program state changes 5670 */ 5671 interface BuilderProgram { 5672 /** 5673 * Returns current program 5674 */ 5675 getProgram(): Program; 5676 /** 5677 * Get compiler options of the program 5678 */ 5679 getCompilerOptions(): CompilerOptions; 5680 /** 5681 * Get the source file in the program with file name 5682 */ 5683 getSourceFile(fileName: string): SourceFile | undefined; 5684 /** 5685 * Get a list of files in the program 5686 */ 5687 getSourceFiles(): readonly SourceFile[]; 5688 /** 5689 * Get the diagnostics for compiler options 5690 */ 5691 getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5692 /** 5693 * Get the diagnostics that dont belong to any file 5694 */ 5695 getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5696 /** 5697 * Get the diagnostics from config file parsing 5698 */ 5699 getConfigFileParsingDiagnostics(): readonly Diagnostic[]; 5700 /** 5701 * Get the syntax diagnostics, for all source files if source file is not supplied 5702 */ 5703 getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5704 /** 5705 * Get the declaration diagnostics, for all source files if source file is not supplied 5706 */ 5707 getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[]; 5708 /** 5709 * Get all the dependencies of the file 5710 */ 5711 getAllDependencies(sourceFile: SourceFile): readonly string[]; 5712 /** 5713 * Gets the semantic diagnostics from the program corresponding to this state of file (if provided) or whole program 5714 * The semantic diagnostics are cached and managed here 5715 * Note that it is assumed that when asked about semantic diagnostics through this API, 5716 * the file has been taken out of affected files so it is safe to use cache or get from program and cache the diagnostics 5717 * In case of SemanticDiagnosticsBuilderProgram if the source file is not provided, 5718 * it will iterate through all the affected files, to ensure that cache stays valid and yet provide a way to get all semantic diagnostics 5719 */ 5720 getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5721 /** 5722 * Emits the JavaScript and declaration files. 5723 * When targetSource file is specified, emits the files corresponding to that source file, 5724 * otherwise for the whole program. 5725 * In case of EmitAndSemanticDiagnosticsBuilderProgram, when targetSourceFile is specified, 5726 * it is assumed that that file is handled from affected file list. If targetSourceFile is not specified, 5727 * it will only emit all the affected files instead of whole program 5728 * 5729 * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host 5730 * in that order would be used to write the files 5731 */ 5732 emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult; 5733 /** 5734 * Get the current directory of the program 5735 */ 5736 getCurrentDirectory(): string; 5737 isFileUpdateInConstEnumCache?(sourceFile: SourceFile): boolean; 5738 builderProgramForLinter?: EmitAndSemanticDiagnosticsBuilderProgram; 5739 } 5740 /** 5741 * The builder that caches the semantic diagnostics for the program and handles the changed files and affected files 5742 */ 5743 interface SemanticDiagnosticsBuilderProgram extends BuilderProgram { 5744 /** 5745 * Gets the semantic diagnostics from the program for the next affected file and caches it 5746 * Returns undefined if the iteration is complete 5747 */ 5748 getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<readonly Diagnostic[]>; 5749 } 5750 /** 5751 * The builder that can handle the changes in program and iterate through changed file to emit the files 5752 * The semantic diagnostics are cached per file and managed by clearing for the changed/affected files 5753 */ 5754 interface EmitAndSemanticDiagnosticsBuilderProgram extends SemanticDiagnosticsBuilderProgram { 5755 /** 5756 * Emits the next affected file's emit result (EmitResult and sourceFiles emitted) or returns undefined if iteration is complete 5757 * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host 5758 * in that order would be used to write the files 5759 */ 5760 emitNextAffectedFile(writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): AffectedFileResult<EmitResult>; 5761 } 5762 /** 5763 * Create the builder to manage semantic diagnostics and cache them 5764 */ 5765 function createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): SemanticDiagnosticsBuilderProgram; 5766 function createSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): SemanticDiagnosticsBuilderProgram; 5767 /** 5768 * Create the builder that can handle the changes in program and iterate through changed files 5769 * to emit the those files and manage semantic diagnostics cache as well 5770 */ 5771 function createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): EmitAndSemanticDiagnosticsBuilderProgram; 5772 function createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): EmitAndSemanticDiagnosticsBuilderProgram; 5773 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; 5774 /** 5775 * Creates a builder thats just abstraction over program and can be used with watch 5776 */ 5777 function createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): BuilderProgram; 5778 function createAbstractBuilder(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): BuilderProgram; 5779} 5780declare namespace ts { 5781 interface ReadBuildProgramHost { 5782 useCaseSensitiveFileNames(): boolean; 5783 getCurrentDirectory(): string; 5784 readFile(fileName: string): string | undefined; 5785 getLastCompiledProgram?(): Program; 5786 } 5787 function readBuilderProgram(compilerOptions: CompilerOptions, host: ReadBuildProgramHost, isForLinter?: boolean): EmitAndSemanticDiagnosticsBuilderProgram | undefined; 5788 function createIncrementalCompilerHost(options: CompilerOptions, system?: System): CompilerHost; 5789 interface IncrementalProgramOptions<T extends BuilderProgram> { 5790 rootNames: readonly string[]; 5791 options: CompilerOptions; 5792 configFileParsingDiagnostics?: readonly Diagnostic[]; 5793 projectReferences?: readonly ProjectReference[]; 5794 host?: CompilerHost; 5795 createProgram?: CreateProgram<T>; 5796 } 5797 function createIncrementalProgram<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>({ rootNames, options, configFileParsingDiagnostics, projectReferences, host, createProgram }: IncrementalProgramOptions<T>): T; 5798 function createIncrementalProgramForArkTs({ rootNames, options, configFileParsingDiagnostics, projectReferences, host }: IncrementalProgramOptions<EmitAndSemanticDiagnosticsBuilderProgram>): EmitAndSemanticDiagnosticsBuilderProgram; 5799 type WatchStatusReporter = (diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number) => void; 5800 /** Create the program with rootNames and options, if they are undefined, oldProgram and new configFile diagnostics create new program */ 5801 type CreateProgram<T extends BuilderProgram> = (rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: T, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[] | undefined) => T; 5802 /** Host that has watch functionality used in --watch mode */ 5803 interface WatchHost { 5804 /** If provided, called with Diagnostic message that informs about change in watch status */ 5805 onWatchStatusChange?(diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number): void; 5806 /** Used to watch changes in source files, missing files needed to update the program or config file */ 5807 watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher; 5808 /** Used to watch resolved module's failed lookup locations, config file specs, type roots where auto type reference directives are added */ 5809 watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher; 5810 /** If provided, will be used to set delayed compilation, so that multiple changes in short span are compiled together */ 5811 setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; 5812 /** If provided, will be used to reset existing delayed compilation */ 5813 clearTimeout?(timeoutId: any): void; 5814 } 5815 interface ProgramHost<T extends BuilderProgram> { 5816 /** 5817 * Used to create the program when need for program creation or recreation detected 5818 */ 5819 createProgram: CreateProgram<T>; 5820 useCaseSensitiveFileNames(): boolean; 5821 getNewLine(): string; 5822 getCurrentDirectory(): string; 5823 getDefaultLibFileName(options: CompilerOptions): string; 5824 getDefaultLibLocation?(): string; 5825 createHash?(data: string): string; 5826 /** 5827 * Use to check file presence for source files and 5828 * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well 5829 */ 5830 fileExists(path: string): boolean; 5831 /** 5832 * Use to read file text for source files and 5833 * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well 5834 */ 5835 readFile(path: string, encoding?: string): string | undefined; 5836 /** If provided, used for module resolution as well as to handle directory structure */ 5837 directoryExists?(path: string): boolean; 5838 /** If provided, used in resolutions as well as handling directory structure */ 5839 getDirectories?(path: string): string[]; 5840 /** If provided, used to cache and handle directory structure modifications */ 5841 readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 5842 /** Symbol links resolution */ 5843 realpath?(path: string): string; 5844 /** If provided would be used to write log about compilation */ 5845 trace?(s: string): void; 5846 /** If provided is used to get the environment variable */ 5847 getEnvironmentVariable?(name: string): string | undefined; 5848 /** If provided, used to resolve the module names, otherwise typescript's default module resolution */ 5849 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 5850 /** If provided, used to resolve type reference directives, otherwise typescript's default resolution */ 5851 resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 5852 /** If provided along with custom resolveModuleNames or resolveTypeReferenceDirectives, used to determine if unchanged file path needs to re-resolve modules/type reference directives */ 5853 hasInvalidatedResolutions?(filePath: Path): boolean; 5854 /** 5855 * 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 5856 */ 5857 getModuleResolutionCache?(): ModuleResolutionCache | undefined; 5858 } 5859 interface WatchCompilerHost<T extends BuilderProgram> extends ProgramHost<T>, WatchHost { 5860 /** Instead of using output d.ts file from project reference, use its source file */ 5861 useSourceOfProjectReferenceRedirect?(): boolean; 5862 /** If provided, use this method to get parsed command lines for referenced projects */ 5863 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 5864 /** If provided, callback to invoke after every new program creation */ 5865 afterProgramCreate?(program: T): void; 5866 } 5867 /** 5868 * Host to create watch with root files and options 5869 */ 5870 interface WatchCompilerHostOfFilesAndCompilerOptions<T extends BuilderProgram> extends WatchCompilerHost<T> { 5871 /** root files to use to generate program */ 5872 rootFiles: string[]; 5873 /** Compiler options */ 5874 options: CompilerOptions; 5875 watchOptions?: WatchOptions; 5876 /** Project References */ 5877 projectReferences?: readonly ProjectReference[]; 5878 } 5879 /** 5880 * Host to create watch with config file 5881 */ 5882 interface WatchCompilerHostOfConfigFile<T extends BuilderProgram> extends WatchCompilerHost<T>, ConfigFileDiagnosticsReporter { 5883 /** Name of the config file to compile */ 5884 configFileName: string; 5885 /** Options to extend */ 5886 optionsToExtend?: CompilerOptions; 5887 watchOptionsToExtend?: WatchOptions; 5888 extraFileExtensions?: readonly FileExtensionInfo[]; 5889 /** 5890 * Used to generate source file names from the config file and its include, exclude, files rules 5891 * and also to cache the directory stucture 5892 */ 5893 readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 5894 } 5895 interface Watch<T> { 5896 /** Synchronize with host and get updated program */ 5897 getProgram(): T; 5898 /** Closes the watch */ 5899 close(): void; 5900 } 5901 /** 5902 * Creates the watch what generates program using the config file 5903 */ 5904 interface WatchOfConfigFile<T> extends Watch<T> { 5905 } 5906 /** 5907 * Creates the watch that generates program using the root files and compiler options 5908 */ 5909 interface WatchOfFilesAndCompilerOptions<T> extends Watch<T> { 5910 /** Updates the root files in the program, only if this is not config file compilation */ 5911 updateRootFileNames(fileNames: string[]): void; 5912 } 5913 /** 5914 * Create the watch compiler host for either configFile or fileNames and its options 5915 */ 5916 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>; 5917 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>; 5918 /** 5919 * Creates the watch from the host for root files and compiler options 5920 */ 5921 function createWatchProgram<T extends BuilderProgram>(host: WatchCompilerHostOfFilesAndCompilerOptions<T>): WatchOfFilesAndCompilerOptions<T>; 5922 /** 5923 * Creates the watch from the host for config file 5924 */ 5925 function createWatchProgram<T extends BuilderProgram>(host: WatchCompilerHostOfConfigFile<T>): WatchOfConfigFile<T>; 5926} 5927declare namespace ts { 5928 interface BuildOptions { 5929 dry?: boolean; 5930 force?: boolean; 5931 verbose?: boolean; 5932 incremental?: boolean; 5933 assumeChangesOnlyAffectDirectDependencies?: boolean; 5934 traceResolution?: boolean; 5935 [option: string]: CompilerOptionsValue | undefined; 5936 } 5937 type ReportEmitErrorSummary = (errorCount: number, filesInError: (ReportFileInError | undefined)[]) => void; 5938 interface ReportFileInError { 5939 fileName: string; 5940 line: number; 5941 } 5942 interface SolutionBuilderHostBase<T extends BuilderProgram> extends ProgramHost<T> { 5943 createDirectory?(path: string): void; 5944 /** 5945 * Should provide create directory and writeFile if done of invalidatedProjects is not invoked with 5946 * writeFileCallback 5947 */ 5948 writeFile?(path: string, data: string, writeByteOrderMark?: boolean): void; 5949 getCustomTransformers?: (project: string) => CustomTransformers | undefined; 5950 getModifiedTime(fileName: string): Date | undefined; 5951 setModifiedTime(fileName: string, date: Date): void; 5952 deleteFile(fileName: string): void; 5953 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 5954 reportDiagnostic: DiagnosticReporter; 5955 reportSolutionBuilderStatus: DiagnosticReporter; 5956 afterProgramEmitAndDiagnostics?(program: T): void; 5957 } 5958 interface SolutionBuilderHost<T extends BuilderProgram> extends SolutionBuilderHostBase<T> { 5959 reportErrorSummary?: ReportEmitErrorSummary; 5960 } 5961 interface SolutionBuilderWithWatchHost<T extends BuilderProgram> extends SolutionBuilderHostBase<T>, WatchHost { 5962 } 5963 interface SolutionBuilder<T extends BuilderProgram> { 5964 build(project?: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus; 5965 clean(project?: string): ExitStatus; 5966 buildReferences(project: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus; 5967 cleanReferences(project?: string): ExitStatus; 5968 getNextInvalidatedProject(cancellationToken?: CancellationToken): InvalidatedProject<T> | undefined; 5969 } 5970 /** 5971 * Create a function that reports watch status by writing to the system and handles the formating of the diagnostic 5972 */ 5973 function createBuilderStatusReporter(system: System, pretty?: boolean): DiagnosticReporter; 5974 function createSolutionBuilderHost<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>(system?: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportErrorSummary?: ReportEmitErrorSummary): SolutionBuilderHost<T>; 5975 function createSolutionBuilderWithWatchHost<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>(system?: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter): SolutionBuilderWithWatchHost<T>; 5976 function createSolutionBuilder<T extends BuilderProgram>(host: SolutionBuilderHost<T>, rootNames: readonly string[], defaultOptions: BuildOptions): SolutionBuilder<T>; 5977 function createSolutionBuilderWithWatch<T extends BuilderProgram>(host: SolutionBuilderWithWatchHost<T>, rootNames: readonly string[], defaultOptions: BuildOptions, baseWatchOptions?: WatchOptions): SolutionBuilder<T>; 5978 enum InvalidatedProjectKind { 5979 Build = 0, 5980 UpdateBundle = 1, 5981 UpdateOutputFileStamps = 2 5982 } 5983 interface InvalidatedProjectBase { 5984 readonly kind: InvalidatedProjectKind; 5985 readonly project: ResolvedConfigFileName; 5986 /** 5987 * To dispose this project and ensure that all the necessary actions are taken and state is updated accordingly 5988 */ 5989 done(cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, customTransformers?: CustomTransformers): ExitStatus; 5990 getCompilerOptions(): CompilerOptions; 5991 getCurrentDirectory(): string; 5992 } 5993 interface UpdateOutputFileStampsProject extends InvalidatedProjectBase { 5994 readonly kind: InvalidatedProjectKind.UpdateOutputFileStamps; 5995 updateOutputFileStatmps(): void; 5996 } 5997 interface BuildInvalidedProject<T extends BuilderProgram> extends InvalidatedProjectBase { 5998 readonly kind: InvalidatedProjectKind.Build; 5999 getBuilderProgram(): T | undefined; 6000 getProgram(): Program | undefined; 6001 getSourceFile(fileName: string): SourceFile | undefined; 6002 getSourceFiles(): readonly SourceFile[]; 6003 getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 6004 getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 6005 getConfigFileParsingDiagnostics(): readonly Diagnostic[]; 6006 getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 6007 getAllDependencies(sourceFile: SourceFile): readonly string[]; 6008 getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 6009 getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<readonly Diagnostic[]>; 6010 emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult | undefined; 6011 } 6012 interface UpdateBundleProject<T extends BuilderProgram> extends InvalidatedProjectBase { 6013 readonly kind: InvalidatedProjectKind.UpdateBundle; 6014 emit(writeFile?: WriteFileCallback, customTransformers?: CustomTransformers): EmitResult | BuildInvalidedProject<T> | undefined; 6015 } 6016 type InvalidatedProject<T extends BuilderProgram> = UpdateOutputFileStampsProject | BuildInvalidedProject<T> | UpdateBundleProject<T>; 6017} 6018declare namespace ts.server { 6019 type ActionSet = "action::set"; 6020 type ActionInvalidate = "action::invalidate"; 6021 type ActionPackageInstalled = "action::packageInstalled"; 6022 type EventTypesRegistry = "event::typesRegistry"; 6023 type EventBeginInstallTypes = "event::beginInstallTypes"; 6024 type EventEndInstallTypes = "event::endInstallTypes"; 6025 type EventInitializationFailed = "event::initializationFailed"; 6026} 6027declare namespace ts.server { 6028 interface TypingInstallerResponse { 6029 readonly kind: ActionSet | ActionInvalidate | EventTypesRegistry | ActionPackageInstalled | EventBeginInstallTypes | EventEndInstallTypes | EventInitializationFailed; 6030 } 6031 interface TypingInstallerRequestWithProjectName { 6032 readonly projectName: string; 6033 } 6034 interface DiscoverTypings extends TypingInstallerRequestWithProjectName { 6035 readonly fileNames: string[]; 6036 readonly projectRootPath: Path; 6037 readonly compilerOptions: CompilerOptions; 6038 readonly watchOptions?: WatchOptions; 6039 readonly typeAcquisition: TypeAcquisition; 6040 readonly unresolvedImports: SortedReadonlyArray<string>; 6041 readonly cachePath?: string; 6042 readonly kind: "discover"; 6043 } 6044 interface CloseProject extends TypingInstallerRequestWithProjectName { 6045 readonly kind: "closeProject"; 6046 } 6047 interface TypesRegistryRequest { 6048 readonly kind: "typesRegistry"; 6049 } 6050 interface InstallPackageRequest extends TypingInstallerRequestWithProjectName { 6051 readonly kind: "installPackage"; 6052 readonly fileName: Path; 6053 readonly packageName: string; 6054 readonly projectRootPath: Path; 6055 } 6056 interface PackageInstalledResponse extends ProjectResponse { 6057 readonly kind: ActionPackageInstalled; 6058 readonly success: boolean; 6059 readonly message: string; 6060 } 6061 interface InitializationFailedResponse extends TypingInstallerResponse { 6062 readonly kind: EventInitializationFailed; 6063 readonly message: string; 6064 readonly stack?: string; 6065 } 6066 interface ProjectResponse extends TypingInstallerResponse { 6067 readonly projectName: string; 6068 } 6069 interface InvalidateCachedTypings extends ProjectResponse { 6070 readonly kind: ActionInvalidate; 6071 } 6072 interface InstallTypes extends ProjectResponse { 6073 readonly kind: EventBeginInstallTypes | EventEndInstallTypes; 6074 readonly eventId: number; 6075 readonly typingsInstallerVersion: string; 6076 readonly packagesToInstall: readonly string[]; 6077 } 6078 interface BeginInstallTypes extends InstallTypes { 6079 readonly kind: EventBeginInstallTypes; 6080 } 6081 interface EndInstallTypes extends InstallTypes { 6082 readonly kind: EventEndInstallTypes; 6083 readonly installSuccess: boolean; 6084 } 6085 interface SetTypings extends ProjectResponse { 6086 readonly typeAcquisition: TypeAcquisition; 6087 readonly compilerOptions: CompilerOptions; 6088 readonly typings: string[]; 6089 readonly unresolvedImports: SortedReadonlyArray<string>; 6090 readonly kind: ActionSet; 6091 } 6092} 6093declare namespace ts { 6094 interface Node { 6095 getSourceFile(): SourceFile; 6096 getChildCount(sourceFile?: SourceFile): number; 6097 getChildAt(index: number, sourceFile?: SourceFile): Node; 6098 getChildren(sourceFile?: SourceFile): Node[]; 6099 getStart(sourceFile?: SourceFile, includeJsDocComment?: boolean): number; 6100 getFullStart(): number; 6101 getEnd(): number; 6102 getWidth(sourceFile?: SourceFileLike): number; 6103 getFullWidth(): number; 6104 getLeadingTriviaWidth(sourceFile?: SourceFile): number; 6105 getFullText(sourceFile?: SourceFile): string; 6106 getText(sourceFile?: SourceFile): string; 6107 getFirstToken(sourceFile?: SourceFile): Node | undefined; 6108 getLastToken(sourceFile?: SourceFile): Node | undefined; 6109 forEachChild<T>(cbNode: (node: Node) => T | undefined, cbNodeArray?: (nodes: NodeArray<Node>) => T | undefined): T | undefined; 6110 } 6111 interface Identifier { 6112 readonly text: string; 6113 } 6114 interface PrivateIdentifier { 6115 readonly text: string; 6116 } 6117 interface Symbol { 6118 readonly name: string; 6119 getFlags(): SymbolFlags; 6120 getEscapedName(): __String; 6121 getName(): string; 6122 getDeclarations(): Declaration[] | undefined; 6123 getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; 6124 getJsDocTags(checker?: TypeChecker): JSDocTagInfo[]; 6125 } 6126 interface Type { 6127 getFlags(): TypeFlags; 6128 getSymbol(): Symbol | undefined; 6129 getProperties(): Symbol[]; 6130 getProperty(propertyName: string): Symbol | undefined; 6131 getApparentProperties(): Symbol[]; 6132 getCallSignatures(): readonly Signature[]; 6133 getConstructSignatures(): readonly Signature[]; 6134 getStringIndexType(): Type | undefined; 6135 getNumberIndexType(): Type | undefined; 6136 getBaseTypes(): BaseType[] | undefined; 6137 getNonNullableType(): Type; 6138 getConstraint(): Type | undefined; 6139 getDefault(): Type | undefined; 6140 isUnion(): this is UnionType; 6141 isIntersection(): this is IntersectionType; 6142 isUnionOrIntersection(): this is UnionOrIntersectionType; 6143 isLiteral(): this is LiteralType; 6144 isStringLiteral(): this is StringLiteralType; 6145 isNumberLiteral(): this is NumberLiteralType; 6146 isTypeParameter(): this is TypeParameter; 6147 isClassOrInterface(): this is InterfaceType; 6148 isClass(): this is InterfaceType; 6149 isIndexType(): this is IndexType; 6150 } 6151 interface TypeReference { 6152 typeArguments?: readonly Type[]; 6153 } 6154 interface Signature { 6155 getDeclaration(): SignatureDeclaration; 6156 getTypeParameters(): TypeParameter[] | undefined; 6157 getParameters(): Symbol[]; 6158 getTypeParameterAtPosition(pos: number): Type; 6159 getReturnType(): Type; 6160 getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; 6161 getJsDocTags(): JSDocTagInfo[]; 6162 } 6163 interface SourceFile { 6164 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6165 getLineEndOfPosition(pos: number): number; 6166 getLineStarts(): readonly number[]; 6167 getPositionOfLineAndCharacter(line: number, character: number): number; 6168 update(newText: string, textChangeRange: TextChangeRange): SourceFile; 6169 } 6170 interface SourceFileLike { 6171 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6172 } 6173 interface SourceMapSource { 6174 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6175 } 6176 /** 6177 * Represents an immutable snapshot of a script at a specified time.Once acquired, the 6178 * snapshot is observably immutable. i.e. the same calls with the same parameters will return 6179 * the same values. 6180 */ 6181 interface IScriptSnapshot { 6182 /** Gets a portion of the script snapshot specified by [start, end). */ 6183 getText(start: number, end: number): string; 6184 /** Gets the length of this script snapshot. */ 6185 getLength(): number; 6186 /** 6187 * Gets the TextChangeRange that describe how the text changed between this text and 6188 * an older version. This information is used by the incremental parser to determine 6189 * what sections of the script need to be re-parsed. 'undefined' can be returned if the 6190 * change range cannot be determined. However, in that case, incremental parsing will 6191 * not happen and the entire document will be re - parsed. 6192 */ 6193 getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange | undefined; 6194 /** Releases all resources held by this script snapshot */ 6195 dispose?(): void; 6196 } 6197 namespace ScriptSnapshot { 6198 function fromString(text: string): IScriptSnapshot; 6199 } 6200 interface PreProcessedFileInfo { 6201 referencedFiles: FileReference[]; 6202 typeReferenceDirectives: FileReference[]; 6203 libReferenceDirectives: FileReference[]; 6204 importedFiles: FileReference[]; 6205 ambientExternalModules?: string[]; 6206 isLibFile: boolean; 6207 } 6208 interface HostCancellationToken { 6209 isCancellationRequested(): boolean; 6210 } 6211 interface InstallPackageOptions { 6212 fileName: Path; 6213 packageName: string; 6214 } 6215 interface PerformanceEvent { 6216 kind: "UpdateGraph" | "CreatePackageJsonAutoImportProvider"; 6217 durationMs: number; 6218 } 6219 enum LanguageServiceMode { 6220 Semantic = 0, 6221 PartialSemantic = 1, 6222 Syntactic = 2 6223 } 6224 interface IncompleteCompletionsCache { 6225 get(): CompletionInfo | undefined; 6226 set(response: CompletionInfo): void; 6227 clear(): void; 6228 } 6229 interface LanguageServiceHost extends GetEffectiveTypeRootsHost, MinimalResolutionCacheHost { 6230 getCompilationSettings(): CompilerOptions; 6231 getNewLine?(): string; 6232 getProjectVersion?(): string; 6233 getScriptFileNames(): string[]; 6234 getScriptKind?(fileName: string): ScriptKind; 6235 getScriptVersion(fileName: string): string; 6236 getScriptSnapshot(fileName: string): IScriptSnapshot | undefined; 6237 getProjectReferences?(): readonly ProjectReference[] | undefined; 6238 getLocalizedDiagnosticMessages?(): any; 6239 getCancellationToken?(): HostCancellationToken; 6240 getCurrentDirectory(): string; 6241 getDefaultLibFileName(options: CompilerOptions): string; 6242 log?(s: string): void; 6243 trace?(s: string): void; 6244 error?(s: string): void; 6245 useCaseSensitiveFileNames?(): boolean; 6246 readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 6247 realpath?(path: string): string; 6248 readFile(path: string, encoding?: string): string | undefined; 6249 fileExists(path: string): boolean; 6250 getTypeRootsVersion?(): number; 6251 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 6252 getResolvedModuleWithFailedLookupLocationsFromCache?(modulename: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; 6253 resolveTypeReferenceDirectives?(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 6254 getDirectories?(directoryName: string): string[]; 6255 /** 6256 * Gets a set of custom transformers to use during emit. 6257 */ 6258 getCustomTransformers?(): CustomTransformers | undefined; 6259 isKnownTypesPackageName?(name: string): boolean; 6260 installPackage?(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>; 6261 writeFile?(fileName: string, content: string): void; 6262 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 6263 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 6264 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 6265 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 6266 shouldCompletionSortCustom?: boolean; 6267 uiProps?: string[]; 6268 clearProps?(): void; 6269 } 6270 type WithMetadata<T> = T & { 6271 metadata?: unknown; 6272 }; 6273 enum SemanticClassificationFormat { 6274 Original = "original", 6275 TwentyTwenty = "2020" 6276 } 6277 interface LanguageService { 6278 /** This is used as a part of restarting the language service. */ 6279 cleanupSemanticCache(): void; 6280 /** 6281 * Gets errors indicating invalid syntax in a file. 6282 * 6283 * In English, "this cdeo have, erorrs" is syntactically invalid because it has typos, 6284 * grammatical errors, and misplaced punctuation. Likewise, examples of syntax 6285 * errors in TypeScript are missing parentheses in an `if` statement, mismatched 6286 * curly braces, and using a reserved keyword as a variable name. 6287 * 6288 * These diagnostics are inexpensive to compute and don't require knowledge of 6289 * other files. Note that a non-empty result increases the likelihood of false positives 6290 * from `getSemanticDiagnostics`. 6291 * 6292 * While these represent the majority of syntax-related diagnostics, there are some 6293 * that require the type system, which will be present in `getSemanticDiagnostics`. 6294 * 6295 * @param fileName A path to the file you want syntactic diagnostics for 6296 */ 6297 getSyntacticDiagnostics(fileName: string): DiagnosticWithLocation[]; 6298 /** 6299 * Gets warnings or errors indicating type system issues in a given file. 6300 * Requesting semantic diagnostics may start up the type system and 6301 * run deferred work, so the first call may take longer than subsequent calls. 6302 * 6303 * Unlike the other get*Diagnostics functions, these diagnostics can potentially not 6304 * include a reference to a source file. Specifically, the first time this is called, 6305 * it will return global diagnostics with no associated location. 6306 * 6307 * To contrast the differences between semantic and syntactic diagnostics, consider the 6308 * sentence: "The sun is green." is syntactically correct; those are real English words with 6309 * correct sentence structure. However, it is semantically invalid, because it is not true. 6310 * 6311 * @param fileName A path to the file you want semantic diagnostics for 6312 */ 6313 getSemanticDiagnostics(fileName: string): Diagnostic[]; 6314 /** 6315 * Gets suggestion diagnostics for a specific file. These diagnostics tend to 6316 * proactively suggest refactors, as opposed to diagnostics that indicate 6317 * potentially incorrect runtime behavior. 6318 * 6319 * @param fileName A path to the file you want semantic diagnostics for 6320 */ 6321 getSuggestionDiagnostics(fileName: string): DiagnosticWithLocation[]; 6322 /** 6323 * Gets global diagnostics related to the program configuration and compiler options. 6324 */ 6325 getCompilerOptionsDiagnostics(): Diagnostic[]; 6326 /** @deprecated Use getEncodedSyntacticClassifications instead. */ 6327 getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; 6328 getSyntacticClassifications(fileName: string, span: TextSpan, format: SemanticClassificationFormat): ClassifiedSpan[] | ClassifiedSpan2020[]; 6329 /** @deprecated Use getEncodedSemanticClassifications instead. */ 6330 getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; 6331 getSemanticClassifications(fileName: string, span: TextSpan, format: SemanticClassificationFormat): ClassifiedSpan[] | ClassifiedSpan2020[]; 6332 /** Encoded as triples of [start, length, ClassificationType]. */ 6333 getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications; 6334 /** 6335 * Gets semantic highlights information for a particular file. Has two formats, an older 6336 * version used by VS and a format used by VS Code. 6337 * 6338 * @param fileName The path to the file 6339 * @param position A text span to return results within 6340 * @param format Which format to use, defaults to "original" 6341 * @returns a number array encoded as triples of [start, length, ClassificationType, ...]. 6342 */ 6343 getEncodedSemanticClassifications(fileName: string, span: TextSpan, format?: SemanticClassificationFormat): Classifications; 6344 /** 6345 * Gets completion entries at a particular position in a file. 6346 * 6347 * @param fileName The path to the file 6348 * @param position A zero-based index of the character where you want the entries 6349 * @param options An object describing how the request was triggered and what kinds 6350 * of code actions can be returned with the completions. 6351 * @param formattingSettings settings needed for calling formatting functions. 6352 */ 6353 getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined, formattingSettings?: FormatCodeSettings): WithMetadata<CompletionInfo> | undefined; 6354 /** 6355 * Gets the extended details for a completion entry retrieved from `getCompletionsAtPosition`. 6356 * 6357 * @param fileName The path to the file 6358 * @param position A zero based index of the character where you want the entries 6359 * @param entryName The `name` from an existing completion which came from `getCompletionsAtPosition` 6360 * @param formatOptions How should code samples in the completions be formatted, can be undefined for backwards compatibility 6361 * @param source `source` property from the completion entry 6362 * @param preferences User settings, can be undefined for backwards compatibility 6363 * @param data `data` property from the completion entry 6364 */ 6365 getCompletionEntryDetails(fileName: string, position: number, entryName: string, formatOptions: FormatCodeOptions | FormatCodeSettings | undefined, source: string | undefined, preferences: UserPreferences | undefined, data: CompletionEntryData | undefined): CompletionEntryDetails | undefined; 6366 getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): Symbol | undefined; 6367 /** 6368 * Gets semantic information about the identifier at a particular position in a 6369 * file. Quick info is what you typically see when you hover in an editor. 6370 * 6371 * @param fileName The path to the file 6372 * @param position A zero-based index of the character where you want the quick info 6373 */ 6374 getQuickInfoAtPosition(fileName: string, position: number): QuickInfo | undefined; 6375 getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan | undefined; 6376 getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan | undefined; 6377 getSignatureHelpItems(fileName: string, position: number, options: SignatureHelpItemsOptions | undefined): SignatureHelpItems | undefined; 6378 getRenameInfo(fileName: string, position: number, preferences: UserPreferences): RenameInfo; 6379 /** @deprecated Use the signature with `UserPreferences` instead. */ 6380 getRenameInfo(fileName: string, position: number, options?: RenameInfoOptions): RenameInfo; 6381 findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename?: boolean): readonly RenameLocation[] | undefined; 6382 getSmartSelectionRange(fileName: string, position: number): SelectionRange; 6383 getDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined; 6384 getDefinitionAndBoundSpan(fileName: string, position: number): DefinitionInfoAndBoundSpan | undefined; 6385 getTypeDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined; 6386 getImplementationAtPosition(fileName: string, position: number): readonly ImplementationLocation[] | undefined; 6387 getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[] | undefined; 6388 findReferences(fileName: string, position: number): ReferencedSymbol[] | undefined; 6389 getDocumentHighlights(fileName: string, position: number, filesToSearch: string[]): DocumentHighlights[] | undefined; 6390 getFileReferences(fileName: string): ReferenceEntry[]; 6391 /** @deprecated */ 6392 getOccurrencesAtPosition(fileName: string, position: number): readonly ReferenceEntry[] | undefined; 6393 getNavigateToItems(searchValue: string, maxResultCount?: number, fileName?: string, excludeDtsFiles?: boolean): NavigateToItem[]; 6394 getNavigationBarItems(fileName: string): NavigationBarItem[]; 6395 getNavigationTree(fileName: string): NavigationTree; 6396 prepareCallHierarchy(fileName: string, position: number): CallHierarchyItem | CallHierarchyItem[] | undefined; 6397 provideCallHierarchyIncomingCalls(fileName: string, position: number): CallHierarchyIncomingCall[]; 6398 provideCallHierarchyOutgoingCalls(fileName: string, position: number): CallHierarchyOutgoingCall[]; 6399 provideInlayHints(fileName: string, span: TextSpan, preferences: UserPreferences | undefined): InlayHint[]; 6400 getOutliningSpans(fileName: string): OutliningSpan[]; 6401 getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; 6402 getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; 6403 getIndentationAtPosition(fileName: string, position: number, options: EditorOptions | EditorSettings): number; 6404 getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6405 getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6406 getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6407 getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; 6408 isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; 6409 /** 6410 * 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. 6411 * Editors should call this after `>` is typed. 6412 */ 6413 getJsxClosingTagAtPosition(fileName: string, position: number): JsxClosingTagInfo | undefined; 6414 getSpanOfEnclosingComment(fileName: string, position: number, onlyMultiLine: boolean): TextSpan | undefined; 6415 toLineColumnOffset?(fileName: string, position: number): LineAndCharacter; 6416 getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: readonly number[], formatOptions: FormatCodeSettings, preferences: UserPreferences): readonly CodeFixAction[]; 6417 getCombinedCodeFix(scope: CombinedCodeFixScope, fixId: {}, formatOptions: FormatCodeSettings, preferences: UserPreferences): CombinedCodeActions; 6418 applyCodeActionCommand(action: CodeActionCommand, formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult>; 6419 applyCodeActionCommand(action: CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult[]>; 6420 applyCodeActionCommand(action: CodeActionCommand | CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>; 6421 /** @deprecated `fileName` will be ignored */ 6422 applyCodeActionCommand(fileName: string, action: CodeActionCommand): Promise<ApplyCodeActionCommandResult>; 6423 /** @deprecated `fileName` will be ignored */ 6424 applyCodeActionCommand(fileName: string, action: CodeActionCommand[]): Promise<ApplyCodeActionCommandResult[]>; 6425 /** @deprecated `fileName` will be ignored */ 6426 applyCodeActionCommand(fileName: string, action: CodeActionCommand | CodeActionCommand[]): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>; 6427 getApplicableRefactors(fileName: string, positionOrRange: number | TextRange, preferences: UserPreferences | undefined, triggerReason?: RefactorTriggerReason, kind?: string): ApplicableRefactorInfo[]; 6428 getEditsForRefactor(fileName: string, formatOptions: FormatCodeSettings, positionOrRange: number | TextRange, refactorName: string, actionName: string, preferences: UserPreferences | undefined): RefactorEditInfo | undefined; 6429 organizeImports(args: OrganizeImportsArgs, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[]; 6430 getEditsForFileRename(oldFilePath: string, newFilePath: string, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[]; 6431 getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean, forceDtsEmit?: boolean): EmitOutput; 6432 getProgram(): Program | undefined; 6433 getBuilderProgram(): BuilderProgram | undefined; 6434 toggleLineComment(fileName: string, textRange: TextRange): TextChange[]; 6435 toggleMultilineComment(fileName: string, textRange: TextRange): TextChange[]; 6436 commentSelection(fileName: string, textRange: TextRange): TextChange[]; 6437 uncommentSelection(fileName: string, textRange: TextRange): TextChange[]; 6438 dispose(): void; 6439 updateRootFiles?(rootFiles: string[]): void; 6440 getProps?(): string[]; 6441 } 6442 interface JsxClosingTagInfo { 6443 readonly newText: string; 6444 } 6445 interface CombinedCodeFixScope { 6446 type: "file"; 6447 fileName: string; 6448 } 6449 enum OrganizeImportsMode { 6450 All = "All", 6451 SortAndCombine = "SortAndCombine", 6452 RemoveUnused = "RemoveUnused" 6453 } 6454 interface OrganizeImportsArgs extends CombinedCodeFixScope { 6455 /** @deprecated Use `mode` instead */ 6456 skipDestructiveCodeActions?: boolean; 6457 mode?: OrganizeImportsMode; 6458 } 6459 type CompletionsTriggerCharacter = "." | '"' | "'" | "`" | "/" | "@" | "<" | "#" | " "; 6460 enum CompletionTriggerKind { 6461 /** Completion was triggered by typing an identifier, manual invocation (e.g Ctrl+Space) or via API. */ 6462 Invoked = 1, 6463 /** Completion was triggered by a trigger character. */ 6464 TriggerCharacter = 2, 6465 /** Completion was re-triggered as the current completion list is incomplete. */ 6466 TriggerForIncompleteCompletions = 3 6467 } 6468 interface GetCompletionsAtPositionOptions extends UserPreferences { 6469 /** 6470 * If the editor is asking for completions because a certain character was typed 6471 * (as opposed to when the user explicitly requested them) this should be set. 6472 */ 6473 triggerCharacter?: CompletionsTriggerCharacter; 6474 triggerKind?: CompletionTriggerKind; 6475 /** @deprecated Use includeCompletionsForModuleExports */ 6476 includeExternalModuleExports?: boolean; 6477 /** @deprecated Use includeCompletionsWithInsertText */ 6478 includeInsertTextCompletions?: boolean; 6479 } 6480 type SignatureHelpTriggerCharacter = "," | "(" | "<"; 6481 type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; 6482 interface SignatureHelpItemsOptions { 6483 triggerReason?: SignatureHelpTriggerReason; 6484 } 6485 type SignatureHelpTriggerReason = SignatureHelpInvokedReason | SignatureHelpCharacterTypedReason | SignatureHelpRetriggeredReason; 6486 /** 6487 * Signals that the user manually requested signature help. 6488 * The language service will unconditionally attempt to provide a result. 6489 */ 6490 interface SignatureHelpInvokedReason { 6491 kind: "invoked"; 6492 triggerCharacter?: undefined; 6493 } 6494 /** 6495 * Signals that the signature help request came from a user typing a character. 6496 * Depending on the character and the syntactic context, the request may or may not be served a result. 6497 */ 6498 interface SignatureHelpCharacterTypedReason { 6499 kind: "characterTyped"; 6500 /** 6501 * Character that was responsible for triggering signature help. 6502 */ 6503 triggerCharacter: SignatureHelpTriggerCharacter; 6504 } 6505 /** 6506 * Signals that this signature help request came from typing a character or moving the cursor. 6507 * This should only occur if a signature help session was already active and the editor needs to see if it should adjust. 6508 * The language service will unconditionally attempt to provide a result. 6509 * `triggerCharacter` can be `undefined` for a retrigger caused by a cursor move. 6510 */ 6511 interface SignatureHelpRetriggeredReason { 6512 kind: "retrigger"; 6513 /** 6514 * Character that was responsible for triggering signature help. 6515 */ 6516 triggerCharacter?: SignatureHelpRetriggerCharacter; 6517 } 6518 interface ApplyCodeActionCommandResult { 6519 successMessage: string; 6520 } 6521 interface Classifications { 6522 spans: number[]; 6523 endOfLineState: EndOfLineState; 6524 } 6525 interface ClassifiedSpan { 6526 textSpan: TextSpan; 6527 classificationType: ClassificationTypeNames; 6528 } 6529 interface ClassifiedSpan2020 { 6530 textSpan: TextSpan; 6531 classificationType: number; 6532 } 6533 /** 6534 * Navigation bar interface designed for visual studio's dual-column layout. 6535 * This does not form a proper tree. 6536 * The navbar is returned as a list of top-level items, each of which has a list of child items. 6537 * Child items always have an empty array for their `childItems`. 6538 */ 6539 interface NavigationBarItem { 6540 text: string; 6541 kind: ScriptElementKind; 6542 kindModifiers: string; 6543 spans: TextSpan[]; 6544 childItems: NavigationBarItem[]; 6545 indent: number; 6546 bolded: boolean; 6547 grayed: boolean; 6548 } 6549 /** 6550 * Node in a tree of nested declarations in a file. 6551 * The top node is always a script or module node. 6552 */ 6553 interface NavigationTree { 6554 /** Name of the declaration, or a short description, e.g. "<class>". */ 6555 text: string; 6556 kind: ScriptElementKind; 6557 /** ScriptElementKindModifier separated by commas, e.g. "public,abstract" */ 6558 kindModifiers: string; 6559 /** 6560 * Spans of the nodes that generated this declaration. 6561 * There will be more than one if this is the result of merging. 6562 */ 6563 spans: TextSpan[]; 6564 nameSpan: TextSpan | undefined; 6565 /** Present if non-empty */ 6566 childItems?: NavigationTree[]; 6567 } 6568 interface CallHierarchyItem { 6569 name: string; 6570 kind: ScriptElementKind; 6571 kindModifiers?: string; 6572 file: string; 6573 span: TextSpan; 6574 selectionSpan: TextSpan; 6575 containerName?: string; 6576 } 6577 interface CallHierarchyIncomingCall { 6578 from: CallHierarchyItem; 6579 fromSpans: TextSpan[]; 6580 } 6581 interface CallHierarchyOutgoingCall { 6582 to: CallHierarchyItem; 6583 fromSpans: TextSpan[]; 6584 } 6585 enum InlayHintKind { 6586 Type = "Type", 6587 Parameter = "Parameter", 6588 Enum = "Enum" 6589 } 6590 interface InlayHint { 6591 text: string; 6592 position: number; 6593 kind: InlayHintKind; 6594 whitespaceBefore?: boolean; 6595 whitespaceAfter?: boolean; 6596 } 6597 interface TodoCommentDescriptor { 6598 text: string; 6599 priority: number; 6600 } 6601 interface TodoComment { 6602 descriptor: TodoCommentDescriptor; 6603 message: string; 6604 position: number; 6605 } 6606 interface TextChange { 6607 span: TextSpan; 6608 newText: string; 6609 } 6610 interface FileTextChanges { 6611 fileName: string; 6612 textChanges: readonly TextChange[]; 6613 isNewFile?: boolean; 6614 } 6615 interface CodeAction { 6616 /** Description of the code action to display in the UI of the editor */ 6617 description: string; 6618 /** Text changes to apply to each file as part of the code action */ 6619 changes: FileTextChanges[]; 6620 /** 6621 * If the user accepts the code fix, the editor should send the action back in a `applyAction` request. 6622 * This allows the language service to have side effects (e.g. installing dependencies) upon a code fix. 6623 */ 6624 commands?: CodeActionCommand[]; 6625 } 6626 interface CodeFixAction extends CodeAction { 6627 /** Short name to identify the fix, for use by telemetry. */ 6628 fixName: string; 6629 /** 6630 * If present, one may call 'getCombinedCodeFix' with this fixId. 6631 * This may be omitted to indicate that the code fix can't be applied in a group. 6632 */ 6633 fixId?: {}; 6634 fixAllDescription?: string; 6635 } 6636 interface CombinedCodeActions { 6637 changes: readonly FileTextChanges[]; 6638 commands?: readonly CodeActionCommand[]; 6639 } 6640 type CodeActionCommand = InstallPackageAction; 6641 interface InstallPackageAction { 6642 } 6643 /** 6644 * A set of one or more available refactoring actions, grouped under a parent refactoring. 6645 */ 6646 interface ApplicableRefactorInfo { 6647 /** 6648 * The programmatic name of the refactoring 6649 */ 6650 name: string; 6651 /** 6652 * A description of this refactoring category to show to the user. 6653 * If the refactoring gets inlined (see below), this text will not be visible. 6654 */ 6655 description: string; 6656 /** 6657 * Inlineable refactorings can have their actions hoisted out to the top level 6658 * of a context menu. Non-inlineanable refactorings should always be shown inside 6659 * their parent grouping. 6660 * 6661 * If not specified, this value is assumed to be 'true' 6662 */ 6663 inlineable?: boolean; 6664 actions: RefactorActionInfo[]; 6665 } 6666 /** 6667 * Represents a single refactoring action - for example, the "Extract Method..." refactor might 6668 * offer several actions, each corresponding to a surround class or closure to extract into. 6669 */ 6670 interface RefactorActionInfo { 6671 /** 6672 * The programmatic name of the refactoring action 6673 */ 6674 name: string; 6675 /** 6676 * A description of this refactoring action to show to the user. 6677 * If the parent refactoring is inlined away, this will be the only text shown, 6678 * so this description should make sense by itself if the parent is inlineable=true 6679 */ 6680 description: string; 6681 /** 6682 * A message to show to the user if the refactoring cannot be applied in 6683 * the current context. 6684 */ 6685 notApplicableReason?: string; 6686 /** 6687 * The hierarchical dotted name of the refactor action. 6688 */ 6689 kind?: string; 6690 } 6691 /** 6692 * A set of edits to make in response to a refactor action, plus an optional 6693 * location where renaming should be invoked from 6694 */ 6695 interface RefactorEditInfo { 6696 edits: FileTextChanges[]; 6697 renameFilename?: string; 6698 renameLocation?: number; 6699 commands?: CodeActionCommand[]; 6700 } 6701 type RefactorTriggerReason = "implicit" | "invoked"; 6702 interface TextInsertion { 6703 newText: string; 6704 /** The position in newText the caret should point to after the insertion. */ 6705 caretOffset: number; 6706 } 6707 interface DocumentSpan { 6708 textSpan: TextSpan; 6709 fileName: string; 6710 /** 6711 * If the span represents a location that was remapped (e.g. via a .d.ts.map file), 6712 * then the original filename and span will be specified here 6713 */ 6714 originalTextSpan?: TextSpan; 6715 originalFileName?: string; 6716 /** 6717 * If DocumentSpan.textSpan is the span for name of the declaration, 6718 * then this is the span for relevant declaration 6719 */ 6720 contextSpan?: TextSpan; 6721 originalContextSpan?: TextSpan; 6722 } 6723 interface RenameLocation extends DocumentSpan { 6724 readonly prefixText?: string; 6725 readonly suffixText?: string; 6726 } 6727 interface ReferenceEntry extends DocumentSpan { 6728 isWriteAccess: boolean; 6729 isInString?: true; 6730 } 6731 interface ImplementationLocation extends DocumentSpan { 6732 kind: ScriptElementKind; 6733 displayParts: SymbolDisplayPart[]; 6734 } 6735 enum HighlightSpanKind { 6736 none = "none", 6737 definition = "definition", 6738 reference = "reference", 6739 writtenReference = "writtenReference" 6740 } 6741 interface HighlightSpan { 6742 fileName?: string; 6743 isInString?: true; 6744 textSpan: TextSpan; 6745 contextSpan?: TextSpan; 6746 kind: HighlightSpanKind; 6747 } 6748 interface NavigateToItem { 6749 name: string; 6750 kind: ScriptElementKind; 6751 kindModifiers: string; 6752 matchKind: "exact" | "prefix" | "substring" | "camelCase"; 6753 isCaseSensitive: boolean; 6754 fileName: string; 6755 textSpan: TextSpan; 6756 containerName: string; 6757 containerKind: ScriptElementKind; 6758 } 6759 enum IndentStyle { 6760 None = 0, 6761 Block = 1, 6762 Smart = 2 6763 } 6764 enum SemicolonPreference { 6765 Ignore = "ignore", 6766 Insert = "insert", 6767 Remove = "remove" 6768 } 6769 /** @deprecated - consider using EditorSettings instead */ 6770 interface EditorOptions { 6771 BaseIndentSize?: number; 6772 IndentSize: number; 6773 TabSize: number; 6774 NewLineCharacter: string; 6775 ConvertTabsToSpaces: boolean; 6776 IndentStyle: IndentStyle; 6777 } 6778 interface EditorSettings { 6779 baseIndentSize?: number; 6780 indentSize?: number; 6781 tabSize?: number; 6782 newLineCharacter?: string; 6783 convertTabsToSpaces?: boolean; 6784 indentStyle?: IndentStyle; 6785 trimTrailingWhitespace?: boolean; 6786 } 6787 /** @deprecated - consider using FormatCodeSettings instead */ 6788 interface FormatCodeOptions extends EditorOptions { 6789 InsertSpaceAfterCommaDelimiter: boolean; 6790 InsertSpaceAfterSemicolonInForStatements: boolean; 6791 InsertSpaceBeforeAndAfterBinaryOperators: boolean; 6792 InsertSpaceAfterConstructor?: boolean; 6793 InsertSpaceAfterKeywordsInControlFlowStatements: boolean; 6794 InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; 6795 InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; 6796 InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean; 6797 InsertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; 6798 InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean; 6799 InsertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; 6800 InsertSpaceAfterTypeAssertion?: boolean; 6801 InsertSpaceBeforeFunctionParenthesis?: boolean; 6802 PlaceOpenBraceOnNewLineForFunctions: boolean; 6803 PlaceOpenBraceOnNewLineForControlBlocks: boolean; 6804 insertSpaceBeforeTypeAnnotation?: boolean; 6805 } 6806 interface FormatCodeSettings extends EditorSettings { 6807 readonly insertSpaceAfterCommaDelimiter?: boolean; 6808 readonly insertSpaceAfterSemicolonInForStatements?: boolean; 6809 readonly insertSpaceBeforeAndAfterBinaryOperators?: boolean; 6810 readonly insertSpaceAfterConstructor?: boolean; 6811 readonly insertSpaceAfterKeywordsInControlFlowStatements?: boolean; 6812 readonly insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean; 6813 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean; 6814 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean; 6815 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; 6816 readonly insertSpaceAfterOpeningAndBeforeClosingEmptyBraces?: boolean; 6817 readonly insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean; 6818 readonly insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; 6819 readonly insertSpaceAfterTypeAssertion?: boolean; 6820 readonly insertSpaceBeforeFunctionParenthesis?: boolean; 6821 readonly placeOpenBraceOnNewLineForFunctions?: boolean; 6822 readonly placeOpenBraceOnNewLineForControlBlocks?: boolean; 6823 readonly insertSpaceBeforeTypeAnnotation?: boolean; 6824 readonly indentMultiLineObjectLiteralBeginningOnBlankLine?: boolean; 6825 readonly semicolons?: SemicolonPreference; 6826 } 6827 function getDefaultFormatCodeSettings(newLineCharacter?: string): FormatCodeSettings; 6828 interface DefinitionInfo extends DocumentSpan { 6829 kind: ScriptElementKind; 6830 name: string; 6831 containerKind: ScriptElementKind; 6832 containerName: string; 6833 unverified?: boolean; 6834 } 6835 interface DefinitionInfoAndBoundSpan { 6836 definitions?: readonly DefinitionInfo[]; 6837 textSpan: TextSpan; 6838 } 6839 interface ReferencedSymbolDefinitionInfo extends DefinitionInfo { 6840 displayParts: SymbolDisplayPart[]; 6841 } 6842 interface ReferencedSymbol { 6843 definition: ReferencedSymbolDefinitionInfo; 6844 references: ReferencedSymbolEntry[]; 6845 } 6846 interface ReferencedSymbolEntry extends ReferenceEntry { 6847 isDefinition?: boolean; 6848 } 6849 enum SymbolDisplayPartKind { 6850 aliasName = 0, 6851 className = 1, 6852 enumName = 2, 6853 fieldName = 3, 6854 interfaceName = 4, 6855 keyword = 5, 6856 lineBreak = 6, 6857 numericLiteral = 7, 6858 stringLiteral = 8, 6859 localName = 9, 6860 methodName = 10, 6861 moduleName = 11, 6862 operator = 12, 6863 parameterName = 13, 6864 propertyName = 14, 6865 punctuation = 15, 6866 space = 16, 6867 text = 17, 6868 typeParameterName = 18, 6869 enumMemberName = 19, 6870 functionName = 20, 6871 regularExpressionLiteral = 21, 6872 link = 22, 6873 linkName = 23, 6874 linkText = 24 6875 } 6876 interface SymbolDisplayPart { 6877 text: string; 6878 kind: string; 6879 } 6880 interface JSDocLinkDisplayPart extends SymbolDisplayPart { 6881 target: DocumentSpan; 6882 } 6883 interface JSDocTagInfo { 6884 name: string; 6885 text?: SymbolDisplayPart[] | string; 6886 index?: number; 6887 } 6888 interface QuickInfo { 6889 kind: ScriptElementKind; 6890 kindModifiers: string; 6891 textSpan: TextSpan; 6892 displayParts?: SymbolDisplayPart[]; 6893 documentation?: SymbolDisplayPart[]; 6894 tags?: JSDocTagInfo[]; 6895 } 6896 type RenameInfo = RenameInfoSuccess | RenameInfoFailure; 6897 interface RenameInfoSuccess { 6898 canRename: true; 6899 /** 6900 * File or directory to rename. 6901 * If set, `getEditsForFileRename` should be called instead of `findRenameLocations`. 6902 */ 6903 fileToRename?: string; 6904 displayName: string; 6905 fullDisplayName: string; 6906 kind: ScriptElementKind; 6907 kindModifiers: string; 6908 triggerSpan: TextSpan; 6909 } 6910 interface RenameInfoFailure { 6911 canRename: false; 6912 localizedErrorMessage: string; 6913 } 6914 /** 6915 * @deprecated Use `UserPreferences` instead. 6916 */ 6917 interface RenameInfoOptions { 6918 readonly allowRenameOfImportPath?: boolean; 6919 } 6920 interface DocCommentTemplateOptions { 6921 readonly generateReturnInDocTemplate?: boolean; 6922 } 6923 interface SignatureHelpParameter { 6924 name: string; 6925 documentation: SymbolDisplayPart[]; 6926 displayParts: SymbolDisplayPart[]; 6927 isOptional: boolean; 6928 isRest?: boolean; 6929 } 6930 interface SelectionRange { 6931 textSpan: TextSpan; 6932 parent?: SelectionRange; 6933 } 6934 /** 6935 * Represents a single signature to show in signature help. 6936 * The id is used for subsequent calls into the language service to ask questions about the 6937 * signature help item in the context of any documents that have been updated. i.e. after 6938 * an edit has happened, while signature help is still active, the host can ask important 6939 * questions like 'what parameter is the user currently contained within?'. 6940 */ 6941 interface SignatureHelpItem { 6942 isVariadic: boolean; 6943 prefixDisplayParts: SymbolDisplayPart[]; 6944 suffixDisplayParts: SymbolDisplayPart[]; 6945 separatorDisplayParts: SymbolDisplayPart[]; 6946 parameters: SignatureHelpParameter[]; 6947 documentation: SymbolDisplayPart[]; 6948 tags: JSDocTagInfo[]; 6949 } 6950 /** 6951 * Represents a set of signature help items, and the preferred item that should be selected. 6952 */ 6953 interface SignatureHelpItems { 6954 items: SignatureHelpItem[]; 6955 applicableSpan: TextSpan; 6956 selectedItemIndex: number; 6957 argumentIndex: number; 6958 argumentCount: number; 6959 } 6960 enum CompletionInfoFlags { 6961 None = 0, 6962 MayIncludeAutoImports = 1, 6963 IsImportStatementCompletion = 2, 6964 IsContinuation = 4, 6965 ResolvedModuleSpecifiers = 8, 6966 ResolvedModuleSpecifiersBeyondLimit = 16, 6967 MayIncludeMethodSnippets = 32 6968 } 6969 interface CompletionInfo { 6970 /** For performance telemetry. */ 6971 flags?: CompletionInfoFlags; 6972 /** Not true for all global completions. This will be true if the enclosing scope matches a few syntax kinds. See `isSnippetScope`. */ 6973 isGlobalCompletion: boolean; 6974 isMemberCompletion: boolean; 6975 /** 6976 * In the absence of `CompletionEntry["replacementSpan"]`, the editor may choose whether to use 6977 * this span or its default one. If `CompletionEntry["replacementSpan"]` is defined, that span 6978 * must be used to commit that completion entry. 6979 */ 6980 optionalReplacementSpan?: TextSpan; 6981 /** 6982 * true when the current location also allows for a new identifier 6983 */ 6984 isNewIdentifierLocation: boolean; 6985 /** 6986 * Indicates to client to continue requesting completions on subsequent keystrokes. 6987 */ 6988 isIncomplete?: true; 6989 entries: CompletionEntry[]; 6990 } 6991 interface CompletionEntryDataAutoImport { 6992 /** 6993 * The name of the property or export in the module's symbol table. Differs from the completion name 6994 * in the case of InternalSymbolName.ExportEquals and InternalSymbolName.Default. 6995 */ 6996 exportName: string; 6997 moduleSpecifier?: string; 6998 /** The file name declaring the export's module symbol, if it was an external module */ 6999 fileName?: string; 7000 /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */ 7001 ambientModuleName?: string; 7002 /** True if the export was found in the package.json AutoImportProvider */ 7003 isPackageJsonImport?: true; 7004 } 7005 interface CompletionEntryDataUnresolved extends CompletionEntryDataAutoImport { 7006 /** The key in the `ExportMapCache` where the completion entry's `SymbolExportInfo[]` is found */ 7007 exportMapKey: string; 7008 } 7009 interface CompletionEntryDataResolved extends CompletionEntryDataAutoImport { 7010 moduleSpecifier: string; 7011 } 7012 type CompletionEntryData = CompletionEntryDataUnresolved | CompletionEntryDataResolved; 7013 interface CompletionEntry { 7014 name: string; 7015 kind: ScriptElementKind; 7016 kindModifiers?: string; 7017 sortText: string; 7018 insertText?: string; 7019 isSnippet?: true; 7020 /** 7021 * An optional span that indicates the text to be replaced by this completion item. 7022 * If present, this span should be used instead of the default one. 7023 * It will be set if the required span differs from the one generated by the default replacement behavior. 7024 */ 7025 replacementSpan?: TextSpan; 7026 hasAction?: true; 7027 source?: string; 7028 sourceDisplay?: SymbolDisplayPart[]; 7029 labelDetails?: CompletionEntryLabelDetails; 7030 isRecommended?: true; 7031 isFromUncheckedFile?: true; 7032 isPackageJsonImport?: true; 7033 isImportStatementCompletion?: true; 7034 /** 7035 * A property to be sent back to TS Server in the CompletionDetailsRequest, along with `name`, 7036 * that allows TS Server to look up the symbol represented by the completion item, disambiguating 7037 * items with the same name. Currently only defined for auto-import completions, but the type is 7038 * `unknown` in the protocol, so it can be changed as needed to support other kinds of completions. 7039 * The presence of this property should generally not be used to assume that this completion entry 7040 * is an auto-import. 7041 */ 7042 data?: CompletionEntryData; 7043 jsDoc?: JSDocTagInfo[]; 7044 displayParts?: SymbolDisplayPart[]; 7045 } 7046 interface CompletionEntryLabelDetails { 7047 detail?: string; 7048 description?: string; 7049 } 7050 interface CompletionEntryDetails { 7051 name: string; 7052 kind: ScriptElementKind; 7053 kindModifiers: string; 7054 displayParts: SymbolDisplayPart[]; 7055 documentation?: SymbolDisplayPart[]; 7056 tags?: JSDocTagInfo[]; 7057 codeActions?: CodeAction[]; 7058 /** @deprecated Use `sourceDisplay` instead. */ 7059 source?: SymbolDisplayPart[]; 7060 sourceDisplay?: SymbolDisplayPart[]; 7061 } 7062 interface OutliningSpan { 7063 /** The span of the document to actually collapse. */ 7064 textSpan: TextSpan; 7065 /** The span of the document to display when the user hovers over the collapsed span. */ 7066 hintSpan: TextSpan; 7067 /** The text to display in the editor for the collapsed region. */ 7068 bannerText: string; 7069 /** 7070 * Whether or not this region should be automatically collapsed when 7071 * the 'Collapse to Definitions' command is invoked. 7072 */ 7073 autoCollapse: boolean; 7074 /** 7075 * Classification of the contents of the span 7076 */ 7077 kind: OutliningSpanKind; 7078 } 7079 enum OutliningSpanKind { 7080 /** Single or multi-line comments */ 7081 Comment = "comment", 7082 /** Sections marked by '// #region' and '// #endregion' comments */ 7083 Region = "region", 7084 /** Declarations and expressions */ 7085 Code = "code", 7086 /** Contiguous blocks of import declarations */ 7087 Imports = "imports" 7088 } 7089 enum OutputFileType { 7090 JavaScript = 0, 7091 SourceMap = 1, 7092 Declaration = 2 7093 } 7094 enum EndOfLineState { 7095 None = 0, 7096 InMultiLineCommentTrivia = 1, 7097 InSingleQuoteStringLiteral = 2, 7098 InDoubleQuoteStringLiteral = 3, 7099 InTemplateHeadOrNoSubstitutionTemplate = 4, 7100 InTemplateMiddleOrTail = 5, 7101 InTemplateSubstitutionPosition = 6 7102 } 7103 enum TokenClass { 7104 Punctuation = 0, 7105 Keyword = 1, 7106 Operator = 2, 7107 Comment = 3, 7108 Whitespace = 4, 7109 Identifier = 5, 7110 NumberLiteral = 6, 7111 BigIntLiteral = 7, 7112 StringLiteral = 8, 7113 RegExpLiteral = 9 7114 } 7115 interface ClassificationResult { 7116 finalLexState: EndOfLineState; 7117 entries: ClassificationInfo[]; 7118 } 7119 interface ClassificationInfo { 7120 length: number; 7121 classification: TokenClass; 7122 } 7123 interface Classifier { 7124 /** 7125 * Gives lexical classifications of tokens on a line without any syntactic context. 7126 * For instance, a token consisting of the text 'string' can be either an identifier 7127 * named 'string' or the keyword 'string', however, because this classifier is not aware, 7128 * it relies on certain heuristics to give acceptable results. For classifications where 7129 * speed trumps accuracy, this function is preferable; however, for true accuracy, the 7130 * syntactic classifier is ideal. In fact, in certain editing scenarios, combining the 7131 * lexical, syntactic, and semantic classifiers may issue the best user experience. 7132 * 7133 * @param text The text of a line to classify. 7134 * @param lexState The state of the lexical classifier at the end of the previous line. 7135 * @param syntacticClassifierAbsent Whether the client is *not* using a syntactic classifier. 7136 * If there is no syntactic classifier (syntacticClassifierAbsent=true), 7137 * certain heuristics may be used in its place; however, if there is a 7138 * syntactic classifier (syntacticClassifierAbsent=false), certain 7139 * classifications which may be incorrectly categorized will be given 7140 * back as Identifiers in order to allow the syntactic classifier to 7141 * subsume the classification. 7142 * @deprecated Use getLexicalClassifications instead. 7143 */ 7144 getClassificationsForLine(text: string, lexState: EndOfLineState, syntacticClassifierAbsent: boolean): ClassificationResult; 7145 getEncodedLexicalClassifications(text: string, endOfLineState: EndOfLineState, syntacticClassifierAbsent: boolean): Classifications; 7146 } 7147 enum ScriptElementKind { 7148 unknown = "", 7149 warning = "warning", 7150 /** predefined type (void) or keyword (class) */ 7151 keyword = "keyword", 7152 /** top level script node */ 7153 scriptElement = "script", 7154 /** module foo {} */ 7155 moduleElement = "module", 7156 /** class X {} */ 7157 classElement = "class", 7158 /** var x = class X {} */ 7159 localClassElement = "local class", 7160 /** struct X {} */ 7161 structElement = "struct", 7162 /** interface Y {} */ 7163 interfaceElement = "interface", 7164 /** type T = ... */ 7165 typeElement = "type", 7166 /** enum E */ 7167 enumElement = "enum", 7168 enumMemberElement = "enum member", 7169 /** 7170 * Inside module and script only 7171 * const v = .. 7172 */ 7173 variableElement = "var", 7174 /** Inside function */ 7175 localVariableElement = "local var", 7176 /** 7177 * Inside module and script only 7178 * function f() { } 7179 */ 7180 functionElement = "function", 7181 /** Inside function */ 7182 localFunctionElement = "local function", 7183 /** class X { [public|private]* foo() {} } */ 7184 memberFunctionElement = "method", 7185 /** class X { [public|private]* [get|set] foo:number; } */ 7186 memberGetAccessorElement = "getter", 7187 memberSetAccessorElement = "setter", 7188 /** 7189 * class X { [public|private]* foo:number; } 7190 * interface Y { foo:number; } 7191 */ 7192 memberVariableElement = "property", 7193 /** class X { [public|private]* accessor foo: number; } */ 7194 memberAccessorVariableElement = "accessor", 7195 /** 7196 * class X { constructor() { } } 7197 * class X { static { } } 7198 */ 7199 constructorImplementationElement = "constructor", 7200 /** interface Y { ():number; } */ 7201 callSignatureElement = "call", 7202 /** interface Y { []:number; } */ 7203 indexSignatureElement = "index", 7204 /** interface Y { new():Y; } */ 7205 constructSignatureElement = "construct", 7206 /** function foo(*Y*: string) */ 7207 parameterElement = "parameter", 7208 typeParameterElement = "type parameter", 7209 primitiveType = "primitive type", 7210 label = "label", 7211 alias = "alias", 7212 constElement = "const", 7213 letElement = "let", 7214 directory = "directory", 7215 externalModuleName = "external module name", 7216 /** 7217 * <JsxTagName attribute1 attribute2={0} /> 7218 * @deprecated 7219 */ 7220 jsxAttribute = "JSX attribute", 7221 /** String literal */ 7222 string = "string", 7223 /** Jsdoc @link: in `{@link C link text}`, the before and after text "{@link " and "}" */ 7224 link = "link", 7225 /** Jsdoc @link: in `{@link C link text}`, the entity name "C" */ 7226 linkName = "link name", 7227 /** Jsdoc @link: in `{@link C link text}`, the link text "link text" */ 7228 linkText = "link text" 7229 } 7230 enum ScriptElementKindModifier { 7231 none = "", 7232 publicMemberModifier = "public", 7233 privateMemberModifier = "private", 7234 protectedMemberModifier = "protected", 7235 exportedModifier = "export", 7236 ambientModifier = "declare", 7237 staticModifier = "static", 7238 abstractModifier = "abstract", 7239 optionalModifier = "optional", 7240 deprecatedModifier = "deprecated", 7241 dtsModifier = ".d.ts", 7242 tsModifier = ".ts", 7243 tsxModifier = ".tsx", 7244 jsModifier = ".js", 7245 jsxModifier = ".jsx", 7246 jsonModifier = ".json", 7247 dmtsModifier = ".d.mts", 7248 mtsModifier = ".mts", 7249 mjsModifier = ".mjs", 7250 dctsModifier = ".d.cts", 7251 ctsModifier = ".cts", 7252 cjsModifier = ".cjs", 7253 etsModifier = ".ets", 7254 detsModifier = ".d.ets" 7255 } 7256 enum ClassificationTypeNames { 7257 comment = "comment", 7258 identifier = "identifier", 7259 keyword = "keyword", 7260 numericLiteral = "number", 7261 bigintLiteral = "bigint", 7262 operator = "operator", 7263 stringLiteral = "string", 7264 whiteSpace = "whitespace", 7265 text = "text", 7266 punctuation = "punctuation", 7267 className = "class name", 7268 enumName = "enum name", 7269 interfaceName = "interface name", 7270 moduleName = "module name", 7271 typeParameterName = "type parameter name", 7272 typeAliasName = "type alias name", 7273 parameterName = "parameter name", 7274 docCommentTagName = "doc comment tag name", 7275 jsxOpenTagName = "jsx open tag name", 7276 jsxCloseTagName = "jsx close tag name", 7277 jsxSelfClosingTagName = "jsx self closing tag name", 7278 jsxAttribute = "jsx attribute", 7279 jsxText = "jsx text", 7280 jsxAttributeStringLiteralValue = "jsx attribute string literal value" 7281 } 7282 enum ClassificationType { 7283 comment = 1, 7284 identifier = 2, 7285 keyword = 3, 7286 numericLiteral = 4, 7287 operator = 5, 7288 stringLiteral = 6, 7289 regularExpressionLiteral = 7, 7290 whiteSpace = 8, 7291 text = 9, 7292 punctuation = 10, 7293 className = 11, 7294 enumName = 12, 7295 interfaceName = 13, 7296 moduleName = 14, 7297 typeParameterName = 15, 7298 typeAliasName = 16, 7299 parameterName = 17, 7300 docCommentTagName = 18, 7301 jsxOpenTagName = 19, 7302 jsxCloseTagName = 20, 7303 jsxSelfClosingTagName = 21, 7304 jsxAttribute = 22, 7305 jsxText = 23, 7306 jsxAttributeStringLiteralValue = 24, 7307 bigintLiteral = 25 7308 } 7309 interface InlayHintsContext { 7310 file: SourceFile; 7311 program: Program; 7312 cancellationToken: CancellationToken; 7313 host: LanguageServiceHost; 7314 span: TextSpan; 7315 preferences: UserPreferences; 7316 } 7317} 7318declare namespace ts { 7319 /** The classifier is used for syntactic highlighting in editors via the TSServer */ 7320 function createClassifier(): Classifier; 7321} 7322declare namespace ts { 7323 interface DocumentHighlights { 7324 fileName: string; 7325 highlightSpans: HighlightSpan[]; 7326 } 7327} 7328declare namespace ts { 7329 /** 7330 * The document registry represents a store of SourceFile objects that can be shared between 7331 * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) 7332 * of files in the context. 7333 * SourceFile objects account for most of the memory usage by the language service. Sharing 7334 * the same DocumentRegistry instance between different instances of LanguageService allow 7335 * for more efficient memory utilization since all projects will share at least the library 7336 * file (lib.d.ts). 7337 * 7338 * A more advanced use of the document registry is to serialize sourceFile objects to disk 7339 * and re-hydrate them when needed. 7340 * 7341 * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it 7342 * to all subsequent createLanguageService calls. 7343 */ 7344 interface DocumentRegistry { 7345 /** 7346 * Request a stored SourceFile with a given fileName and compilationSettings. 7347 * The first call to acquire will call createLanguageServiceSourceFile to generate 7348 * the SourceFile if was not found in the registry. 7349 * 7350 * @param fileName The name of the file requested 7351 * @param compilationSettingsOrHost Some compilation settings like target affects the 7352 * shape of a the resulting SourceFile. This allows the DocumentRegistry to store 7353 * multiple copies of the same file for different compilation settings. A minimal 7354 * resolution cache is needed to fully define a source file's shape when 7355 * the compilation settings include `module: node16`+, so providing a cache host 7356 * object should be preferred. A common host is a language service `ConfiguredProject`. 7357 * @param scriptSnapshot Text of the file. Only used if the file was not found 7358 * in the registry and a new one was created. 7359 * @param version Current version of the file. Only used if the file was not found 7360 * in the registry and a new one was created. 7361 */ 7362 acquireDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7363 acquireDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7364 /** 7365 * Request an updated version of an already existing SourceFile with a given fileName 7366 * and compilationSettings. The update will in-turn call updateLanguageServiceSourceFile 7367 * to get an updated SourceFile. 7368 * 7369 * @param fileName The name of the file requested 7370 * @param compilationSettingsOrHost Some compilation settings like target affects the 7371 * shape of a the resulting SourceFile. This allows the DocumentRegistry to store 7372 * multiple copies of the same file for different compilation settings. A minimal 7373 * resolution cache is needed to fully define a source file's shape when 7374 * the compilation settings include `module: node16`+, so providing a cache host 7375 * object should be preferred. A common host is a language service `ConfiguredProject`. 7376 * @param scriptSnapshot Text of the file. 7377 * @param version Current version of the file. 7378 */ 7379 updateDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7380 updateDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7381 getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey; 7382 /** 7383 * Informs the DocumentRegistry that a file is not needed any longer. 7384 * 7385 * Note: It is not allowed to call release on a SourceFile that was not acquired from 7386 * this registry originally. 7387 * 7388 * @param fileName The name of the file to be released 7389 * @param compilationSettings The compilation settings used to acquire the file 7390 * @param scriptKind The script kind of the file to be released 7391 */ 7392 /**@deprecated pass scriptKind and impliedNodeFormat for correctness */ 7393 releaseDocument(fileName: string, compilationSettings: CompilerOptions, scriptKind?: ScriptKind): void; 7394 /** 7395 * Informs the DocumentRegistry that a file is not needed any longer. 7396 * 7397 * Note: It is not allowed to call release on a SourceFile that was not acquired from 7398 * this registry originally. 7399 * 7400 * @param fileName The name of the file to be released 7401 * @param compilationSettings The compilation settings used to acquire the file 7402 * @param scriptKind The script kind of the file to be released 7403 * @param impliedNodeFormat The implied source file format of the file to be released 7404 */ 7405 releaseDocument(fileName: string, compilationSettings: CompilerOptions, scriptKind: ScriptKind, impliedNodeFormat: SourceFile["impliedNodeFormat"]): void; 7406 /** 7407 * @deprecated pass scriptKind for and impliedNodeFormat correctness */ 7408 releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey, scriptKind?: ScriptKind): void; 7409 releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey, scriptKind: ScriptKind, impliedNodeFormat: SourceFile["impliedNodeFormat"]): void; 7410 reportStats(): string; 7411 } 7412 type DocumentRegistryBucketKey = string & { 7413 __bucketKey: any; 7414 }; 7415 function createDocumentRegistry(useCaseSensitiveFileNames?: boolean, currentDirectory?: string): DocumentRegistry; 7416} 7417declare namespace ts { 7418 function preProcessFile(sourceText: string, readImportFiles?: boolean, detectJavaScriptImports?: boolean): PreProcessedFileInfo; 7419} 7420declare namespace ts { 7421 interface TranspileOptions { 7422 compilerOptions?: CompilerOptions; 7423 fileName?: string; 7424 reportDiagnostics?: boolean; 7425 moduleName?: string; 7426 renamedDependencies?: MapLike<string>; 7427 transformers?: CustomTransformers; 7428 } 7429 interface TranspileOutput { 7430 outputText: string; 7431 diagnostics?: Diagnostic[]; 7432 sourceMapText?: string; 7433 } 7434 function transpileModule(input: string, transpileOptions: TranspileOptions): TranspileOutput; 7435 function transpile(input: string, compilerOptions?: CompilerOptions, fileName?: string, diagnostics?: Diagnostic[], moduleName?: string): string; 7436} 7437declare namespace ts { 7438 /** The version of the language service API */ 7439 const servicesVersion = "0.8"; 7440 function toEditorSettings(options: EditorOptions | EditorSettings): EditorSettings; 7441 function displayPartsToString(displayParts: SymbolDisplayPart[] | undefined): string; 7442 function getDefaultCompilerOptions(): CompilerOptions; 7443 function getSupportedCodeFixes(): string[]; 7444 function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTargetOrOptions: ScriptTarget | CreateSourceFileOptions, version: string, setNodeParents: boolean, scriptKind?: ScriptKind, option?: CompilerOptions): SourceFile; 7445 function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange | undefined, aggressiveChecks?: boolean, option?: CompilerOptions): SourceFile; 7446 function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry, syntaxOnlyOrLanguageServiceMode?: boolean | LanguageServiceMode): LanguageService; 7447 /** 7448 * Get the path of the default library files (lib.d.ts) as distributed with the typescript 7449 * node package. 7450 * The functionality is not supported if the ts module is consumed outside of a node module. 7451 */ 7452 function getDefaultLibFilePath(options: CompilerOptions): string; 7453} 7454declare namespace ts { 7455 /** 7456 * Transform one or more nodes using the supplied transformers. 7457 * @param source A single `Node` or an array of `Node` objects. 7458 * @param transformers An array of `TransformerFactory` callbacks used to process the transformation. 7459 * @param compilerOptions Optional compiler options. 7460 */ 7461 function transform<T extends Node>(source: T | T[], transformers: TransformerFactory<T>[], compilerOptions?: CompilerOptions): TransformationResult<T>; 7462} 7463declare namespace ts.server { 7464 interface CompressedData { 7465 length: number; 7466 compressionKind: string; 7467 data: any; 7468 } 7469 type ModuleImportResult = { 7470 module: {}; 7471 error: undefined; 7472 } | { 7473 module: undefined; 7474 error: { 7475 stack?: string; 7476 message?: string; 7477 }; 7478 }; 7479 /** @deprecated Use {@link ModuleImportResult} instead. */ 7480 type RequireResult = ModuleImportResult; 7481 interface ServerHost extends System { 7482 watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher; 7483 watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher; 7484 setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; 7485 clearTimeout(timeoutId: any): void; 7486 setImmediate(callback: (...args: any[]) => void, ...args: any[]): any; 7487 clearImmediate(timeoutId: any): void; 7488 gc?(): void; 7489 trace?(s: string): void; 7490 require?(initialPath: string, moduleName: string): ModuleImportResult; 7491 getJsDocNodeCheckedConfig?(fileCheckedInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 7492 getJsDocNodeConditionCheckedResult?(fileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 7493 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 7494 } 7495} 7496declare namespace ts.server { 7497 enum LogLevel { 7498 terse = 0, 7499 normal = 1, 7500 requestTime = 2, 7501 verbose = 3 7502 } 7503 const emptyArray: SortedReadonlyArray<never>; 7504 interface Logger { 7505 close(): void; 7506 hasLevel(level: LogLevel): boolean; 7507 loggingEnabled(): boolean; 7508 perftrc(s: string): void; 7509 info(s: string): void; 7510 startGroup(): void; 7511 endGroup(): void; 7512 msg(s: string, type?: Msg): void; 7513 getLogFileName(): string | undefined; 7514 } 7515 enum Msg { 7516 Err = "Err", 7517 Info = "Info", 7518 Perf = "Perf" 7519 } 7520 namespace Msg { 7521 /** @deprecated Only here for backwards-compatibility. Prefer just `Msg`. */ 7522 type Types = Msg; 7523 } 7524 function createInstallTypingsRequest(project: Project, typeAcquisition: TypeAcquisition, unresolvedImports: SortedReadonlyArray<string>, cachePath?: string): DiscoverTypings; 7525 namespace Errors { 7526 function ThrowNoProject(): never; 7527 function ThrowProjectLanguageServiceDisabled(): never; 7528 function ThrowProjectDoesNotContainDocument(fileName: string, project: Project): never; 7529 } 7530 type NormalizedPath = string & { 7531 __normalizedPathTag: any; 7532 }; 7533 function toNormalizedPath(fileName: string): NormalizedPath; 7534 function normalizedPathToPath(normalizedPath: NormalizedPath, currentDirectory: string, getCanonicalFileName: (f: string) => string): Path; 7535 function asNormalizedPath(fileName: string): NormalizedPath; 7536 interface NormalizedPathMap<T> { 7537 get(path: NormalizedPath): T | undefined; 7538 set(path: NormalizedPath, value: T): void; 7539 contains(path: NormalizedPath): boolean; 7540 remove(path: NormalizedPath): void; 7541 } 7542 function createNormalizedPathMap<T>(): NormalizedPathMap<T>; 7543 function isInferredProjectName(name: string): boolean; 7544 function makeInferredProjectName(counter: number): string; 7545 function createSortedArray<T>(): SortedArray<T>; 7546} 7547/** 7548 * Declaration module describing the TypeScript Server protocol 7549 */ 7550declare namespace ts.server.protocol { 7551 enum CommandTypes { 7552 JsxClosingTag = "jsxClosingTag", 7553 Brace = "brace", 7554 BraceCompletion = "braceCompletion", 7555 GetSpanOfEnclosingComment = "getSpanOfEnclosingComment", 7556 Change = "change", 7557 Close = "close", 7558 /** @deprecated Prefer CompletionInfo -- see comment on CompletionsResponse */ 7559 Completions = "completions", 7560 CompletionInfo = "completionInfo", 7561 CompletionDetails = "completionEntryDetails", 7562 CompileOnSaveAffectedFileList = "compileOnSaveAffectedFileList", 7563 CompileOnSaveEmitFile = "compileOnSaveEmitFile", 7564 Configure = "configure", 7565 Definition = "definition", 7566 DefinitionAndBoundSpan = "definitionAndBoundSpan", 7567 Implementation = "implementation", 7568 Exit = "exit", 7569 FileReferences = "fileReferences", 7570 Format = "format", 7571 Formatonkey = "formatonkey", 7572 Geterr = "geterr", 7573 GeterrForProject = "geterrForProject", 7574 SemanticDiagnosticsSync = "semanticDiagnosticsSync", 7575 SyntacticDiagnosticsSync = "syntacticDiagnosticsSync", 7576 SuggestionDiagnosticsSync = "suggestionDiagnosticsSync", 7577 NavBar = "navbar", 7578 Navto = "navto", 7579 NavTree = "navtree", 7580 NavTreeFull = "navtree-full", 7581 /** @deprecated */ 7582 Occurrences = "occurrences", 7583 DocumentHighlights = "documentHighlights", 7584 Open = "open", 7585 Quickinfo = "quickinfo", 7586 References = "references", 7587 Reload = "reload", 7588 Rename = "rename", 7589 Saveto = "saveto", 7590 SignatureHelp = "signatureHelp", 7591 FindSourceDefinition = "findSourceDefinition", 7592 Status = "status", 7593 TypeDefinition = "typeDefinition", 7594 ProjectInfo = "projectInfo", 7595 ReloadProjects = "reloadProjects", 7596 Unknown = "unknown", 7597 OpenExternalProject = "openExternalProject", 7598 OpenExternalProjects = "openExternalProjects", 7599 CloseExternalProject = "closeExternalProject", 7600 UpdateOpen = "updateOpen", 7601 GetOutliningSpans = "getOutliningSpans", 7602 TodoComments = "todoComments", 7603 Indentation = "indentation", 7604 DocCommentTemplate = "docCommentTemplate", 7605 CompilerOptionsForInferredProjects = "compilerOptionsForInferredProjects", 7606 GetCodeFixes = "getCodeFixes", 7607 GetCombinedCodeFix = "getCombinedCodeFix", 7608 ApplyCodeActionCommand = "applyCodeActionCommand", 7609 GetSupportedCodeFixes = "getSupportedCodeFixes", 7610 GetApplicableRefactors = "getApplicableRefactors", 7611 GetEditsForRefactor = "getEditsForRefactor", 7612 OrganizeImports = "organizeImports", 7613 GetEditsForFileRename = "getEditsForFileRename", 7614 ConfigurePlugin = "configurePlugin", 7615 SelectionRange = "selectionRange", 7616 ToggleLineComment = "toggleLineComment", 7617 ToggleMultilineComment = "toggleMultilineComment", 7618 CommentSelection = "commentSelection", 7619 UncommentSelection = "uncommentSelection", 7620 PrepareCallHierarchy = "prepareCallHierarchy", 7621 ProvideCallHierarchyIncomingCalls = "provideCallHierarchyIncomingCalls", 7622 ProvideCallHierarchyOutgoingCalls = "provideCallHierarchyOutgoingCalls", 7623 ProvideInlayHints = "provideInlayHints" 7624 } 7625 /** 7626 * A TypeScript Server message 7627 */ 7628 interface Message { 7629 /** 7630 * Sequence number of the message 7631 */ 7632 seq: number; 7633 /** 7634 * One of "request", "response", or "event" 7635 */ 7636 type: "request" | "response" | "event"; 7637 } 7638 /** 7639 * Client-initiated request message 7640 */ 7641 interface Request extends Message { 7642 type: "request"; 7643 /** 7644 * The command to execute 7645 */ 7646 command: string; 7647 /** 7648 * Object containing arguments for the command 7649 */ 7650 arguments?: any; 7651 } 7652 /** 7653 * Request to reload the project structure for all the opened files 7654 */ 7655 interface ReloadProjectsRequest extends Message { 7656 command: CommandTypes.ReloadProjects; 7657 } 7658 /** 7659 * Server-initiated event message 7660 */ 7661 interface Event extends Message { 7662 type: "event"; 7663 /** 7664 * Name of event 7665 */ 7666 event: string; 7667 /** 7668 * Event-specific information 7669 */ 7670 body?: any; 7671 } 7672 /** 7673 * Response by server to client request message. 7674 */ 7675 interface Response extends Message { 7676 type: "response"; 7677 /** 7678 * Sequence number of the request message. 7679 */ 7680 request_seq: number; 7681 /** 7682 * Outcome of the request. 7683 */ 7684 success: boolean; 7685 /** 7686 * The command requested. 7687 */ 7688 command: string; 7689 /** 7690 * If success === false, this should always be provided. 7691 * Otherwise, may (or may not) contain a success message. 7692 */ 7693 message?: string; 7694 /** 7695 * Contains message body if success === true. 7696 */ 7697 body?: any; 7698 /** 7699 * Contains extra information that plugin can include to be passed on 7700 */ 7701 metadata?: unknown; 7702 /** 7703 * Exposes information about the performance of this request-response pair. 7704 */ 7705 performanceData?: PerformanceData; 7706 } 7707 interface PerformanceData { 7708 /** 7709 * Time spent updating the program graph, in milliseconds. 7710 */ 7711 updateGraphDurationMs?: number; 7712 /** 7713 * The time spent creating or updating the auto-import program, in milliseconds. 7714 */ 7715 createAutoImportProviderProgramDurationMs?: number; 7716 } 7717 /** 7718 * Arguments for FileRequest messages. 7719 */ 7720 interface FileRequestArgs { 7721 /** 7722 * The file for the request (absolute pathname required). 7723 */ 7724 file: string; 7725 projectFileName?: string; 7726 } 7727 interface StatusRequest extends Request { 7728 command: CommandTypes.Status; 7729 } 7730 interface StatusResponseBody { 7731 /** 7732 * The TypeScript version (`ts.version`). 7733 */ 7734 version: string; 7735 } 7736 /** 7737 * Response to StatusRequest 7738 */ 7739 interface StatusResponse extends Response { 7740 body: StatusResponseBody; 7741 } 7742 /** 7743 * Requests a JS Doc comment template for a given position 7744 */ 7745 interface DocCommentTemplateRequest extends FileLocationRequest { 7746 command: CommandTypes.DocCommentTemplate; 7747 } 7748 /** 7749 * Response to DocCommentTemplateRequest 7750 */ 7751 interface DocCommandTemplateResponse extends Response { 7752 body?: TextInsertion; 7753 } 7754 /** 7755 * A request to get TODO comments from the file 7756 */ 7757 interface TodoCommentRequest extends FileRequest { 7758 command: CommandTypes.TodoComments; 7759 arguments: TodoCommentRequestArgs; 7760 } 7761 /** 7762 * Arguments for TodoCommentRequest request. 7763 */ 7764 interface TodoCommentRequestArgs extends FileRequestArgs { 7765 /** 7766 * Array of target TodoCommentDescriptors that describes TODO comments to be found 7767 */ 7768 descriptors: TodoCommentDescriptor[]; 7769 } 7770 /** 7771 * Response for TodoCommentRequest request. 7772 */ 7773 interface TodoCommentsResponse extends Response { 7774 body?: TodoComment[]; 7775 } 7776 /** 7777 * A request to determine if the caret is inside a comment. 7778 */ 7779 interface SpanOfEnclosingCommentRequest extends FileLocationRequest { 7780 command: CommandTypes.GetSpanOfEnclosingComment; 7781 arguments: SpanOfEnclosingCommentRequestArgs; 7782 } 7783 interface SpanOfEnclosingCommentRequestArgs extends FileLocationRequestArgs { 7784 /** 7785 * Requires that the enclosing span be a multi-line comment, or else the request returns undefined. 7786 */ 7787 onlyMultiLine: boolean; 7788 } 7789 /** 7790 * Request to obtain outlining spans in file. 7791 */ 7792 interface OutliningSpansRequest extends FileRequest { 7793 command: CommandTypes.GetOutliningSpans; 7794 } 7795 interface OutliningSpan { 7796 /** The span of the document to actually collapse. */ 7797 textSpan: TextSpan; 7798 /** The span of the document to display when the user hovers over the collapsed span. */ 7799 hintSpan: TextSpan; 7800 /** The text to display in the editor for the collapsed region. */ 7801 bannerText: string; 7802 /** 7803 * Whether or not this region should be automatically collapsed when 7804 * the 'Collapse to Definitions' command is invoked. 7805 */ 7806 autoCollapse: boolean; 7807 /** 7808 * Classification of the contents of the span 7809 */ 7810 kind: OutliningSpanKind; 7811 } 7812 /** 7813 * Response to OutliningSpansRequest request. 7814 */ 7815 interface OutliningSpansResponse extends Response { 7816 body?: OutliningSpan[]; 7817 } 7818 /** 7819 * A request to get indentation for a location in file 7820 */ 7821 interface IndentationRequest extends FileLocationRequest { 7822 command: CommandTypes.Indentation; 7823 arguments: IndentationRequestArgs; 7824 } 7825 /** 7826 * Response for IndentationRequest request. 7827 */ 7828 interface IndentationResponse extends Response { 7829 body?: IndentationResult; 7830 } 7831 /** 7832 * Indentation result representing where indentation should be placed 7833 */ 7834 interface IndentationResult { 7835 /** 7836 * The base position in the document that the indent should be relative to 7837 */ 7838 position: number; 7839 /** 7840 * The number of columns the indent should be at relative to the position's column. 7841 */ 7842 indentation: number; 7843 } 7844 /** 7845 * Arguments for IndentationRequest request. 7846 */ 7847 interface IndentationRequestArgs extends FileLocationRequestArgs { 7848 /** 7849 * An optional set of settings to be used when computing indentation. 7850 * If argument is omitted - then it will use settings for file that were previously set via 'configure' request or global settings. 7851 */ 7852 options?: EditorSettings; 7853 } 7854 /** 7855 * Arguments for ProjectInfoRequest request. 7856 */ 7857 interface ProjectInfoRequestArgs extends FileRequestArgs { 7858 /** 7859 * Indicate if the file name list of the project is needed 7860 */ 7861 needFileNameList: boolean; 7862 } 7863 /** 7864 * A request to get the project information of the current file. 7865 */ 7866 interface ProjectInfoRequest extends Request { 7867 command: CommandTypes.ProjectInfo; 7868 arguments: ProjectInfoRequestArgs; 7869 } 7870 /** 7871 * A request to retrieve compiler options diagnostics for a project 7872 */ 7873 interface CompilerOptionsDiagnosticsRequest extends Request { 7874 arguments: CompilerOptionsDiagnosticsRequestArgs; 7875 } 7876 /** 7877 * Arguments for CompilerOptionsDiagnosticsRequest request. 7878 */ 7879 interface CompilerOptionsDiagnosticsRequestArgs { 7880 /** 7881 * Name of the project to retrieve compiler options diagnostics. 7882 */ 7883 projectFileName: string; 7884 } 7885 /** 7886 * Response message body for "projectInfo" request 7887 */ 7888 interface ProjectInfo { 7889 /** 7890 * For configured project, this is the normalized path of the 'tsconfig.json' file 7891 * For inferred project, this is undefined 7892 */ 7893 configFileName: string; 7894 /** 7895 * The list of normalized file name in the project, including 'lib.d.ts' 7896 */ 7897 fileNames?: string[]; 7898 /** 7899 * Indicates if the project has a active language service instance 7900 */ 7901 languageServiceDisabled?: boolean; 7902 } 7903 /** 7904 * Represents diagnostic info that includes location of diagnostic in two forms 7905 * - start position and length of the error span 7906 * - startLocation and endLocation - a pair of Location objects that store start/end line and offset of the error span. 7907 */ 7908 interface DiagnosticWithLinePosition { 7909 message: string; 7910 start: number; 7911 length: number; 7912 startLocation: Location; 7913 endLocation: Location; 7914 category: string; 7915 code: number; 7916 /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */ 7917 reportsUnnecessary?: {}; 7918 reportsDeprecated?: {}; 7919 relatedInformation?: DiagnosticRelatedInformation[]; 7920 } 7921 /** 7922 * Response message for "projectInfo" request 7923 */ 7924 interface ProjectInfoResponse extends Response { 7925 body?: ProjectInfo; 7926 } 7927 /** 7928 * Request whose sole parameter is a file name. 7929 */ 7930 interface FileRequest extends Request { 7931 arguments: FileRequestArgs; 7932 } 7933 /** 7934 * Instances of this interface specify a location in a source file: 7935 * (file, line, character offset), where line and character offset are 1-based. 7936 */ 7937 interface FileLocationRequestArgs extends FileRequestArgs { 7938 /** 7939 * The line number for the request (1-based). 7940 */ 7941 line: number; 7942 /** 7943 * The character offset (on the line) for the request (1-based). 7944 */ 7945 offset: number; 7946 } 7947 type FileLocationOrRangeRequestArgs = FileLocationRequestArgs | FileRangeRequestArgs; 7948 /** 7949 * Request refactorings at a given position or selection area. 7950 */ 7951 interface GetApplicableRefactorsRequest extends Request { 7952 command: CommandTypes.GetApplicableRefactors; 7953 arguments: GetApplicableRefactorsRequestArgs; 7954 } 7955 type GetApplicableRefactorsRequestArgs = FileLocationOrRangeRequestArgs & { 7956 triggerReason?: RefactorTriggerReason; 7957 kind?: string; 7958 }; 7959 type RefactorTriggerReason = "implicit" | "invoked"; 7960 /** 7961 * Response is a list of available refactorings. 7962 * Each refactoring exposes one or more "Actions"; a user selects one action to invoke a refactoring 7963 */ 7964 interface GetApplicableRefactorsResponse extends Response { 7965 body?: ApplicableRefactorInfo[]; 7966 } 7967 /** 7968 * A set of one or more available refactoring actions, grouped under a parent refactoring. 7969 */ 7970 interface ApplicableRefactorInfo { 7971 /** 7972 * The programmatic name of the refactoring 7973 */ 7974 name: string; 7975 /** 7976 * A description of this refactoring category to show to the user. 7977 * If the refactoring gets inlined (see below), this text will not be visible. 7978 */ 7979 description: string; 7980 /** 7981 * Inlineable refactorings can have their actions hoisted out to the top level 7982 * of a context menu. Non-inlineanable refactorings should always be shown inside 7983 * their parent grouping. 7984 * 7985 * If not specified, this value is assumed to be 'true' 7986 */ 7987 inlineable?: boolean; 7988 actions: RefactorActionInfo[]; 7989 } 7990 /** 7991 * Represents a single refactoring action - for example, the "Extract Method..." refactor might 7992 * offer several actions, each corresponding to a surround class or closure to extract into. 7993 */ 7994 interface RefactorActionInfo { 7995 /** 7996 * The programmatic name of the refactoring action 7997 */ 7998 name: string; 7999 /** 8000 * A description of this refactoring action to show to the user. 8001 * If the parent refactoring is inlined away, this will be the only text shown, 8002 * so this description should make sense by itself if the parent is inlineable=true 8003 */ 8004 description: string; 8005 /** 8006 * A message to show to the user if the refactoring cannot be applied in 8007 * the current context. 8008 */ 8009 notApplicableReason?: string; 8010 /** 8011 * The hierarchical dotted name of the refactor action. 8012 */ 8013 kind?: string; 8014 } 8015 interface GetEditsForRefactorRequest extends Request { 8016 command: CommandTypes.GetEditsForRefactor; 8017 arguments: GetEditsForRefactorRequestArgs; 8018 } 8019 /** 8020 * Request the edits that a particular refactoring action produces. 8021 * Callers must specify the name of the refactor and the name of the action. 8022 */ 8023 type GetEditsForRefactorRequestArgs = FileLocationOrRangeRequestArgs & { 8024 refactor: string; 8025 action: string; 8026 }; 8027 interface GetEditsForRefactorResponse extends Response { 8028 body?: RefactorEditInfo; 8029 } 8030 interface RefactorEditInfo { 8031 edits: FileCodeEdits[]; 8032 /** 8033 * An optional location where the editor should start a rename operation once 8034 * the refactoring edits have been applied 8035 */ 8036 renameLocation?: Location; 8037 renameFilename?: string; 8038 } 8039 /** 8040 * Organize imports by: 8041 * 1) Removing unused imports 8042 * 2) Coalescing imports from the same module 8043 * 3) Sorting imports 8044 */ 8045 interface OrganizeImportsRequest extends Request { 8046 command: CommandTypes.OrganizeImports; 8047 arguments: OrganizeImportsRequestArgs; 8048 } 8049 type OrganizeImportsScope = GetCombinedCodeFixScope; 8050 enum OrganizeImportsMode { 8051 All = "All", 8052 SortAndCombine = "SortAndCombine", 8053 RemoveUnused = "RemoveUnused" 8054 } 8055 interface OrganizeImportsRequestArgs { 8056 scope: OrganizeImportsScope; 8057 /** @deprecated Use `mode` instead */ 8058 skipDestructiveCodeActions?: boolean; 8059 mode?: OrganizeImportsMode; 8060 } 8061 interface OrganizeImportsResponse extends Response { 8062 body: readonly FileCodeEdits[]; 8063 } 8064 interface GetEditsForFileRenameRequest extends Request { 8065 command: CommandTypes.GetEditsForFileRename; 8066 arguments: GetEditsForFileRenameRequestArgs; 8067 } 8068 /** Note: Paths may also be directories. */ 8069 interface GetEditsForFileRenameRequestArgs { 8070 readonly oldFilePath: string; 8071 readonly newFilePath: string; 8072 } 8073 interface GetEditsForFileRenameResponse extends Response { 8074 body: readonly FileCodeEdits[]; 8075 } 8076 /** 8077 * Request for the available codefixes at a specific position. 8078 */ 8079 interface CodeFixRequest extends Request { 8080 command: CommandTypes.GetCodeFixes; 8081 arguments: CodeFixRequestArgs; 8082 } 8083 interface GetCombinedCodeFixRequest extends Request { 8084 command: CommandTypes.GetCombinedCodeFix; 8085 arguments: GetCombinedCodeFixRequestArgs; 8086 } 8087 interface GetCombinedCodeFixResponse extends Response { 8088 body: CombinedCodeActions; 8089 } 8090 interface ApplyCodeActionCommandRequest extends Request { 8091 command: CommandTypes.ApplyCodeActionCommand; 8092 arguments: ApplyCodeActionCommandRequestArgs; 8093 } 8094 interface ApplyCodeActionCommandResponse extends Response { 8095 } 8096 interface FileRangeRequestArgs extends FileRequestArgs { 8097 /** 8098 * The line number for the request (1-based). 8099 */ 8100 startLine: number; 8101 /** 8102 * The character offset (on the line) for the request (1-based). 8103 */ 8104 startOffset: number; 8105 /** 8106 * The line number for the request (1-based). 8107 */ 8108 endLine: number; 8109 /** 8110 * The character offset (on the line) for the request (1-based). 8111 */ 8112 endOffset: number; 8113 } 8114 /** 8115 * Instances of this interface specify errorcodes on a specific location in a sourcefile. 8116 */ 8117 interface CodeFixRequestArgs extends FileRangeRequestArgs { 8118 /** 8119 * Errorcodes we want to get the fixes for. 8120 */ 8121 errorCodes: readonly number[]; 8122 } 8123 interface GetCombinedCodeFixRequestArgs { 8124 scope: GetCombinedCodeFixScope; 8125 fixId: {}; 8126 } 8127 interface GetCombinedCodeFixScope { 8128 type: "file"; 8129 args: FileRequestArgs; 8130 } 8131 interface ApplyCodeActionCommandRequestArgs { 8132 /** May also be an array of commands. */ 8133 command: {}; 8134 } 8135 /** 8136 * Response for GetCodeFixes request. 8137 */ 8138 interface GetCodeFixesResponse extends Response { 8139 body?: CodeAction[]; 8140 } 8141 /** 8142 * A request whose arguments specify a file location (file, line, col). 8143 */ 8144 interface FileLocationRequest extends FileRequest { 8145 arguments: FileLocationRequestArgs; 8146 } 8147 /** 8148 * A request to get codes of supported code fixes. 8149 */ 8150 interface GetSupportedCodeFixesRequest extends Request { 8151 command: CommandTypes.GetSupportedCodeFixes; 8152 } 8153 /** 8154 * A response for GetSupportedCodeFixesRequest request. 8155 */ 8156 interface GetSupportedCodeFixesResponse extends Response { 8157 /** 8158 * List of error codes supported by the server. 8159 */ 8160 body?: string[]; 8161 } 8162 /** 8163 * A request to get encoded semantic classifications for a span in the file 8164 */ 8165 interface EncodedSemanticClassificationsRequest extends FileRequest { 8166 arguments: EncodedSemanticClassificationsRequestArgs; 8167 } 8168 /** 8169 * Arguments for EncodedSemanticClassificationsRequest request. 8170 */ 8171 interface EncodedSemanticClassificationsRequestArgs extends FileRequestArgs { 8172 /** 8173 * Start position of the span. 8174 */ 8175 start: number; 8176 /** 8177 * Length of the span. 8178 */ 8179 length: number; 8180 /** 8181 * Optional parameter for the semantic highlighting response, if absent it 8182 * defaults to "original". 8183 */ 8184 format?: "original" | "2020"; 8185 } 8186 /** The response for a EncodedSemanticClassificationsRequest */ 8187 interface EncodedSemanticClassificationsResponse extends Response { 8188 body?: EncodedSemanticClassificationsResponseBody; 8189 } 8190 /** 8191 * Implementation response message. Gives series of text spans depending on the format ar. 8192 */ 8193 interface EncodedSemanticClassificationsResponseBody { 8194 endOfLineState: EndOfLineState; 8195 spans: number[]; 8196 } 8197 /** 8198 * Arguments in document highlight request; include: filesToSearch, file, 8199 * line, offset. 8200 */ 8201 interface DocumentHighlightsRequestArgs extends FileLocationRequestArgs { 8202 /** 8203 * List of files to search for document highlights. 8204 */ 8205 filesToSearch: string[]; 8206 } 8207 /** 8208 * Go to definition request; value of command field is 8209 * "definition". Return response giving the file locations that 8210 * define the symbol found in file at location line, col. 8211 */ 8212 interface DefinitionRequest extends FileLocationRequest { 8213 command: CommandTypes.Definition; 8214 } 8215 interface DefinitionAndBoundSpanRequest extends FileLocationRequest { 8216 readonly command: CommandTypes.DefinitionAndBoundSpan; 8217 } 8218 interface FindSourceDefinitionRequest extends FileLocationRequest { 8219 readonly command: CommandTypes.FindSourceDefinition; 8220 } 8221 interface DefinitionAndBoundSpanResponse extends Response { 8222 readonly body: DefinitionInfoAndBoundSpan; 8223 } 8224 /** 8225 * Go to type request; value of command field is 8226 * "typeDefinition". Return response giving the file locations that 8227 * define the type for the symbol found in file at location line, col. 8228 */ 8229 interface TypeDefinitionRequest extends FileLocationRequest { 8230 command: CommandTypes.TypeDefinition; 8231 } 8232 /** 8233 * Go to implementation request; value of command field is 8234 * "implementation". Return response giving the file locations that 8235 * implement the symbol found in file at location line, col. 8236 */ 8237 interface ImplementationRequest extends FileLocationRequest { 8238 command: CommandTypes.Implementation; 8239 } 8240 /** 8241 * Location in source code expressed as (one-based) line and (one-based) column offset. 8242 */ 8243 interface Location { 8244 line: number; 8245 offset: number; 8246 } 8247 /** 8248 * Object found in response messages defining a span of text in source code. 8249 */ 8250 interface TextSpan { 8251 /** 8252 * First character of the definition. 8253 */ 8254 start: Location; 8255 /** 8256 * One character past last character of the definition. 8257 */ 8258 end: Location; 8259 } 8260 /** 8261 * Object found in response messages defining a span of text in a specific source file. 8262 */ 8263 interface FileSpan extends TextSpan { 8264 /** 8265 * File containing text span. 8266 */ 8267 file: string; 8268 } 8269 interface JSDocTagInfo { 8270 /** Name of the JSDoc tag */ 8271 name: string; 8272 /** 8273 * Comment text after the JSDoc tag -- the text after the tag name until the next tag or end of comment 8274 * Display parts when UserPreferences.displayPartsForJSDoc is true, flattened to string otherwise. 8275 */ 8276 text?: string | SymbolDisplayPart[]; 8277 } 8278 interface TextSpanWithContext extends TextSpan { 8279 contextStart?: Location; 8280 contextEnd?: Location; 8281 } 8282 interface FileSpanWithContext extends FileSpan, TextSpanWithContext { 8283 } 8284 interface DefinitionInfo extends FileSpanWithContext { 8285 /** 8286 * When true, the file may or may not exist. 8287 */ 8288 unverified?: boolean; 8289 } 8290 interface DefinitionInfoAndBoundSpan { 8291 definitions: readonly DefinitionInfo[]; 8292 textSpan: TextSpan; 8293 } 8294 /** 8295 * Definition response message. Gives text range for definition. 8296 */ 8297 interface DefinitionResponse extends Response { 8298 body?: DefinitionInfo[]; 8299 } 8300 interface DefinitionInfoAndBoundSpanResponse extends Response { 8301 body?: DefinitionInfoAndBoundSpan; 8302 } 8303 /** @deprecated Use `DefinitionInfoAndBoundSpanResponse` instead. */ 8304 type DefinitionInfoAndBoundSpanReponse = DefinitionInfoAndBoundSpanResponse; 8305 /** 8306 * Definition response message. Gives text range for definition. 8307 */ 8308 interface TypeDefinitionResponse extends Response { 8309 body?: FileSpanWithContext[]; 8310 } 8311 /** 8312 * Implementation response message. Gives text range for implementations. 8313 */ 8314 interface ImplementationResponse extends Response { 8315 body?: FileSpanWithContext[]; 8316 } 8317 /** 8318 * Request to get brace completion for a location in the file. 8319 */ 8320 interface BraceCompletionRequest extends FileLocationRequest { 8321 command: CommandTypes.BraceCompletion; 8322 arguments: BraceCompletionRequestArgs; 8323 } 8324 /** 8325 * Argument for BraceCompletionRequest request. 8326 */ 8327 interface BraceCompletionRequestArgs extends FileLocationRequestArgs { 8328 /** 8329 * Kind of opening brace 8330 */ 8331 openingBrace: string; 8332 } 8333 interface JsxClosingTagRequest extends FileLocationRequest { 8334 readonly command: CommandTypes.JsxClosingTag; 8335 readonly arguments: JsxClosingTagRequestArgs; 8336 } 8337 interface JsxClosingTagRequestArgs extends FileLocationRequestArgs { 8338 } 8339 interface JsxClosingTagResponse extends Response { 8340 readonly body: TextInsertion; 8341 } 8342 /** 8343 * @deprecated 8344 * Get occurrences request; value of command field is 8345 * "occurrences". Return response giving spans that are relevant 8346 * in the file at a given line and column. 8347 */ 8348 interface OccurrencesRequest extends FileLocationRequest { 8349 command: CommandTypes.Occurrences; 8350 } 8351 /** @deprecated */ 8352 interface OccurrencesResponseItem extends FileSpanWithContext { 8353 /** 8354 * True if the occurrence is a write location, false otherwise. 8355 */ 8356 isWriteAccess: boolean; 8357 /** 8358 * True if the occurrence is in a string, undefined otherwise; 8359 */ 8360 isInString?: true; 8361 } 8362 /** @deprecated */ 8363 interface OccurrencesResponse extends Response { 8364 body?: OccurrencesResponseItem[]; 8365 } 8366 /** 8367 * Get document highlights request; value of command field is 8368 * "documentHighlights". Return response giving spans that are relevant 8369 * in the file at a given line and column. 8370 */ 8371 interface DocumentHighlightsRequest extends FileLocationRequest { 8372 command: CommandTypes.DocumentHighlights; 8373 arguments: DocumentHighlightsRequestArgs; 8374 } 8375 /** 8376 * Span augmented with extra information that denotes the kind of the highlighting to be used for span. 8377 */ 8378 interface HighlightSpan extends TextSpanWithContext { 8379 kind: HighlightSpanKind; 8380 } 8381 /** 8382 * Represents a set of highligh spans for a give name 8383 */ 8384 interface DocumentHighlightsItem { 8385 /** 8386 * File containing highlight spans. 8387 */ 8388 file: string; 8389 /** 8390 * Spans to highlight in file. 8391 */ 8392 highlightSpans: HighlightSpan[]; 8393 } 8394 /** 8395 * Response for a DocumentHighlightsRequest request. 8396 */ 8397 interface DocumentHighlightsResponse extends Response { 8398 body?: DocumentHighlightsItem[]; 8399 } 8400 /** 8401 * Find references request; value of command field is 8402 * "references". Return response giving the file locations that 8403 * reference the symbol found in file at location line, col. 8404 */ 8405 interface ReferencesRequest extends FileLocationRequest { 8406 command: CommandTypes.References; 8407 } 8408 interface ReferencesResponseItem extends FileSpanWithContext { 8409 /** 8410 * Text of line containing the reference. Including this 8411 * with the response avoids latency of editor loading files 8412 * to show text of reference line (the server already has loaded the referencing files). 8413 * 8414 * If {@link UserPreferences.disableLineTextInReferences} is enabled, the property won't be filled 8415 */ 8416 lineText?: string; 8417 /** 8418 * True if reference is a write location, false otherwise. 8419 */ 8420 isWriteAccess: boolean; 8421 /** 8422 * Present only if the search was triggered from a declaration. 8423 * True indicates that the references refers to the same symbol 8424 * (i.e. has the same meaning) as the declaration that began the 8425 * search. 8426 */ 8427 isDefinition?: boolean; 8428 } 8429 /** 8430 * The body of a "references" response message. 8431 */ 8432 interface ReferencesResponseBody { 8433 /** 8434 * The file locations referencing the symbol. 8435 */ 8436 refs: readonly ReferencesResponseItem[]; 8437 /** 8438 * The name of the symbol. 8439 */ 8440 symbolName: string; 8441 /** 8442 * The start character offset of the symbol (on the line provided by the references request). 8443 */ 8444 symbolStartOffset: number; 8445 /** 8446 * The full display name of the symbol. 8447 */ 8448 symbolDisplayString: string; 8449 } 8450 /** 8451 * Response to "references" request. 8452 */ 8453 interface ReferencesResponse extends Response { 8454 body?: ReferencesResponseBody; 8455 } 8456 interface FileReferencesRequest extends FileRequest { 8457 command: CommandTypes.FileReferences; 8458 } 8459 interface FileReferencesResponseBody { 8460 /** 8461 * The file locations referencing the symbol. 8462 */ 8463 refs: readonly ReferencesResponseItem[]; 8464 /** 8465 * The name of the symbol. 8466 */ 8467 symbolName: string; 8468 } 8469 interface FileReferencesResponse extends Response { 8470 body?: FileReferencesResponseBody; 8471 } 8472 /** 8473 * Argument for RenameRequest request. 8474 */ 8475 interface RenameRequestArgs extends FileLocationRequestArgs { 8476 /** 8477 * Should text at specified location be found/changed in comments? 8478 */ 8479 findInComments?: boolean; 8480 /** 8481 * Should text at specified location be found/changed in strings? 8482 */ 8483 findInStrings?: boolean; 8484 } 8485 /** 8486 * Rename request; value of command field is "rename". Return 8487 * response giving the file locations that reference the symbol 8488 * found in file at location line, col. Also return full display 8489 * name of the symbol so that client can print it unambiguously. 8490 */ 8491 interface RenameRequest extends FileLocationRequest { 8492 command: CommandTypes.Rename; 8493 arguments: RenameRequestArgs; 8494 } 8495 /** 8496 * Information about the item to be renamed. 8497 */ 8498 type RenameInfo = RenameInfoSuccess | RenameInfoFailure; 8499 interface RenameInfoSuccess { 8500 /** 8501 * True if item can be renamed. 8502 */ 8503 canRename: true; 8504 /** 8505 * File or directory to rename. 8506 * If set, `getEditsForFileRename` should be called instead of `findRenameLocations`. 8507 */ 8508 fileToRename?: string; 8509 /** 8510 * Display name of the item to be renamed. 8511 */ 8512 displayName: string; 8513 /** 8514 * Full display name of item to be renamed. 8515 */ 8516 fullDisplayName: string; 8517 /** 8518 * The items's kind (such as 'className' or 'parameterName' or plain 'text'). 8519 */ 8520 kind: ScriptElementKind; 8521 /** 8522 * Optional modifiers for the kind (such as 'public'). 8523 */ 8524 kindModifiers: string; 8525 /** Span of text to rename. */ 8526 triggerSpan: TextSpan; 8527 } 8528 interface RenameInfoFailure { 8529 canRename: false; 8530 /** 8531 * Error message if item can not be renamed. 8532 */ 8533 localizedErrorMessage: string; 8534 } 8535 /** 8536 * A group of text spans, all in 'file'. 8537 */ 8538 interface SpanGroup { 8539 /** The file to which the spans apply */ 8540 file: string; 8541 /** The text spans in this group */ 8542 locs: RenameTextSpan[]; 8543 } 8544 interface RenameTextSpan extends TextSpanWithContext { 8545 readonly prefixText?: string; 8546 readonly suffixText?: string; 8547 } 8548 interface RenameResponseBody { 8549 /** 8550 * Information about the item to be renamed. 8551 */ 8552 info: RenameInfo; 8553 /** 8554 * An array of span groups (one per file) that refer to the item to be renamed. 8555 */ 8556 locs: readonly SpanGroup[]; 8557 } 8558 /** 8559 * Rename response message. 8560 */ 8561 interface RenameResponse extends Response { 8562 body?: RenameResponseBody; 8563 } 8564 /** 8565 * Represents a file in external project. 8566 * External project is project whose set of files, compilation options and open\close state 8567 * is maintained by the client (i.e. if all this data come from .csproj file in Visual Studio). 8568 * External project will exist even if all files in it are closed and should be closed explicitly. 8569 * If external project includes one or more tsconfig.json/jsconfig.json files then tsserver will 8570 * create configured project for every config file but will maintain a link that these projects were created 8571 * as a result of opening external project so they should be removed once external project is closed. 8572 */ 8573 interface ExternalFile { 8574 /** 8575 * Name of file file 8576 */ 8577 fileName: string; 8578 /** 8579 * Script kind of the file 8580 */ 8581 scriptKind?: ScriptKindName | ts.ScriptKind; 8582 /** 8583 * Whether file has mixed content (i.e. .cshtml file that combines html markup with C#/JavaScript) 8584 */ 8585 hasMixedContent?: boolean; 8586 /** 8587 * Content of the file 8588 */ 8589 content?: string; 8590 } 8591 /** 8592 * Represent an external project 8593 */ 8594 interface ExternalProject { 8595 /** 8596 * Project name 8597 */ 8598 projectFileName: string; 8599 /** 8600 * List of root files in project 8601 */ 8602 rootFiles: ExternalFile[]; 8603 /** 8604 * Compiler options for the project 8605 */ 8606 options: ExternalProjectCompilerOptions; 8607 /** 8608 * @deprecated typingOptions. Use typeAcquisition instead 8609 */ 8610 typingOptions?: TypeAcquisition; 8611 /** 8612 * Explicitly specified type acquisition for the project 8613 */ 8614 typeAcquisition?: TypeAcquisition; 8615 } 8616 interface CompileOnSaveMixin { 8617 /** 8618 * If compile on save is enabled for the project 8619 */ 8620 compileOnSave?: boolean; 8621 } 8622 /** 8623 * For external projects, some of the project settings are sent together with 8624 * compiler settings. 8625 */ 8626 type ExternalProjectCompilerOptions = CompilerOptions & CompileOnSaveMixin & WatchOptions; 8627 interface FileWithProjectReferenceRedirectInfo { 8628 /** 8629 * Name of file 8630 */ 8631 fileName: string; 8632 /** 8633 * True if the file is primarily included in a referenced project 8634 */ 8635 isSourceOfProjectReferenceRedirect: boolean; 8636 } 8637 /** 8638 * Represents a set of changes that happen in project 8639 */ 8640 interface ProjectChanges { 8641 /** 8642 * List of added files 8643 */ 8644 added: string[] | FileWithProjectReferenceRedirectInfo[]; 8645 /** 8646 * List of removed files 8647 */ 8648 removed: string[] | FileWithProjectReferenceRedirectInfo[]; 8649 /** 8650 * List of updated files 8651 */ 8652 updated: string[] | FileWithProjectReferenceRedirectInfo[]; 8653 /** 8654 * List of files that have had their project reference redirect status updated 8655 * Only provided when the synchronizeProjectList request has includeProjectReferenceRedirectInfo set to true 8656 */ 8657 updatedRedirects?: FileWithProjectReferenceRedirectInfo[]; 8658 } 8659 /** 8660 * Information found in a configure request. 8661 */ 8662 interface ConfigureRequestArguments { 8663 /** 8664 * Information about the host, for example 'Emacs 24.4' or 8665 * 'Sublime Text version 3075' 8666 */ 8667 hostInfo?: string; 8668 /** 8669 * If present, tab settings apply only to this file. 8670 */ 8671 file?: string; 8672 /** 8673 * The format options to use during formatting and other code editing features. 8674 */ 8675 formatOptions?: FormatCodeSettings; 8676 preferences?: UserPreferences; 8677 /** 8678 * The host's additional supported .js file extensions 8679 */ 8680 extraFileExtensions?: FileExtensionInfo[]; 8681 watchOptions?: WatchOptions; 8682 } 8683 enum WatchFileKind { 8684 FixedPollingInterval = "FixedPollingInterval", 8685 PriorityPollingInterval = "PriorityPollingInterval", 8686 DynamicPriorityPolling = "DynamicPriorityPolling", 8687 FixedChunkSizePolling = "FixedChunkSizePolling", 8688 UseFsEvents = "UseFsEvents", 8689 UseFsEventsOnParentDirectory = "UseFsEventsOnParentDirectory" 8690 } 8691 enum WatchDirectoryKind { 8692 UseFsEvents = "UseFsEvents", 8693 FixedPollingInterval = "FixedPollingInterval", 8694 DynamicPriorityPolling = "DynamicPriorityPolling", 8695 FixedChunkSizePolling = "FixedChunkSizePolling" 8696 } 8697 enum PollingWatchKind { 8698 FixedInterval = "FixedInterval", 8699 PriorityInterval = "PriorityInterval", 8700 DynamicPriority = "DynamicPriority", 8701 FixedChunkSize = "FixedChunkSize" 8702 } 8703 interface WatchOptions { 8704 watchFile?: WatchFileKind | ts.WatchFileKind; 8705 watchDirectory?: WatchDirectoryKind | ts.WatchDirectoryKind; 8706 fallbackPolling?: PollingWatchKind | ts.PollingWatchKind; 8707 synchronousWatchDirectory?: boolean; 8708 excludeDirectories?: string[]; 8709 excludeFiles?: string[]; 8710 [option: string]: CompilerOptionsValue | undefined; 8711 } 8712 /** 8713 * Configure request; value of command field is "configure". Specifies 8714 * host information, such as host type, tab size, and indent size. 8715 */ 8716 interface ConfigureRequest extends Request { 8717 command: CommandTypes.Configure; 8718 arguments: ConfigureRequestArguments; 8719 } 8720 /** 8721 * Response to "configure" request. This is just an acknowledgement, so 8722 * no body field is required. 8723 */ 8724 interface ConfigureResponse extends Response { 8725 } 8726 interface ConfigurePluginRequestArguments { 8727 pluginName: string; 8728 configuration: any; 8729 } 8730 interface ConfigurePluginRequest extends Request { 8731 command: CommandTypes.ConfigurePlugin; 8732 arguments: ConfigurePluginRequestArguments; 8733 } 8734 interface ConfigurePluginResponse extends Response { 8735 } 8736 interface SelectionRangeRequest extends FileRequest { 8737 command: CommandTypes.SelectionRange; 8738 arguments: SelectionRangeRequestArgs; 8739 } 8740 interface SelectionRangeRequestArgs extends FileRequestArgs { 8741 locations: Location[]; 8742 } 8743 interface SelectionRangeResponse extends Response { 8744 body?: SelectionRange[]; 8745 } 8746 interface SelectionRange { 8747 textSpan: TextSpan; 8748 parent?: SelectionRange; 8749 } 8750 interface ToggleLineCommentRequest extends FileRequest { 8751 command: CommandTypes.ToggleLineComment; 8752 arguments: FileRangeRequestArgs; 8753 } 8754 interface ToggleMultilineCommentRequest extends FileRequest { 8755 command: CommandTypes.ToggleMultilineComment; 8756 arguments: FileRangeRequestArgs; 8757 } 8758 interface CommentSelectionRequest extends FileRequest { 8759 command: CommandTypes.CommentSelection; 8760 arguments: FileRangeRequestArgs; 8761 } 8762 interface UncommentSelectionRequest extends FileRequest { 8763 command: CommandTypes.UncommentSelection; 8764 arguments: FileRangeRequestArgs; 8765 } 8766 /** 8767 * Information found in an "open" request. 8768 */ 8769 interface OpenRequestArgs extends FileRequestArgs { 8770 /** 8771 * Used when a version of the file content is known to be more up to date than the one on disk. 8772 * Then the known content will be used upon opening instead of the disk copy 8773 */ 8774 fileContent?: string; 8775 /** 8776 * Used to specify the script kind of the file explicitly. It could be one of the following: 8777 * "TS", "JS", "TSX", "JSX" 8778 */ 8779 scriptKindName?: ScriptKindName; 8780 /** 8781 * Used to limit the searching for project config file. If given the searching will stop at this 8782 * root path; otherwise it will go all the way up to the dist root path. 8783 */ 8784 projectRootPath?: string; 8785 } 8786 type ScriptKindName = "TS" | "JS" | "TSX" | "JSX" | "ETS"; 8787 /** 8788 * Open request; value of command field is "open". Notify the 8789 * server that the client has file open. The server will not 8790 * monitor the filesystem for changes in this file and will assume 8791 * that the client is updating the server (using the change and/or 8792 * reload messages) when the file changes. Server does not currently 8793 * send a response to an open request. 8794 */ 8795 interface OpenRequest extends Request { 8796 command: CommandTypes.Open; 8797 arguments: OpenRequestArgs; 8798 } 8799 /** 8800 * Request to open or update external project 8801 */ 8802 interface OpenExternalProjectRequest extends Request { 8803 command: CommandTypes.OpenExternalProject; 8804 arguments: OpenExternalProjectArgs; 8805 } 8806 /** 8807 * Arguments to OpenExternalProjectRequest request 8808 */ 8809 type OpenExternalProjectArgs = ExternalProject; 8810 /** 8811 * Request to open multiple external projects 8812 */ 8813 interface OpenExternalProjectsRequest extends Request { 8814 command: CommandTypes.OpenExternalProjects; 8815 arguments: OpenExternalProjectsArgs; 8816 } 8817 /** 8818 * Arguments to OpenExternalProjectsRequest 8819 */ 8820 interface OpenExternalProjectsArgs { 8821 /** 8822 * List of external projects to open or update 8823 */ 8824 projects: ExternalProject[]; 8825 } 8826 /** 8827 * Response to OpenExternalProjectRequest request. This is just an acknowledgement, so 8828 * no body field is required. 8829 */ 8830 interface OpenExternalProjectResponse extends Response { 8831 } 8832 /** 8833 * Response to OpenExternalProjectsRequest request. This is just an acknowledgement, so 8834 * no body field is required. 8835 */ 8836 interface OpenExternalProjectsResponse extends Response { 8837 } 8838 /** 8839 * Request to close external project. 8840 */ 8841 interface CloseExternalProjectRequest extends Request { 8842 command: CommandTypes.CloseExternalProject; 8843 arguments: CloseExternalProjectRequestArgs; 8844 } 8845 /** 8846 * Arguments to CloseExternalProjectRequest request 8847 */ 8848 interface CloseExternalProjectRequestArgs { 8849 /** 8850 * Name of the project to close 8851 */ 8852 projectFileName: string; 8853 } 8854 /** 8855 * Response to CloseExternalProjectRequest request. This is just an acknowledgement, so 8856 * no body field is required. 8857 */ 8858 interface CloseExternalProjectResponse extends Response { 8859 } 8860 /** 8861 * Request to synchronize list of open files with the client 8862 */ 8863 interface UpdateOpenRequest extends Request { 8864 command: CommandTypes.UpdateOpen; 8865 arguments: UpdateOpenRequestArgs; 8866 } 8867 /** 8868 * Arguments to UpdateOpenRequest 8869 */ 8870 interface UpdateOpenRequestArgs { 8871 /** 8872 * List of newly open files 8873 */ 8874 openFiles?: OpenRequestArgs[]; 8875 /** 8876 * List of open files files that were changes 8877 */ 8878 changedFiles?: FileCodeEdits[]; 8879 /** 8880 * List of files that were closed 8881 */ 8882 closedFiles?: string[]; 8883 } 8884 /** 8885 * External projects have a typeAcquisition option so they need to be added separately to compiler options for inferred projects. 8886 */ 8887 type InferredProjectCompilerOptions = ExternalProjectCompilerOptions & TypeAcquisition; 8888 /** 8889 * Request to set compiler options for inferred projects. 8890 * External projects are opened / closed explicitly. 8891 * Configured projects are opened when user opens loose file that has 'tsconfig.json' or 'jsconfig.json' anywhere in one of containing folders. 8892 * This configuration file will be used to obtain a list of files and configuration settings for the project. 8893 * Inferred projects are created when user opens a loose file that is not the part of external project 8894 * or configured project and will contain only open file and transitive closure of referenced files if 'useOneInferredProject' is false, 8895 * or all open loose files and its transitive closure of referenced files if 'useOneInferredProject' is true. 8896 */ 8897 interface SetCompilerOptionsForInferredProjectsRequest extends Request { 8898 command: CommandTypes.CompilerOptionsForInferredProjects; 8899 arguments: SetCompilerOptionsForInferredProjectsArgs; 8900 } 8901 /** 8902 * Argument for SetCompilerOptionsForInferredProjectsRequest request. 8903 */ 8904 interface SetCompilerOptionsForInferredProjectsArgs { 8905 /** 8906 * Compiler options to be used with inferred projects. 8907 */ 8908 options: InferredProjectCompilerOptions; 8909 /** 8910 * Specifies the project root path used to scope compiler options. 8911 * It is an error to provide this property if the server has not been started with 8912 * `useInferredProjectPerProjectRoot` enabled. 8913 */ 8914 projectRootPath?: string; 8915 } 8916 /** 8917 * Response to SetCompilerOptionsForInferredProjectsResponse request. This is just an acknowledgement, so 8918 * no body field is required. 8919 */ 8920 interface SetCompilerOptionsForInferredProjectsResponse extends Response { 8921 } 8922 /** 8923 * Exit request; value of command field is "exit". Ask the server process 8924 * to exit. 8925 */ 8926 interface ExitRequest extends Request { 8927 command: CommandTypes.Exit; 8928 } 8929 /** 8930 * Close request; value of command field is "close". Notify the 8931 * server that the client has closed a previously open file. If 8932 * file is still referenced by open files, the server will resume 8933 * monitoring the filesystem for changes to file. Server does not 8934 * currently send a response to a close request. 8935 */ 8936 interface CloseRequest extends FileRequest { 8937 command: CommandTypes.Close; 8938 } 8939 /** 8940 * Request to obtain the list of files that should be regenerated if target file is recompiled. 8941 * NOTE: this us query-only operation and does not generate any output on disk. 8942 */ 8943 interface CompileOnSaveAffectedFileListRequest extends FileRequest { 8944 command: CommandTypes.CompileOnSaveAffectedFileList; 8945 } 8946 /** 8947 * Contains a list of files that should be regenerated in a project 8948 */ 8949 interface CompileOnSaveAffectedFileListSingleProject { 8950 /** 8951 * Project name 8952 */ 8953 projectFileName: string; 8954 /** 8955 * List of files names that should be recompiled 8956 */ 8957 fileNames: string[]; 8958 /** 8959 * true if project uses outFile or out compiler option 8960 */ 8961 projectUsesOutFile: boolean; 8962 } 8963 /** 8964 * Response for CompileOnSaveAffectedFileListRequest request; 8965 */ 8966 interface CompileOnSaveAffectedFileListResponse extends Response { 8967 body: CompileOnSaveAffectedFileListSingleProject[]; 8968 } 8969 /** 8970 * Request to recompile the file. All generated outputs (.js, .d.ts or .js.map files) is written on disk. 8971 */ 8972 interface CompileOnSaveEmitFileRequest extends FileRequest { 8973 command: CommandTypes.CompileOnSaveEmitFile; 8974 arguments: CompileOnSaveEmitFileRequestArgs; 8975 } 8976 /** 8977 * Arguments for CompileOnSaveEmitFileRequest 8978 */ 8979 interface CompileOnSaveEmitFileRequestArgs extends FileRequestArgs { 8980 /** 8981 * if true - then file should be recompiled even if it does not have any changes. 8982 */ 8983 forced?: boolean; 8984 includeLinePosition?: boolean; 8985 /** if true - return response as object with emitSkipped and diagnostics */ 8986 richResponse?: boolean; 8987 } 8988 interface CompileOnSaveEmitFileResponse extends Response { 8989 body: boolean | EmitResult; 8990 } 8991 interface EmitResult { 8992 emitSkipped: boolean; 8993 diagnostics: Diagnostic[] | DiagnosticWithLinePosition[]; 8994 } 8995 /** 8996 * Quickinfo request; value of command field is 8997 * "quickinfo". Return response giving a quick type and 8998 * documentation string for the symbol found in file at location 8999 * line, col. 9000 */ 9001 interface QuickInfoRequest extends FileLocationRequest { 9002 command: CommandTypes.Quickinfo; 9003 arguments: FileLocationRequestArgs; 9004 } 9005 /** 9006 * Body of QuickInfoResponse. 9007 */ 9008 interface QuickInfoResponseBody { 9009 /** 9010 * The symbol's kind (such as 'className' or 'parameterName' or plain 'text'). 9011 */ 9012 kind: ScriptElementKind; 9013 /** 9014 * Optional modifiers for the kind (such as 'public'). 9015 */ 9016 kindModifiers: string; 9017 /** 9018 * Starting file location of symbol. 9019 */ 9020 start: Location; 9021 /** 9022 * One past last character of symbol. 9023 */ 9024 end: Location; 9025 /** 9026 * Type and kind of symbol. 9027 */ 9028 displayString: string; 9029 /** 9030 * Documentation associated with symbol. 9031 * Display parts when UserPreferences.displayPartsForJSDoc is true, flattened to string otherwise. 9032 */ 9033 documentation: string | SymbolDisplayPart[]; 9034 /** 9035 * JSDoc tags associated with symbol. 9036 */ 9037 tags: JSDocTagInfo[]; 9038 } 9039 /** 9040 * Quickinfo response message. 9041 */ 9042 interface QuickInfoResponse extends Response { 9043 body?: QuickInfoResponseBody; 9044 } 9045 /** 9046 * Arguments for format messages. 9047 */ 9048 interface FormatRequestArgs extends FileLocationRequestArgs { 9049 /** 9050 * Last line of range for which to format text in file. 9051 */ 9052 endLine: number; 9053 /** 9054 * Character offset on last line of range for which to format text in file. 9055 */ 9056 endOffset: number; 9057 /** 9058 * Format options to be used. 9059 */ 9060 options?: FormatCodeSettings; 9061 } 9062 /** 9063 * Format request; value of command field is "format". Return 9064 * response giving zero or more edit instructions. The edit 9065 * instructions will be sorted in file order. Applying the edit 9066 * instructions in reverse to file will result in correctly 9067 * reformatted text. 9068 */ 9069 interface FormatRequest extends FileLocationRequest { 9070 command: CommandTypes.Format; 9071 arguments: FormatRequestArgs; 9072 } 9073 /** 9074 * Object found in response messages defining an editing 9075 * instruction for a span of text in source code. The effect of 9076 * this instruction is to replace the text starting at start and 9077 * ending one character before end with newText. For an insertion, 9078 * the text span is empty. For a deletion, newText is empty. 9079 */ 9080 interface CodeEdit { 9081 /** 9082 * First character of the text span to edit. 9083 */ 9084 start: Location; 9085 /** 9086 * One character past last character of the text span to edit. 9087 */ 9088 end: Location; 9089 /** 9090 * Replace the span defined above with this string (may be 9091 * the empty string). 9092 */ 9093 newText: string; 9094 } 9095 interface FileCodeEdits { 9096 fileName: string; 9097 textChanges: CodeEdit[]; 9098 } 9099 interface CodeFixResponse extends Response { 9100 /** The code actions that are available */ 9101 body?: CodeFixAction[]; 9102 } 9103 interface CodeAction { 9104 /** Description of the code action to display in the UI of the editor */ 9105 description: string; 9106 /** Text changes to apply to each file as part of the code action */ 9107 changes: FileCodeEdits[]; 9108 /** A command is an opaque object that should be passed to `ApplyCodeActionCommandRequestArgs` without modification. */ 9109 commands?: {}[]; 9110 } 9111 interface CombinedCodeActions { 9112 changes: readonly FileCodeEdits[]; 9113 commands?: readonly {}[]; 9114 } 9115 interface CodeFixAction extends CodeAction { 9116 /** Short name to identify the fix, for use by telemetry. */ 9117 fixName: string; 9118 /** 9119 * If present, one may call 'getCombinedCodeFix' with this fixId. 9120 * This may be omitted to indicate that the code fix can't be applied in a group. 9121 */ 9122 fixId?: {}; 9123 /** Should be present if and only if 'fixId' is. */ 9124 fixAllDescription?: string; 9125 } 9126 /** 9127 * Format and format on key response message. 9128 */ 9129 interface FormatResponse extends Response { 9130 body?: CodeEdit[]; 9131 } 9132 /** 9133 * Arguments for format on key messages. 9134 */ 9135 interface FormatOnKeyRequestArgs extends FileLocationRequestArgs { 9136 /** 9137 * Key pressed (';', '\n', or '}'). 9138 */ 9139 key: string; 9140 options?: FormatCodeSettings; 9141 } 9142 /** 9143 * Format on key request; value of command field is 9144 * "formatonkey". Given file location and key typed (as string), 9145 * return response giving zero or more edit instructions. The 9146 * edit instructions will be sorted in file order. Applying the 9147 * edit instructions in reverse to file will result in correctly 9148 * reformatted text. 9149 */ 9150 interface FormatOnKeyRequest extends FileLocationRequest { 9151 command: CommandTypes.Formatonkey; 9152 arguments: FormatOnKeyRequestArgs; 9153 } 9154 type CompletionsTriggerCharacter = "." | '"' | "'" | "`" | "/" | "@" | "<" | "#" | " "; 9155 enum CompletionTriggerKind { 9156 /** Completion was triggered by typing an identifier, manual invocation (e.g Ctrl+Space) or via API. */ 9157 Invoked = 1, 9158 /** Completion was triggered by a trigger character. */ 9159 TriggerCharacter = 2, 9160 /** Completion was re-triggered as the current completion list is incomplete. */ 9161 TriggerForIncompleteCompletions = 3 9162 } 9163 /** 9164 * Arguments for completions messages. 9165 */ 9166 interface CompletionsRequestArgs extends FileLocationRequestArgs { 9167 /** 9168 * Optional prefix to apply to possible completions. 9169 */ 9170 prefix?: string; 9171 /** 9172 * Character that was responsible for triggering completion. 9173 * Should be `undefined` if a user manually requested completion. 9174 */ 9175 triggerCharacter?: CompletionsTriggerCharacter; 9176 triggerKind?: CompletionTriggerKind; 9177 /** 9178 * @deprecated Use UserPreferences.includeCompletionsForModuleExports 9179 */ 9180 includeExternalModuleExports?: boolean; 9181 /** 9182 * @deprecated Use UserPreferences.includeCompletionsWithInsertText 9183 */ 9184 includeInsertTextCompletions?: boolean; 9185 } 9186 interface EtsOptions { 9187 render: { 9188 method: string[]; 9189 decorator: string[]; 9190 }; 9191 components: string[]; 9192 libs: string[]; 9193 extend: { 9194 decorator: string[]; 9195 components: { 9196 name: string; 9197 type: string; 9198 instance: string; 9199 }[]; 9200 }; 9201 styles: { 9202 decorator: string; 9203 component: { 9204 name: string; 9205 type: string; 9206 instance: string; 9207 }; 9208 property: string; 9209 }; 9210 concurrent: { 9211 decorator: string; 9212 }; 9213 customComponent?: string; 9214 propertyDecorators: { 9215 name: string; 9216 needInitialization: boolean; 9217 }[]; 9218 emitDecorators: { 9219 name: string; 9220 emitParameters: boolean; 9221 }[]; 9222 syntaxComponents: { 9223 paramsUICallback: string[]; 9224 attrUICallback: { 9225 name: string; 9226 attributes: string[]; 9227 }[]; 9228 }; 9229 } 9230 /** 9231 * Completions request; value of command field is "completions". 9232 * Given a file location (file, line, col) and a prefix (which may 9233 * be the empty string), return the possible completions that 9234 * begin with prefix. 9235 */ 9236 interface CompletionsRequest extends FileLocationRequest { 9237 command: CommandTypes.Completions | CommandTypes.CompletionInfo; 9238 arguments: CompletionsRequestArgs; 9239 } 9240 /** 9241 * Arguments for completion details request. 9242 */ 9243 interface CompletionDetailsRequestArgs extends FileLocationRequestArgs { 9244 /** 9245 * Names of one or more entries for which to obtain details. 9246 */ 9247 entryNames: (string | CompletionEntryIdentifier)[]; 9248 } 9249 interface CompletionEntryIdentifier { 9250 name: string; 9251 source?: string; 9252 data?: unknown; 9253 } 9254 /** 9255 * Completion entry details request; value of command field is 9256 * "completionEntryDetails". Given a file location (file, line, 9257 * col) and an array of completion entry names return more 9258 * detailed information for each completion entry. 9259 */ 9260 interface CompletionDetailsRequest extends FileLocationRequest { 9261 command: CommandTypes.CompletionDetails; 9262 arguments: CompletionDetailsRequestArgs; 9263 } 9264 /** 9265 * Part of a symbol description. 9266 */ 9267 interface SymbolDisplayPart { 9268 /** 9269 * Text of an item describing the symbol. 9270 */ 9271 text: string; 9272 /** 9273 * The symbol's kind (such as 'className' or 'parameterName' or plain 'text'). 9274 */ 9275 kind: string; 9276 } 9277 /** A part of a symbol description that links from a jsdoc @link tag to a declaration */ 9278 interface JSDocLinkDisplayPart extends SymbolDisplayPart { 9279 /** The location of the declaration that the @link tag links to. */ 9280 target: FileSpan; 9281 } 9282 /** 9283 * An item found in a completion response. 9284 */ 9285 interface CompletionEntry { 9286 /** 9287 * The symbol's name. 9288 */ 9289 name: string; 9290 /** 9291 * The symbol's kind (such as 'className' or 'parameterName'). 9292 */ 9293 kind: ScriptElementKind; 9294 /** 9295 * Optional modifiers for the kind (such as 'public'). 9296 */ 9297 kindModifiers?: string; 9298 /** 9299 * A string that is used for comparing completion items so that they can be ordered. This 9300 * is often the same as the name but may be different in certain circumstances. 9301 */ 9302 sortText: string; 9303 /** 9304 * Text to insert instead of `name`. 9305 * This is used to support bracketed completions; If `name` might be "a-b" but `insertText` would be `["a-b"]`, 9306 * coupled with `replacementSpan` to replace a dotted access with a bracket access. 9307 */ 9308 insertText?: string; 9309 /** 9310 * `insertText` should be interpreted as a snippet if true. 9311 */ 9312 isSnippet?: true; 9313 /** 9314 * An optional span that indicates the text to be replaced by this completion item. 9315 * If present, this span should be used instead of the default one. 9316 * It will be set if the required span differs from the one generated by the default replacement behavior. 9317 */ 9318 replacementSpan?: TextSpan; 9319 /** 9320 * Indicates whether commiting this completion entry will require additional code actions to be 9321 * made to avoid errors. The CompletionEntryDetails will have these actions. 9322 */ 9323 hasAction?: true; 9324 /** 9325 * Identifier (not necessarily human-readable) identifying where this completion came from. 9326 */ 9327 source?: string; 9328 /** 9329 * Human-readable description of the `source`. 9330 */ 9331 sourceDisplay?: SymbolDisplayPart[]; 9332 /** 9333 * Additional details for the label. 9334 */ 9335 labelDetails?: CompletionEntryLabelDetails; 9336 /** 9337 * If true, this completion should be highlighted as recommended. There will only be one of these. 9338 * 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. 9339 * Then either that enum/class or a namespace containing it will be the recommended symbol. 9340 */ 9341 isRecommended?: true; 9342 /** 9343 * If true, this completion was generated from traversing the name table of an unchecked JS file, 9344 * and therefore may not be accurate. 9345 */ 9346 isFromUncheckedFile?: true; 9347 /** 9348 * If true, this completion was for an auto-import of a module not yet in the program, but listed 9349 * in the project package.json. Used for telemetry reporting. 9350 */ 9351 isPackageJsonImport?: true; 9352 /** 9353 * If true, this completion was an auto-import-style completion of an import statement (i.e., the 9354 * module specifier was inserted along with the imported identifier). Used for telemetry reporting. 9355 */ 9356 isImportStatementCompletion?: true; 9357 /** 9358 * A property to be sent back to TS Server in the CompletionDetailsRequest, along with `name`, 9359 * that allows TS Server to look up the symbol represented by the completion item, disambiguating 9360 * items with the same name. 9361 */ 9362 data?: unknown; 9363 /** 9364 * Js Doc info with symbol. 9365 */ 9366 jsDoc?: JsDocTagInfo[]; 9367 /** 9368 * Displayparts info with symbol. 9369 */ 9370 displayParts?: SymbolDisplayPart[]; 9371 } 9372 interface CompletionEntryLabelDetails { 9373 /** 9374 * An optional string which is rendered less prominently directly after 9375 * {@link CompletionEntry.name name}, without any spacing. Should be 9376 * used for function signatures or type annotations. 9377 */ 9378 detail?: string; 9379 /** 9380 * An optional string which is rendered less prominently after 9381 * {@link CompletionEntryLabelDetails.detail}. Should be used for fully qualified 9382 * names or file path. 9383 */ 9384 description?: string; 9385 } 9386 /** 9387 * Additional completion entry details, available on demand 9388 */ 9389 interface CompletionEntryDetails { 9390 /** 9391 * The symbol's name. 9392 */ 9393 name: string; 9394 /** 9395 * The symbol's kind (such as 'className' or 'parameterName'). 9396 */ 9397 kind: ScriptElementKind; 9398 /** 9399 * Optional modifiers for the kind (such as 'public'). 9400 */ 9401 kindModifiers: string; 9402 /** 9403 * Display parts of the symbol (similar to quick info). 9404 */ 9405 displayParts: SymbolDisplayPart[]; 9406 /** 9407 * Documentation strings for the symbol. 9408 */ 9409 documentation?: SymbolDisplayPart[]; 9410 /** 9411 * JSDoc tags for the symbol. 9412 */ 9413 tags?: JSDocTagInfo[]; 9414 /** 9415 * The associated code actions for this entry 9416 */ 9417 codeActions?: CodeAction[]; 9418 /** 9419 * @deprecated Use `sourceDisplay` instead. 9420 */ 9421 source?: SymbolDisplayPart[]; 9422 /** 9423 * Human-readable description of the `source` from the CompletionEntry. 9424 */ 9425 sourceDisplay?: SymbolDisplayPart[]; 9426 } 9427 /** @deprecated Prefer CompletionInfoResponse, which supports several top-level fields in addition to the array of entries. */ 9428 interface CompletionsResponse extends Response { 9429 body?: CompletionEntry[]; 9430 } 9431 interface CompletionInfoResponse extends Response { 9432 body?: CompletionInfo; 9433 } 9434 interface CompletionInfo { 9435 readonly flags?: number; 9436 readonly isGlobalCompletion: boolean; 9437 readonly isMemberCompletion: boolean; 9438 readonly isNewIdentifierLocation: boolean; 9439 /** 9440 * In the absence of `CompletionEntry["replacementSpan"]`, the editor may choose whether to use 9441 * this span or its default one. If `CompletionEntry["replacementSpan"]` is defined, that span 9442 * must be used to commit that completion entry. 9443 */ 9444 readonly optionalReplacementSpan?: TextSpan; 9445 readonly isIncomplete?: boolean; 9446 readonly entries: readonly CompletionEntry[]; 9447 } 9448 interface CompletionDetailsResponse extends Response { 9449 body?: CompletionEntryDetails[]; 9450 } 9451 /** 9452 * Signature help information for a single parameter 9453 */ 9454 interface SignatureHelpParameter { 9455 /** 9456 * The parameter's name 9457 */ 9458 name: string; 9459 /** 9460 * Documentation of the parameter. 9461 */ 9462 documentation: SymbolDisplayPart[]; 9463 /** 9464 * Display parts of the parameter. 9465 */ 9466 displayParts: SymbolDisplayPart[]; 9467 /** 9468 * Whether the parameter is optional or not. 9469 */ 9470 isOptional: boolean; 9471 } 9472 /** 9473 * Represents a single signature to show in signature help. 9474 */ 9475 interface SignatureHelpItem { 9476 /** 9477 * Whether the signature accepts a variable number of arguments. 9478 */ 9479 isVariadic: boolean; 9480 /** 9481 * The prefix display parts. 9482 */ 9483 prefixDisplayParts: SymbolDisplayPart[]; 9484 /** 9485 * The suffix display parts. 9486 */ 9487 suffixDisplayParts: SymbolDisplayPart[]; 9488 /** 9489 * The separator display parts. 9490 */ 9491 separatorDisplayParts: SymbolDisplayPart[]; 9492 /** 9493 * The signature helps items for the parameters. 9494 */ 9495 parameters: SignatureHelpParameter[]; 9496 /** 9497 * The signature's documentation 9498 */ 9499 documentation: SymbolDisplayPart[]; 9500 /** 9501 * The signature's JSDoc tags 9502 */ 9503 tags: JSDocTagInfo[]; 9504 } 9505 /** 9506 * Signature help items found in the response of a signature help request. 9507 */ 9508 interface SignatureHelpItems { 9509 /** 9510 * The signature help items. 9511 */ 9512 items: SignatureHelpItem[]; 9513 /** 9514 * The span for which signature help should appear on a signature 9515 */ 9516 applicableSpan: TextSpan; 9517 /** 9518 * The item selected in the set of available help items. 9519 */ 9520 selectedItemIndex: number; 9521 /** 9522 * The argument selected in the set of parameters. 9523 */ 9524 argumentIndex: number; 9525 /** 9526 * The argument count 9527 */ 9528 argumentCount: number; 9529 } 9530 type SignatureHelpTriggerCharacter = "," | "(" | "<"; 9531 type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; 9532 /** 9533 * Arguments of a signature help request. 9534 */ 9535 interface SignatureHelpRequestArgs extends FileLocationRequestArgs { 9536 /** 9537 * Reason why signature help was invoked. 9538 * See each individual possible 9539 */ 9540 triggerReason?: SignatureHelpTriggerReason; 9541 } 9542 type SignatureHelpTriggerReason = SignatureHelpInvokedReason | SignatureHelpCharacterTypedReason | SignatureHelpRetriggeredReason; 9543 /** 9544 * Signals that the user manually requested signature help. 9545 * The language service will unconditionally attempt to provide a result. 9546 */ 9547 interface SignatureHelpInvokedReason { 9548 kind: "invoked"; 9549 triggerCharacter?: undefined; 9550 } 9551 /** 9552 * Signals that the signature help request came from a user typing a character. 9553 * Depending on the character and the syntactic context, the request may or may not be served a result. 9554 */ 9555 interface SignatureHelpCharacterTypedReason { 9556 kind: "characterTyped"; 9557 /** 9558 * Character that was responsible for triggering signature help. 9559 */ 9560 triggerCharacter: SignatureHelpTriggerCharacter; 9561 } 9562 /** 9563 * Signals that this signature help request came from typing a character or moving the cursor. 9564 * This should only occur if a signature help session was already active and the editor needs to see if it should adjust. 9565 * The language service will unconditionally attempt to provide a result. 9566 * `triggerCharacter` can be `undefined` for a retrigger caused by a cursor move. 9567 */ 9568 interface SignatureHelpRetriggeredReason { 9569 kind: "retrigger"; 9570 /** 9571 * Character that was responsible for triggering signature help. 9572 */ 9573 triggerCharacter?: SignatureHelpRetriggerCharacter; 9574 } 9575 /** 9576 * Signature help request; value of command field is "signatureHelp". 9577 * Given a file location (file, line, col), return the signature 9578 * help. 9579 */ 9580 interface SignatureHelpRequest extends FileLocationRequest { 9581 command: CommandTypes.SignatureHelp; 9582 arguments: SignatureHelpRequestArgs; 9583 } 9584 /** 9585 * Response object for a SignatureHelpRequest. 9586 */ 9587 interface SignatureHelpResponse extends Response { 9588 body?: SignatureHelpItems; 9589 } 9590 type InlayHintKind = "Type" | "Parameter" | "Enum"; 9591 interface InlayHintsRequestArgs extends FileRequestArgs { 9592 /** 9593 * Start position of the span. 9594 */ 9595 start: number; 9596 /** 9597 * Length of the span. 9598 */ 9599 length: number; 9600 } 9601 interface InlayHintsRequest extends Request { 9602 command: CommandTypes.ProvideInlayHints; 9603 arguments: InlayHintsRequestArgs; 9604 } 9605 interface InlayHintItem { 9606 text: string; 9607 position: Location; 9608 kind: InlayHintKind; 9609 whitespaceBefore?: boolean; 9610 whitespaceAfter?: boolean; 9611 } 9612 interface InlayHintsResponse extends Response { 9613 body?: InlayHintItem[]; 9614 } 9615 /** 9616 * Synchronous request for semantic diagnostics of one file. 9617 */ 9618 interface SemanticDiagnosticsSyncRequest extends FileRequest { 9619 command: CommandTypes.SemanticDiagnosticsSync; 9620 arguments: SemanticDiagnosticsSyncRequestArgs; 9621 } 9622 interface SemanticDiagnosticsSyncRequestArgs extends FileRequestArgs { 9623 includeLinePosition?: boolean; 9624 } 9625 /** 9626 * Response object for synchronous sematic diagnostics request. 9627 */ 9628 interface SemanticDiagnosticsSyncResponse extends Response { 9629 body?: Diagnostic[] | DiagnosticWithLinePosition[]; 9630 } 9631 interface SuggestionDiagnosticsSyncRequest extends FileRequest { 9632 command: CommandTypes.SuggestionDiagnosticsSync; 9633 arguments: SuggestionDiagnosticsSyncRequestArgs; 9634 } 9635 type SuggestionDiagnosticsSyncRequestArgs = SemanticDiagnosticsSyncRequestArgs; 9636 type SuggestionDiagnosticsSyncResponse = SemanticDiagnosticsSyncResponse; 9637 /** 9638 * Synchronous request for syntactic diagnostics of one file. 9639 */ 9640 interface SyntacticDiagnosticsSyncRequest extends FileRequest { 9641 command: CommandTypes.SyntacticDiagnosticsSync; 9642 arguments: SyntacticDiagnosticsSyncRequestArgs; 9643 } 9644 interface SyntacticDiagnosticsSyncRequestArgs extends FileRequestArgs { 9645 includeLinePosition?: boolean; 9646 } 9647 /** 9648 * Response object for synchronous syntactic diagnostics request. 9649 */ 9650 interface SyntacticDiagnosticsSyncResponse extends Response { 9651 body?: Diagnostic[] | DiagnosticWithLinePosition[]; 9652 } 9653 /** 9654 * Arguments for GeterrForProject request. 9655 */ 9656 interface GeterrForProjectRequestArgs { 9657 /** 9658 * the file requesting project error list 9659 */ 9660 file: string; 9661 /** 9662 * Delay in milliseconds to wait before starting to compute 9663 * errors for the files in the file list 9664 */ 9665 delay: number; 9666 } 9667 /** 9668 * GeterrForProjectRequest request; value of command field is 9669 * "geterrForProject". It works similarly with 'Geterr', only 9670 * it request for every file in this project. 9671 */ 9672 interface GeterrForProjectRequest extends Request { 9673 command: CommandTypes.GeterrForProject; 9674 arguments: GeterrForProjectRequestArgs; 9675 } 9676 /** 9677 * Arguments for geterr messages. 9678 */ 9679 interface GeterrRequestArgs { 9680 /** 9681 * List of file names for which to compute compiler errors. 9682 * The files will be checked in list order. 9683 */ 9684 files: string[]; 9685 /** 9686 * Delay in milliseconds to wait before starting to compute 9687 * errors for the files in the file list 9688 */ 9689 delay: number; 9690 } 9691 /** 9692 * Geterr request; value of command field is "geterr". Wait for 9693 * delay milliseconds and then, if during the wait no change or 9694 * reload messages have arrived for the first file in the files 9695 * list, get the syntactic errors for the file, field requests, 9696 * and then get the semantic errors for the file. Repeat with a 9697 * smaller delay for each subsequent file on the files list. Best 9698 * practice for an editor is to send a file list containing each 9699 * file that is currently visible, in most-recently-used order. 9700 */ 9701 interface GeterrRequest extends Request { 9702 command: CommandTypes.Geterr; 9703 arguments: GeterrRequestArgs; 9704 } 9705 type RequestCompletedEventName = "requestCompleted"; 9706 /** 9707 * Event that is sent when server have finished processing request with specified id. 9708 */ 9709 interface RequestCompletedEvent extends Event { 9710 event: RequestCompletedEventName; 9711 body: RequestCompletedEventBody; 9712 } 9713 interface RequestCompletedEventBody { 9714 request_seq: number; 9715 } 9716 /** 9717 * Item of diagnostic information found in a DiagnosticEvent message. 9718 */ 9719 interface Diagnostic { 9720 /** 9721 * Starting file location at which text applies. 9722 */ 9723 start: Location; 9724 /** 9725 * The last file location at which the text applies. 9726 */ 9727 end: Location; 9728 /** 9729 * Text of diagnostic message. 9730 */ 9731 text: string; 9732 /** 9733 * The category of the diagnostic message, e.g. "error", "warning", or "suggestion". 9734 */ 9735 category: string; 9736 reportsUnnecessary?: {}; 9737 reportsDeprecated?: {}; 9738 /** 9739 * Any related spans the diagnostic may have, such as other locations relevant to an error, such as declarartion sites 9740 */ 9741 relatedInformation?: DiagnosticRelatedInformation[]; 9742 /** 9743 * The error code of the diagnostic message. 9744 */ 9745 code?: number; 9746 /** 9747 * The name of the plugin reporting the message. 9748 */ 9749 source?: string; 9750 } 9751 interface DiagnosticWithFileName extends Diagnostic { 9752 /** 9753 * Name of the file the diagnostic is in 9754 */ 9755 fileName: string; 9756 } 9757 /** 9758 * Represents additional spans returned with a diagnostic which are relevant to it 9759 */ 9760 interface DiagnosticRelatedInformation { 9761 /** 9762 * The category of the related information message, e.g. "error", "warning", or "suggestion". 9763 */ 9764 category: string; 9765 /** 9766 * The code used ot identify the related information 9767 */ 9768 code: number; 9769 /** 9770 * Text of related or additional information. 9771 */ 9772 message: string; 9773 /** 9774 * Associated location 9775 */ 9776 span?: FileSpan; 9777 } 9778 interface DiagnosticEventBody { 9779 /** 9780 * The file for which diagnostic information is reported. 9781 */ 9782 file: string; 9783 /** 9784 * An array of diagnostic information items. 9785 */ 9786 diagnostics: Diagnostic[]; 9787 } 9788 type DiagnosticEventKind = "semanticDiag" | "syntaxDiag" | "suggestionDiag"; 9789 /** 9790 * Event message for DiagnosticEventKind event types. 9791 * These events provide syntactic and semantic errors for a file. 9792 */ 9793 interface DiagnosticEvent extends Event { 9794 body?: DiagnosticEventBody; 9795 event: DiagnosticEventKind; 9796 } 9797 interface ConfigFileDiagnosticEventBody { 9798 /** 9799 * The file which trigged the searching and error-checking of the config file 9800 */ 9801 triggerFile: string; 9802 /** 9803 * The name of the found config file. 9804 */ 9805 configFile: string; 9806 /** 9807 * An arry of diagnostic information items for the found config file. 9808 */ 9809 diagnostics: DiagnosticWithFileName[]; 9810 } 9811 /** 9812 * Event message for "configFileDiag" event type. 9813 * This event provides errors for a found config file. 9814 */ 9815 interface ConfigFileDiagnosticEvent extends Event { 9816 body?: ConfigFileDiagnosticEventBody; 9817 event: "configFileDiag"; 9818 } 9819 type ProjectLanguageServiceStateEventName = "projectLanguageServiceState"; 9820 interface ProjectLanguageServiceStateEvent extends Event { 9821 event: ProjectLanguageServiceStateEventName; 9822 body?: ProjectLanguageServiceStateEventBody; 9823 } 9824 interface ProjectLanguageServiceStateEventBody { 9825 /** 9826 * Project name that has changes in the state of language service. 9827 * For configured projects this will be the config file path. 9828 * For external projects this will be the name of the projects specified when project was open. 9829 * For inferred projects this event is not raised. 9830 */ 9831 projectName: string; 9832 /** 9833 * True if language service state switched from disabled to enabled 9834 * and false otherwise. 9835 */ 9836 languageServiceEnabled: boolean; 9837 } 9838 type ProjectsUpdatedInBackgroundEventName = "projectsUpdatedInBackground"; 9839 interface ProjectsUpdatedInBackgroundEvent extends Event { 9840 event: ProjectsUpdatedInBackgroundEventName; 9841 body: ProjectsUpdatedInBackgroundEventBody; 9842 } 9843 interface ProjectsUpdatedInBackgroundEventBody { 9844 /** 9845 * Current set of open files 9846 */ 9847 openFiles: string[]; 9848 } 9849 type ProjectLoadingStartEventName = "projectLoadingStart"; 9850 interface ProjectLoadingStartEvent extends Event { 9851 event: ProjectLoadingStartEventName; 9852 body: ProjectLoadingStartEventBody; 9853 } 9854 interface ProjectLoadingStartEventBody { 9855 /** name of the project */ 9856 projectName: string; 9857 /** reason for loading */ 9858 reason: string; 9859 } 9860 type ProjectLoadingFinishEventName = "projectLoadingFinish"; 9861 interface ProjectLoadingFinishEvent extends Event { 9862 event: ProjectLoadingFinishEventName; 9863 body: ProjectLoadingFinishEventBody; 9864 } 9865 interface ProjectLoadingFinishEventBody { 9866 /** name of the project */ 9867 projectName: string; 9868 } 9869 type SurveyReadyEventName = "surveyReady"; 9870 interface SurveyReadyEvent extends Event { 9871 event: SurveyReadyEventName; 9872 body: SurveyReadyEventBody; 9873 } 9874 interface SurveyReadyEventBody { 9875 /** Name of the survey. This is an internal machine- and programmer-friendly name */ 9876 surveyId: string; 9877 } 9878 type LargeFileReferencedEventName = "largeFileReferenced"; 9879 interface LargeFileReferencedEvent extends Event { 9880 event: LargeFileReferencedEventName; 9881 body: LargeFileReferencedEventBody; 9882 } 9883 interface LargeFileReferencedEventBody { 9884 /** 9885 * name of the large file being loaded 9886 */ 9887 file: string; 9888 /** 9889 * size of the file 9890 */ 9891 fileSize: number; 9892 /** 9893 * max file size allowed on the server 9894 */ 9895 maxFileSize: number; 9896 } 9897 /** 9898 * Arguments for reload request. 9899 */ 9900 interface ReloadRequestArgs extends FileRequestArgs { 9901 /** 9902 * Name of temporary file from which to reload file 9903 * contents. May be same as file. 9904 */ 9905 tmpfile: string; 9906 } 9907 /** 9908 * Reload request message; value of command field is "reload". 9909 * Reload contents of file with name given by the 'file' argument 9910 * from temporary file with name given by the 'tmpfile' argument. 9911 * The two names can be identical. 9912 */ 9913 interface ReloadRequest extends FileRequest { 9914 command: CommandTypes.Reload; 9915 arguments: ReloadRequestArgs; 9916 } 9917 /** 9918 * Response to "reload" request. This is just an acknowledgement, so 9919 * no body field is required. 9920 */ 9921 interface ReloadResponse extends Response { 9922 } 9923 /** 9924 * Arguments for saveto request. 9925 */ 9926 interface SavetoRequestArgs extends FileRequestArgs { 9927 /** 9928 * Name of temporary file into which to save server's view of 9929 * file contents. 9930 */ 9931 tmpfile: string; 9932 } 9933 /** 9934 * Saveto request message; value of command field is "saveto". 9935 * For debugging purposes, save to a temporaryfile (named by 9936 * argument 'tmpfile') the contents of file named by argument 9937 * 'file'. The server does not currently send a response to a 9938 * "saveto" request. 9939 */ 9940 interface SavetoRequest extends FileRequest { 9941 command: CommandTypes.Saveto; 9942 arguments: SavetoRequestArgs; 9943 } 9944 /** 9945 * Arguments for navto request message. 9946 */ 9947 interface NavtoRequestArgs { 9948 /** 9949 * Search term to navigate to from current location; term can 9950 * be '.*' or an identifier prefix. 9951 */ 9952 searchValue: string; 9953 /** 9954 * Optional limit on the number of items to return. 9955 */ 9956 maxResultCount?: number; 9957 /** 9958 * The file for the request (absolute pathname required). 9959 */ 9960 file?: string; 9961 /** 9962 * Optional flag to indicate we want results for just the current file 9963 * or the entire project. 9964 */ 9965 currentFileOnly?: boolean; 9966 projectFileName?: string; 9967 } 9968 /** 9969 * Navto request message; value of command field is "navto". 9970 * Return list of objects giving file locations and symbols that 9971 * match the search term given in argument 'searchTerm'. The 9972 * context for the search is given by the named file. 9973 */ 9974 interface NavtoRequest extends Request { 9975 command: CommandTypes.Navto; 9976 arguments: NavtoRequestArgs; 9977 } 9978 /** 9979 * An item found in a navto response. 9980 */ 9981 interface NavtoItem extends FileSpan { 9982 /** 9983 * The symbol's name. 9984 */ 9985 name: string; 9986 /** 9987 * The symbol's kind (such as 'className' or 'parameterName'). 9988 */ 9989 kind: ScriptElementKind; 9990 /** 9991 * exact, substring, or prefix. 9992 */ 9993 matchKind: string; 9994 /** 9995 * If this was a case sensitive or insensitive match. 9996 */ 9997 isCaseSensitive: boolean; 9998 /** 9999 * Optional modifiers for the kind (such as 'public'). 10000 */ 10001 kindModifiers?: string; 10002 /** 10003 * Name of symbol's container symbol (if any); for example, 10004 * the class name if symbol is a class member. 10005 */ 10006 containerName?: string; 10007 /** 10008 * Kind of symbol's container symbol (if any). 10009 */ 10010 containerKind?: ScriptElementKind; 10011 } 10012 /** 10013 * Navto response message. Body is an array of navto items. Each 10014 * item gives a symbol that matched the search term. 10015 */ 10016 interface NavtoResponse extends Response { 10017 body?: NavtoItem[]; 10018 } 10019 /** 10020 * Arguments for change request message. 10021 */ 10022 interface ChangeRequestArgs extends FormatRequestArgs { 10023 /** 10024 * Optional string to insert at location (file, line, offset). 10025 */ 10026 insertString?: string; 10027 } 10028 /** 10029 * Change request message; value of command field is "change". 10030 * Update the server's view of the file named by argument 'file'. 10031 * Server does not currently send a response to a change request. 10032 */ 10033 interface ChangeRequest extends FileLocationRequest { 10034 command: CommandTypes.Change; 10035 arguments: ChangeRequestArgs; 10036 } 10037 /** 10038 * Response to "brace" request. 10039 */ 10040 interface BraceResponse extends Response { 10041 body?: TextSpan[]; 10042 } 10043 /** 10044 * Brace matching request; value of command field is "brace". 10045 * Return response giving the file locations of matching braces 10046 * found in file at location line, offset. 10047 */ 10048 interface BraceRequest extends FileLocationRequest { 10049 command: CommandTypes.Brace; 10050 } 10051 /** 10052 * NavBar items request; value of command field is "navbar". 10053 * Return response giving the list of navigation bar entries 10054 * extracted from the requested file. 10055 */ 10056 interface NavBarRequest extends FileRequest { 10057 command: CommandTypes.NavBar; 10058 } 10059 /** 10060 * NavTree request; value of command field is "navtree". 10061 * Return response giving the navigation tree of the requested file. 10062 */ 10063 interface NavTreeRequest extends FileRequest { 10064 command: CommandTypes.NavTree; 10065 } 10066 interface NavigationBarItem { 10067 /** 10068 * The item's display text. 10069 */ 10070 text: string; 10071 /** 10072 * The symbol's kind (such as 'className' or 'parameterName'). 10073 */ 10074 kind: ScriptElementKind; 10075 /** 10076 * Optional modifiers for the kind (such as 'public'). 10077 */ 10078 kindModifiers?: string; 10079 /** 10080 * The definition locations of the item. 10081 */ 10082 spans: TextSpan[]; 10083 /** 10084 * Optional children. 10085 */ 10086 childItems?: NavigationBarItem[]; 10087 /** 10088 * Number of levels deep this item should appear. 10089 */ 10090 indent: number; 10091 } 10092 /** protocol.NavigationTree is identical to ts.NavigationTree, except using protocol.TextSpan instead of ts.TextSpan */ 10093 interface NavigationTree { 10094 text: string; 10095 kind: ScriptElementKind; 10096 kindModifiers: string; 10097 spans: TextSpan[]; 10098 nameSpan: TextSpan | undefined; 10099 childItems?: NavigationTree[]; 10100 } 10101 type TelemetryEventName = "telemetry"; 10102 interface TelemetryEvent extends Event { 10103 event: TelemetryEventName; 10104 body: TelemetryEventBody; 10105 } 10106 interface TelemetryEventBody { 10107 telemetryEventName: string; 10108 payload: any; 10109 } 10110 type TypesInstallerInitializationFailedEventName = "typesInstallerInitializationFailed"; 10111 interface TypesInstallerInitializationFailedEvent extends Event { 10112 event: TypesInstallerInitializationFailedEventName; 10113 body: TypesInstallerInitializationFailedEventBody; 10114 } 10115 interface TypesInstallerInitializationFailedEventBody { 10116 message: string; 10117 } 10118 type TypingsInstalledTelemetryEventName = "typingsInstalled"; 10119 interface TypingsInstalledTelemetryEventBody extends TelemetryEventBody { 10120 telemetryEventName: TypingsInstalledTelemetryEventName; 10121 payload: TypingsInstalledTelemetryEventPayload; 10122 } 10123 interface TypingsInstalledTelemetryEventPayload { 10124 /** 10125 * Comma separated list of installed typing packages 10126 */ 10127 installedPackages: string; 10128 /** 10129 * true if install request succeeded, otherwise - false 10130 */ 10131 installSuccess: boolean; 10132 /** 10133 * version of typings installer 10134 */ 10135 typingsInstallerVersion: string; 10136 } 10137 type BeginInstallTypesEventName = "beginInstallTypes"; 10138 type EndInstallTypesEventName = "endInstallTypes"; 10139 interface BeginInstallTypesEvent extends Event { 10140 event: BeginInstallTypesEventName; 10141 body: BeginInstallTypesEventBody; 10142 } 10143 interface EndInstallTypesEvent extends Event { 10144 event: EndInstallTypesEventName; 10145 body: EndInstallTypesEventBody; 10146 } 10147 interface InstallTypesEventBody { 10148 /** 10149 * correlation id to match begin and end events 10150 */ 10151 eventId: number; 10152 /** 10153 * list of packages to install 10154 */ 10155 packages: readonly string[]; 10156 } 10157 interface BeginInstallTypesEventBody extends InstallTypesEventBody { 10158 } 10159 interface EndInstallTypesEventBody extends InstallTypesEventBody { 10160 /** 10161 * true if installation succeeded, otherwise false 10162 */ 10163 success: boolean; 10164 } 10165 interface NavBarResponse extends Response { 10166 body?: NavigationBarItem[]; 10167 } 10168 interface NavTreeResponse extends Response { 10169 body?: NavigationTree; 10170 } 10171 interface CallHierarchyItem { 10172 name: string; 10173 kind: ScriptElementKind; 10174 kindModifiers?: string; 10175 file: string; 10176 span: TextSpan; 10177 selectionSpan: TextSpan; 10178 containerName?: string; 10179 } 10180 interface CallHierarchyIncomingCall { 10181 from: CallHierarchyItem; 10182 fromSpans: TextSpan[]; 10183 } 10184 interface CallHierarchyOutgoingCall { 10185 to: CallHierarchyItem; 10186 fromSpans: TextSpan[]; 10187 } 10188 interface PrepareCallHierarchyRequest extends FileLocationRequest { 10189 command: CommandTypes.PrepareCallHierarchy; 10190 } 10191 interface PrepareCallHierarchyResponse extends Response { 10192 readonly body: CallHierarchyItem | CallHierarchyItem[]; 10193 } 10194 interface ProvideCallHierarchyIncomingCallsRequest extends FileLocationRequest { 10195 command: CommandTypes.ProvideCallHierarchyIncomingCalls; 10196 } 10197 interface ProvideCallHierarchyIncomingCallsResponse extends Response { 10198 readonly body: CallHierarchyIncomingCall[]; 10199 } 10200 interface ProvideCallHierarchyOutgoingCallsRequest extends FileLocationRequest { 10201 command: CommandTypes.ProvideCallHierarchyOutgoingCalls; 10202 } 10203 interface ProvideCallHierarchyOutgoingCallsResponse extends Response { 10204 readonly body: CallHierarchyOutgoingCall[]; 10205 } 10206 enum IndentStyle { 10207 None = "None", 10208 Block = "Block", 10209 Smart = "Smart" 10210 } 10211 enum SemicolonPreference { 10212 Ignore = "ignore", 10213 Insert = "insert", 10214 Remove = "remove" 10215 } 10216 interface EditorSettings { 10217 baseIndentSize?: number; 10218 indentSize?: number; 10219 tabSize?: number; 10220 newLineCharacter?: string; 10221 convertTabsToSpaces?: boolean; 10222 indentStyle?: IndentStyle | ts.IndentStyle; 10223 trimTrailingWhitespace?: boolean; 10224 } 10225 interface FormatCodeSettings extends EditorSettings { 10226 insertSpaceAfterCommaDelimiter?: boolean; 10227 insertSpaceAfterSemicolonInForStatements?: boolean; 10228 insertSpaceBeforeAndAfterBinaryOperators?: boolean; 10229 insertSpaceAfterConstructor?: boolean; 10230 insertSpaceAfterKeywordsInControlFlowStatements?: boolean; 10231 insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean; 10232 insertSpaceAfterOpeningAndBeforeClosingEmptyBraces?: boolean; 10233 insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean; 10234 insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean; 10235 insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; 10236 insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean; 10237 insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; 10238 insertSpaceAfterTypeAssertion?: boolean; 10239 insertSpaceBeforeFunctionParenthesis?: boolean; 10240 placeOpenBraceOnNewLineForFunctions?: boolean; 10241 placeOpenBraceOnNewLineForControlBlocks?: boolean; 10242 insertSpaceBeforeTypeAnnotation?: boolean; 10243 semicolons?: SemicolonPreference; 10244 } 10245 interface UserPreferences { 10246 readonly disableSuggestions?: boolean; 10247 readonly quotePreference?: "auto" | "double" | "single"; 10248 /** 10249 * If enabled, TypeScript will search through all external modules' exports and add them to the completions list. 10250 * This affects lone identifier completions but not completions on the right hand side of `obj.`. 10251 */ 10252 readonly includeCompletionsForModuleExports?: boolean; 10253 /** 10254 * Enables auto-import-style completions on partially-typed import statements. E.g., allows 10255 * `import write|` to be completed to `import { writeFile } from "fs"`. 10256 */ 10257 readonly includeCompletionsForImportStatements?: boolean; 10258 /** 10259 * Allows completions to be formatted with snippet text, indicated by `CompletionItem["isSnippet"]`. 10260 */ 10261 readonly includeCompletionsWithSnippetText?: boolean; 10262 /** 10263 * If enabled, the completion list will include completions with invalid identifier names. 10264 * For those entries, The `insertText` and `replacementSpan` properties will be set to change from `.x` property access to `["x"]`. 10265 */ 10266 readonly includeCompletionsWithInsertText?: boolean; 10267 /** 10268 * Unless this option is `false`, or `includeCompletionsWithInsertText` is not enabled, 10269 * member completion lists triggered with `.` will include entries on potentially-null and potentially-undefined 10270 * values, with insertion text to replace preceding `.` tokens with `?.`. 10271 */ 10272 readonly includeAutomaticOptionalChainCompletions?: boolean; 10273 /** 10274 * If enabled, completions for class members (e.g. methods and properties) will include 10275 * a whole declaration for the member. 10276 * E.g., `class A { f| }` could be completed to `class A { foo(): number {} }`, instead of 10277 * `class A { foo }`. 10278 */ 10279 readonly includeCompletionsWithClassMemberSnippets?: boolean; 10280 /** 10281 * If enabled, object literal methods will have a method declaration completion entry in addition 10282 * to the regular completion entry containing just the method name. 10283 * E.g., `const objectLiteral: T = { f| }` could be completed to `const objectLiteral: T = { foo(): void {} }`, 10284 * in addition to `const objectLiteral: T = { foo }`. 10285 */ 10286 readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; 10287 /** 10288 * Indicates whether {@link CompletionEntry.labelDetails completion entry label details} are supported. 10289 * If not, contents of `labelDetails` may be included in the {@link CompletionEntry.name} property. 10290 */ 10291 readonly useLabelDetailsInCompletionEntries?: boolean; 10292 readonly allowIncompleteCompletions?: boolean; 10293 readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; 10294 /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ 10295 readonly importModuleSpecifierEnding?: "auto" | "minimal" | "index" | "js"; 10296 readonly allowTextChangesInNewFiles?: boolean; 10297 readonly lazyConfiguredProjectsFromExternalProject?: boolean; 10298 readonly providePrefixAndSuffixTextForRename?: boolean; 10299 readonly provideRefactorNotApplicableReason?: boolean; 10300 readonly allowRenameOfImportPath?: boolean; 10301 readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; 10302 readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; 10303 readonly displayPartsForJSDoc?: boolean; 10304 readonly generateReturnInDocTemplate?: boolean; 10305 readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; 10306 readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; 10307 readonly includeInlayFunctionParameterTypeHints?: boolean; 10308 readonly includeInlayVariableTypeHints?: boolean; 10309 readonly includeInlayVariableTypeHintsWhenTypeMatchesName?: boolean; 10310 readonly includeInlayPropertyDeclarationTypeHints?: boolean; 10311 readonly includeInlayFunctionLikeReturnTypeHints?: boolean; 10312 readonly includeInlayEnumMemberValueHints?: boolean; 10313 readonly autoImportFileExcludePatterns?: string[]; 10314 /** 10315 * Indicates whether {@link ReferencesResponseItem.lineText} is supported. 10316 */ 10317 readonly disableLineTextInReferences?: boolean; 10318 } 10319 interface CompilerOptions { 10320 allowJs?: boolean; 10321 allowSyntheticDefaultImports?: boolean; 10322 allowUnreachableCode?: boolean; 10323 allowUnusedLabels?: boolean; 10324 alwaysStrict?: boolean; 10325 baseUrl?: string; 10326 charset?: string; 10327 checkJs?: boolean; 10328 declaration?: boolean; 10329 declarationDir?: string; 10330 disableSizeLimit?: boolean; 10331 downlevelIteration?: boolean; 10332 emitBOM?: boolean; 10333 emitDecoratorMetadata?: boolean; 10334 experimentalDecorators?: boolean; 10335 forceConsistentCasingInFileNames?: boolean; 10336 importHelpers?: boolean; 10337 inlineSourceMap?: boolean; 10338 inlineSources?: boolean; 10339 isolatedModules?: boolean; 10340 jsx?: JsxEmit | ts.JsxEmit; 10341 lib?: string[]; 10342 locale?: string; 10343 mapRoot?: string; 10344 maxNodeModuleJsDepth?: number; 10345 module?: ModuleKind | ts.ModuleKind; 10346 moduleResolution?: ModuleResolutionKind | ts.ModuleResolutionKind; 10347 newLine?: NewLineKind | ts.NewLineKind; 10348 noEmit?: boolean; 10349 noEmitHelpers?: boolean; 10350 noEmitOnError?: boolean; 10351 noErrorTruncation?: boolean; 10352 noFallthroughCasesInSwitch?: boolean; 10353 noImplicitAny?: boolean; 10354 noImplicitReturns?: boolean; 10355 noImplicitThis?: boolean; 10356 noUnusedLocals?: boolean; 10357 noUnusedParameters?: boolean; 10358 noImplicitUseStrict?: boolean; 10359 noLib?: boolean; 10360 noResolve?: boolean; 10361 out?: string; 10362 outDir?: string; 10363 outFile?: string; 10364 paths?: MapLike<string[]>; 10365 plugins?: PluginImport[]; 10366 preserveConstEnums?: boolean; 10367 preserveSymlinks?: boolean; 10368 project?: string; 10369 reactNamespace?: string; 10370 removeComments?: boolean; 10371 references?: ProjectReference[]; 10372 rootDir?: string; 10373 rootDirs?: string[]; 10374 skipLibCheck?: boolean; 10375 skipDefaultLibCheck?: boolean; 10376 sourceMap?: boolean; 10377 sourceRoot?: string; 10378 strict?: boolean; 10379 strictNullChecks?: boolean; 10380 suppressExcessPropertyErrors?: boolean; 10381 suppressImplicitAnyIndexErrors?: boolean; 10382 useDefineForClassFields?: boolean; 10383 target?: ScriptTarget | ts.ScriptTarget; 10384 traceResolution?: boolean; 10385 resolveJsonModule?: boolean; 10386 types?: string[]; 10387 /** Paths used to used to compute primary types search locations */ 10388 typeRoots?: string[]; 10389 ets?: EtsOptions; 10390 packageManagerType?: string; 10391 emitNodeModulesFiles?: boolean; 10392 [option: string]: CompilerOptionsValue | undefined; 10393 } 10394 enum JsxEmit { 10395 None = "None", 10396 Preserve = "Preserve", 10397 ReactNative = "ReactNative", 10398 React = "React" 10399 } 10400 enum ModuleKind { 10401 None = "None", 10402 CommonJS = "CommonJS", 10403 AMD = "AMD", 10404 UMD = "UMD", 10405 System = "System", 10406 ES6 = "ES6", 10407 ES2015 = "ES2015", 10408 ESNext = "ESNext" 10409 } 10410 enum ModuleResolutionKind { 10411 Classic = "Classic", 10412 Node = "Node" 10413 } 10414 enum NewLineKind { 10415 Crlf = "Crlf", 10416 Lf = "Lf" 10417 } 10418 enum ScriptTarget { 10419 ES3 = "ES3", 10420 ES5 = "ES5", 10421 ES6 = "ES6", 10422 ES2015 = "ES2015", 10423 ES2016 = "ES2016", 10424 ES2017 = "ES2017", 10425 ES2018 = "ES2018", 10426 ES2019 = "ES2019", 10427 ES2020 = "ES2020", 10428 ES2021 = "ES2021", 10429 ES2022 = "ES2022", 10430 ESNext = "ESNext" 10431 } 10432 enum ClassificationType { 10433 comment = 1, 10434 identifier = 2, 10435 keyword = 3, 10436 numericLiteral = 4, 10437 operator = 5, 10438 stringLiteral = 6, 10439 regularExpressionLiteral = 7, 10440 whiteSpace = 8, 10441 text = 9, 10442 punctuation = 10, 10443 className = 11, 10444 enumName = 12, 10445 interfaceName = 13, 10446 moduleName = 14, 10447 typeParameterName = 15, 10448 typeAliasName = 16, 10449 parameterName = 17, 10450 docCommentTagName = 18, 10451 jsxOpenTagName = 19, 10452 jsxCloseTagName = 20, 10453 jsxSelfClosingTagName = 21, 10454 jsxAttribute = 22, 10455 jsxText = 23, 10456 jsxAttributeStringLiteralValue = 24, 10457 bigintLiteral = 25 10458 } 10459} 10460declare namespace ts.server { 10461 interface ScriptInfoVersion { 10462 svc: number; 10463 text: number; 10464 } 10465 function isDynamicFileName(fileName: NormalizedPath): boolean; 10466 class ScriptInfo { 10467 private readonly host; 10468 readonly fileName: NormalizedPath; 10469 readonly scriptKind: ScriptKind; 10470 readonly hasMixedContent: boolean; 10471 readonly path: Path; 10472 /** 10473 * All projects that include this file 10474 */ 10475 readonly containingProjects: Project[]; 10476 private formatSettings; 10477 private preferences; 10478 private textStorage; 10479 constructor(host: ServerHost, fileName: NormalizedPath, scriptKind: ScriptKind, hasMixedContent: boolean, path: Path, initialVersion?: ScriptInfoVersion); 10480 isScriptOpen(): boolean; 10481 open(newText: string): void; 10482 close(fileExists?: boolean): void; 10483 getSnapshot(): IScriptSnapshot; 10484 private ensureRealPath; 10485 getFormatCodeSettings(): FormatCodeSettings | undefined; 10486 getPreferences(): protocol.UserPreferences | undefined; 10487 attachToProject(project: Project): boolean; 10488 isAttached(project: Project): boolean; 10489 detachFromProject(project: Project): void; 10490 detachAllProjects(): void; 10491 getDefaultProject(): Project; 10492 registerFileUpdate(): void; 10493 setOptions(formatSettings: FormatCodeSettings, preferences: protocol.UserPreferences | undefined): void; 10494 getLatestVersion(): string; 10495 saveTo(fileName: string): void; 10496 reloadFromFile(tempFileName?: NormalizedPath): boolean; 10497 editContent(start: number, end: number, newText: string): void; 10498 markContainingProjectsAsDirty(): void; 10499 isOrphan(): boolean; 10500 /** 10501 * @param line 1 based index 10502 */ 10503 lineToTextSpan(line: number): TextSpan; 10504 /** 10505 * @param line 1 based index 10506 * @param offset 1 based index 10507 */ 10508 lineOffsetToPosition(line: number, offset: number): number; 10509 positionToLineOffset(position: number): protocol.Location; 10510 isJavaScript(): boolean; 10511 } 10512} 10513declare namespace ts.server { 10514 interface InstallPackageOptionsWithProject extends InstallPackageOptions { 10515 projectName: string; 10516 projectRootPath: Path; 10517 } 10518 interface ITypingsInstaller { 10519 isKnownTypesPackageName(name: string): boolean; 10520 installPackage(options: InstallPackageOptionsWithProject): Promise<ApplyCodeActionCommandResult>; 10521 enqueueInstallTypingsRequest(p: Project, typeAcquisition: TypeAcquisition, unresolvedImports: SortedReadonlyArray<string> | undefined): void; 10522 attach(projectService: ProjectService): void; 10523 onProjectClosed(p: Project): void; 10524 readonly globalTypingsCacheLocation: string | undefined; 10525 } 10526 const nullTypingsInstaller: ITypingsInstaller; 10527} 10528declare namespace ts.server { 10529 enum ProjectKind { 10530 Inferred = 0, 10531 Configured = 1, 10532 External = 2, 10533 AutoImportProvider = 3, 10534 Auxiliary = 4 10535 } 10536 function allRootFilesAreJsOrDts(project: Project): boolean; 10537 function allFilesAreJsOrDts(project: Project): boolean; 10538 interface PluginCreateInfo { 10539 project: Project; 10540 languageService: LanguageService; 10541 languageServiceHost: LanguageServiceHost; 10542 serverHost: ServerHost; 10543 session?: Session<unknown>; 10544 config: any; 10545 } 10546 interface PluginModule { 10547 create(createInfo: PluginCreateInfo): LanguageService; 10548 getExternalFiles?(proj: Project): string[]; 10549 onConfigurationChanged?(config: any): void; 10550 } 10551 interface PluginModuleWithName { 10552 name: string; 10553 module: PluginModule; 10554 } 10555 type PluginModuleFactory = (mod: { 10556 typescript: typeof ts; 10557 }) => PluginModule; 10558 abstract class Project implements LanguageServiceHost, ModuleResolutionHost { 10559 readonly projectName: string; 10560 readonly projectKind: ProjectKind; 10561 readonly projectService: ProjectService; 10562 private documentRegistry; 10563 private compilerOptions; 10564 compileOnSaveEnabled: boolean; 10565 protected watchOptions: WatchOptions | undefined; 10566 private rootFiles; 10567 private rootFilesMap; 10568 private program; 10569 private externalFiles; 10570 private missingFilesMap; 10571 private generatedFilesMap; 10572 protected languageService: LanguageService; 10573 languageServiceEnabled: boolean; 10574 readonly trace?: (s: string) => void; 10575 readonly realpath?: (path: string) => string; 10576 private builderState; 10577 /** 10578 * Set of files names that were updated since the last call to getChangesSinceVersion. 10579 */ 10580 private updatedFileNames; 10581 /** 10582 * Set of files that was returned from the last call to getChangesSinceVersion. 10583 */ 10584 private lastReportedFileNames; 10585 /** 10586 * Last version that was reported. 10587 */ 10588 private lastReportedVersion; 10589 /** 10590 * Current project's program version. (incremented everytime new program is created that is not complete reuse from the old one) 10591 * This property is changed in 'updateGraph' based on the set of files in program 10592 */ 10593 private projectProgramVersion; 10594 /** 10595 * Current version of the project state. It is changed when: 10596 * - new root file was added/removed 10597 * - edit happen in some file that is currently included in the project. 10598 * This property is different from projectStructureVersion since in most cases edits don't affect set of files in the project 10599 */ 10600 private projectStateVersion; 10601 protected projectErrors: Diagnostic[] | undefined; 10602 protected isInitialLoadPending: () => boolean; 10603 private readonly cancellationToken; 10604 isNonTsProject(): boolean; 10605 isJsOnlyProject(): boolean; 10606 static resolveModule(moduleName: string, initialDir: string, host: ServerHost, log: (message: string) => void, logErrors?: (message: string) => void): {} | undefined; 10607 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 10608 getJsDocNodeCheckedConfig(jsDocFileCheckedInfo: FileCheckModuleInfo, sourceFilePath: string): JsDocNodeCheckConfig; 10609 getJsDocNodeConditionCheckedResult(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 10610 getTagNameNeededCheckByFile(filePath: string): TagCheckParam; 10611 getExpressionCheckedResultsByFile?(filePath: string, jsDocs: JSDoc[]): ConditionCheckResult; 10612 isKnownTypesPackageName(name: string): boolean; 10613 installPackage(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>; 10614 private get typingsCache(); 10615 getCompilationSettings(): CompilerOptions; 10616 getCompilerOptions(): CompilerOptions; 10617 getNewLine(): string; 10618 getProjectVersion(): string; 10619 getProjectReferences(): readonly ProjectReference[] | undefined; 10620 getScriptFileNames(): string[]; 10621 private getOrCreateScriptInfoAndAttachToProject; 10622 getScriptKind(fileName: string): ScriptKind; 10623 getScriptVersion(filename: string): string; 10624 getScriptSnapshot(filename: string): IScriptSnapshot | undefined; 10625 getCancellationToken(): HostCancellationToken; 10626 getCurrentDirectory(): string; 10627 getDefaultLibFileName(): string; 10628 useCaseSensitiveFileNames(): boolean; 10629 readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 10630 readFile(fileName: string): string | undefined; 10631 writeFile(fileName: string, content: string): void; 10632 fileExists(file: string): boolean; 10633 resolveModuleNames(moduleNames: string[], containingFile: string, reusedNames?: string[], redirectedReference?: ResolvedProjectReference, _options?: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModuleFull | undefined)[]; 10634 getModuleResolutionCache(): ModuleResolutionCache | undefined; 10635 getResolvedModuleWithFailedLookupLocationsFromCache(moduleName: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; 10636 resolveTypeReferenceDirectives(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference?: ResolvedProjectReference, _options?: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 10637 directoryExists(path: string): boolean; 10638 getDirectories(path: string): string[]; 10639 log(s: string): void; 10640 error(s: string): void; 10641 private setInternalCompilerOptionsForEmittingJsFiles; 10642 /** 10643 * Get the errors that dont have any file name associated 10644 */ 10645 getGlobalProjectErrors(): readonly Diagnostic[]; 10646 /** 10647 * Get all the project errors 10648 */ 10649 getAllProjectErrors(): readonly Diagnostic[]; 10650 setProjectErrors(projectErrors: Diagnostic[] | undefined): void; 10651 getLanguageService(ensureSynchronized?: boolean): LanguageService; 10652 getCompileOnSaveAffectedFileList(scriptInfo: ScriptInfo): string[]; 10653 /** 10654 * Returns true if emit was conducted 10655 */ 10656 emitFile(scriptInfo: ScriptInfo, writeFile: (path: string, data: string, writeByteOrderMark?: boolean) => void): EmitResult; 10657 enableLanguageService(): void; 10658 disableLanguageService(lastFileExceededProgramSize?: string): void; 10659 getProjectName(): string; 10660 protected removeLocalTypingsFromTypeAcquisition(newTypeAcquisition: TypeAcquisition): TypeAcquisition; 10661 getExternalFiles(): SortedReadonlyArray<string>; 10662 getSourceFile(path: Path): SourceFile | undefined; 10663 close(): void; 10664 private detachScriptInfoIfNotRoot; 10665 isClosed(): boolean; 10666 hasRoots(): boolean; 10667 getRootFiles(): NormalizedPath[]; 10668 getRootScriptInfos(): ScriptInfo[]; 10669 getScriptInfos(): ScriptInfo[]; 10670 getExcludedFiles(): readonly NormalizedPath[]; 10671 getFileNames(excludeFilesFromExternalLibraries?: boolean, excludeConfigFiles?: boolean): NormalizedPath[]; 10672 hasConfigFile(configFilePath: NormalizedPath): boolean; 10673 containsScriptInfo(info: ScriptInfo): boolean; 10674 containsFile(filename: NormalizedPath, requireOpen?: boolean): boolean; 10675 isRoot(info: ScriptInfo): boolean; 10676 addRoot(info: ScriptInfo, fileName?: NormalizedPath): void; 10677 addMissingFileRoot(fileName: NormalizedPath): void; 10678 removeFile(info: ScriptInfo, fileExists: boolean, detachFromProject: boolean): void; 10679 registerFileUpdate(fileName: string): void; 10680 markAsDirty(): void; 10681 /** 10682 * Updates set of files that contribute to this project 10683 * @returns: true if set of files in the project stays the same and false - otherwise. 10684 */ 10685 updateGraph(): boolean; 10686 protected removeExistingTypings(include: string[]): string[]; 10687 private updateGraphWorker; 10688 private detachScriptInfoFromProject; 10689 private addMissingFileWatcher; 10690 private isWatchedMissingFile; 10691 private createGeneratedFileWatcher; 10692 private isValidGeneratedFileWatcher; 10693 private clearGeneratedFileWatch; 10694 getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo | undefined; 10695 getScriptInfo(uncheckedFileName: string): ScriptInfo | undefined; 10696 filesToString(writeProjectFileNames: boolean): string; 10697 setCompilerOptions(compilerOptions: CompilerOptions): void; 10698 setTypeAcquisition(newTypeAcquisition: TypeAcquisition | undefined): void; 10699 getTypeAcquisition(): TypeAcquisition; 10700 protected removeRoot(info: ScriptInfo): void; 10701 protected enableGlobalPlugins(options: CompilerOptions, pluginConfigOverrides: Map<any> | undefined): void; 10702 protected enablePlugin(pluginConfigEntry: PluginImport, searchPaths: string[], pluginConfigOverrides: Map<any> | undefined): void; 10703 private enableProxy; 10704 /** Starts a new check for diagnostics. Call this if some file has updated that would cause diagnostics to be changed. */ 10705 refreshDiagnostics(): void; 10706 } 10707 /** 10708 * If a file is opened and no tsconfig (or jsconfig) is found, 10709 * the file and its imports/references are put into an InferredProject. 10710 */ 10711 class InferredProject extends Project { 10712 private _isJsInferredProject; 10713 toggleJsInferredProject(isJsInferredProject: boolean): void; 10714 setCompilerOptions(options?: CompilerOptions): void; 10715 /** this is canonical project root path */ 10716 readonly projectRootPath: string | undefined; 10717 addRoot(info: ScriptInfo): void; 10718 removeRoot(info: ScriptInfo): void; 10719 isProjectWithSingleRoot(): boolean; 10720 close(): void; 10721 getTypeAcquisition(): TypeAcquisition; 10722 } 10723 class AutoImportProviderProject extends Project { 10724 private hostProject; 10725 private rootFileNames; 10726 isOrphan(): boolean; 10727 updateGraph(): boolean; 10728 hasRoots(): boolean; 10729 markAsDirty(): void; 10730 getScriptFileNames(): string[]; 10731 getLanguageService(): never; 10732 getModuleResolutionHostForAutoImportProvider(): never; 10733 getProjectReferences(): readonly ProjectReference[] | undefined; 10734 getTypeAcquisition(): TypeAcquisition; 10735 } 10736 /** 10737 * If a file is opened, the server will look for a tsconfig (or jsconfig) 10738 * and if successful create a ConfiguredProject for it. 10739 * Otherwise it will create an InferredProject. 10740 */ 10741 class ConfiguredProject extends Project { 10742 readonly canonicalConfigFilePath: NormalizedPath; 10743 /** Ref count to the project when opened from external project */ 10744 private externalProjectRefCount; 10745 private projectReferences; 10746 /** 10747 * If the project has reload from disk pending, it reloads (and then updates graph as part of that) instead of just updating the graph 10748 * @returns: true if set of files in the project stays the same and false - otherwise. 10749 */ 10750 updateGraph(): boolean; 10751 getConfigFilePath(): NormalizedPath; 10752 getProjectReferences(): readonly ProjectReference[] | undefined; 10753 updateReferences(refs: readonly ProjectReference[] | undefined): void; 10754 /** 10755 * Get the errors that dont have any file name associated 10756 */ 10757 getGlobalProjectErrors(): readonly Diagnostic[]; 10758 /** 10759 * Get all the project errors 10760 */ 10761 getAllProjectErrors(): readonly Diagnostic[]; 10762 setProjectErrors(projectErrors: Diagnostic[]): void; 10763 close(): void; 10764 getEffectiveTypeRoots(): string[]; 10765 } 10766 /** 10767 * Project whose configuration is handled externally, such as in a '.csproj'. 10768 * These are created only if a host explicitly calls `openExternalProject`. 10769 */ 10770 class ExternalProject extends Project { 10771 externalProjectName: string; 10772 compileOnSaveEnabled: boolean; 10773 excludedFiles: readonly NormalizedPath[]; 10774 updateGraph(): boolean; 10775 getExcludedFiles(): readonly NormalizedPath[]; 10776 } 10777} 10778declare namespace ts.server { 10779 export const maxProgramSizeForNonTsFiles: number; 10780 export const ProjectsUpdatedInBackgroundEvent = "projectsUpdatedInBackground"; 10781 export const ProjectLoadingStartEvent = "projectLoadingStart"; 10782 export const ProjectLoadingFinishEvent = "projectLoadingFinish"; 10783 export const LargeFileReferencedEvent = "largeFileReferenced"; 10784 export const ConfigFileDiagEvent = "configFileDiag"; 10785 export const ProjectLanguageServiceStateEvent = "projectLanguageServiceState"; 10786 export const ProjectInfoTelemetryEvent = "projectInfo"; 10787 export const OpenFileInfoTelemetryEvent = "openFileInfo"; 10788 export interface ProjectsUpdatedInBackgroundEvent { 10789 eventName: typeof ProjectsUpdatedInBackgroundEvent; 10790 data: { 10791 openFiles: string[]; 10792 }; 10793 } 10794 export interface ProjectLoadingStartEvent { 10795 eventName: typeof ProjectLoadingStartEvent; 10796 data: { 10797 project: Project; 10798 reason: string; 10799 }; 10800 } 10801 export interface ProjectLoadingFinishEvent { 10802 eventName: typeof ProjectLoadingFinishEvent; 10803 data: { 10804 project: Project; 10805 }; 10806 } 10807 export interface LargeFileReferencedEvent { 10808 eventName: typeof LargeFileReferencedEvent; 10809 data: { 10810 file: string; 10811 fileSize: number; 10812 maxFileSize: number; 10813 }; 10814 } 10815 export interface ConfigFileDiagEvent { 10816 eventName: typeof ConfigFileDiagEvent; 10817 data: { 10818 triggerFile: string; 10819 configFileName: string; 10820 diagnostics: readonly Diagnostic[]; 10821 }; 10822 } 10823 export interface ProjectLanguageServiceStateEvent { 10824 eventName: typeof ProjectLanguageServiceStateEvent; 10825 data: { 10826 project: Project; 10827 languageServiceEnabled: boolean; 10828 }; 10829 } 10830 /** This will be converted to the payload of a protocol.TelemetryEvent in session.defaultEventHandler. */ 10831 export interface ProjectInfoTelemetryEvent { 10832 readonly eventName: typeof ProjectInfoTelemetryEvent; 10833 readonly data: ProjectInfoTelemetryEventData; 10834 } 10835 export interface ProjectInfoTelemetryEventData { 10836 /** Cryptographically secure hash of project file location. */ 10837 readonly projectId: string; 10838 /** Count of file extensions seen in the project. */ 10839 readonly fileStats: FileStats; 10840 /** 10841 * Any compiler options that might contain paths will be taken out. 10842 * Enum compiler options will be converted to strings. 10843 */ 10844 readonly compilerOptions: CompilerOptions; 10845 readonly extends: boolean | undefined; 10846 readonly files: boolean | undefined; 10847 readonly include: boolean | undefined; 10848 readonly exclude: boolean | undefined; 10849 readonly compileOnSave: boolean; 10850 readonly typeAcquisition: ProjectInfoTypeAcquisitionData; 10851 readonly configFileName: "tsconfig.json" | "jsconfig.json" | "other"; 10852 readonly projectType: "external" | "configured"; 10853 readonly languageServiceEnabled: boolean; 10854 /** TypeScript version used by the server. */ 10855 readonly version: string; 10856 } 10857 /** 10858 * Info that we may send about a file that was just opened. 10859 * Info about a file will only be sent once per session, even if the file changes in ways that might affect the info. 10860 * Currently this is only sent for '.js' files. 10861 */ 10862 export interface OpenFileInfoTelemetryEvent { 10863 readonly eventName: typeof OpenFileInfoTelemetryEvent; 10864 readonly data: OpenFileInfoTelemetryEventData; 10865 } 10866 export interface OpenFileInfoTelemetryEventData { 10867 readonly info: OpenFileInfo; 10868 } 10869 export interface ProjectInfoTypeAcquisitionData { 10870 readonly enable: boolean | undefined; 10871 readonly include: boolean; 10872 readonly exclude: boolean; 10873 } 10874 export interface FileStats { 10875 readonly js: number; 10876 readonly jsSize?: number; 10877 readonly jsx: number; 10878 readonly jsxSize?: number; 10879 readonly ts: number; 10880 readonly tsSize?: number; 10881 readonly tsx: number; 10882 readonly tsxSize?: number; 10883 readonly dts: number; 10884 readonly dtsSize?: number; 10885 readonly deferred: number; 10886 readonly deferredSize?: number; 10887 readonly ets: number; 10888 readonly etsSize?: number; 10889 readonly dets: number; 10890 readonly detsSize?: number; 10891 } 10892 export interface OpenFileInfo { 10893 readonly checkJs: boolean; 10894 } 10895 export type ProjectServiceEvent = LargeFileReferencedEvent | ProjectsUpdatedInBackgroundEvent | ProjectLoadingStartEvent | ProjectLoadingFinishEvent | ConfigFileDiagEvent | ProjectLanguageServiceStateEvent | ProjectInfoTelemetryEvent | OpenFileInfoTelemetryEvent; 10896 export type ProjectServiceEventHandler = (event: ProjectServiceEvent) => void; 10897 export interface SafeList { 10898 [name: string]: { 10899 match: RegExp; 10900 exclude?: (string | number)[][]; 10901 types?: string[]; 10902 }; 10903 } 10904 export interface TypesMapFile { 10905 typesMap: SafeList; 10906 simpleMap: { 10907 [libName: string]: string; 10908 }; 10909 } 10910 export function convertFormatOptions(protocolOptions: protocol.FormatCodeSettings): FormatCodeSettings; 10911 export function convertCompilerOptions(protocolOptions: protocol.ExternalProjectCompilerOptions): CompilerOptions & protocol.CompileOnSaveMixin; 10912 export function convertWatchOptions(protocolOptions: protocol.ExternalProjectCompilerOptions, currentDirectory?: string): WatchOptionsAndErrors | undefined; 10913 export function convertTypeAcquisition(protocolOptions: protocol.InferredProjectCompilerOptions): TypeAcquisition | undefined; 10914 export function tryConvertScriptKindName(scriptKindName: protocol.ScriptKindName | ScriptKind): ScriptKind; 10915 export function convertScriptKindName(scriptKindName: protocol.ScriptKindName): ScriptKind.Unknown | ScriptKind.JS | ScriptKind.JSX | ScriptKind.TS | ScriptKind.TSX | ScriptKind.ETS; 10916 export interface HostConfiguration { 10917 formatCodeOptions: FormatCodeSettings; 10918 preferences: protocol.UserPreferences; 10919 hostInfo: string; 10920 extraFileExtensions?: FileExtensionInfo[]; 10921 watchOptions?: WatchOptions; 10922 } 10923 export interface OpenConfiguredProjectResult { 10924 configFileName?: NormalizedPath; 10925 configFileErrors?: readonly Diagnostic[]; 10926 } 10927 export interface ProjectServiceOptions { 10928 host: ServerHost; 10929 logger: Logger; 10930 cancellationToken: HostCancellationToken; 10931 useSingleInferredProject: boolean; 10932 useInferredProjectPerProjectRoot: boolean; 10933 typingsInstaller: ITypingsInstaller; 10934 eventHandler?: ProjectServiceEventHandler; 10935 suppressDiagnosticEvents?: boolean; 10936 throttleWaitMilliseconds?: number; 10937 globalPlugins?: readonly string[]; 10938 pluginProbeLocations?: readonly string[]; 10939 allowLocalPluginLoads?: boolean; 10940 typesMapLocation?: string; 10941 /** @deprecated use serverMode instead */ 10942 syntaxOnly?: boolean; 10943 serverMode?: LanguageServiceMode; 10944 session: Session<unknown> | undefined; 10945 } 10946 export interface WatchOptionsAndErrors { 10947 watchOptions: WatchOptions; 10948 errors: Diagnostic[] | undefined; 10949 } 10950 export class ProjectService { 10951 private readonly nodeModulesWatchers; 10952 /** 10953 * Contains all the deleted script info's version information so that 10954 * it does not reset when creating script info again 10955 * (and could have potentially collided with version where contents mismatch) 10956 */ 10957 private readonly filenameToScriptInfoVersion; 10958 private readonly allJsFilesForOpenFileTelemetry; 10959 /** 10960 * maps external project file name to list of config files that were the part of this project 10961 */ 10962 private readonly externalProjectToConfiguredProjectMap; 10963 /** 10964 * external projects (configuration and list of root files is not controlled by tsserver) 10965 */ 10966 readonly externalProjects: ExternalProject[]; 10967 /** 10968 * projects built from openFileRoots 10969 */ 10970 readonly inferredProjects: InferredProject[]; 10971 /** 10972 * projects specified by a tsconfig.json file 10973 */ 10974 readonly configuredProjects: Map<ConfiguredProject>; 10975 /** 10976 * Open files: with value being project root path, and key being Path of the file that is open 10977 */ 10978 readonly openFiles: Map<NormalizedPath | undefined>; 10979 /** 10980 * Map of open files that are opened without complete path but have projectRoot as current directory 10981 */ 10982 private readonly openFilesWithNonRootedDiskPath; 10983 private compilerOptionsForInferredProjects; 10984 private compilerOptionsForInferredProjectsPerProjectRoot; 10985 private watchOptionsForInferredProjects; 10986 private watchOptionsForInferredProjectsPerProjectRoot; 10987 private typeAcquisitionForInferredProjects; 10988 private typeAcquisitionForInferredProjectsPerProjectRoot; 10989 /** 10990 * Project size for configured or external projects 10991 */ 10992 private readonly projectToSizeMap; 10993 private readonly hostConfiguration; 10994 private safelist; 10995 private readonly legacySafelist; 10996 private pendingProjectUpdates; 10997 readonly currentDirectory: NormalizedPath; 10998 readonly toCanonicalFileName: (f: string) => string; 10999 readonly host: ServerHost; 11000 readonly logger: Logger; 11001 readonly cancellationToken: HostCancellationToken; 11002 readonly useSingleInferredProject: boolean; 11003 readonly useInferredProjectPerProjectRoot: boolean; 11004 readonly typingsInstaller: ITypingsInstaller; 11005 private readonly globalCacheLocationDirectoryPath; 11006 readonly throttleWaitMilliseconds?: number; 11007 private readonly eventHandler?; 11008 private readonly suppressDiagnosticEvents?; 11009 readonly globalPlugins: readonly string[]; 11010 readonly pluginProbeLocations: readonly string[]; 11011 readonly allowLocalPluginLoads: boolean; 11012 private currentPluginConfigOverrides; 11013 readonly typesMapLocation: string | undefined; 11014 /** @deprecated use serverMode instead */ 11015 readonly syntaxOnly: boolean; 11016 readonly serverMode: LanguageServiceMode; 11017 /** Tracks projects that we have already sent telemetry for. */ 11018 private readonly seenProjects; 11019 private performanceEventHandler?; 11020 private pendingPluginEnablements?; 11021 private currentPluginEnablementPromise?; 11022 constructor(opts: ProjectServiceOptions); 11023 toPath(fileName: string): Path; 11024 private loadTypesMap; 11025 updateTypingsForProject(response: SetTypings | InvalidateCachedTypings | PackageInstalledResponse): void; 11026 private delayUpdateProjectGraph; 11027 private delayUpdateProjectGraphs; 11028 setCompilerOptionsForInferredProjects(projectCompilerOptions: protocol.InferredProjectCompilerOptions, projectRootPath?: string): void; 11029 findProject(projectName: string): Project | undefined; 11030 getDefaultProjectForFile(fileName: NormalizedPath, ensureProject: boolean): Project | undefined; 11031 private doEnsureDefaultProjectForFile; 11032 getScriptInfoEnsuringProjectsUptoDate(uncheckedFileName: string): ScriptInfo | undefined; 11033 /** 11034 * Ensures the project structures are upto date 11035 * This means, 11036 * - we go through all the projects and update them if they are dirty 11037 * - if updates reflect some change in structure or there was pending request to ensure projects for open files 11038 * ensure that each open script info has project 11039 */ 11040 private ensureProjectStructuresUptoDate; 11041 getFormatCodeOptions(file: NormalizedPath): FormatCodeSettings; 11042 getPreferences(file: NormalizedPath): protocol.UserPreferences; 11043 getHostFormatCodeOptions(): FormatCodeSettings; 11044 getHostPreferences(): protocol.UserPreferences; 11045 private onSourceFileChanged; 11046 private handleSourceMapProjects; 11047 private delayUpdateSourceInfoProjects; 11048 private delayUpdateProjectsOfScriptInfoPath; 11049 private handleDeletedFile; 11050 private removeProject; 11051 private assignOrphanScriptInfosToInferredProject; 11052 /** 11053 * Remove this file from the set of open, non-configured files. 11054 * @param info The file that has been closed or newly configured 11055 */ 11056 private closeOpenFile; 11057 private deleteScriptInfo; 11058 private configFileExists; 11059 /** 11060 * Returns true if the configFileExistenceInfo is needed/impacted by open files that are root of inferred project 11061 */ 11062 private configFileExistenceImpactsRootOfInferredProject; 11063 /** 11064 * This is called on file close, so that we stop watching the config file for this script info 11065 */ 11066 private stopWatchingConfigFilesForClosedScriptInfo; 11067 /** 11068 * This function tries to search for a tsconfig.json for the given file. 11069 * This is different from the method the compiler uses because 11070 * the compiler can assume it will always start searching in the 11071 * current directory (the directory in which tsc was invoked). 11072 * The server must start searching from the directory containing 11073 * the newly opened file. 11074 */ 11075 private forEachConfigFileLocation; 11076 /** 11077 * This function tries to search for a tsconfig.json for the given file. 11078 * This is different from the method the compiler uses because 11079 * the compiler can assume it will always start searching in the 11080 * current directory (the directory in which tsc was invoked). 11081 * The server must start searching from the directory containing 11082 * the newly opened file. 11083 * If script info is passed in, it is asserted to be open script info 11084 * otherwise just file name 11085 */ 11086 private getConfigFileNameForFile; 11087 private printProjects; 11088 private getConfiguredProjectByCanonicalConfigFilePath; 11089 private findExternalProjectByProjectName; 11090 /** Get a filename if the language service exceeds the maximum allowed program size; otherwise returns undefined. */ 11091 private getFilenameForExceededTotalSizeLimitForNonTsFiles; 11092 private createExternalProject; 11093 private addFilesToNonInferredProject; 11094 private updateNonInferredProjectFiles; 11095 private updateRootAndOptionsOfNonInferredProject; 11096 private sendConfigFileDiagEvent; 11097 private getOrCreateInferredProjectForProjectRootPathIfEnabled; 11098 private getOrCreateSingleInferredProjectIfEnabled; 11099 private getOrCreateSingleInferredWithoutProjectRoot; 11100 private createInferredProject; 11101 getScriptInfo(uncheckedFileName: string): ScriptInfo | undefined; 11102 private watchClosedScriptInfo; 11103 private createNodeModulesWatcher; 11104 private watchClosedScriptInfoInNodeModules; 11105 private getModifiedTime; 11106 private refreshScriptInfo; 11107 private refreshScriptInfosInDirectory; 11108 private stopWatchingScriptInfo; 11109 private getOrCreateScriptInfoNotOpenedByClientForNormalizedPath; 11110 private getOrCreateScriptInfoOpenedByClientForNormalizedPath; 11111 getOrCreateScriptInfoForNormalizedPath(fileName: NormalizedPath, openedByClient: boolean, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, hostToQueryFileExistsOn?: { 11112 fileExists(path: string): boolean; 11113 }): ScriptInfo | undefined; 11114 private getOrCreateScriptInfoWorker; 11115 /** 11116 * 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 11117 */ 11118 getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo | undefined; 11119 getScriptInfoForPath(fileName: Path): ScriptInfo | undefined; 11120 private addSourceInfoToSourceMap; 11121 private addMissingSourceMapFile; 11122 setHostConfiguration(args: protocol.ConfigureRequestArguments): void; 11123 closeLog(): void; 11124 /** 11125 * This function rebuilds the project for every file opened by the client 11126 * This does not reload contents of open files from disk. But we could do that if needed 11127 */ 11128 reloadProjects(): void; 11129 /** 11130 * This function goes through all the openFiles and tries to file the config file for them. 11131 * If the config file is found and it refers to existing project, it reloads it either immediately 11132 * or schedules it for reload depending on delayReload option 11133 * If there is no existing project it just opens the configured project for the config file 11134 * reloadForInfo provides a way to filter out files to reload configured project for 11135 */ 11136 private reloadConfiguredProjectForFiles; 11137 /** 11138 * Remove the root of inferred project if script info is part of another project 11139 */ 11140 private removeRootOfInferredProjectIfNowPartOfOtherProject; 11141 /** 11142 * This function is to update the project structure for every inferred project. 11143 * It is called on the premise that all the configured projects are 11144 * up to date. 11145 * This will go through open files and assign them to inferred project if open file is not part of any other project 11146 * After that all the inferred project graphs are updated 11147 */ 11148 private ensureProjectForOpenFiles; 11149 /** 11150 * Open file whose contents is managed by the client 11151 * @param filename is absolute pathname 11152 * @param fileContent is a known version of the file content that is more up to date than the one on disk 11153 */ 11154 openClientFile(fileName: string, fileContent?: string, scriptKind?: ScriptKind, projectRootPath?: string): OpenConfiguredProjectResult; 11155 private findExternalProjectContainingOpenScriptInfo; 11156 private getOrCreateOpenScriptInfo; 11157 private assignProjectToOpenedScriptInfo; 11158 private createAncestorProjects; 11159 private ensureProjectChildren; 11160 private cleanupAfterOpeningFile; 11161 openClientFileWithNormalizedPath(fileName: NormalizedPath, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, projectRootPath?: NormalizedPath): OpenConfiguredProjectResult; 11162 private removeOrphanConfiguredProjects; 11163 private removeOrphanScriptInfos; 11164 private telemetryOnOpenFile; 11165 /** 11166 * Close file whose contents is managed by the client 11167 * @param filename is absolute pathname 11168 */ 11169 closeClientFile(uncheckedFileName: string): void; 11170 private collectChanges; 11171 private closeConfiguredProjectReferencedFromExternalProject; 11172 closeExternalProject(uncheckedFileName: string): void; 11173 openExternalProjects(projects: protocol.ExternalProject[]): void; 11174 /** Makes a filename safe to insert in a RegExp */ 11175 private static readonly filenameEscapeRegexp; 11176 private static escapeFilenameForRegex; 11177 resetSafeList(): void; 11178 applySafeList(proj: protocol.ExternalProject): NormalizedPath[]; 11179 openExternalProject(proj: protocol.ExternalProject): void; 11180 hasDeferredExtension(): boolean; 11181 private enableRequestedPluginsAsync; 11182 private enableRequestedPluginsWorker; 11183 private enableRequestedPluginsForProjectAsync; 11184 configurePlugin(args: protocol.ConfigurePluginRequestArguments): void; 11185 } 11186 export {}; 11187} 11188declare namespace ts.server { 11189 interface ServerCancellationToken extends HostCancellationToken { 11190 setRequest(requestId: number): void; 11191 resetRequest(requestId: number): void; 11192 } 11193 const nullCancellationToken: ServerCancellationToken; 11194 interface PendingErrorCheck { 11195 fileName: NormalizedPath; 11196 project: Project; 11197 } 11198 type CommandNames = protocol.CommandTypes; 11199 const CommandNames: any; 11200 function formatMessage<T extends protocol.Message>(msg: T, logger: Logger, byteLength: (s: string, encoding: string) => number, newLine: string): string; 11201 type Event = <T extends object>(body: T, eventName: string) => void; 11202 interface EventSender { 11203 event: Event; 11204 } 11205 interface SessionOptions { 11206 host: ServerHost; 11207 cancellationToken: ServerCancellationToken; 11208 useSingleInferredProject: boolean; 11209 useInferredProjectPerProjectRoot: boolean; 11210 typingsInstaller: ITypingsInstaller; 11211 byteLength: (buf: string, encoding?: string) => number; 11212 hrtime: (start?: number[]) => number[]; 11213 logger: Logger; 11214 /** 11215 * If falsy, all events are suppressed. 11216 */ 11217 canUseEvents: boolean; 11218 eventHandler?: ProjectServiceEventHandler; 11219 /** Has no effect if eventHandler is also specified. */ 11220 suppressDiagnosticEvents?: boolean; 11221 /** @deprecated use serverMode instead */ 11222 syntaxOnly?: boolean; 11223 serverMode?: LanguageServiceMode; 11224 throttleWaitMilliseconds?: number; 11225 noGetErrOnBackgroundUpdate?: boolean; 11226 globalPlugins?: readonly string[]; 11227 pluginProbeLocations?: readonly string[]; 11228 allowLocalPluginLoads?: boolean; 11229 typesMapLocation?: string; 11230 } 11231 class Session<TMessage = string> implements EventSender { 11232 private readonly gcTimer; 11233 protected projectService: ProjectService; 11234 private changeSeq; 11235 private performanceData; 11236 private currentRequestId; 11237 private errorCheck; 11238 protected host: ServerHost; 11239 private readonly cancellationToken; 11240 protected readonly typingsInstaller: ITypingsInstaller; 11241 protected byteLength: (buf: string, encoding?: string) => number; 11242 private hrtime; 11243 protected logger: Logger; 11244 protected canUseEvents: boolean; 11245 private suppressDiagnosticEvents?; 11246 private eventHandler; 11247 private readonly noGetErrOnBackgroundUpdate?; 11248 constructor(opts: SessionOptions); 11249 private sendRequestCompletedEvent; 11250 private addPerformanceData; 11251 private performanceEventHandler; 11252 private defaultEventHandler; 11253 private projectsUpdatedInBackgroundEvent; 11254 logError(err: Error, cmd: string): void; 11255 private logErrorWorker; 11256 send(msg: protocol.Message): void; 11257 protected writeMessage(msg: protocol.Message): void; 11258 event<T extends object>(body: T, eventName: string): void; 11259 /** @deprecated */ 11260 output(info: any, cmdName: string, reqSeq?: number, errorMsg?: string): void; 11261 private doOutput; 11262 private semanticCheck; 11263 private syntacticCheck; 11264 private suggestionCheck; 11265 private sendDiagnosticsEvent; 11266 /** It is the caller's responsibility to verify that `!this.suppressDiagnosticEvents`. */ 11267 private updateErrorCheck; 11268 private cleanProjects; 11269 private cleanup; 11270 private getEncodedSyntacticClassifications; 11271 private getEncodedSemanticClassifications; 11272 private getProject; 11273 private getConfigFileAndProject; 11274 private getConfigFileDiagnostics; 11275 private convertToDiagnosticsWithLinePositionFromDiagnosticFile; 11276 private getCompilerOptionsDiagnostics; 11277 private convertToDiagnosticsWithLinePosition; 11278 private getDiagnosticsWorker; 11279 private getDefinition; 11280 private mapDefinitionInfoLocations; 11281 private getDefinitionAndBoundSpan; 11282 private findSourceDefinition; 11283 private getEmitOutput; 11284 private mapJSDocTagInfo; 11285 private mapDisplayParts; 11286 private mapSignatureHelpItems; 11287 private mapDefinitionInfo; 11288 private static mapToOriginalLocation; 11289 private toFileSpan; 11290 private toFileSpanWithContext; 11291 private getTypeDefinition; 11292 private mapImplementationLocations; 11293 private getImplementation; 11294 private getOccurrences; 11295 private getSyntacticDiagnosticsSync; 11296 private getSemanticDiagnosticsSync; 11297 private getSuggestionDiagnosticsSync; 11298 private getJsxClosingTag; 11299 private getDocumentHighlights; 11300 private provideInlayHints; 11301 private setCompilerOptionsForInferredProjects; 11302 private getProjectInfo; 11303 private getProjectInfoWorker; 11304 private getRenameInfo; 11305 private getProjects; 11306 private getDefaultProject; 11307 private getRenameLocations; 11308 private mapRenameInfo; 11309 private toSpanGroups; 11310 private getReferences; 11311 private getFileReferences; 11312 /** 11313 * @param fileName is the name of the file to be opened 11314 * @param fileContent is a version of the file content that is known to be more up to date than the one on disk 11315 */ 11316 private openClientFile; 11317 private getPosition; 11318 private getPositionInFile; 11319 private getFileAndProject; 11320 private getFileAndLanguageServiceForSyntacticOperation; 11321 private getFileAndProjectWorker; 11322 private getOutliningSpans; 11323 private getTodoComments; 11324 private getDocCommentTemplate; 11325 private getSpanOfEnclosingComment; 11326 private getIndentation; 11327 private getBreakpointStatement; 11328 private getNameOrDottedNameSpan; 11329 private isValidBraceCompletion; 11330 private getQuickInfoWorker; 11331 private getFormattingEditsForRange; 11332 private getFormattingEditsForRangeFull; 11333 private getFormattingEditsForDocumentFull; 11334 private getFormattingEditsAfterKeystrokeFull; 11335 private getFormattingEditsAfterKeystroke; 11336 private getCompletions; 11337 private getCompletionEntryDetails; 11338 private getCompileOnSaveAffectedFileList; 11339 private emitFile; 11340 private getSignatureHelpItems; 11341 private toPendingErrorCheck; 11342 private getDiagnostics; 11343 private change; 11344 private reload; 11345 private saveToTmp; 11346 private closeClientFile; 11347 private mapLocationNavigationBarItems; 11348 private getNavigationBarItems; 11349 private toLocationNavigationTree; 11350 private getNavigationTree; 11351 private getNavigateToItems; 11352 private getFullNavigateToItems; 11353 private getSupportedCodeFixes; 11354 private isLocation; 11355 private extractPositionOrRange; 11356 private getRange; 11357 private getApplicableRefactors; 11358 private getEditsForRefactor; 11359 private organizeImports; 11360 private getEditsForFileRename; 11361 private getCodeFixes; 11362 private getCombinedCodeFix; 11363 private applyCodeActionCommand; 11364 private getStartAndEndPosition; 11365 private mapCodeAction; 11366 private mapCodeFixAction; 11367 private mapTextChangesToCodeEdits; 11368 private mapTextChangeToCodeEdit; 11369 private convertTextChangeToCodeEdit; 11370 private getBraceMatching; 11371 private getDiagnosticsForProject; 11372 private configurePlugin; 11373 private getSmartSelectionRange; 11374 private toggleLineComment; 11375 private toggleMultilineComment; 11376 private commentSelection; 11377 private uncommentSelection; 11378 private mapSelectionRange; 11379 private getScriptInfoFromProjectService; 11380 private toProtocolCallHierarchyItem; 11381 private toProtocolCallHierarchyIncomingCall; 11382 private toProtocolCallHierarchyOutgoingCall; 11383 private prepareCallHierarchy; 11384 private provideCallHierarchyIncomingCalls; 11385 private provideCallHierarchyOutgoingCalls; 11386 getCanonicalFileName(fileName: string): string; 11387 exit(): void; 11388 private notRequired; 11389 private requiredResponse; 11390 private handlers; 11391 addProtocolHandler(command: string, handler: (request: protocol.Request) => HandlerResponse): void; 11392 private setCurrentRequest; 11393 private resetCurrentRequest; 11394 executeWithRequestId<T>(requestId: number, f: () => T): T; 11395 executeCommand(request: protocol.Request): HandlerResponse; 11396 onMessage(message: TMessage): void; 11397 protected parseMessage(message: TMessage): protocol.Request; 11398 protected toStringMessage(message: TMessage): string; 11399 private getFormatOptions; 11400 private getPreferences; 11401 private getHostFormatOptions; 11402 private getHostPreferences; 11403 } 11404 interface HandlerResponse { 11405 response?: {}; 11406 responseRequired?: boolean; 11407 } 11408} 11409declare namespace ts { 11410 /** @deprecated Use `factory.createNodeArray` or the factory supplied by your transformation context instead. */ 11411 const createNodeArray: <T extends Node>(elements?: readonly T[] | undefined, hasTrailingComma?: boolean | undefined) => NodeArray<T>; 11412 /** @deprecated Use `factory.createNumericLiteral` or the factory supplied by your transformation context instead. */ 11413 const createNumericLiteral: (value: string | number, numericLiteralFlags?: TokenFlags | undefined) => NumericLiteral; 11414 /** @deprecated Use `factory.createBigIntLiteral` or the factory supplied by your transformation context instead. */ 11415 const createBigIntLiteral: (value: string | PseudoBigInt) => BigIntLiteral; 11416 /** @deprecated Use `factory.createStringLiteral` or the factory supplied by your transformation context instead. */ 11417 const createStringLiteral: { 11418 (text: string, isSingleQuote?: boolean | undefined): StringLiteral; 11419 (text: string, isSingleQuote?: boolean | undefined, hasExtendedUnicodeEscape?: boolean | undefined): StringLiteral; 11420 }; 11421 /** @deprecated Use `factory.createStringLiteralFromNode` or the factory supplied by your transformation context instead. */ 11422 const createStringLiteralFromNode: (sourceNode: PrivateIdentifier | PropertyNameLiteral, isSingleQuote?: boolean | undefined) => StringLiteral; 11423 /** @deprecated Use `factory.createRegularExpressionLiteral` or the factory supplied by your transformation context instead. */ 11424 const createRegularExpressionLiteral: (text: string) => RegularExpressionLiteral; 11425 /** @deprecated Use `factory.createLoopVariable` or the factory supplied by your transformation context instead. */ 11426 const createLoopVariable: (reservedInNestedScopes?: boolean | undefined) => Identifier; 11427 /** @deprecated Use `factory.createUniqueName` or the factory supplied by your transformation context instead. */ 11428 const createUniqueName: (text: string, flags?: GeneratedIdentifierFlags | undefined) => Identifier; 11429 /** @deprecated Use `factory.createPrivateIdentifier` or the factory supplied by your transformation context instead. */ 11430 const createPrivateIdentifier: (text: string) => PrivateIdentifier; 11431 /** @deprecated Use `factory.createSuper` or the factory supplied by your transformation context instead. */ 11432 const createSuper: () => SuperExpression; 11433 /** @deprecated Use `factory.createThis` or the factory supplied by your transformation context instead. */ 11434 const createThis: () => ThisExpression; 11435 /** @deprecated Use `factory.createNull` or the factory supplied by your transformation context instead. */ 11436 const createNull: () => NullLiteral; 11437 /** @deprecated Use `factory.createTrue` or the factory supplied by your transformation context instead. */ 11438 const createTrue: () => TrueLiteral; 11439 /** @deprecated Use `factory.createFalse` or the factory supplied by your transformation context instead. */ 11440 const createFalse: () => FalseLiteral; 11441 /** @deprecated Use `factory.createModifier` or the factory supplied by your transformation context instead. */ 11442 const createModifier: <T extends ModifierSyntaxKind>(kind: T) => ModifierToken<T>; 11443 /** @deprecated Use `factory.createModifiersFromModifierFlags` or the factory supplied by your transformation context instead. */ 11444 const createModifiersFromModifierFlags: (flags: ModifierFlags) => Modifier[] | undefined; 11445 /** @deprecated Use `factory.createQualifiedName` or the factory supplied by your transformation context instead. */ 11446 const createQualifiedName: (left: EntityName, right: string | Identifier) => QualifiedName; 11447 /** @deprecated Use `factory.updateQualifiedName` or the factory supplied by your transformation context instead. */ 11448 const updateQualifiedName: (node: QualifiedName, left: EntityName, right: Identifier) => QualifiedName; 11449 /** @deprecated Use `factory.createComputedPropertyName` or the factory supplied by your transformation context instead. */ 11450 const createComputedPropertyName: (expression: Expression) => ComputedPropertyName; 11451 /** @deprecated Use `factory.updateComputedPropertyName` or the factory supplied by your transformation context instead. */ 11452 const updateComputedPropertyName: (node: ComputedPropertyName, expression: Expression) => ComputedPropertyName; 11453 /** @deprecated Use `factory.createTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ 11454 const createTypeParameterDeclaration: { 11455 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; 11456 (name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; 11457 }; 11458 /** @deprecated Use `factory.updateTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ 11459 const updateTypeParameterDeclaration: { 11460 (node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 11461 (node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 11462 }; 11463 /** @deprecated Use `factory.createParameterDeclaration` or the factory supplied by your transformation context instead. */ 11464 const createParameter: { 11465 (modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken | undefined, type?: TypeNode | undefined, initializer?: Expression | undefined): ParameterDeclaration; 11466 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken | undefined, type?: TypeNode | undefined, initializer?: Expression | undefined): ParameterDeclaration; 11467 }; 11468 /** @deprecated Use `factory.updateParameterDeclaration` or the factory supplied by your transformation context instead. */ 11469 const updateParameter: { 11470 (node: ParameterDeclaration, modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; 11471 (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; 11472 }; 11473 /** @deprecated Use `factory.createDecorator` or the factory supplied by your transformation context instead. */ 11474 const createDecorator: (expression: Expression) => Decorator; 11475 /** @deprecated Use `factory.updateDecorator` or the factory supplied by your transformation context instead. */ 11476 const updateDecorator: (node: Decorator, expression: Expression) => Decorator; 11477 /** @deprecated Use `factory.createPropertyDeclaration` or the factory supplied by your transformation context instead. */ 11478 const createProperty: { 11479 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 11480 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 11481 }; 11482 /** @deprecated Use `factory.updatePropertyDeclaration` or the factory supplied by your transformation context instead. */ 11483 const updateProperty: { 11484 (node: PropertyDeclaration, modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 11485 (node: PropertyDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 11486 }; 11487 /** @deprecated Use `factory.createMethodDeclaration` or the factory supplied by your transformation context instead. */ 11488 const createMethod: { 11489 (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; 11490 (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; 11491 }; 11492 /** @deprecated Use `factory.updateMethodDeclaration` or the factory supplied by your transformation context instead. */ 11493 const updateMethod: { 11494 (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; 11495 (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; 11496 }; 11497 /** @deprecated Use `factory.createConstructorDeclaration` or the factory supplied by your transformation context instead. */ 11498 const createConstructor: { 11499 (modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 11500 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 11501 }; 11502 /** @deprecated Use `factory.updateConstructorDeclaration` or the factory supplied by your transformation context instead. */ 11503 const updateConstructor: { 11504 (node: ConstructorDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 11505 (node: ConstructorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 11506 }; 11507 /** @deprecated Use `factory.createGetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 11508 const createGetAccessor: { 11509 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 11510 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 11511 }; 11512 /** @deprecated Use `factory.updateGetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 11513 const updateGetAccessor: { 11514 (node: GetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 11515 (node: GetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 11516 }; 11517 /** @deprecated Use `factory.createSetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 11518 const createSetAccessor: { 11519 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 11520 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 11521 }; 11522 /** @deprecated Use `factory.updateSetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 11523 const updateSetAccessor: { 11524 (node: SetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 11525 (node: SetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 11526 }; 11527 /** @deprecated Use `factory.createCallSignature` or the factory supplied by your transformation context instead. */ 11528 const createCallSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined) => CallSignatureDeclaration; 11529 /** @deprecated Use `factory.updateCallSignature` or the factory supplied by your transformation context instead. */ 11530 const updateCallSignature: (node: CallSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined) => CallSignatureDeclaration; 11531 /** @deprecated Use `factory.createConstructSignature` or the factory supplied by your transformation context instead. */ 11532 const createConstructSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined) => ConstructSignatureDeclaration; 11533 /** @deprecated Use `factory.updateConstructSignature` or the factory supplied by your transformation context instead. */ 11534 const updateConstructSignature: (node: ConstructSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined) => ConstructSignatureDeclaration; 11535 /** @deprecated Use `factory.updateIndexSignature` or the factory supplied by your transformation context instead. */ 11536 const updateIndexSignature: { 11537 (node: IndexSignatureDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 11538 (node: IndexSignatureDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 11539 }; 11540 /** @deprecated Use `factory.createKeywordTypeNode` or the factory supplied by your transformation context instead. */ 11541 const createKeywordTypeNode: <TKind extends KeywordTypeSyntaxKind>(kind: TKind) => KeywordTypeNode<TKind>; 11542 /** @deprecated Use `factory.createTypePredicateNode` or the factory supplied by your transformation context instead. */ 11543 const createTypePredicateNodeWithModifier: (assertsModifier: AssertsKeyword | undefined, parameterName: string | Identifier | ThisTypeNode, type: TypeNode | undefined) => TypePredicateNode; 11544 /** @deprecated Use `factory.updateTypePredicateNode` or the factory supplied by your transformation context instead. */ 11545 const updateTypePredicateNodeWithModifier: (node: TypePredicateNode, assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode, type: TypeNode | undefined) => TypePredicateNode; 11546 /** @deprecated Use `factory.createTypeReferenceNode` or the factory supplied by your transformation context instead. */ 11547 const createTypeReferenceNode: (typeName: string | EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeReferenceNode; 11548 /** @deprecated Use `factory.updateTypeReferenceNode` or the factory supplied by your transformation context instead. */ 11549 const updateTypeReferenceNode: (node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray<TypeNode> | undefined) => TypeReferenceNode; 11550 /** @deprecated Use `factory.createFunctionTypeNode` or the factory supplied by your transformation context instead. */ 11551 const createFunctionTypeNode: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => FunctionTypeNode; 11552 /** @deprecated Use `factory.updateFunctionTypeNode` or the factory supplied by your transformation context instead. */ 11553 const updateFunctionTypeNode: (node: FunctionTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode) => FunctionTypeNode; 11554 /** @deprecated Use `factory.createConstructorTypeNode` or the factory supplied by your transformation context instead. */ 11555 const createConstructorTypeNode: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => ConstructorTypeNode; 11556 /** @deprecated Use `factory.updateConstructorTypeNode` or the factory supplied by your transformation context instead. */ 11557 const updateConstructorTypeNode: (node: ConstructorTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode) => ConstructorTypeNode; 11558 /** @deprecated Use `factory.createTypeQueryNode` or the factory supplied by your transformation context instead. */ 11559 const createTypeQueryNode: (exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; 11560 /** @deprecated Use `factory.updateTypeQueryNode` or the factory supplied by your transformation context instead. */ 11561 const updateTypeQueryNode: (node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; 11562 /** @deprecated Use `factory.createTypeLiteralNode` or the factory supplied by your transformation context instead. */ 11563 const createTypeLiteralNode: (members: readonly TypeElement[] | undefined) => TypeLiteralNode; 11564 /** @deprecated Use `factory.updateTypeLiteralNode` or the factory supplied by your transformation context instead. */ 11565 const updateTypeLiteralNode: (node: TypeLiteralNode, members: NodeArray<TypeElement>) => TypeLiteralNode; 11566 /** @deprecated Use `factory.createArrayTypeNode` or the factory supplied by your transformation context instead. */ 11567 const createArrayTypeNode: (elementType: TypeNode) => ArrayTypeNode; 11568 /** @deprecated Use `factory.updateArrayTypeNode` or the factory supplied by your transformation context instead. */ 11569 const updateArrayTypeNode: (node: ArrayTypeNode, elementType: TypeNode) => ArrayTypeNode; 11570 /** @deprecated Use `factory.createTupleTypeNode` or the factory supplied by your transformation context instead. */ 11571 const createTupleTypeNode: (elements: readonly (TypeNode | NamedTupleMember)[]) => TupleTypeNode; 11572 /** @deprecated Use `factory.updateTupleTypeNode` or the factory supplied by your transformation context instead. */ 11573 const updateTupleTypeNode: (node: TupleTypeNode, elements: readonly (TypeNode | NamedTupleMember)[]) => TupleTypeNode; 11574 /** @deprecated Use `factory.createOptionalTypeNode` or the factory supplied by your transformation context instead. */ 11575 const createOptionalTypeNode: (type: TypeNode) => OptionalTypeNode; 11576 /** @deprecated Use `factory.updateOptionalTypeNode` or the factory supplied by your transformation context instead. */ 11577 const updateOptionalTypeNode: (node: OptionalTypeNode, type: TypeNode) => OptionalTypeNode; 11578 /** @deprecated Use `factory.createRestTypeNode` or the factory supplied by your transformation context instead. */ 11579 const createRestTypeNode: (type: TypeNode) => RestTypeNode; 11580 /** @deprecated Use `factory.updateRestTypeNode` or the factory supplied by your transformation context instead. */ 11581 const updateRestTypeNode: (node: RestTypeNode, type: TypeNode) => RestTypeNode; 11582 /** @deprecated Use `factory.createUnionTypeNode` or the factory supplied by your transformation context instead. */ 11583 const createUnionTypeNode: (types: readonly TypeNode[]) => UnionTypeNode; 11584 /** @deprecated Use `factory.updateUnionTypeNode` or the factory supplied by your transformation context instead. */ 11585 const updateUnionTypeNode: (node: UnionTypeNode, types: NodeArray<TypeNode>) => UnionTypeNode; 11586 /** @deprecated Use `factory.createIntersectionTypeNode` or the factory supplied by your transformation context instead. */ 11587 const createIntersectionTypeNode: (types: readonly TypeNode[]) => IntersectionTypeNode; 11588 /** @deprecated Use `factory.updateIntersectionTypeNode` or the factory supplied by your transformation context instead. */ 11589 const updateIntersectionTypeNode: (node: IntersectionTypeNode, types: NodeArray<TypeNode>) => IntersectionTypeNode; 11590 /** @deprecated Use `factory.createConditionalTypeNode` or the factory supplied by your transformation context instead. */ 11591 const createConditionalTypeNode: (checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode) => ConditionalTypeNode; 11592 /** @deprecated Use `factory.updateConditionalTypeNode` or the factory supplied by your transformation context instead. */ 11593 const updateConditionalTypeNode: (node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode) => ConditionalTypeNode; 11594 /** @deprecated Use `factory.createInferTypeNode` or the factory supplied by your transformation context instead. */ 11595 const createInferTypeNode: (typeParameter: TypeParameterDeclaration) => InferTypeNode; 11596 /** @deprecated Use `factory.updateInferTypeNode` or the factory supplied by your transformation context instead. */ 11597 const updateInferTypeNode: (node: InferTypeNode, typeParameter: TypeParameterDeclaration) => InferTypeNode; 11598 /** @deprecated Use `factory.createImportTypeNode` or the factory supplied by your transformation context instead. */ 11599 const createImportTypeNode: { 11600 (argument: TypeNode, assertions?: ImportTypeAssertionContainer | undefined, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11601 (argument: TypeNode, assertions?: ImportTypeAssertionContainer | undefined, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11602 (argument: TypeNode, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11603 }; 11604 /** @deprecated Use `factory.updateImportTypeNode` or the factory supplied by your transformation context instead. */ 11605 const updateImportTypeNode: { 11606 (node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11607 (node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 11608 }; 11609 /** @deprecated Use `factory.createParenthesizedType` or the factory supplied by your transformation context instead. */ 11610 const createParenthesizedType: (type: TypeNode) => ParenthesizedTypeNode; 11611 /** @deprecated Use `factory.updateParenthesizedType` or the factory supplied by your transformation context instead. */ 11612 const updateParenthesizedType: (node: ParenthesizedTypeNode, type: TypeNode) => ParenthesizedTypeNode; 11613 /** @deprecated Use `factory.createThisTypeNode` or the factory supplied by your transformation context instead. */ 11614 const createThisTypeNode: () => ThisTypeNode; 11615 /** @deprecated Use `factory.updateTypeOperatorNode` or the factory supplied by your transformation context instead. */ 11616 const updateTypeOperatorNode: (node: TypeOperatorNode, type: TypeNode) => TypeOperatorNode; 11617 /** @deprecated Use `factory.createIndexedAccessTypeNode` or the factory supplied by your transformation context instead. */ 11618 const createIndexedAccessTypeNode: (objectType: TypeNode, indexType: TypeNode) => IndexedAccessTypeNode; 11619 /** @deprecated Use `factory.updateIndexedAccessTypeNode` or the factory supplied by your transformation context instead. */ 11620 const updateIndexedAccessTypeNode: (node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode) => IndexedAccessTypeNode; 11621 /** @deprecated Use `factory.createMappedTypeNode` or the factory supplied by your transformation context instead. */ 11622 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; 11623 /** @deprecated Use `factory.updateMappedTypeNode` or the factory supplied by your transformation context instead. */ 11624 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; 11625 /** @deprecated Use `factory.createLiteralTypeNode` or the factory supplied by your transformation context instead. */ 11626 const createLiteralTypeNode: (literal: LiteralExpression | BooleanLiteral | PrefixUnaryExpression | NullLiteral) => LiteralTypeNode; 11627 /** @deprecated Use `factory.updateLiteralTypeNode` or the factory supplied by your transformation context instead. */ 11628 const updateLiteralTypeNode: (node: LiteralTypeNode, literal: LiteralExpression | BooleanLiteral | PrefixUnaryExpression | NullLiteral) => LiteralTypeNode; 11629 /** @deprecated Use `factory.createObjectBindingPattern` or the factory supplied by your transformation context instead. */ 11630 const createObjectBindingPattern: (elements: readonly BindingElement[]) => ObjectBindingPattern; 11631 /** @deprecated Use `factory.updateObjectBindingPattern` or the factory supplied by your transformation context instead. */ 11632 const updateObjectBindingPattern: (node: ObjectBindingPattern, elements: readonly BindingElement[]) => ObjectBindingPattern; 11633 /** @deprecated Use `factory.createArrayBindingPattern` or the factory supplied by your transformation context instead. */ 11634 const createArrayBindingPattern: (elements: readonly ArrayBindingElement[]) => ArrayBindingPattern; 11635 /** @deprecated Use `factory.updateArrayBindingPattern` or the factory supplied by your transformation context instead. */ 11636 const updateArrayBindingPattern: (node: ArrayBindingPattern, elements: readonly ArrayBindingElement[]) => ArrayBindingPattern; 11637 /** @deprecated Use `factory.createBindingElement` or the factory supplied by your transformation context instead. */ 11638 const createBindingElement: (dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression | undefined) => BindingElement; 11639 /** @deprecated Use `factory.updateBindingElement` or the factory supplied by your transformation context instead. */ 11640 const updateBindingElement: (node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined) => BindingElement; 11641 /** @deprecated Use `factory.createArrayLiteralExpression` or the factory supplied by your transformation context instead. */ 11642 const createArrayLiteral: (elements?: readonly Expression[] | undefined, multiLine?: boolean | undefined) => ArrayLiteralExpression; 11643 /** @deprecated Use `factory.updateArrayLiteralExpression` or the factory supplied by your transformation context instead. */ 11644 const updateArrayLiteral: (node: ArrayLiteralExpression, elements: readonly Expression[]) => ArrayLiteralExpression; 11645 /** @deprecated Use `factory.createObjectLiteralExpression` or the factory supplied by your transformation context instead. */ 11646 const createObjectLiteral: (properties?: readonly ObjectLiteralElementLike[] | undefined, multiLine?: boolean | undefined) => ObjectLiteralExpression; 11647 /** @deprecated Use `factory.updateObjectLiteralExpression` or the factory supplied by your transformation context instead. */ 11648 const updateObjectLiteral: (node: ObjectLiteralExpression, properties: readonly ObjectLiteralElementLike[]) => ObjectLiteralExpression; 11649 /** @deprecated Use `factory.createPropertyAccessExpression` or the factory supplied by your transformation context instead. */ 11650 const createPropertyAccess: (expression: Expression, name: string | MemberName) => PropertyAccessExpression; 11651 /** @deprecated Use `factory.updatePropertyAccessExpression` or the factory supplied by your transformation context instead. */ 11652 const updatePropertyAccess: (node: PropertyAccessExpression, expression: Expression, name: MemberName) => PropertyAccessExpression; 11653 /** @deprecated Use `factory.createPropertyAccessChain` or the factory supplied by your transformation context instead. */ 11654 const createPropertyAccessChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, name: string | MemberName) => PropertyAccessChain; 11655 /** @deprecated Use `factory.updatePropertyAccessChain` or the factory supplied by your transformation context instead. */ 11656 const updatePropertyAccessChain: (node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, name: MemberName) => PropertyAccessChain; 11657 /** @deprecated Use `factory.createElementAccessExpression` or the factory supplied by your transformation context instead. */ 11658 const createElementAccess: (expression: Expression, index: number | Expression) => ElementAccessExpression; 11659 /** @deprecated Use `factory.updateElementAccessExpression` or the factory supplied by your transformation context instead. */ 11660 const updateElementAccess: (node: ElementAccessExpression, expression: Expression, argumentExpression: Expression) => ElementAccessExpression; 11661 /** @deprecated Use `factory.createElementAccessChain` or the factory supplied by your transformation context instead. */ 11662 const createElementAccessChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, index: number | Expression) => ElementAccessChain; 11663 /** @deprecated Use `factory.updateElementAccessChain` or the factory supplied by your transformation context instead. */ 11664 const updateElementAccessChain: (node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, argumentExpression: Expression) => ElementAccessChain; 11665 /** @deprecated Use `factory.createCallExpression` or the factory supplied by your transformation context instead. */ 11666 const createCall: (expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => CallExpression; 11667 /** @deprecated Use `factory.updateCallExpression` or the factory supplied by your transformation context instead. */ 11668 const updateCall: (node: CallExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]) => CallExpression; 11669 /** @deprecated Use `factory.createCallChain` or the factory supplied by your transformation context instead. */ 11670 const createCallChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => CallChain; 11671 /** @deprecated Use `factory.updateCallChain` or the factory supplied by your transformation context instead. */ 11672 const updateCallChain: (node: CallChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]) => CallChain; 11673 /** @deprecated Use `factory.createNewExpression` or the factory supplied by your transformation context instead. */ 11674 const createNew: (expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => NewExpression; 11675 /** @deprecated Use `factory.updateNewExpression` or the factory supplied by your transformation context instead. */ 11676 const updateNew: (node: NewExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => NewExpression; 11677 /** @deprecated Use `factory.createTypeAssertion` or the factory supplied by your transformation context instead. */ 11678 const createTypeAssertion: (type: TypeNode, expression: Expression) => TypeAssertion; 11679 /** @deprecated Use `factory.updateTypeAssertion` or the factory supplied by your transformation context instead. */ 11680 const updateTypeAssertion: (node: TypeAssertion, type: TypeNode, expression: Expression) => TypeAssertion; 11681 /** @deprecated Use `factory.createParenthesizedExpression` or the factory supplied by your transformation context instead. */ 11682 const createParen: (expression: Expression) => ParenthesizedExpression; 11683 /** @deprecated Use `factory.updateParenthesizedExpression` or the factory supplied by your transformation context instead. */ 11684 const updateParen: (node: ParenthesizedExpression, expression: Expression) => ParenthesizedExpression; 11685 /** @deprecated Use `factory.createFunctionExpression` or the factory supplied by your transformation context instead. */ 11686 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; 11687 /** @deprecated Use `factory.updateFunctionExpression` or the factory supplied by your transformation context instead. */ 11688 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; 11689 /** @deprecated Use `factory.createDeleteExpression` or the factory supplied by your transformation context instead. */ 11690 const createDelete: (expression: Expression) => DeleteExpression; 11691 /** @deprecated Use `factory.updateDeleteExpression` or the factory supplied by your transformation context instead. */ 11692 const updateDelete: (node: DeleteExpression, expression: Expression) => DeleteExpression; 11693 /** @deprecated Use `factory.createTypeOfExpression` or the factory supplied by your transformation context instead. */ 11694 const createTypeOf: (expression: Expression) => TypeOfExpression; 11695 /** @deprecated Use `factory.updateTypeOfExpression` or the factory supplied by your transformation context instead. */ 11696 const updateTypeOf: (node: TypeOfExpression, expression: Expression) => TypeOfExpression; 11697 /** @deprecated Use `factory.createVoidExpression` or the factory supplied by your transformation context instead. */ 11698 const createVoid: (expression: Expression) => VoidExpression; 11699 /** @deprecated Use `factory.updateVoidExpression` or the factory supplied by your transformation context instead. */ 11700 const updateVoid: (node: VoidExpression, expression: Expression) => VoidExpression; 11701 /** @deprecated Use `factory.createAwaitExpression` or the factory supplied by your transformation context instead. */ 11702 const createAwait: (expression: Expression) => AwaitExpression; 11703 /** @deprecated Use `factory.updateAwaitExpression` or the factory supplied by your transformation context instead. */ 11704 const updateAwait: (node: AwaitExpression, expression: Expression) => AwaitExpression; 11705 /** @deprecated Use `factory.createPrefixExpression` or the factory supplied by your transformation context instead. */ 11706 const createPrefix: (operator: PrefixUnaryOperator, operand: Expression) => PrefixUnaryExpression; 11707 /** @deprecated Use `factory.updatePrefixExpression` or the factory supplied by your transformation context instead. */ 11708 const updatePrefix: (node: PrefixUnaryExpression, operand: Expression) => PrefixUnaryExpression; 11709 /** @deprecated Use `factory.createPostfixUnaryExpression` or the factory supplied by your transformation context instead. */ 11710 const createPostfix: (operand: Expression, operator: PostfixUnaryOperator) => PostfixUnaryExpression; 11711 /** @deprecated Use `factory.updatePostfixUnaryExpression` or the factory supplied by your transformation context instead. */ 11712 const updatePostfix: (node: PostfixUnaryExpression, operand: Expression) => PostfixUnaryExpression; 11713 /** @deprecated Use `factory.createBinaryExpression` or the factory supplied by your transformation context instead. */ 11714 const createBinary: (left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression) => BinaryExpression; 11715 /** @deprecated Use `factory.updateConditionalExpression` or the factory supplied by your transformation context instead. */ 11716 const updateConditional: (node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression) => ConditionalExpression; 11717 /** @deprecated Use `factory.createTemplateExpression` or the factory supplied by your transformation context instead. */ 11718 const createTemplateExpression: (head: TemplateHead, templateSpans: readonly TemplateSpan[]) => TemplateExpression; 11719 /** @deprecated Use `factory.updateTemplateExpression` or the factory supplied by your transformation context instead. */ 11720 const updateTemplateExpression: (node: TemplateExpression, head: TemplateHead, templateSpans: readonly TemplateSpan[]) => TemplateExpression; 11721 /** @deprecated Use `factory.createTemplateHead` or the factory supplied by your transformation context instead. */ 11722 const createTemplateHead: { 11723 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateHead; 11724 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateHead; 11725 }; 11726 /** @deprecated Use `factory.createTemplateMiddle` or the factory supplied by your transformation context instead. */ 11727 const createTemplateMiddle: { 11728 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateMiddle; 11729 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateMiddle; 11730 }; 11731 /** @deprecated Use `factory.createTemplateTail` or the factory supplied by your transformation context instead. */ 11732 const createTemplateTail: { 11733 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateTail; 11734 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateTail; 11735 }; 11736 /** @deprecated Use `factory.createNoSubstitutionTemplateLiteral` or the factory supplied by your transformation context instead. */ 11737 const createNoSubstitutionTemplateLiteral: { 11738 (text: string, rawText?: string | undefined): NoSubstitutionTemplateLiteral; 11739 (text: string | undefined, rawText: string): NoSubstitutionTemplateLiteral; 11740 }; 11741 /** @deprecated Use `factory.updateYieldExpression` or the factory supplied by your transformation context instead. */ 11742 const updateYield: (node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression | undefined) => YieldExpression; 11743 /** @deprecated Use `factory.createSpreadExpression` or the factory supplied by your transformation context instead. */ 11744 const createSpread: (expression: Expression) => SpreadElement; 11745 /** @deprecated Use `factory.updateSpreadExpression` or the factory supplied by your transformation context instead. */ 11746 const updateSpread: (node: SpreadElement, expression: Expression) => SpreadElement; 11747 /** @deprecated Use `factory.createOmittedExpression` or the factory supplied by your transformation context instead. */ 11748 const createOmittedExpression: () => OmittedExpression; 11749 /** @deprecated Use `factory.createAsExpression` or the factory supplied by your transformation context instead. */ 11750 const createAsExpression: (expression: Expression, type: TypeNode) => AsExpression; 11751 /** @deprecated Use `factory.updateAsExpression` or the factory supplied by your transformation context instead. */ 11752 const updateAsExpression: (node: AsExpression, expression: Expression, type: TypeNode) => AsExpression; 11753 /** @deprecated Use `factory.createNonNullExpression` or the factory supplied by your transformation context instead. */ 11754 const createNonNullExpression: (expression: Expression) => NonNullExpression; 11755 /** @deprecated Use `factory.updateNonNullExpression` or the factory supplied by your transformation context instead. */ 11756 const updateNonNullExpression: (node: NonNullExpression, expression: Expression) => NonNullExpression; 11757 /** @deprecated Use `factory.createNonNullChain` or the factory supplied by your transformation context instead. */ 11758 const createNonNullChain: (expression: Expression) => NonNullChain; 11759 /** @deprecated Use `factory.updateNonNullChain` or the factory supplied by your transformation context instead. */ 11760 const updateNonNullChain: (node: NonNullChain, expression: Expression) => NonNullChain; 11761 /** @deprecated Use `factory.createMetaProperty` or the factory supplied by your transformation context instead. */ 11762 const createMetaProperty: (keywordToken: SyntaxKind.ImportKeyword | SyntaxKind.NewKeyword, name: Identifier) => MetaProperty; 11763 /** @deprecated Use `factory.updateMetaProperty` or the factory supplied by your transformation context instead. */ 11764 const updateMetaProperty: (node: MetaProperty, name: Identifier) => MetaProperty; 11765 /** @deprecated Use `factory.createTemplateSpan` or the factory supplied by your transformation context instead. */ 11766 const createTemplateSpan: (expression: Expression, literal: TemplateMiddle | TemplateTail) => TemplateSpan; 11767 /** @deprecated Use `factory.updateTemplateSpan` or the factory supplied by your transformation context instead. */ 11768 const updateTemplateSpan: (node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail) => TemplateSpan; 11769 /** @deprecated Use `factory.createSemicolonClassElement` or the factory supplied by your transformation context instead. */ 11770 const createSemicolonClassElement: () => SemicolonClassElement; 11771 /** @deprecated Use `factory.createBlock` or the factory supplied by your transformation context instead. */ 11772 const createBlock: (statements: readonly Statement[], multiLine?: boolean | undefined) => Block; 11773 /** @deprecated Use `factory.updateBlock` or the factory supplied by your transformation context instead. */ 11774 const updateBlock: (node: Block, statements: readonly Statement[]) => Block; 11775 /** @deprecated Use `factory.createVariableStatement` or the factory supplied by your transformation context instead. */ 11776 const createVariableStatement: (modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList | readonly VariableDeclaration[]) => VariableStatement; 11777 /** @deprecated Use `factory.updateVariableStatement` or the factory supplied by your transformation context instead. */ 11778 const updateVariableStatement: (node: VariableStatement, modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList) => VariableStatement; 11779 /** @deprecated Use `factory.createEmptyStatement` or the factory supplied by your transformation context instead. */ 11780 const createEmptyStatement: () => EmptyStatement; 11781 /** @deprecated Use `factory.createExpressionStatement` or the factory supplied by your transformation context instead. */ 11782 const createExpressionStatement: (expression: Expression) => ExpressionStatement; 11783 /** @deprecated Use `factory.updateExpressionStatement` or the factory supplied by your transformation context instead. */ 11784 const updateExpressionStatement: (node: ExpressionStatement, expression: Expression) => ExpressionStatement; 11785 /** @deprecated Use `factory.createExpressionStatement` or the factory supplied by your transformation context instead. */ 11786 const createStatement: (expression: Expression) => ExpressionStatement; 11787 /** @deprecated Use `factory.updateExpressionStatement` or the factory supplied by your transformation context instead. */ 11788 const updateStatement: (node: ExpressionStatement, expression: Expression) => ExpressionStatement; 11789 /** @deprecated Use `factory.createIfStatement` or the factory supplied by your transformation context instead. */ 11790 const createIf: (expression: Expression, thenStatement: Statement, elseStatement?: Statement | undefined) => IfStatement; 11791 /** @deprecated Use `factory.updateIfStatement` or the factory supplied by your transformation context instead. */ 11792 const updateIf: (node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement | undefined) => IfStatement; 11793 /** @deprecated Use `factory.createDoStatement` or the factory supplied by your transformation context instead. */ 11794 const createDo: (statement: Statement, expression: Expression) => DoStatement; 11795 /** @deprecated Use `factory.updateDoStatement` or the factory supplied by your transformation context instead. */ 11796 const updateDo: (node: DoStatement, statement: Statement, expression: Expression) => DoStatement; 11797 /** @deprecated Use `factory.createWhileStatement` or the factory supplied by your transformation context instead. */ 11798 const createWhile: (expression: Expression, statement: Statement) => WhileStatement; 11799 /** @deprecated Use `factory.updateWhileStatement` or the factory supplied by your transformation context instead. */ 11800 const updateWhile: (node: WhileStatement, expression: Expression, statement: Statement) => WhileStatement; 11801 /** @deprecated Use `factory.createForStatement` or the factory supplied by your transformation context instead. */ 11802 const createFor: (initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement) => ForStatement; 11803 /** @deprecated Use `factory.updateForStatement` or the factory supplied by your transformation context instead. */ 11804 const updateFor: (node: ForStatement, initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement) => ForStatement; 11805 /** @deprecated Use `factory.createForInStatement` or the factory supplied by your transformation context instead. */ 11806 const createForIn: (initializer: ForInitializer, expression: Expression, statement: Statement) => ForInStatement; 11807 /** @deprecated Use `factory.updateForInStatement` or the factory supplied by your transformation context instead. */ 11808 const updateForIn: (node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement) => ForInStatement; 11809 /** @deprecated Use `factory.createForOfStatement` or the factory supplied by your transformation context instead. */ 11810 const createForOf: (awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement) => ForOfStatement; 11811 /** @deprecated Use `factory.updateForOfStatement` or the factory supplied by your transformation context instead. */ 11812 const updateForOf: (node: ForOfStatement, awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement) => ForOfStatement; 11813 /** @deprecated Use `factory.createContinueStatement` or the factory supplied by your transformation context instead. */ 11814 const createContinue: (label?: string | Identifier | undefined) => ContinueStatement; 11815 /** @deprecated Use `factory.updateContinueStatement` or the factory supplied by your transformation context instead. */ 11816 const updateContinue: (node: ContinueStatement, label: Identifier | undefined) => ContinueStatement; 11817 /** @deprecated Use `factory.createBreakStatement` or the factory supplied by your transformation context instead. */ 11818 const createBreak: (label?: string | Identifier | undefined) => BreakStatement; 11819 /** @deprecated Use `factory.updateBreakStatement` or the factory supplied by your transformation context instead. */ 11820 const updateBreak: (node: BreakStatement, label: Identifier | undefined) => BreakStatement; 11821 /** @deprecated Use `factory.createReturnStatement` or the factory supplied by your transformation context instead. */ 11822 const createReturn: (expression?: Expression | undefined) => ReturnStatement; 11823 /** @deprecated Use `factory.updateReturnStatement` or the factory supplied by your transformation context instead. */ 11824 const updateReturn: (node: ReturnStatement, expression: Expression | undefined) => ReturnStatement; 11825 /** @deprecated Use `factory.createWithStatement` or the factory supplied by your transformation context instead. */ 11826 const createWith: (expression: Expression, statement: Statement) => WithStatement; 11827 /** @deprecated Use `factory.updateWithStatement` or the factory supplied by your transformation context instead. */ 11828 const updateWith: (node: WithStatement, expression: Expression, statement: Statement) => WithStatement; 11829 /** @deprecated Use `factory.createSwitchStatement` or the factory supplied by your transformation context instead. */ 11830 const createSwitch: (expression: Expression, caseBlock: CaseBlock) => SwitchStatement; 11831 /** @deprecated Use `factory.updateSwitchStatement` or the factory supplied by your transformation context instead. */ 11832 const updateSwitch: (node: SwitchStatement, expression: Expression, caseBlock: CaseBlock) => SwitchStatement; 11833 /** @deprecated Use `factory.createLabelStatement` or the factory supplied by your transformation context instead. */ 11834 const createLabel: (label: string | Identifier, statement: Statement) => LabeledStatement; 11835 /** @deprecated Use `factory.updateLabelStatement` or the factory supplied by your transformation context instead. */ 11836 const updateLabel: (node: LabeledStatement, label: Identifier, statement: Statement) => LabeledStatement; 11837 /** @deprecated Use `factory.createThrowStatement` or the factory supplied by your transformation context instead. */ 11838 const createThrow: (expression: Expression) => ThrowStatement; 11839 /** @deprecated Use `factory.updateThrowStatement` or the factory supplied by your transformation context instead. */ 11840 const updateThrow: (node: ThrowStatement, expression: Expression) => ThrowStatement; 11841 /** @deprecated Use `factory.createTryStatement` or the factory supplied by your transformation context instead. */ 11842 const createTry: (tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined) => TryStatement; 11843 /** @deprecated Use `factory.updateTryStatement` or the factory supplied by your transformation context instead. */ 11844 const updateTry: (node: TryStatement, tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined) => TryStatement; 11845 /** @deprecated Use `factory.createDebuggerStatement` or the factory supplied by your transformation context instead. */ 11846 const createDebuggerStatement: () => DebuggerStatement; 11847 /** @deprecated Use `factory.createVariableDeclarationList` or the factory supplied by your transformation context instead. */ 11848 const createVariableDeclarationList: (declarations: readonly VariableDeclaration[], flags?: NodeFlags | undefined) => VariableDeclarationList; 11849 /** @deprecated Use `factory.updateVariableDeclarationList` or the factory supplied by your transformation context instead. */ 11850 const updateVariableDeclarationList: (node: VariableDeclarationList, declarations: readonly VariableDeclaration[]) => VariableDeclarationList; 11851 /** @deprecated Use `factory.createFunctionDeclaration` or the factory supplied by your transformation context instead. */ 11852 const createFunctionDeclaration: { 11853 (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; 11854 (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; 11855 }; 11856 /** @deprecated Use `factory.updateFunctionDeclaration` or the factory supplied by your transformation context instead. */ 11857 const updateFunctionDeclaration: { 11858 (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; 11859 (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; 11860 }; 11861 /** @deprecated Use `factory.createClassDeclaration` or the factory supplied by your transformation context instead. */ 11862 const createClassDeclaration: { 11863 (modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 11864 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 11865 }; 11866 /** @deprecated Use `factory.updateClassDeclaration` or the factory supplied by your transformation context instead. */ 11867 const updateClassDeclaration: { 11868 (node: ClassDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 11869 (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; 11870 }; 11871 /** @deprecated Use `factory.createInterfaceDeclaration` or the factory supplied by your transformation context instead. */ 11872 const createInterfaceDeclaration: { 11873 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 11874 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 11875 }; 11876 /** @deprecated Use `factory.updateInterfaceDeclaration` or the factory supplied by your transformation context instead. */ 11877 const updateInterfaceDeclaration: { 11878 (node: InterfaceDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 11879 (node: InterfaceDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 11880 }; 11881 /** @deprecated Use `factory.createTypeAliasDeclaration` or the factory supplied by your transformation context instead. */ 11882 const createTypeAliasDeclaration: { 11883 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 11884 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 11885 }; 11886 /** @deprecated Use `factory.updateTypeAliasDeclaration` or the factory supplied by your transformation context instead. */ 11887 const updateTypeAliasDeclaration: { 11888 (node: TypeAliasDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 11889 (node: TypeAliasDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 11890 }; 11891 /** @deprecated Use `factory.createEnumDeclaration` or the factory supplied by your transformation context instead. */ 11892 const createEnumDeclaration: { 11893 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 11894 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 11895 }; 11896 /** @deprecated Use `factory.updateEnumDeclaration` or the factory supplied by your transformation context instead. */ 11897 const updateEnumDeclaration: { 11898 (node: EnumDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 11899 (node: EnumDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 11900 }; 11901 /** @deprecated Use `factory.createModuleDeclaration` or the factory supplied by your transformation context instead. */ 11902 const createModuleDeclaration: { 11903 (modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags | undefined): ModuleDeclaration; 11904 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags | undefined): ModuleDeclaration; 11905 }; 11906 /** @deprecated Use `factory.updateModuleDeclaration` or the factory supplied by your transformation context instead. */ 11907 const updateModuleDeclaration: { 11908 (node: ModuleDeclaration, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 11909 (node: ModuleDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 11910 }; 11911 /** @deprecated Use `factory.createModuleBlock` or the factory supplied by your transformation context instead. */ 11912 const createModuleBlock: (statements: readonly Statement[]) => ModuleBlock; 11913 /** @deprecated Use `factory.updateModuleBlock` or the factory supplied by your transformation context instead. */ 11914 const updateModuleBlock: (node: ModuleBlock, statements: readonly Statement[]) => ModuleBlock; 11915 /** @deprecated Use `factory.createCaseBlock` or the factory supplied by your transformation context instead. */ 11916 const createCaseBlock: (clauses: readonly CaseOrDefaultClause[]) => CaseBlock; 11917 /** @deprecated Use `factory.updateCaseBlock` or the factory supplied by your transformation context instead. */ 11918 const updateCaseBlock: (node: CaseBlock, clauses: readonly CaseOrDefaultClause[]) => CaseBlock; 11919 /** @deprecated Use `factory.createNamespaceExportDeclaration` or the factory supplied by your transformation context instead. */ 11920 const createNamespaceExportDeclaration: (name: string | Identifier) => NamespaceExportDeclaration; 11921 /** @deprecated Use `factory.updateNamespaceExportDeclaration` or the factory supplied by your transformation context instead. */ 11922 const updateNamespaceExportDeclaration: (node: NamespaceExportDeclaration, name: Identifier) => NamespaceExportDeclaration; 11923 /** @deprecated Use `factory.createImportEqualsDeclaration` or the factory supplied by your transformation context instead. */ 11924 const createImportEqualsDeclaration: { 11925 (modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 11926 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 11927 }; 11928 /** @deprecated Use `factory.updateImportEqualsDeclaration` or the factory supplied by your transformation context instead. */ 11929 const updateImportEqualsDeclaration: { 11930 (node: ImportEqualsDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 11931 (node: ImportEqualsDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 11932 }; 11933 /** @deprecated Use `factory.createImportDeclaration` or the factory supplied by your transformation context instead. */ 11934 const createImportDeclaration: { 11935 (modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause | undefined): ImportDeclaration; 11936 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause | undefined): ImportDeclaration; 11937 }; 11938 /** @deprecated Use `factory.updateImportDeclaration` or the factory supplied by your transformation context instead. */ 11939 const updateImportDeclaration: { 11940 (node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 11941 (node: ImportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 11942 }; 11943 /** @deprecated Use `factory.createNamespaceImport` or the factory supplied by your transformation context instead. */ 11944 const createNamespaceImport: (name: Identifier) => NamespaceImport; 11945 /** @deprecated Use `factory.updateNamespaceImport` or the factory supplied by your transformation context instead. */ 11946 const updateNamespaceImport: (node: NamespaceImport, name: Identifier) => NamespaceImport; 11947 /** @deprecated Use `factory.createNamedImports` or the factory supplied by your transformation context instead. */ 11948 const createNamedImports: (elements: readonly ImportSpecifier[]) => NamedImports; 11949 /** @deprecated Use `factory.updateNamedImports` or the factory supplied by your transformation context instead. */ 11950 const updateNamedImports: (node: NamedImports, elements: readonly ImportSpecifier[]) => NamedImports; 11951 /** @deprecated Use `factory.createImportSpecifier` or the factory supplied by your transformation context instead. */ 11952 const createImportSpecifier: (isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ImportSpecifier; 11953 /** @deprecated Use `factory.updateImportSpecifier` or the factory supplied by your transformation context instead. */ 11954 const updateImportSpecifier: (node: ImportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ImportSpecifier; 11955 /** @deprecated Use `factory.createExportAssignment` or the factory supplied by your transformation context instead. */ 11956 const createExportAssignment: { 11957 (modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 11958 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 11959 }; 11960 /** @deprecated Use `factory.updateExportAssignment` or the factory supplied by your transformation context instead. */ 11961 const updateExportAssignment: { 11962 (node: ExportAssignment, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 11963 (node: ExportAssignment, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 11964 }; 11965 /** @deprecated Use `factory.createNamedExports` or the factory supplied by your transformation context instead. */ 11966 const createNamedExports: (elements: readonly ExportSpecifier[]) => NamedExports; 11967 /** @deprecated Use `factory.updateNamedExports` or the factory supplied by your transformation context instead. */ 11968 const updateNamedExports: (node: NamedExports, elements: readonly ExportSpecifier[]) => NamedExports; 11969 /** @deprecated Use `factory.createExportSpecifier` or the factory supplied by your transformation context instead. */ 11970 const createExportSpecifier: (isTypeOnly: boolean, propertyName: string | Identifier | undefined, name: string | Identifier) => ExportSpecifier; 11971 /** @deprecated Use `factory.updateExportSpecifier` or the factory supplied by your transformation context instead. */ 11972 const updateExportSpecifier: (node: ExportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ExportSpecifier; 11973 /** @deprecated Use `factory.createExternalModuleReference` or the factory supplied by your transformation context instead. */ 11974 const createExternalModuleReference: (expression: Expression) => ExternalModuleReference; 11975 /** @deprecated Use `factory.updateExternalModuleReference` or the factory supplied by your transformation context instead. */ 11976 const updateExternalModuleReference: (node: ExternalModuleReference, expression: Expression) => ExternalModuleReference; 11977 /** @deprecated Use `factory.createJSDocTypeExpression` or the factory supplied by your transformation context instead. */ 11978 const createJSDocTypeExpression: (type: TypeNode) => JSDocTypeExpression; 11979 /** @deprecated Use `factory.createJSDocTypeTag` or the factory supplied by your transformation context instead. */ 11980 const createJSDocTypeTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTypeTag; 11981 /** @deprecated Use `factory.createJSDocReturnTag` or the factory supplied by your transformation context instead. */ 11982 const createJSDocReturnTag: (tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocReturnTag; 11983 /** @deprecated Use `factory.createJSDocThisTag` or the factory supplied by your transformation context instead. */ 11984 const createJSDocThisTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocThisTag; 11985 /** @deprecated Use `factory.createJSDocComment` or the factory supplied by your transformation context instead. */ 11986 const createJSDocComment: (comment?: string | NodeArray<JSDocComment> | undefined, tags?: readonly JSDocTag[] | undefined) => JSDoc; 11987 /** @deprecated Use `factory.createJSDocParameterTag` or the factory supplied by your transformation context instead. */ 11988 const createJSDocParameterTag: (tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, isNameFirst?: boolean | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocParameterTag; 11989 /** @deprecated Use `factory.createJSDocClassTag` or the factory supplied by your transformation context instead. */ 11990 const createJSDocClassTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocClassTag; 11991 /** @deprecated Use `factory.createJSDocAugmentsTag` or the factory supplied by your transformation context instead. */ 11992 const createJSDocAugmentsTag: (tagName: Identifier | undefined, className: ExpressionWithTypeArguments & { 11993 readonly expression: Identifier | PropertyAccessEntityNameExpression; 11994 }, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocAugmentsTag; 11995 /** @deprecated Use `factory.createJSDocEnumTag` or the factory supplied by your transformation context instead. */ 11996 const createJSDocEnumTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocEnumTag; 11997 /** @deprecated Use `factory.createJSDocTemplateTag` or the factory supplied by your transformation context instead. */ 11998 const createJSDocTemplateTag: (tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTemplateTag; 11999 /** @deprecated Use `factory.createJSDocTypedefTag` or the factory supplied by your transformation context instead. */ 12000 const createJSDocTypedefTag: (tagName: Identifier | undefined, typeExpression?: JSDocTypeLiteral | JSDocTypeExpression | undefined, fullName?: Identifier | JSDocNamespaceDeclaration | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTypedefTag; 12001 /** @deprecated Use `factory.createJSDocCallbackTag` or the factory supplied by your transformation context instead. */ 12002 const createJSDocCallbackTag: (tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName?: Identifier | JSDocNamespaceDeclaration | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocCallbackTag; 12003 /** @deprecated Use `factory.createJSDocSignature` or the factory supplied by your transformation context instead. */ 12004 const createJSDocSignature: (typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type?: JSDocReturnTag | undefined) => JSDocSignature; 12005 /** @deprecated Use `factory.createJSDocPropertyTag` or the factory supplied by your transformation context instead. */ 12006 const createJSDocPropertyTag: (tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, isNameFirst?: boolean | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPropertyTag; 12007 /** @deprecated Use `factory.createJSDocTypeLiteral` or the factory supplied by your transformation context instead. */ 12008 const createJSDocTypeLiteral: (jsDocPropertyTags?: readonly JSDocPropertyLikeTag[] | undefined, isArrayType?: boolean | undefined) => JSDocTypeLiteral; 12009 /** @deprecated Use `factory.createJSDocImplementsTag` or the factory supplied by your transformation context instead. */ 12010 const createJSDocImplementsTag: (tagName: Identifier | undefined, className: ExpressionWithTypeArguments & { 12011 readonly expression: Identifier | PropertyAccessEntityNameExpression; 12012 }, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocImplementsTag; 12013 /** @deprecated Use `factory.createJSDocAuthorTag` or the factory supplied by your transformation context instead. */ 12014 const createJSDocAuthorTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocAuthorTag; 12015 /** @deprecated Use `factory.createJSDocPublicTag` or the factory supplied by your transformation context instead. */ 12016 const createJSDocPublicTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPublicTag; 12017 /** @deprecated Use `factory.createJSDocPrivateTag` or the factory supplied by your transformation context instead. */ 12018 const createJSDocPrivateTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPrivateTag; 12019 /** @deprecated Use `factory.createJSDocProtectedTag` or the factory supplied by your transformation context instead. */ 12020 const createJSDocProtectedTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocProtectedTag; 12021 /** @deprecated Use `factory.createJSDocReadonlyTag` or the factory supplied by your transformation context instead. */ 12022 const createJSDocReadonlyTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocReadonlyTag; 12023 /** @deprecated Use `factory.createJSDocUnknownTag` or the factory supplied by your transformation context instead. */ 12024 const createJSDocTag: (tagName: Identifier, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocUnknownTag; 12025 /** @deprecated Use `factory.createJsxElement` or the factory supplied by your transformation context instead. */ 12026 const createJsxElement: (openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement) => JsxElement; 12027 /** @deprecated Use `factory.updateJsxElement` or the factory supplied by your transformation context instead. */ 12028 const updateJsxElement: (node: JsxElement, openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement) => JsxElement; 12029 /** @deprecated Use `factory.createJsxSelfClosingElement` or the factory supplied by your transformation context instead. */ 12030 const createJsxSelfClosingElement: (tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxSelfClosingElement; 12031 /** @deprecated Use `factory.updateJsxSelfClosingElement` or the factory supplied by your transformation context instead. */ 12032 const updateJsxSelfClosingElement: (node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxSelfClosingElement; 12033 /** @deprecated Use `factory.createJsxOpeningElement` or the factory supplied by your transformation context instead. */ 12034 const createJsxOpeningElement: (tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxOpeningElement; 12035 /** @deprecated Use `factory.updateJsxOpeningElement` or the factory supplied by your transformation context instead. */ 12036 const updateJsxOpeningElement: (node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxOpeningElement; 12037 /** @deprecated Use `factory.createJsxClosingElement` or the factory supplied by your transformation context instead. */ 12038 const createJsxClosingElement: (tagName: JsxTagNameExpression) => JsxClosingElement; 12039 /** @deprecated Use `factory.updateJsxClosingElement` or the factory supplied by your transformation context instead. */ 12040 const updateJsxClosingElement: (node: JsxClosingElement, tagName: JsxTagNameExpression) => JsxClosingElement; 12041 /** @deprecated Use `factory.createJsxFragment` or the factory supplied by your transformation context instead. */ 12042 const createJsxFragment: (openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment) => JsxFragment; 12043 /** @deprecated Use `factory.createJsxText` or the factory supplied by your transformation context instead. */ 12044 const createJsxText: (text: string, containsOnlyTriviaWhiteSpaces?: boolean | undefined) => JsxText; 12045 /** @deprecated Use `factory.updateJsxText` or the factory supplied by your transformation context instead. */ 12046 const updateJsxText: (node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean | undefined) => JsxText; 12047 /** @deprecated Use `factory.createJsxOpeningFragment` or the factory supplied by your transformation context instead. */ 12048 const createJsxOpeningFragment: () => JsxOpeningFragment; 12049 /** @deprecated Use `factory.createJsxJsxClosingFragment` or the factory supplied by your transformation context instead. */ 12050 const createJsxJsxClosingFragment: () => JsxClosingFragment; 12051 /** @deprecated Use `factory.updateJsxFragment` or the factory supplied by your transformation context instead. */ 12052 const updateJsxFragment: (node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment) => JsxFragment; 12053 /** @deprecated Use `factory.createJsxAttribute` or the factory supplied by your transformation context instead. */ 12054 const createJsxAttribute: (name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; 12055 /** @deprecated Use `factory.updateJsxAttribute` or the factory supplied by your transformation context instead. */ 12056 const updateJsxAttribute: (node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; 12057 /** @deprecated Use `factory.createJsxAttributes` or the factory supplied by your transformation context instead. */ 12058 const createJsxAttributes: (properties: readonly JsxAttributeLike[]) => JsxAttributes; 12059 /** @deprecated Use `factory.updateJsxAttributes` or the factory supplied by your transformation context instead. */ 12060 const updateJsxAttributes: (node: JsxAttributes, properties: readonly JsxAttributeLike[]) => JsxAttributes; 12061 /** @deprecated Use `factory.createJsxSpreadAttribute` or the factory supplied by your transformation context instead. */ 12062 const createJsxSpreadAttribute: (expression: Expression) => JsxSpreadAttribute; 12063 /** @deprecated Use `factory.updateJsxSpreadAttribute` or the factory supplied by your transformation context instead. */ 12064 const updateJsxSpreadAttribute: (node: JsxSpreadAttribute, expression: Expression) => JsxSpreadAttribute; 12065 /** @deprecated Use `factory.createJsxExpression` or the factory supplied by your transformation context instead. */ 12066 const createJsxExpression: (dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined) => JsxExpression; 12067 /** @deprecated Use `factory.updateJsxExpression` or the factory supplied by your transformation context instead. */ 12068 const updateJsxExpression: (node: JsxExpression, expression: Expression | undefined) => JsxExpression; 12069 /** @deprecated Use `factory.createCaseClause` or the factory supplied by your transformation context instead. */ 12070 const createCaseClause: (expression: Expression, statements: readonly Statement[]) => CaseClause; 12071 /** @deprecated Use `factory.updateCaseClause` or the factory supplied by your transformation context instead. */ 12072 const updateCaseClause: (node: CaseClause, expression: Expression, statements: readonly Statement[]) => CaseClause; 12073 /** @deprecated Use `factory.createDefaultClause` or the factory supplied by your transformation context instead. */ 12074 const createDefaultClause: (statements: readonly Statement[]) => DefaultClause; 12075 /** @deprecated Use `factory.updateDefaultClause` or the factory supplied by your transformation context instead. */ 12076 const updateDefaultClause: (node: DefaultClause, statements: readonly Statement[]) => DefaultClause; 12077 /** @deprecated Use `factory.createHeritageClause` or the factory supplied by your transformation context instead. */ 12078 const createHeritageClause: (token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword, types: readonly ExpressionWithTypeArguments[]) => HeritageClause; 12079 /** @deprecated Use `factory.updateHeritageClause` or the factory supplied by your transformation context instead. */ 12080 const updateHeritageClause: (node: HeritageClause, types: readonly ExpressionWithTypeArguments[]) => HeritageClause; 12081 /** @deprecated Use `factory.createCatchClause` or the factory supplied by your transformation context instead. */ 12082 const createCatchClause: (variableDeclaration: string | VariableDeclaration | BindingName | undefined, block: Block) => CatchClause; 12083 /** @deprecated Use `factory.updateCatchClause` or the factory supplied by your transformation context instead. */ 12084 const updateCatchClause: (node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block) => CatchClause; 12085 /** @deprecated Use `factory.createPropertyAssignment` or the factory supplied by your transformation context instead. */ 12086 const createPropertyAssignment: (name: string | PropertyName, initializer: Expression) => PropertyAssignment; 12087 /** @deprecated Use `factory.updatePropertyAssignment` or the factory supplied by your transformation context instead. */ 12088 const updatePropertyAssignment: (node: PropertyAssignment, name: PropertyName, initializer: Expression) => PropertyAssignment; 12089 /** @deprecated Use `factory.createShorthandPropertyAssignment` or the factory supplied by your transformation context instead. */ 12090 const createShorthandPropertyAssignment: (name: string | Identifier, objectAssignmentInitializer?: Expression | undefined) => ShorthandPropertyAssignment; 12091 /** @deprecated Use `factory.updateShorthandPropertyAssignment` or the factory supplied by your transformation context instead. */ 12092 const updateShorthandPropertyAssignment: (node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression | undefined) => ShorthandPropertyAssignment; 12093 /** @deprecated Use `factory.createSpreadAssignment` or the factory supplied by your transformation context instead. */ 12094 const createSpreadAssignment: (expression: Expression) => SpreadAssignment; 12095 /** @deprecated Use `factory.updateSpreadAssignment` or the factory supplied by your transformation context instead. */ 12096 const updateSpreadAssignment: (node: SpreadAssignment, expression: Expression) => SpreadAssignment; 12097 /** @deprecated Use `factory.createEnumMember` or the factory supplied by your transformation context instead. */ 12098 const createEnumMember: (name: string | PropertyName, initializer?: Expression | undefined) => EnumMember; 12099 /** @deprecated Use `factory.updateEnumMember` or the factory supplied by your transformation context instead. */ 12100 const updateEnumMember: (node: EnumMember, name: PropertyName, initializer: Expression | undefined) => EnumMember; 12101 /** @deprecated Use `factory.updateSourceFile` or the factory supplied by your transformation context instead. */ 12102 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; 12103 /** @deprecated Use `factory.createNotEmittedStatement` or the factory supplied by your transformation context instead. */ 12104 const createNotEmittedStatement: (original: Node) => NotEmittedStatement; 12105 /** @deprecated Use `factory.createPartiallyEmittedExpression` or the factory supplied by your transformation context instead. */ 12106 const createPartiallyEmittedExpression: (expression: Expression, original?: Node | undefined) => PartiallyEmittedExpression; 12107 /** @deprecated Use `factory.updatePartiallyEmittedExpression` or the factory supplied by your transformation context instead. */ 12108 const updatePartiallyEmittedExpression: (node: PartiallyEmittedExpression, expression: Expression) => PartiallyEmittedExpression; 12109 /** @deprecated Use `factory.createCommaListExpression` or the factory supplied by your transformation context instead. */ 12110 const createCommaList: (elements: readonly Expression[]) => CommaListExpression; 12111 /** @deprecated Use `factory.updateCommaListExpression` or the factory supplied by your transformation context instead. */ 12112 const updateCommaList: (node: CommaListExpression, elements: readonly Expression[]) => CommaListExpression; 12113 /** @deprecated Use `factory.createBundle` or the factory supplied by your transformation context instead. */ 12114 const createBundle: (sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[] | undefined) => Bundle; 12115 /** @deprecated Use `factory.updateBundle` or the factory supplied by your transformation context instead. */ 12116 const updateBundle: (node: Bundle, sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[] | undefined) => Bundle; 12117 /** @deprecated Use `factory.createImmediatelyInvokedFunctionExpression` or the factory supplied by your transformation context instead. */ 12118 const createImmediatelyInvokedFunctionExpression: { 12119 (statements: readonly Statement[]): CallExpression; 12120 (statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 12121 }; 12122 /** @deprecated Use `factory.createImmediatelyInvokedArrowFunction` or the factory supplied by your transformation context instead. */ 12123 const createImmediatelyInvokedArrowFunction: { 12124 (statements: readonly Statement[]): CallExpression; 12125 (statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 12126 }; 12127 /** @deprecated Use `factory.createVoidZero` or the factory supplied by your transformation context instead. */ 12128 const createVoidZero: () => VoidExpression; 12129 /** @deprecated Use `factory.createExportDefault` or the factory supplied by your transformation context instead. */ 12130 const createExportDefault: (expression: Expression) => ExportAssignment; 12131 /** @deprecated Use `factory.createExternalModuleExport` or the factory supplied by your transformation context instead. */ 12132 const createExternalModuleExport: (exportName: Identifier) => ExportDeclaration; 12133 /** @deprecated Use `factory.createNamespaceExport` or the factory supplied by your transformation context instead. */ 12134 const createNamespaceExport: (name: Identifier) => NamespaceExport; 12135 /** @deprecated Use `factory.updateNamespaceExport` or the factory supplied by your transformation context instead. */ 12136 const updateNamespaceExport: (node: NamespaceExport, name: Identifier) => NamespaceExport; 12137 /** @deprecated Use `factory.createToken` or the factory supplied by your transformation context instead. */ 12138 const createToken: <TKind extends SyntaxKind>(kind: TKind) => Token<TKind>; 12139 /** @deprecated Use `factory.createIdentifier` or the factory supplied by your transformation context instead. */ 12140 const createIdentifier: (text: string) => Identifier; 12141 /** @deprecated Use `factory.createTempVariable` or the factory supplied by your transformation context instead. */ 12142 const createTempVariable: (recordTempVariable: ((node: Identifier) => void) | undefined) => Identifier; 12143 /** @deprecated Use `factory.getGeneratedNameForNode` or the factory supplied by your transformation context instead. */ 12144 const getGeneratedNameForNode: (node: Node | undefined) => Identifier; 12145 /** @deprecated Use `factory.createUniqueName(text, GeneratedIdentifierFlags.Optimistic)` or the factory supplied by your transformation context instead. */ 12146 const createOptimisticUniqueName: (text: string) => Identifier; 12147 /** @deprecated Use `factory.createUniqueName(text, GeneratedIdentifierFlags.Optimistic | GeneratedIdentifierFlags.FileLevel)` or the factory supplied by your transformation context instead. */ 12148 const createFileLevelUniqueName: (text: string) => Identifier; 12149 /** @deprecated Use `factory.createIndexSignature` or the factory supplied by your transformation context instead. */ 12150 const createIndexSignature: (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => IndexSignatureDeclaration; 12151 /** @deprecated Use `factory.createTypePredicateNode` or the factory supplied by your transformation context instead. */ 12152 const createTypePredicateNode: (parameterName: Identifier | ThisTypeNode | string, type: TypeNode) => TypePredicateNode; 12153 /** @deprecated Use `factory.updateTypePredicateNode` or the factory supplied by your transformation context instead. */ 12154 const updateTypePredicateNode: (node: TypePredicateNode, parameterName: Identifier | ThisTypeNode, type: TypeNode) => TypePredicateNode; 12155 /** @deprecated Use `factory.createStringLiteral`, `factory.createStringLiteralFromNode`, `factory.createNumericLiteral`, `factory.createBigIntLiteral`, `factory.createTrue`, `factory.createFalse`, or the factory supplied by your transformation context instead. */ 12156 const createLiteral: { 12157 (value: string | StringLiteral | NoSubstitutionTemplateLiteral | NumericLiteral | Identifier): StringLiteral; 12158 (value: number | PseudoBigInt): NumericLiteral; 12159 (value: boolean): BooleanLiteral; 12160 (value: string | number | PseudoBigInt | boolean): PrimaryExpression; 12161 }; 12162 /** @deprecated Use `factory.createMethodSignature` or the factory supplied by your transformation context instead. */ 12163 const createMethodSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined) => MethodSignature; 12164 /** @deprecated Use `factory.updateMethodSignature` or the factory supplied by your transformation context instead. */ 12165 const updateMethodSignature: (node: MethodSignature, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined, name: PropertyName, questionToken: QuestionToken | undefined) => MethodSignature; 12166 /** @deprecated Use `factory.createTypeOperatorNode` or the factory supplied by your transformation context instead. */ 12167 const createTypeOperatorNode: { 12168 (type: TypeNode): TypeOperatorNode; 12169 (operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode; 12170 }; 12171 /** @deprecated Use `factory.createTaggedTemplate` or the factory supplied by your transformation context instead. */ 12172 const createTaggedTemplate: { 12173 (tag: Expression, template: TemplateLiteral): TaggedTemplateExpression; 12174 (tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 12175 }; 12176 /** @deprecated Use `factory.updateTaggedTemplate` or the factory supplied by your transformation context instead. */ 12177 const updateTaggedTemplate: { 12178 (node: TaggedTemplateExpression, tag: Expression, template: TemplateLiteral): TaggedTemplateExpression; 12179 (node: TaggedTemplateExpression, tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 12180 }; 12181 /** @deprecated Use `factory.updateBinary` or the factory supplied by your transformation context instead. */ 12182 const updateBinary: (node: BinaryExpression, left: Expression, right: Expression, operator?: BinaryOperator | BinaryOperatorToken) => BinaryExpression; 12183 /** @deprecated Use `factory.createConditional` or the factory supplied by your transformation context instead. */ 12184 const createConditional: { 12185 (condition: Expression, whenTrue: Expression, whenFalse: Expression): ConditionalExpression; 12186 (condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression; 12187 }; 12188 /** @deprecated Use `factory.createYield` or the factory supplied by your transformation context instead. */ 12189 const createYield: { 12190 (expression?: Expression | undefined): YieldExpression; 12191 (asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression; 12192 }; 12193 /** @deprecated Use `factory.createClassExpression` or the factory supplied by your transformation context instead. */ 12194 const createClassExpression: (modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]) => ClassExpression; 12195 /** @deprecated Use `factory.updateClassExpression` or the factory supplied by your transformation context instead. */ 12196 const updateClassExpression: (node: ClassExpression, modifiers: readonly Modifier[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]) => ClassExpression; 12197 /** @deprecated Use `factory.createPropertySignature` or the factory supplied by your transformation context instead. */ 12198 const createPropertySignature: (modifiers: readonly Modifier[] | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer?: Expression | undefined) => PropertySignature; 12199 /** @deprecated Use `factory.updatePropertySignature` or the factory supplied by your transformation context instead. */ 12200 const updatePropertySignature: (node: PropertySignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined) => PropertySignature; 12201 /** @deprecated Use `factory.createExpressionWithTypeArguments` or the factory supplied by your transformation context instead. */ 12202 const createExpressionWithTypeArguments: (typeArguments: readonly TypeNode[] | undefined, expression: Expression) => ExpressionWithTypeArguments; 12203 /** @deprecated Use `factory.updateExpressionWithTypeArguments` or the factory supplied by your transformation context instead. */ 12204 const updateExpressionWithTypeArguments: (node: ExpressionWithTypeArguments, typeArguments: readonly TypeNode[] | undefined, expression: Expression) => ExpressionWithTypeArguments; 12205 /** @deprecated Use `factory.createArrowFunction` or the factory supplied by your transformation context instead. */ 12206 const createArrowFunction: { 12207 (modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction; 12208 (modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: ConciseBody): ArrowFunction; 12209 }; 12210 /** @deprecated Use `factory.updateArrowFunction` or the factory supplied by your transformation context instead. */ 12211 const updateArrowFunction: { 12212 (node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken, body: ConciseBody): ArrowFunction; 12213 (node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: ConciseBody): ArrowFunction; 12214 }; 12215 /** @deprecated Use `factory.createVariableDeclaration` or the factory supplied by your transformation context instead. */ 12216 const createVariableDeclaration: { 12217 (name: string | BindingName, type?: TypeNode | undefined, initializer?: Expression | undefined): VariableDeclaration; 12218 (name: string | BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 12219 }; 12220 /** @deprecated Use `factory.updateVariableDeclaration` or the factory supplied by your transformation context instead. */ 12221 const updateVariableDeclaration: { 12222 (node: VariableDeclaration, name: BindingName, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 12223 (node: VariableDeclaration, name: BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 12224 }; 12225 /** @deprecated Use `factory.createImportClause` or the factory supplied by your transformation context instead. */ 12226 const createImportClause: (name: Identifier | undefined, namedBindings: NamedImportBindings | undefined, isTypeOnly?: any) => ImportClause; 12227 /** @deprecated Use `factory.updateImportClause` or the factory supplied by your transformation context instead. */ 12228 const updateImportClause: (node: ImportClause, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined, isTypeOnly: boolean) => ImportClause; 12229 /** @deprecated Use `factory.createExportDeclaration` or the factory supplied by your transformation context instead. */ 12230 const createExportDeclaration: (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression | undefined, isTypeOnly?: any) => ExportDeclaration; 12231 /** @deprecated Use `factory.updateExportDeclaration` or the factory supplied by your transformation context instead. */ 12232 const updateExportDeclaration: (node: ExportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, isTypeOnly: boolean) => ExportDeclaration; 12233 /** @deprecated Use `factory.createJSDocParameterTag` or the factory supplied by your transformation context instead. */ 12234 const createJSDocParamTag: (name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, comment?: string | undefined) => JSDocParameterTag; 12235 /** @deprecated Use `factory.createComma` or the factory supplied by your transformation context instead. */ 12236 const createComma: (left: Expression, right: Expression) => Expression; 12237 /** @deprecated Use `factory.createLessThan` or the factory supplied by your transformation context instead. */ 12238 const createLessThan: (left: Expression, right: Expression) => Expression; 12239 /** @deprecated Use `factory.createAssignment` or the factory supplied by your transformation context instead. */ 12240 const createAssignment: (left: Expression, right: Expression) => BinaryExpression; 12241 /** @deprecated Use `factory.createStrictEquality` or the factory supplied by your transformation context instead. */ 12242 const createStrictEquality: (left: Expression, right: Expression) => BinaryExpression; 12243 /** @deprecated Use `factory.createStrictInequality` or the factory supplied by your transformation context instead. */ 12244 const createStrictInequality: (left: Expression, right: Expression) => BinaryExpression; 12245 /** @deprecated Use `factory.createAdd` or the factory supplied by your transformation context instead. */ 12246 const createAdd: (left: Expression, right: Expression) => BinaryExpression; 12247 /** @deprecated Use `factory.createSubtract` or the factory supplied by your transformation context instead. */ 12248 const createSubtract: (left: Expression, right: Expression) => BinaryExpression; 12249 /** @deprecated Use `factory.createLogicalAnd` or the factory supplied by your transformation context instead. */ 12250 const createLogicalAnd: (left: Expression, right: Expression) => BinaryExpression; 12251 /** @deprecated Use `factory.createLogicalOr` or the factory supplied by your transformation context instead. */ 12252 const createLogicalOr: (left: Expression, right: Expression) => BinaryExpression; 12253 /** @deprecated Use `factory.createPostfixIncrement` or the factory supplied by your transformation context instead. */ 12254 const createPostfixIncrement: (operand: Expression) => PostfixUnaryExpression; 12255 /** @deprecated Use `factory.createLogicalNot` or the factory supplied by your transformation context instead. */ 12256 const createLogicalNot: (operand: Expression) => PrefixUnaryExpression; 12257 /** @deprecated Use an appropriate `factory` method instead. */ 12258 const createNode: (kind: SyntaxKind, pos?: any, end?: any) => Node; 12259 /** 12260 * Creates a shallow, memberwise clone of a node ~for mutation~ with its `pos`, `end`, and `parent` set. 12261 * 12262 * NOTE: It is unsafe to change any properties of a `Node` that relate to its AST children, as those changes won't be 12263 * captured with respect to transformations. 12264 * 12265 * @deprecated Use an appropriate `factory.update...` method instead, use `setCommentRange` or `setSourceMapRange`, and avoid setting `parent`. 12266 */ 12267 const getMutableClone: <T extends Node>(node: T) => T; 12268} 12269declare namespace ts { 12270 /** @deprecated Use `isTypeAssertionExpression` instead. */ 12271 const isTypeAssertion: (node: Node) => node is TypeAssertion; 12272} 12273declare namespace ts { 12274 /** 12275 * @deprecated Use `ts.ReadonlyESMap<K, V>` instead. 12276 */ 12277 interface ReadonlyMap<T> extends ReadonlyESMap<string, T> { 12278 } 12279 /** 12280 * @deprecated Use `ts.ESMap<K, V>` instead. 12281 */ 12282 interface Map<T> extends ESMap<string, T> { 12283 } 12284} 12285declare namespace ts { 12286 /** 12287 * @deprecated Use `isMemberName` instead. 12288 */ 12289 const isIdentifierOrPrivateIdentifier: (node: Node) => node is MemberName; 12290} 12291declare namespace ts { 12292 interface NodeFactory { 12293 /** @deprecated Use the overload that accepts 'modifiers' */ 12294 createConstructorTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): ConstructorTypeNode; 12295 /** @deprecated Use the overload that accepts 'modifiers' */ 12296 updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): ConstructorTypeNode; 12297 } 12298} 12299declare namespace ts { 12300 interface NodeFactory { 12301 createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 12302 /** @deprecated Use the overload that accepts 'assertions' */ 12303 createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 12304 /** @deprecated Use the overload that accepts 'assertions' */ 12305 updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; 12306 } 12307} 12308declare namespace ts { 12309 interface NodeFactory { 12310 /** @deprecated Use the overload that accepts 'modifiers' */ 12311 createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; 12312 /** @deprecated Use the overload that accepts 'modifiers' */ 12313 updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 12314 } 12315} 12316declare namespace ts { 12317 interface Node { 12318 /** 12319 * @deprecated `decorators` has been removed from `Node` and merged with `modifiers` on the `Node` subtypes that support them. 12320 * Use `ts.canHaveDecorators()` to test whether a `Node` can have decorators. 12321 * Use `ts.getDecorators()` to get the decorators of a `Node`. 12322 * 12323 * For example: 12324 * ```ts 12325 * const decorators = ts.canHaveDecorators(node) ? ts.getDecorators(node) : undefined; 12326 * ``` 12327 */ 12328 readonly decorators?: undefined; 12329 /** 12330 * @deprecated `modifiers` has been removed from `Node` and moved to the `Node` subtypes that support them. 12331 * Use `ts.canHaveModifiers()` to test whether a `Node` can have modifiers. 12332 * Use `ts.getModifiers()` to get the modifiers of a `Node`. 12333 * 12334 * For example: 12335 * ```ts 12336 * const modifiers = ts.canHaveModifiers(node) ? ts.getModifiers(node) : undefined; 12337 * ``` 12338 */ 12339 readonly modifiers?: NodeArray<ModifierLike> | undefined; 12340 } 12341 interface PropertySignature { 12342 /** @deprecated A property signature cannot have an initializer */ 12343 readonly initializer?: Expression | undefined; 12344 } 12345 interface PropertyAssignment { 12346 /** @deprecated A property assignment cannot have a question token */ 12347 readonly questionToken?: QuestionToken | undefined; 12348 /** @deprecated A property assignment cannot have an exclamation token */ 12349 readonly exclamationToken?: ExclamationToken | undefined; 12350 } 12351 interface ShorthandPropertyAssignment { 12352 /** @deprecated A shorthand property assignment cannot have modifiers */ 12353 readonly modifiers?: NodeArray<Modifier> | undefined; 12354 /** @deprecated A shorthand property assignment cannot have a question token */ 12355 readonly questionToken?: QuestionToken | undefined; 12356 /** @deprecated A shorthand property assignment cannot have an exclamation token */ 12357 readonly exclamationToken?: ExclamationToken | undefined; 12358 } 12359 interface FunctionTypeNode { 12360 /** @deprecated A function type cannot have modifiers */ 12361 readonly modifiers?: NodeArray<Modifier> | undefined; 12362 } 12363 interface NodeFactory { 12364 /** 12365 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12366 */ 12367 createParameterDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; 12368 /** 12369 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12370 */ 12371 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; 12372 /** 12373 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12374 */ 12375 createPropertyDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 12376 /** 12377 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12378 */ 12379 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; 12380 /** 12381 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12382 */ 12383 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; 12384 /** 12385 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12386 */ 12387 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; 12388 /** 12389 * @deprecated This node does not support Decorators. Callers should use an overload that does not accept a `decorators` parameter. 12390 */ 12391 createConstructorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 12392 /** 12393 * @deprecated This node does not support Decorators. Callers should use an overload that does not accept a `decorators` parameter. 12394 */ 12395 updateConstructorDeclaration(node: ConstructorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 12396 /** 12397 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12398 */ 12399 createGetAccessorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 12400 /** 12401 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12402 */ 12403 updateGetAccessorDeclaration(node: GetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 12404 /** 12405 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12406 */ 12407 createSetAccessorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 12408 /** 12409 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12410 */ 12411 updateSetAccessorDeclaration(node: SetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 12412 /** 12413 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12414 */ 12415 createIndexSignature(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 12416 /** 12417 * @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. 12418 */ 12419 updateIndexSignature(node: IndexSignatureDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 12420 /** 12421 * @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. 12422 */ 12423 createClassStaticBlockDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, body: Block): ClassStaticBlockDeclaration; 12424 /** 12425 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12426 */ 12427 updateClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, body: Block): ClassStaticBlockDeclaration; 12428 /** 12429 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12430 */ 12431 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; 12432 /** 12433 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12434 */ 12435 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; 12436 /** 12437 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12438 */ 12439 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; 12440 /** 12441 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12442 */ 12443 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; 12444 /** 12445 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12446 */ 12447 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; 12448 /** 12449 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 12450 */ 12451 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; 12452 /** 12453 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12454 */ 12455 createInterfaceDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 12456 /** 12457 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12458 */ 12459 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; 12460 /** 12461 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12462 */ 12463 createTypeAliasDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 12464 /** 12465 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12466 */ 12467 updateTypeAliasDeclaration(node: TypeAliasDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 12468 /** 12469 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12470 */ 12471 createEnumDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 12472 /** 12473 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12474 */ 12475 updateEnumDeclaration(node: EnumDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 12476 /** 12477 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12478 */ 12479 createModuleDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration; 12480 /** 12481 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12482 */ 12483 updateModuleDeclaration(node: ModuleDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 12484 /** 12485 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12486 */ 12487 createImportEqualsDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 12488 /** 12489 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12490 */ 12491 updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 12492 /** 12493 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12494 */ 12495 createImportDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause): ImportDeclaration; 12496 /** 12497 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12498 */ 12499 updateImportDeclaration(node: ImportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 12500 /** 12501 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12502 */ 12503 createExportAssignment(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 12504 /** 12505 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12506 */ 12507 updateExportAssignment(node: ExportAssignment, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 12508 /** 12509 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12510 */ 12511 createExportDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression, assertClause?: AssertClause): ExportDeclaration; 12512 /** 12513 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 12514 */ 12515 updateExportDeclaration(node: ExportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, assertClause: AssertClause | undefined): ExportDeclaration; 12516 } 12517} 12518declare namespace ts { 12519 namespace ArkTSLinter_1_0 { 12520 namespace Common { 12521 interface AutofixInfo { 12522 problemID: string; 12523 start: number; 12524 end: number; 12525 } 12526 interface CommandLineOptions { 12527 strictMode?: boolean; 12528 ideMode?: boolean; 12529 logTscErrors?: boolean; 12530 warningsAsErrors: boolean; 12531 parsedConfigFile?: ParsedCommandLine; 12532 inputFiles: string[]; 12533 autofixInfo?: AutofixInfo[]; 12534 } 12535 interface LintOptions { 12536 cmdOptions: CommandLineOptions; 12537 tsProgram?: Program; 12538 [key: string]: any; 12539 } 12540 } 12541 } 12542} 12543declare namespace ts { 12544 namespace ArkTSLinter_1_0 { 12545 const cookBookMsg: string[]; 12546 const cookBookTag: string[]; 12547 } 12548} 12549declare namespace ts { 12550 namespace ArkTSLinter_1_0 { 12551 namespace DiagnosticCheckerNamespace { 12552 interface DiagnosticChecker { 12553 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 12554 } 12555 } 12556 } 12557} 12558declare namespace ts { 12559 namespace ArkTSLinter_1_0 { 12560 import DiagnosticChecker = DiagnosticCheckerNamespace.DiagnosticChecker; 12561 namespace LibraryTypeCallDiagnosticCheckerNamespace { 12562 const TYPE_0_IS_NOT_ASSIGNABLE_TO_TYPE_1_ERROR_CODE = 2322; 12563 const TYPE_UNKNOWN_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 12564 const TYPE_NULL_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 12565 const TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 12566 const ARGUMENT_OF_TYPE_0_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_ERROR_CODE = 2345; 12567 const ARGUMENT_OF_TYPE_NULL_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 12568 const ARGUMENT_OF_TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 12569 const NO_OVERLOAD_MATCHES_THIS_CALL_ERROR_CODE = 2769; 12570 class LibraryTypeCallDiagnosticChecker implements DiagnosticChecker { 12571 inLibCall: boolean; 12572 diagnosticMessages: Array<ts.DiagnosticMessageChain> | undefined; 12573 filteredDiagnosticMessages: DiagnosticMessageChain[]; 12574 constructor(filteredDiagnosticMessages: DiagnosticMessageChain[]); 12575 configure(inLibCall: boolean, diagnosticMessages: Array<ts.DiagnosticMessageChain>): void; 12576 checkMessageText(msg: string): boolean; 12577 checkMessageChain(chain: ts.DiagnosticMessageChain): boolean; 12578 checkFilteredDiagnosticMessages(msgText: ts.DiagnosticMessageChain | string): boolean; 12579 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 12580 } 12581 } 12582 } 12583} 12584declare namespace ts { 12585 namespace ArkTSLinter_1_0 { 12586 namespace Utils { 12587 import AutofixInfo = Common.AutofixInfo; 12588 const PROPERTY_HAS_NO_INITIALIZER_ERROR_CODE = 2564; 12589 const NON_INITIALIZABLE_PROPERTY_DECORATORS: string[]; 12590 const NON_INITIALIZABLE_PROPERTY_ClASS_DECORATORS: string[]; 12591 const LIMITED_STANDARD_UTILITY_TYPES: string[]; 12592 const ALLOWED_STD_SYMBOL_API: string[]; 12593 enum ProblemSeverity { 12594 WARNING = 1, 12595 ERROR = 2 12596 } 12597 const ARKTS_IGNORE_DIRS: string[]; 12598 const ARKTS_IGNORE_FILES: string[]; 12599 function setTypeChecker(tsTypeChecker: TypeChecker): void; 12600 function clearTypeChecker(): void; 12601 function setTestMode(tsTestMode: boolean): void; 12602 function getStartPos(nodeOrComment: Node | CommentRange): number; 12603 function getEndPos(nodeOrComment: Node | CommentRange): number; 12604 function isAssignmentOperator(tsBinOp: BinaryOperatorToken): boolean; 12605 function isTypedArray(tsType: TypeNode | undefined): boolean; 12606 function isType(tsType: TypeNode | undefined, checkType: string): boolean; 12607 function entityNameToString(name: EntityName): string; 12608 function isNumberType(tsType: Type): boolean; 12609 function isBooleanType(tsType: Type): boolean; 12610 function isStringLikeType(tsType: Type): boolean; 12611 function isStringType(type: Type): boolean; 12612 function isPrimitiveEnumType(type: Type, primitiveType: TypeFlags): boolean; 12613 function isPrimitiveEnumMemberType(type: Type, primitiveType: TypeFlags): boolean; 12614 function unwrapParenthesizedType(tsType: TypeNode): TypeNode; 12615 function findParentIf(asExpr: AsExpression): IfStatement | null; 12616 function isDestructuringAssignmentLHS(tsExpr: ArrayLiteralExpression | ObjectLiteralExpression): boolean; 12617 function isEnumType(tsType: Type): boolean; 12618 function isEnumMemberType(tsType: Type): boolean; 12619 function isObjectLiteralType(tsType: Type): boolean; 12620 function isNumberLikeType(tsType: Type): boolean; 12621 function hasModifier(tsModifiers: readonly Modifier[] | undefined, tsModifierKind: number): boolean; 12622 function unwrapParenthesized(tsExpr: Expression): Expression; 12623 function followIfAliased(sym: Symbol): Symbol; 12624 function trueSymbolAtLocation(node: Node): Symbol | undefined; 12625 function clearTrueSymbolAtLocationCache(): void; 12626 function isTypeDeclSyntaxKind(kind: SyntaxKind): boolean; 12627 function symbolHasDuplicateName(symbol: Symbol, tsDeclKind: SyntaxKind): boolean; 12628 function isReferenceType(tsType: Type): boolean; 12629 function isPrimitiveType(type: Type): boolean; 12630 function isTypeSymbol(symbol: Symbol | undefined): boolean; 12631 function isGenericArrayType(tsType: Type): tsType is TypeReference; 12632 function isDerivedFrom(tsType: Type, checkType: CheckType): tsType is TypeReference; 12633 function isTypeReference(tsType: Type): tsType is TypeReference; 12634 function isNullType(tsTypeNode: TypeNode): boolean; 12635 function isThisOrSuperExpr(tsExpr: Expression): boolean; 12636 function isPrototypeSymbol(symbol: Symbol | undefined): boolean; 12637 function isFunctionSymbol(symbol: Symbol | undefined): boolean; 12638 function isInterfaceType(tsType: Type | undefined): boolean; 12639 function isAnyType(tsType: Type): tsType is TypeReference; 12640 function isUnknownType(tsType: Type): boolean; 12641 function isUnsupportedType(tsType: Type): boolean; 12642 function isUnsupportedUnionType(tsType: Type): boolean; 12643 function isFunctionOrMethod(tsSymbol: Symbol | undefined): boolean; 12644 function isMethodAssignment(tsSymbol: Symbol | undefined): boolean; 12645 function getDeclaration(tsSymbol: ts.Symbol | undefined): ts.Declaration | undefined; 12646 function isValidEnumMemberInit(tsExpr: Expression): boolean; 12647 function isCompileTimeExpression(tsExpr: Expression): boolean; 12648 function isConst(tsNode: Node): boolean; 12649 function isNumberConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 12650 function isIntegerConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 12651 function isStringConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression): boolean; 12652 function relatedByInheritanceOrIdentical(typeA: Type, typeB: Type): boolean; 12653 function needToDeduceStructuralIdentity(typeFrom: Type, typeTo: Type, allowPromotion?: boolean): boolean; 12654 function hasPredecessor(node: Node, predicate: (node: Node) => boolean): boolean; 12655 function processParentTypes(parentTypes: NodeArray<ExpressionWithTypeArguments>, typeB: Type, processInterfaces: boolean): boolean; 12656 function processParentTypesCheck(parentTypes: NodeArray<ExpressionWithTypeArguments>, checkType: CheckType): boolean; 12657 function isObjectType(tsType: Type): boolean; 12658 function logTscDiagnostic(diagnostics: readonly Diagnostic[], log: (message: any, ...args: any[]) => void): void; 12659 function encodeProblemInfo(problem: ProblemInfo): string; 12660 function decodeAutofixInfo(info: string): AutofixInfo; 12661 function isCallToFunctionWithOmittedReturnType(tsExpr: Expression): boolean; 12662 function validateObjectLiteralType(type: Type | undefined): boolean; 12663 function isStructDeclarationKind(kind: SyntaxKind): boolean; 12664 function isStructDeclaration(node: Node): boolean; 12665 function isStructObjectInitializer(objectLiteral: ObjectLiteralExpression): boolean; 12666 function hasMethods(type: Type): boolean; 12667 function isExpressionAssignableToType(lhsType: ts.Type | undefined, rhsExpr: ts.Expression): boolean; 12668 function isLiteralType(type: Type): boolean; 12669 function validateFields(type: Type, objectLiteral: ObjectLiteralExpression): boolean; 12670 function isSupportedType(typeNode: TypeNode): boolean; 12671 function isStruct(symbol: Symbol): boolean; 12672 enum CheckType { 12673 Array = 0, 12674 String = "String", 12675 Set = "Set", 12676 Map = "Map", 12677 Error = "Error" 12678 } 12679 const ES_OBJECT = "ESObject"; 12680 const LIMITED_STD_GLOBAL_FUNC: string[]; 12681 const LIMITED_STD_OBJECT_API: string[]; 12682 const LIMITED_STD_REFLECT_API: string[]; 12683 const LIMITED_STD_PROXYHANDLER_API: string[]; 12684 const ARKUI_DECORATORS: string[]; 12685 const FUNCTION_HAS_NO_RETURN_ERROR_CODE = 2366; 12686 const NON_RETURN_FUNCTION_DECORATORS: string[]; 12687 const STANDARD_LIBRARIES: string[]; 12688 const TYPED_ARRAYS: string[]; 12689 function getParentSymbolName(symbol: Symbol): string | undefined; 12690 function isGlobalSymbol(symbol: Symbol): boolean; 12691 function isSymbolAPI(symbol: Symbol): boolean; 12692 function isStdSymbol(symbol: ts.Symbol): boolean; 12693 function isSymbolIterator(symbol: ts.Symbol): boolean; 12694 function isDefaultImport(importSpec: ImportSpecifier): boolean; 12695 function hasAccessModifier(decl: Declaration): boolean; 12696 function getModifier(modifiers: readonly Modifier[] | undefined, modifierKind: SyntaxKind): Modifier | undefined; 12697 function getAccessModifier(modifiers: readonly Modifier[] | undefined): Modifier | undefined; 12698 function isStdRecordType(type: Type): boolean; 12699 function isStdPartialType(type: Type): boolean; 12700 function isStdRequiredType(type: Type): boolean; 12701 function isStdReadonlyType(type: Type): boolean; 12702 function isLibraryType(type: Type): boolean; 12703 function hasLibraryType(node: Node): boolean; 12704 function isLibrarySymbol(sym: Symbol | undefined): boolean; 12705 function pathContainsDirectory(targetPath: string, dir: string): boolean; 12706 function getScriptKind(srcFile: SourceFile): ScriptKind; 12707 function isStdLibraryType(type: Type): boolean; 12708 function isStdLibrarySymbol(sym: Symbol | undefined): boolean; 12709 function isIntrinsicObjectType(type: Type): boolean; 12710 function isDynamicType(type: Type | undefined): boolean | undefined; 12711 function isDynamicLiteralInitializer(expr: Expression): boolean; 12712 function isEsObjectType(typeNode: TypeNode): boolean; 12713 function isInsideBlock(node: ts.Node): boolean; 12714 function isEsObjectPossiblyAllowed(typeRef: ts.TypeReferenceNode): boolean; 12715 function isValueAssignableToESObject(node: ts.Node): boolean; 12716 function getVariableDeclarationTypeNode(node: Node): TypeNode | undefined; 12717 function getSymbolDeclarationTypeNode(sym: ts.Symbol): ts.TypeNode | undefined; 12718 function hasEsObjectType(node: Node): boolean; 12719 function symbolHasEsObjectType(sym: ts.Symbol): boolean; 12720 function isEsObjectSymbol(sym: Symbol): boolean; 12721 function isAnonymousType(type: Type): boolean; 12722 function getSymbolOfCallExpression(callExpr: CallExpression): Symbol | undefined; 12723 function typeIsRecursive(topType: Type, type?: Type | undefined): boolean; 12724 } 12725 } 12726} 12727declare namespace ts { 12728 namespace ArkTSLinter_1_0 { 12729 namespace Problems { 12730 enum FaultID { 12731 AnyType = 0, 12732 SymbolType = 1, 12733 ObjectLiteralNoContextType = 2, 12734 ArrayLiteralNoContextType = 3, 12735 ComputedPropertyName = 4, 12736 LiteralAsPropertyName = 5, 12737 TypeQuery = 6, 12738 RegexLiteral = 7, 12739 IsOperator = 8, 12740 DestructuringParameter = 9, 12741 YieldExpression = 10, 12742 InterfaceMerging = 11, 12743 EnumMerging = 12, 12744 InterfaceExtendsClass = 13, 12745 IndexMember = 14, 12746 WithStatement = 15, 12747 ThrowStatement = 16, 12748 IndexedAccessType = 17, 12749 UnknownType = 18, 12750 ForInStatement = 19, 12751 InOperator = 20, 12752 ImportFromPath = 21, 12753 FunctionExpression = 22, 12754 IntersectionType = 23, 12755 ObjectTypeLiteral = 24, 12756 CommaOperator = 25, 12757 LimitedReturnTypeInference = 26, 12758 LambdaWithTypeParameters = 27, 12759 ClassExpression = 28, 12760 DestructuringAssignment = 29, 12761 DestructuringDeclaration = 30, 12762 VarDeclaration = 31, 12763 CatchWithUnsupportedType = 32, 12764 DeleteOperator = 33, 12765 DeclWithDuplicateName = 34, 12766 UnaryArithmNotNumber = 35, 12767 ConstructorType = 36, 12768 ConstructorIface = 37, 12769 ConstructorFuncs = 38, 12770 CallSignature = 39, 12771 TypeAssertion = 40, 12772 PrivateIdentifier = 41, 12773 LocalFunction = 42, 12774 ConditionalType = 43, 12775 MappedType = 44, 12776 NamespaceAsObject = 45, 12777 ClassAsObject = 46, 12778 NonDeclarationInNamespace = 47, 12779 GeneratorFunction = 48, 12780 FunctionContainsThis = 49, 12781 PropertyAccessByIndex = 50, 12782 JsxElement = 51, 12783 EnumMemberNonConstInit = 52, 12784 ImplementsClass = 53, 12785 NoUndefinedPropAccess = 54, 12786 MultipleStaticBlocks = 55, 12787 ThisType = 56, 12788 IntefaceExtendDifProps = 57, 12789 StructuralIdentity = 58, 12790 DefaultImport = 59, 12791 ExportAssignment = 60, 12792 ImportAssignment = 61, 12793 GenericCallNoTypeArgs = 62, 12794 ParameterProperties = 63, 12795 InstanceofUnsupported = 64, 12796 ShorthandAmbientModuleDecl = 65, 12797 WildcardsInModuleName = 66, 12798 UMDModuleDefinition = 67, 12799 NewTarget = 68, 12800 DefiniteAssignment = 69, 12801 Prototype = 70, 12802 GlobalThis = 71, 12803 UtilityType = 72, 12804 PropertyDeclOnFunction = 73, 12805 FunctionApplyBindCall = 74, 12806 ConstAssertion = 75, 12807 ImportAssertion = 76, 12808 SpreadOperator = 77, 12809 LimitedStdLibApi = 78, 12810 ErrorSuppression = 79, 12811 StrictDiagnostic = 80, 12812 UnsupportedDecorators = 81, 12813 ImportAfterStatement = 82, 12814 EsObjectType = 83, 12815 LAST_ID = 84 12816 } 12817 class FaultAttributs { 12818 migratable?: boolean; 12819 warning?: boolean; 12820 cookBookRef: string; 12821 } 12822 const faultsAttrs: FaultAttributs[]; 12823 } 12824 } 12825} 12826declare namespace ts { 12827 namespace ArkTSLinter_1_0 { 12828 namespace Autofixer { 12829 import AutofixInfo = Common.AutofixInfo; 12830 import FaultID = Problems.FaultID; 12831 const AUTOFIX_ALL: AutofixInfo; 12832 const autofixInfo: AutofixInfo[]; 12833 function shouldAutofix(node: Node, faultID: FaultID): boolean; 12834 interface Autofix { 12835 replacementText: string; 12836 start: number; 12837 end: number; 12838 } 12839 function fixLiteralAsPropertyName(node: Node): Autofix[] | undefined; 12840 function fixPropertyAccessByIndex(node: Node): Autofix[] | undefined; 12841 function fixFunctionExpression(funcExpr: FunctionExpression, params?: NodeArray<ParameterDeclaration>, retType?: TypeNode | undefined): Autofix; 12842 function fixReturnType(funcLikeDecl: FunctionLikeDeclaration, typeNode: TypeNode): Autofix; 12843 function fixCtorParameterProperties(ctorDecl: ConstructorDeclaration, paramTypes: TypeNode[]): Autofix[] | undefined; 12844 } 12845 } 12846} 12847declare namespace ts { 12848 namespace ArkTSLinter_1_0 { 12849 import FaultID = Problems.FaultID; 12850 class LinterConfig { 12851 static nodeDesc: string[]; 12852 static tsSyntaxKindNames: string[]; 12853 static initStatic(): void; 12854 static terminalTokens: Set<SyntaxKind>; 12855 static incrementOnlyTokens: ESMap<SyntaxKind, FaultID>; 12856 } 12857 } 12858} 12859declare namespace ts { 12860 namespace ArkTSLinter_1_0 { 12861 import Autofix = Autofixer.Autofix; 12862 import LibraryTypeCallDiagnosticChecker = LibraryTypeCallDiagnosticCheckerNamespace.LibraryTypeCallDiagnosticChecker; 12863 interface ProblemInfo { 12864 line: number; 12865 column: number; 12866 start: number; 12867 end: number; 12868 type: string; 12869 severity: number; 12870 problem: string; 12871 suggest: string; 12872 rule: string; 12873 ruleTag: number; 12874 autofixable: boolean; 12875 autofix?: Autofix[]; 12876 } 12877 class TypeScriptLinter { 12878 private sourceFile; 12879 private tscStrictDiagnostics?; 12880 static ideMode: boolean; 12881 static strictMode: boolean; 12882 static logTscErrors: boolean; 12883 static warningsAsErrors: boolean; 12884 static lintEtsOnly: boolean; 12885 static totalVisitedNodes: number; 12886 static nodeCounters: number[]; 12887 static lineCounters: number[]; 12888 static totalErrorLines: number; 12889 static errorLineNumbersString: string; 12890 static totalWarningLines: number; 12891 static warningLineNumbersString: string; 12892 static reportDiagnostics: boolean; 12893 static problemsInfos: ProblemInfo[]; 12894 static filteredDiagnosticMessages: DiagnosticMessageChain[]; 12895 static initGlobals(): void; 12896 static initStatic(): void; 12897 static tsTypeChecker: TypeChecker; 12898 currentErrorLine: number; 12899 currentWarningLine: number; 12900 staticBlocks: Set<string>; 12901 libraryTypeCallDiagnosticChecker: LibraryTypeCallDiagnosticChecker; 12902 skipArkTSStaticBlocksCheck: boolean; 12903 constructor(sourceFile: SourceFile, tsProgram: Program, tscStrictDiagnostics?: Map<Diagnostic[]> | undefined); 12904 static clearTsTypeChecker(): void; 12905 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 12906 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 12907 visitTSNode(node: Node): void; 12908 private countInterfaceExtendsDifferentPropertyTypes; 12909 private countDeclarationsWithDuplicateName; 12910 private countClassMembersWithDuplicateName; 12911 private functionContainsThis; 12912 private isPrototypePropertyAccess; 12913 private interfaceInheritanceLint; 12914 private lintForInterfaceExtendsDifferentPorpertyTypes; 12915 private handleObjectLiteralExpression; 12916 private handleArrayLiteralExpression; 12917 private handleParameter; 12918 private handleEnumDeclaration; 12919 private handleInterfaceDeclaration; 12920 private handleThrowStatement; 12921 private handleForStatement; 12922 private handleForInStatement; 12923 private handleForOfStatement; 12924 private handleImportDeclaration; 12925 private handlePropertyAccessExpression; 12926 private handlePropertyAssignmentOrDeclaration; 12927 private filterOutDecoratorsDiagnostics; 12928 private checkInRange; 12929 private filterStrictDiagnostics; 12930 private handleFunctionExpression; 12931 private handleArrowFunction; 12932 private handleClassExpression; 12933 private handleFunctionDeclaration; 12934 private handleMissingReturnType; 12935 private hasLimitedTypeInferenceFromReturnExpr; 12936 private handlePrefixUnaryExpression; 12937 private handleBinaryExpression; 12938 private handleVariableDeclarationList; 12939 private handleVariableDeclaration; 12940 private handleEsObjectDelaration; 12941 private handleEsObjectAssignment; 12942 private handleCatchClause; 12943 private handleClassDeclaration; 12944 private handleModuleDeclaration; 12945 private handleTypeAliasDeclaration; 12946 private handleImportClause; 12947 private handleImportSpecifier; 12948 private handleNamespaceImport; 12949 private handleTypeAssertionExpression; 12950 private handleMethodDeclaration; 12951 private handleIdentifier; 12952 private isAllowedClassValueContext; 12953 private handleRestrictedValues; 12954 private identiferUseInValueContext; 12955 private isEnumPropAccess; 12956 private handleElementAccessExpression; 12957 private handleEnumMember; 12958 private handleExportAssignment; 12959 private handleCallExpression; 12960 private handleImportCall; 12961 private handleRequireCall; 12962 private handleGenericCallWithNoTypeArgs; 12963 private static listApplyBindCallApis; 12964 private handleFunctionApplyBindPropCall; 12965 private handleStructIdentAndUndefinedInArgs; 12966 private static LimitedApis; 12967 private handleStdlibAPICall; 12968 private findNonFilteringRangesFunctionCalls; 12969 private handleLibraryTypeCall; 12970 private handleNewExpression; 12971 private handleAsExpression; 12972 private handleTypeReference; 12973 private handleMetaProperty; 12974 private handleStructDeclaration; 12975 private handleSpreadOp; 12976 private handleConstructSignature; 12977 private handleComments; 12978 private handleExpressionWithTypeArguments; 12979 private handleComputedPropertyName; 12980 private checkErrorSuppressingAnnotation; 12981 private handleDecorators; 12982 private handleGetAccessor; 12983 private handleSetAccessor; 12984 private handleDeclarationInferredType; 12985 private handleDefiniteAssignmentAssertion; 12986 private validatedTypesSet; 12987 private checkAnyOrUnknownChildNode; 12988 private handleInferredObjectreference; 12989 private validateDeclInferredType; 12990 private handleClassStaticBlockDeclaration; 12991 lint(): void; 12992 } 12993 } 12994} 12995declare namespace ts { 12996 namespace ArkTSLinter_1_0 { 12997 class TSCCompiledProgram { 12998 private diagnosticsExtractor; 12999 constructor(program: BuilderProgram); 13000 getProgram(): Program; 13001 getBuilderProgram(): BuilderProgram; 13002 getStrictDiagnostics(fileName: string): Diagnostic[]; 13003 doAllGetDiagnostics(): void; 13004 } 13005 } 13006} 13007declare namespace ts { 13008 namespace ArkTSLinter_1_0 { 13009 function translateDiag(srcFile: SourceFile, problemInfo: ProblemInfo): Diagnostic; 13010 function runArkTSLinter(tsBuilderProgram: BuilderProgram, srcFile?: SourceFile, buildInfoWriteFile?: WriteFileCallback, arkTSVersion?: string): Diagnostic[]; 13011 } 13012} 13013declare namespace ts { 13014 namespace ArkTSLinter_1_1 { 13015 namespace Common { 13016 interface AutofixInfo { 13017 problemID: string; 13018 start: number; 13019 end: number; 13020 } 13021 interface CommandLineOptions { 13022 strictMode?: boolean; 13023 ideMode?: boolean; 13024 logTscErrors?: boolean; 13025 warningsAsErrors: boolean; 13026 parsedConfigFile?: ParsedCommandLine; 13027 inputFiles: string[]; 13028 autofixInfo?: AutofixInfo[]; 13029 } 13030 interface LintOptions { 13031 cmdOptions: CommandLineOptions; 13032 tsProgram?: Program; 13033 [key: string]: any; 13034 } 13035 enum ProblemSeverity { 13036 WARNING = 1, 13037 ERROR = 2 13038 } 13039 } 13040 } 13041} 13042declare namespace ts { 13043 namespace ArkTSLinter_1_1 { 13044 const cookBookMsg: string[]; 13045 const cookBookTag: string[]; 13046 } 13047} 13048declare namespace ts { 13049 namespace ArkTSLinter_1_1 { 13050 namespace DiagnosticCheckerNamespace { 13051 interface DiagnosticChecker { 13052 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 13053 } 13054 } 13055 } 13056} 13057declare namespace ts { 13058 namespace ArkTSLinter_1_1 { 13059 import DiagnosticChecker = DiagnosticCheckerNamespace.DiagnosticChecker; 13060 namespace LibraryTypeCallDiagnosticCheckerNamespace { 13061 const TYPE_0_IS_NOT_ASSIGNABLE_TO_TYPE_1_ERROR_CODE = 2322; 13062 const TYPE_UNKNOWN_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 13063 const TYPE_NULL_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 13064 const TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 13065 const ARGUMENT_OF_TYPE_0_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_ERROR_CODE = 2345; 13066 const ARGUMENT_OF_TYPE_NULL_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 13067 const ARGUMENT_OF_TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 13068 const NO_OVERLOAD_MATCHES_THIS_CALL_ERROR_CODE = 2769; 13069 const TYPE = "Type"; 13070 const IS_NOT_ASSIGNABLE_TO_TYPE = "is not assignable to type"; 13071 const ARGUMENT_OF_TYPE = "Argument of type"; 13072 const IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE = "is not assignable to parameter of type"; 13073 enum ErrorType { 13074 NO_ERROR = 0, 13075 UNKNOW = 1, 13076 NULL = 2, 13077 UNDEFINED = 3 13078 } 13079 class LibraryTypeCallDiagnosticChecker implements DiagnosticChecker { 13080 inLibCall: boolean; 13081 diagnosticMessages: Array<ts.DiagnosticMessageChain> | undefined; 13082 filteredDiagnosticMessages: DiagnosticMessageChain[]; 13083 constructor(filteredDiagnosticMessages: DiagnosticMessageChain[]); 13084 configure(inLibCall: boolean, diagnosticMessages: Array<ts.DiagnosticMessageChain>): void; 13085 checkMessageText(msg: string): boolean; 13086 static checkMessageChain(chain: ts.DiagnosticMessageChain, inLibCall: boolean): ErrorType; 13087 checkFilteredDiagnosticMessages(msgText: ts.DiagnosticMessageChain | string): boolean; 13088 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 13089 static rebuildTscDiagnostics(tscStrictDiagnostics: Map<Diagnostic[]>): void; 13090 static collectDiagnosticMessage(diagnosticMessageChain: DiagnosticMessageChain, textSet: Set<string>): void; 13091 } 13092 } 13093 } 13094} 13095declare namespace ts { 13096 namespace ArkTSLinter_1_1 { 13097 namespace Problems { 13098 import ProblemSeverity = Common.ProblemSeverity; 13099 enum FaultID { 13100 AnyType = 0, 13101 SymbolType = 1, 13102 ObjectLiteralNoContextType = 2, 13103 ArrayLiteralNoContextType = 3, 13104 ComputedPropertyName = 4, 13105 LiteralAsPropertyName = 5, 13106 TypeQuery = 6, 13107 IsOperator = 7, 13108 DestructuringParameter = 8, 13109 YieldExpression = 9, 13110 InterfaceMerging = 10, 13111 EnumMerging = 11, 13112 InterfaceExtendsClass = 12, 13113 IndexMember = 13, 13114 WithStatement = 14, 13115 ThrowStatement = 15, 13116 IndexedAccessType = 16, 13117 UnknownType = 17, 13118 ForInStatement = 18, 13119 InOperator = 19, 13120 FunctionExpression = 20, 13121 IntersectionType = 21, 13122 ObjectTypeLiteral = 22, 13123 CommaOperator = 23, 13124 LimitedReturnTypeInference = 24, 13125 ClassExpression = 25, 13126 DestructuringAssignment = 26, 13127 DestructuringDeclaration = 27, 13128 VarDeclaration = 28, 13129 CatchWithUnsupportedType = 29, 13130 DeleteOperator = 30, 13131 DeclWithDuplicateName = 31, 13132 UnaryArithmNotNumber = 32, 13133 ConstructorType = 33, 13134 ConstructorIface = 34, 13135 ConstructorFuncs = 35, 13136 CallSignature = 36, 13137 TypeAssertion = 37, 13138 PrivateIdentifier = 38, 13139 LocalFunction = 39, 13140 ConditionalType = 40, 13141 MappedType = 41, 13142 NamespaceAsObject = 42, 13143 ClassAsObject = 43, 13144 NonDeclarationInNamespace = 44, 13145 GeneratorFunction = 45, 13146 FunctionContainsThis = 46, 13147 PropertyAccessByIndex = 47, 13148 JsxElement = 48, 13149 EnumMemberNonConstInit = 49, 13150 ImplementsClass = 50, 13151 MethodReassignment = 51, 13152 MultipleStaticBlocks = 52, 13153 ThisType = 53, 13154 IntefaceExtendDifProps = 54, 13155 StructuralIdentity = 55, 13156 ExportAssignment = 56, 13157 ImportAssignment = 57, 13158 GenericCallNoTypeArgs = 58, 13159 ParameterProperties = 59, 13160 InstanceofUnsupported = 60, 13161 ShorthandAmbientModuleDecl = 61, 13162 WildcardsInModuleName = 62, 13163 UMDModuleDefinition = 63, 13164 NewTarget = 64, 13165 DefiniteAssignment = 65, 13166 Prototype = 66, 13167 GlobalThis = 67, 13168 UtilityType = 68, 13169 PropertyDeclOnFunction = 69, 13170 FunctionApplyCall = 70, 13171 FunctionBind = 71, 13172 ConstAssertion = 72, 13173 ImportAssertion = 73, 13174 SpreadOperator = 74, 13175 LimitedStdLibApi = 75, 13176 ErrorSuppression = 76, 13177 StrictDiagnostic = 77, 13178 ImportAfterStatement = 78, 13179 EsObjectType = 79, 13180 SendableClassInheritance = 80, 13181 SendablePropType = 81, 13182 SendableDefiniteAssignment = 82, 13183 SendableGenericTypes = 83, 13184 SendableCapturedVars = 84, 13185 SendableClassDecorator = 85, 13186 SendableObjectInitialization = 86, 13187 SendableComputedPropName = 87, 13188 SendableAsExpr = 88, 13189 SharedNoSideEffectImport = 89, 13190 SharedModuleExports = 90, 13191 SharedModuleNoWildcardExport = 91, 13192 NoTsImportEts = 92, 13193 SendableTypeInheritance = 93, 13194 SendableTypeExported = 94, 13195 NoTsReExportEts = 95, 13196 NoNamespaceImportEtsToTs = 96, 13197 NoSideEffectImportEtsToTs = 97, 13198 SendableExplicitFieldType = 98, 13199 SendableFunctionImportedVariables = 99, 13200 SendableFunctionDecorator = 100, 13201 SendableTypeAliasDecorator = 101, 13202 SendableTypeAliasDeclaration = 102, 13203 SendableFunctionAssignment = 103, 13204 SendableFunctionOverloadDecorator = 104, 13205 SendableFunctionProperty = 105, 13206 SendableFunctionAsExpr = 106, 13207 SendableDecoratorLimited = 107, 13208 SendableClosureExport = 108, 13209 SharedModuleExportsWarning = 109, 13210 SendableBetaCompatible = 110, 13211 SendablePropTypeWarning = 111, 13212 LAST_ID = 112 13213 } 13214 class FaultAttributes { 13215 cookBookRef: number; 13216 migratable: boolean; 13217 severity: ProblemSeverity; 13218 constructor(cookBookRef: number, migratable?: boolean, severity?: ProblemSeverity); 13219 } 13220 const faultsAttrs: FaultAttributes[]; 13221 } 13222 } 13223} 13224declare namespace ts { 13225 namespace ArkTSLinter_1_1 { 13226 import AutofixInfo = Common.AutofixInfo; 13227 namespace Utils { 13228 const PROPERTY_HAS_NO_INITIALIZER_ERROR_CODE = 2564; 13229 const NON_INITIALIZABLE_PROPERTY_DECORATORS: string[]; 13230 const NON_INITIALIZABLE_PROPERTY_CLASS_DECORATORS: string[]; 13231 const LIMITED_STANDARD_UTILITY_TYPES: string[]; 13232 const ALLOWED_STD_SYMBOL_API: string[]; 13233 const ARKTS_IGNORE_DIRS: string[]; 13234 const ARKTS_IGNORE_FILES: string[]; 13235 const SENDABLE_DECORATOR = "Sendable"; 13236 const SENDABLE_INTERFACE = "ISendable"; 13237 const SENDABLE_DECORATOR_NODES: SyntaxKind[]; 13238 const SENDABLE_CLOSURE_DECLS: SyntaxKind[]; 13239 const ARKTS_COLLECTIONS_D_ETS = "@arkts.collections.d.ets"; 13240 const COLLECTIONS_NAMESPACE = "collections"; 13241 const ARKTS_LANG_D_ETS = "@arkts.lang.d.ets"; 13242 const LANG_NAMESPACE = "lang"; 13243 const ISENDABLE_TYPE = "ISendable"; 13244 const USE_SHARED = "use shared"; 13245 const D_TS = ".d.ts"; 13246 function setTypeChecker(tsTypeChecker: TypeChecker): void; 13247 function clearTypeChecker(): void; 13248 function setTestMode(tsTestMode: boolean): void; 13249 function getStartPos(nodeOrComment: Node | CommentRange): number; 13250 function getEndPos(nodeOrComment: Node | CommentRange): number; 13251 function getHighlightRange(nodeOrComment: Node | CommentRange, faultId: number): [number, number]; 13252 function getVarDeclarationHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13253 function getCatchWithUnsupportedTypeHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13254 function getForInStatementHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13255 function getWithStatementHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13256 function getDeleteOperatorHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13257 function getTypeQueryHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13258 function getInstanceofUnsupportedHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13259 function getConstAssertionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13260 function getLimitedReturnTypeInferenceHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13261 function getLocalFunctionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13262 function getFunctionApplyCallHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13263 function getDeclWithDuplicateNameHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13264 function getObjectLiteralNoContextTypeHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13265 function getClassExpressionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 13266 function getMultipleStaticBlocksHighlightRange(nodeOrComment: ts.Node | ts.CommentRange): [number, number] | undefined; 13267 function getSendableDefiniteAssignmentHighlightRange(nodeOrComment: ts.Node | ts.CommentRange): [number, number] | undefined; 13268 function getKeywordHighlightRange(nodeOrComment: Node | CommentRange, keyword: string): [number, number]; 13269 function isAssignmentOperator(tsBinOp: BinaryOperatorToken): boolean; 13270 function isType(tsType: TypeNode | undefined, checkType: string): boolean; 13271 function entityNameToString(name: EntityName): string; 13272 function isNumberLikeType(tsType: Type): boolean; 13273 function isBooleanLikeType(tsType: Type): boolean; 13274 function isStringLikeType(tsType: Type): boolean; 13275 function isStringType(tsType: ts.Type): boolean; 13276 function isPrimitiveEnumMemberType(type: Type, primitiveType: TypeFlags): boolean; 13277 function unwrapParenthesizedType(tsType: TypeNode): TypeNode; 13278 function findParentIf(asExpr: AsExpression): IfStatement | null; 13279 function isDestructuringAssignmentLHS(tsExpr: ArrayLiteralExpression | ObjectLiteralExpression): boolean; 13280 function isEnumType(tsType: ts.Type): boolean; 13281 function isEnum(tsSymbol: ts.Symbol): boolean; 13282 function isEnumMemberType(tsType: Type): boolean; 13283 function isObjectLiteralType(tsType: Type): boolean; 13284 function hasModifier(tsModifiers: readonly Modifier[] | undefined, tsModifierKind: number): boolean; 13285 function unwrapParenthesized(tsExpr: Expression): Expression; 13286 function followIfAliased(sym: Symbol): Symbol; 13287 function trueSymbolAtLocation(node: Node): Symbol | undefined; 13288 function clearTrueSymbolAtLocationCache(): void; 13289 function isTypeDeclSyntaxKind(kind: SyntaxKind): boolean; 13290 function symbolHasDuplicateName(symbol: Symbol, tsDeclKind: SyntaxKind): boolean; 13291 function isReferenceType(tsType: Type): boolean; 13292 function isPrimitiveType(type: Type): boolean; 13293 function isPrimitiveLiteralType(type: ts.Type): boolean; 13294 function isPurePrimitiveLiteralType(type: ts.Type): boolean; 13295 function isTypeSymbol(symbol: Symbol | undefined): boolean; 13296 function isGenericArrayType(tsType: Type): tsType is TypeReference; 13297 function isReadonlyArrayType(tsType: Type): boolean; 13298 function isTypedArray(tsType: ts.Type): boolean; 13299 function isArray(tsType: ts.Type): boolean; 13300 function isTuple(tsType: ts.Type): boolean; 13301 function isOrDerivedFrom(tsType: ts.Type, checkType: CheckType, checkedBaseTypes?: Set<ts.Type>): boolean; 13302 function isTypeReference(tsType: Type): tsType is TypeReference; 13303 function isNullType(tsTypeNode: TypeNode): boolean; 13304 function isThisOrSuperExpr(tsExpr: Expression): boolean; 13305 function isPrototypeSymbol(symbol: Symbol | undefined): boolean; 13306 function isFunctionSymbol(symbol: Symbol | undefined): boolean; 13307 function isInterfaceType(tsType: Type | undefined): boolean; 13308 function isAnyType(tsType: Type): tsType is TypeReference; 13309 function isUnknownType(tsType: Type): boolean; 13310 function isUnsupportedType(tsType: Type): boolean; 13311 function isUnsupportedUnionType(tsType: Type): boolean; 13312 function isFunctionOrMethod(tsSymbol: Symbol | undefined): boolean; 13313 function isMethodAssignment(tsSymbol: Symbol | undefined): boolean; 13314 function getDeclaration(tsSymbol: ts.Symbol | undefined): ts.Declaration | undefined; 13315 function isValidEnumMemberInit(tsExpr: Expression): boolean; 13316 function isCompileTimeExpression(tsExpr: Expression): boolean; 13317 function isConst(tsNode: Node): boolean; 13318 function isNumberConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 13319 function isIntegerConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 13320 function isStringConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression): boolean; 13321 function relatedByInheritanceOrIdentical(typeA: Type, typeB: Type): boolean; 13322 function reduceReference(t: ts.Type): ts.Type; 13323 function needToDeduceStructuralIdentity(lhsType: Type, rhsType: Type, rhsExpr: Expression, isStrict?: boolean): boolean; 13324 function needStrictMatchType(lhsType: ts.Type, rhsType: ts.Type): boolean; 13325 function hasPredecessor(node: Node, predicate: (node: Node) => boolean): boolean; 13326 function processParentTypes(parentTypes: NodeArray<ExpressionWithTypeArguments>, typeB: Type, processInterfaces: boolean): boolean; 13327 function isObject(tsType: Type): boolean; 13328 function logTscDiagnostic(diagnostics: readonly Diagnostic[], log: (message: any, ...args: any[]) => void): void; 13329 function encodeProblemInfo(problem: ProblemInfo): string; 13330 function decodeAutofixInfo(info: string): AutofixInfo; 13331 function isCallToFunctionWithOmittedReturnType(tsExpr: Expression): boolean; 13332 function validateObjectLiteralType(type: Type | undefined): boolean; 13333 function isStructDeclarationKind(kind: SyntaxKind): boolean; 13334 function isStructDeclaration(node: Node): boolean; 13335 function isStructObjectInitializer(objectLiteral: ObjectLiteralExpression): boolean; 13336 function hasMethods(type: Type): boolean; 13337 function checkTypeSet(typeSet: ts.Type, predicate: CheckType): boolean; 13338 function getNonNullableType(t: ts.Type): ts.Type; 13339 function isObjectLiteralAssignable(lhsType: ts.Type | undefined, rhsExpr: ts.ObjectLiteralExpression): boolean; 13340 function isLiteralType(type: Type): boolean; 13341 function validateFields(objectType: Type, objectLiteral: ObjectLiteralExpression): boolean; 13342 function isSupportedType(typeNode: TypeNode): boolean; 13343 function isStruct(symbol: Symbol): boolean; 13344 type CheckType = ((t: Type) => boolean); 13345 const ES_OBJECT = "ESObject"; 13346 const LIMITED_STD_GLOBAL_FUNC: string[]; 13347 const LIMITED_STD_OBJECT_API: string[]; 13348 const LIMITED_STD_REFLECT_API: string[]; 13349 const LIMITED_STD_PROXYHANDLER_API: string[]; 13350 const FUNCTION_HAS_NO_RETURN_ERROR_CODE = 2366; 13351 const NON_RETURN_FUNCTION_DECORATORS: string[]; 13352 const STANDARD_LIBRARIES: string[]; 13353 const TYPED_ARRAYS: string[]; 13354 function getParentSymbolName(symbol: Symbol): string | undefined; 13355 function isGlobalSymbol(symbol: Symbol): boolean; 13356 function isSymbolAPI(symbol: Symbol): boolean; 13357 function isStdSymbol(symbol: ts.Symbol): boolean; 13358 function isSymbolIterator(symbol: ts.Symbol): boolean; 13359 function isSymbolIteratorExpression(expr: ts.Expression): boolean; 13360 function isDefaultImport(importSpec: ImportSpecifier): boolean; 13361 function hasAccessModifier(decl: Declaration): boolean; 13362 function getModifier(modifiers: readonly Modifier[] | undefined, modifierKind: SyntaxKind): Modifier | undefined; 13363 function getAccessModifier(modifiers: readonly Modifier[] | undefined): Modifier | undefined; 13364 function isStdRecordType(type: Type): boolean; 13365 function isStdMapType(type: Type): boolean; 13366 function isStdErrorType(type: ts.Type): boolean; 13367 function isStdPartialType(type: Type): boolean; 13368 function isStdRequiredType(type: Type): boolean; 13369 function isStdReadonlyType(type: Type): boolean; 13370 function isLibraryType(type: Type): boolean; 13371 function hasLibraryType(node: Node): boolean; 13372 function isLibrarySymbol(sym: Symbol | undefined): boolean; 13373 function srcFilePathContainsDirectory(srcFile: SourceFile, dir: string): boolean; 13374 function pathContainsDirectory(targetPath: string, dir: string): boolean; 13375 function getScriptKind(srcFile: SourceFile): ScriptKind; 13376 function isStdLibraryType(type: Type): boolean; 13377 function isStdLibrarySymbol(sym: Symbol | undefined): boolean; 13378 function isIntrinsicObjectType(type: Type): boolean; 13379 function isDynamicType(type: Type | undefined): boolean | undefined; 13380 function isObjectType(type: ts.Type): type is ts.ObjectType; 13381 function isAnonymous(type: ts.Type): boolean; 13382 function isDynamicLiteralInitializer(expr: Expression): boolean; 13383 function isEsObjectType(typeNode: ts.TypeNode | undefined): boolean; 13384 function isInsideBlock(node: ts.Node): boolean; 13385 function isEsObjectPossiblyAllowed(typeRef: ts.TypeReferenceNode): boolean; 13386 function isValueAssignableToESObject(node: ts.Node): boolean; 13387 function getVariableDeclarationTypeNode(node: Node): TypeNode | undefined; 13388 function getSymbolDeclarationTypeNode(sym: ts.Symbol): ts.TypeNode | undefined; 13389 function hasEsObjectType(node: Node): boolean; 13390 function symbolHasEsObjectType(sym: ts.Symbol): boolean; 13391 function isEsObjectSymbol(sym: Symbol): boolean; 13392 function isAnonymousType(type: Type): boolean; 13393 function getSymbolOfCallExpression(callExpr: CallExpression): Symbol | undefined; 13394 function typeIsRecursive(topType: Type, type?: Type | undefined): boolean; 13395 function getTypeOrTypeConstraintAtLocation(expr: ts.Expression): ts.Type; 13396 function isStdBigIntType(type: ts.Type): boolean; 13397 function isStdNumberType(type: ts.Type): boolean; 13398 function isStdBooleanType(type: ts.Type): boolean; 13399 function isEnumStringLiteral(expr: ts.Expression): boolean; 13400 function isValidComputedPropertyName(computedProperty: ComputedPropertyName, isRecordObjectInitializer?: boolean): boolean; 13401 function isAllowedIndexSignature(node: ts.IndexSignatureDeclaration): boolean; 13402 function isArkTSCollectionsArrayLikeType(type: ts.Type): boolean; 13403 function isArkTSCollectionsClassOrInterfaceDeclaration(decl: ts.Node): boolean; 13404 function getDecoratorName(decorator: ts.Decorator): string; 13405 function unwrapParenthesizedTypeNode(typeNode: ts.TypeNode): ts.TypeNode; 13406 function isSendableTypeNode(typeNode: ts.TypeNode, isShared?: boolean): boolean; 13407 function isSendableType(type: ts.Type): boolean; 13408 function isShareableType(tsType: ts.Type): boolean; 13409 function isSendableClassOrInterface(type: ts.Type): boolean; 13410 function typeContainsSendableClassOrInterface(type: ts.Type): boolean; 13411 function typeContainsNonSendableClassOrInterface(type: ts.Type): boolean; 13412 function isConstEnum(sym: ts.Symbol | undefined): boolean; 13413 function isSendableUnionType(type: ts.UnionType): boolean; 13414 function hasSendableDecorator(decl: ts.ClassDeclaration | ts.FunctionDeclaration | ts.TypeAliasDeclaration): boolean; 13415 function getNonSendableDecorators(decl: ts.ClassDeclaration | ts.FunctionDeclaration | ts.TypeAliasDeclaration): ts.Decorator[] | undefined; 13416 function getSendableDecorator(decl: ts.ClassDeclaration | ts.FunctionDeclaration | ts.TypeAliasDeclaration): ts.Decorator | undefined; 13417 function getDecoratorsIfInSendableClass(declaration: ts.HasDecorators): readonly ts.Decorator[] | undefined; 13418 function isISendableInterface(type: ts.Type): boolean; 13419 function isSharedModule(sourceFile: ts.SourceFile): boolean; 13420 function getDeclarationNode(node: ts.Node): ts.Declaration | undefined; 13421 function isShareableEntity(node: ts.Node): boolean; 13422 function isSendableClassOrInterfaceEntity(node: ts.Node): boolean; 13423 function isInImportWhiteList(resolvedModule: ResolvedModuleFull): boolean; 13424 function hasSendableDecoratorFunctionOverload(decl: ts.FunctionDeclaration): boolean; 13425 function isSendableFunction(type: ts.Type): boolean; 13426 function isSendableTypeAlias(type: ts.Type): boolean; 13427 function hasSendableTypeAlias(type: ts.Type): boolean; 13428 function isNonSendableFunctionTypeAlias(type: ts.Type): boolean; 13429 function isWrongSendableFunctionAssignment(lhsType: ts.Type, rhsType: ts.Type): boolean; 13430 function searchFileExportDecl(sourceFile: ts.SourceFile, targetDecls?: ts.SyntaxKind[]): Set<ts.Node>; 13431 function normalizePath(path: string): string; 13432 function clearUtilsGlobalvariables(): void; 13433 } 13434 } 13435} 13436declare namespace ts { 13437 namespace ArkTSLinter_1_1 { 13438 namespace Autofixer { 13439 import AutofixInfo = Common.AutofixInfo; 13440 import FaultID = Problems.FaultID; 13441 const AUTOFIX_ALL: AutofixInfo; 13442 const autofixInfo: AutofixInfo[]; 13443 function shouldAutofix(node: Node, faultID: FaultID): boolean; 13444 interface Autofix { 13445 replacementText: string; 13446 start: number; 13447 end: number; 13448 } 13449 function fixLiteralAsPropertyName(node: Node): Autofix[] | undefined; 13450 function fixPropertyAccessByIndex(node: Node): Autofix[] | undefined; 13451 function fixFunctionExpression(funcExpr: FunctionExpression, params?: NodeArray<ParameterDeclaration>, retType?: TypeNode | undefined): Autofix; 13452 function fixReturnType(funcLikeDecl: FunctionLikeDeclaration, typeNode: TypeNode): Autofix; 13453 function fixCtorParameterProperties(ctorDecl: ConstructorDeclaration, paramTypes: TypeNode[]): Autofix[] | undefined; 13454 } 13455 } 13456} 13457declare namespace ts { 13458 namespace ArkTSLinter_1_1 { 13459 import FaultID = Problems.FaultID; 13460 class LinterConfig { 13461 static nodeDesc: string[]; 13462 static tsSyntaxKindNames: string[]; 13463 static initStatic(): void; 13464 static terminalTokens: Set<SyntaxKind>; 13465 static incrementOnlyTokens: ESMap<SyntaxKind, FaultID>; 13466 } 13467 } 13468} 13469declare namespace ts { 13470 namespace ArkTSLinter_1_1 { 13471 import Autofix = Autofixer.Autofix; 13472 import LibraryTypeCallDiagnosticChecker = LibraryTypeCallDiagnosticCheckerNamespace.LibraryTypeCallDiagnosticChecker; 13473 interface ProblemInfo { 13474 line: number; 13475 column: number; 13476 start: number; 13477 end: number; 13478 type: string; 13479 severity: number; 13480 problem: string; 13481 suggest: string; 13482 rule: string; 13483 ruleTag: number; 13484 autofixable: boolean; 13485 autofix?: Autofix[]; 13486 } 13487 class TypeScriptLinter { 13488 private sourceFile; 13489 private tscStrictDiagnostics?; 13490 static ideMode: boolean; 13491 static strictMode: boolean; 13492 static logTscErrors: boolean; 13493 static warningsAsErrors: boolean; 13494 static lintEtsOnly: boolean; 13495 static totalVisitedNodes: number; 13496 static nodeCounters: number[]; 13497 static lineCounters: number[]; 13498 static totalErrorLines: number; 13499 static errorLineNumbersString: string; 13500 static totalWarningLines: number; 13501 static warningLineNumbersString: string; 13502 static reportDiagnostics: boolean; 13503 static problemsInfos: ProblemInfo[]; 13504 static filteredDiagnosticMessages: DiagnosticMessageChain[]; 13505 static sharedModulesCache: ESMap<string, boolean>; 13506 static strictDiagnosticCache: Set<Diagnostic>; 13507 static unknowDiagnosticCache: Set<Diagnostic>; 13508 static initGlobals(): void; 13509 static initStatic(): void; 13510 static tsTypeChecker: TypeChecker; 13511 currentErrorLine: number; 13512 currentWarningLine: number; 13513 staticBlocks: Set<string>; 13514 libraryTypeCallDiagnosticChecker: LibraryTypeCallDiagnosticChecker; 13515 skipArkTSStaticBlocksCheck: boolean; 13516 private fileExportSendableDeclCaches?; 13517 private compatibleSdkVersionStage; 13518 private compatibleSdkVersion; 13519 constructor(sourceFile: SourceFile, tsProgram: Program, tscStrictDiagnostics?: Map<Diagnostic[]> | undefined); 13520 static clearTsTypeChecker(): void; 13521 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 13522 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 13523 private forEachNodeInSubtree; 13524 private visitSourceFile; 13525 private countInterfaceExtendsDifferentPropertyTypes; 13526 private countDeclarationsWithDuplicateName; 13527 private countClassMembersWithDuplicateName; 13528 private static scopeContainsThis; 13529 private isPrototypePropertyAccess; 13530 private interfaceInheritanceLint; 13531 private lintForInterfaceExtendsDifferentPorpertyTypes; 13532 private handleObjectLiteralExpression; 13533 private handleArrayLiteralExpression; 13534 private handleParameter; 13535 private handleEnumDeclaration; 13536 private handleInterfaceDeclaration; 13537 private handleThrowStatement; 13538 private handleForStatement; 13539 private handleForInStatement; 13540 private handleForOfStatement; 13541 private handleImportDeclaration; 13542 private handleSharedModuleNoSideEffectImport; 13543 private static inSharedModule; 13544 private handlePropertyAccessExpression; 13545 private handlePropertyDeclaration; 13546 private handleSendableClassProperty; 13547 private checkTypeAliasInSendableScope; 13548 private isNoneSendableTypeAlias; 13549 private handlePropertyAssignment; 13550 private handlePropertySignature; 13551 private handleSendableInterfaceProperty; 13552 private filterOutDecoratorsDiagnostics; 13553 private checkInRange; 13554 private filterStrictDiagnostics; 13555 private static isClassLikeOrIface; 13556 private handleFunctionExpression; 13557 private handleArrowFunction; 13558 private handleFunctionDeclaration; 13559 private handleMissingReturnType; 13560 private hasLimitedTypeInferenceFromReturnExpr; 13561 private isValidTypeForUnaryArithmeticOperator; 13562 private handlePrefixUnaryExpression; 13563 private handleBinaryExpression; 13564 private handleVariableDeclarationList; 13565 private handleVariableDeclaration; 13566 private handleEsObjectDelaration; 13567 private handleEsObjectAssignment; 13568 private handleCatchClause; 13569 private handleClassDeclaration; 13570 private scanCapturedVarsInSendableScope; 13571 private checkLocalDecl; 13572 private checkLocalDeclWithSendableClosure; 13573 private checkIsTopClosure; 13574 private checkNamespaceImportVar; 13575 isFileExportSendableDecl(decl: ts.Declaration): boolean; 13576 private checkClassDeclarationHeritageClause; 13577 private isValidSendableClassExtends; 13578 private checkSendableTypeParameter; 13579 private processClassStaticBlocks; 13580 private handleModuleDeclaration; 13581 private handleTypeAliasDeclaration; 13582 private handleImportClause; 13583 private handleImportSpecifier; 13584 private handleNamespaceImport; 13585 private handleTypeAssertionExpression; 13586 private handleMethodDeclaration; 13587 private handleMethodSignature; 13588 private handleIdentifier; 13589 private isAllowedClassValueContext; 13590 private handleRestrictedValues; 13591 private identiferUseInValueContext; 13592 private isEnumPropAccess; 13593 private isElementAcessAllowed; 13594 private handleElementAccessExpression; 13595 private handleEnumMember; 13596 private handleExportAssignment; 13597 private handleCallExpression; 13598 private handleEtsComponentExpression; 13599 private handleImportCall; 13600 private handleRequireCall; 13601 private handleGenericCallWithNoTypeArgs; 13602 private static readonly listFunctionApplyCallApis; 13603 private static readonly listFunctionBindApis; 13604 private handleFunctionApplyBindPropCall; 13605 private handleStructIdentAndUndefinedInArgs; 13606 private static LimitedApis; 13607 private handleStdlibAPICall; 13608 private findNonFilteringRangesFunctionCalls; 13609 private handleLibraryTypeCall; 13610 private handleNewExpression; 13611 private handleSendableGenericTypes; 13612 private handleAsExpression; 13613 private handleTypeReference; 13614 private checkSendableTypeArguments; 13615 private handleMetaProperty; 13616 private handleSpreadOp; 13617 private handleConstructSignature; 13618 private handleExpressionWithTypeArguments; 13619 private handleComputedPropertyName; 13620 private isSendableCompPropName; 13621 private handleGetAccessor; 13622 private handleSetAccessor; 13623 private handleDeclarationInferredType; 13624 private handleDefiniteAssignmentAssertion; 13625 private validatedTypesSet; 13626 private checkAnyOrUnknownChildNode; 13627 private handleInferredObjectreference; 13628 private validateDeclInferredType; 13629 private processNoCheckEntry; 13630 private reportThisKeywordsInScope; 13631 private handleCommentDirectives; 13632 private handleClassStaticBlockDeclaration; 13633 private handleIndexSignature; 13634 lint(): void; 13635 private handleExportKeyword; 13636 private handleExportDeclaration; 13637 private handleReturnStatement; 13638 /** 13639 * 'arkts-no-structural-typing' check was missing in some scenarios, 13640 * in order not to cause incompatibility, 13641 * only need to strictly match the type of filling the check again 13642 */ 13643 private checkAssignmentMatching; 13644 private handleDecorator; 13645 private isSendableDecoratorValid; 13646 } 13647 } 13648} 13649declare namespace ts { 13650 namespace ArkTSLinter_1_1 { 13651 import Autofix = Autofixer.Autofix; 13652 interface KitSymbol { 13653 source: string; 13654 bindings: string; 13655 } 13656 type KitSymbols = Record<string, KitSymbol>; 13657 interface KitInfo { 13658 symbols?: KitSymbols; 13659 } 13660 class InteropTypescriptLinter { 13661 private sourceFile; 13662 private isInSdk; 13663 static strictMode: boolean; 13664 static totalVisitedNodes: number; 13665 static nodeCounters: number[]; 13666 static lineCounters: number[]; 13667 static totalErrorLines: number; 13668 static errorLineNumbersString: string; 13669 static totalWarningLines: number; 13670 static warningLineNumbersString: string; 13671 static reportDiagnostics: boolean; 13672 static problemsInfos: ProblemInfo[]; 13673 static initGlobals(): void; 13674 static initStatic(): void; 13675 static tsTypeChecker: TypeChecker; 13676 static etsLoaderPath?: string; 13677 static kitInfos: Map<KitInfo>; 13678 private KIT; 13679 private D_TS; 13680 private D_ETS; 13681 private ETS; 13682 private SDK_PATH; 13683 currentErrorLine: number; 13684 currentWarningLine: number; 13685 constructor(sourceFile: SourceFile, tsProgram: Program, isInSdk: boolean); 13686 static clearTsTypeChecker(): void; 13687 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 13688 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 13689 private forEachNodeInSubtree; 13690 private visitSourceFile; 13691 private handleImportDeclaration; 13692 private checkSendableClassorISendable; 13693 private checkKitImportClause; 13694 private checkImportClause; 13695 private allowInSdkImportSendable; 13696 private handleClassDeclaration; 13697 private checkClassOrInterfaceDeclarationHeritageClause; 13698 private handleInterfaceDeclaration; 13699 private handleNewExpression; 13700 private handleSendableGenericTypes; 13701 private handleObjectLiteralExpression; 13702 private handleArrayLiteralExpression; 13703 private handleAsExpression; 13704 private handleExportDeclaration; 13705 private handleExportAssignment; 13706 private initKitInfos; 13707 private getKitModuleFileNames; 13708 lint(): void; 13709 } 13710 } 13711} 13712declare namespace ts { 13713 namespace ArkTSLinter_1_1 { 13714 class TSCCompiledProgram { 13715 private diagnosticsExtractor; 13716 constructor(program: BuilderProgram); 13717 getProgram(): Program; 13718 getBuilderProgram(): BuilderProgram; 13719 getStrictDiagnostics(sourceFile: SourceFile): Diagnostic[]; 13720 doAllGetDiagnostics(): void; 13721 } 13722 } 13723} 13724declare namespace ts { 13725 namespace ArkTSLinter_1_1 { 13726 function translateDiag(srcFile: SourceFile, problemInfo: ProblemInfo): Diagnostic; 13727 function runArkTSLinter(tsBuilderProgram: BuilderProgram, srcFile?: SourceFile, buildInfoWriteFile?: WriteFileCallback, arkTSVersion?: string): Diagnostic[]; 13728 } 13729} 13730declare namespace ts { 13731 enum TimePhase { 13732 START = "start", 13733 GET_PROGRAM = "getProgram(not ArkTSLinter)", 13734 UPDATE_ERROR_FILE = "updateErrorFile", 13735 INIT = "init", 13736 STRICT_PROGRAM_GET_SEMANTIC_DIAGNOSTICS = "strictProgramGetSemanticDiagnostics", 13737 NON_STRICT_PROGRAM_GET_SEMANTIC_DIAGNOSTICS = "nonStrictProgramGetSemanticDiagnostics", 13738 NON_STRICT_PROGRAM_GET_SYNTACTIC_DIAGNOSTICS = "nonStrictProgramGetSyntacticDiagnostics", 13739 GET_TSC_DIAGNOSTICS = "getTscDiagnostics", 13740 EMIT_BUILD_INFO = "emitBuildInfo", 13741 LINT = "lint" 13742 } 13743 class ArkTSLinterTimePrinter { 13744 private static instance?; 13745 private arkTSTimePrintSwitch; 13746 private timeMap; 13747 private constructor(); 13748 static getInstance(): ArkTSLinterTimePrinter; 13749 static destroyInstance(): void; 13750 setArkTSTimePrintSwitch(arkTSTimePrintSwitch: boolean): void; 13751 appendTime(key: string): void; 13752 private formatMapAsTable; 13753 printTimes(): void; 13754 } 13755} 13756 13757export = ts; 13758export as namespace ts;