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 UndefinedKeyword = 156, 265 UniqueKeyword = 157, 266 UnknownKeyword = 158, 267 FromKeyword = 159, 268 GlobalKeyword = 160, 269 BigIntKeyword = 161, 270 OverrideKeyword = 162, 271 OfKeyword = 163, 272 QualifiedName = 164, 273 ComputedPropertyName = 165, 274 TypeParameter = 166, 275 Parameter = 167, 276 Decorator = 168, 277 PropertySignature = 169, 278 PropertyDeclaration = 170, 279 MethodSignature = 171, 280 MethodDeclaration = 172, 281 ClassStaticBlockDeclaration = 173, 282 Constructor = 174, 283 GetAccessor = 175, 284 SetAccessor = 176, 285 CallSignature = 177, 286 ConstructSignature = 178, 287 IndexSignature = 179, 288 TypePredicate = 180, 289 TypeReference = 181, 290 FunctionType = 182, 291 ConstructorType = 183, 292 TypeQuery = 184, 293 TypeLiteral = 185, 294 ArrayType = 186, 295 TupleType = 187, 296 OptionalType = 188, 297 RestType = 189, 298 UnionType = 190, 299 IntersectionType = 191, 300 ConditionalType = 192, 301 InferType = 193, 302 ParenthesizedType = 194, 303 ThisType = 195, 304 TypeOperator = 196, 305 IndexedAccessType = 197, 306 MappedType = 198, 307 LiteralType = 199, 308 NamedTupleMember = 200, 309 TemplateLiteralType = 201, 310 TemplateLiteralTypeSpan = 202, 311 ImportType = 203, 312 ObjectBindingPattern = 204, 313 ArrayBindingPattern = 205, 314 BindingElement = 206, 315 ArrayLiteralExpression = 207, 316 ObjectLiteralExpression = 208, 317 PropertyAccessExpression = 209, 318 ElementAccessExpression = 210, 319 CallExpression = 211, 320 NewExpression = 212, 321 TaggedTemplateExpression = 213, 322 TypeAssertionExpression = 214, 323 ParenthesizedExpression = 215, 324 FunctionExpression = 216, 325 ArrowFunction = 217, 326 EtsComponentExpression = 218, 327 DeleteExpression = 219, 328 TypeOfExpression = 220, 329 VoidExpression = 221, 330 AwaitExpression = 222, 331 PrefixUnaryExpression = 223, 332 PostfixUnaryExpression = 224, 333 BinaryExpression = 225, 334 ConditionalExpression = 226, 335 TemplateExpression = 227, 336 YieldExpression = 228, 337 SpreadElement = 229, 338 ClassExpression = 230, 339 OmittedExpression = 231, 340 ExpressionWithTypeArguments = 232, 341 AsExpression = 233, 342 NonNullExpression = 234, 343 MetaProperty = 235, 344 SyntheticExpression = 236, 345 SatisfiesExpression = 237, 346 TemplateSpan = 238, 347 SemicolonClassElement = 239, 348 Block = 240, 349 EmptyStatement = 241, 350 VariableStatement = 242, 351 ExpressionStatement = 243, 352 IfStatement = 244, 353 DoStatement = 245, 354 WhileStatement = 246, 355 ForStatement = 247, 356 ForInStatement = 248, 357 ForOfStatement = 249, 358 ContinueStatement = 250, 359 BreakStatement = 251, 360 ReturnStatement = 252, 361 WithStatement = 253, 362 SwitchStatement = 254, 363 LabeledStatement = 255, 364 ThrowStatement = 256, 365 TryStatement = 257, 366 DebuggerStatement = 258, 367 VariableDeclaration = 259, 368 VariableDeclarationList = 260, 369 FunctionDeclaration = 261, 370 ClassDeclaration = 262, 371 StructDeclaration = 263, 372 InterfaceDeclaration = 264, 373 TypeAliasDeclaration = 265, 374 EnumDeclaration = 266, 375 ModuleDeclaration = 267, 376 ModuleBlock = 268, 377 CaseBlock = 269, 378 NamespaceExportDeclaration = 270, 379 ImportEqualsDeclaration = 271, 380 ImportDeclaration = 272, 381 ImportClause = 273, 382 NamespaceImport = 274, 383 NamedImports = 275, 384 ImportSpecifier = 276, 385 ExportAssignment = 277, 386 ExportDeclaration = 278, 387 NamedExports = 279, 388 NamespaceExport = 280, 389 ExportSpecifier = 281, 390 MissingDeclaration = 282, 391 ExternalModuleReference = 283, 392 JsxElement = 284, 393 JsxSelfClosingElement = 285, 394 JsxOpeningElement = 286, 395 JsxClosingElement = 287, 396 JsxFragment = 288, 397 JsxOpeningFragment = 289, 398 JsxClosingFragment = 290, 399 JsxAttribute = 291, 400 JsxAttributes = 292, 401 JsxSpreadAttribute = 293, 402 JsxExpression = 294, 403 CaseClause = 295, 404 DefaultClause = 296, 405 HeritageClause = 297, 406 CatchClause = 298, 407 AssertClause = 299, 408 AssertEntry = 300, 409 ImportTypeAssertionContainer = 301, 410 PropertyAssignment = 302, 411 ShorthandPropertyAssignment = 303, 412 SpreadAssignment = 304, 413 EnumMember = 305, 414 UnparsedPrologue = 306, 415 UnparsedPrepend = 307, 416 UnparsedText = 308, 417 UnparsedInternalText = 309, 418 UnparsedSyntheticReference = 310, 419 SourceFile = 311, 420 Bundle = 312, 421 UnparsedSource = 313, 422 InputFiles = 314, 423 JSDocTypeExpression = 315, 424 JSDocNameReference = 316, 425 JSDocMemberName = 317, 426 JSDocAllType = 318, 427 JSDocUnknownType = 319, 428 JSDocNullableType = 320, 429 JSDocNonNullableType = 321, 430 JSDocOptionalType = 322, 431 JSDocFunctionType = 323, 432 JSDocVariadicType = 324, 433 JSDocNamepathType = 325, 434 JSDoc = 326, 435 /** @deprecated Use SyntaxKind.JSDoc */ 436 JSDocComment = 326, 437 JSDocText = 327, 438 JSDocTypeLiteral = 328, 439 JSDocSignature = 329, 440 JSDocLink = 330, 441 JSDocLinkCode = 331, 442 JSDocLinkPlain = 332, 443 JSDocTag = 333, 444 JSDocAugmentsTag = 334, 445 JSDocImplementsTag = 335, 446 JSDocAuthorTag = 336, 447 JSDocDeprecatedTag = 337, 448 JSDocClassTag = 338, 449 JSDocPublicTag = 339, 450 JSDocPrivateTag = 340, 451 JSDocProtectedTag = 341, 452 JSDocReadonlyTag = 342, 453 JSDocOverrideTag = 343, 454 JSDocCallbackTag = 344, 455 JSDocEnumTag = 345, 456 JSDocParameterTag = 346, 457 JSDocReturnTag = 347, 458 JSDocThisTag = 348, 459 JSDocTypeTag = 349, 460 JSDocTemplateTag = 350, 461 JSDocTypedefTag = 351, 462 JSDocSeeTag = 352, 463 JSDocPropertyTag = 353, 464 SyntaxList = 354, 465 NotEmittedStatement = 355, 466 PartiallyEmittedExpression = 356, 467 CommaListExpression = 357, 468 MergeDeclarationMarker = 358, 469 EndOfDeclarationMarker = 359, 470 SyntheticReferenceExpression = 360, 471 Count = 361, 472 FirstAssignment = 63, 473 LastAssignment = 78, 474 FirstCompoundAssignment = 64, 475 LastCompoundAssignment = 78, 476 FirstReservedWord = 81, 477 LastReservedWord = 117, 478 FirstKeyword = 81, 479 LastKeyword = 163, 480 FirstFutureReservedWord = 118, 481 LastFutureReservedWord = 126, 482 FirstTypeNode = 180, 483 LastTypeNode = 203, 484 FirstPunctuation = 18, 485 LastPunctuation = 78, 486 FirstToken = 0, 487 LastToken = 163, 488 FirstTriviaToken = 2, 489 LastTriviaToken = 7, 490 FirstLiteralToken = 8, 491 LastLiteralToken = 14, 492 FirstTemplateToken = 14, 493 LastTemplateToken = 17, 494 FirstBinaryOperator = 29, 495 LastBinaryOperator = 78, 496 FirstStatement = 242, 497 LastStatement = 258, 498 FirstNode = 164, 499 FirstJSDocNode = 315, 500 LastJSDocNode = 353, 501 FirstJSDocTagNode = 333, 502 LastJSDocTagNode = 353, 503 } 504 export type TriviaSyntaxKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia | SyntaxKind.NewLineTrivia | SyntaxKind.WhitespaceTrivia | SyntaxKind.ShebangTrivia | SyntaxKind.ConflictMarkerTrivia; 505 export type LiteralSyntaxKind = SyntaxKind.NumericLiteral | SyntaxKind.BigIntLiteral | SyntaxKind.StringLiteral | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.RegularExpressionLiteral | SyntaxKind.NoSubstitutionTemplateLiteral; 506 export type PseudoLiteralSyntaxKind = SyntaxKind.TemplateHead | SyntaxKind.TemplateMiddle | SyntaxKind.TemplateTail; 507 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; 508 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.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword; 509 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; 510 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; 511 export type TokenSyntaxKind = SyntaxKind.Unknown | SyntaxKind.EndOfFileToken | TriviaSyntaxKind | LiteralSyntaxKind | PseudoLiteralSyntaxKind | PunctuationSyntaxKind | SyntaxKind.Identifier | KeywordSyntaxKind; 512 export type JsxTokenSyntaxKind = SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken; 513 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; 514 export enum NodeFlags { 515 None = 0, 516 Let = 1, 517 Const = 2, 518 NestedNamespace = 4, 519 Synthesized = 8, 520 Namespace = 16, 521 OptionalChain = 32, 522 ExportContext = 64, 523 ContainsThis = 128, 524 HasImplicitReturn = 256, 525 HasExplicitReturn = 512, 526 GlobalAugmentation = 1024, 527 HasAsyncFunctions = 2048, 528 DisallowInContext = 4096, 529 YieldContext = 8192, 530 DecoratorContext = 16384, 531 AwaitContext = 32768, 532 DisallowConditionalTypesContext = 65536, 533 ThisNodeHasError = 131072, 534 JavaScriptFile = 262144, 535 ThisNodeOrAnySubNodesHasError = 524288, 536 HasAggregatedChildData = 1048576, 537 JSDoc = 8388608, 538 JsonFile = 67108864, 539 EtsContext = 1073741824, 540 BlockScoped = 3, 541 ReachabilityCheckFlags = 768, 542 ReachabilityAndEmitFlags = 2816, 543 ContextFlags = 1124462592, 544 TypeExcludesFlags = 40960, 545 } 546 export enum EtsFlags { 547 None = 0, 548 StructContext = 2, 549 EtsExtendComponentsContext = 4, 550 EtsStylesComponentsContext = 8, 551 EtsBuildContext = 16, 552 EtsBuilderContext = 32, 553 EtsStateStylesContext = 64, 554 EtsComponentsContext = 128, 555 EtsNewExpressionContext = 256 556 } 557 export enum ModifierFlags { 558 None = 0, 559 Export = 1, 560 Ambient = 2, 561 Public = 4, 562 Private = 8, 563 Protected = 16, 564 Static = 32, 565 Readonly = 64, 566 Accessor = 128, 567 Abstract = 256, 568 Async = 512, 569 Default = 1024, 570 Const = 2048, 571 HasComputedJSDocModifiers = 4096, 572 Deprecated = 8192, 573 Override = 16384, 574 In = 32768, 575 Out = 65536, 576 Decorator = 131072, 577 HasComputedFlags = 536870912, 578 AccessibilityModifier = 28, 579 ParameterPropertyModifier = 16476, 580 NonPublicAccessibilityModifier = 24, 581 TypeScriptModifier = 117086, 582 ExportDefault = 1025, 583 All = 258047, 584 Modifier = 126975 585 } 586 export enum JsxFlags { 587 None = 0, 588 /** An element from a named property of the JSX.IntrinsicElements interface */ 589 IntrinsicNamedElement = 1, 590 /** An element inferred from the string index signature of the JSX.IntrinsicElements interface */ 591 IntrinsicIndexedElement = 2, 592 IntrinsicElement = 3 593 } 594 export interface Node extends ReadonlyTextRange { 595 readonly kind: SyntaxKind; 596 readonly flags: NodeFlags; 597 readonly parent: Node; 598 symbol: Symbol; 599 locals?: SymbolTable; 600 skipCheck?: boolean; 601 } 602 export interface JSDocContainer { 603 } 604 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; 605 export type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType; 606 export type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement; 607 export type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute; 608 export type HasExpressionInitializer = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | EnumMember; 609 export type HasDecorators = ParameterDeclaration | PropertyDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ClassExpression | ClassDeclaration | StructDeclaration | FunctionDeclaration; 610 export type HasIllegalDecorators = PropertyAssignment | ShorthandPropertyAssignment | FunctionDeclaration | ConstructorDeclaration | IndexSignatureDeclaration | ClassStaticBlockDeclaration | MissingDeclaration | VariableStatement | InterfaceDeclaration | TypeAliasDeclaration | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportDeclaration | ExportAssignment; 611 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; 612 export interface NodeArray<T extends Node> extends ReadonlyArray<T>, ReadonlyTextRange { 613 readonly hasTrailingComma: boolean; 614 } 615 export interface Token<TKind extends SyntaxKind> extends Node { 616 readonly kind: TKind; 617 } 618 export type EndOfFileToken = Token<SyntaxKind.EndOfFileToken> & JSDocContainer; 619 export interface PunctuationToken<TKind extends PunctuationSyntaxKind> extends Token<TKind> { 620 } 621 export type DotToken = PunctuationToken<SyntaxKind.DotToken>; 622 export type DotDotDotToken = PunctuationToken<SyntaxKind.DotDotDotToken>; 623 export type QuestionToken = PunctuationToken<SyntaxKind.QuestionToken>; 624 export type ExclamationToken = PunctuationToken<SyntaxKind.ExclamationToken>; 625 export type ColonToken = PunctuationToken<SyntaxKind.ColonToken>; 626 export type EqualsToken = PunctuationToken<SyntaxKind.EqualsToken>; 627 export type AsteriskToken = PunctuationToken<SyntaxKind.AsteriskToken>; 628 export type EqualsGreaterThanToken = PunctuationToken<SyntaxKind.EqualsGreaterThanToken>; 629 export type PlusToken = PunctuationToken<SyntaxKind.PlusToken>; 630 export type MinusToken = PunctuationToken<SyntaxKind.MinusToken>; 631 export type QuestionDotToken = PunctuationToken<SyntaxKind.QuestionDotToken>; 632 export interface KeywordToken<TKind extends KeywordSyntaxKind> extends Token<TKind> { 633 } 634 export type AssertsKeyword = KeywordToken<SyntaxKind.AssertsKeyword>; 635 export type AssertKeyword = KeywordToken<SyntaxKind.AssertKeyword>; 636 export type AwaitKeyword = KeywordToken<SyntaxKind.AwaitKeyword>; 637 /** @deprecated Use `AwaitKeyword` instead. */ 638 export type AwaitKeywordToken = AwaitKeyword; 639 /** @deprecated Use `AssertsKeyword` instead. */ 640 export type AssertsToken = AssertsKeyword; 641 export interface ModifierToken<TKind extends ModifierSyntaxKind> extends KeywordToken<TKind> { 642 } 643 export type AbstractKeyword = ModifierToken<SyntaxKind.AbstractKeyword>; 644 export type AccessorKeyword = ModifierToken<SyntaxKind.AccessorKeyword>; 645 export type AsyncKeyword = ModifierToken<SyntaxKind.AsyncKeyword>; 646 export type ConstKeyword = ModifierToken<SyntaxKind.ConstKeyword>; 647 export type DeclareKeyword = ModifierToken<SyntaxKind.DeclareKeyword>; 648 export type DefaultKeyword = ModifierToken<SyntaxKind.DefaultKeyword>; 649 export type ExportKeyword = ModifierToken<SyntaxKind.ExportKeyword>; 650 export type InKeyword = ModifierToken<SyntaxKind.InKeyword>; 651 export type PrivateKeyword = ModifierToken<SyntaxKind.PrivateKeyword>; 652 export type ProtectedKeyword = ModifierToken<SyntaxKind.ProtectedKeyword>; 653 export type PublicKeyword = ModifierToken<SyntaxKind.PublicKeyword>; 654 export type ReadonlyKeyword = ModifierToken<SyntaxKind.ReadonlyKeyword>; 655 export type OutKeyword = ModifierToken<SyntaxKind.OutKeyword>; 656 export type OverrideKeyword = ModifierToken<SyntaxKind.OverrideKeyword>; 657 export type StaticKeyword = ModifierToken<SyntaxKind.StaticKeyword>; 658 /** @deprecated Use `ReadonlyKeyword` instead. */ 659 export type ReadonlyToken = ReadonlyKeyword; 660 export type Modifier = AbstractKeyword | AccessorKeyword | AsyncKeyword | ConstKeyword | DeclareKeyword | DefaultKeyword | ExportKeyword | InKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword | OutKeyword | OverrideKeyword | ReadonlyKeyword | StaticKeyword; 661 export type ModifierLike = Modifier | Decorator; 662 export type AccessibilityModifier = PublicKeyword | PrivateKeyword | ProtectedKeyword; 663 export type ParameterPropertyModifier = AccessibilityModifier | ReadonlyKeyword; 664 export type ClassMemberModifier = AccessibilityModifier | ReadonlyKeyword | StaticKeyword | AccessorKeyword; 665 export type ModifiersArray = NodeArray<Modifier>; 666 export enum GeneratedIdentifierFlags { 667 None = 0, 668 ReservedInNestedScopes = 8, 669 Optimistic = 16, 670 FileLevel = 32, 671 AllowNameSubstitution = 64 672 } 673 export interface Identifier extends PrimaryExpression, Declaration { 674 readonly kind: SyntaxKind.Identifier; 675 /** 676 * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.) 677 * Text of identifier, but if the identifier begins with two underscores, this will begin with three. 678 */ 679 readonly escapedText: __String; 680 readonly originalKeywordKind?: SyntaxKind; 681 isInJSDocNamespace?: boolean; 682 } 683 export interface TransientIdentifier extends Identifier { 684 resolvedSymbol: Symbol; 685 } 686 export interface QualifiedName extends Node { 687 readonly kind: SyntaxKind.QualifiedName; 688 readonly left: EntityName; 689 readonly right: Identifier; 690 } 691 export type EntityName = Identifier | QualifiedName; 692 export type PropertyName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier; 693 export type MemberName = Identifier | PrivateIdentifier; 694 export type DeclarationName = Identifier | PrivateIdentifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | ElementAccessExpression | BindingPattern | EntityNameExpression; 695 export interface Declaration extends Node { 696 _declarationBrand: any; 697 } 698 export interface NamedDeclaration extends Declaration { 699 readonly name?: DeclarationName; 700 } 701 export interface DeclarationStatement extends NamedDeclaration, Statement { 702 readonly name?: Identifier | StringLiteral | NumericLiteral; 703 } 704 export interface ComputedPropertyName extends Node { 705 readonly kind: SyntaxKind.ComputedPropertyName; 706 readonly parent: Declaration; 707 readonly expression: Expression; 708 } 709 export interface PrivateIdentifier extends PrimaryExpression { 710 readonly kind: SyntaxKind.PrivateIdentifier; 711 readonly escapedText: __String; 712 } 713 export interface Decorator extends Node { 714 readonly kind: SyntaxKind.Decorator; 715 readonly parent: NamedDeclaration; 716 readonly expression: LeftHandSideExpression; 717 } 718 export interface TypeParameterDeclaration extends NamedDeclaration { 719 readonly kind: SyntaxKind.TypeParameter; 720 readonly parent: DeclarationWithTypeParameterChildren | InferTypeNode; 721 readonly modifiers?: NodeArray<Modifier>; 722 readonly name: Identifier; 723 /** Note: Consider calling `getEffectiveConstraintOfTypeParameter` */ 724 readonly constraint?: TypeNode; 725 readonly default?: TypeNode; 726 expression?: Expression; 727 } 728 export interface SignatureDeclarationBase extends NamedDeclaration, JSDocContainer { 729 readonly kind: SignatureDeclaration["kind"]; 730 readonly name?: PropertyName; 731 readonly typeParameters?: NodeArray<TypeParameterDeclaration> | undefined; 732 readonly parameters: NodeArray<ParameterDeclaration>; 733 readonly type?: TypeNode | undefined; 734 } 735 export type SignatureDeclaration = CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | AccessorDeclaration | FunctionExpression | ArrowFunction; 736 export interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement { 737 readonly kind: SyntaxKind.CallSignature; 738 } 739 export interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement { 740 readonly kind: SyntaxKind.ConstructSignature; 741 } 742 export type BindingName = Identifier | BindingPattern; 743 export interface VariableDeclaration extends NamedDeclaration, JSDocContainer { 744 readonly kind: SyntaxKind.VariableDeclaration; 745 readonly parent: VariableDeclarationList | CatchClause; 746 readonly name: BindingName; 747 readonly exclamationToken?: ExclamationToken; 748 readonly type?: TypeNode; 749 readonly initializer?: Expression; 750 } 751 export interface VariableDeclarationList extends Node { 752 readonly kind: SyntaxKind.VariableDeclarationList; 753 readonly parent: VariableStatement | ForStatement | ForOfStatement | ForInStatement; 754 readonly declarations: NodeArray<VariableDeclaration>; 755 } 756 export interface ParameterDeclaration extends NamedDeclaration, JSDocContainer { 757 readonly kind: SyntaxKind.Parameter; 758 readonly parent: SignatureDeclaration; 759 readonly modifiers?: NodeArray<ModifierLike>; 760 readonly dotDotDotToken?: DotDotDotToken; 761 readonly name: BindingName; 762 readonly questionToken?: QuestionToken; 763 readonly type?: TypeNode; 764 readonly initializer?: Expression; 765 } 766 export interface BindingElement extends NamedDeclaration { 767 readonly kind: SyntaxKind.BindingElement; 768 readonly parent: BindingPattern; 769 readonly propertyName?: PropertyName; 770 readonly dotDotDotToken?: DotDotDotToken; 771 readonly name: BindingName; 772 readonly initializer?: Expression; 773 } 774 export interface PropertySignature extends TypeElement, JSDocContainer { 775 readonly kind: SyntaxKind.PropertySignature; 776 readonly modifiers?: NodeArray<Modifier>; 777 readonly name: PropertyName; 778 readonly questionToken?: QuestionToken; 779 readonly type?: TypeNode; 780 } 781 export interface PropertyDeclaration extends ClassElement, JSDocContainer { 782 readonly kind: SyntaxKind.PropertyDeclaration; 783 readonly parent: ClassLikeDeclaration; 784 readonly modifiers?: NodeArray<ModifierLike>; 785 readonly name: PropertyName; 786 readonly questionToken?: QuestionToken; 787 readonly exclamationToken?: ExclamationToken; 788 readonly type?: TypeNode; 789 readonly initializer?: Expression; 790 } 791 export interface AutoAccessorPropertyDeclaration extends PropertyDeclaration { 792 _autoAccessorBrand: any; 793 } 794 export interface ObjectLiteralElement extends NamedDeclaration { 795 _objectLiteralBrand: any; 796 readonly name?: PropertyName; 797 } 798 /** Unlike ObjectLiteralElement, excludes JSXAttribute and JSXSpreadAttribute. */ 799 export type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | MethodDeclaration | AccessorDeclaration; 800 export interface PropertyAssignment extends ObjectLiteralElement, JSDocContainer { 801 readonly kind: SyntaxKind.PropertyAssignment; 802 readonly parent: ObjectLiteralExpression; 803 readonly name: PropertyName; 804 readonly initializer: Expression; 805 } 806 export interface ShorthandPropertyAssignment extends ObjectLiteralElement, JSDocContainer { 807 readonly kind: SyntaxKind.ShorthandPropertyAssignment; 808 readonly parent: ObjectLiteralExpression; 809 readonly name: Identifier; 810 readonly equalsToken?: EqualsToken; 811 readonly objectAssignmentInitializer?: Expression; 812 } 813 export interface SpreadAssignment extends ObjectLiteralElement, JSDocContainer { 814 readonly kind: SyntaxKind.SpreadAssignment; 815 readonly parent: ObjectLiteralExpression; 816 readonly expression: Expression; 817 } 818 export type VariableLikeDeclaration = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | PropertySignature | JsxAttribute | ShorthandPropertyAssignment | EnumMember | JSDocPropertyTag | JSDocParameterTag; 819 export interface PropertyLikeDeclaration extends NamedDeclaration { 820 readonly name: PropertyName; 821 } 822 export interface ObjectBindingPattern extends Node { 823 readonly kind: SyntaxKind.ObjectBindingPattern; 824 readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement; 825 readonly elements: NodeArray<BindingElement>; 826 } 827 export interface ArrayBindingPattern extends Node { 828 readonly kind: SyntaxKind.ArrayBindingPattern; 829 readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement; 830 readonly elements: NodeArray<ArrayBindingElement>; 831 } 832 export type BindingPattern = ObjectBindingPattern | ArrayBindingPattern; 833 export type ArrayBindingElement = BindingElement | OmittedExpression; 834 /** 835 * Several node kinds share function-like features such as a signature, 836 * a name, and a body. These nodes should extend FunctionLikeDeclarationBase. 837 * Examples: 838 * - FunctionDeclaration 839 * - MethodDeclaration 840 * - AccessorDeclaration 841 */ 842 export interface FunctionLikeDeclarationBase extends SignatureDeclarationBase { 843 _functionLikeDeclarationBrand: any; 844 readonly asteriskToken?: AsteriskToken | undefined; 845 readonly questionToken?: QuestionToken | undefined; 846 readonly exclamationToken?: ExclamationToken | undefined; 847 readonly body?: Block | Expression | undefined; 848 } 849 export type FunctionLikeDeclaration = FunctionDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | FunctionExpression | ArrowFunction; 850 /** @deprecated Use SignatureDeclaration */ 851 export type FunctionLike = SignatureDeclaration; 852 export interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement { 853 readonly kind: SyntaxKind.FunctionDeclaration; 854 readonly modifiers?: NodeArray<Modifier>; 855 readonly name?: Identifier; 856 readonly body?: FunctionBody; 857 } 858 export interface MethodSignature extends SignatureDeclarationBase, TypeElement { 859 readonly kind: SyntaxKind.MethodSignature; 860 readonly parent: ObjectTypeDeclaration; 861 readonly modifiers?: NodeArray<Modifier>; 862 readonly name: PropertyName; 863 } 864 export interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer { 865 readonly kind: SyntaxKind.MethodDeclaration; 866 readonly parent: ClassLikeDeclaration | ObjectLiteralExpression; 867 readonly modifiers?: NodeArray<ModifierLike> | undefined; 868 readonly name: PropertyName; 869 readonly body?: FunctionBody | undefined; 870 } 871 export interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer { 872 readonly kind: SyntaxKind.Constructor; 873 readonly parent: ClassLikeDeclaration; 874 readonly modifiers?: NodeArray<Modifier> | undefined; 875 readonly body?: FunctionBody | undefined; 876 } 877 /** For when we encounter a semicolon in a class declaration. ES6 allows these as class elements. */ 878 export interface SemicolonClassElement extends ClassElement { 879 readonly kind: SyntaxKind.SemicolonClassElement; 880 readonly parent: ClassLikeDeclaration; 881 } 882 export interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer { 883 readonly kind: SyntaxKind.GetAccessor; 884 readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration; 885 readonly modifiers?: NodeArray<ModifierLike>; 886 readonly name: PropertyName; 887 readonly body?: FunctionBody; 888 } 889 export interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer { 890 readonly kind: SyntaxKind.SetAccessor; 891 readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration; 892 readonly modifiers?: NodeArray<ModifierLike>; 893 readonly name: PropertyName; 894 readonly body?: FunctionBody; 895 } 896 export type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration; 897 export interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement { 898 readonly kind: SyntaxKind.IndexSignature; 899 readonly parent: ObjectTypeDeclaration; 900 readonly modifiers?: NodeArray<Modifier>; 901 readonly type: TypeNode; 902 } 903 export interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer { 904 readonly kind: SyntaxKind.ClassStaticBlockDeclaration; 905 readonly parent: ClassDeclaration | ClassExpression; 906 readonly body: Block; 907 } 908 export interface TypeNode extends Node { 909 _typeNodeBrand: any; 910 } 911 export interface KeywordTypeNode<TKind extends KeywordTypeSyntaxKind = KeywordTypeSyntaxKind> extends KeywordToken<TKind>, TypeNode { 912 readonly kind: TKind; 913 } 914 export interface ImportTypeAssertionContainer extends Node { 915 readonly kind: SyntaxKind.ImportTypeAssertionContainer; 916 readonly parent: ImportTypeNode; 917 readonly assertClause: AssertClause; 918 readonly multiLine?: boolean; 919 } 920 export interface ImportTypeNode extends NodeWithTypeArguments { 921 readonly kind: SyntaxKind.ImportType; 922 readonly isTypeOf: boolean; 923 readonly argument: TypeNode; 924 readonly assertions?: ImportTypeAssertionContainer; 925 readonly qualifier?: EntityName; 926 } 927 export interface ThisTypeNode extends TypeNode { 928 readonly kind: SyntaxKind.ThisType; 929 } 930 export type FunctionOrConstructorTypeNode = FunctionTypeNode | ConstructorTypeNode; 931 export interface FunctionOrConstructorTypeNodeBase extends TypeNode, SignatureDeclarationBase { 932 readonly kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType; 933 readonly type: TypeNode; 934 } 935 export interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase { 936 readonly kind: SyntaxKind.FunctionType; 937 } 938 export interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase { 939 readonly kind: SyntaxKind.ConstructorType; 940 readonly modifiers?: NodeArray<Modifier>; 941 } 942 export interface NodeWithTypeArguments extends TypeNode { 943 readonly typeArguments?: NodeArray<TypeNode>; 944 } 945 export type TypeReferenceType = TypeReferenceNode | ExpressionWithTypeArguments; 946 export interface TypeReferenceNode extends NodeWithTypeArguments { 947 readonly kind: SyntaxKind.TypeReference; 948 readonly typeName: EntityName; 949 } 950 export interface TypePredicateNode extends TypeNode { 951 readonly kind: SyntaxKind.TypePredicate; 952 readonly parent: SignatureDeclaration | JSDocTypeExpression; 953 readonly assertsModifier?: AssertsKeyword; 954 readonly parameterName: Identifier | ThisTypeNode; 955 readonly type?: TypeNode; 956 } 957 export interface TypeQueryNode extends NodeWithTypeArguments { 958 readonly kind: SyntaxKind.TypeQuery; 959 readonly exprName: EntityName; 960 } 961 export interface TypeLiteralNode extends TypeNode, Declaration { 962 readonly kind: SyntaxKind.TypeLiteral; 963 readonly members: NodeArray<TypeElement>; 964 } 965 export interface ArrayTypeNode extends TypeNode { 966 readonly kind: SyntaxKind.ArrayType; 967 readonly elementType: TypeNode; 968 } 969 export interface TupleTypeNode extends TypeNode { 970 readonly kind: SyntaxKind.TupleType; 971 readonly elements: NodeArray<TypeNode | NamedTupleMember>; 972 } 973 export interface NamedTupleMember extends TypeNode, JSDocContainer, Declaration { 974 readonly kind: SyntaxKind.NamedTupleMember; 975 readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>; 976 readonly name: Identifier; 977 readonly questionToken?: Token<SyntaxKind.QuestionToken>; 978 readonly type: TypeNode; 979 } 980 export interface OptionalTypeNode extends TypeNode { 981 readonly kind: SyntaxKind.OptionalType; 982 readonly type: TypeNode; 983 } 984 export interface RestTypeNode extends TypeNode { 985 readonly kind: SyntaxKind.RestType; 986 readonly type: TypeNode; 987 } 988 export type UnionOrIntersectionTypeNode = UnionTypeNode | IntersectionTypeNode; 989 export interface UnionTypeNode extends TypeNode { 990 readonly kind: SyntaxKind.UnionType; 991 readonly types: NodeArray<TypeNode>; 992 } 993 export interface IntersectionTypeNode extends TypeNode { 994 readonly kind: SyntaxKind.IntersectionType; 995 readonly types: NodeArray<TypeNode>; 996 } 997 export interface ConditionalTypeNode extends TypeNode { 998 readonly kind: SyntaxKind.ConditionalType; 999 readonly checkType: TypeNode; 1000 readonly extendsType: TypeNode; 1001 readonly trueType: TypeNode; 1002 readonly falseType: TypeNode; 1003 } 1004 export interface InferTypeNode extends TypeNode { 1005 readonly kind: SyntaxKind.InferType; 1006 readonly typeParameter: TypeParameterDeclaration; 1007 } 1008 export interface ParenthesizedTypeNode extends TypeNode { 1009 readonly kind: SyntaxKind.ParenthesizedType; 1010 readonly type: TypeNode; 1011 } 1012 export interface TypeOperatorNode extends TypeNode { 1013 readonly kind: SyntaxKind.TypeOperator; 1014 readonly operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword; 1015 readonly type: TypeNode; 1016 } 1017 export interface IndexedAccessTypeNode extends TypeNode { 1018 readonly kind: SyntaxKind.IndexedAccessType; 1019 readonly objectType: TypeNode; 1020 readonly indexType: TypeNode; 1021 } 1022 export interface MappedTypeNode extends TypeNode, Declaration { 1023 readonly kind: SyntaxKind.MappedType; 1024 readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken; 1025 readonly typeParameter: TypeParameterDeclaration; 1026 readonly nameType?: TypeNode; 1027 readonly questionToken?: QuestionToken | PlusToken | MinusToken; 1028 readonly type?: TypeNode; 1029 /** Used only to produce grammar errors */ 1030 readonly members?: NodeArray<TypeElement>; 1031 } 1032 export interface LiteralTypeNode extends TypeNode { 1033 readonly kind: SyntaxKind.LiteralType; 1034 readonly literal: NullLiteral | BooleanLiteral | LiteralExpression | PrefixUnaryExpression; 1035 } 1036 export interface StringLiteral extends LiteralExpression, Declaration { 1037 readonly kind: SyntaxKind.StringLiteral; 1038 } 1039 export type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral; 1040 export type PropertyNameLiteral = Identifier | StringLiteralLike | NumericLiteral; 1041 export interface TemplateLiteralTypeNode extends TypeNode { 1042 kind: SyntaxKind.TemplateLiteralType; 1043 readonly head: TemplateHead; 1044 readonly templateSpans: NodeArray<TemplateLiteralTypeSpan>; 1045 } 1046 export interface TemplateLiteralTypeSpan extends TypeNode { 1047 readonly kind: SyntaxKind.TemplateLiteralTypeSpan; 1048 readonly parent: TemplateLiteralTypeNode; 1049 readonly type: TypeNode; 1050 readonly literal: TemplateMiddle | TemplateTail; 1051 } 1052 export interface Expression extends Node { 1053 _expressionBrand: any; 1054 } 1055 export interface OmittedExpression extends Expression { 1056 readonly kind: SyntaxKind.OmittedExpression; 1057 } 1058 export interface PartiallyEmittedExpression extends LeftHandSideExpression { 1059 readonly kind: SyntaxKind.PartiallyEmittedExpression; 1060 readonly expression: Expression; 1061 } 1062 export interface UnaryExpression extends Expression { 1063 _unaryExpressionBrand: any; 1064 } 1065 /** Deprecated, please use UpdateExpression */ 1066 export type IncrementExpression = UpdateExpression; 1067 export interface UpdateExpression extends UnaryExpression { 1068 _updateExpressionBrand: any; 1069 } 1070 export type PrefixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.TildeToken | SyntaxKind.ExclamationToken; 1071 export interface PrefixUnaryExpression extends UpdateExpression { 1072 readonly kind: SyntaxKind.PrefixUnaryExpression; 1073 readonly operator: PrefixUnaryOperator; 1074 readonly operand: UnaryExpression; 1075 } 1076 export type PostfixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken; 1077 export interface PostfixUnaryExpression extends UpdateExpression { 1078 readonly kind: SyntaxKind.PostfixUnaryExpression; 1079 readonly operand: LeftHandSideExpression; 1080 readonly operator: PostfixUnaryOperator; 1081 } 1082 export interface LeftHandSideExpression extends UpdateExpression { 1083 _leftHandSideExpressionBrand: any; 1084 } 1085 export interface MemberExpression extends LeftHandSideExpression { 1086 _memberExpressionBrand: any; 1087 } 1088 export interface PrimaryExpression extends MemberExpression { 1089 _primaryExpressionBrand: any; 1090 } 1091 export interface NullLiteral extends PrimaryExpression { 1092 readonly kind: SyntaxKind.NullKeyword; 1093 } 1094 export interface TrueLiteral extends PrimaryExpression { 1095 readonly kind: SyntaxKind.TrueKeyword; 1096 } 1097 export interface FalseLiteral extends PrimaryExpression { 1098 readonly kind: SyntaxKind.FalseKeyword; 1099 } 1100 export type BooleanLiteral = TrueLiteral | FalseLiteral; 1101 export interface ThisExpression extends PrimaryExpression { 1102 readonly kind: SyntaxKind.ThisKeyword; 1103 } 1104 export interface SuperExpression extends PrimaryExpression { 1105 readonly kind: SyntaxKind.SuperKeyword; 1106 } 1107 export interface ImportExpression extends PrimaryExpression { 1108 readonly kind: SyntaxKind.ImportKeyword; 1109 } 1110 export interface DeleteExpression extends UnaryExpression { 1111 readonly kind: SyntaxKind.DeleteExpression; 1112 readonly expression: UnaryExpression; 1113 } 1114 export interface TypeOfExpression extends UnaryExpression { 1115 readonly kind: SyntaxKind.TypeOfExpression; 1116 readonly expression: UnaryExpression; 1117 } 1118 export interface VoidExpression extends UnaryExpression { 1119 readonly kind: SyntaxKind.VoidExpression; 1120 readonly expression: UnaryExpression; 1121 } 1122 export interface AwaitExpression extends UnaryExpression { 1123 readonly kind: SyntaxKind.AwaitExpression; 1124 readonly expression: UnaryExpression; 1125 } 1126 export interface YieldExpression extends Expression { 1127 readonly kind: SyntaxKind.YieldExpression; 1128 readonly asteriskToken?: AsteriskToken; 1129 readonly expression?: Expression; 1130 } 1131 export interface SyntheticExpression extends Expression { 1132 readonly kind: SyntaxKind.SyntheticExpression; 1133 readonly isSpread: boolean; 1134 readonly type: Type; 1135 readonly tupleNameSource?: ParameterDeclaration | NamedTupleMember; 1136 } 1137 export type ExponentiationOperator = SyntaxKind.AsteriskAsteriskToken; 1138 export type MultiplicativeOperator = SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken; 1139 export type MultiplicativeOperatorOrHigher = ExponentiationOperator | MultiplicativeOperator; 1140 export type AdditiveOperator = SyntaxKind.PlusToken | SyntaxKind.MinusToken; 1141 export type AdditiveOperatorOrHigher = MultiplicativeOperatorOrHigher | AdditiveOperator; 1142 export type ShiftOperator = SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken; 1143 export type ShiftOperatorOrHigher = AdditiveOperatorOrHigher | ShiftOperator; 1144 export type RelationalOperator = SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword; 1145 export type RelationalOperatorOrHigher = ShiftOperatorOrHigher | RelationalOperator; 1146 export type EqualityOperator = SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken; 1147 export type EqualityOperatorOrHigher = RelationalOperatorOrHigher | EqualityOperator; 1148 export type BitwiseOperator = SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken; 1149 export type BitwiseOperatorOrHigher = EqualityOperatorOrHigher | BitwiseOperator; 1150 export type LogicalOperator = SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken; 1151 export type LogicalOperatorOrHigher = BitwiseOperatorOrHigher | LogicalOperator; 1152 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; 1153 export type AssignmentOperator = SyntaxKind.EqualsToken | CompoundAssignmentOperator; 1154 export type AssignmentOperatorOrHigher = SyntaxKind.QuestionQuestionToken | LogicalOperatorOrHigher | AssignmentOperator; 1155 export type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken; 1156 export type LogicalOrCoalescingAssignmentOperator = SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.QuestionQuestionEqualsToken; 1157 export type BinaryOperatorToken = Token<BinaryOperator>; 1158 export interface BinaryExpression extends Expression, Declaration { 1159 readonly kind: SyntaxKind.BinaryExpression; 1160 readonly left: Expression; 1161 readonly operatorToken: BinaryOperatorToken; 1162 readonly right: Expression; 1163 } 1164 export type AssignmentOperatorToken = Token<AssignmentOperator>; 1165 export interface AssignmentExpression<TOperator extends AssignmentOperatorToken> extends BinaryExpression { 1166 readonly left: LeftHandSideExpression; 1167 readonly operatorToken: TOperator; 1168 } 1169 export interface ObjectDestructuringAssignment extends AssignmentExpression<EqualsToken> { 1170 readonly left: ObjectLiteralExpression; 1171 } 1172 export interface ArrayDestructuringAssignment extends AssignmentExpression<EqualsToken> { 1173 readonly left: ArrayLiteralExpression; 1174 } 1175 export type DestructuringAssignment = ObjectDestructuringAssignment | ArrayDestructuringAssignment; 1176 export type BindingOrAssignmentElement = VariableDeclaration | ParameterDeclaration | ObjectBindingOrAssignmentElement | ArrayBindingOrAssignmentElement; 1177 export type ObjectBindingOrAssignmentElement = BindingElement | PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment; 1178 export type ArrayBindingOrAssignmentElement = BindingElement | OmittedExpression | SpreadElement | ArrayLiteralExpression | ObjectLiteralExpression | AssignmentExpression<EqualsToken> | Identifier | PropertyAccessExpression | ElementAccessExpression; 1179 export type BindingOrAssignmentElementRestIndicator = DotDotDotToken | SpreadElement | SpreadAssignment; 1180 export type BindingOrAssignmentElementTarget = BindingOrAssignmentPattern | Identifier | PropertyAccessExpression | ElementAccessExpression | OmittedExpression; 1181 export type ObjectBindingOrAssignmentPattern = ObjectBindingPattern | ObjectLiteralExpression; 1182 export type ArrayBindingOrAssignmentPattern = ArrayBindingPattern | ArrayLiteralExpression; 1183 export type AssignmentPattern = ObjectLiteralExpression | ArrayLiteralExpression; 1184 export type BindingOrAssignmentPattern = ObjectBindingOrAssignmentPattern | ArrayBindingOrAssignmentPattern; 1185 export interface ConditionalExpression extends Expression { 1186 readonly kind: SyntaxKind.ConditionalExpression; 1187 readonly condition: Expression; 1188 readonly questionToken: QuestionToken; 1189 readonly whenTrue: Expression; 1190 readonly colonToken: ColonToken; 1191 readonly whenFalse: Expression; 1192 } 1193 export type FunctionBody = Block; 1194 export type ConciseBody = FunctionBody | Expression; 1195 export interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer { 1196 readonly kind: SyntaxKind.FunctionExpression; 1197 readonly modifiers?: NodeArray<Modifier>; 1198 readonly name?: Identifier; 1199 readonly body: FunctionBody; 1200 } 1201 export interface EtsComponentExpression extends PrimaryExpression, Declaration { 1202 readonly kind: SyntaxKind.EtsComponentExpression; 1203 readonly expression: LeftHandSideExpression; 1204 readonly typeArguments?: NodeArray<TypeNode>; 1205 readonly arguments: NodeArray<Expression>; 1206 readonly body?: Block; 1207 } 1208 export interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer { 1209 readonly kind: SyntaxKind.ArrowFunction; 1210 readonly modifiers?: NodeArray<Modifier>; 1211 readonly equalsGreaterThanToken: EqualsGreaterThanToken; 1212 readonly body: ConciseBody; 1213 readonly name: never; 1214 } 1215 export interface LiteralLikeNode extends Node { 1216 text: string; 1217 isUnterminated?: boolean; 1218 hasExtendedUnicodeEscape?: boolean; 1219 } 1220 export interface TemplateLiteralLikeNode extends LiteralLikeNode { 1221 rawText?: string; 1222 } 1223 export interface LiteralExpression extends LiteralLikeNode, PrimaryExpression { 1224 _literalExpressionBrand: any; 1225 } 1226 export interface RegularExpressionLiteral extends LiteralExpression { 1227 readonly kind: SyntaxKind.RegularExpressionLiteral; 1228 } 1229 export interface NoSubstitutionTemplateLiteral extends LiteralExpression, TemplateLiteralLikeNode, Declaration { 1230 readonly kind: SyntaxKind.NoSubstitutionTemplateLiteral; 1231 } 1232 export enum TokenFlags { 1233 None = 0, 1234 Scientific = 16, 1235 Octal = 32, 1236 HexSpecifier = 64, 1237 BinarySpecifier = 128, 1238 OctalSpecifier = 256, 1239 } 1240 export interface NumericLiteral extends LiteralExpression, Declaration { 1241 readonly kind: SyntaxKind.NumericLiteral; 1242 } 1243 export interface BigIntLiteral extends LiteralExpression { 1244 readonly kind: SyntaxKind.BigIntLiteral; 1245 } 1246 export type LiteralToken = NumericLiteral | BigIntLiteral | StringLiteral | JsxText | RegularExpressionLiteral | NoSubstitutionTemplateLiteral; 1247 export interface TemplateHead extends TemplateLiteralLikeNode { 1248 readonly kind: SyntaxKind.TemplateHead; 1249 readonly parent: TemplateExpression | TemplateLiteralTypeNode; 1250 } 1251 export interface TemplateMiddle extends TemplateLiteralLikeNode { 1252 readonly kind: SyntaxKind.TemplateMiddle; 1253 readonly parent: TemplateSpan | TemplateLiteralTypeSpan; 1254 } 1255 export interface TemplateTail extends TemplateLiteralLikeNode { 1256 readonly kind: SyntaxKind.TemplateTail; 1257 readonly parent: TemplateSpan | TemplateLiteralTypeSpan; 1258 } 1259 export type PseudoLiteralToken = TemplateHead | TemplateMiddle | TemplateTail; 1260 export type TemplateLiteralToken = NoSubstitutionTemplateLiteral | PseudoLiteralToken; 1261 export interface TemplateExpression extends PrimaryExpression { 1262 readonly kind: SyntaxKind.TemplateExpression; 1263 readonly head: TemplateHead; 1264 readonly templateSpans: NodeArray<TemplateSpan>; 1265 } 1266 export type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral; 1267 export interface TemplateSpan extends Node { 1268 readonly kind: SyntaxKind.TemplateSpan; 1269 readonly parent: TemplateExpression; 1270 readonly expression: Expression; 1271 readonly literal: TemplateMiddle | TemplateTail; 1272 } 1273 export interface ParenthesizedExpression extends PrimaryExpression, JSDocContainer { 1274 readonly kind: SyntaxKind.ParenthesizedExpression; 1275 readonly expression: Expression; 1276 } 1277 export interface ArrayLiteralExpression extends PrimaryExpression { 1278 readonly kind: SyntaxKind.ArrayLiteralExpression; 1279 readonly elements: NodeArray<Expression>; 1280 } 1281 export interface SpreadElement extends Expression { 1282 readonly kind: SyntaxKind.SpreadElement; 1283 readonly parent: ArrayLiteralExpression | CallExpression | NewExpression; 1284 readonly expression: Expression; 1285 } 1286 /** 1287 * This interface is a base interface for ObjectLiteralExpression and JSXAttributes to extend from. JSXAttributes is similar to 1288 * ObjectLiteralExpression in that it contains array of properties; however, JSXAttributes' properties can only be 1289 * JSXAttribute or JSXSpreadAttribute. ObjectLiteralExpression, on the other hand, can only have properties of type 1290 * ObjectLiteralElement (e.g. PropertyAssignment, ShorthandPropertyAssignment etc.) 1291 */ 1292 export interface ObjectLiteralExpressionBase<T extends ObjectLiteralElement> extends PrimaryExpression, Declaration { 1293 readonly properties: NodeArray<T>; 1294 } 1295 export interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike> { 1296 readonly kind: SyntaxKind.ObjectLiteralExpression; 1297 } 1298 export type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression; 1299 export type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression; 1300 export type AccessExpression = PropertyAccessExpression | ElementAccessExpression; 1301 export interface PropertyAccessExpression extends MemberExpression, NamedDeclaration { 1302 readonly kind: SyntaxKind.PropertyAccessExpression; 1303 readonly expression: LeftHandSideExpression; 1304 readonly questionDotToken?: QuestionDotToken; 1305 readonly name: MemberName; 1306 } 1307 export interface PropertyAccessChain extends PropertyAccessExpression { 1308 _optionalChainBrand: any; 1309 readonly name: MemberName; 1310 } 1311 export interface SuperPropertyAccessExpression extends PropertyAccessExpression { 1312 readonly expression: SuperExpression; 1313 } 1314 /** Brand for a PropertyAccessExpression which, like a QualifiedName, consists of a sequence of identifiers separated by dots. */ 1315 export interface PropertyAccessEntityNameExpression extends PropertyAccessExpression { 1316 _propertyAccessExpressionLikeQualifiedNameBrand?: any; 1317 readonly expression: EntityNameExpression; 1318 readonly name: Identifier; 1319 } 1320 export interface ElementAccessExpression extends MemberExpression { 1321 readonly kind: SyntaxKind.ElementAccessExpression; 1322 readonly expression: LeftHandSideExpression; 1323 readonly questionDotToken?: QuestionDotToken; 1324 readonly argumentExpression: Expression; 1325 } 1326 export interface ElementAccessChain extends ElementAccessExpression { 1327 _optionalChainBrand: any; 1328 } 1329 export interface SuperElementAccessExpression extends ElementAccessExpression { 1330 readonly expression: SuperExpression; 1331 } 1332 export type SuperProperty = SuperPropertyAccessExpression | SuperElementAccessExpression; 1333 export interface CallExpression extends LeftHandSideExpression, Declaration { 1334 readonly kind: SyntaxKind.CallExpression; 1335 readonly expression: LeftHandSideExpression; 1336 readonly questionDotToken?: QuestionDotToken; 1337 readonly typeArguments?: NodeArray<TypeNode>; 1338 readonly arguments: NodeArray<Expression>; 1339 } 1340 export interface CallChain extends CallExpression { 1341 _optionalChainBrand: any; 1342 } 1343 export type OptionalChain = PropertyAccessChain | ElementAccessChain | CallChain | NonNullChain; 1344 export interface SuperCall extends CallExpression { 1345 readonly expression: SuperExpression; 1346 } 1347 export interface ImportCall extends CallExpression { 1348 readonly expression: ImportExpression; 1349 } 1350 export interface ExpressionWithTypeArguments extends MemberExpression, NodeWithTypeArguments { 1351 readonly kind: SyntaxKind.ExpressionWithTypeArguments; 1352 readonly expression: LeftHandSideExpression; 1353 } 1354 export interface NewExpression extends PrimaryExpression, Declaration { 1355 readonly kind: SyntaxKind.NewExpression; 1356 readonly expression: LeftHandSideExpression; 1357 readonly typeArguments?: NodeArray<TypeNode>; 1358 readonly arguments?: NodeArray<Expression>; 1359 } 1360 export interface TaggedTemplateExpression extends MemberExpression { 1361 readonly kind: SyntaxKind.TaggedTemplateExpression; 1362 readonly tag: LeftHandSideExpression; 1363 readonly typeArguments?: NodeArray<TypeNode>; 1364 readonly template: TemplateLiteral; 1365 } 1366 export type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement | EtsComponentExpression; 1367 export interface AsExpression extends Expression { 1368 readonly kind: SyntaxKind.AsExpression; 1369 readonly expression: Expression; 1370 readonly type: TypeNode; 1371 } 1372 export interface TypeAssertion extends UnaryExpression { 1373 readonly kind: SyntaxKind.TypeAssertionExpression; 1374 readonly type: TypeNode; 1375 readonly expression: UnaryExpression; 1376 } 1377 export interface SatisfiesExpression extends Expression { 1378 readonly kind: SyntaxKind.SatisfiesExpression; 1379 readonly expression: Expression; 1380 readonly type: TypeNode; 1381 } 1382 export type AssertionExpression = TypeAssertion | AsExpression; 1383 export interface NonNullExpression extends LeftHandSideExpression { 1384 readonly kind: SyntaxKind.NonNullExpression; 1385 readonly expression: Expression; 1386 } 1387 export interface NonNullChain extends NonNullExpression { 1388 _optionalChainBrand: any; 1389 } 1390 export interface MetaProperty extends PrimaryExpression { 1391 readonly kind: SyntaxKind.MetaProperty; 1392 readonly keywordToken: SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword; 1393 readonly name: Identifier; 1394 } 1395 export interface JsxElement extends PrimaryExpression { 1396 readonly kind: SyntaxKind.JsxElement; 1397 readonly openingElement: JsxOpeningElement; 1398 readonly children: NodeArray<JsxChild>; 1399 readonly closingElement: JsxClosingElement; 1400 } 1401 export type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement; 1402 export type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute; 1403 export type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess; 1404 export interface JsxTagNamePropertyAccess extends PropertyAccessExpression { 1405 readonly expression: JsxTagNameExpression; 1406 } 1407 export interface JsxAttributes extends ObjectLiteralExpressionBase<JsxAttributeLike> { 1408 readonly kind: SyntaxKind.JsxAttributes; 1409 readonly parent: JsxOpeningLikeElement; 1410 } 1411 export interface JsxOpeningElement extends Expression { 1412 readonly kind: SyntaxKind.JsxOpeningElement; 1413 readonly parent: JsxElement; 1414 readonly tagName: JsxTagNameExpression; 1415 readonly typeArguments?: NodeArray<TypeNode>; 1416 readonly attributes: JsxAttributes; 1417 } 1418 export interface JsxSelfClosingElement extends PrimaryExpression { 1419 readonly kind: SyntaxKind.JsxSelfClosingElement; 1420 readonly tagName: JsxTagNameExpression; 1421 readonly typeArguments?: NodeArray<TypeNode>; 1422 readonly attributes: JsxAttributes; 1423 } 1424 export interface JsxFragment extends PrimaryExpression { 1425 readonly kind: SyntaxKind.JsxFragment; 1426 readonly openingFragment: JsxOpeningFragment; 1427 readonly children: NodeArray<JsxChild>; 1428 readonly closingFragment: JsxClosingFragment; 1429 } 1430 export interface JsxOpeningFragment extends Expression { 1431 readonly kind: SyntaxKind.JsxOpeningFragment; 1432 readonly parent: JsxFragment; 1433 } 1434 export interface JsxClosingFragment extends Expression { 1435 readonly kind: SyntaxKind.JsxClosingFragment; 1436 readonly parent: JsxFragment; 1437 } 1438 export interface JsxAttribute extends ObjectLiteralElement { 1439 readonly kind: SyntaxKind.JsxAttribute; 1440 readonly parent: JsxAttributes; 1441 readonly name: Identifier; 1442 readonly initializer?: JsxAttributeValue; 1443 } 1444 export type JsxAttributeValue = StringLiteral | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; 1445 export interface JsxSpreadAttribute extends ObjectLiteralElement { 1446 readonly kind: SyntaxKind.JsxSpreadAttribute; 1447 readonly parent: JsxAttributes; 1448 readonly expression: Expression; 1449 } 1450 export interface JsxClosingElement extends Node { 1451 readonly kind: SyntaxKind.JsxClosingElement; 1452 readonly parent: JsxElement; 1453 readonly tagName: JsxTagNameExpression; 1454 } 1455 export interface JsxExpression extends Expression { 1456 readonly kind: SyntaxKind.JsxExpression; 1457 readonly parent: JsxElement | JsxFragment | JsxAttributeLike; 1458 readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>; 1459 readonly expression?: Expression; 1460 } 1461 export interface JsxText extends LiteralLikeNode { 1462 readonly kind: SyntaxKind.JsxText; 1463 readonly parent: JsxElement | JsxFragment; 1464 readonly containsOnlyTriviaWhiteSpaces: boolean; 1465 } 1466 export type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; 1467 export interface Statement extends Node, JSDocContainer { 1468 _statementBrand: any; 1469 } 1470 export interface NotEmittedStatement extends Statement { 1471 readonly kind: SyntaxKind.NotEmittedStatement; 1472 } 1473 /** 1474 * A list of comma-separated expressions. This node is only created by transformations. 1475 */ 1476 export interface CommaListExpression extends Expression { 1477 readonly kind: SyntaxKind.CommaListExpression; 1478 readonly elements: NodeArray<Expression>; 1479 } 1480 export interface EmptyStatement extends Statement { 1481 readonly kind: SyntaxKind.EmptyStatement; 1482 } 1483 export interface DebuggerStatement extends Statement { 1484 readonly kind: SyntaxKind.DebuggerStatement; 1485 } 1486 export interface MissingDeclaration extends DeclarationStatement { 1487 readonly kind: SyntaxKind.MissingDeclaration; 1488 readonly name?: Identifier; 1489 } 1490 export type BlockLike = SourceFile | Block | ModuleBlock | CaseOrDefaultClause; 1491 export interface Block extends Statement { 1492 readonly kind: SyntaxKind.Block; 1493 readonly statements: NodeArray<Statement>; 1494 } 1495 export interface VariableStatement extends Statement { 1496 readonly kind: SyntaxKind.VariableStatement; 1497 readonly modifiers?: NodeArray<Modifier>; 1498 readonly declarationList: VariableDeclarationList; 1499 } 1500 export interface ExpressionStatement extends Statement { 1501 readonly kind: SyntaxKind.ExpressionStatement; 1502 readonly expression: Expression; 1503 } 1504 export interface IfStatement extends Statement { 1505 readonly kind: SyntaxKind.IfStatement; 1506 readonly expression: Expression; 1507 readonly thenStatement: Statement; 1508 readonly elseStatement?: Statement; 1509 } 1510 export interface IterationStatement extends Statement { 1511 readonly statement: Statement; 1512 } 1513 export interface DoStatement extends IterationStatement { 1514 readonly kind: SyntaxKind.DoStatement; 1515 readonly expression: Expression; 1516 } 1517 export interface WhileStatement extends IterationStatement { 1518 readonly kind: SyntaxKind.WhileStatement; 1519 readonly expression: Expression; 1520 } 1521 export type ForInitializer = VariableDeclarationList | Expression; 1522 export interface ForStatement extends IterationStatement { 1523 readonly kind: SyntaxKind.ForStatement; 1524 readonly initializer?: ForInitializer; 1525 readonly condition?: Expression; 1526 readonly incrementor?: Expression; 1527 } 1528 export type ForInOrOfStatement = ForInStatement | ForOfStatement; 1529 export interface ForInStatement extends IterationStatement { 1530 readonly kind: SyntaxKind.ForInStatement; 1531 readonly initializer: ForInitializer; 1532 readonly expression: Expression; 1533 } 1534 export interface ForOfStatement extends IterationStatement { 1535 readonly kind: SyntaxKind.ForOfStatement; 1536 readonly awaitModifier?: AwaitKeyword; 1537 readonly initializer: ForInitializer; 1538 readonly expression: Expression; 1539 } 1540 export interface BreakStatement extends Statement { 1541 readonly kind: SyntaxKind.BreakStatement; 1542 readonly label?: Identifier; 1543 } 1544 export interface ContinueStatement extends Statement { 1545 readonly kind: SyntaxKind.ContinueStatement; 1546 readonly label?: Identifier; 1547 } 1548 export type BreakOrContinueStatement = BreakStatement | ContinueStatement; 1549 export interface ReturnStatement extends Statement { 1550 readonly kind: SyntaxKind.ReturnStatement; 1551 readonly expression?: Expression; 1552 } 1553 export interface WithStatement extends Statement { 1554 readonly kind: SyntaxKind.WithStatement; 1555 readonly expression: Expression; 1556 readonly statement: Statement; 1557 } 1558 export interface SwitchStatement extends Statement { 1559 readonly kind: SyntaxKind.SwitchStatement; 1560 readonly expression: Expression; 1561 readonly caseBlock: CaseBlock; 1562 possiblyExhaustive?: boolean; 1563 } 1564 export interface CaseBlock extends Node { 1565 readonly kind: SyntaxKind.CaseBlock; 1566 readonly parent: SwitchStatement; 1567 readonly clauses: NodeArray<CaseOrDefaultClause>; 1568 } 1569 export interface CaseClause extends Node, JSDocContainer { 1570 readonly kind: SyntaxKind.CaseClause; 1571 readonly parent: CaseBlock; 1572 readonly expression: Expression; 1573 readonly statements: NodeArray<Statement>; 1574 } 1575 export interface DefaultClause extends Node { 1576 readonly kind: SyntaxKind.DefaultClause; 1577 readonly parent: CaseBlock; 1578 readonly statements: NodeArray<Statement>; 1579 } 1580 export type CaseOrDefaultClause = CaseClause | DefaultClause; 1581 export interface LabeledStatement extends Statement { 1582 readonly kind: SyntaxKind.LabeledStatement; 1583 readonly label: Identifier; 1584 readonly statement: Statement; 1585 } 1586 export interface ThrowStatement extends Statement { 1587 readonly kind: SyntaxKind.ThrowStatement; 1588 readonly expression: Expression; 1589 } 1590 export interface TryStatement extends Statement { 1591 readonly kind: SyntaxKind.TryStatement; 1592 readonly tryBlock: Block; 1593 readonly catchClause?: CatchClause; 1594 readonly finallyBlock?: Block; 1595 } 1596 export interface CatchClause extends Node { 1597 readonly kind: SyntaxKind.CatchClause; 1598 readonly parent: TryStatement; 1599 readonly variableDeclaration?: VariableDeclaration; 1600 readonly block: Block; 1601 } 1602 export type ObjectTypeDeclaration = ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode; 1603 export type DeclarationWithTypeParameters = DeclarationWithTypeParameterChildren | JSDocTypedefTag | JSDocCallbackTag | JSDocSignature; 1604 export type DeclarationWithTypeParameterChildren = SignatureDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | JSDocTemplateTag; 1605 export interface ClassLikeDeclarationBase extends NamedDeclaration, JSDocContainer { 1606 readonly kind: SyntaxKind.ClassDeclaration | SyntaxKind.ClassExpression | SyntaxKind.StructDeclaration; 1607 readonly name?: Identifier; 1608 readonly typeParameters?: NodeArray<TypeParameterDeclaration>; 1609 readonly heritageClauses?: NodeArray<HeritageClause>; 1610 readonly members: NodeArray<ClassElement>; 1611 } 1612 export interface ClassDeclaration extends ClassLikeDeclarationBase, DeclarationStatement { 1613 readonly kind: SyntaxKind.ClassDeclaration; 1614 readonly modifiers?: NodeArray<ModifierLike>; 1615 /** May be undefined in `export default class { ... }`. */ 1616 readonly name?: Identifier; 1617 } 1618 export interface StructDeclaration extends ClassLikeDeclarationBase, DeclarationStatement { 1619 readonly kind: SyntaxKind.StructDeclaration; 1620 readonly modifiers?: NodeArray<ModifierLike>; 1621 /** May be undefined in `export default class { ... }`. */ 1622 readonly name?: Identifier; 1623 } 1624 export interface ClassExpression extends ClassLikeDeclarationBase, PrimaryExpression { 1625 readonly kind: SyntaxKind.ClassExpression; 1626 readonly modifiers?: NodeArray<ModifierLike>; 1627 } 1628 export type ClassLikeDeclaration = ClassDeclaration | ClassExpression | StructDeclaration; 1629 export interface ClassElement extends NamedDeclaration { 1630 _classElementBrand: any; 1631 readonly name?: PropertyName; 1632 } 1633 export interface TypeElement extends NamedDeclaration { 1634 _typeElementBrand: any; 1635 readonly name?: PropertyName; 1636 readonly questionToken?: QuestionToken | undefined; 1637 } 1638 export interface InterfaceDeclaration extends DeclarationStatement, JSDocContainer { 1639 readonly kind: SyntaxKind.InterfaceDeclaration; 1640 readonly modifiers?: NodeArray<Modifier>; 1641 readonly name: Identifier; 1642 readonly typeParameters?: NodeArray<TypeParameterDeclaration>; 1643 readonly heritageClauses?: NodeArray<HeritageClause>; 1644 readonly members: NodeArray<TypeElement>; 1645 } 1646 export interface HeritageClause extends Node { 1647 readonly kind: SyntaxKind.HeritageClause; 1648 readonly parent: InterfaceDeclaration | ClassLikeDeclaration; 1649 readonly token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword; 1650 readonly types: NodeArray<ExpressionWithTypeArguments>; 1651 } 1652 export interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer { 1653 readonly kind: SyntaxKind.TypeAliasDeclaration; 1654 readonly modifiers?: NodeArray<Modifier>; 1655 readonly name: Identifier; 1656 readonly typeParameters?: NodeArray<TypeParameterDeclaration>; 1657 readonly type: TypeNode; 1658 } 1659 export interface EnumMember extends NamedDeclaration, JSDocContainer { 1660 readonly kind: SyntaxKind.EnumMember; 1661 readonly parent: EnumDeclaration; 1662 readonly name: PropertyName; 1663 readonly initializer?: Expression; 1664 } 1665 export interface EnumDeclaration extends DeclarationStatement, JSDocContainer { 1666 readonly kind: SyntaxKind.EnumDeclaration; 1667 readonly modifiers?: NodeArray<Modifier>; 1668 readonly name: Identifier; 1669 readonly members: NodeArray<EnumMember>; 1670 } 1671 export type ModuleName = Identifier | StringLiteral; 1672 export type ModuleBody = NamespaceBody | JSDocNamespaceBody; 1673 export interface ModuleDeclaration extends DeclarationStatement, JSDocContainer { 1674 readonly kind: SyntaxKind.ModuleDeclaration; 1675 readonly parent: ModuleBody | SourceFile; 1676 readonly modifiers?: NodeArray<Modifier>; 1677 readonly name: ModuleName; 1678 readonly body?: ModuleBody | JSDocNamespaceDeclaration; 1679 } 1680 export type NamespaceBody = ModuleBlock | NamespaceDeclaration; 1681 export interface NamespaceDeclaration extends ModuleDeclaration { 1682 readonly name: Identifier; 1683 readonly body: NamespaceBody; 1684 } 1685 export type JSDocNamespaceBody = Identifier | JSDocNamespaceDeclaration; 1686 export interface JSDocNamespaceDeclaration extends ModuleDeclaration { 1687 readonly name: Identifier; 1688 readonly body?: JSDocNamespaceBody; 1689 } 1690 export interface ModuleBlock extends Node, Statement { 1691 readonly kind: SyntaxKind.ModuleBlock; 1692 readonly parent: ModuleDeclaration; 1693 readonly statements: NodeArray<Statement>; 1694 } 1695 export type ModuleReference = EntityName | ExternalModuleReference; 1696 /** 1697 * One of: 1698 * - import x = require("mod"); 1699 * - import x = M.x; 1700 */ 1701 export interface ImportEqualsDeclaration extends DeclarationStatement, JSDocContainer { 1702 readonly kind: SyntaxKind.ImportEqualsDeclaration; 1703 readonly parent: SourceFile | ModuleBlock; 1704 readonly modifiers?: NodeArray<Modifier>; 1705 readonly name: Identifier; 1706 readonly isTypeOnly: boolean; 1707 readonly moduleReference: ModuleReference; 1708 } 1709 export interface ExternalModuleReference extends Node { 1710 readonly kind: SyntaxKind.ExternalModuleReference; 1711 readonly parent: ImportEqualsDeclaration; 1712 readonly expression: Expression; 1713 } 1714 export interface ImportDeclaration extends Statement { 1715 readonly kind: SyntaxKind.ImportDeclaration; 1716 readonly parent: SourceFile | ModuleBlock; 1717 readonly modifiers?: NodeArray<Modifier>; 1718 readonly importClause?: ImportClause; 1719 /** If this is not a StringLiteral it will be a grammar error. */ 1720 readonly moduleSpecifier: Expression; 1721 readonly assertClause?: AssertClause; 1722 } 1723 export type NamedImportBindings = NamespaceImport | NamedImports; 1724 export type NamedExportBindings = NamespaceExport | NamedExports; 1725 export interface ImportClause extends NamedDeclaration { 1726 readonly kind: SyntaxKind.ImportClause; 1727 readonly parent: ImportDeclaration; 1728 readonly isTypeOnly: boolean; 1729 readonly name?: Identifier; 1730 readonly namedBindings?: NamedImportBindings; 1731 } 1732 export type AssertionKey = Identifier | StringLiteral; 1733 export interface AssertEntry extends Node { 1734 readonly kind: SyntaxKind.AssertEntry; 1735 readonly parent: AssertClause; 1736 readonly name: AssertionKey; 1737 readonly value: Expression; 1738 } 1739 export interface AssertClause extends Node { 1740 readonly kind: SyntaxKind.AssertClause; 1741 readonly parent: ImportDeclaration | ExportDeclaration; 1742 readonly elements: NodeArray<AssertEntry>; 1743 readonly multiLine?: boolean; 1744 } 1745 export interface NamespaceImport extends NamedDeclaration { 1746 readonly kind: SyntaxKind.NamespaceImport; 1747 readonly parent: ImportClause; 1748 readonly name: Identifier; 1749 } 1750 export interface NamespaceExport extends NamedDeclaration { 1751 readonly kind: SyntaxKind.NamespaceExport; 1752 readonly parent: ExportDeclaration; 1753 readonly name: Identifier; 1754 } 1755 export interface NamespaceExportDeclaration extends DeclarationStatement, JSDocContainer { 1756 readonly kind: SyntaxKind.NamespaceExportDeclaration; 1757 readonly name: Identifier; 1758 } 1759 export interface ExportDeclaration extends DeclarationStatement, JSDocContainer { 1760 readonly kind: SyntaxKind.ExportDeclaration; 1761 readonly parent: SourceFile | ModuleBlock; 1762 readonly modifiers?: NodeArray<Modifier>; 1763 readonly isTypeOnly: boolean; 1764 /** Will not be assigned in the case of `export * from "foo";` */ 1765 readonly exportClause?: NamedExportBindings; 1766 /** If this is not a StringLiteral it will be a grammar error. */ 1767 readonly moduleSpecifier?: Expression; 1768 readonly assertClause?: AssertClause; 1769 } 1770 export interface NamedImports extends Node { 1771 readonly kind: SyntaxKind.NamedImports; 1772 readonly parent: ImportClause; 1773 readonly elements: NodeArray<ImportSpecifier>; 1774 } 1775 export interface NamedExports extends Node { 1776 readonly kind: SyntaxKind.NamedExports; 1777 readonly parent: ExportDeclaration; 1778 readonly elements: NodeArray<ExportSpecifier>; 1779 } 1780 export type NamedImportsOrExports = NamedImports | NamedExports; 1781 export interface ImportSpecifier extends NamedDeclaration { 1782 readonly kind: SyntaxKind.ImportSpecifier; 1783 readonly parent: NamedImports; 1784 readonly propertyName?: Identifier; 1785 readonly name: Identifier; 1786 readonly isTypeOnly: boolean; 1787 } 1788 export interface ExportSpecifier extends NamedDeclaration, JSDocContainer { 1789 readonly kind: SyntaxKind.ExportSpecifier; 1790 readonly parent: NamedExports; 1791 readonly isTypeOnly: boolean; 1792 readonly propertyName?: Identifier; 1793 readonly name: Identifier; 1794 } 1795 export type ImportOrExportSpecifier = ImportSpecifier | ExportSpecifier; 1796 export type TypeOnlyCompatibleAliasDeclaration = ImportClause | ImportEqualsDeclaration | NamespaceImport | ImportOrExportSpecifier; 1797 export type TypeOnlyAliasDeclaration = ImportClause & { 1798 readonly isTypeOnly: true; 1799 readonly name: Identifier; 1800 } | ImportEqualsDeclaration & { 1801 readonly isTypeOnly: true; 1802 } | NamespaceImport & { 1803 readonly parent: ImportClause & { 1804 readonly isTypeOnly: true; 1805 }; 1806 } | ImportSpecifier & ({ 1807 readonly isTypeOnly: true; 1808 } | { 1809 readonly parent: NamedImports & { 1810 readonly parent: ImportClause & { 1811 readonly isTypeOnly: true; 1812 }; 1813 }; 1814 }) | ExportSpecifier & ({ 1815 readonly isTypeOnly: true; 1816 } | { 1817 readonly parent: NamedExports & { 1818 readonly parent: ExportDeclaration & { 1819 readonly isTypeOnly: true; 1820 }; 1821 }; 1822 }); 1823 /** 1824 * This is either an `export =` or an `export default` declaration. 1825 * Unless `isExportEquals` is set, this node was parsed as an `export default`. 1826 */ 1827 export interface ExportAssignment extends DeclarationStatement, JSDocContainer { 1828 readonly kind: SyntaxKind.ExportAssignment; 1829 readonly parent: SourceFile; 1830 readonly modifiers?: NodeArray<Modifier>; 1831 readonly isExportEquals?: boolean; 1832 readonly expression: Expression; 1833 } 1834 export interface FileReference extends TextRange { 1835 fileName: string; 1836 resolutionMode?: SourceFile["impliedNodeFormat"]; 1837 } 1838 export interface CheckJsDirective extends TextRange { 1839 enabled: boolean; 1840 } 1841 export type CommentKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia; 1842 export interface CommentRange extends TextRange { 1843 hasTrailingNewLine?: boolean; 1844 kind: CommentKind; 1845 } 1846 export interface SynthesizedComment extends CommentRange { 1847 text: string; 1848 pos: -1; 1849 end: -1; 1850 hasLeadingNewline?: boolean; 1851 } 1852 export interface JSDocTypeExpression extends TypeNode { 1853 readonly kind: SyntaxKind.JSDocTypeExpression; 1854 readonly type: TypeNode; 1855 } 1856 export interface JSDocNameReference extends Node { 1857 readonly kind: SyntaxKind.JSDocNameReference; 1858 readonly name: EntityName | JSDocMemberName; 1859 } 1860 /** Class#method reference in JSDoc */ 1861 export interface JSDocMemberName extends Node { 1862 readonly kind: SyntaxKind.JSDocMemberName; 1863 readonly left: EntityName | JSDocMemberName; 1864 readonly right: Identifier; 1865 } 1866 export interface JSDocType extends TypeNode { 1867 _jsDocTypeBrand: any; 1868 } 1869 export interface JSDocAllType extends JSDocType { 1870 readonly kind: SyntaxKind.JSDocAllType; 1871 } 1872 export interface JSDocUnknownType extends JSDocType { 1873 readonly kind: SyntaxKind.JSDocUnknownType; 1874 } 1875 export interface JSDocNonNullableType extends JSDocType { 1876 readonly kind: SyntaxKind.JSDocNonNullableType; 1877 readonly type: TypeNode; 1878 readonly postfix: boolean; 1879 } 1880 export interface JSDocNullableType extends JSDocType { 1881 readonly kind: SyntaxKind.JSDocNullableType; 1882 readonly type: TypeNode; 1883 readonly postfix: boolean; 1884 } 1885 export interface JSDocOptionalType extends JSDocType { 1886 readonly kind: SyntaxKind.JSDocOptionalType; 1887 readonly type: TypeNode; 1888 } 1889 export interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase { 1890 readonly kind: SyntaxKind.JSDocFunctionType; 1891 } 1892 export interface JSDocVariadicType extends JSDocType { 1893 readonly kind: SyntaxKind.JSDocVariadicType; 1894 readonly type: TypeNode; 1895 } 1896 export interface JSDocNamepathType extends JSDocType { 1897 readonly kind: SyntaxKind.JSDocNamepathType; 1898 readonly type: TypeNode; 1899 } 1900 export type JSDocTypeReferencingNode = JSDocVariadicType | JSDocOptionalType | JSDocNullableType | JSDocNonNullableType; 1901 export interface JSDoc extends Node { 1902 readonly kind: SyntaxKind.JSDoc; 1903 readonly parent: HasJSDoc; 1904 readonly tags?: NodeArray<JSDocTag>; 1905 readonly comment?: string | NodeArray<JSDocComment>; 1906 } 1907 export interface JSDocTag extends Node { 1908 readonly parent: JSDoc | JSDocTypeLiteral; 1909 readonly tagName: Identifier; 1910 readonly comment?: string | NodeArray<JSDocComment>; 1911 } 1912 export interface JSDocLink extends Node { 1913 readonly kind: SyntaxKind.JSDocLink; 1914 readonly name?: EntityName | JSDocMemberName; 1915 text: string; 1916 } 1917 export interface JSDocLinkCode extends Node { 1918 readonly kind: SyntaxKind.JSDocLinkCode; 1919 readonly name?: EntityName | JSDocMemberName; 1920 text: string; 1921 } 1922 export interface JSDocLinkPlain extends Node { 1923 readonly kind: SyntaxKind.JSDocLinkPlain; 1924 readonly name?: EntityName | JSDocMemberName; 1925 text: string; 1926 } 1927 export type JSDocComment = JSDocText | JSDocLink | JSDocLinkCode | JSDocLinkPlain; 1928 export interface JSDocText extends Node { 1929 readonly kind: SyntaxKind.JSDocText; 1930 text: string; 1931 } 1932 export interface JSDocUnknownTag extends JSDocTag { 1933 readonly kind: SyntaxKind.JSDocTag; 1934 } 1935 /** 1936 * Note that `@extends` is a synonym of `@augments`. 1937 * Both tags are represented by this interface. 1938 */ 1939 export interface JSDocAugmentsTag extends JSDocTag { 1940 readonly kind: SyntaxKind.JSDocAugmentsTag; 1941 readonly class: ExpressionWithTypeArguments & { 1942 readonly expression: Identifier | PropertyAccessEntityNameExpression; 1943 }; 1944 } 1945 export interface JSDocImplementsTag extends JSDocTag { 1946 readonly kind: SyntaxKind.JSDocImplementsTag; 1947 readonly class: ExpressionWithTypeArguments & { 1948 readonly expression: Identifier | PropertyAccessEntityNameExpression; 1949 }; 1950 } 1951 export interface JSDocAuthorTag extends JSDocTag { 1952 readonly kind: SyntaxKind.JSDocAuthorTag; 1953 } 1954 export interface JSDocDeprecatedTag extends JSDocTag { 1955 kind: SyntaxKind.JSDocDeprecatedTag; 1956 } 1957 export interface JSDocClassTag extends JSDocTag { 1958 readonly kind: SyntaxKind.JSDocClassTag; 1959 } 1960 export interface JSDocPublicTag extends JSDocTag { 1961 readonly kind: SyntaxKind.JSDocPublicTag; 1962 } 1963 export interface JSDocPrivateTag extends JSDocTag { 1964 readonly kind: SyntaxKind.JSDocPrivateTag; 1965 } 1966 export interface JSDocProtectedTag extends JSDocTag { 1967 readonly kind: SyntaxKind.JSDocProtectedTag; 1968 } 1969 export interface JSDocReadonlyTag extends JSDocTag { 1970 readonly kind: SyntaxKind.JSDocReadonlyTag; 1971 } 1972 export interface JSDocOverrideTag extends JSDocTag { 1973 readonly kind: SyntaxKind.JSDocOverrideTag; 1974 } 1975 export interface JSDocEnumTag extends JSDocTag, Declaration { 1976 readonly kind: SyntaxKind.JSDocEnumTag; 1977 readonly parent: JSDoc; 1978 readonly typeExpression: JSDocTypeExpression; 1979 } 1980 export interface JSDocThisTag extends JSDocTag { 1981 readonly kind: SyntaxKind.JSDocThisTag; 1982 readonly typeExpression: JSDocTypeExpression; 1983 } 1984 export interface JSDocTemplateTag extends JSDocTag { 1985 readonly kind: SyntaxKind.JSDocTemplateTag; 1986 readonly constraint: JSDocTypeExpression | undefined; 1987 readonly typeParameters: NodeArray<TypeParameterDeclaration>; 1988 } 1989 export interface JSDocSeeTag extends JSDocTag { 1990 readonly kind: SyntaxKind.JSDocSeeTag; 1991 readonly name?: JSDocNameReference; 1992 } 1993 export interface JSDocReturnTag extends JSDocTag { 1994 readonly kind: SyntaxKind.JSDocReturnTag; 1995 readonly typeExpression?: JSDocTypeExpression; 1996 } 1997 export interface JSDocTypeTag extends JSDocTag { 1998 readonly kind: SyntaxKind.JSDocTypeTag; 1999 readonly typeExpression: JSDocTypeExpression; 2000 } 2001 export interface JSDocTypedefTag extends JSDocTag, NamedDeclaration { 2002 readonly kind: SyntaxKind.JSDocTypedefTag; 2003 readonly parent: JSDoc; 2004 readonly fullName?: JSDocNamespaceDeclaration | Identifier; 2005 readonly name?: Identifier; 2006 readonly typeExpression?: JSDocTypeExpression | JSDocTypeLiteral; 2007 } 2008 export interface JSDocCallbackTag extends JSDocTag, NamedDeclaration { 2009 readonly kind: SyntaxKind.JSDocCallbackTag; 2010 readonly parent: JSDoc; 2011 readonly fullName?: JSDocNamespaceDeclaration | Identifier; 2012 readonly name?: Identifier; 2013 readonly typeExpression: JSDocSignature; 2014 } 2015 export interface JSDocSignature extends JSDocType, Declaration { 2016 readonly kind: SyntaxKind.JSDocSignature; 2017 readonly typeParameters?: readonly JSDocTemplateTag[]; 2018 readonly parameters: readonly JSDocParameterTag[]; 2019 readonly type: JSDocReturnTag | undefined; 2020 } 2021 export interface JSDocPropertyLikeTag extends JSDocTag, Declaration { 2022 readonly parent: JSDoc; 2023 readonly name: EntityName; 2024 readonly typeExpression?: JSDocTypeExpression; 2025 /** Whether the property name came before the type -- non-standard for JSDoc, but Typescript-like */ 2026 readonly isNameFirst: boolean; 2027 readonly isBracketed: boolean; 2028 } 2029 export interface JSDocPropertyTag extends JSDocPropertyLikeTag { 2030 readonly kind: SyntaxKind.JSDocPropertyTag; 2031 } 2032 export interface JSDocParameterTag extends JSDocPropertyLikeTag { 2033 readonly kind: SyntaxKind.JSDocParameterTag; 2034 } 2035 export interface JSDocTypeLiteral extends JSDocType { 2036 readonly kind: SyntaxKind.JSDocTypeLiteral; 2037 readonly jsDocPropertyTags?: readonly JSDocPropertyLikeTag[]; 2038 /** If true, then this type literal represents an *array* of its type. */ 2039 readonly isArrayType: boolean; 2040 } 2041 export enum FlowFlags { 2042 Unreachable = 1, 2043 Start = 2, 2044 BranchLabel = 4, 2045 LoopLabel = 8, 2046 Assignment = 16, 2047 TrueCondition = 32, 2048 FalseCondition = 64, 2049 SwitchClause = 128, 2050 ArrayMutation = 256, 2051 Call = 512, 2052 ReduceLabel = 1024, 2053 Referenced = 2048, 2054 Shared = 4096, 2055 Label = 12, 2056 Condition = 96 2057 } 2058 export type FlowNode = FlowStart | FlowLabel | FlowAssignment | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowCall | FlowReduceLabel; 2059 export interface FlowNodeBase { 2060 flags: FlowFlags; 2061 id?: number; 2062 } 2063 export interface FlowStart extends FlowNodeBase { 2064 node?: FunctionExpression | ArrowFunction | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; 2065 } 2066 export interface FlowLabel extends FlowNodeBase { 2067 antecedents: FlowNode[] | undefined; 2068 } 2069 export interface FlowAssignment extends FlowNodeBase { 2070 node: Expression | VariableDeclaration | BindingElement; 2071 antecedent: FlowNode; 2072 } 2073 export interface FlowCall extends FlowNodeBase { 2074 node: CallExpression; 2075 antecedent: FlowNode; 2076 } 2077 export interface FlowCondition extends FlowNodeBase { 2078 node: Expression; 2079 antecedent: FlowNode; 2080 } 2081 export interface FlowSwitchClause extends FlowNodeBase { 2082 switchStatement: SwitchStatement; 2083 clauseStart: number; 2084 clauseEnd: number; 2085 antecedent: FlowNode; 2086 } 2087 export interface FlowArrayMutation extends FlowNodeBase { 2088 node: CallExpression | BinaryExpression; 2089 antecedent: FlowNode; 2090 } 2091 export interface FlowReduceLabel extends FlowNodeBase { 2092 target: FlowLabel; 2093 antecedents: FlowNode[]; 2094 antecedent: FlowNode; 2095 } 2096 export type FlowType = Type | IncompleteType; 2097 export interface IncompleteType { 2098 flags: TypeFlags; 2099 type: Type; 2100 } 2101 export interface AmdDependency { 2102 path: string; 2103 name?: string; 2104 } 2105 /** 2106 * Subset of properties from SourceFile that are used in multiple utility functions 2107 */ 2108 export interface SourceFileLike { 2109 readonly text: string; 2110 readonly fileName?: string; 2111 } 2112 export interface SourceFile extends Declaration { 2113 readonly kind: SyntaxKind.SourceFile; 2114 readonly statements: NodeArray<Statement>; 2115 readonly endOfFileToken: Token<SyntaxKind.EndOfFileToken>; 2116 fileName: string; 2117 text: string; 2118 amdDependencies: readonly AmdDependency[]; 2119 moduleName?: string; 2120 referencedFiles: readonly FileReference[]; 2121 typeReferenceDirectives: readonly FileReference[]; 2122 libReferenceDirectives: readonly FileReference[]; 2123 languageVariant: LanguageVariant; 2124 isDeclarationFile: boolean; 2125 /** 2126 * lib.d.ts should have a reference comment like 2127 * 2128 * /// <reference no-default-lib="true"/> 2129 * 2130 * If any other file has this comment, it signals not to include lib.d.ts 2131 * because this containing file is intended to act as a default library. 2132 */ 2133 hasNoDefaultLib: boolean; 2134 languageVersion: ScriptTarget; 2135 /** 2136 * When `module` is `Node16` or `NodeNext`, this field controls whether the 2137 * source file in question is an ESNext-output-format file, or a CommonJS-output-format 2138 * module. This is derived by the module resolver as it looks up the file, since 2139 * it is derived from either the file extension of the module, or the containing 2140 * `package.json` context, and affects both checking and emit. 2141 * 2142 * It is _public_ so that (pre)transformers can set this field, 2143 * since it switches the builtin `node` module transform. Generally speaking, if unset, 2144 * the field is treated as though it is `ModuleKind.CommonJS`. 2145 * 2146 * Note that this field is only set by the module resolution process when 2147 * `moduleResolution` is `Node16` or `NodeNext`, which is implied by the `module` setting 2148 * of `Node16` or `NodeNext`, respectively, but may be overriden (eg, by a `moduleResolution` 2149 * of `node`). If so, this field will be unset and source files will be considered to be 2150 * CommonJS-output-format by the node module transformer and type checker, regardless of extension or context. 2151 */ 2152 impliedNodeFormat?: ModuleKind.ESNext | ModuleKind.CommonJS; 2153 } 2154 export interface Bundle extends Node { 2155 readonly kind: SyntaxKind.Bundle; 2156 readonly prepends: readonly (InputFiles | UnparsedSource)[]; 2157 readonly sourceFiles: readonly SourceFile[]; 2158 } 2159 export interface InputFiles extends Node { 2160 readonly kind: SyntaxKind.InputFiles; 2161 javascriptPath?: string; 2162 javascriptText: string; 2163 javascriptMapPath?: string; 2164 javascriptMapText?: string; 2165 declarationPath?: string; 2166 declarationText: string; 2167 declarationMapPath?: string; 2168 declarationMapText?: string; 2169 } 2170 export interface UnparsedSource extends Node { 2171 readonly kind: SyntaxKind.UnparsedSource; 2172 fileName: string; 2173 text: string; 2174 readonly prologues: readonly UnparsedPrologue[]; 2175 helpers: readonly UnscopedEmitHelper[] | undefined; 2176 referencedFiles: readonly FileReference[]; 2177 typeReferenceDirectives: readonly FileReference[] | undefined; 2178 libReferenceDirectives: readonly FileReference[]; 2179 hasNoDefaultLib?: boolean; 2180 sourceMapPath?: string; 2181 sourceMapText?: string; 2182 readonly syntheticReferences?: readonly UnparsedSyntheticReference[]; 2183 readonly texts: readonly UnparsedSourceText[]; 2184 } 2185 export type UnparsedSourceText = UnparsedPrepend | UnparsedTextLike; 2186 export type UnparsedNode = UnparsedPrologue | UnparsedSourceText | UnparsedSyntheticReference; 2187 export interface UnparsedSection extends Node { 2188 readonly kind: SyntaxKind; 2189 readonly parent: UnparsedSource; 2190 readonly data?: string; 2191 } 2192 export interface UnparsedPrologue extends UnparsedSection { 2193 readonly kind: SyntaxKind.UnparsedPrologue; 2194 readonly parent: UnparsedSource; 2195 readonly data: string; 2196 } 2197 export interface UnparsedPrepend extends UnparsedSection { 2198 readonly kind: SyntaxKind.UnparsedPrepend; 2199 readonly parent: UnparsedSource; 2200 readonly data: string; 2201 readonly texts: readonly UnparsedTextLike[]; 2202 } 2203 export interface UnparsedTextLike extends UnparsedSection { 2204 readonly kind: SyntaxKind.UnparsedText | SyntaxKind.UnparsedInternalText; 2205 readonly parent: UnparsedSource; 2206 } 2207 export interface UnparsedSyntheticReference extends UnparsedSection { 2208 readonly kind: SyntaxKind.UnparsedSyntheticReference; 2209 readonly parent: UnparsedSource; 2210 } 2211 export interface JsonSourceFile extends SourceFile { 2212 readonly statements: NodeArray<JsonObjectExpressionStatement>; 2213 } 2214 export interface TsConfigSourceFile extends JsonSourceFile { 2215 extendedSourceFiles?: string[]; 2216 } 2217 export interface JsonMinusNumericLiteral extends PrefixUnaryExpression { 2218 readonly kind: SyntaxKind.PrefixUnaryExpression; 2219 readonly operator: SyntaxKind.MinusToken; 2220 readonly operand: NumericLiteral; 2221 } 2222 export type JsonObjectExpression = ObjectLiteralExpression | ArrayLiteralExpression | JsonMinusNumericLiteral | NumericLiteral | StringLiteral | BooleanLiteral | NullLiteral; 2223 export interface JsonObjectExpressionStatement extends ExpressionStatement { 2224 readonly expression: JsonObjectExpression; 2225 } 2226 export interface ScriptReferenceHost { 2227 getCompilerOptions(): CompilerOptions; 2228 getSourceFile(fileName: string): SourceFile | undefined; 2229 getSourceFileByPath(path: Path): SourceFile | undefined; 2230 getCurrentDirectory(): string; 2231 } 2232 export interface ParseConfigHost { 2233 useCaseSensitiveFileNames: boolean; 2234 readDirectory(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): readonly string[]; 2235 /** 2236 * Gets a value indicating whether the specified path exists and is a file. 2237 * @param path The path to test. 2238 */ 2239 fileExists(path: string): boolean; 2240 readFile(path: string): string | undefined; 2241 trace?(s: string): void; 2242 } 2243 /** 2244 * Branded string for keeping track of when we've turned an ambiguous path 2245 * specified like "./blah" to an absolute path to an actual 2246 * tsconfig file, e.g. "/root/blah/tsconfig.json" 2247 */ 2248 export type ResolvedConfigFileName = string & { 2249 _isResolvedConfigFileName: never; 2250 }; 2251 export interface WriteFileCallbackData { 2252 } 2253 export type WriteFileCallback = (fileName: string, text: string, writeByteOrderMark: boolean, onError?: (message: string) => void, sourceFiles?: readonly SourceFile[], data?: WriteFileCallbackData) => void; 2254 export class OperationCanceledException { 2255 } 2256 export interface CancellationToken { 2257 isCancellationRequested(): boolean; 2258 /** @throws OperationCanceledException if isCancellationRequested is true */ 2259 throwIfCancellationRequested(): void; 2260 } 2261 export interface SymbolDisplayPart { 2262 text: string; 2263 kind: string; 2264 } 2265 export interface JsDocTagInfo { 2266 name: string; 2267 text?: string | SymbolDisplayPart[]; 2268 } 2269 export interface Program extends ScriptReferenceHost { 2270 getCurrentDirectory(): string; 2271 /** 2272 * Get a list of root file names that were passed to a 'createProgram' 2273 */ 2274 getRootFileNames(): readonly string[]; 2275 /** 2276 * Get a list of files in the program 2277 */ 2278 getSourceFiles(): readonly SourceFile[]; 2279 /** 2280 * Emits the JavaScript and declaration files. If targetSourceFile is not specified, then 2281 * the JavaScript and declaration files will be produced for all the files in this program. 2282 * If targetSourceFile is specified, then only the JavaScript and declaration for that 2283 * specific file will be generated. 2284 * 2285 * If writeFile is not specified then the writeFile callback from the compiler host will be 2286 * used for writing the JavaScript and declaration files. Otherwise, the writeFile parameter 2287 * will be invoked when writing the JavaScript and declaration files. 2288 */ 2289 emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult; 2290 getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 2291 getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 2292 getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[]; 2293 /** The first time this is called, it will return global diagnostics (no location). */ 2294 getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 2295 getSemanticDiagnosticsForLinter(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 2296 getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[]; 2297 getConfigFileParsingDiagnostics(): readonly Diagnostic[]; 2298 getEtsLibSFromProgram(): string[]; 2299 /** 2300 * Gets a type checker that can be used to semantically analyze source files in the program. 2301 */ 2302 getTypeChecker(): TypeChecker; 2303 /** 2304 * Gets a type checker that can be used to semantically analyze source files in the program for arkts linter. 2305 */ 2306 getLinterTypeChecker(): TypeChecker; 2307 getNodeCount(): number; 2308 getIdentifierCount(): number; 2309 getSymbolCount(): number; 2310 getTypeCount(): number; 2311 getInstantiationCount(): number; 2312 getRelationCacheSizes(): { 2313 assignable: number; 2314 identity: number; 2315 subtype: number; 2316 strictSubtype: number; 2317 }; 2318 isSourceFileFromExternalLibrary(file: SourceFile): boolean; 2319 isSourceFileDefaultLibrary(file: SourceFile): boolean; 2320 getSourceFileFromReference(referencingFile: SourceFile | UnparsedSource, ref: FileReference): SourceFile | undefined; 2321 getProjectReferences(): readonly ProjectReference[] | undefined; 2322 getResolvedProjectReferences(): readonly (ResolvedProjectReference | undefined)[] | undefined; 2323 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 2324 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 2325 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 2326 /** 2327 * Release typeChecker & linterTypeChecker 2328 */ 2329 releaseTypeChecker(): void; 2330 } 2331 export type RedirectTargetsMap = ReadonlyESMap<Path, readonly string[]>; 2332 export interface ResolvedProjectReference { 2333 commandLine: ParsedCommandLine; 2334 sourceFile: SourceFile; 2335 references?: readonly (ResolvedProjectReference | undefined)[]; 2336 } 2337 export type CustomTransformerFactory = (context: TransformationContext) => CustomTransformer; 2338 export interface CustomTransformer { 2339 transformSourceFile(node: SourceFile): SourceFile; 2340 transformBundle(node: Bundle): Bundle; 2341 } 2342 export interface CustomTransformers { 2343 /** Custom transformers to evaluate before built-in .js transformations. */ 2344 before?: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]; 2345 /** Custom transformers to evaluate after built-in .js transformations. */ 2346 after?: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]; 2347 /** Custom transformers to evaluate after built-in .d.ts transformations. */ 2348 afterDeclarations?: (TransformerFactory<Bundle | SourceFile> | CustomTransformerFactory)[]; 2349 } 2350 export interface SourceMapSpan { 2351 /** Line number in the .js file. */ 2352 emittedLine: number; 2353 /** Column number in the .js file. */ 2354 emittedColumn: number; 2355 /** Line number in the .ts file. */ 2356 sourceLine: number; 2357 /** Column number in the .ts file. */ 2358 sourceColumn: number; 2359 /** Optional name (index into names array) associated with this span. */ 2360 nameIndex?: number; 2361 /** .ts file (index into sources array) associated with this span */ 2362 sourceIndex: number; 2363 } 2364 /** Return code used by getEmitOutput function to indicate status of the function */ 2365 export enum ExitStatus { 2366 Success = 0, 2367 DiagnosticsPresent_OutputsSkipped = 1, 2368 DiagnosticsPresent_OutputsGenerated = 2, 2369 InvalidProject_OutputsSkipped = 3, 2370 ProjectReferenceCycle_OutputsSkipped = 4, 2371 /** @deprecated Use ProjectReferenceCycle_OutputsSkipped instead. */ 2372 ProjectReferenceCycle_OutputsSkupped = 4 2373 } 2374 export interface EmitResult { 2375 emitSkipped: boolean; 2376 /** Contains declaration emit diagnostics */ 2377 diagnostics: readonly Diagnostic[]; 2378 emittedFiles?: string[]; 2379 } 2380 export interface TypeChecker { 2381 getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; 2382 getDeclaredTypeOfSymbol(symbol: Symbol): Type; 2383 getPropertiesOfType(type: Type): Symbol[]; 2384 getPropertyOfType(type: Type, propertyName: string): Symbol | undefined; 2385 getPrivateIdentifierPropertyOfType(leftType: Type, name: string, location: Node): Symbol | undefined; 2386 getIndexInfoOfType(type: Type, kind: IndexKind): IndexInfo | undefined; 2387 getIndexInfosOfType(type: Type): readonly IndexInfo[]; 2388 getIndexInfosOfIndexSymbol: (indexSymbol: Symbol) => IndexInfo[]; 2389 getSignaturesOfType(type: Type, kind: SignatureKind): readonly Signature[]; 2390 getIndexTypeOfType(type: Type, kind: IndexKind): Type | undefined; 2391 getBaseTypes(type: InterfaceType): BaseType[]; 2392 getBaseTypeOfLiteralType(type: Type): Type; 2393 getWidenedType(type: Type): Type; 2394 getReturnTypeOfSignature(signature: Signature): Type; 2395 getNullableType(type: Type, flags: TypeFlags): Type; 2396 getNonNullableType(type: Type): Type; 2397 getTypeArguments(type: TypeReference): readonly Type[]; 2398 /** Note that the resulting nodes cannot be checked. */ 2399 typeToTypeNode(type: Type, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): TypeNode | undefined; 2400 /** Note that the resulting nodes cannot be checked. */ 2401 signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): SignatureDeclaration & { 2402 typeArguments?: NodeArray<TypeNode>; 2403 } | undefined; 2404 /** Note that the resulting nodes cannot be checked. */ 2405 indexInfoToIndexSignatureDeclaration(indexInfo: IndexInfo, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): IndexSignatureDeclaration | undefined; 2406 /** Note that the resulting nodes cannot be checked. */ 2407 symbolToEntityName(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): EntityName | undefined; 2408 /** Note that the resulting nodes cannot be checked. */ 2409 symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Expression | undefined; 2410 /** Note that the resulting nodes cannot be checked. */ 2411 symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): NodeArray<TypeParameterDeclaration> | undefined; 2412 /** Note that the resulting nodes cannot be checked. */ 2413 symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): ParameterDeclaration | undefined; 2414 /** Note that the resulting nodes cannot be checked. */ 2415 typeParameterToDeclaration(parameter: TypeParameter, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): TypeParameterDeclaration | undefined; 2416 getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; 2417 getSymbolAtLocation(node: Node): Symbol | undefined; 2418 getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[]; 2419 /** 2420 * The function returns the value (local variable) symbol of an identifier in the short-hand property assignment. 2421 * This is necessary as an identifier in short-hand property assignment can contains two meaning: property name and property value. 2422 */ 2423 getShorthandAssignmentValueSymbol(location: Node | undefined): Symbol | undefined; 2424 getExportSpecifierLocalTargetSymbol(location: ExportSpecifier | Identifier): Symbol | undefined; 2425 /** 2426 * If a symbol is a local symbol with an associated exported symbol, returns the exported symbol. 2427 * Otherwise returns its input. 2428 * For example, at `export type T = number;`: 2429 * - `getSymbolAtLocation` at the location `T` will return the exported symbol for `T`. 2430 * - But the result of `getSymbolsInScope` will contain the *local* symbol for `T`, not the exported symbol. 2431 * - Calling `getExportSymbolOfSymbol` on that local symbol will return the exported symbol. 2432 */ 2433 getExportSymbolOfSymbol(symbol: Symbol): Symbol; 2434 getPropertySymbolOfDestructuringAssignment(location: Identifier): Symbol | undefined; 2435 getTypeOfAssignmentPattern(pattern: AssignmentPattern): Type; 2436 getTypeAtLocation(node: Node): Type; 2437 tryGetTypeAtLocationWithoutCheck(node: Node): Type; 2438 getTypeFromTypeNode(node: TypeNode): Type; 2439 signatureToString(signature: Signature, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): string; 2440 typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; 2441 symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): string; 2442 typePredicateToString(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; 2443 getFullyQualifiedName(symbol: Symbol): string; 2444 getAugmentedPropertiesOfType(type: Type): Symbol[]; 2445 getRootSymbols(symbol: Symbol): readonly Symbol[]; 2446 getSymbolOfExpando(node: Node, allowDeclaration: boolean): Symbol | undefined; 2447 getContextualType(node: Expression): Type | undefined; 2448 /** 2449 * returns unknownSignature in the case of an error. 2450 * returns undefined if the node is not valid. 2451 * @param argumentCount Apparent number of arguments, passed in case of a possibly incomplete call. This should come from an ArgumentListInfo. See `signatureHelp.ts`. 2452 */ 2453 getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; 2454 tryGetResolvedSignatureWithoutCheck(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; 2455 getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature | undefined; 2456 isImplementationOfOverload(node: SignatureDeclaration): boolean | undefined; 2457 isUndefinedSymbol(symbol: Symbol): boolean; 2458 isArgumentsSymbol(symbol: Symbol): boolean; 2459 isUnknownSymbol(symbol: Symbol): boolean; 2460 getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): string | number | undefined; 2461 isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName | ImportTypeNode, propertyName: string): boolean; 2462 /** Follow all aliases to get the original symbol. */ 2463 getAliasedSymbol(symbol: Symbol): Symbol; 2464 /** Follow a *single* alias to get the immediately aliased symbol. */ 2465 getImmediateAliasedSymbol(symbol: Symbol): Symbol | undefined; 2466 getExportsOfModule(moduleSymbol: Symbol): Symbol[]; 2467 getJsxIntrinsicTagNamesAt(location: Node): Symbol[]; 2468 isOptionalParameter(node: ParameterDeclaration): boolean; 2469 getAmbientModules(): Symbol[]; 2470 tryGetMemberInModuleExports(memberName: string, moduleSymbol: Symbol): Symbol | undefined; 2471 getApparentType(type: Type): Type; 2472 getBaseConstraintOfType(type: Type): Type | undefined; 2473 getDefaultFromTypeParameter(type: Type): Type | undefined; 2474 getTypePredicateOfSignature(signature: Signature): TypePredicate | undefined; 2475 /** 2476 * Depending on the operation performed, it may be appropriate to throw away the checker 2477 * if the cancellation token is triggered. Typically, if it is used for error checking 2478 * and the operation is cancelled, then it should be discarded, otherwise it is safe to keep. 2479 */ 2480 runWithCancellationToken<T>(token: CancellationToken, cb: (checker: TypeChecker) => T): T; 2481 getConstEnumRelate?(): ESMap<string, ESMap<string, string>>; 2482 clearConstEnumRelate?(): void; 2483 deleteConstEnumRelate?(path: string): void; 2484 } 2485 export enum NodeBuilderFlags { 2486 None = 0, 2487 NoTruncation = 1, 2488 WriteArrayAsGenericType = 2, 2489 GenerateNamesForShadowedTypeParams = 4, 2490 UseStructuralFallback = 8, 2491 ForbidIndexedAccessSymbolReferences = 16, 2492 WriteTypeArgumentsOfSignature = 32, 2493 UseFullyQualifiedType = 64, 2494 UseOnlyExternalAliasing = 128, 2495 SuppressAnyReturnType = 256, 2496 WriteTypeParametersInQualifiedName = 512, 2497 MultilineObjectLiterals = 1024, 2498 WriteClassExpressionAsTypeLiteral = 2048, 2499 UseTypeOfFunction = 4096, 2500 OmitParameterModifiers = 8192, 2501 UseAliasDefinedOutsideCurrentScope = 16384, 2502 UseSingleQuotesForStringLiteralType = 268435456, 2503 NoTypeReduction = 536870912, 2504 OmitThisParameter = 33554432, 2505 AllowThisInObjectLiteral = 32768, 2506 AllowQualifiedNameInPlaceOfIdentifier = 65536, 2507 /** @deprecated AllowQualifedNameInPlaceOfIdentifier. Use AllowQualifiedNameInPlaceOfIdentifier instead. */ 2508 AllowQualifedNameInPlaceOfIdentifier = 65536, 2509 AllowAnonymousIdentifier = 131072, 2510 AllowEmptyUnionOrIntersection = 262144, 2511 AllowEmptyTuple = 524288, 2512 AllowUniqueESSymbolType = 1048576, 2513 AllowEmptyIndexInfoType = 2097152, 2514 AllowNodeModulesRelativePaths = 67108864, 2515 IgnoreErrors = 70221824, 2516 InObjectTypeLiteral = 4194304, 2517 InTypeAlias = 8388608, 2518 InInitialEntityName = 16777216 2519 } 2520 export enum TypeFormatFlags { 2521 None = 0, 2522 NoTruncation = 1, 2523 WriteArrayAsGenericType = 2, 2524 UseStructuralFallback = 8, 2525 WriteTypeArgumentsOfSignature = 32, 2526 UseFullyQualifiedType = 64, 2527 SuppressAnyReturnType = 256, 2528 MultilineObjectLiterals = 1024, 2529 WriteClassExpressionAsTypeLiteral = 2048, 2530 UseTypeOfFunction = 4096, 2531 OmitParameterModifiers = 8192, 2532 UseAliasDefinedOutsideCurrentScope = 16384, 2533 UseSingleQuotesForStringLiteralType = 268435456, 2534 NoTypeReduction = 536870912, 2535 OmitThisParameter = 33554432, 2536 AllowUniqueESSymbolType = 1048576, 2537 AddUndefined = 131072, 2538 WriteArrowStyleSignature = 262144, 2539 InArrayType = 524288, 2540 InElementType = 2097152, 2541 InFirstTypeArgument = 4194304, 2542 InTypeAlias = 8388608, 2543 /** @deprecated */ WriteOwnNameForAnyLike = 0, 2544 NodeBuilderFlagsMask = 848330091 2545 } 2546 export enum SymbolFormatFlags { 2547 None = 0, 2548 WriteTypeParametersOrArguments = 1, 2549 UseOnlyExternalAliasing = 2, 2550 AllowAnyNodeKind = 4, 2551 UseAliasDefinedOutsideCurrentScope = 8, 2552 } 2553 interface SymbolWriter extends SymbolTracker { 2554 writeKeyword(text: string): void; 2555 writeOperator(text: string): void; 2556 writePunctuation(text: string): void; 2557 writeSpace(text: string): void; 2558 writeStringLiteral(text: string): void; 2559 writeParameter(text: string): void; 2560 writeProperty(text: string): void; 2561 writeSymbol(text: string, symbol: Symbol): void; 2562 writeLine(force?: boolean): void; 2563 increaseIndent(): void; 2564 decreaseIndent(): void; 2565 clear(): void; 2566 } 2567 export enum TypePredicateKind { 2568 This = 0, 2569 Identifier = 1, 2570 AssertsThis = 2, 2571 AssertsIdentifier = 3 2572 } 2573 export interface TypePredicateBase { 2574 kind: TypePredicateKind; 2575 type: Type | undefined; 2576 } 2577 export interface ThisTypePredicate extends TypePredicateBase { 2578 kind: TypePredicateKind.This; 2579 parameterName: undefined; 2580 parameterIndex: undefined; 2581 type: Type; 2582 } 2583 export interface IdentifierTypePredicate extends TypePredicateBase { 2584 kind: TypePredicateKind.Identifier; 2585 parameterName: string; 2586 parameterIndex: number; 2587 type: Type; 2588 } 2589 export interface AssertsThisTypePredicate extends TypePredicateBase { 2590 kind: TypePredicateKind.AssertsThis; 2591 parameterName: undefined; 2592 parameterIndex: undefined; 2593 type: Type | undefined; 2594 } 2595 export interface AssertsIdentifierTypePredicate extends TypePredicateBase { 2596 kind: TypePredicateKind.AssertsIdentifier; 2597 parameterName: string; 2598 parameterIndex: number; 2599 type: Type | undefined; 2600 } 2601 export type TypePredicate = ThisTypePredicate | IdentifierTypePredicate | AssertsThisTypePredicate | AssertsIdentifierTypePredicate; 2602 export enum SymbolFlags { 2603 None = 0, 2604 FunctionScopedVariable = 1, 2605 BlockScopedVariable = 2, 2606 Property = 4, 2607 EnumMember = 8, 2608 Function = 16, 2609 Class = 32, 2610 Interface = 64, 2611 ConstEnum = 128, 2612 RegularEnum = 256, 2613 ValueModule = 512, 2614 NamespaceModule = 1024, 2615 TypeLiteral = 2048, 2616 ObjectLiteral = 4096, 2617 Method = 8192, 2618 Constructor = 16384, 2619 GetAccessor = 32768, 2620 SetAccessor = 65536, 2621 Signature = 131072, 2622 TypeParameter = 262144, 2623 TypeAlias = 524288, 2624 ExportValue = 1048576, 2625 Alias = 2097152, 2626 Prototype = 4194304, 2627 ExportStar = 8388608, 2628 Optional = 16777216, 2629 Transient = 33554432, 2630 Assignment = 67108864, 2631 ModuleExports = 134217728, 2632 Enum = 384, 2633 Variable = 3, 2634 Value = 111551, 2635 Type = 788968, 2636 Namespace = 1920, 2637 Module = 1536, 2638 Accessor = 98304, 2639 FunctionScopedVariableExcludes = 111550, 2640 BlockScopedVariableExcludes = 111551, 2641 ParameterExcludes = 111551, 2642 PropertyExcludes = 0, 2643 EnumMemberExcludes = 900095, 2644 FunctionExcludes = 110991, 2645 ClassExcludes = 899503, 2646 InterfaceExcludes = 788872, 2647 RegularEnumExcludes = 899327, 2648 ConstEnumExcludes = 899967, 2649 ValueModuleExcludes = 110735, 2650 NamespaceModuleExcludes = 0, 2651 MethodExcludes = 103359, 2652 GetAccessorExcludes = 46015, 2653 SetAccessorExcludes = 78783, 2654 AccessorExcludes = 13247, 2655 TypeParameterExcludes = 526824, 2656 TypeAliasExcludes = 788968, 2657 AliasExcludes = 2097152, 2658 ModuleMember = 2623475, 2659 ExportHasLocal = 944, 2660 BlockScoped = 418, 2661 PropertyOrAccessor = 98308, 2662 ClassMember = 106500, 2663 } 2664 export interface Symbol { 2665 flags: SymbolFlags; 2666 escapedName: __String; 2667 declarations?: Declaration[]; 2668 valueDeclaration?: Declaration; 2669 members?: SymbolTable; 2670 exports?: SymbolTable; 2671 globalExports?: SymbolTable; 2672 exportSymbol?: Symbol; 2673 } 2674 export enum InternalSymbolName { 2675 Call = "__call", 2676 Constructor = "__constructor", 2677 New = "__new", 2678 Index = "__index", 2679 ExportStar = "__export", 2680 Global = "__global", 2681 Missing = "__missing", 2682 Type = "__type", 2683 Object = "__object", 2684 JSXAttributes = "__jsxAttributes", 2685 Class = "__class", 2686 Function = "__function", 2687 Computed = "__computed", 2688 Resolving = "__resolving__", 2689 ExportEquals = "export=", 2690 Default = "default", 2691 This = "this" 2692 } 2693 /** 2694 * This represents a string whose leading underscore have been escaped by adding extra leading underscores. 2695 * The shape of this brand is rather unique compared to others we've used. 2696 * Instead of just an intersection of a string and an object, it is that union-ed 2697 * with an intersection of void and an object. This makes it wholly incompatible 2698 * with a normal string (which is good, it cannot be misused on assignment or on usage), 2699 * while still being comparable with a normal string via === (also good) and castable from a string. 2700 */ 2701 export type __String = (string & { 2702 __escapedIdentifier: void; 2703 }) | (void & { 2704 __escapedIdentifier: void; 2705 }) | InternalSymbolName; 2706 /** ReadonlyMap where keys are `__String`s. */ 2707 export interface ReadonlyUnderscoreEscapedMap<T> extends ReadonlyESMap<__String, T> { 2708 } 2709 /** Map where keys are `__String`s. */ 2710 export interface UnderscoreEscapedMap<T> extends ESMap<__String, T>, ReadonlyUnderscoreEscapedMap<T> { 2711 } 2712 /** SymbolTable based on ES6 Map interface. */ 2713 export type SymbolTable = UnderscoreEscapedMap<Symbol>; 2714 export enum TypeFlags { 2715 Any = 1, 2716 Unknown = 2, 2717 String = 4, 2718 Number = 8, 2719 Boolean = 16, 2720 Enum = 32, 2721 BigInt = 64, 2722 StringLiteral = 128, 2723 NumberLiteral = 256, 2724 BooleanLiteral = 512, 2725 EnumLiteral = 1024, 2726 BigIntLiteral = 2048, 2727 ESSymbol = 4096, 2728 UniqueESSymbol = 8192, 2729 Void = 16384, 2730 Undefined = 32768, 2731 Null = 65536, 2732 Never = 131072, 2733 TypeParameter = 262144, 2734 Object = 524288, 2735 Union = 1048576, 2736 Intersection = 2097152, 2737 Index = 4194304, 2738 IndexedAccess = 8388608, 2739 Conditional = 16777216, 2740 Substitution = 33554432, 2741 NonPrimitive = 67108864, 2742 TemplateLiteral = 134217728, 2743 StringMapping = 268435456, 2744 Literal = 2944, 2745 Unit = 109440, 2746 StringOrNumberLiteral = 384, 2747 PossiblyFalsy = 117724, 2748 StringLike = 402653316, 2749 NumberLike = 296, 2750 BigIntLike = 2112, 2751 BooleanLike = 528, 2752 EnumLike = 1056, 2753 ESSymbolLike = 12288, 2754 VoidLike = 49152, 2755 UnionOrIntersection = 3145728, 2756 StructuredType = 3670016, 2757 TypeVariable = 8650752, 2758 InstantiableNonPrimitive = 58982400, 2759 InstantiablePrimitive = 406847488, 2760 Instantiable = 465829888, 2761 StructuredOrInstantiable = 469499904, 2762 Narrowable = 536624127, 2763 } 2764 export type DestructuringPattern = BindingPattern | ObjectLiteralExpression | ArrayLiteralExpression; 2765 export interface Type { 2766 flags: TypeFlags; 2767 symbol: Symbol; 2768 pattern?: DestructuringPattern; 2769 aliasSymbol?: Symbol; 2770 aliasTypeArguments?: readonly Type[]; 2771 } 2772 export interface LiteralType extends Type { 2773 value: string | number | PseudoBigInt; 2774 freshType: LiteralType; 2775 regularType: LiteralType; 2776 } 2777 export interface UniqueESSymbolType extends Type { 2778 symbol: Symbol; 2779 escapedName: __String; 2780 } 2781 export interface StringLiteralType extends LiteralType { 2782 value: string; 2783 } 2784 export interface NumberLiteralType extends LiteralType { 2785 value: number; 2786 } 2787 export interface BigIntLiteralType extends LiteralType { 2788 value: PseudoBigInt; 2789 } 2790 export interface EnumType extends Type { 2791 } 2792 export enum ObjectFlags { 2793 Class = 1, 2794 Interface = 2, 2795 Reference = 4, 2796 Tuple = 8, 2797 Anonymous = 16, 2798 Mapped = 32, 2799 Instantiated = 64, 2800 ObjectLiteral = 128, 2801 EvolvingArray = 256, 2802 ObjectLiteralPatternWithComputedProperties = 512, 2803 ReverseMapped = 1024, 2804 JsxAttributes = 2048, 2805 JSLiteral = 4096, 2806 FreshLiteral = 8192, 2807 ArrayLiteral = 16384, 2808 ClassOrInterface = 3, 2809 ContainsSpread = 2097152, 2810 ObjectRestType = 4194304, 2811 InstantiationExpressionType = 8388608, 2812 } 2813 export interface ObjectType extends Type { 2814 objectFlags: ObjectFlags; 2815 } 2816 /** Class and interface types (ObjectFlags.Class and ObjectFlags.Interface). */ 2817 export interface InterfaceType extends ObjectType { 2818 typeParameters: TypeParameter[] | undefined; 2819 outerTypeParameters: TypeParameter[] | undefined; 2820 localTypeParameters: TypeParameter[] | undefined; 2821 thisType: TypeParameter | undefined; 2822 } 2823 export type BaseType = ObjectType | IntersectionType | TypeVariable; 2824 export interface InterfaceTypeWithDeclaredMembers extends InterfaceType { 2825 declaredProperties: Symbol[]; 2826 declaredCallSignatures: Signature[]; 2827 declaredConstructSignatures: Signature[]; 2828 declaredIndexInfos: IndexInfo[]; 2829 } 2830 /** 2831 * Type references (ObjectFlags.Reference). When a class or interface has type parameters or 2832 * a "this" type, references to the class or interface are made using type references. The 2833 * typeArguments property specifies the types to substitute for the type parameters of the 2834 * class or interface and optionally includes an extra element that specifies the type to 2835 * substitute for "this" in the resulting instantiation. When no extra argument is present, 2836 * the type reference itself is substituted for "this". The typeArguments property is undefined 2837 * if the class or interface has no type parameters and the reference isn't specifying an 2838 * explicit "this" argument. 2839 */ 2840 export interface TypeReference extends ObjectType { 2841 target: GenericType; 2842 node?: TypeReferenceNode | ArrayTypeNode | TupleTypeNode; 2843 } 2844 export interface DeferredTypeReference extends TypeReference { 2845 } 2846 export interface GenericType extends InterfaceType, TypeReference { 2847 } 2848 export enum ElementFlags { 2849 Required = 1, 2850 Optional = 2, 2851 Rest = 4, 2852 Variadic = 8, 2853 Fixed = 3, 2854 Variable = 12, 2855 NonRequired = 14, 2856 NonRest = 11 2857 } 2858 export interface TupleType extends GenericType { 2859 elementFlags: readonly ElementFlags[]; 2860 minLength: number; 2861 fixedLength: number; 2862 hasRestElement: boolean; 2863 combinedFlags: ElementFlags; 2864 readonly: boolean; 2865 labeledElementDeclarations?: readonly (NamedTupleMember | ParameterDeclaration)[]; 2866 } 2867 export interface TupleTypeReference extends TypeReference { 2868 target: TupleType; 2869 } 2870 export interface UnionOrIntersectionType extends Type { 2871 types: Type[]; 2872 } 2873 export interface UnionType extends UnionOrIntersectionType { 2874 } 2875 export interface IntersectionType extends UnionOrIntersectionType { 2876 } 2877 export type StructuredType = ObjectType | UnionType | IntersectionType; 2878 export interface EvolvingArrayType extends ObjectType { 2879 elementType: Type; 2880 finalArrayType?: Type; 2881 } 2882 export interface InstantiableType extends Type { 2883 } 2884 export interface TypeParameter extends InstantiableType { 2885 } 2886 export interface IndexedAccessType extends InstantiableType { 2887 objectType: Type; 2888 indexType: Type; 2889 constraint?: Type; 2890 simplifiedForReading?: Type; 2891 simplifiedForWriting?: Type; 2892 } 2893 export type TypeVariable = TypeParameter | IndexedAccessType; 2894 export interface IndexType extends InstantiableType { 2895 type: InstantiableType | UnionOrIntersectionType; 2896 } 2897 export interface ConditionalRoot { 2898 node: ConditionalTypeNode; 2899 checkType: Type; 2900 extendsType: Type; 2901 isDistributive: boolean; 2902 inferTypeParameters?: TypeParameter[]; 2903 outerTypeParameters?: TypeParameter[]; 2904 instantiations?: Map<Type>; 2905 aliasSymbol?: Symbol; 2906 aliasTypeArguments?: Type[]; 2907 } 2908 export interface ConditionalType extends InstantiableType { 2909 root: ConditionalRoot; 2910 checkType: Type; 2911 extendsType: Type; 2912 resolvedTrueType?: Type; 2913 resolvedFalseType?: Type; 2914 } 2915 export interface TemplateLiteralType extends InstantiableType { 2916 texts: readonly string[]; 2917 types: readonly Type[]; 2918 } 2919 export interface StringMappingType extends InstantiableType { 2920 symbol: Symbol; 2921 type: Type; 2922 } 2923 export interface SubstitutionType extends InstantiableType { 2924 objectFlags: ObjectFlags; 2925 baseType: Type; 2926 constraint: Type; 2927 } 2928 export enum SignatureKind { 2929 Call = 0, 2930 Construct = 1 2931 } 2932 export interface Signature { 2933 declaration?: SignatureDeclaration | JSDocSignature; 2934 typeParameters?: readonly TypeParameter[]; 2935 parameters: readonly Symbol[]; 2936 } 2937 export enum IndexKind { 2938 String = 0, 2939 Number = 1 2940 } 2941 export interface IndexInfo { 2942 keyType: Type; 2943 type: Type; 2944 isReadonly: boolean; 2945 declaration?: IndexSignatureDeclaration; 2946 } 2947 export enum InferencePriority { 2948 NakedTypeVariable = 1, 2949 SpeculativeTuple = 2, 2950 SubstituteSource = 4, 2951 HomomorphicMappedType = 8, 2952 PartialHomomorphicMappedType = 16, 2953 MappedTypeConstraint = 32, 2954 ContravariantConditional = 64, 2955 ReturnType = 128, 2956 LiteralKeyof = 256, 2957 NoConstraints = 512, 2958 AlwaysStrict = 1024, 2959 MaxValue = 2048, 2960 PriorityImpliesCombination = 416, 2961 Circularity = -1 2962 } 2963 /** @deprecated Use FileExtensionInfo instead. */ 2964 export type JsFileExtensionInfo = FileExtensionInfo; 2965 export interface FileExtensionInfo { 2966 extension: string; 2967 isMixedContent: boolean; 2968 scriptKind?: ScriptKind; 2969 } 2970 export interface DiagnosticMessage { 2971 key: string; 2972 category: DiagnosticCategory; 2973 code: number; 2974 message: string; 2975 reportsUnnecessary?: {}; 2976 reportsDeprecated?: {}; 2977 } 2978 /** 2979 * A linked list of formatted diagnostic messages to be used as part of a multiline message. 2980 * It is built from the bottom up, leaving the head to be the "main" diagnostic. 2981 * While it seems that DiagnosticMessageChain is structurally similar to DiagnosticMessage, 2982 * the difference is that messages are all preformatted in DMC. 2983 */ 2984 export interface DiagnosticMessageChain { 2985 messageText: string; 2986 category: DiagnosticCategory; 2987 code: number; 2988 next?: DiagnosticMessageChain[]; 2989 } 2990 export interface Diagnostic extends DiagnosticRelatedInformation { 2991 /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */ 2992 reportsUnnecessary?: {}; 2993 reportsDeprecated?: {}; 2994 source?: string; 2995 relatedInformation?: DiagnosticRelatedInformation[]; 2996 } 2997 export interface DiagnosticRelatedInformation { 2998 category: DiagnosticCategory; 2999 code: number; 3000 file: SourceFile | undefined; 3001 start: number | undefined; 3002 length: number | undefined; 3003 messageText: string | DiagnosticMessageChain; 3004 } 3005 export interface DiagnosticWithLocation extends Diagnostic { 3006 file: SourceFile; 3007 start: number; 3008 length: number; 3009 } 3010 export enum DiagnosticCategory { 3011 Warning = 0, 3012 Error = 1, 3013 Suggestion = 2, 3014 Message = 3 3015 } 3016 export enum ModuleResolutionKind { 3017 Classic = 1, 3018 NodeJs = 2, 3019 Node16 = 3, 3020 NodeNext = 99 3021 } 3022 export enum ModuleDetectionKind { 3023 /** 3024 * Files with imports, exports and/or import.meta are considered modules 3025 */ 3026 Legacy = 1, 3027 /** 3028 * Legacy, but also files with jsx under react-jsx or react-jsxdev and esm mode files under moduleResolution: node16+ 3029 */ 3030 Auto = 2, 3031 /** 3032 * Consider all non-declaration files modules, regardless of present syntax 3033 */ 3034 Force = 3 3035 } 3036 export interface PluginImport { 3037 name: string; 3038 } 3039 export interface ProjectReference { 3040 /** A normalized path on disk */ 3041 path: string; 3042 /** The path as the user originally wrote it */ 3043 originalPath?: string; 3044 /** True if the output of this reference should be prepended to the output of this project. Only valid for --outFile compilations */ 3045 prepend?: boolean; 3046 /** True if it is intended that this reference form a circularity */ 3047 circular?: boolean; 3048 } 3049 export enum WatchFileKind { 3050 FixedPollingInterval = 0, 3051 PriorityPollingInterval = 1, 3052 DynamicPriorityPolling = 2, 3053 FixedChunkSizePolling = 3, 3054 UseFsEvents = 4, 3055 UseFsEventsOnParentDirectory = 5 3056 } 3057 export enum WatchDirectoryKind { 3058 UseFsEvents = 0, 3059 FixedPollingInterval = 1, 3060 DynamicPriorityPolling = 2, 3061 FixedChunkSizePolling = 3 3062 } 3063 export enum PollingWatchKind { 3064 FixedInterval = 0, 3065 PriorityInterval = 1, 3066 DynamicPriority = 2, 3067 FixedChunkSize = 3 3068 } 3069 export type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike<string[]> | PluginImport[] | ProjectReference[] | null | undefined | EtsOptions; 3070 export interface CompilerOptions { 3071 allowJs?: boolean; 3072 allowSyntheticDefaultImports?: boolean; 3073 allowUmdGlobalAccess?: boolean; 3074 allowUnreachableCode?: boolean; 3075 allowUnusedLabels?: boolean; 3076 alwaysStrict?: boolean; 3077 baseUrl?: string; 3078 charset?: string; 3079 checkJs?: boolean; 3080 declaration?: boolean; 3081 declarationMap?: boolean; 3082 emitDeclarationOnly?: boolean; 3083 declarationDir?: string; 3084 disableSizeLimit?: boolean; 3085 disableSourceOfProjectReferenceRedirect?: boolean; 3086 disableSolutionSearching?: boolean; 3087 disableReferencedProjectLoad?: boolean; 3088 downlevelIteration?: boolean; 3089 emitBOM?: boolean; 3090 emitDecoratorMetadata?: boolean; 3091 exactOptionalPropertyTypes?: boolean; 3092 experimentalDecorators?: boolean; 3093 forceConsistentCasingInFileNames?: boolean; 3094 importHelpers?: boolean; 3095 importsNotUsedAsValues?: ImportsNotUsedAsValues; 3096 inlineSourceMap?: boolean; 3097 inlineSources?: boolean; 3098 isolatedModules?: boolean; 3099 jsx?: JsxEmit; 3100 keyofStringsOnly?: boolean; 3101 lib?: string[]; 3102 locale?: string; 3103 mapRoot?: string; 3104 maxNodeModuleJsDepth?: number; 3105 module?: ModuleKind; 3106 moduleResolution?: ModuleResolutionKind; 3107 moduleSuffixes?: string[]; 3108 moduleDetection?: ModuleDetectionKind; 3109 newLine?: NewLineKind; 3110 noEmit?: boolean; 3111 noEmitHelpers?: boolean; 3112 noEmitOnError?: boolean; 3113 noErrorTruncation?: boolean; 3114 noFallthroughCasesInSwitch?: boolean; 3115 noImplicitAny?: boolean; 3116 noImplicitReturns?: boolean; 3117 noImplicitThis?: boolean; 3118 noStrictGenericChecks?: boolean; 3119 noUnusedLocals?: boolean; 3120 noUnusedParameters?: boolean; 3121 noImplicitUseStrict?: boolean; 3122 noPropertyAccessFromIndexSignature?: boolean; 3123 assumeChangesOnlyAffectDirectDependencies?: boolean; 3124 noLib?: boolean; 3125 noResolve?: boolean; 3126 noUncheckedIndexedAccess?: boolean; 3127 out?: string; 3128 outDir?: string; 3129 outFile?: string; 3130 paths?: MapLike<string[]>; 3131 preserveConstEnums?: boolean; 3132 noImplicitOverride?: boolean; 3133 preserveSymlinks?: boolean; 3134 preserveValueImports?: boolean; 3135 project?: string; 3136 reactNamespace?: string; 3137 jsxFactory?: string; 3138 jsxFragmentFactory?: string; 3139 jsxImportSource?: string; 3140 composite?: boolean; 3141 incremental?: boolean; 3142 tsBuildInfoFile?: string; 3143 removeComments?: boolean; 3144 rootDir?: string; 3145 rootDirs?: string[]; 3146 skipLibCheck?: boolean; 3147 skipDefaultLibCheck?: boolean; 3148 sourceMap?: boolean; 3149 sourceRoot?: string; 3150 strict?: boolean; 3151 strictFunctionTypes?: boolean; 3152 strictBindCallApply?: boolean; 3153 strictNullChecks?: boolean; 3154 strictPropertyInitialization?: boolean; 3155 stripInternal?: boolean; 3156 suppressExcessPropertyErrors?: boolean; 3157 suppressImplicitAnyIndexErrors?: boolean; 3158 target?: ScriptTarget; 3159 traceResolution?: boolean; 3160 useUnknownInCatchVariables?: boolean; 3161 resolveJsonModule?: boolean; 3162 types?: string[]; 3163 /** Paths used to compute primary types search locations */ 3164 typeRoots?: string[]; 3165 esModuleInterop?: boolean; 3166 useDefineForClassFields?: boolean; 3167 ets?: EtsOptions; 3168 packageManagerType?: string; 3169 emitNodeModulesFiles?: boolean; 3170 etsLoaderPath?: string; 3171 tsImportSendableEnable?: boolean; 3172 [option: string]: CompilerOptionsValue | TsConfigSourceFile | undefined; 3173 } 3174 export interface EtsOptions { 3175 render: { 3176 method: string[]; 3177 decorator: string; 3178 }; 3179 components: string[]; 3180 libs: string[]; 3181 extend: { 3182 decorator: string[]; 3183 components: { 3184 name: string; 3185 type: string; 3186 instance: string; 3187 }[]; 3188 }; 3189 styles: { 3190 decorator: string; 3191 component: { 3192 name: string; 3193 type: string; 3194 instance: string; 3195 }; 3196 property: string; 3197 }; 3198 concurrent: { 3199 decorator: string; 3200 }; 3201 customComponent?: string; 3202 propertyDecorators: { 3203 name: string; 3204 needInitialization: boolean; 3205 }[]; 3206 emitDecorators: { 3207 name: string; 3208 emitParameters: boolean; 3209 }[]; 3210 } 3211 export interface WatchOptions { 3212 watchFile?: WatchFileKind; 3213 watchDirectory?: WatchDirectoryKind; 3214 fallbackPolling?: PollingWatchKind; 3215 synchronousWatchDirectory?: boolean; 3216 excludeDirectories?: string[]; 3217 excludeFiles?: string[]; 3218 [option: string]: CompilerOptionsValue | undefined; 3219 } 3220 export interface TypeAcquisition { 3221 /** 3222 * @deprecated typingOptions.enableAutoDiscovery 3223 * Use typeAcquisition.enable instead. 3224 */ 3225 enableAutoDiscovery?: boolean; 3226 enable?: boolean; 3227 include?: string[]; 3228 exclude?: string[]; 3229 disableFilenameBasedTypeAcquisition?: boolean; 3230 [option: string]: CompilerOptionsValue | undefined; 3231 } 3232 export enum ModuleKind { 3233 None = 0, 3234 CommonJS = 1, 3235 AMD = 2, 3236 UMD = 3, 3237 System = 4, 3238 ES2015 = 5, 3239 ES2020 = 6, 3240 ES2022 = 7, 3241 ESNext = 99, 3242 Node16 = 100, 3243 NodeNext = 199 3244 } 3245 export enum JsxEmit { 3246 None = 0, 3247 Preserve = 1, 3248 React = 2, 3249 ReactNative = 3, 3250 ReactJSX = 4, 3251 ReactJSXDev = 5 3252 } 3253 export enum ImportsNotUsedAsValues { 3254 Remove = 0, 3255 Preserve = 1, 3256 Error = 2 3257 } 3258 export enum NewLineKind { 3259 CarriageReturnLineFeed = 0, 3260 LineFeed = 1 3261 } 3262 export interface LineAndCharacter { 3263 /** 0-based. */ 3264 line: number; 3265 character: number; 3266 } 3267 export enum ScriptKind { 3268 Unknown = 0, 3269 JS = 1, 3270 JSX = 2, 3271 TS = 3, 3272 TSX = 4, 3273 External = 5, 3274 JSON = 6, 3275 /** 3276 * Used on extensions that doesn't define the ScriptKind but the content defines it. 3277 * Deferred extensions are going to be included in all project contexts. 3278 */ 3279 Deferred = 7, 3280 ETS = 8 3281 } 3282 export enum ScriptTarget { 3283 ES3 = 0, 3284 ES5 = 1, 3285 ES2015 = 2, 3286 ES2016 = 3, 3287 ES2017 = 4, 3288 ES2018 = 5, 3289 ES2019 = 6, 3290 ES2020 = 7, 3291 ES2021 = 8, 3292 ES2022 = 9, 3293 ESNext = 99, 3294 JSON = 100, 3295 Latest = 99 3296 } 3297 export enum LanguageVariant { 3298 Standard = 0, 3299 JSX = 1 3300 } 3301 /** Either a parsed command line or a parsed tsconfig.json */ 3302 export interface ParsedCommandLine { 3303 options: CompilerOptions; 3304 typeAcquisition?: TypeAcquisition; 3305 fileNames: string[]; 3306 projectReferences?: readonly ProjectReference[]; 3307 watchOptions?: WatchOptions; 3308 raw?: any; 3309 errors: Diagnostic[]; 3310 wildcardDirectories?: MapLike<WatchDirectoryFlags>; 3311 compileOnSave?: boolean; 3312 } 3313 export enum WatchDirectoryFlags { 3314 None = 0, 3315 Recursive = 1 3316 } 3317 export interface CreateProgramOptions { 3318 rootNames: readonly string[]; 3319 options: CompilerOptions; 3320 projectReferences?: readonly ProjectReference[]; 3321 host?: CompilerHost; 3322 oldProgram?: Program; 3323 configFileParsingDiagnostics?: readonly Diagnostic[]; 3324 } 3325 export interface ModuleResolutionHost { 3326 fileExists(fileName: string): boolean; 3327 readFile(fileName: string): string | undefined; 3328 trace?(s: string): void; 3329 directoryExists?(directoryName: string): boolean; 3330 /** 3331 * Resolve a symbolic link. 3332 * @see https://nodejs.org/api/fs.html#fs_fs_realpathsync_path_options 3333 */ 3334 realpath?(path: string): string; 3335 getCurrentDirectory?(): string; 3336 getDirectories?(path: string): string[]; 3337 useCaseSensitiveFileNames?: boolean | (() => boolean) | undefined; 3338 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 3339 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 3340 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 3341 } 3342 /** 3343 * Used by services to specify the minimum host area required to set up source files under any compilation settings 3344 */ 3345 export interface MinimalResolutionCacheHost extends ModuleResolutionHost { 3346 getCompilationSettings(): CompilerOptions; 3347 getCompilerHost?(): CompilerHost | undefined; 3348 } 3349 /** 3350 * Represents the result of module resolution. 3351 * Module resolution will pick up tsx/jsx/js files even if '--jsx' and '--allowJs' are turned off. 3352 * The Program will then filter results based on these flags. 3353 * 3354 * Prefer to return a `ResolvedModuleFull` so that the file type does not have to be inferred. 3355 */ 3356 export interface ResolvedModule { 3357 /** Path of the file the module was resolved to. */ 3358 resolvedFileName: string; 3359 /** True if `resolvedFileName` comes from `node_modules`. */ 3360 isExternalLibraryImport?: boolean; 3361 } 3362 /** 3363 * ResolvedModule with an explicitly provided `extension` property. 3364 * Prefer this over `ResolvedModule`. 3365 * If changing this, remember to change `moduleResolutionIsEqualTo`. 3366 */ 3367 export interface ResolvedModuleFull extends ResolvedModule { 3368 /** 3369 * Extension of resolvedFileName. This must match what's at the end of resolvedFileName. 3370 * This is optional for backwards-compatibility, but will be added if not provided. 3371 */ 3372 extension: Extension; 3373 packageId?: PackageId; 3374 } 3375 /** 3376 * Unique identifier with a package name and version. 3377 * If changing this, remember to change `packageIdIsEqual`. 3378 */ 3379 export interface PackageId { 3380 /** 3381 * Name of the package. 3382 * Should not include `@types`. 3383 * If accessing a non-index file, this should include its name e.g. "foo/bar". 3384 */ 3385 name: string; 3386 /** 3387 * Name of a submodule within this package. 3388 * May be "". 3389 */ 3390 subModuleName: string; 3391 /** Version of the package, e.g. "1.2.3" */ 3392 version: string; 3393 } 3394 export enum Extension { 3395 Ts = ".ts", 3396 Tsx = ".tsx", 3397 Dts = ".d.ts", 3398 Js = ".js", 3399 Jsx = ".jsx", 3400 Json = ".json", 3401 TsBuildInfo = ".tsbuildinfo", 3402 Mjs = ".mjs", 3403 Mts = ".mts", 3404 Dmts = ".d.mts", 3405 Cjs = ".cjs", 3406 Cts = ".cts", 3407 Dcts = ".d.cts", 3408 Ets = ".ets", 3409 Dets = ".d.ets" 3410 } 3411 export interface ResolvedModuleWithFailedLookupLocations { 3412 readonly resolvedModule: ResolvedModuleFull | undefined; 3413 } 3414 export interface ResolvedTypeReferenceDirective { 3415 primary: boolean; 3416 resolvedFileName: string | undefined; 3417 packageId?: PackageId; 3418 /** True if `resolvedFileName` comes from `node_modules` or `oh_modules`. */ 3419 isExternalLibraryImport?: boolean; 3420 } 3421 export interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations { 3422 readonly resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined; 3423 readonly failedLookupLocations: string[]; 3424 } 3425 export interface FileCheckModuleInfo { 3426 fileNeedCheck: boolean; 3427 checkPayload: any; 3428 currentFileName: string; 3429 } 3430 export interface JsDocNodeCheckConfig { 3431 nodeNeedCheck: boolean; 3432 checkConfig: JsDocNodeCheckConfigItem[]; 3433 } 3434 export interface JsDocNodeCheckConfigItem { 3435 tagName: string[]; 3436 message: string; 3437 needConditionCheck: boolean; 3438 type: DiagnosticCategory; 3439 specifyCheckConditionFuncName: string; 3440 tagNameShouldExisted: boolean; 3441 checkValidCallback?: (jsDocTag: JSDocTag, config: JsDocNodeCheckConfigItem) => boolean; 3442 checkJsDocSpecialValidCallback?: (jsDocTags: readonly JSDocTag[], config: JsDocNodeCheckConfigItem) => boolean; 3443 } 3444 export interface TagCheckParam { 3445 needCheck: boolean; 3446 checkConfig: TagCheckConfig[]; 3447 } 3448 export interface TagCheckConfig { 3449 tagName: string; 3450 message: string; 3451 needConditionCheck: boolean; 3452 specifyCheckConditionFuncName: string; 3453 } 3454 export interface ConditionCheckResult { 3455 valid: boolean; 3456 type?: DiagnosticCategory; 3457 message?: string; 3458 } 3459 export interface CompilerHost extends ModuleResolutionHost { 3460 getSourceFile(fileName: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; 3461 getSourceFileByPath?(fileName: string, path: Path, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; 3462 getCancellationToken?(): CancellationToken; 3463 getDefaultLibFileName(options: CompilerOptions): string; 3464 getDefaultLibLocation?(): string; 3465 writeFile: WriteFileCallback; 3466 getCurrentDirectory(): string; 3467 getCanonicalFileName(fileName: string): string; 3468 useCaseSensitiveFileNames(): boolean; 3469 getNewLine(): string; 3470 readDirectory?(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): string[]; 3471 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 3472 /** 3473 * 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 3474 */ 3475 getModuleResolutionCache?(): ModuleResolutionCache | undefined; 3476 /** 3477 * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files 3478 */ 3479 resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 3480 getEnvironmentVariable?(name: string): string | undefined; 3481 /** If provided along with custom resolveModuleNames or resolveTypeReferenceDirectives, used to determine if unchanged file path needs to re-resolve modules/type reference directives */ 3482 hasInvalidatedResolutions?(filePath: Path): boolean; 3483 createHash?(data: string): string; 3484 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 3485 /** 3486 * get tagName where need to be determined based on the file path 3487 * @param jsDocFileCheckInfo filePath 3488 * @param symbolSourceFilePath filePath 3489 */ 3490 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 3491 /** 3492 * get checked results based on the file path and jsDocs 3493 * @param jsDocFileCheckedInfo 3494 * @param jsDocs 3495 */ 3496 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 3497 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 3498 getLastCompiledProgram?(): Program; 3499 } 3500 export interface SourceMapRange extends TextRange { 3501 source?: SourceMapSource; 3502 } 3503 export interface SourceMapSource { 3504 fileName: string; 3505 text: string; 3506 skipTrivia?: (pos: number) => number; 3507 } 3508 export enum EmitFlags { 3509 None = 0, 3510 SingleLine = 1, 3511 AdviseOnEmitNode = 2, 3512 NoSubstitution = 4, 3513 CapturesThis = 8, 3514 NoLeadingSourceMap = 16, 3515 NoTrailingSourceMap = 32, 3516 NoSourceMap = 48, 3517 NoNestedSourceMaps = 64, 3518 NoTokenLeadingSourceMaps = 128, 3519 NoTokenTrailingSourceMaps = 256, 3520 NoTokenSourceMaps = 384, 3521 NoLeadingComments = 512, 3522 NoTrailingComments = 1024, 3523 NoComments = 1536, 3524 NoNestedComments = 2048, 3525 HelperName = 4096, 3526 ExportName = 8192, 3527 LocalName = 16384, 3528 InternalName = 32768, 3529 Indented = 65536, 3530 NoIndentation = 131072, 3531 AsyncFunctionBody = 262144, 3532 ReuseTempVariableScope = 524288, 3533 CustomPrologue = 1048576, 3534 NoHoisting = 2097152, 3535 HasEndOfDeclarationMarker = 4194304, 3536 Iterator = 8388608, 3537 NoAsciiEscaping = 16777216, 3538 } 3539 export interface EmitHelperBase { 3540 readonly name: string; 3541 readonly scoped: boolean; 3542 readonly text: string | ((node: EmitHelperUniqueNameCallback) => string); 3543 readonly priority?: number; 3544 readonly dependencies?: EmitHelper[]; 3545 } 3546 export interface ScopedEmitHelper extends EmitHelperBase { 3547 readonly scoped: true; 3548 } 3549 export interface UnscopedEmitHelper extends EmitHelperBase { 3550 readonly scoped: false; 3551 readonly text: string; 3552 } 3553 export type EmitHelper = ScopedEmitHelper | UnscopedEmitHelper; 3554 export type EmitHelperUniqueNameCallback = (name: string) => string; 3555 export enum EmitHint { 3556 SourceFile = 0, 3557 Expression = 1, 3558 IdentifierName = 2, 3559 MappedTypeParameter = 3, 3560 Unspecified = 4, 3561 EmbeddedStatement = 5, 3562 JsxAttributeValue = 6 3563 } 3564 export interface SourceFileMayBeEmittedHost { 3565 getCompilerOptions(): CompilerOptions; 3566 isSourceFileFromExternalLibrary(file: SourceFile): boolean; 3567 getResolvedProjectReferenceToRedirect(fileName: string): ResolvedProjectReference | undefined; 3568 isSourceOfProjectReferenceRedirect(fileName: string): boolean; 3569 } 3570 export interface EmitHost extends ScriptReferenceHost, ModuleSpecifierResolutionHost, SourceFileMayBeEmittedHost { 3571 getSourceFiles(): readonly SourceFile[]; 3572 useCaseSensitiveFileNames(): boolean; 3573 getCurrentDirectory(): string; 3574 getLibFileFromReference(ref: FileReference): SourceFile | undefined; 3575 getCommonSourceDirectory(): string; 3576 getCanonicalFileName(fileName: string): string; 3577 getNewLine(): string; 3578 isEmitBlocked(emitFileName: string): boolean; 3579 getPrependNodes(): readonly (InputFiles | UnparsedSource)[]; 3580 writeFile: WriteFileCallback; 3581 getSourceFileFromReference: Program["getSourceFileFromReference"]; 3582 readonly redirectTargetsMap: RedirectTargetsMap; 3583 createHash?(data: string): string; 3584 } 3585 export enum OuterExpressionKinds { 3586 Parentheses = 1, 3587 TypeAssertions = 2, 3588 NonNullAssertions = 4, 3589 PartiallyEmittedExpressions = 8, 3590 Assertions = 6, 3591 All = 15, 3592 ExcludeJSDocTypeAssertion = 16 3593 } 3594 export type TypeOfTag = "undefined" | "number" | "bigint" | "boolean" | "string" | "symbol" | "object" | "function"; 3595 export interface NodeFactory { 3596 createNodeArray<T extends Node>(elements?: readonly T[], hasTrailingComma?: boolean): NodeArray<T>; 3597 createNumericLiteral(value: string | number, numericLiteralFlags?: TokenFlags): NumericLiteral; 3598 createBigIntLiteral(value: string | PseudoBigInt): BigIntLiteral; 3599 createStringLiteral(text: string, isSingleQuote?: boolean): StringLiteral; 3600 createStringLiteralFromNode(sourceNode: PropertyNameLiteral | PrivateIdentifier, isSingleQuote?: boolean): StringLiteral; 3601 createRegularExpressionLiteral(text: string): RegularExpressionLiteral; 3602 createIdentifier(text: string): Identifier; 3603 /** 3604 * Create a unique temporary variable. 3605 * @param recordTempVariable An optional callback used to record the temporary variable name. This 3606 * should usually be a reference to `hoistVariableDeclaration` from a `TransformationContext`, but 3607 * can be `undefined` if you plan to record the temporary variable manually. 3608 * @param reservedInNestedScopes When `true`, reserves the temporary variable name in all nested scopes 3609 * during emit so that the variable can be referenced in a nested function body. This is an alternative to 3610 * setting `EmitFlags.ReuseTempVariableScope` on the nested function itself. 3611 */ 3612 createTempVariable(recordTempVariable: ((node: Identifier) => void) | undefined, reservedInNestedScopes?: boolean): Identifier; 3613 /** 3614 * Create a unique temporary variable for use in a loop. 3615 * @param reservedInNestedScopes When `true`, reserves the temporary variable name in all nested scopes 3616 * during emit so that the variable can be referenced in a nested function body. This is an alternative to 3617 * setting `EmitFlags.ReuseTempVariableScope` on the nested function itself. 3618 */ 3619 createLoopVariable(reservedInNestedScopes?: boolean): Identifier; 3620 /** Create a unique name based on the supplied text. */ 3621 createUniqueName(text: string, flags?: GeneratedIdentifierFlags): Identifier; 3622 /** Create a unique name generated for a node. */ 3623 getGeneratedNameForNode(node: Node | undefined, flags?: GeneratedIdentifierFlags): Identifier; 3624 createPrivateIdentifier(text: string): PrivateIdentifier; 3625 createUniquePrivateName(text?: string): PrivateIdentifier; 3626 getGeneratedPrivateNameForNode(node: Node): PrivateIdentifier; 3627 createToken(token: SyntaxKind.SuperKeyword): SuperExpression; 3628 createToken(token: SyntaxKind.ThisKeyword): ThisExpression; 3629 createToken(token: SyntaxKind.NullKeyword): NullLiteral; 3630 createToken(token: SyntaxKind.TrueKeyword): TrueLiteral; 3631 createToken(token: SyntaxKind.FalseKeyword): FalseLiteral; 3632 createToken<TKind extends PunctuationSyntaxKind>(token: TKind): PunctuationToken<TKind>; 3633 createToken<TKind extends KeywordTypeSyntaxKind>(token: TKind): KeywordTypeNode<TKind>; 3634 createToken<TKind extends ModifierSyntaxKind>(token: TKind): ModifierToken<TKind>; 3635 createToken<TKind extends KeywordSyntaxKind>(token: TKind): KeywordToken<TKind>; 3636 createToken<TKind extends SyntaxKind.Unknown | SyntaxKind.EndOfFileToken>(token: TKind): Token<TKind>; 3637 createSuper(): SuperExpression; 3638 createThis(): ThisExpression; 3639 createNull(): NullLiteral; 3640 createTrue(): TrueLiteral; 3641 createFalse(): FalseLiteral; 3642 createModifier<T extends ModifierSyntaxKind>(kind: T): ModifierToken<T>; 3643 createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[] | undefined; 3644 createQualifiedName(left: EntityName, right: string | Identifier): QualifiedName; 3645 updateQualifiedName(node: QualifiedName, left: EntityName, right: Identifier): QualifiedName; 3646 createComputedPropertyName(expression: Expression): ComputedPropertyName; 3647 updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName; 3648 createTypeParameterDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; 3649 updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 3650 createParameterDeclaration(modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; 3651 updateParameterDeclaration(node: ParameterDeclaration, modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; 3652 createDecorator(expression: Expression): Decorator; 3653 updateDecorator(node: Decorator, expression: Expression): Decorator; 3654 createPropertySignature(modifiers: readonly Modifier[] | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined): PropertySignature; 3655 updatePropertySignature(node: PropertySignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined): PropertySignature; 3656 createPropertyDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 3657 updatePropertyDeclaration(node: PropertyDeclaration, modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 3658 createMethodSignature(modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): MethodSignature; 3659 updateMethodSignature(node: MethodSignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): MethodSignature; 3660 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; 3661 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; 3662 createConstructorDeclaration(modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 3663 updateConstructorDeclaration(node: ConstructorDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 3664 createGetAccessorDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 3665 updateGetAccessorDeclaration(node: GetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 3666 createSetAccessorDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 3667 updateSetAccessorDeclaration(node: SetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 3668 createCallSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): CallSignatureDeclaration; 3669 updateCallSignature(node: CallSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): CallSignatureDeclaration; 3670 createConstructSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): ConstructSignatureDeclaration; 3671 updateConstructSignature(node: ConstructSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructSignatureDeclaration; 3672 createIndexSignature(modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 3673 updateIndexSignature(node: IndexSignatureDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 3674 createTemplateLiteralTypeSpan(type: TypeNode, literal: TemplateMiddle | TemplateTail): TemplateLiteralTypeSpan; 3675 updateTemplateLiteralTypeSpan(node: TemplateLiteralTypeSpan, type: TypeNode, literal: TemplateMiddle | TemplateTail): TemplateLiteralTypeSpan; 3676 createClassStaticBlockDeclaration(body: Block): ClassStaticBlockDeclaration; 3677 updateClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, body: Block): ClassStaticBlockDeclaration; 3678 createKeywordTypeNode<TKind extends KeywordTypeSyntaxKind>(kind: TKind): KeywordTypeNode<TKind>; 3679 createTypePredicateNode(assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode | string, type: TypeNode | undefined): TypePredicateNode; 3680 updateTypePredicateNode(node: TypePredicateNode, assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode, type: TypeNode | undefined): TypePredicateNode; 3681 createTypeReferenceNode(typeName: string | EntityName, typeArguments?: readonly TypeNode[]): TypeReferenceNode; 3682 updateTypeReferenceNode(node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray<TypeNode> | undefined): TypeReferenceNode; 3683 createFunctionTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): FunctionTypeNode; 3684 updateFunctionTypeNode(node: FunctionTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): FunctionTypeNode; 3685 createConstructorTypeNode(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): ConstructorTypeNode; 3686 updateConstructorTypeNode(node: ConstructorTypeNode, modifiers: readonly Modifier[] | undefined, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): ConstructorTypeNode; 3687 createTypeQueryNode(exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; 3688 updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; 3689 createTypeLiteralNode(members: readonly TypeElement[] | undefined): TypeLiteralNode; 3690 updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray<TypeElement>): TypeLiteralNode; 3691 createArrayTypeNode(elementType: TypeNode): ArrayTypeNode; 3692 updateArrayTypeNode(node: ArrayTypeNode, elementType: TypeNode): ArrayTypeNode; 3693 createTupleTypeNode(elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode; 3694 updateTupleTypeNode(node: TupleTypeNode, elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode; 3695 createNamedTupleMember(dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember; 3696 updateNamedTupleMember(node: NamedTupleMember, dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember; 3697 createOptionalTypeNode(type: TypeNode): OptionalTypeNode; 3698 updateOptionalTypeNode(node: OptionalTypeNode, type: TypeNode): OptionalTypeNode; 3699 createRestTypeNode(type: TypeNode): RestTypeNode; 3700 updateRestTypeNode(node: RestTypeNode, type: TypeNode): RestTypeNode; 3701 createUnionTypeNode(types: readonly TypeNode[]): UnionTypeNode; 3702 updateUnionTypeNode(node: UnionTypeNode, types: NodeArray<TypeNode>): UnionTypeNode; 3703 createIntersectionTypeNode(types: readonly TypeNode[]): IntersectionTypeNode; 3704 updateIntersectionTypeNode(node: IntersectionTypeNode, types: NodeArray<TypeNode>): IntersectionTypeNode; 3705 createConditionalTypeNode(checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; 3706 updateConditionalTypeNode(node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; 3707 createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode; 3708 updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode; 3709 createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 3710 updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; 3711 createParenthesizedType(type: TypeNode): ParenthesizedTypeNode; 3712 updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode; 3713 createThisTypeNode(): ThisTypeNode; 3714 createTypeOperatorNode(operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode; 3715 updateTypeOperatorNode(node: TypeOperatorNode, type: TypeNode): TypeOperatorNode; 3716 createIndexedAccessTypeNode(objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode; 3717 updateIndexedAccessTypeNode(node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode; 3718 createMappedTypeNode(readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined): MappedTypeNode; 3719 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; 3720 createLiteralTypeNode(literal: LiteralTypeNode["literal"]): LiteralTypeNode; 3721 updateLiteralTypeNode(node: LiteralTypeNode, literal: LiteralTypeNode["literal"]): LiteralTypeNode; 3722 createTemplateLiteralType(head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode; 3723 updateTemplateLiteralType(node: TemplateLiteralTypeNode, head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode; 3724 createObjectBindingPattern(elements: readonly BindingElement[]): ObjectBindingPattern; 3725 updateObjectBindingPattern(node: ObjectBindingPattern, elements: readonly BindingElement[]): ObjectBindingPattern; 3726 createArrayBindingPattern(elements: readonly ArrayBindingElement[]): ArrayBindingPattern; 3727 updateArrayBindingPattern(node: ArrayBindingPattern, elements: readonly ArrayBindingElement[]): ArrayBindingPattern; 3728 createBindingElement(dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression): BindingElement; 3729 updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined): BindingElement; 3730 createArrayLiteralExpression(elements?: readonly Expression[], multiLine?: boolean): ArrayLiteralExpression; 3731 updateArrayLiteralExpression(node: ArrayLiteralExpression, elements: readonly Expression[]): ArrayLiteralExpression; 3732 createObjectLiteralExpression(properties?: readonly ObjectLiteralElementLike[], multiLine?: boolean): ObjectLiteralExpression; 3733 updateObjectLiteralExpression(node: ObjectLiteralExpression, properties: readonly ObjectLiteralElementLike[]): ObjectLiteralExpression; 3734 createPropertyAccessExpression(expression: Expression, name: string | MemberName): PropertyAccessExpression; 3735 updatePropertyAccessExpression(node: PropertyAccessExpression, expression: Expression, name: MemberName): PropertyAccessExpression; 3736 createPropertyAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, name: string | MemberName): PropertyAccessChain; 3737 updatePropertyAccessChain(node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, name: MemberName): PropertyAccessChain; 3738 createElementAccessExpression(expression: Expression, index: number | Expression): ElementAccessExpression; 3739 updateElementAccessExpression(node: ElementAccessExpression, expression: Expression, argumentExpression: Expression): ElementAccessExpression; 3740 createElementAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, index: number | Expression): ElementAccessChain; 3741 updateElementAccessChain(node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, argumentExpression: Expression): ElementAccessChain; 3742 createCallExpression(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallExpression; 3743 updateCallExpression(node: CallExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallExpression; 3744 createCallChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallChain; 3745 updateCallChain(node: CallChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallChain; 3746 createNewExpression(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression; 3747 updateNewExpression(node: NewExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression; 3748 createTaggedTemplateExpression(tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 3749 updateTaggedTemplateExpression(node: TaggedTemplateExpression, tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 3750 createTypeAssertion(type: TypeNode, expression: Expression): TypeAssertion; 3751 updateTypeAssertion(node: TypeAssertion, type: TypeNode, expression: Expression): TypeAssertion; 3752 createParenthesizedExpression(expression: Expression): ParenthesizedExpression; 3753 updateParenthesizedExpression(node: ParenthesizedExpression, expression: Expression): ParenthesizedExpression; 3754 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; 3755 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; 3756 createArrowFunction(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction; 3757 updateArrowFunction(node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken, body: ConciseBody): ArrowFunction; 3758 createEtsComponentExpression(name: Expression, argumentExpression: Expression[] | NodeArray<Expression> | undefined, body: Block | undefined): EtsComponentExpression; 3759 updateEtsComponentExpression(node: EtsComponentExpression, name: Expression | undefined, argumentExpression: Expression[] | NodeArray<Expression> | undefined, body: Block | undefined): EtsComponentExpression; 3760 createDeleteExpression(expression: Expression): DeleteExpression; 3761 updateDeleteExpression(node: DeleteExpression, expression: Expression): DeleteExpression; 3762 createTypeOfExpression(expression: Expression): TypeOfExpression; 3763 updateTypeOfExpression(node: TypeOfExpression, expression: Expression): TypeOfExpression; 3764 createVoidExpression(expression: Expression): VoidExpression; 3765 updateVoidExpression(node: VoidExpression, expression: Expression): VoidExpression; 3766 createAwaitExpression(expression: Expression): AwaitExpression; 3767 updateAwaitExpression(node: AwaitExpression, expression: Expression): AwaitExpression; 3768 createPrefixUnaryExpression(operator: PrefixUnaryOperator, operand: Expression): PrefixUnaryExpression; 3769 updatePrefixUnaryExpression(node: PrefixUnaryExpression, operand: Expression): PrefixUnaryExpression; 3770 createPostfixUnaryExpression(operand: Expression, operator: PostfixUnaryOperator): PostfixUnaryExpression; 3771 updatePostfixUnaryExpression(node: PostfixUnaryExpression, operand: Expression): PostfixUnaryExpression; 3772 createBinaryExpression(left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression; 3773 updateBinaryExpression(node: BinaryExpression, left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression; 3774 createConditionalExpression(condition: Expression, questionToken: QuestionToken | undefined, whenTrue: Expression, colonToken: ColonToken | undefined, whenFalse: Expression): ConditionalExpression; 3775 updateConditionalExpression(node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression; 3776 createTemplateExpression(head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression; 3777 updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression; 3778 createTemplateHead(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateHead; 3779 createTemplateHead(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateHead; 3780 createTemplateMiddle(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateMiddle; 3781 createTemplateMiddle(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateMiddle; 3782 createTemplateTail(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateTail; 3783 createTemplateTail(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateTail; 3784 createNoSubstitutionTemplateLiteral(text: string, rawText?: string): NoSubstitutionTemplateLiteral; 3785 createNoSubstitutionTemplateLiteral(text: string | undefined, rawText: string): NoSubstitutionTemplateLiteral; 3786 createYieldExpression(asteriskToken: AsteriskToken, expression: Expression): YieldExpression; 3787 createYieldExpression(asteriskToken: undefined, expression: Expression | undefined): YieldExpression; 3788 updateYieldExpression(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression | undefined): YieldExpression; 3789 createSpreadElement(expression: Expression): SpreadElement; 3790 updateSpreadElement(node: SpreadElement, expression: Expression): SpreadElement; 3791 createClassExpression(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression; 3792 updateClassExpression(node: ClassExpression, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression; 3793 createOmittedExpression(): OmittedExpression; 3794 createExpressionWithTypeArguments(expression: Expression, typeArguments: readonly TypeNode[] | undefined): ExpressionWithTypeArguments; 3795 updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, expression: Expression, typeArguments: readonly TypeNode[] | undefined): ExpressionWithTypeArguments; 3796 createAsExpression(expression: Expression, type: TypeNode): AsExpression; 3797 updateAsExpression(node: AsExpression, expression: Expression, type: TypeNode): AsExpression; 3798 createNonNullExpression(expression: Expression): NonNullExpression; 3799 updateNonNullExpression(node: NonNullExpression, expression: Expression): NonNullExpression; 3800 createNonNullChain(expression: Expression): NonNullChain; 3801 updateNonNullChain(node: NonNullChain, expression: Expression): NonNullChain; 3802 createMetaProperty(keywordToken: MetaProperty["keywordToken"], name: Identifier): MetaProperty; 3803 updateMetaProperty(node: MetaProperty, name: Identifier): MetaProperty; 3804 createSatisfiesExpression(expression: Expression, type: TypeNode): SatisfiesExpression; 3805 updateSatisfiesExpression(node: SatisfiesExpression, expression: Expression, type: TypeNode): SatisfiesExpression; 3806 createTemplateSpan(expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan; 3807 updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan; 3808 createSemicolonClassElement(): SemicolonClassElement; 3809 createBlock(statements: readonly Statement[], multiLine?: boolean): Block; 3810 updateBlock(node: Block, statements: readonly Statement[]): Block; 3811 createVariableStatement(modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList | readonly VariableDeclaration[]): VariableStatement; 3812 updateVariableStatement(node: VariableStatement, modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList): VariableStatement; 3813 createEmptyStatement(): EmptyStatement; 3814 createExpressionStatement(expression: Expression): ExpressionStatement; 3815 updateExpressionStatement(node: ExpressionStatement, expression: Expression): ExpressionStatement; 3816 createIfStatement(expression: Expression, thenStatement: Statement, elseStatement?: Statement): IfStatement; 3817 updateIfStatement(node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement | undefined): IfStatement; 3818 createDoStatement(statement: Statement, expression: Expression): DoStatement; 3819 updateDoStatement(node: DoStatement, statement: Statement, expression: Expression): DoStatement; 3820 createWhileStatement(expression: Expression, statement: Statement): WhileStatement; 3821 updateWhileStatement(node: WhileStatement, expression: Expression, statement: Statement): WhileStatement; 3822 createForStatement(initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement; 3823 updateForStatement(node: ForStatement, initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement; 3824 createForInStatement(initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement; 3825 updateForInStatement(node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement; 3826 createForOfStatement(awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement; 3827 updateForOfStatement(node: ForOfStatement, awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement; 3828 createContinueStatement(label?: string | Identifier): ContinueStatement; 3829 updateContinueStatement(node: ContinueStatement, label: Identifier | undefined): ContinueStatement; 3830 createBreakStatement(label?: string | Identifier): BreakStatement; 3831 updateBreakStatement(node: BreakStatement, label: Identifier | undefined): BreakStatement; 3832 createReturnStatement(expression?: Expression): ReturnStatement; 3833 updateReturnStatement(node: ReturnStatement, expression: Expression | undefined): ReturnStatement; 3834 createWithStatement(expression: Expression, statement: Statement): WithStatement; 3835 updateWithStatement(node: WithStatement, expression: Expression, statement: Statement): WithStatement; 3836 createSwitchStatement(expression: Expression, caseBlock: CaseBlock): SwitchStatement; 3837 updateSwitchStatement(node: SwitchStatement, expression: Expression, caseBlock: CaseBlock): SwitchStatement; 3838 createLabeledStatement(label: string | Identifier, statement: Statement): LabeledStatement; 3839 updateLabeledStatement(node: LabeledStatement, label: Identifier, statement: Statement): LabeledStatement; 3840 createThrowStatement(expression: Expression): ThrowStatement; 3841 updateThrowStatement(node: ThrowStatement, expression: Expression): ThrowStatement; 3842 createTryStatement(tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement; 3843 updateTryStatement(node: TryStatement, tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement; 3844 createDebuggerStatement(): DebuggerStatement; 3845 createVariableDeclaration(name: string | BindingName, exclamationToken?: ExclamationToken, type?: TypeNode, initializer?: Expression): VariableDeclaration; 3846 updateVariableDeclaration(node: VariableDeclaration, name: BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 3847 createVariableDeclarationList(declarations: readonly VariableDeclaration[], flags?: NodeFlags): VariableDeclarationList; 3848 updateVariableDeclarationList(node: VariableDeclarationList, declarations: readonly VariableDeclaration[]): VariableDeclarationList; 3849 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; 3850 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; 3851 createClassDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 3852 updateClassDeclaration(node: ClassDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 3853 createStructDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): StructDeclaration; 3854 updateStructDeclaration(node: StructDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): StructDeclaration; 3855 createInterfaceDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 3856 updateInterfaceDeclaration(node: InterfaceDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 3857 createTypeAliasDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 3858 updateTypeAliasDeclaration(node: TypeAliasDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 3859 createEnumDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 3860 updateEnumDeclaration(node: EnumDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 3861 createModuleDeclaration(modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration; 3862 updateModuleDeclaration(node: ModuleDeclaration, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 3863 createModuleBlock(statements: readonly Statement[]): ModuleBlock; 3864 updateModuleBlock(node: ModuleBlock, statements: readonly Statement[]): ModuleBlock; 3865 createCaseBlock(clauses: readonly CaseOrDefaultClause[]): CaseBlock; 3866 updateCaseBlock(node: CaseBlock, clauses: readonly CaseOrDefaultClause[]): CaseBlock; 3867 createNamespaceExportDeclaration(name: string | Identifier): NamespaceExportDeclaration; 3868 updateNamespaceExportDeclaration(node: NamespaceExportDeclaration, name: Identifier): NamespaceExportDeclaration; 3869 createImportEqualsDeclaration(modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 3870 updateImportEqualsDeclaration(node: ImportEqualsDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 3871 createImportDeclaration(modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause): ImportDeclaration; 3872 updateImportDeclaration(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 3873 createImportClause(isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; 3874 updateImportClause(node: ImportClause, isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; 3875 createAssertClause(elements: NodeArray<AssertEntry>, multiLine?: boolean): AssertClause; 3876 updateAssertClause(node: AssertClause, elements: NodeArray<AssertEntry>, multiLine?: boolean): AssertClause; 3877 createAssertEntry(name: AssertionKey, value: Expression): AssertEntry; 3878 updateAssertEntry(node: AssertEntry, name: AssertionKey, value: Expression): AssertEntry; 3879 createImportTypeAssertionContainer(clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; 3880 updateImportTypeAssertionContainer(node: ImportTypeAssertionContainer, clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; 3881 createNamespaceImport(name: Identifier): NamespaceImport; 3882 updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport; 3883 createNamespaceExport(name: Identifier): NamespaceExport; 3884 updateNamespaceExport(node: NamespaceExport, name: Identifier): NamespaceExport; 3885 createNamedImports(elements: readonly ImportSpecifier[]): NamedImports; 3886 updateNamedImports(node: NamedImports, elements: readonly ImportSpecifier[]): NamedImports; 3887 createImportSpecifier(isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ImportSpecifier; 3888 updateImportSpecifier(node: ImportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ImportSpecifier; 3889 createExportAssignment(modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 3890 updateExportAssignment(node: ExportAssignment, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 3891 createExportDeclaration(modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression, assertClause?: AssertClause): ExportDeclaration; 3892 updateExportDeclaration(node: ExportDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, assertClause: AssertClause | undefined): ExportDeclaration; 3893 createNamedExports(elements: readonly ExportSpecifier[]): NamedExports; 3894 updateNamedExports(node: NamedExports, elements: readonly ExportSpecifier[]): NamedExports; 3895 createExportSpecifier(isTypeOnly: boolean, propertyName: string | Identifier | undefined, name: string | Identifier): ExportSpecifier; 3896 updateExportSpecifier(node: ExportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier): ExportSpecifier; 3897 createExternalModuleReference(expression: Expression): ExternalModuleReference; 3898 updateExternalModuleReference(node: ExternalModuleReference, expression: Expression): ExternalModuleReference; 3899 createJSDocAllType(): JSDocAllType; 3900 createJSDocUnknownType(): JSDocUnknownType; 3901 createJSDocNonNullableType(type: TypeNode, postfix?: boolean): JSDocNonNullableType; 3902 updateJSDocNonNullableType(node: JSDocNonNullableType, type: TypeNode): JSDocNonNullableType; 3903 createJSDocNullableType(type: TypeNode, postfix?: boolean): JSDocNullableType; 3904 updateJSDocNullableType(node: JSDocNullableType, type: TypeNode): JSDocNullableType; 3905 createJSDocOptionalType(type: TypeNode): JSDocOptionalType; 3906 updateJSDocOptionalType(node: JSDocOptionalType, type: TypeNode): JSDocOptionalType; 3907 createJSDocFunctionType(parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): JSDocFunctionType; 3908 updateJSDocFunctionType(node: JSDocFunctionType, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): JSDocFunctionType; 3909 createJSDocVariadicType(type: TypeNode): JSDocVariadicType; 3910 updateJSDocVariadicType(node: JSDocVariadicType, type: TypeNode): JSDocVariadicType; 3911 createJSDocNamepathType(type: TypeNode): JSDocNamepathType; 3912 updateJSDocNamepathType(node: JSDocNamepathType, type: TypeNode): JSDocNamepathType; 3913 createJSDocTypeExpression(type: TypeNode): JSDocTypeExpression; 3914 updateJSDocTypeExpression(node: JSDocTypeExpression, type: TypeNode): JSDocTypeExpression; 3915 createJSDocNameReference(name: EntityName | JSDocMemberName): JSDocNameReference; 3916 updateJSDocNameReference(node: JSDocNameReference, name: EntityName | JSDocMemberName): JSDocNameReference; 3917 createJSDocMemberName(left: EntityName | JSDocMemberName, right: Identifier): JSDocMemberName; 3918 updateJSDocMemberName(node: JSDocMemberName, left: EntityName | JSDocMemberName, right: Identifier): JSDocMemberName; 3919 createJSDocLink(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLink; 3920 updateJSDocLink(node: JSDocLink, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLink; 3921 createJSDocLinkCode(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkCode; 3922 updateJSDocLinkCode(node: JSDocLinkCode, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkCode; 3923 createJSDocLinkPlain(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkPlain; 3924 updateJSDocLinkPlain(node: JSDocLinkPlain, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkPlain; 3925 createJSDocTypeLiteral(jsDocPropertyTags?: readonly JSDocPropertyLikeTag[], isArrayType?: boolean): JSDocTypeLiteral; 3926 updateJSDocTypeLiteral(node: JSDocTypeLiteral, jsDocPropertyTags: readonly JSDocPropertyLikeTag[] | undefined, isArrayType: boolean | undefined): JSDocTypeLiteral; 3927 createJSDocSignature(typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type?: JSDocReturnTag): JSDocSignature; 3928 updateJSDocSignature(node: JSDocSignature, typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type: JSDocReturnTag | undefined): JSDocSignature; 3929 createJSDocTemplateTag(tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment?: string | NodeArray<JSDocComment>): JSDocTemplateTag; 3930 updateJSDocTemplateTag(node: JSDocTemplateTag, tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment: string | NodeArray<JSDocComment> | undefined): JSDocTemplateTag; 3931 createJSDocTypedefTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression | JSDocTypeLiteral, fullName?: Identifier | JSDocNamespaceDeclaration, comment?: string | NodeArray<JSDocComment>): JSDocTypedefTag; 3932 updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | JSDocTypeLiteral | undefined, fullName: Identifier | JSDocNamespaceDeclaration | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocTypedefTag; 3933 createJSDocParameterTag(tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression, isNameFirst?: boolean, comment?: string | NodeArray<JSDocComment>): JSDocParameterTag; 3934 updateJSDocParameterTag(node: JSDocParameterTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | NodeArray<JSDocComment> | undefined): JSDocParameterTag; 3935 createJSDocPropertyTag(tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression, isNameFirst?: boolean, comment?: string | NodeArray<JSDocComment>): JSDocPropertyTag; 3936 updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | NodeArray<JSDocComment> | undefined): JSDocPropertyTag; 3937 createJSDocTypeTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocTypeTag; 3938 updateJSDocTypeTag(node: JSDocTypeTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray<JSDocComment> | undefined): JSDocTypeTag; 3939 createJSDocSeeTag(tagName: Identifier | undefined, nameExpression: JSDocNameReference | undefined, comment?: string | NodeArray<JSDocComment>): JSDocSeeTag; 3940 updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier | undefined, nameExpression: JSDocNameReference | undefined, comment?: string | NodeArray<JSDocComment>): JSDocSeeTag; 3941 createJSDocReturnTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocReturnTag; 3942 updateJSDocReturnTag(node: JSDocReturnTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocReturnTag; 3943 createJSDocThisTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocThisTag; 3944 updateJSDocThisTag(node: JSDocThisTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocThisTag; 3945 createJSDocEnumTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocEnumTag; 3946 updateJSDocEnumTag(node: JSDocEnumTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray<JSDocComment> | undefined): JSDocEnumTag; 3947 createJSDocCallbackTag(tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName?: Identifier | JSDocNamespaceDeclaration, comment?: string | NodeArray<JSDocComment>): JSDocCallbackTag; 3948 updateJSDocCallbackTag(node: JSDocCallbackTag, tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName: Identifier | JSDocNamespaceDeclaration | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocCallbackTag; 3949 createJSDocAugmentsTag(tagName: Identifier | undefined, className: JSDocAugmentsTag["class"], comment?: string | NodeArray<JSDocComment>): JSDocAugmentsTag; 3950 updateJSDocAugmentsTag(node: JSDocAugmentsTag, tagName: Identifier | undefined, className: JSDocAugmentsTag["class"], comment: string | NodeArray<JSDocComment> | undefined): JSDocAugmentsTag; 3951 createJSDocImplementsTag(tagName: Identifier | undefined, className: JSDocImplementsTag["class"], comment?: string | NodeArray<JSDocComment>): JSDocImplementsTag; 3952 updateJSDocImplementsTag(node: JSDocImplementsTag, tagName: Identifier | undefined, className: JSDocImplementsTag["class"], comment: string | NodeArray<JSDocComment> | undefined): JSDocImplementsTag; 3953 createJSDocAuthorTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocAuthorTag; 3954 updateJSDocAuthorTag(node: JSDocAuthorTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocAuthorTag; 3955 createJSDocClassTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocClassTag; 3956 updateJSDocClassTag(node: JSDocClassTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocClassTag; 3957 createJSDocPublicTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocPublicTag; 3958 updateJSDocPublicTag(node: JSDocPublicTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocPublicTag; 3959 createJSDocPrivateTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocPrivateTag; 3960 updateJSDocPrivateTag(node: JSDocPrivateTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocPrivateTag; 3961 createJSDocProtectedTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocProtectedTag; 3962 updateJSDocProtectedTag(node: JSDocProtectedTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocProtectedTag; 3963 createJSDocReadonlyTag(tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment>): JSDocReadonlyTag; 3964 updateJSDocReadonlyTag(node: JSDocReadonlyTag, tagName: Identifier | undefined, comment: string | NodeArray<JSDocComment> | undefined): JSDocReadonlyTag; 3965 createJSDocUnknownTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocUnknownTag; 3966 updateJSDocUnknownTag(node: JSDocUnknownTag, tagName: Identifier, comment: string | NodeArray<JSDocComment> | undefined): JSDocUnknownTag; 3967 createJSDocDeprecatedTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocDeprecatedTag; 3968 updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocDeprecatedTag; 3969 createJSDocOverrideTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag; 3970 updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag; 3971 createJSDocText(text: string): JSDocText; 3972 updateJSDocText(node: JSDocText, text: string): JSDocText; 3973 createJSDocComment(comment?: string | NodeArray<JSDocComment> | undefined, tags?: readonly JSDocTag[] | undefined): JSDoc; 3974 updateJSDocComment(node: JSDoc, comment: string | NodeArray<JSDocComment> | undefined, tags: readonly JSDocTag[] | undefined): JSDoc; 3975 createJsxElement(openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement; 3976 updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement; 3977 createJsxSelfClosingElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement; 3978 updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement; 3979 createJsxOpeningElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement; 3980 updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement; 3981 createJsxClosingElement(tagName: JsxTagNameExpression): JsxClosingElement; 3982 updateJsxClosingElement(node: JsxClosingElement, tagName: JsxTagNameExpression): JsxClosingElement; 3983 createJsxFragment(openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; 3984 createJsxText(text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText; 3985 updateJsxText(node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText; 3986 createJsxOpeningFragment(): JsxOpeningFragment; 3987 createJsxJsxClosingFragment(): JsxClosingFragment; 3988 updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; 3989 createJsxAttribute(name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; 3990 updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; 3991 createJsxAttributes(properties: readonly JsxAttributeLike[]): JsxAttributes; 3992 updateJsxAttributes(node: JsxAttributes, properties: readonly JsxAttributeLike[]): JsxAttributes; 3993 createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute; 3994 updateJsxSpreadAttribute(node: JsxSpreadAttribute, expression: Expression): JsxSpreadAttribute; 3995 createJsxExpression(dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined): JsxExpression; 3996 updateJsxExpression(node: JsxExpression, expression: Expression | undefined): JsxExpression; 3997 createCaseClause(expression: Expression, statements: readonly Statement[]): CaseClause; 3998 updateCaseClause(node: CaseClause, expression: Expression, statements: readonly Statement[]): CaseClause; 3999 createDefaultClause(statements: readonly Statement[]): DefaultClause; 4000 updateDefaultClause(node: DefaultClause, statements: readonly Statement[]): DefaultClause; 4001 createHeritageClause(token: HeritageClause["token"], types: readonly ExpressionWithTypeArguments[]): HeritageClause; 4002 updateHeritageClause(node: HeritageClause, types: readonly ExpressionWithTypeArguments[]): HeritageClause; 4003 createCatchClause(variableDeclaration: string | BindingName | VariableDeclaration | undefined, block: Block): CatchClause; 4004 updateCatchClause(node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block): CatchClause; 4005 createPropertyAssignment(name: string | PropertyName, initializer: Expression): PropertyAssignment; 4006 updatePropertyAssignment(node: PropertyAssignment, name: PropertyName, initializer: Expression): PropertyAssignment; 4007 createShorthandPropertyAssignment(name: string | Identifier, objectAssignmentInitializer?: Expression): ShorthandPropertyAssignment; 4008 updateShorthandPropertyAssignment(node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression | undefined): ShorthandPropertyAssignment; 4009 createSpreadAssignment(expression: Expression): SpreadAssignment; 4010 updateSpreadAssignment(node: SpreadAssignment, expression: Expression): SpreadAssignment; 4011 createEnumMember(name: string | PropertyName, initializer?: Expression): EnumMember; 4012 updateEnumMember(node: EnumMember, name: PropertyName, initializer: Expression | undefined): EnumMember; 4013 createSourceFile(statements: readonly Statement[], endOfFileToken: EndOfFileToken, flags: NodeFlags): SourceFile; 4014 updateSourceFile(node: SourceFile, statements: readonly Statement[], isDeclarationFile?: boolean, referencedFiles?: readonly FileReference[], typeReferences?: readonly FileReference[], hasNoDefaultLib?: boolean, libReferences?: readonly FileReference[]): SourceFile; 4015 createNotEmittedStatement(original: Node): NotEmittedStatement; 4016 createPartiallyEmittedExpression(expression: Expression, original?: Node): PartiallyEmittedExpression; 4017 updatePartiallyEmittedExpression(node: PartiallyEmittedExpression, expression: Expression): PartiallyEmittedExpression; 4018 createCommaListExpression(elements: readonly Expression[]): CommaListExpression; 4019 updateCommaListExpression(node: CommaListExpression, elements: readonly Expression[]): CommaListExpression; 4020 createBundle(sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[]): Bundle; 4021 updateBundle(node: Bundle, sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[]): Bundle; 4022 createComma(left: Expression, right: Expression): BinaryExpression; 4023 createAssignment(left: ObjectLiteralExpression | ArrayLiteralExpression, right: Expression): DestructuringAssignment; 4024 createAssignment(left: Expression, right: Expression): AssignmentExpression<EqualsToken>; 4025 createLogicalOr(left: Expression, right: Expression): BinaryExpression; 4026 createLogicalAnd(left: Expression, right: Expression): BinaryExpression; 4027 createBitwiseOr(left: Expression, right: Expression): BinaryExpression; 4028 createBitwiseXor(left: Expression, right: Expression): BinaryExpression; 4029 createBitwiseAnd(left: Expression, right: Expression): BinaryExpression; 4030 createStrictEquality(left: Expression, right: Expression): BinaryExpression; 4031 createStrictInequality(left: Expression, right: Expression): BinaryExpression; 4032 createEquality(left: Expression, right: Expression): BinaryExpression; 4033 createInequality(left: Expression, right: Expression): BinaryExpression; 4034 createLessThan(left: Expression, right: Expression): BinaryExpression; 4035 createLessThanEquals(left: Expression, right: Expression): BinaryExpression; 4036 createGreaterThan(left: Expression, right: Expression): BinaryExpression; 4037 createGreaterThanEquals(left: Expression, right: Expression): BinaryExpression; 4038 createLeftShift(left: Expression, right: Expression): BinaryExpression; 4039 createRightShift(left: Expression, right: Expression): BinaryExpression; 4040 createUnsignedRightShift(left: Expression, right: Expression): BinaryExpression; 4041 createAdd(left: Expression, right: Expression): BinaryExpression; 4042 createSubtract(left: Expression, right: Expression): BinaryExpression; 4043 createMultiply(left: Expression, right: Expression): BinaryExpression; 4044 createDivide(left: Expression, right: Expression): BinaryExpression; 4045 createModulo(left: Expression, right: Expression): BinaryExpression; 4046 createExponent(left: Expression, right: Expression): BinaryExpression; 4047 createPrefixPlus(operand: Expression): PrefixUnaryExpression; 4048 createPrefixMinus(operand: Expression): PrefixUnaryExpression; 4049 createPrefixIncrement(operand: Expression): PrefixUnaryExpression; 4050 createPrefixDecrement(operand: Expression): PrefixUnaryExpression; 4051 createBitwiseNot(operand: Expression): PrefixUnaryExpression; 4052 createLogicalNot(operand: Expression): PrefixUnaryExpression; 4053 createPostfixIncrement(operand: Expression): PostfixUnaryExpression; 4054 createPostfixDecrement(operand: Expression): PostfixUnaryExpression; 4055 createImmediatelyInvokedFunctionExpression(statements: readonly Statement[]): CallExpression; 4056 createImmediatelyInvokedFunctionExpression(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 4057 createImmediatelyInvokedArrowFunction(statements: readonly Statement[]): CallExpression; 4058 createImmediatelyInvokedArrowFunction(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 4059 createVoidZero(): VoidExpression; 4060 createExportDefault(expression: Expression): ExportAssignment; 4061 createExternalModuleExport(exportName: Identifier): ExportDeclaration; 4062 restoreOuterExpressions(outerExpression: Expression | undefined, innerExpression: Expression, kinds?: OuterExpressionKinds): Expression; 4063 } 4064 export interface CoreTransformationContext { 4065 readonly factory: NodeFactory; 4066 /** Gets the compiler options supplied to the transformer. */ 4067 getCompilerOptions(): CompilerOptions; 4068 /** Starts a new lexical environment. */ 4069 startLexicalEnvironment(): void; 4070 /** Suspends the current lexical environment, usually after visiting a parameter list. */ 4071 suspendLexicalEnvironment(): void; 4072 /** Resumes a suspended lexical environment, usually before visiting a function body. */ 4073 resumeLexicalEnvironment(): void; 4074 /** Ends a lexical environment, returning any declarations. */ 4075 endLexicalEnvironment(): Statement[] | undefined; 4076 /** Hoists a function declaration to the containing scope. */ 4077 hoistFunctionDeclaration(node: FunctionDeclaration): void; 4078 /** Hoists a variable declaration to the containing scope. */ 4079 hoistVariableDeclaration(node: Identifier): void; 4080 } 4081 export interface TransformationContext extends CoreTransformationContext { 4082 /** Records a request for a non-scoped emit helper in the current context. */ 4083 requestEmitHelper(helper: EmitHelper): void; 4084 /** Gets and resets the requested non-scoped emit helpers. */ 4085 readEmitHelpers(): EmitHelper[] | undefined; 4086 /** Enables expression substitutions in the pretty printer for the provided SyntaxKind. */ 4087 enableSubstitution(kind: SyntaxKind): void; 4088 /** Determines whether expression substitutions are enabled for the provided node. */ 4089 isSubstitutionEnabled(node: Node): boolean; 4090 /** 4091 * Hook used by transformers to substitute expressions just before they 4092 * are emitted by the pretty printer. 4093 * 4094 * NOTE: Transformation hooks should only be modified during `Transformer` initialization, 4095 * before returning the `NodeTransformer` callback. 4096 */ 4097 onSubstituteNode: (hint: EmitHint, node: Node) => Node; 4098 /** 4099 * Enables before/after emit notifications in the pretty printer for the provided 4100 * SyntaxKind. 4101 */ 4102 enableEmitNotification(kind: SyntaxKind): void; 4103 /** 4104 * Determines whether before/after emit notifications should be raised in the pretty 4105 * printer when it emits a node. 4106 */ 4107 isEmitNotificationEnabled(node: Node): boolean; 4108 /** 4109 * Hook used to allow transformers to capture state before or after 4110 * the printer emits a node. 4111 * 4112 * NOTE: Transformation hooks should only be modified during `Transformer` initialization, 4113 * before returning the `NodeTransformer` callback. 4114 */ 4115 onEmitNode: (hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void) => void; 4116 /** Determines whether the lexical environment is suspended */ 4117 isLexicalEnvironmentSuspended?(): boolean; 4118 } 4119 export interface TransformationResult<T extends Node> { 4120 /** Gets the transformed source files. */ 4121 transformed: T[]; 4122 /** Gets diagnostics for the transformation. */ 4123 diagnostics?: DiagnosticWithLocation[]; 4124 /** 4125 * Gets a substitute for a node, if one is available; otherwise, returns the original node. 4126 * 4127 * @param hint A hint as to the intended usage of the node. 4128 * @param node The node to substitute. 4129 */ 4130 substituteNode(hint: EmitHint, node: Node): Node; 4131 /** 4132 * Emits a node with possible notification. 4133 * 4134 * @param hint A hint as to the intended usage of the node. 4135 * @param node The node to emit. 4136 * @param emitCallback A callback used to emit the node. 4137 */ 4138 emitNodeWithNotification(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void; 4139 /** 4140 * Indicates if a given node needs an emit notification 4141 * 4142 * @param node The node to emit. 4143 */ 4144 isEmitNotificationEnabled?(node: Node): boolean; 4145 /** 4146 * Clean up EmitNode entries on any parse-tree nodes. 4147 */ 4148 dispose(): void; 4149 } 4150 /** 4151 * A function that is used to initialize and return a `Transformer` callback, which in turn 4152 * will be used to transform one or more nodes. 4153 */ 4154 export type TransformerFactory<T extends Node> = (context: TransformationContext) => Transformer<T>; 4155 /** 4156 * A function that transforms a node. 4157 */ 4158 export type Transformer<T extends Node> = (node: T) => T; 4159 /** 4160 * A function that accepts and possibly transforms a node. 4161 */ 4162 export type Visitor = (node: Node) => VisitResult<Node>; 4163 export interface NodeVisitor { 4164 <T extends Node>(nodes: T, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T; 4165 <T extends Node>(nodes: T | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T | undefined; 4166 } 4167 export interface NodesVisitor { 4168 <T extends Node>(nodes: NodeArray<T>, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T>; 4169 <T extends Node>(nodes: NodeArray<T> | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T> | undefined; 4170 } 4171 export type VisitResult<T extends Node> = T | readonly T[] | undefined; 4172 export interface Printer { 4173 /** 4174 * Print a node and its subtree as-is, without any emit transformations. 4175 * @param hint A value indicating the purpose of a node. This is primarily used to 4176 * distinguish between an `Identifier` used in an expression position, versus an 4177 * `Identifier` used as an `IdentifierName` as part of a declaration. For most nodes you 4178 * should just pass `Unspecified`. 4179 * @param node The node to print. The node and its subtree are printed as-is, without any 4180 * emit transformations. 4181 * @param sourceFile A source file that provides context for the node. The source text of 4182 * the file is used to emit the original source content for literals and identifiers, while 4183 * the identifiers of the source file are used when generating unique names to avoid 4184 * collisions. 4185 */ 4186 printNode(hint: EmitHint, node: Node, sourceFile: SourceFile): string; 4187 /** 4188 * Prints a list of nodes using the given format flags 4189 */ 4190 printList<T extends Node>(format: ListFormat, list: NodeArray<T>, sourceFile: SourceFile): string; 4191 /** 4192 * Prints a source file as-is, without any emit transformations. 4193 */ 4194 printFile(sourceFile: SourceFile): string; 4195 /** 4196 * Prints a bundle of source files as-is, without any emit transformations. 4197 */ 4198 printBundle(bundle: Bundle): string; 4199 writeFile(sourceFile: SourceFile, writer: EmitTextWriter, sourceMapGenerator: SourceMapGenerator | undefined): void; 4200 } 4201 export interface PrintHandlers { 4202 /** 4203 * A hook used by the Printer when generating unique names to avoid collisions with 4204 * globally defined names that exist outside of the current source file. 4205 */ 4206 hasGlobalName?(name: string): boolean; 4207 /** 4208 * A hook used by the Printer to provide notifications prior to emitting a node. A 4209 * compatible implementation **must** invoke `emitCallback` with the provided `hint` and 4210 * `node` values. 4211 * @param hint A hint indicating the intended purpose of the node. 4212 * @param node The node to emit. 4213 * @param emitCallback A callback that, when invoked, will emit the node. 4214 * @example 4215 * ```ts 4216 * var printer = createPrinter(printerOptions, { 4217 * onEmitNode(hint, node, emitCallback) { 4218 * // set up or track state prior to emitting the node... 4219 * emitCallback(hint, node); 4220 * // restore state after emitting the node... 4221 * } 4222 * }); 4223 * ``` 4224 */ 4225 onEmitNode?(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void; 4226 /** 4227 * A hook used to check if an emit notification is required for a node. 4228 * @param node The node to emit. 4229 */ 4230 isEmitNotificationEnabled?(node: Node): boolean; 4231 /** 4232 * A hook used by the Printer to perform just-in-time substitution of a node. This is 4233 * primarily used by node transformations that need to substitute one node for another, 4234 * such as replacing `myExportedVar` with `exports.myExportedVar`. 4235 * @param hint A hint indicating the intended purpose of the node. 4236 * @param node The node to emit. 4237 * @example 4238 * ```ts 4239 * var printer = createPrinter(printerOptions, { 4240 * substituteNode(hint, node) { 4241 * // perform substitution if necessary... 4242 * return node; 4243 * } 4244 * }); 4245 * ``` 4246 */ 4247 substituteNode?(hint: EmitHint, node: Node): Node; 4248 } 4249 export interface PrinterOptions { 4250 removeComments?: boolean; 4251 newLine?: NewLineKind; 4252 omitTrailingSemicolon?: boolean; 4253 noEmitHelpers?: boolean; 4254 sourceMap?: boolean; 4255 inlineSourceMap?: boolean; 4256 inlineSources?: boolean; 4257 } 4258 export interface RawSourceMap { 4259 version: 3; 4260 file: string; 4261 sourceRoot?: string | null; 4262 sources: string[]; 4263 sourcesContent?: (string | null)[] | null; 4264 mappings: string; 4265 names?: string[] | null; 4266 } 4267 /** 4268 * Generates a source map. 4269 */ 4270 export interface SourceMapGenerator { 4271 getSources(): readonly string[]; 4272 /** 4273 * Adds a source to the source map. 4274 */ 4275 addSource(fileName: string): number; 4276 /** 4277 * Set the content for a source. 4278 */ 4279 setSourceContent(sourceIndex: number, content: string | null): void; 4280 /** 4281 * Adds a name. 4282 */ 4283 addName(name: string): number; 4284 /** 4285 * Adds a mapping without source information. 4286 */ 4287 addMapping(generatedLine: number, generatedCharacter: number): void; 4288 /** 4289 * Adds a mapping with source information. 4290 */ 4291 addMapping(generatedLine: number, generatedCharacter: number, sourceIndex: number, sourceLine: number, sourceCharacter: number, nameIndex?: number): void; 4292 /** 4293 * Appends a source map. 4294 */ 4295 appendSourceMap(generatedLine: number, generatedCharacter: number, sourceMap: RawSourceMap, sourceMapPath: string, start?: LineAndCharacter, end?: LineAndCharacter): void; 4296 /** 4297 * Gets the source map as a `RawSourceMap` object. 4298 */ 4299 toJSON(): RawSourceMap; 4300 /** 4301 * Gets the string representation of the source map. 4302 */ 4303 toString(): string; 4304 } 4305 export interface EmitTextWriter extends SymbolWriter { 4306 write(s: string): void; 4307 writeTrailingSemicolon(text: string): void; 4308 writeComment(text: string): void; 4309 getText(): string; 4310 rawWrite(s: string): void; 4311 writeLiteral(s: string): void; 4312 getTextPos(): number; 4313 getLine(): number; 4314 getColumn(): number; 4315 getIndent(): number; 4316 isAtStartOfLine(): boolean; 4317 hasTrailingComment(): boolean; 4318 hasTrailingWhitespace(): boolean; 4319 getTextPosWithWriteLine?(): number; 4320 nonEscapingWrite?(text: string): void; 4321 } 4322 export interface GetEffectiveTypeRootsHost { 4323 directoryExists?(directoryName: string): boolean; 4324 getCurrentDirectory?(): string; 4325 } 4326 export interface ModuleSpecifierResolutionHost { 4327 useCaseSensitiveFileNames?(): boolean; 4328 fileExists(path: string): boolean; 4329 getCurrentDirectory(): string; 4330 directoryExists?(path: string): boolean; 4331 readFile?(path: string): string | undefined; 4332 realpath?(path: string): string; 4333 getModuleSpecifierCache?(): ModuleSpecifierCache; 4334 getPackageJsonInfoCache?(): PackageJsonInfoCache | undefined; 4335 getGlobalTypingsCacheLocation?(): string | undefined; 4336 getNearestAncestorDirectoryWithPackageJson?(fileName: string, rootDir?: string): string | undefined; 4337 readonly redirectTargetsMap: RedirectTargetsMap; 4338 getProjectReferenceRedirect(fileName: string): string | undefined; 4339 isSourceOfProjectReferenceRedirect(fileName: string): boolean; 4340 } 4341 export interface ModulePath { 4342 path: string; 4343 isInNodeModules: boolean; 4344 isRedirect: boolean; 4345 } 4346 export interface ResolvedModuleSpecifierInfo { 4347 modulePaths: readonly ModulePath[] | undefined; 4348 moduleSpecifiers: readonly string[] | undefined; 4349 isBlockedByPackageJsonDependencies: boolean | undefined; 4350 } 4351 export interface ModuleSpecifierOptions { 4352 overrideImportMode?: SourceFile["impliedNodeFormat"]; 4353 } 4354 export interface ModuleSpecifierCache { 4355 get(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions): Readonly<ResolvedModuleSpecifierInfo> | undefined; 4356 set(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, modulePaths: readonly ModulePath[], moduleSpecifiers: readonly string[]): void; 4357 setBlockedByPackageJsonDependencies(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, isBlockedByPackageJsonDependencies: boolean): void; 4358 setModulePaths(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, modulePaths: readonly ModulePath[]): void; 4359 clear(): void; 4360 count(): number; 4361 } 4362 export interface SymbolTracker { 4363 trackSymbol?(symbol: Symbol, enclosingDeclaration: Node | undefined, meaning: SymbolFlags): boolean; 4364 reportInaccessibleThisError?(): void; 4365 reportPrivateInBaseOfClassExpression?(propertyName: string): void; 4366 reportInaccessibleUniqueSymbolError?(): void; 4367 reportCyclicStructureError?(): void; 4368 reportLikelyUnsafeImportRequiredError?(specifier: string): void; 4369 reportTruncationError?(): void; 4370 moduleResolverHost?: ModuleSpecifierResolutionHost & { 4371 getCommonSourceDirectory(): string; 4372 }; 4373 trackReferencedAmbientModule?(decl: ModuleDeclaration, symbol: Symbol): void; 4374 trackExternalModuleSymbolOfImportTypeNode?(symbol: Symbol): void; 4375 reportNonlocalAugmentation?(containingFile: SourceFile, parentSymbol: Symbol, augmentingSymbol: Symbol): void; 4376 reportNonSerializableProperty?(propertyName: string): void; 4377 reportImportTypeNodeResolutionModeOverride?(): void; 4378 } 4379 export interface TextSpan { 4380 start: number; 4381 length: number; 4382 } 4383 export interface TextChangeRange { 4384 span: TextSpan; 4385 newLength: number; 4386 } 4387 export interface SyntaxList extends Node { 4388 kind: SyntaxKind.SyntaxList; 4389 _children: Node[]; 4390 } 4391 export enum ListFormat { 4392 None = 0, 4393 SingleLine = 0, 4394 MultiLine = 1, 4395 PreserveLines = 2, 4396 LinesMask = 3, 4397 NotDelimited = 0, 4398 BarDelimited = 4, 4399 AmpersandDelimited = 8, 4400 CommaDelimited = 16, 4401 AsteriskDelimited = 32, 4402 DelimitersMask = 60, 4403 AllowTrailingComma = 64, 4404 Indented = 128, 4405 SpaceBetweenBraces = 256, 4406 SpaceBetweenSiblings = 512, 4407 Braces = 1024, 4408 Parenthesis = 2048, 4409 AngleBrackets = 4096, 4410 SquareBrackets = 8192, 4411 BracketsMask = 15360, 4412 OptionalIfUndefined = 16384, 4413 OptionalIfEmpty = 32768, 4414 Optional = 49152, 4415 PreferNewLine = 65536, 4416 NoTrailingNewLine = 131072, 4417 NoInterveningComments = 262144, 4418 NoSpaceIfEmpty = 524288, 4419 SingleElement = 1048576, 4420 SpaceAfterList = 2097152, 4421 Modifiers = 2359808, 4422 HeritageClauses = 512, 4423 SingleLineTypeLiteralMembers = 768, 4424 MultiLineTypeLiteralMembers = 32897, 4425 SingleLineTupleTypeElements = 528, 4426 MultiLineTupleTypeElements = 657, 4427 UnionTypeConstituents = 516, 4428 IntersectionTypeConstituents = 520, 4429 ObjectBindingPatternElements = 525136, 4430 ArrayBindingPatternElements = 524880, 4431 ObjectLiteralExpressionProperties = 526226, 4432 ImportClauseEntries = 526226, 4433 ArrayLiteralExpressionElements = 8914, 4434 CommaListElements = 528, 4435 CallExpressionArguments = 2576, 4436 NewExpressionArguments = 18960, 4437 TemplateExpressionSpans = 262144, 4438 SingleLineBlockStatements = 768, 4439 MultiLineBlockStatements = 129, 4440 VariableDeclarationList = 528, 4441 SingleLineFunctionBodyStatements = 768, 4442 MultiLineFunctionBodyStatements = 1, 4443 ClassHeritageClauses = 0, 4444 ClassMembers = 129, 4445 InterfaceMembers = 129, 4446 EnumMembers = 145, 4447 CaseBlockClauses = 129, 4448 NamedImportsOrExportsElements = 525136, 4449 JsxElementOrFragmentChildren = 262144, 4450 JsxElementAttributes = 262656, 4451 CaseOrDefaultClauseStatements = 163969, 4452 HeritageClauseTypes = 528, 4453 SourceFileStatements = 131073, 4454 Decorators = 2146305, 4455 TypeArguments = 53776, 4456 TypeParameters = 53776, 4457 Parameters = 2576, 4458 IndexSignatureParameters = 8848, 4459 JSDocComment = 33 4460 } 4461 export interface UserPreferences { 4462 readonly disableSuggestions?: boolean; 4463 readonly quotePreference?: "auto" | "double" | "single"; 4464 readonly includeCompletionsForModuleExports?: boolean; 4465 readonly includeCompletionsForImportStatements?: boolean; 4466 readonly includeCompletionsWithSnippetText?: boolean; 4467 readonly includeAutomaticOptionalChainCompletions?: boolean; 4468 readonly includeCompletionsWithInsertText?: boolean; 4469 readonly includeCompletionsWithClassMemberSnippets?: boolean; 4470 readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; 4471 readonly useLabelDetailsInCompletionEntries?: boolean; 4472 readonly allowIncompleteCompletions?: boolean; 4473 readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; 4474 /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ 4475 readonly importModuleSpecifierEnding?: "auto" | "minimal" | "index" | "js"; 4476 readonly allowTextChangesInNewFiles?: boolean; 4477 readonly providePrefixAndSuffixTextForRename?: boolean; 4478 readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; 4479 readonly provideRefactorNotApplicableReason?: boolean; 4480 readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; 4481 readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; 4482 readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; 4483 readonly includeInlayFunctionParameterTypeHints?: boolean; 4484 readonly includeInlayVariableTypeHints?: boolean; 4485 readonly includeInlayVariableTypeHintsWhenTypeMatchesName?: boolean; 4486 readonly includeInlayPropertyDeclarationTypeHints?: boolean; 4487 readonly includeInlayFunctionLikeReturnTypeHints?: boolean; 4488 readonly includeInlayEnumMemberValueHints?: boolean; 4489 readonly allowRenameOfImportPath?: boolean; 4490 readonly autoImportFileExcludePatterns?: string[]; 4491 } 4492 /** Represents a bigint literal value without requiring bigint support */ 4493 export interface PseudoBigInt { 4494 negative: boolean; 4495 base10Value: string; 4496 } 4497 export {}; 4498} 4499declare function setTimeout(handler: (...args: any[]) => void, timeout: number): any; 4500declare function clearTimeout(handle: any): void; 4501declare namespace ts { 4502 export enum FileWatcherEventKind { 4503 Created = 0, 4504 Changed = 1, 4505 Deleted = 2 4506 } 4507 export type FileWatcherCallback = (fileName: string, eventKind: FileWatcherEventKind, modifiedTime?: Date) => void; 4508 export type DirectoryWatcherCallback = (fileName: string) => void; 4509 export interface System { 4510 args: string[]; 4511 newLine: string; 4512 useCaseSensitiveFileNames: boolean; 4513 write(s: string): void; 4514 writeOutputIsTTY?(): boolean; 4515 getWidthOfTerminal?(): number; 4516 readFile(path: string, encoding?: string): string | undefined; 4517 getFileSize?(path: string): number; 4518 writeFile(path: string, data: string, writeByteOrderMark?: boolean): void; 4519 /** 4520 * @pollingInterval - this parameter is used in polling-based watchers and ignored in watchers that 4521 * use native OS file watching 4522 */ 4523 watchFile?(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher; 4524 watchDirectory?(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher; 4525 resolvePath(path: string): string; 4526 fileExists(path: string): boolean; 4527 directoryExists(path: string): boolean; 4528 createDirectory(path: string): void; 4529 getExecutingFilePath(): string; 4530 getCurrentDirectory(): string; 4531 getDirectories(path: string): string[]; 4532 readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 4533 getModifiedTime?(path: string): Date | undefined; 4534 setModifiedTime?(path: string, time: Date): void; 4535 deleteFile?(path: string): void; 4536 /** 4537 * A good implementation is node.js' `crypto.createHash`. (https://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm) 4538 */ 4539 createHash?(data: string): string; 4540 /** This must be cryptographically secure. Only implement this method using `crypto.createHash("sha256")`. */ 4541 createSHA256Hash?(data: string): string; 4542 getMemoryUsage?(): number; 4543 exit(exitCode?: number): void; 4544 realpath?(path: string): string; 4545 setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; 4546 clearTimeout?(timeoutId: any): void; 4547 clearScreen?(): void; 4548 base64decode?(input: string): string; 4549 base64encode?(input: string): string; 4550 } 4551 export interface FileWatcher { 4552 close(): void; 4553 } 4554 export function getNodeMajorVersion(): number | undefined; 4555 export let sys: System; 4556 export {}; 4557} 4558declare namespace ts { 4559 type ErrorCallback = (message: DiagnosticMessage, length: number) => void; 4560 interface Scanner { 4561 getStartPos(): number; 4562 getToken(): SyntaxKind; 4563 getTextPos(): number; 4564 getTokenPos(): number; 4565 getTokenText(): string; 4566 getTokenValue(): string; 4567 hasUnicodeEscape(): boolean; 4568 hasExtendedUnicodeEscape(): boolean; 4569 hasPrecedingLineBreak(): boolean; 4570 isIdentifier(): boolean; 4571 isReservedWord(): boolean; 4572 isUnterminated(): boolean; 4573 reScanGreaterToken(): SyntaxKind; 4574 reScanSlashToken(): SyntaxKind; 4575 reScanAsteriskEqualsToken(): SyntaxKind; 4576 reScanTemplateToken(isTaggedTemplate: boolean): SyntaxKind; 4577 reScanTemplateHeadOrNoSubstitutionTemplate(): SyntaxKind; 4578 scanJsxIdentifier(): SyntaxKind; 4579 scanJsxAttributeValue(): SyntaxKind; 4580 reScanJsxAttributeValue(): SyntaxKind; 4581 reScanJsxToken(allowMultilineJsxText?: boolean): JsxTokenSyntaxKind; 4582 reScanLessThanToken(): SyntaxKind; 4583 reScanHashToken(): SyntaxKind; 4584 reScanQuestionToken(): SyntaxKind; 4585 reScanInvalidIdentifier(): SyntaxKind; 4586 scanJsxToken(): JsxTokenSyntaxKind; 4587 scanJsDocToken(): JSDocSyntaxKind; 4588 scan(): SyntaxKind; 4589 getText(): string; 4590 setText(text: string | undefined, start?: number, length?: number): void; 4591 setOnError(onError: ErrorCallback | undefined): void; 4592 setScriptTarget(scriptTarget: ScriptTarget): void; 4593 setLanguageVariant(variant: LanguageVariant): void; 4594 setTextPos(textPos: number): void; 4595 lookAhead<T>(callback: () => T): T; 4596 scanRange<T>(start: number, length: number, callback: () => T): T; 4597 tryScan<T>(callback: () => T): T; 4598 setEtsContext(isEtsContext: boolean): void; 4599 } 4600 function tokenToString(t: SyntaxKind): string | undefined; 4601 function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number): number; 4602 function getLineAndCharacterOfPosition(sourceFile: SourceFileLike, position: number): LineAndCharacter; 4603 function isWhiteSpaceLike(ch: number): boolean; 4604 /** Does not include line breaks. For that, see isWhiteSpaceLike. */ 4605 function isWhiteSpaceSingleLine(ch: number): boolean; 4606 function isLineBreak(ch: number): boolean; 4607 function couldStartTrivia(text: string, pos: number): boolean; 4608 function forEachLeadingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; 4609 function forEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; 4610 function forEachTrailingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; 4611 function forEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; 4612 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; 4613 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; 4614 function getLeadingCommentRanges(text: string, pos: number): CommentRange[] | undefined; 4615 function getTrailingCommentRanges(text: string, pos: number): CommentRange[] | undefined; 4616 /** Optionally, get the shebang */ 4617 function getShebang(text: string): string | undefined; 4618 function isIdentifierStart(ch: number, languageVersion: ScriptTarget | undefined): boolean; 4619 function isIdentifierPart(ch: number, languageVersion: ScriptTarget | undefined, identifierVariant?: LanguageVariant): boolean; 4620 function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, languageVariant?: LanguageVariant, textInitial?: string, onError?: ErrorCallback, start?: number, length?: number): Scanner; 4621} 4622declare namespace ts { 4623 function isExternalModuleNameRelative(moduleName: string): boolean; 4624 function sortAndDeduplicateDiagnostics<T extends Diagnostic>(diagnostics: readonly T[]): SortedReadonlyArray<T>; 4625 function getDefaultLibFileName(options: CompilerOptions): string; 4626 function textSpanEnd(span: TextSpan): number; 4627 function textSpanIsEmpty(span: TextSpan): boolean; 4628 function textSpanContainsPosition(span: TextSpan, position: number): boolean; 4629 function textSpanContainsTextSpan(span: TextSpan, other: TextSpan): boolean; 4630 function textSpanOverlapsWith(span: TextSpan, other: TextSpan): boolean; 4631 function textSpanOverlap(span1: TextSpan, span2: TextSpan): TextSpan | undefined; 4632 function textSpanIntersectsWithTextSpan(span: TextSpan, other: TextSpan): boolean; 4633 function textSpanIntersectsWith(span: TextSpan, start: number, length: number): boolean; 4634 function decodedTextSpanIntersectsWith(start1: number, length1: number, start2: number, length2: number): boolean; 4635 function textSpanIntersectsWithPosition(span: TextSpan, position: number): boolean; 4636 function textSpanIntersection(span1: TextSpan, span2: TextSpan): TextSpan | undefined; 4637 function createTextSpan(start: number, length: number): TextSpan; 4638 function createTextSpanFromBounds(start: number, end: number): TextSpan; 4639 function textChangeRangeNewSpan(range: TextChangeRange): TextSpan; 4640 function textChangeRangeIsUnchanged(range: TextChangeRange): boolean; 4641 function createTextChangeRange(span: TextSpan, newLength: number): TextChangeRange; 4642 let unchangedTextChangeRange: TextChangeRange; 4643 /** 4644 * Called to merge all the changes that occurred across several versions of a script snapshot 4645 * into a single change. i.e. if a user keeps making successive edits to a script we will 4646 * have a text change from V1 to V2, V2 to V3, ..., Vn. 4647 * 4648 * This function will then merge those changes into a single change range valid between V1 and 4649 * Vn. 4650 */ 4651 function collapseTextChangeRangesAcrossMultipleVersions(changes: readonly TextChangeRange[]): TextChangeRange; 4652 function getTypeParameterOwner(d: Declaration): Declaration | undefined; 4653 type ParameterPropertyDeclaration = ParameterDeclaration & { 4654 parent: ConstructorDeclaration; 4655 name: Identifier; 4656 }; 4657 function isParameterPropertyDeclaration(node: Node, parent: Node): node is ParameterPropertyDeclaration; 4658 function isEmptyBindingPattern(node: BindingName): node is BindingPattern; 4659 function isEmptyBindingElement(node: BindingElement): boolean; 4660 function walkUpBindingElementsAndPatterns(binding: BindingElement): VariableDeclaration | ParameterDeclaration; 4661 function getCombinedModifierFlags(node: Declaration): ModifierFlags; 4662 function getCombinedNodeFlags(node: Node): NodeFlags; 4663 /** 4664 * Checks to see if the locale is in the appropriate format, 4665 * and if it is, attempts to set the appropriate language. 4666 */ 4667 function validateLocaleAndSetLanguage(locale: string, sys: { 4668 getExecutingFilePath(): string; 4669 resolvePath(path: string): string; 4670 fileExists(fileName: string): boolean; 4671 readFile(fileName: string): string | undefined; 4672 }, errors?: Push<Diagnostic>): void; 4673 function getOriginalNode(node: Node): Node; 4674 function getOriginalNode<T extends Node>(node: Node, nodeTest: (node: Node) => node is T): T; 4675 function getOriginalNode(node: Node | undefined): Node | undefined; 4676 function getOriginalNode<T extends Node>(node: Node | undefined, nodeTest: (node: Node | undefined) => node is T): T | undefined; 4677 /** 4678 * Iterates through the parent chain of a node and performs the callback on each parent until the callback 4679 * returns a truthy value, then returns that value. 4680 * If no such value is found, it applies the callback until the parent pointer is undefined or the callback returns "quit" 4681 * At that point findAncestor returns undefined. 4682 */ 4683 function findAncestor<T extends Node>(node: Node | undefined, callback: (element: Node) => element is T): T | undefined; 4684 function findAncestor(node: Node | undefined, callback: (element: Node) => boolean | "quit"): Node | undefined; 4685 /** 4686 * Gets a value indicating whether a node originated in the parse tree. 4687 * 4688 * @param node The node to test. 4689 */ 4690 function isParseTreeNode(node: Node): boolean; 4691 /** 4692 * Gets the original parse tree node for a node. 4693 * 4694 * @param node The original node. 4695 * @returns The original parse tree node if found; otherwise, undefined. 4696 */ 4697 function getParseTreeNode(node: Node | undefined): Node | undefined; 4698 /** 4699 * Gets the original parse tree node for a node. 4700 * 4701 * @param node The original node. 4702 * @param nodeTest A callback used to ensure the correct type of parse tree node is returned. 4703 * @returns The original parse tree node if found; otherwise, undefined. 4704 */ 4705 function getParseTreeNode<T extends Node>(node: T | undefined, nodeTest?: (node: Node) => node is T): T | undefined; 4706 /** Add an extra underscore to identifiers that start with two underscores to avoid issues with magic names like '__proto__' */ 4707 function escapeLeadingUnderscores(identifier: string): __String; 4708 /** 4709 * Remove extra underscore from escaped identifier text content. 4710 * 4711 * @param identifier The escaped identifier text. 4712 * @returns The unescaped identifier text. 4713 */ 4714 function unescapeLeadingUnderscores(identifier: __String): string; 4715 function idText(identifierOrPrivateName: Identifier | PrivateIdentifier): string; 4716 function symbolName(symbol: Symbol): string; 4717 function getNameOfJSDocTypedef(declaration: JSDocTypedefTag): Identifier | PrivateIdentifier | undefined; 4718 function getNameOfDeclaration(declaration: Declaration | Expression | undefined): DeclarationName | undefined; 4719 function getDecorators(node: HasDecorators): readonly Decorator[] | undefined; 4720 function getModifiers(node: HasModifiers): readonly Modifier[] | undefined; 4721 function getAllDecorators(node: Node | undefined): readonly Decorator[]; 4722 function getIllegalDecorators(node: HasIllegalDecorators): readonly Decorator[] | undefined; 4723 /** 4724 * Gets the JSDoc parameter tags for the node if present. 4725 * 4726 * @remarks Returns any JSDoc param tag whose name matches the provided 4727 * parameter, whether a param tag on a containing function 4728 * expression, or a param tag on a variable declaration whose 4729 * initializer is the containing function. The tags closest to the 4730 * node are returned first, so in the previous example, the param 4731 * tag on the containing function expression would be first. 4732 * 4733 * For binding patterns, parameter tags are matched by position. 4734 */ 4735 function getJSDocParameterTags(param: ParameterDeclaration): readonly JSDocParameterTag[]; 4736 /** 4737 * Gets the JSDoc type parameter tags for the node if present. 4738 * 4739 * @remarks Returns any JSDoc template tag whose names match the provided 4740 * parameter, whether a template tag on a containing function 4741 * expression, or a template tag on a variable declaration whose 4742 * initializer is the containing function. The tags closest to the 4743 * node are returned first, so in the previous example, the template 4744 * tag on the containing function expression would be first. 4745 */ 4746 function getJSDocTypeParameterTags(param: TypeParameterDeclaration): readonly JSDocTemplateTag[]; 4747 /** 4748 * Return true if the node has JSDoc parameter tags. 4749 * 4750 * @remarks Includes parameter tags that are not directly on the node, 4751 * for example on a variable declaration whose initializer is a function expression. 4752 */ 4753 function hasJSDocParameterTags(node: FunctionLikeDeclaration | SignatureDeclaration): boolean; 4754 /** Gets the JSDoc augments tag for the node if present */ 4755 function getJSDocAugmentsTag(node: Node): JSDocAugmentsTag | undefined; 4756 /** Gets the JSDoc implements tags for the node if present */ 4757 function getJSDocImplementsTags(node: Node): readonly JSDocImplementsTag[]; 4758 /** Gets the JSDoc class tag for the node if present */ 4759 function getJSDocClassTag(node: Node): JSDocClassTag | undefined; 4760 /** Gets the JSDoc public tag for the node if present */ 4761 function getJSDocPublicTag(node: Node): JSDocPublicTag | undefined; 4762 /** Gets the JSDoc private tag for the node if present */ 4763 function getJSDocPrivateTag(node: Node): JSDocPrivateTag | undefined; 4764 /** Gets the JSDoc protected tag for the node if present */ 4765 function getJSDocProtectedTag(node: Node): JSDocProtectedTag | undefined; 4766 /** Gets the JSDoc protected tag for the node if present */ 4767 function getJSDocReadonlyTag(node: Node): JSDocReadonlyTag | undefined; 4768 function getJSDocOverrideTagNoCache(node: Node): JSDocOverrideTag | undefined; 4769 /** Gets the JSDoc deprecated tag for the node if present */ 4770 function getJSDocDeprecatedTag(node: Node): JSDocDeprecatedTag | undefined; 4771 /** Gets the JSDoc enum tag for the node if present */ 4772 function getJSDocEnumTag(node: Node): JSDocEnumTag | undefined; 4773 /** Gets the JSDoc this tag for the node if present */ 4774 function getJSDocThisTag(node: Node): JSDocThisTag | undefined; 4775 /** Gets the JSDoc return tag for the node if present */ 4776 function getJSDocReturnTag(node: Node): JSDocReturnTag | undefined; 4777 /** Gets the JSDoc template tag for the node if present */ 4778 function getJSDocTemplateTag(node: Node): JSDocTemplateTag | undefined; 4779 /** Gets the JSDoc type tag for the node if present and valid */ 4780 function getJSDocTypeTag(node: Node): JSDocTypeTag | undefined; 4781 /** 4782 * Gets the type node for the node if provided via JSDoc. 4783 * 4784 * @remarks The search includes any JSDoc param tag that relates 4785 * to the provided parameter, for example a type tag on the 4786 * parameter itself, or a param tag on a containing function 4787 * expression, or a param tag on a variable declaration whose 4788 * initializer is the containing function. The tags closest to the 4789 * node are examined first, so in the previous example, the type 4790 * tag directly on the node would be returned. 4791 */ 4792 function getJSDocType(node: Node): TypeNode | undefined; 4793 /** 4794 * Gets the return type node for the node if provided via JSDoc return tag or type tag. 4795 * 4796 * @remarks `getJSDocReturnTag` just gets the whole JSDoc tag. This function 4797 * gets the type from inside the braces, after the fat arrow, etc. 4798 */ 4799 function getJSDocReturnType(node: Node): TypeNode | undefined; 4800 /** Get all JSDoc tags related to a node, including those on parent nodes. */ 4801 function getJSDocTags(node: Node): readonly JSDocTag[]; 4802 /** Gets all JSDoc tags that match a specified predicate */ 4803 function getAllJSDocTags<T extends JSDocTag>(node: Node, predicate: (tag: JSDocTag) => tag is T): readonly T[]; 4804 /** Gets all JSDoc tags of a specified kind */ 4805 function getAllJSDocTagsOfKind(node: Node, kind: SyntaxKind): readonly JSDocTag[]; 4806 /** Gets the text of a jsdoc comment, flattening links to their text. */ 4807 function getTextOfJSDocComment(comment?: string | NodeArray<JSDocComment>): string | undefined; 4808 /** 4809 * Gets the effective type parameters. If the node was parsed in a 4810 * JavaScript file, gets the type parameters from the `@template` tag from JSDoc. 4811 * 4812 * This does *not* return type parameters from a jsdoc reference to a generic type, eg 4813 * 4814 * type Id = <T>(x: T) => T 4815 * /** @type {Id} / 4816 * function id(x) { return x } 4817 */ 4818 function getEffectiveTypeParameterDeclarations(node: DeclarationWithTypeParameters): readonly TypeParameterDeclaration[]; 4819 function getEffectiveConstraintOfTypeParameter(node: TypeParameterDeclaration): TypeNode | undefined; 4820 function isMemberName(node: Node): node is MemberName; 4821 function isPropertyAccessChain(node: Node): node is PropertyAccessChain; 4822 function isElementAccessChain(node: Node): node is ElementAccessChain; 4823 function isCallChain(node: Node): node is CallChain; 4824 function isOptionalChain(node: Node): node is PropertyAccessChain | ElementAccessChain | CallChain | NonNullChain; 4825 function isNullishCoalesce(node: Node): boolean; 4826 function isConstTypeReference(node: Node): boolean; 4827 function skipPartiallyEmittedExpressions(node: Expression): Expression; 4828 function skipPartiallyEmittedExpressions(node: Node): Node; 4829 function isNonNullChain(node: Node): node is NonNullChain; 4830 function isBreakOrContinueStatement(node: Node): node is BreakOrContinueStatement; 4831 function isNamedExportBindings(node: Node): node is NamedExportBindings; 4832 function isUnparsedTextLike(node: Node): node is UnparsedTextLike; 4833 function isUnparsedNode(node: Node): node is UnparsedNode; 4834 function isJSDocPropertyLikeTag(node: Node): node is JSDocPropertyLikeTag; 4835 /** 4836 * True if kind is of some token syntax kind. 4837 * For example, this is true for an IfKeyword but not for an IfStatement. 4838 * Literals are considered tokens, except TemplateLiteral, but does include TemplateHead/Middle/Tail. 4839 */ 4840 function isTokenKind(kind: SyntaxKind): boolean; 4841 /** 4842 * True if node is of some token syntax kind. 4843 * For example, this is true for an IfKeyword but not for an IfStatement. 4844 * Literals are considered tokens, except TemplateLiteral, but does include TemplateHead/Middle/Tail. 4845 */ 4846 function isToken(n: Node): boolean; 4847 function isLiteralExpression(node: Node): node is LiteralExpression; 4848 function isTemplateLiteralToken(node: Node): node is TemplateLiteralToken; 4849 function isTemplateMiddleOrTemplateTail(node: Node): node is TemplateMiddle | TemplateTail; 4850 function isImportOrExportSpecifier(node: Node): node is ImportSpecifier | ExportSpecifier; 4851 function isTypeOnlyImportOrExportDeclaration(node: Node): node is TypeOnlyAliasDeclaration; 4852 function isAssertionKey(node: Node): node is AssertionKey; 4853 function isStringTextContainingNode(node: Node): node is StringLiteral | TemplateLiteralToken; 4854 function isModifier(node: Node): node is Modifier; 4855 function isEntityName(node: Node): node is EntityName; 4856 function isPropertyName(node: Node): node is PropertyName; 4857 function isBindingName(node: Node): node is BindingName; 4858 function isFunctionLike(node: Node | undefined): node is SignatureDeclaration; 4859 function isClassElement(node: Node): node is ClassElement; 4860 function isClassLike(node: Node): node is ClassLikeDeclaration; 4861 function isStruct(node: Node): node is StructDeclaration; 4862 function isAccessor(node: Node): node is AccessorDeclaration; 4863 function isAutoAccessorPropertyDeclaration(node: Node): node is AutoAccessorPropertyDeclaration; 4864 function isModifierLike(node: Node): node is ModifierLike; 4865 function isTypeElement(node: Node): node is TypeElement; 4866 function isClassOrTypeElement(node: Node): node is ClassElement | TypeElement; 4867 function isObjectLiteralElementLike(node: Node): node is ObjectLiteralElementLike; 4868 /** 4869 * Node test that determines whether a node is a valid type node. 4870 * This differs from the `isPartOfTypeNode` function which determines whether a node is *part* 4871 * of a TypeNode. 4872 */ 4873 function isTypeNode(node: Node): node is TypeNode; 4874 function isFunctionOrConstructorTypeNode(node: Node): node is FunctionTypeNode | ConstructorTypeNode; 4875 function isPropertyAccessOrQualifiedName(node: Node): node is PropertyAccessExpression | QualifiedName; 4876 function isCallLikeExpression(node: Node): node is CallLikeExpression; 4877 function isCallOrNewExpression(node: Node): node is CallExpression | NewExpression; 4878 function isTemplateLiteral(node: Node): node is TemplateLiteral; 4879 function isAssertionExpression(node: Node): node is AssertionExpression; 4880 function isIterationStatement(node: Node, lookInLabeledStatements: false): node is IterationStatement; 4881 function isIterationStatement(node: Node, lookInLabeledStatements: boolean): node is IterationStatement | LabeledStatement; 4882 function isJsxOpeningLikeElement(node: Node): node is JsxOpeningLikeElement; 4883 function isCaseOrDefaultClause(node: Node): node is CaseOrDefaultClause; 4884 /** True if node is of a kind that may contain comment text. */ 4885 function isJSDocCommentContainingNode(node: Node): boolean; 4886 function isSetAccessor(node: Node): node is SetAccessorDeclaration; 4887 function isGetAccessor(node: Node): node is GetAccessorDeclaration; 4888 /** True if has initializer node attached to it. */ 4889 function hasOnlyExpressionInitializer(node: Node): node is HasExpressionInitializer; 4890 function isObjectLiteralElement(node: Node): node is ObjectLiteralElement; 4891 function isStringLiteralLike(node: Node): node is StringLiteralLike; 4892 function isJSDocLinkLike(node: Node): node is JSDocLink | JSDocLinkCode | JSDocLinkPlain; 4893 function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean; 4894 function isRestParameter(node: ParameterDeclaration | JSDocParameterTag): boolean; 4895} 4896declare namespace ts { 4897 function getLeadingCommentRangesOfNode(node: Node, sourceFileOfNode: SourceFile): CommentRange[] | undefined; 4898 function createTextWriter(newLine: string): EmitTextWriter; 4899 /** 4900 * Bypasses immutability and directly sets the `parent` property of each `Node` recursively. 4901 * @param rootNode The root node from which to start the recursion. 4902 * @param incremental When `true`, only recursively descends through nodes whose `parent` pointers are incorrect. 4903 * This allows us to quickly bail out of setting `parent` for subtrees during incremental parsing. 4904 */ 4905 function setParentRecursive<T extends Node>(rootNode: T, incremental: boolean): T; 4906 function setParentRecursive<T extends Node>(rootNode: T | undefined, incremental: boolean): T | undefined; 4907} 4908declare namespace ts { 4909 const factory: NodeFactory; 4910 function createUnparsedSourceFile(text: string): UnparsedSource; 4911 function createUnparsedSourceFile(inputFile: InputFiles, type: "js" | "dts", stripInternal?: boolean): UnparsedSource; 4912 function createUnparsedSourceFile(text: string, mapPath: string | undefined, map: string | undefined): UnparsedSource; 4913 function createInputFiles(javascriptText: string, declarationText: string): InputFiles; 4914 function createInputFiles(readFileText: (path: string) => string | undefined, javascriptPath: string, javascriptMapPath: string | undefined, declarationPath: string, declarationMapPath: string | undefined, buildInfoPath: string | undefined): InputFiles; 4915 function createInputFiles(javascriptText: string, declarationText: string, javascriptMapPath: string | undefined, javascriptMapText: string | undefined, declarationMapPath: string | undefined, declarationMapText: string | undefined): InputFiles; 4916 /** 4917 * Create an external source map source file reference 4918 */ 4919 function createSourceMapSource(fileName: string, text: string, skipTrivia?: (pos: number) => number): SourceMapSource; 4920 function setOriginalNode<T extends Node>(node: T, original: Node | undefined): T; 4921} 4922declare namespace ts { 4923 /** 4924 * Clears any `EmitNode` entries from parse-tree nodes. 4925 * @param sourceFile A source file. 4926 */ 4927 function disposeEmitNodes(sourceFile: SourceFile | undefined): void; 4928 /** 4929 * Sets flags that control emit behavior of a node. 4930 */ 4931 function setEmitFlags<T extends Node>(node: T, emitFlags: EmitFlags): T; 4932 /** 4933 * Gets a custom text range to use when emitting source maps. 4934 */ 4935 function getSourceMapRange(node: Node): SourceMapRange; 4936 /** 4937 * Sets a custom text range to use when emitting source maps. 4938 */ 4939 function setSourceMapRange<T extends Node>(node: T, range: SourceMapRange | undefined): T; 4940 /** 4941 * Gets the TextRange to use for source maps for a token of a node. 4942 */ 4943 function getTokenSourceMapRange(node: Node, token: SyntaxKind): SourceMapRange | undefined; 4944 /** 4945 * Sets the TextRange to use for source maps for a token of a node. 4946 */ 4947 function setTokenSourceMapRange<T extends Node>(node: T, token: SyntaxKind, range: SourceMapRange | undefined): T; 4948 /** 4949 * Gets a custom text range to use when emitting comments. 4950 */ 4951 function getCommentRange(node: Node): TextRange; 4952 /** 4953 * Sets a custom text range to use when emitting comments. 4954 */ 4955 function setCommentRange<T extends Node>(node: T, range: TextRange): T; 4956 function getSyntheticLeadingComments(node: Node): SynthesizedComment[] | undefined; 4957 function setSyntheticLeadingComments<T extends Node>(node: T, comments: SynthesizedComment[] | undefined): T; 4958 function addSyntheticLeadingComment<T extends Node>(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T; 4959 function getSyntheticTrailingComments(node: Node): SynthesizedComment[] | undefined; 4960 function setSyntheticTrailingComments<T extends Node>(node: T, comments: SynthesizedComment[] | undefined): T; 4961 function addSyntheticTrailingComment<T extends Node>(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T; 4962 function moveSyntheticComments<T extends Node>(node: T, original: Node): T; 4963 /** 4964 * Gets the constant value to emit for an expression representing an enum. 4965 */ 4966 function getConstantValue(node: AccessExpression): string | number | undefined; 4967 /** 4968 * Sets the constant value to emit for an expression. 4969 */ 4970 function setConstantValue(node: AccessExpression, value: string | number): AccessExpression; 4971 /** 4972 * Adds an EmitHelper to a node. 4973 */ 4974 function addEmitHelper<T extends Node>(node: T, helper: EmitHelper): T; 4975 /** 4976 * Add EmitHelpers to a node. 4977 */ 4978 function addEmitHelpers<T extends Node>(node: T, helpers: EmitHelper[] | undefined): T; 4979 /** 4980 * Removes an EmitHelper from a node. 4981 */ 4982 function removeEmitHelper(node: Node, helper: EmitHelper): boolean; 4983 /** 4984 * Gets the EmitHelpers of a node. 4985 */ 4986 function getEmitHelpers(node: Node): EmitHelper[] | undefined; 4987 /** 4988 * Moves matching emit helpers from a source node to a target node. 4989 */ 4990 function moveEmitHelpers(source: Node, target: Node, predicate: (helper: EmitHelper) => boolean): void; 4991} 4992declare namespace ts { 4993 function isNumericLiteral(node: Node): node is NumericLiteral; 4994 function isBigIntLiteral(node: Node): node is BigIntLiteral; 4995 function isStringLiteral(node: Node): node is StringLiteral; 4996 function isJsxText(node: Node): node is JsxText; 4997 function isRegularExpressionLiteral(node: Node): node is RegularExpressionLiteral; 4998 function isNoSubstitutionTemplateLiteral(node: Node): node is NoSubstitutionTemplateLiteral; 4999 function isTemplateHead(node: Node): node is TemplateHead; 5000 function isTemplateMiddle(node: Node): node is TemplateMiddle; 5001 function isTemplateTail(node: Node): node is TemplateTail; 5002 function isDotDotDotToken(node: Node): node is DotDotDotToken; 5003 function isPlusToken(node: Node): node is PlusToken; 5004 function isMinusToken(node: Node): node is MinusToken; 5005 function isAsteriskToken(node: Node): node is AsteriskToken; 5006 function isIdentifier(node: Node): node is Identifier; 5007 function isPrivateIdentifier(node: Node): node is PrivateIdentifier; 5008 function isQualifiedName(node: Node): node is QualifiedName; 5009 function isComputedPropertyName(node: Node): node is ComputedPropertyName; 5010 function isTypeParameterDeclaration(node: Node): node is TypeParameterDeclaration; 5011 function isParameter(node: Node): node is ParameterDeclaration; 5012 function isDecorator(node: Node): node is Decorator; 5013 function isPropertySignature(node: Node): node is PropertySignature; 5014 function isPropertyDeclaration(node: Node): node is PropertyDeclaration; 5015 function isMethodSignature(node: Node): node is MethodSignature; 5016 function isMethodDeclaration(node: Node): node is MethodDeclaration; 5017 function isClassStaticBlockDeclaration(node: Node): node is ClassStaticBlockDeclaration; 5018 function isConstructorDeclaration(node: Node): node is ConstructorDeclaration; 5019 function isGetAccessorDeclaration(node: Node): node is GetAccessorDeclaration; 5020 function isSetAccessorDeclaration(node: Node): node is SetAccessorDeclaration; 5021 function isCallSignatureDeclaration(node: Node): node is CallSignatureDeclaration; 5022 function isConstructSignatureDeclaration(node: Node): node is ConstructSignatureDeclaration; 5023 function isIndexSignatureDeclaration(node: Node): node is IndexSignatureDeclaration; 5024 function isTypePredicateNode(node: Node): node is TypePredicateNode; 5025 function isTypeReferenceNode(node: Node): node is TypeReferenceNode; 5026 function isFunctionTypeNode(node: Node): node is FunctionTypeNode; 5027 function isConstructorTypeNode(node: Node): node is ConstructorTypeNode; 5028 function isTypeQueryNode(node: Node): node is TypeQueryNode; 5029 function isTypeLiteralNode(node: Node): node is TypeLiteralNode; 5030 function isArrayTypeNode(node: Node): node is ArrayTypeNode; 5031 function isTupleTypeNode(node: Node): node is TupleTypeNode; 5032 function isNamedTupleMember(node: Node): node is NamedTupleMember; 5033 function isOptionalTypeNode(node: Node): node is OptionalTypeNode; 5034 function isRestTypeNode(node: Node): node is RestTypeNode; 5035 function isUnionTypeNode(node: Node): node is UnionTypeNode; 5036 function isIntersectionTypeNode(node: Node): node is IntersectionTypeNode; 5037 function isConditionalTypeNode(node: Node): node is ConditionalTypeNode; 5038 function isInferTypeNode(node: Node): node is InferTypeNode; 5039 function isParenthesizedTypeNode(node: Node): node is ParenthesizedTypeNode; 5040 function isThisTypeNode(node: Node): node is ThisTypeNode; 5041 function isTypeOperatorNode(node: Node): node is TypeOperatorNode; 5042 function isIndexedAccessTypeNode(node: Node): node is IndexedAccessTypeNode; 5043 function isMappedTypeNode(node: Node): node is MappedTypeNode; 5044 function isLiteralTypeNode(node: Node): node is LiteralTypeNode; 5045 function isImportTypeNode(node: Node): node is ImportTypeNode; 5046 function isTemplateLiteralTypeSpan(node: Node): node is TemplateLiteralTypeSpan; 5047 function isTemplateLiteralTypeNode(node: Node): node is TemplateLiteralTypeNode; 5048 function isObjectBindingPattern(node: Node): node is ObjectBindingPattern; 5049 function isArrayBindingPattern(node: Node): node is ArrayBindingPattern; 5050 function isBindingElement(node: Node): node is BindingElement; 5051 function isArrayLiteralExpression(node: Node): node is ArrayLiteralExpression; 5052 function isObjectLiteralExpression(node: Node): node is ObjectLiteralExpression; 5053 function isPropertyAccessExpression(node: Node): node is PropertyAccessExpression; 5054 function isElementAccessExpression(node: Node): node is ElementAccessExpression; 5055 function isCallExpression(node: Node): node is CallExpression; 5056 function isNewExpression(node: Node): node is NewExpression; 5057 function isTaggedTemplateExpression(node: Node): node is TaggedTemplateExpression; 5058 function isTypeAssertionExpression(node: Node): node is TypeAssertion; 5059 function isParenthesizedExpression(node: Node): node is ParenthesizedExpression; 5060 function isFunctionExpression(node: Node): node is FunctionExpression; 5061 function isEtsComponentExpression(node: Node): node is EtsComponentExpression; 5062 function isArrowFunction(node: Node): node is ArrowFunction; 5063 function isDeleteExpression(node: Node): node is DeleteExpression; 5064 function isTypeOfExpression(node: Node): node is TypeOfExpression; 5065 function isVoidExpression(node: Node): node is VoidExpression; 5066 function isAwaitExpression(node: Node): node is AwaitExpression; 5067 function isPrefixUnaryExpression(node: Node): node is PrefixUnaryExpression; 5068 function isPostfixUnaryExpression(node: Node): node is PostfixUnaryExpression; 5069 function isBinaryExpression(node: Node): node is BinaryExpression; 5070 function isConditionalExpression(node: Node): node is ConditionalExpression; 5071 function isTemplateExpression(node: Node): node is TemplateExpression; 5072 function isYieldExpression(node: Node): node is YieldExpression; 5073 function isSpreadElement(node: Node): node is SpreadElement; 5074 function isClassExpression(node: Node): node is ClassExpression; 5075 function isOmittedExpression(node: Node): node is OmittedExpression; 5076 function isExpressionWithTypeArguments(node: Node): node is ExpressionWithTypeArguments; 5077 function isAsExpression(node: Node): node is AsExpression; 5078 function isSatisfiesExpression(node: Node): node is SatisfiesExpression; 5079 function isNonNullExpression(node: Node): node is NonNullExpression; 5080 function isMetaProperty(node: Node): node is MetaProperty; 5081 function isSyntheticExpression(node: Node): node is SyntheticExpression; 5082 function isPartiallyEmittedExpression(node: Node): node is PartiallyEmittedExpression; 5083 function isCommaListExpression(node: Node): node is CommaListExpression; 5084 function isTemplateSpan(node: Node): node is TemplateSpan; 5085 function isSemicolonClassElement(node: Node): node is SemicolonClassElement; 5086 function isBlock(node: Node): node is Block; 5087 function isVariableStatement(node: Node): node is VariableStatement; 5088 function isEmptyStatement(node: Node): node is EmptyStatement; 5089 function isExpressionStatement(node: Node): node is ExpressionStatement; 5090 function isIfStatement(node: Node): node is IfStatement; 5091 function isDoStatement(node: Node): node is DoStatement; 5092 function isWhileStatement(node: Node): node is WhileStatement; 5093 function isForStatement(node: Node): node is ForStatement; 5094 function isForInStatement(node: Node): node is ForInStatement; 5095 function isForOfStatement(node: Node): node is ForOfStatement; 5096 function isContinueStatement(node: Node): node is ContinueStatement; 5097 function isBreakStatement(node: Node): node is BreakStatement; 5098 function isReturnStatement(node: Node): node is ReturnStatement; 5099 function isWithStatement(node: Node): node is WithStatement; 5100 function isSwitchStatement(node: Node): node is SwitchStatement; 5101 function isLabeledStatement(node: Node): node is LabeledStatement; 5102 function isThrowStatement(node: Node): node is ThrowStatement; 5103 function isTryStatement(node: Node): node is TryStatement; 5104 function isDebuggerStatement(node: Node): node is DebuggerStatement; 5105 function isVariableDeclaration(node: Node): node is VariableDeclaration; 5106 function isVariableDeclarationList(node: Node): node is VariableDeclarationList; 5107 function isFunctionDeclaration(node: Node): node is FunctionDeclaration; 5108 function isClassDeclaration(node: Node): node is ClassDeclaration; 5109 function isStructDeclaration(node: Node): node is StructDeclaration; 5110 function isInterfaceDeclaration(node: Node): node is InterfaceDeclaration; 5111 function isTypeAliasDeclaration(node: Node): node is TypeAliasDeclaration; 5112 function isEnumDeclaration(node: Node): node is EnumDeclaration; 5113 function isModuleDeclaration(node: Node): node is ModuleDeclaration; 5114 function isModuleBlock(node: Node): node is ModuleBlock; 5115 function isCaseBlock(node: Node): node is CaseBlock; 5116 function isNamespaceExportDeclaration(node: Node): node is NamespaceExportDeclaration; 5117 function isImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration; 5118 function isImportDeclaration(node: Node): node is ImportDeclaration; 5119 function isImportClause(node: Node): node is ImportClause; 5120 function isImportTypeAssertionContainer(node: Node): node is ImportTypeAssertionContainer; 5121 function isAssertClause(node: Node): node is AssertClause; 5122 function isAssertEntry(node: Node): node is AssertEntry; 5123 function isNamespaceImport(node: Node): node is NamespaceImport; 5124 function isNamespaceExport(node: Node): node is NamespaceExport; 5125 function isNamedImports(node: Node): node is NamedImports; 5126 function isImportSpecifier(node: Node): node is ImportSpecifier; 5127 function isExportAssignment(node: Node): node is ExportAssignment; 5128 function isExportDeclaration(node: Node): node is ExportDeclaration; 5129 function isNamedExports(node: Node): node is NamedExports; 5130 function isExportSpecifier(node: Node): node is ExportSpecifier; 5131 function isMissingDeclaration(node: Node): node is MissingDeclaration; 5132 function isNotEmittedStatement(node: Node): node is NotEmittedStatement; 5133 function isExternalModuleReference(node: Node): node is ExternalModuleReference; 5134 function isJsxElement(node: Node): node is JsxElement; 5135 function isJsxSelfClosingElement(node: Node): node is JsxSelfClosingElement; 5136 function isJsxOpeningElement(node: Node): node is JsxOpeningElement; 5137 function isJsxClosingElement(node: Node): node is JsxClosingElement; 5138 function isJsxFragment(node: Node): node is JsxFragment; 5139 function isJsxOpeningFragment(node: Node): node is JsxOpeningFragment; 5140 function isJsxClosingFragment(node: Node): node is JsxClosingFragment; 5141 function isJsxAttribute(node: Node): node is JsxAttribute; 5142 function isJsxAttributes(node: Node): node is JsxAttributes; 5143 function isJsxSpreadAttribute(node: Node): node is JsxSpreadAttribute; 5144 function isJsxExpression(node: Node): node is JsxExpression; 5145 function isCaseClause(node: Node): node is CaseClause; 5146 function isDefaultClause(node: Node): node is DefaultClause; 5147 function isHeritageClause(node: Node): node is HeritageClause; 5148 function isCatchClause(node: Node): node is CatchClause; 5149 function isPropertyAssignment(node: Node): node is PropertyAssignment; 5150 function isShorthandPropertyAssignment(node: Node): node is ShorthandPropertyAssignment; 5151 function isSpreadAssignment(node: Node): node is SpreadAssignment; 5152 function isEnumMember(node: Node): node is EnumMember; 5153 function isUnparsedPrepend(node: Node): node is UnparsedPrepend; 5154 function isSourceFile(node: Node): node is SourceFile; 5155 function isBundle(node: Node): node is Bundle; 5156 function isUnparsedSource(node: Node): node is UnparsedSource; 5157 function isJSDocTypeExpression(node: Node): node is JSDocTypeExpression; 5158 function isJSDocNameReference(node: Node): node is JSDocNameReference; 5159 function isJSDocMemberName(node: Node): node is JSDocMemberName; 5160 function isJSDocLink(node: Node): node is JSDocLink; 5161 function isJSDocLinkCode(node: Node): node is JSDocLinkCode; 5162 function isJSDocLinkPlain(node: Node): node is JSDocLinkPlain; 5163 function isJSDocAllType(node: Node): node is JSDocAllType; 5164 function isJSDocUnknownType(node: Node): node is JSDocUnknownType; 5165 function isJSDocNullableType(node: Node): node is JSDocNullableType; 5166 function isJSDocNonNullableType(node: Node): node is JSDocNonNullableType; 5167 function isJSDocOptionalType(node: Node): node is JSDocOptionalType; 5168 function isJSDocFunctionType(node: Node): node is JSDocFunctionType; 5169 function isJSDocVariadicType(node: Node): node is JSDocVariadicType; 5170 function isJSDocNamepathType(node: Node): node is JSDocNamepathType; 5171 function isJSDoc(node: Node): node is JSDoc; 5172 function isJSDocTypeLiteral(node: Node): node is JSDocTypeLiteral; 5173 function isJSDocSignature(node: Node): node is JSDocSignature; 5174 function isJSDocAugmentsTag(node: Node): node is JSDocAugmentsTag; 5175 function isJSDocAuthorTag(node: Node): node is JSDocAuthorTag; 5176 function isJSDocClassTag(node: Node): node is JSDocClassTag; 5177 function isJSDocCallbackTag(node: Node): node is JSDocCallbackTag; 5178 function isJSDocPublicTag(node: Node): node is JSDocPublicTag; 5179 function isJSDocPrivateTag(node: Node): node is JSDocPrivateTag; 5180 function isJSDocProtectedTag(node: Node): node is JSDocProtectedTag; 5181 function isJSDocReadonlyTag(node: Node): node is JSDocReadonlyTag; 5182 function isJSDocOverrideTag(node: Node): node is JSDocOverrideTag; 5183 function isJSDocDeprecatedTag(node: Node): node is JSDocDeprecatedTag; 5184 function isJSDocSeeTag(node: Node): node is JSDocSeeTag; 5185 function isJSDocEnumTag(node: Node): node is JSDocEnumTag; 5186 function isJSDocParameterTag(node: Node): node is JSDocParameterTag; 5187 function isJSDocReturnTag(node: Node): node is JSDocReturnTag; 5188 function isJSDocThisTag(node: Node): node is JSDocThisTag; 5189 function isJSDocTypeTag(node: Node): node is JSDocTypeTag; 5190 function isJSDocTemplateTag(node: Node): node is JSDocTemplateTag; 5191 function isJSDocTypedefTag(node: Node): node is JSDocTypedefTag; 5192 function isJSDocUnknownTag(node: Node): node is JSDocUnknownTag; 5193 function isJSDocPropertyTag(node: Node): node is JSDocPropertyTag; 5194 function isJSDocImplementsTag(node: Node): node is JSDocImplementsTag; 5195} 5196declare namespace ts { 5197 function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T; 5198 function canHaveModifiers(node: Node): node is HasModifiers; 5199 function canHaveDecorators(node: Node): node is HasDecorators; 5200} 5201declare namespace ts { 5202 /** 5203 * Invokes a callback for each child of the given node. The 'cbNode' callback is invoked for all child nodes 5204 * stored in properties. If a 'cbNodes' callback is specified, it is invoked for embedded arrays; otherwise, 5205 * embedded arrays are flattened and the 'cbNode' callback is invoked for each element. If a callback returns 5206 * a truthy value, iteration stops and that value is returned. Otherwise, undefined is returned. 5207 * 5208 * @param node a given node to visit its children 5209 * @param cbNode a callback to be invoked for all child nodes 5210 * @param cbNodes a callback to be invoked for embedded array 5211 * 5212 * @remarks `forEachChild` must visit the children of a node in the order 5213 * that they appear in the source code. The language service depends on this property to locate nodes by position. 5214 */ 5215 export function forEachChild<T>(node: Node, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray<Node>) => T | undefined): T | undefined; 5216 export interface CreateSourceFileOptions { 5217 languageVersion: ScriptTarget; 5218 /** 5219 * Controls the format the file is detected as - this can be derived from only the path 5220 * and files on disk, but needs to be done with a module resolution cache in scope to be performant. 5221 * This is usually `undefined` for compilations that do not have `moduleResolution` values of `node16` or `nodenext`. 5222 */ 5223 impliedNodeFormat?: ModuleKind.ESNext | ModuleKind.CommonJS; 5224 /** 5225 * Controls how module-y-ness is set for the given file. Usually the result of calling 5226 * `getSetExternalModuleIndicator` on a valid `CompilerOptions` object. If not present, the default 5227 * check specified by `isFileProbablyExternalModule` will be used to set the field. 5228 */ 5229 setExternalModuleIndicator?: (file: SourceFile) => void; 5230 } 5231 export function createSourceFile(fileName: string, sourceText: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, setParentNodes?: boolean, scriptKind?: ScriptKind, options?: CompilerOptions): SourceFile; 5232 export function parseIsolatedEntityName(text: string, languageVersion: ScriptTarget): EntityName | undefined; 5233 /** 5234 * Parse json text into SyntaxTree and return node and parse errors if any 5235 * @param fileName 5236 * @param sourceText 5237 */ 5238 export function parseJsonText(fileName: string, sourceText: string): JsonSourceFile; 5239 export function isExternalModule(file: SourceFile): boolean; 5240 export function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean, option?: CompilerOptions): SourceFile; 5241 export {}; 5242} 5243declare namespace ts { 5244 export function parseCommandLine(commandLine: readonly string[], readFile?: (path: string) => string | undefined): ParsedCommandLine; 5245 export type DiagnosticReporter = (diagnostic: Diagnostic) => void; 5246 /** 5247 * Reports config file diagnostics 5248 */ 5249 export interface ConfigFileDiagnosticsReporter { 5250 /** 5251 * Reports unrecoverable error when parsing config file 5252 */ 5253 onUnRecoverableConfigFileDiagnostic: DiagnosticReporter; 5254 } 5255 /** 5256 * Interface extending ParseConfigHost to support ParseConfigFile that reads config file and reports errors 5257 */ 5258 export interface ParseConfigFileHost extends ParseConfigHost, ConfigFileDiagnosticsReporter { 5259 getCurrentDirectory(): string; 5260 } 5261 /** 5262 * Reads the config file, reports errors if any and exits if the config file cannot be found 5263 */ 5264 export function getParsedCommandLineOfConfigFile(configFileName: string, optionsToExtend: CompilerOptions | undefined, host: ParseConfigFileHost, extendedConfigCache?: Map<ExtendedConfigCacheEntry>, watchOptionsToExtend?: WatchOptions, extraFileExtensions?: readonly FileExtensionInfo[]): ParsedCommandLine | undefined; 5265 /** 5266 * Read tsconfig.json file 5267 * @param fileName The path to the config file 5268 */ 5269 export function readConfigFile(fileName: string, readFile: (path: string) => string | undefined): { 5270 config?: any; 5271 error?: Diagnostic; 5272 }; 5273 /** 5274 * Parse the text of the tsconfig.json file 5275 * @param fileName The path to the config file 5276 * @param jsonText The text of the config file 5277 */ 5278 export function parseConfigFileTextToJson(fileName: string, jsonText: string): { 5279 config?: any; 5280 error?: Diagnostic; 5281 }; 5282 /** 5283 * Read tsconfig.json file 5284 * @param fileName The path to the config file 5285 */ 5286 export function readJsonConfigFile(fileName: string, readFile: (path: string) => string | undefined): TsConfigSourceFile; 5287 /** 5288 * Convert the json syntax tree into the json value 5289 */ 5290 export function convertToObject(sourceFile: JsonSourceFile, errors: Push<Diagnostic>): any; 5291 /** 5292 * Parse the contents of a config file (tsconfig.json). 5293 * @param json The contents of the config file to parse 5294 * @param host Instance of ParseConfigHost used to enumerate files in folder. 5295 * @param basePath A root directory to resolve relative path entries in the config 5296 * file to. e.g. outDir 5297 */ 5298 export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map<ExtendedConfigCacheEntry>, existingWatchOptions?: WatchOptions): ParsedCommandLine; 5299 /** 5300 * Parse the contents of a config file (tsconfig.json). 5301 * @param jsonNode The contents of the config file to parse 5302 * @param host Instance of ParseConfigHost used to enumerate files in folder. 5303 * @param basePath A root directory to resolve relative path entries in the config 5304 * file to. e.g. outDir 5305 */ 5306 export function parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map<ExtendedConfigCacheEntry>, existingWatchOptions?: WatchOptions): ParsedCommandLine; 5307 export interface ParsedTsconfig { 5308 raw: any; 5309 options?: CompilerOptions; 5310 watchOptions?: WatchOptions; 5311 typeAcquisition?: TypeAcquisition; 5312 /** 5313 * Note that the case of the config path has not yet been normalized, as no files have been imported into the project yet 5314 */ 5315 extendedConfigPath?: string; 5316 } 5317 export interface ExtendedConfigCacheEntry { 5318 extendedResult: TsConfigSourceFile; 5319 extendedConfig: ParsedTsconfig | undefined; 5320 } 5321 export function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): { 5322 options: CompilerOptions; 5323 errors: Diagnostic[]; 5324 }; 5325 export function convertTypeAcquisitionFromJson(jsonOptions: any, basePath: string, configFileName?: string): { 5326 options: TypeAcquisition; 5327 errors: Diagnostic[]; 5328 }; 5329 export {}; 5330} 5331declare namespace ts { 5332 export function getEffectiveTypeRoots(options: CompilerOptions, host: GetEffectiveTypeRootsHost): string[] | undefined; 5333 /** 5334 * @param {string | undefined} containingFile - file that contains type reference directive, can be undefined if containing file is unknown. 5335 * This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups 5336 * is assumed to be the same as root directory of the project. 5337 */ 5338 export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache, resolutionMode?: SourceFile["impliedNodeFormat"]): ResolvedTypeReferenceDirectiveWithFailedLookupLocations; 5339 /** 5340 * Given a set of options, returns the set of type directive names 5341 * that should be included for this program automatically. 5342 * This list could either come from the config file, 5343 * or from enumerating the types root + initial secondary types lookup location. 5344 * More type directives might appear in the program later as a result of loading actual source files; 5345 * this list is only the set of defaults that are implicitly included. 5346 */ 5347 export function getAutomaticTypeDirectiveNames(options: CompilerOptions, host: ModuleResolutionHost): string[]; 5348 export interface TypeReferenceDirectiveResolutionCache extends PerDirectoryResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, PackageJsonInfoCache { 5349 } 5350 export interface ModeAwareCache<T> { 5351 get(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): T | undefined; 5352 set(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined, value: T): this; 5353 delete(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): this; 5354 has(key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): boolean; 5355 forEach(cb: (elem: T, key: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined) => void): void; 5356 size(): number; 5357 } 5358 /** 5359 * Cached resolutions per containing directory. 5360 * This assumes that any module id will have the same resolution for sibling files located in the same folder. 5361 */ 5362 export interface PerDirectoryResolutionCache<T> { 5363 getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference): ModeAwareCache<T>; 5364 clear(): void; 5365 /** 5366 * Updates with the current compilerOptions the cache will operate with. 5367 * This updates the redirects map as well if needed so module resolutions are cached if they can across the projects 5368 */ 5369 update(options: CompilerOptions): void; 5370 } 5371 export interface ModuleResolutionCache extends PerDirectoryResolutionCache<ResolvedModuleWithFailedLookupLocations>, NonRelativeModuleNameResolutionCache, PackageJsonInfoCache { 5372 getPackageJsonInfoCache(): PackageJsonInfoCache; 5373 } 5374 /** 5375 * Stored map from non-relative module name to a table: directory -> result of module lookup in this directory 5376 * We support only non-relative module names because resolution of relative module names is usually more deterministic and thus less expensive. 5377 */ 5378 export interface NonRelativeModuleNameResolutionCache extends PackageJsonInfoCache { 5379 getOrCreateCacheForModuleName(nonRelativeModuleName: string, mode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined, redirectedReference?: ResolvedProjectReference): PerModuleNameCache; 5380 } 5381 export interface PackageJsonInfoCache { 5382 clear(): void; 5383 } 5384 export interface PerModuleNameCache { 5385 get(directory: string): ResolvedModuleWithFailedLookupLocations | undefined; 5386 set(directory: string, result: ResolvedModuleWithFailedLookupLocations): void; 5387 } 5388 export function createModuleResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions): ModuleResolutionCache; 5389 export function createTypeReferenceDirectiveResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions, packageJsonInfoCache?: PackageJsonInfoCache): TypeReferenceDirectiveResolutionCache; 5390 export function resolveModuleNameFromCache(moduleName: string, containingFile: string, cache: ModuleResolutionCache, mode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; 5391 export function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations; 5392 export function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; 5393 /** 5394 * This will be called on the successfully resolved path from `loadModuleFromFile`. 5395 * (Not needed for `loadModuleFromNodeModules` as that looks up the `package.json` or `oh-package.json5` as part of resolution.) 5396 * 5397 * packageDirectory is the directory of the package itself. 5398 * For `blah/node_modules/foo/index.d.ts` this is packageDirectory: "foo" 5399 * For `/node_modules/foo/bar.d.ts` this is packageDirectory: "foo" 5400 * For `/node_modules/@types/foo/bar/index.d.ts` this is packageDirectory: "@types/foo" 5401 * For `/node_modules/foo/bar/index.d.ts` this is packageDirectory: "foo" 5402 */ 5403 export function parseModuleFromPath(resolved: string, packageManagerType?: string): string | undefined; 5404 export function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; 5405 export {}; 5406} 5407declare namespace ts { 5408 function concatenateDecoratorsAndModifiers(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined): readonly ModifierLike[] | undefined; 5409 function isEtsFunctionDecorators(name: string | undefined, options: CompilerOptions): boolean; 5410 function isOhpm(packageManagerType: string | undefined): boolean; 5411 const ohModulesPathPart: string; 5412 function isOHModules(modulePath: string): boolean; 5413 function isOhpmAndOhModules(packageManagerType: string | undefined, modulePath: string): boolean; 5414 function getModulePathPartByPMType(packageManagerType: string | undefined): string; 5415 function getModuleByPMType(packageManagerType: string | undefined): string; 5416 function getPackageJsonByPMType(packageManagerType: string | undefined): string; 5417 function isOHModulesDirectory(dirPath: Path): boolean; 5418 function isTargetModulesDerectory(dirPath: Path): boolean; 5419 function pathContainsOHModules(path: string): boolean; 5420 function choosePathContainsModules(packageManagerType: string | undefined, fileName: string): boolean; 5421 function getTypeExportImportAndConstEnumTransformer(context: TransformationContext): (node: SourceFile) => SourceFile; 5422 /** 5423 * Add 'type' flag to import/export when import/export an type member. 5424 * Replace const enum with number and string literal. 5425 */ 5426 function transformTypeExportImportAndConstEnumInTypeScript(context: TransformationContext): (node: SourceFile) => SourceFile; 5427 function hasTsNoCheckOrTsIgnoreFlag(node: SourceFile): boolean; 5428 function createObfTextSingleLineWriter(): EmitTextWriter; 5429} 5430declare namespace ts { 5431 /** 5432 * Visits a Node using the supplied visitor, possibly returning a new Node in its place. 5433 * 5434 * @param node The Node to visit. 5435 * @param visitor The callback used to visit the Node. 5436 * @param test A callback to execute to verify the Node is valid. 5437 * @param lift An optional callback to execute to lift a NodeArray into a valid Node. 5438 */ 5439 function visitNode<T extends Node>(node: T, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T; 5440 /** 5441 * Visits a Node using the supplied visitor, possibly returning a new Node in its place. 5442 * 5443 * @param node The Node to visit. 5444 * @param visitor The callback used to visit the Node. 5445 * @param test A callback to execute to verify the Node is valid. 5446 * @param lift An optional callback to execute to lift a NodeArray into a valid Node. 5447 */ 5448 function visitNode<T extends Node>(node: T | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => T): T | undefined; 5449 /** 5450 * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place. 5451 * 5452 * @param nodes The NodeArray to visit. 5453 * @param visitor The callback used to visit a Node. 5454 * @param test A node test to execute for each node. 5455 * @param start An optional value indicating the starting offset at which to start visiting. 5456 * @param count An optional value indicating the maximum number of nodes to visit. 5457 */ 5458 function visitNodes<T extends Node>(nodes: NodeArray<T>, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T>; 5459 /** 5460 * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place. 5461 * 5462 * @param nodes The NodeArray to visit. 5463 * @param visitor The callback used to visit a Node. 5464 * @param test A node test to execute for each node. 5465 * @param start An optional value indicating the starting offset at which to start visiting. 5466 * @param count An optional value indicating the maximum number of nodes to visit. 5467 */ 5468 function visitNodes<T extends Node>(nodes: NodeArray<T> | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T> | undefined; 5469 /** 5470 * Starts a new lexical environment and visits a statement list, ending the lexical environment 5471 * and merging hoisted declarations upon completion. 5472 */ 5473 function visitLexicalEnvironment(statements: NodeArray<Statement>, visitor: Visitor, context: TransformationContext, start?: number, ensureUseStrict?: boolean, nodesVisitor?: NodesVisitor): NodeArray<Statement>; 5474 /** 5475 * Starts a new lexical environment and visits a parameter list, suspending the lexical 5476 * environment upon completion. 5477 */ 5478 function visitParameterList(nodes: NodeArray<ParameterDeclaration>, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor): NodeArray<ParameterDeclaration>; 5479 function visitParameterList(nodes: NodeArray<ParameterDeclaration> | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor): NodeArray<ParameterDeclaration> | undefined; 5480 /** 5481 * Resumes a suspended lexical environment and visits a function body, ending the lexical 5482 * environment and merging hoisted declarations upon completion. 5483 */ 5484 function visitFunctionBody(node: FunctionBody, visitor: Visitor, context: TransformationContext): FunctionBody; 5485 /** 5486 * Resumes a suspended lexical environment and visits a function body, ending the lexical 5487 * environment and merging hoisted declarations upon completion. 5488 */ 5489 function visitFunctionBody(node: FunctionBody | undefined, visitor: Visitor, context: TransformationContext): FunctionBody | undefined; 5490 /** 5491 * Resumes a suspended lexical environment and visits a concise body, ending the lexical 5492 * environment and merging hoisted declarations upon completion. 5493 */ 5494 function visitFunctionBody(node: ConciseBody, visitor: Visitor, context: TransformationContext): ConciseBody; 5495 /** 5496 * Visits an iteration body, adding any block-scoped variables required by the transformation. 5497 */ 5498 function visitIterationBody(body: Statement, visitor: Visitor, context: TransformationContext): Statement; 5499 /** 5500 * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place. 5501 * 5502 * @param node The Node whose children will be visited. 5503 * @param visitor The callback used to visit each child. 5504 * @param context A lexical environment context for the visitor. 5505 */ 5506 function visitEachChild<T extends Node>(node: T, visitor: Visitor, context: TransformationContext): T; 5507 /** 5508 * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place. 5509 * 5510 * @param node The Node whose children will be visited. 5511 * @param visitor The callback used to visit each child. 5512 * @param context A lexical environment context for the visitor. 5513 */ 5514 function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: typeof visitNodes, tokenVisitor?: Visitor): T | undefined; 5515} 5516declare namespace ts { 5517 interface SourceMapGeneratorOptions { 5518 extendedDiagnostics?: boolean; 5519 } 5520 function createSourceMapGenerator(host: EmitHost, file: string, sourceRoot: string, sourcesDirectoryPath: string, generatorOptions: SourceMapGeneratorOptions): SourceMapGenerator; 5521} 5522declare namespace ts { 5523 function getTsBuildInfoEmitOutputFilePath(options: CompilerOptions): string | undefined; 5524 function getTsBuildInfoEmitOutputFilePathForLinter(tsBuildInfoPath: string): string; 5525 function getOutputFileNames(commandLine: ParsedCommandLine, inputFileName: string, ignoreCase: boolean): readonly string[]; 5526 function createPrinter(printerOptions?: PrinterOptions, handlers?: PrintHandlers): Printer; 5527} 5528declare namespace ts { 5529 export function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName?: string): string | undefined; 5530 export function resolveTripleslashReference(moduleName: string, containingFile: string): string; 5531 export function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost; 5532 export function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5533 export interface FormatDiagnosticsHost { 5534 getCurrentDirectory(): string; 5535 getCanonicalFileName(fileName: string): string; 5536 getNewLine(): string; 5537 } 5538 export function formatDiagnostics(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string; 5539 export function formatDiagnostic(diagnostic: Diagnostic, host: FormatDiagnosticsHost): string; 5540 export function formatDiagnosticsWithColorAndContext(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string; 5541 export function flattenDiagnosticMessageText(diag: string | DiagnosticMessageChain | undefined, newLine: string, indent?: number): string; 5542 /** 5543 * Calculates the resulting resolution mode for some reference in some file - this is generally the explicitly 5544 * provided resolution mode in the reference, unless one is not present, in which case it is the mode of the containing file. 5545 */ 5546 export function getModeForFileReference(ref: FileReference | string, containingFileMode: SourceFile["impliedNodeFormat"]): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5547 /** 5548 * Calculates the final resolution mode for an import at some index within a file's imports list. This is generally the explicitly 5549 * 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). 5550 * If you have an actual import node, prefer using getModeForUsageLocation on the reference string node. 5551 * @param file File to fetch the resolution mode within 5552 * @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 5553 */ 5554 export function getModeForResolutionAtIndex(file: SourceFile, index: number): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5555 /** 5556 * Calculates the final resolution mode for a given module reference node. This is generally the explicitly provided resolution mode, if 5557 * one exists, or the mode of the containing source file. (Excepting import=require, which is always commonjs, and dynamic import, which is always esm). 5558 * Notably, this function always returns `undefined` if the containing file has an `undefined` `impliedNodeFormat` - this field is only set when 5559 * `moduleResolution` is `node16`+. 5560 * @param file The file the import or import-like reference is contained within 5561 * @param usage The module reference string 5562 * @returns The final resolution mode of the import 5563 */ 5564 export function getModeForUsageLocation(file: { 5565 impliedNodeFormat?: SourceFile["impliedNodeFormat"]; 5566 }, usage: StringLiteralLike): ModuleKind.CommonJS | ModuleKind.ESNext | undefined; 5567 export function getConfigFileParsingDiagnostics(configFileParseResult: ParsedCommandLine): readonly Diagnostic[]; 5568 /** 5569 * A function for determining if a given file is esm or cjs format, assuming modern node module resolution rules, as configured by the 5570 * `options` parameter. 5571 * 5572 * @param fileName The normalized absolute path to check the format of (it need not exist on disk) 5573 * @param [packageJsonInfoCache] A cache for package file lookups - it's best to have a cache when this function is called often 5574 * @param host The ModuleResolutionHost which can perform the filesystem lookups for package json data 5575 * @param options The compiler options to perform the analysis under - relevant options are `moduleResolution` and `traceResolution` 5576 * @returns `undefined` if the path has no relevant implied format, `ModuleKind.ESNext` for esm format, and `ModuleKind.CommonJS` for cjs format 5577 */ 5578 export function getImpliedNodeFormatForFile(fileName: Path, packageJsonInfoCache: PackageJsonInfoCache | undefined, host: ModuleResolutionHost, options: CompilerOptions): ModuleKind.ESNext | ModuleKind.CommonJS | undefined; 5579 /** 5580 * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions' 5581 * that represent a compilation unit. 5582 * 5583 * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and 5584 * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in. 5585 * 5586 * @param createProgramOptions - The options for creating a program. 5587 * @returns A 'Program' object. 5588 */ 5589 export function createProgram(createProgramOptions: CreateProgramOptions): Program; 5590 /** 5591 * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions' 5592 * that represent a compilation unit. 5593 * 5594 * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and 5595 * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in. 5596 * 5597 * @param rootNames - A set of root files. 5598 * @param options - The compiler options which should be used. 5599 * @param host - The host interacts with the underlying file system. 5600 * @param oldProgram - Reuses an old program structure. 5601 * @param configFileParsingDiagnostics - error during config file parsing 5602 * @returns A 'Program' object. 5603 */ 5604 export function createProgram(rootNames: readonly string[], options: CompilerOptions, host?: CompilerHost, oldProgram?: Program, configFileParsingDiagnostics?: readonly Diagnostic[]): Program; 5605 /** @deprecated */ export interface ResolveProjectReferencePathHost { 5606 fileExists(fileName: string): boolean; 5607 } 5608 /** 5609 * Returns the target config filename of a project reference. 5610 * Note: The file might not exist. 5611 */ 5612 export function resolveProjectReferencePath(ref: ProjectReference): ResolvedConfigFileName; 5613 /** @deprecated */ export function resolveProjectReferencePath(host: ResolveProjectReferencePathHost, ref: ProjectReference): ResolvedConfigFileName; 5614 export {}; 5615} 5616declare namespace ts { 5617 interface EmitOutput { 5618 outputFiles: OutputFile[]; 5619 emitSkipped: boolean; 5620 } 5621 interface OutputFile { 5622 name: string; 5623 writeByteOrderMark: boolean; 5624 text: string; 5625 } 5626} 5627declare namespace ts { 5628 type AffectedFileResult<T> = { 5629 result: T; 5630 affected: SourceFile | Program; 5631 } | undefined; 5632 interface BuilderProgramHost { 5633 /** 5634 * return true if file names are treated with case sensitivity 5635 */ 5636 useCaseSensitiveFileNames(): boolean; 5637 /** 5638 * If provided this would be used this hash instead of actual file shape text for detecting changes 5639 */ 5640 createHash?: (data: string) => string; 5641 /** 5642 * When emit or emitNextAffectedFile are called without writeFile, 5643 * this callback if present would be used to write files 5644 */ 5645 writeFile?: WriteFileCallback; 5646 } 5647 /** 5648 * Builder to manage the program state changes 5649 */ 5650 interface BuilderProgram { 5651 /** 5652 * Returns current program 5653 */ 5654 getProgram(): Program; 5655 /** 5656 * Get compiler options of the program 5657 */ 5658 getCompilerOptions(): CompilerOptions; 5659 /** 5660 * Get the source file in the program with file name 5661 */ 5662 getSourceFile(fileName: string): SourceFile | undefined; 5663 /** 5664 * Get a list of files in the program 5665 */ 5666 getSourceFiles(): readonly SourceFile[]; 5667 /** 5668 * Get the diagnostics for compiler options 5669 */ 5670 getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5671 /** 5672 * Get the diagnostics that dont belong to any file 5673 */ 5674 getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5675 /** 5676 * Get the diagnostics from config file parsing 5677 */ 5678 getConfigFileParsingDiagnostics(): readonly Diagnostic[]; 5679 /** 5680 * Get the syntax diagnostics, for all source files if source file is not supplied 5681 */ 5682 getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5683 /** 5684 * Get the declaration diagnostics, for all source files if source file is not supplied 5685 */ 5686 getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[]; 5687 /** 5688 * Get all the dependencies of the file 5689 */ 5690 getAllDependencies(sourceFile: SourceFile): readonly string[]; 5691 /** 5692 * Gets the semantic diagnostics from the program corresponding to this state of file (if provided) or whole program 5693 * The semantic diagnostics are cached and managed here 5694 * Note that it is assumed that when asked about semantic diagnostics through this API, 5695 * the file has been taken out of affected files so it is safe to use cache or get from program and cache the diagnostics 5696 * In case of SemanticDiagnosticsBuilderProgram if the source file is not provided, 5697 * it will iterate through all the affected files, to ensure that cache stays valid and yet provide a way to get all semantic diagnostics 5698 */ 5699 getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5700 /** 5701 * Emits the JavaScript and declaration files. 5702 * When targetSource file is specified, emits the files corresponding to that source file, 5703 * otherwise for the whole program. 5704 * In case of EmitAndSemanticDiagnosticsBuilderProgram, when targetSourceFile is specified, 5705 * it is assumed that that file is handled from affected file list. If targetSourceFile is not specified, 5706 * it will only emit all the affected files instead of whole program 5707 * 5708 * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host 5709 * in that order would be used to write the files 5710 */ 5711 emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult; 5712 /** 5713 * Get the current directory of the program 5714 */ 5715 getCurrentDirectory(): string; 5716 isFileUpdateInConstEnumCache?(sourceFile: SourceFile): boolean; 5717 builderProgramForLinter?: EmitAndSemanticDiagnosticsBuilderProgram; 5718 } 5719 /** 5720 * The builder that caches the semantic diagnostics for the program and handles the changed files and affected files 5721 */ 5722 interface SemanticDiagnosticsBuilderProgram extends BuilderProgram { 5723 /** 5724 * Gets the semantic diagnostics from the program for the next affected file and caches it 5725 * Returns undefined if the iteration is complete 5726 */ 5727 getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<readonly Diagnostic[]>; 5728 } 5729 /** 5730 * The builder that can handle the changes in program and iterate through changed file to emit the files 5731 * The semantic diagnostics are cached per file and managed by clearing for the changed/affected files 5732 */ 5733 interface EmitAndSemanticDiagnosticsBuilderProgram extends SemanticDiagnosticsBuilderProgram { 5734 /** 5735 * Emits the next affected file's emit result (EmitResult and sourceFiles emitted) or returns undefined if iteration is complete 5736 * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host 5737 * in that order would be used to write the files 5738 */ 5739 emitNextAffectedFile(writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): AffectedFileResult<EmitResult>; 5740 } 5741 /** 5742 * Create the builder to manage semantic diagnostics and cache them 5743 */ 5744 function createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): SemanticDiagnosticsBuilderProgram; 5745 function createSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): SemanticDiagnosticsBuilderProgram; 5746 /** 5747 * Create the builder that can handle the changes in program and iterate through changed files 5748 * to emit the those files and manage semantic diagnostics cache as well 5749 */ 5750 function createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): EmitAndSemanticDiagnosticsBuilderProgram; 5751 function createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): EmitAndSemanticDiagnosticsBuilderProgram; 5752 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; 5753 /** 5754 * Creates a builder thats just abstraction over program and can be used with watch 5755 */ 5756 function createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): BuilderProgram; 5757 function createAbstractBuilder(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): BuilderProgram; 5758} 5759declare namespace ts { 5760 interface ReadBuildProgramHost { 5761 useCaseSensitiveFileNames(): boolean; 5762 getCurrentDirectory(): string; 5763 readFile(fileName: string): string | undefined; 5764 getLastCompiledProgram?(): Program; 5765 } 5766 function readBuilderProgram(compilerOptions: CompilerOptions, host: ReadBuildProgramHost, isForLinter?: boolean): EmitAndSemanticDiagnosticsBuilderProgram | undefined; 5767 function createIncrementalCompilerHost(options: CompilerOptions, system?: System): CompilerHost; 5768 interface IncrementalProgramOptions<T extends BuilderProgram> { 5769 rootNames: readonly string[]; 5770 options: CompilerOptions; 5771 configFileParsingDiagnostics?: readonly Diagnostic[]; 5772 projectReferences?: readonly ProjectReference[]; 5773 host?: CompilerHost; 5774 createProgram?: CreateProgram<T>; 5775 } 5776 function createIncrementalProgram<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>({ rootNames, options, configFileParsingDiagnostics, projectReferences, host, createProgram }: IncrementalProgramOptions<T>): T; 5777 function createIncrementalProgramForArkTs({ rootNames, options, configFileParsingDiagnostics, projectReferences, host }: IncrementalProgramOptions<EmitAndSemanticDiagnosticsBuilderProgram>): EmitAndSemanticDiagnosticsBuilderProgram; 5778 type WatchStatusReporter = (diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number) => void; 5779 /** Create the program with rootNames and options, if they are undefined, oldProgram and new configFile diagnostics create new program */ 5780 type CreateProgram<T extends BuilderProgram> = (rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: T, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[] | undefined) => T; 5781 /** Host that has watch functionality used in --watch mode */ 5782 interface WatchHost { 5783 /** If provided, called with Diagnostic message that informs about change in watch status */ 5784 onWatchStatusChange?(diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number): void; 5785 /** Used to watch changes in source files, missing files needed to update the program or config file */ 5786 watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher; 5787 /** Used to watch resolved module's failed lookup locations, config file specs, type roots where auto type reference directives are added */ 5788 watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher; 5789 /** If provided, will be used to set delayed compilation, so that multiple changes in short span are compiled together */ 5790 setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; 5791 /** If provided, will be used to reset existing delayed compilation */ 5792 clearTimeout?(timeoutId: any): void; 5793 } 5794 interface ProgramHost<T extends BuilderProgram> { 5795 /** 5796 * Used to create the program when need for program creation or recreation detected 5797 */ 5798 createProgram: CreateProgram<T>; 5799 useCaseSensitiveFileNames(): boolean; 5800 getNewLine(): string; 5801 getCurrentDirectory(): string; 5802 getDefaultLibFileName(options: CompilerOptions): string; 5803 getDefaultLibLocation?(): string; 5804 createHash?(data: string): string; 5805 /** 5806 * Use to check file presence for source files and 5807 * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well 5808 */ 5809 fileExists(path: string): boolean; 5810 /** 5811 * Use to read file text for source files and 5812 * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well 5813 */ 5814 readFile(path: string, encoding?: string): string | undefined; 5815 /** If provided, used for module resolution as well as to handle directory structure */ 5816 directoryExists?(path: string): boolean; 5817 /** If provided, used in resolutions as well as handling directory structure */ 5818 getDirectories?(path: string): string[]; 5819 /** If provided, used to cache and handle directory structure modifications */ 5820 readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 5821 /** Symbol links resolution */ 5822 realpath?(path: string): string; 5823 /** If provided would be used to write log about compilation */ 5824 trace?(s: string): void; 5825 /** If provided is used to get the environment variable */ 5826 getEnvironmentVariable?(name: string): string | undefined; 5827 /** If provided, used to resolve the module names, otherwise typescript's default module resolution */ 5828 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 5829 /** If provided, used to resolve type reference directives, otherwise typescript's default resolution */ 5830 resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 5831 /** If provided along with custom resolveModuleNames or resolveTypeReferenceDirectives, used to determine if unchanged file path needs to re-resolve modules/type reference directives */ 5832 hasInvalidatedResolutions?(filePath: Path): boolean; 5833 /** 5834 * 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 5835 */ 5836 getModuleResolutionCache?(): ModuleResolutionCache | undefined; 5837 } 5838 interface WatchCompilerHost<T extends BuilderProgram> extends ProgramHost<T>, WatchHost { 5839 /** Instead of using output d.ts file from project reference, use its source file */ 5840 useSourceOfProjectReferenceRedirect?(): boolean; 5841 /** If provided, use this method to get parsed command lines for referenced projects */ 5842 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 5843 /** If provided, callback to invoke after every new program creation */ 5844 afterProgramCreate?(program: T): void; 5845 } 5846 /** 5847 * Host to create watch with root files and options 5848 */ 5849 interface WatchCompilerHostOfFilesAndCompilerOptions<T extends BuilderProgram> extends WatchCompilerHost<T> { 5850 /** root files to use to generate program */ 5851 rootFiles: string[]; 5852 /** Compiler options */ 5853 options: CompilerOptions; 5854 watchOptions?: WatchOptions; 5855 /** Project References */ 5856 projectReferences?: readonly ProjectReference[]; 5857 } 5858 /** 5859 * Host to create watch with config file 5860 */ 5861 interface WatchCompilerHostOfConfigFile<T extends BuilderProgram> extends WatchCompilerHost<T>, ConfigFileDiagnosticsReporter { 5862 /** Name of the config file to compile */ 5863 configFileName: string; 5864 /** Options to extend */ 5865 optionsToExtend?: CompilerOptions; 5866 watchOptionsToExtend?: WatchOptions; 5867 extraFileExtensions?: readonly FileExtensionInfo[]; 5868 /** 5869 * Used to generate source file names from the config file and its include, exclude, files rules 5870 * and also to cache the directory stucture 5871 */ 5872 readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 5873 } 5874 interface Watch<T> { 5875 /** Synchronize with host and get updated program */ 5876 getProgram(): T; 5877 /** Closes the watch */ 5878 close(): void; 5879 } 5880 /** 5881 * Creates the watch what generates program using the config file 5882 */ 5883 interface WatchOfConfigFile<T> extends Watch<T> { 5884 } 5885 /** 5886 * Creates the watch that generates program using the root files and compiler options 5887 */ 5888 interface WatchOfFilesAndCompilerOptions<T> extends Watch<T> { 5889 /** Updates the root files in the program, only if this is not config file compilation */ 5890 updateRootFileNames(fileNames: string[]): void; 5891 } 5892 /** 5893 * Create the watch compiler host for either configFile or fileNames and its options 5894 */ 5895 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>; 5896 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>; 5897 /** 5898 * Creates the watch from the host for root files and compiler options 5899 */ 5900 function createWatchProgram<T extends BuilderProgram>(host: WatchCompilerHostOfFilesAndCompilerOptions<T>): WatchOfFilesAndCompilerOptions<T>; 5901 /** 5902 * Creates the watch from the host for config file 5903 */ 5904 function createWatchProgram<T extends BuilderProgram>(host: WatchCompilerHostOfConfigFile<T>): WatchOfConfigFile<T>; 5905} 5906declare namespace ts { 5907 interface BuildOptions { 5908 dry?: boolean; 5909 force?: boolean; 5910 verbose?: boolean; 5911 incremental?: boolean; 5912 assumeChangesOnlyAffectDirectDependencies?: boolean; 5913 traceResolution?: boolean; 5914 [option: string]: CompilerOptionsValue | undefined; 5915 } 5916 type ReportEmitErrorSummary = (errorCount: number, filesInError: (ReportFileInError | undefined)[]) => void; 5917 interface ReportFileInError { 5918 fileName: string; 5919 line: number; 5920 } 5921 interface SolutionBuilderHostBase<T extends BuilderProgram> extends ProgramHost<T> { 5922 createDirectory?(path: string): void; 5923 /** 5924 * Should provide create directory and writeFile if done of invalidatedProjects is not invoked with 5925 * writeFileCallback 5926 */ 5927 writeFile?(path: string, data: string, writeByteOrderMark?: boolean): void; 5928 getCustomTransformers?: (project: string) => CustomTransformers | undefined; 5929 getModifiedTime(fileName: string): Date | undefined; 5930 setModifiedTime(fileName: string, date: Date): void; 5931 deleteFile(fileName: string): void; 5932 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 5933 reportDiagnostic: DiagnosticReporter; 5934 reportSolutionBuilderStatus: DiagnosticReporter; 5935 afterProgramEmitAndDiagnostics?(program: T): void; 5936 } 5937 interface SolutionBuilderHost<T extends BuilderProgram> extends SolutionBuilderHostBase<T> { 5938 reportErrorSummary?: ReportEmitErrorSummary; 5939 } 5940 interface SolutionBuilderWithWatchHost<T extends BuilderProgram> extends SolutionBuilderHostBase<T>, WatchHost { 5941 } 5942 interface SolutionBuilder<T extends BuilderProgram> { 5943 build(project?: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus; 5944 clean(project?: string): ExitStatus; 5945 buildReferences(project: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus; 5946 cleanReferences(project?: string): ExitStatus; 5947 getNextInvalidatedProject(cancellationToken?: CancellationToken): InvalidatedProject<T> | undefined; 5948 } 5949 /** 5950 * Create a function that reports watch status by writing to the system and handles the formating of the diagnostic 5951 */ 5952 function createBuilderStatusReporter(system: System, pretty?: boolean): DiagnosticReporter; 5953 function createSolutionBuilderHost<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>(system?: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportErrorSummary?: ReportEmitErrorSummary): SolutionBuilderHost<T>; 5954 function createSolutionBuilderWithWatchHost<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>(system?: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter): SolutionBuilderWithWatchHost<T>; 5955 function createSolutionBuilder<T extends BuilderProgram>(host: SolutionBuilderHost<T>, rootNames: readonly string[], defaultOptions: BuildOptions): SolutionBuilder<T>; 5956 function createSolutionBuilderWithWatch<T extends BuilderProgram>(host: SolutionBuilderWithWatchHost<T>, rootNames: readonly string[], defaultOptions: BuildOptions, baseWatchOptions?: WatchOptions): SolutionBuilder<T>; 5957 enum InvalidatedProjectKind { 5958 Build = 0, 5959 UpdateBundle = 1, 5960 UpdateOutputFileStamps = 2 5961 } 5962 interface InvalidatedProjectBase { 5963 readonly kind: InvalidatedProjectKind; 5964 readonly project: ResolvedConfigFileName; 5965 /** 5966 * To dispose this project and ensure that all the necessary actions are taken and state is updated accordingly 5967 */ 5968 done(cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, customTransformers?: CustomTransformers): ExitStatus; 5969 getCompilerOptions(): CompilerOptions; 5970 getCurrentDirectory(): string; 5971 } 5972 interface UpdateOutputFileStampsProject extends InvalidatedProjectBase { 5973 readonly kind: InvalidatedProjectKind.UpdateOutputFileStamps; 5974 updateOutputFileStatmps(): void; 5975 } 5976 interface BuildInvalidedProject<T extends BuilderProgram> extends InvalidatedProjectBase { 5977 readonly kind: InvalidatedProjectKind.Build; 5978 getBuilderProgram(): T | undefined; 5979 getProgram(): Program | undefined; 5980 getSourceFile(fileName: string): SourceFile | undefined; 5981 getSourceFiles(): readonly SourceFile[]; 5982 getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5983 getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; 5984 getConfigFileParsingDiagnostics(): readonly Diagnostic[]; 5985 getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5986 getAllDependencies(sourceFile: SourceFile): readonly string[]; 5987 getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; 5988 getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<readonly Diagnostic[]>; 5989 emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult | undefined; 5990 } 5991 interface UpdateBundleProject<T extends BuilderProgram> extends InvalidatedProjectBase { 5992 readonly kind: InvalidatedProjectKind.UpdateBundle; 5993 emit(writeFile?: WriteFileCallback, customTransformers?: CustomTransformers): EmitResult | BuildInvalidedProject<T> | undefined; 5994 } 5995 type InvalidatedProject<T extends BuilderProgram> = UpdateOutputFileStampsProject | BuildInvalidedProject<T> | UpdateBundleProject<T>; 5996} 5997declare namespace ts.server { 5998 type ActionSet = "action::set"; 5999 type ActionInvalidate = "action::invalidate"; 6000 type ActionPackageInstalled = "action::packageInstalled"; 6001 type EventTypesRegistry = "event::typesRegistry"; 6002 type EventBeginInstallTypes = "event::beginInstallTypes"; 6003 type EventEndInstallTypes = "event::endInstallTypes"; 6004 type EventInitializationFailed = "event::initializationFailed"; 6005} 6006declare namespace ts.server { 6007 interface TypingInstallerResponse { 6008 readonly kind: ActionSet | ActionInvalidate | EventTypesRegistry | ActionPackageInstalled | EventBeginInstallTypes | EventEndInstallTypes | EventInitializationFailed; 6009 } 6010 interface TypingInstallerRequestWithProjectName { 6011 readonly projectName: string; 6012 } 6013 interface DiscoverTypings extends TypingInstallerRequestWithProjectName { 6014 readonly fileNames: string[]; 6015 readonly projectRootPath: Path; 6016 readonly compilerOptions: CompilerOptions; 6017 readonly watchOptions?: WatchOptions; 6018 readonly typeAcquisition: TypeAcquisition; 6019 readonly unresolvedImports: SortedReadonlyArray<string>; 6020 readonly cachePath?: string; 6021 readonly kind: "discover"; 6022 } 6023 interface CloseProject extends TypingInstallerRequestWithProjectName { 6024 readonly kind: "closeProject"; 6025 } 6026 interface TypesRegistryRequest { 6027 readonly kind: "typesRegistry"; 6028 } 6029 interface InstallPackageRequest extends TypingInstallerRequestWithProjectName { 6030 readonly kind: "installPackage"; 6031 readonly fileName: Path; 6032 readonly packageName: string; 6033 readonly projectRootPath: Path; 6034 } 6035 interface PackageInstalledResponse extends ProjectResponse { 6036 readonly kind: ActionPackageInstalled; 6037 readonly success: boolean; 6038 readonly message: string; 6039 } 6040 interface InitializationFailedResponse extends TypingInstallerResponse { 6041 readonly kind: EventInitializationFailed; 6042 readonly message: string; 6043 readonly stack?: string; 6044 } 6045 interface ProjectResponse extends TypingInstallerResponse { 6046 readonly projectName: string; 6047 } 6048 interface InvalidateCachedTypings extends ProjectResponse { 6049 readonly kind: ActionInvalidate; 6050 } 6051 interface InstallTypes extends ProjectResponse { 6052 readonly kind: EventBeginInstallTypes | EventEndInstallTypes; 6053 readonly eventId: number; 6054 readonly typingsInstallerVersion: string; 6055 readonly packagesToInstall: readonly string[]; 6056 } 6057 interface BeginInstallTypes extends InstallTypes { 6058 readonly kind: EventBeginInstallTypes; 6059 } 6060 interface EndInstallTypes extends InstallTypes { 6061 readonly kind: EventEndInstallTypes; 6062 readonly installSuccess: boolean; 6063 } 6064 interface SetTypings extends ProjectResponse { 6065 readonly typeAcquisition: TypeAcquisition; 6066 readonly compilerOptions: CompilerOptions; 6067 readonly typings: string[]; 6068 readonly unresolvedImports: SortedReadonlyArray<string>; 6069 readonly kind: ActionSet; 6070 } 6071} 6072declare namespace ts { 6073 interface Node { 6074 getSourceFile(): SourceFile; 6075 getChildCount(sourceFile?: SourceFile): number; 6076 getChildAt(index: number, sourceFile?: SourceFile): Node; 6077 getChildren(sourceFile?: SourceFile): Node[]; 6078 getStart(sourceFile?: SourceFile, includeJsDocComment?: boolean): number; 6079 getFullStart(): number; 6080 getEnd(): number; 6081 getWidth(sourceFile?: SourceFileLike): number; 6082 getFullWidth(): number; 6083 getLeadingTriviaWidth(sourceFile?: SourceFile): number; 6084 getFullText(sourceFile?: SourceFile): string; 6085 getText(sourceFile?: SourceFile): string; 6086 getFirstToken(sourceFile?: SourceFile): Node | undefined; 6087 getLastToken(sourceFile?: SourceFile): Node | undefined; 6088 forEachChild<T>(cbNode: (node: Node) => T | undefined, cbNodeArray?: (nodes: NodeArray<Node>) => T | undefined): T | undefined; 6089 } 6090 interface Identifier { 6091 readonly text: string; 6092 } 6093 interface PrivateIdentifier { 6094 readonly text: string; 6095 } 6096 interface Symbol { 6097 readonly name: string; 6098 getFlags(): SymbolFlags; 6099 getEscapedName(): __String; 6100 getName(): string; 6101 getDeclarations(): Declaration[] | undefined; 6102 getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; 6103 getJsDocTags(checker?: TypeChecker): JSDocTagInfo[]; 6104 } 6105 interface Type { 6106 getFlags(): TypeFlags; 6107 getSymbol(): Symbol | undefined; 6108 getProperties(): Symbol[]; 6109 getProperty(propertyName: string): Symbol | undefined; 6110 getApparentProperties(): Symbol[]; 6111 getCallSignatures(): readonly Signature[]; 6112 getConstructSignatures(): readonly Signature[]; 6113 getStringIndexType(): Type | undefined; 6114 getNumberIndexType(): Type | undefined; 6115 getBaseTypes(): BaseType[] | undefined; 6116 getNonNullableType(): Type; 6117 getConstraint(): Type | undefined; 6118 getDefault(): Type | undefined; 6119 isUnion(): this is UnionType; 6120 isIntersection(): this is IntersectionType; 6121 isUnionOrIntersection(): this is UnionOrIntersectionType; 6122 isLiteral(): this is LiteralType; 6123 isStringLiteral(): this is StringLiteralType; 6124 isNumberLiteral(): this is NumberLiteralType; 6125 isTypeParameter(): this is TypeParameter; 6126 isClassOrInterface(): this is InterfaceType; 6127 isClass(): this is InterfaceType; 6128 isIndexType(): this is IndexType; 6129 } 6130 interface TypeReference { 6131 typeArguments?: readonly Type[]; 6132 } 6133 interface Signature { 6134 getDeclaration(): SignatureDeclaration; 6135 getTypeParameters(): TypeParameter[] | undefined; 6136 getParameters(): Symbol[]; 6137 getTypeParameterAtPosition(pos: number): Type; 6138 getReturnType(): Type; 6139 getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; 6140 getJsDocTags(): JSDocTagInfo[]; 6141 } 6142 interface SourceFile { 6143 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6144 getLineEndOfPosition(pos: number): number; 6145 getLineStarts(): readonly number[]; 6146 getPositionOfLineAndCharacter(line: number, character: number): number; 6147 update(newText: string, textChangeRange: TextChangeRange): SourceFile; 6148 } 6149 interface SourceFileLike { 6150 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6151 } 6152 interface SourceMapSource { 6153 getLineAndCharacterOfPosition(pos: number): LineAndCharacter; 6154 } 6155 /** 6156 * Represents an immutable snapshot of a script at a specified time.Once acquired, the 6157 * snapshot is observably immutable. i.e. the same calls with the same parameters will return 6158 * the same values. 6159 */ 6160 interface IScriptSnapshot { 6161 /** Gets a portion of the script snapshot specified by [start, end). */ 6162 getText(start: number, end: number): string; 6163 /** Gets the length of this script snapshot. */ 6164 getLength(): number; 6165 /** 6166 * Gets the TextChangeRange that describe how the text changed between this text and 6167 * an older version. This information is used by the incremental parser to determine 6168 * what sections of the script need to be re-parsed. 'undefined' can be returned if the 6169 * change range cannot be determined. However, in that case, incremental parsing will 6170 * not happen and the entire document will be re - parsed. 6171 */ 6172 getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange | undefined; 6173 /** Releases all resources held by this script snapshot */ 6174 dispose?(): void; 6175 } 6176 namespace ScriptSnapshot { 6177 function fromString(text: string): IScriptSnapshot; 6178 } 6179 interface PreProcessedFileInfo { 6180 referencedFiles: FileReference[]; 6181 typeReferenceDirectives: FileReference[]; 6182 libReferenceDirectives: FileReference[]; 6183 importedFiles: FileReference[]; 6184 ambientExternalModules?: string[]; 6185 isLibFile: boolean; 6186 } 6187 interface HostCancellationToken { 6188 isCancellationRequested(): boolean; 6189 } 6190 interface InstallPackageOptions { 6191 fileName: Path; 6192 packageName: string; 6193 } 6194 interface PerformanceEvent { 6195 kind: "UpdateGraph" | "CreatePackageJsonAutoImportProvider"; 6196 durationMs: number; 6197 } 6198 enum LanguageServiceMode { 6199 Semantic = 0, 6200 PartialSemantic = 1, 6201 Syntactic = 2 6202 } 6203 interface IncompleteCompletionsCache { 6204 get(): CompletionInfo | undefined; 6205 set(response: CompletionInfo): void; 6206 clear(): void; 6207 } 6208 interface LanguageServiceHost extends GetEffectiveTypeRootsHost, MinimalResolutionCacheHost { 6209 getCompilationSettings(): CompilerOptions; 6210 getNewLine?(): string; 6211 getProjectVersion?(): string; 6212 getScriptFileNames(): string[]; 6213 getScriptKind?(fileName: string): ScriptKind; 6214 getScriptVersion(fileName: string): string; 6215 getScriptSnapshot(fileName: string): IScriptSnapshot | undefined; 6216 getProjectReferences?(): readonly ProjectReference[] | undefined; 6217 getLocalizedDiagnosticMessages?(): any; 6218 getCancellationToken?(): HostCancellationToken; 6219 getCurrentDirectory(): string; 6220 getDefaultLibFileName(options: CompilerOptions): string; 6221 log?(s: string): void; 6222 trace?(s: string): void; 6223 error?(s: string): void; 6224 useCaseSensitiveFileNames?(): boolean; 6225 readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; 6226 realpath?(path: string): string; 6227 readFile(path: string, encoding?: string): string | undefined; 6228 fileExists(path: string): boolean; 6229 getTypeRootsVersion?(): number; 6230 resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; 6231 getResolvedModuleWithFailedLookupLocationsFromCache?(modulename: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; 6232 resolveTypeReferenceDirectives?(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; 6233 getDirectories?(directoryName: string): string[]; 6234 /** 6235 * Gets a set of custom transformers to use during emit. 6236 */ 6237 getCustomTransformers?(): CustomTransformers | undefined; 6238 isKnownTypesPackageName?(name: string): boolean; 6239 installPackage?(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>; 6240 writeFile?(fileName: string, content: string): void; 6241 getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; 6242 getJsDocNodeCheckedConfig?(jsDocFileCheckInfo: FileCheckModuleInfo, symbolSourceFilePath: string): JsDocNodeCheckConfig; 6243 getJsDocNodeConditionCheckedResult?(jsDocFileCheckedInfo: FileCheckModuleInfo, jsDocs: JsDocTagInfo[]): ConditionCheckResult; 6244 getFileCheckedModuleInfo?(containFilePath: string): FileCheckModuleInfo; 6245 shouldCompletionSortCustom?: boolean; 6246 uiProps?: string[]; 6247 clearProps?(): void; 6248 } 6249 type WithMetadata<T> = T & { 6250 metadata?: unknown; 6251 }; 6252 enum SemanticClassificationFormat { 6253 Original = "original", 6254 TwentyTwenty = "2020" 6255 } 6256 interface LanguageService { 6257 /** This is used as a part of restarting the language service. */ 6258 cleanupSemanticCache(): void; 6259 /** 6260 * Gets errors indicating invalid syntax in a file. 6261 * 6262 * In English, "this cdeo have, erorrs" is syntactically invalid because it has typos, 6263 * grammatical errors, and misplaced punctuation. Likewise, examples of syntax 6264 * errors in TypeScript are missing parentheses in an `if` statement, mismatched 6265 * curly braces, and using a reserved keyword as a variable name. 6266 * 6267 * These diagnostics are inexpensive to compute and don't require knowledge of 6268 * other files. Note that a non-empty result increases the likelihood of false positives 6269 * from `getSemanticDiagnostics`. 6270 * 6271 * While these represent the majority of syntax-related diagnostics, there are some 6272 * that require the type system, which will be present in `getSemanticDiagnostics`. 6273 * 6274 * @param fileName A path to the file you want syntactic diagnostics for 6275 */ 6276 getSyntacticDiagnostics(fileName: string): DiagnosticWithLocation[]; 6277 /** 6278 * Gets warnings or errors indicating type system issues in a given file. 6279 * Requesting semantic diagnostics may start up the type system and 6280 * run deferred work, so the first call may take longer than subsequent calls. 6281 * 6282 * Unlike the other get*Diagnostics functions, these diagnostics can potentially not 6283 * include a reference to a source file. Specifically, the first time this is called, 6284 * it will return global diagnostics with no associated location. 6285 * 6286 * To contrast the differences between semantic and syntactic diagnostics, consider the 6287 * sentence: "The sun is green." is syntactically correct; those are real English words with 6288 * correct sentence structure. However, it is semantically invalid, because it is not true. 6289 * 6290 * @param fileName A path to the file you want semantic diagnostics for 6291 */ 6292 getSemanticDiagnostics(fileName: string): Diagnostic[]; 6293 /** 6294 * Gets suggestion diagnostics for a specific file. These diagnostics tend to 6295 * proactively suggest refactors, as opposed to diagnostics that indicate 6296 * potentially incorrect runtime behavior. 6297 * 6298 * @param fileName A path to the file you want semantic diagnostics for 6299 */ 6300 getSuggestionDiagnostics(fileName: string): DiagnosticWithLocation[]; 6301 /** 6302 * Gets global diagnostics related to the program configuration and compiler options. 6303 */ 6304 getCompilerOptionsDiagnostics(): Diagnostic[]; 6305 /** @deprecated Use getEncodedSyntacticClassifications instead. */ 6306 getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; 6307 getSyntacticClassifications(fileName: string, span: TextSpan, format: SemanticClassificationFormat): ClassifiedSpan[] | ClassifiedSpan2020[]; 6308 /** @deprecated Use getEncodedSemanticClassifications instead. */ 6309 getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; 6310 getSemanticClassifications(fileName: string, span: TextSpan, format: SemanticClassificationFormat): ClassifiedSpan[] | ClassifiedSpan2020[]; 6311 /** Encoded as triples of [start, length, ClassificationType]. */ 6312 getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications; 6313 /** 6314 * Gets semantic highlights information for a particular file. Has two formats, an older 6315 * version used by VS and a format used by VS Code. 6316 * 6317 * @param fileName The path to the file 6318 * @param position A text span to return results within 6319 * @param format Which format to use, defaults to "original" 6320 * @returns a number array encoded as triples of [start, length, ClassificationType, ...]. 6321 */ 6322 getEncodedSemanticClassifications(fileName: string, span: TextSpan, format?: SemanticClassificationFormat): Classifications; 6323 /** 6324 * Gets completion entries at a particular position in a file. 6325 * 6326 * @param fileName The path to the file 6327 * @param position A zero-based index of the character where you want the entries 6328 * @param options An object describing how the request was triggered and what kinds 6329 * of code actions can be returned with the completions. 6330 * @param formattingSettings settings needed for calling formatting functions. 6331 */ 6332 getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined, formattingSettings?: FormatCodeSettings): WithMetadata<CompletionInfo> | undefined; 6333 /** 6334 * Gets the extended details for a completion entry retrieved from `getCompletionsAtPosition`. 6335 * 6336 * @param fileName The path to the file 6337 * @param position A zero based index of the character where you want the entries 6338 * @param entryName The `name` from an existing completion which came from `getCompletionsAtPosition` 6339 * @param formatOptions How should code samples in the completions be formatted, can be undefined for backwards compatibility 6340 * @param source `source` property from the completion entry 6341 * @param preferences User settings, can be undefined for backwards compatibility 6342 * @param data `data` property from the completion entry 6343 */ 6344 getCompletionEntryDetails(fileName: string, position: number, entryName: string, formatOptions: FormatCodeOptions | FormatCodeSettings | undefined, source: string | undefined, preferences: UserPreferences | undefined, data: CompletionEntryData | undefined): CompletionEntryDetails | undefined; 6345 getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): Symbol | undefined; 6346 /** 6347 * Gets semantic information about the identifier at a particular position in a 6348 * file. Quick info is what you typically see when you hover in an editor. 6349 * 6350 * @param fileName The path to the file 6351 * @param position A zero-based index of the character where you want the quick info 6352 */ 6353 getQuickInfoAtPosition(fileName: string, position: number): QuickInfo | undefined; 6354 getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan | undefined; 6355 getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan | undefined; 6356 getSignatureHelpItems(fileName: string, position: number, options: SignatureHelpItemsOptions | undefined): SignatureHelpItems | undefined; 6357 getRenameInfo(fileName: string, position: number, preferences: UserPreferences): RenameInfo; 6358 /** @deprecated Use the signature with `UserPreferences` instead. */ 6359 getRenameInfo(fileName: string, position: number, options?: RenameInfoOptions): RenameInfo; 6360 findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename?: boolean): readonly RenameLocation[] | undefined; 6361 getSmartSelectionRange(fileName: string, position: number): SelectionRange; 6362 getDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined; 6363 getDefinitionAndBoundSpan(fileName: string, position: number): DefinitionInfoAndBoundSpan | undefined; 6364 getTypeDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined; 6365 getImplementationAtPosition(fileName: string, position: number): readonly ImplementationLocation[] | undefined; 6366 getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[] | undefined; 6367 findReferences(fileName: string, position: number): ReferencedSymbol[] | undefined; 6368 getDocumentHighlights(fileName: string, position: number, filesToSearch: string[]): DocumentHighlights[] | undefined; 6369 getFileReferences(fileName: string): ReferenceEntry[]; 6370 /** @deprecated */ 6371 getOccurrencesAtPosition(fileName: string, position: number): readonly ReferenceEntry[] | undefined; 6372 getNavigateToItems(searchValue: string, maxResultCount?: number, fileName?: string, excludeDtsFiles?: boolean): NavigateToItem[]; 6373 getNavigationBarItems(fileName: string): NavigationBarItem[]; 6374 getNavigationTree(fileName: string): NavigationTree; 6375 prepareCallHierarchy(fileName: string, position: number): CallHierarchyItem | CallHierarchyItem[] | undefined; 6376 provideCallHierarchyIncomingCalls(fileName: string, position: number): CallHierarchyIncomingCall[]; 6377 provideCallHierarchyOutgoingCalls(fileName: string, position: number): CallHierarchyOutgoingCall[]; 6378 provideInlayHints(fileName: string, span: TextSpan, preferences: UserPreferences | undefined): InlayHint[]; 6379 getOutliningSpans(fileName: string): OutliningSpan[]; 6380 getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; 6381 getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; 6382 getIndentationAtPosition(fileName: string, position: number, options: EditorOptions | EditorSettings): number; 6383 getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6384 getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6385 getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; 6386 getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; 6387 isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; 6388 /** 6389 * 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. 6390 * Editors should call this after `>` is typed. 6391 */ 6392 getJsxClosingTagAtPosition(fileName: string, position: number): JsxClosingTagInfo | undefined; 6393 getSpanOfEnclosingComment(fileName: string, position: number, onlyMultiLine: boolean): TextSpan | undefined; 6394 toLineColumnOffset?(fileName: string, position: number): LineAndCharacter; 6395 getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: readonly number[], formatOptions: FormatCodeSettings, preferences: UserPreferences): readonly CodeFixAction[]; 6396 getCombinedCodeFix(scope: CombinedCodeFixScope, fixId: {}, formatOptions: FormatCodeSettings, preferences: UserPreferences): CombinedCodeActions; 6397 applyCodeActionCommand(action: CodeActionCommand, formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult>; 6398 applyCodeActionCommand(action: CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult[]>; 6399 applyCodeActionCommand(action: CodeActionCommand | CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>; 6400 /** @deprecated `fileName` will be ignored */ 6401 applyCodeActionCommand(fileName: string, action: CodeActionCommand): Promise<ApplyCodeActionCommandResult>; 6402 /** @deprecated `fileName` will be ignored */ 6403 applyCodeActionCommand(fileName: string, action: CodeActionCommand[]): Promise<ApplyCodeActionCommandResult[]>; 6404 /** @deprecated `fileName` will be ignored */ 6405 applyCodeActionCommand(fileName: string, action: CodeActionCommand | CodeActionCommand[]): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>; 6406 getApplicableRefactors(fileName: string, positionOrRange: number | TextRange, preferences: UserPreferences | undefined, triggerReason?: RefactorTriggerReason, kind?: string): ApplicableRefactorInfo[]; 6407 getEditsForRefactor(fileName: string, formatOptions: FormatCodeSettings, positionOrRange: number | TextRange, refactorName: string, actionName: string, preferences: UserPreferences | undefined): RefactorEditInfo | undefined; 6408 organizeImports(args: OrganizeImportsArgs, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[]; 6409 getEditsForFileRename(oldFilePath: string, newFilePath: string, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[]; 6410 getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean, forceDtsEmit?: boolean): EmitOutput; 6411 getProgram(): Program | undefined; 6412 getBuilderProgram(): BuilderProgram | undefined; 6413 toggleLineComment(fileName: string, textRange: TextRange): TextChange[]; 6414 toggleMultilineComment(fileName: string, textRange: TextRange): TextChange[]; 6415 commentSelection(fileName: string, textRange: TextRange): TextChange[]; 6416 uncommentSelection(fileName: string, textRange: TextRange): TextChange[]; 6417 dispose(): void; 6418 updateRootFiles?(rootFiles: string[]): void; 6419 getProps?(): string[]; 6420 } 6421 interface JsxClosingTagInfo { 6422 readonly newText: string; 6423 } 6424 interface CombinedCodeFixScope { 6425 type: "file"; 6426 fileName: string; 6427 } 6428 enum OrganizeImportsMode { 6429 All = "All", 6430 SortAndCombine = "SortAndCombine", 6431 RemoveUnused = "RemoveUnused" 6432 } 6433 interface OrganizeImportsArgs extends CombinedCodeFixScope { 6434 /** @deprecated Use `mode` instead */ 6435 skipDestructiveCodeActions?: boolean; 6436 mode?: OrganizeImportsMode; 6437 } 6438 type CompletionsTriggerCharacter = "." | '"' | "'" | "`" | "/" | "@" | "<" | "#" | " "; 6439 enum CompletionTriggerKind { 6440 /** Completion was triggered by typing an identifier, manual invocation (e.g Ctrl+Space) or via API. */ 6441 Invoked = 1, 6442 /** Completion was triggered by a trigger character. */ 6443 TriggerCharacter = 2, 6444 /** Completion was re-triggered as the current completion list is incomplete. */ 6445 TriggerForIncompleteCompletions = 3 6446 } 6447 interface GetCompletionsAtPositionOptions extends UserPreferences { 6448 /** 6449 * If the editor is asking for completions because a certain character was typed 6450 * (as opposed to when the user explicitly requested them) this should be set. 6451 */ 6452 triggerCharacter?: CompletionsTriggerCharacter; 6453 triggerKind?: CompletionTriggerKind; 6454 /** @deprecated Use includeCompletionsForModuleExports */ 6455 includeExternalModuleExports?: boolean; 6456 /** @deprecated Use includeCompletionsWithInsertText */ 6457 includeInsertTextCompletions?: boolean; 6458 } 6459 type SignatureHelpTriggerCharacter = "," | "(" | "<"; 6460 type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; 6461 interface SignatureHelpItemsOptions { 6462 triggerReason?: SignatureHelpTriggerReason; 6463 } 6464 type SignatureHelpTriggerReason = SignatureHelpInvokedReason | SignatureHelpCharacterTypedReason | SignatureHelpRetriggeredReason; 6465 /** 6466 * Signals that the user manually requested signature help. 6467 * The language service will unconditionally attempt to provide a result. 6468 */ 6469 interface SignatureHelpInvokedReason { 6470 kind: "invoked"; 6471 triggerCharacter?: undefined; 6472 } 6473 /** 6474 * Signals that the signature help request came from a user typing a character. 6475 * Depending on the character and the syntactic context, the request may or may not be served a result. 6476 */ 6477 interface SignatureHelpCharacterTypedReason { 6478 kind: "characterTyped"; 6479 /** 6480 * Character that was responsible for triggering signature help. 6481 */ 6482 triggerCharacter: SignatureHelpTriggerCharacter; 6483 } 6484 /** 6485 * Signals that this signature help request came from typing a character or moving the cursor. 6486 * This should only occur if a signature help session was already active and the editor needs to see if it should adjust. 6487 * The language service will unconditionally attempt to provide a result. 6488 * `triggerCharacter` can be `undefined` for a retrigger caused by a cursor move. 6489 */ 6490 interface SignatureHelpRetriggeredReason { 6491 kind: "retrigger"; 6492 /** 6493 * Character that was responsible for triggering signature help. 6494 */ 6495 triggerCharacter?: SignatureHelpRetriggerCharacter; 6496 } 6497 interface ApplyCodeActionCommandResult { 6498 successMessage: string; 6499 } 6500 interface Classifications { 6501 spans: number[]; 6502 endOfLineState: EndOfLineState; 6503 } 6504 interface ClassifiedSpan { 6505 textSpan: TextSpan; 6506 classificationType: ClassificationTypeNames; 6507 } 6508 interface ClassifiedSpan2020 { 6509 textSpan: TextSpan; 6510 classificationType: number; 6511 } 6512 /** 6513 * Navigation bar interface designed for visual studio's dual-column layout. 6514 * This does not form a proper tree. 6515 * The navbar is returned as a list of top-level items, each of which has a list of child items. 6516 * Child items always have an empty array for their `childItems`. 6517 */ 6518 interface NavigationBarItem { 6519 text: string; 6520 kind: ScriptElementKind; 6521 kindModifiers: string; 6522 spans: TextSpan[]; 6523 childItems: NavigationBarItem[]; 6524 indent: number; 6525 bolded: boolean; 6526 grayed: boolean; 6527 } 6528 /** 6529 * Node in a tree of nested declarations in a file. 6530 * The top node is always a script or module node. 6531 */ 6532 interface NavigationTree { 6533 /** Name of the declaration, or a short description, e.g. "<class>". */ 6534 text: string; 6535 kind: ScriptElementKind; 6536 /** ScriptElementKindModifier separated by commas, e.g. "public,abstract" */ 6537 kindModifiers: string; 6538 /** 6539 * Spans of the nodes that generated this declaration. 6540 * There will be more than one if this is the result of merging. 6541 */ 6542 spans: TextSpan[]; 6543 nameSpan: TextSpan | undefined; 6544 /** Present if non-empty */ 6545 childItems?: NavigationTree[]; 6546 } 6547 interface CallHierarchyItem { 6548 name: string; 6549 kind: ScriptElementKind; 6550 kindModifiers?: string; 6551 file: string; 6552 span: TextSpan; 6553 selectionSpan: TextSpan; 6554 containerName?: string; 6555 } 6556 interface CallHierarchyIncomingCall { 6557 from: CallHierarchyItem; 6558 fromSpans: TextSpan[]; 6559 } 6560 interface CallHierarchyOutgoingCall { 6561 to: CallHierarchyItem; 6562 fromSpans: TextSpan[]; 6563 } 6564 enum InlayHintKind { 6565 Type = "Type", 6566 Parameter = "Parameter", 6567 Enum = "Enum" 6568 } 6569 interface InlayHint { 6570 text: string; 6571 position: number; 6572 kind: InlayHintKind; 6573 whitespaceBefore?: boolean; 6574 whitespaceAfter?: boolean; 6575 } 6576 interface TodoCommentDescriptor { 6577 text: string; 6578 priority: number; 6579 } 6580 interface TodoComment { 6581 descriptor: TodoCommentDescriptor; 6582 message: string; 6583 position: number; 6584 } 6585 interface TextChange { 6586 span: TextSpan; 6587 newText: string; 6588 } 6589 interface FileTextChanges { 6590 fileName: string; 6591 textChanges: readonly TextChange[]; 6592 isNewFile?: boolean; 6593 } 6594 interface CodeAction { 6595 /** Description of the code action to display in the UI of the editor */ 6596 description: string; 6597 /** Text changes to apply to each file as part of the code action */ 6598 changes: FileTextChanges[]; 6599 /** 6600 * If the user accepts the code fix, the editor should send the action back in a `applyAction` request. 6601 * This allows the language service to have side effects (e.g. installing dependencies) upon a code fix. 6602 */ 6603 commands?: CodeActionCommand[]; 6604 } 6605 interface CodeFixAction extends CodeAction { 6606 /** Short name to identify the fix, for use by telemetry. */ 6607 fixName: string; 6608 /** 6609 * If present, one may call 'getCombinedCodeFix' with this fixId. 6610 * This may be omitted to indicate that the code fix can't be applied in a group. 6611 */ 6612 fixId?: {}; 6613 fixAllDescription?: string; 6614 } 6615 interface CombinedCodeActions { 6616 changes: readonly FileTextChanges[]; 6617 commands?: readonly CodeActionCommand[]; 6618 } 6619 type CodeActionCommand = InstallPackageAction; 6620 interface InstallPackageAction { 6621 } 6622 /** 6623 * A set of one or more available refactoring actions, grouped under a parent refactoring. 6624 */ 6625 interface ApplicableRefactorInfo { 6626 /** 6627 * The programmatic name of the refactoring 6628 */ 6629 name: string; 6630 /** 6631 * A description of this refactoring category to show to the user. 6632 * If the refactoring gets inlined (see below), this text will not be visible. 6633 */ 6634 description: string; 6635 /** 6636 * Inlineable refactorings can have their actions hoisted out to the top level 6637 * of a context menu. Non-inlineanable refactorings should always be shown inside 6638 * their parent grouping. 6639 * 6640 * If not specified, this value is assumed to be 'true' 6641 */ 6642 inlineable?: boolean; 6643 actions: RefactorActionInfo[]; 6644 } 6645 /** 6646 * Represents a single refactoring action - for example, the "Extract Method..." refactor might 6647 * offer several actions, each corresponding to a surround class or closure to extract into. 6648 */ 6649 interface RefactorActionInfo { 6650 /** 6651 * The programmatic name of the refactoring action 6652 */ 6653 name: string; 6654 /** 6655 * A description of this refactoring action to show to the user. 6656 * If the parent refactoring is inlined away, this will be the only text shown, 6657 * so this description should make sense by itself if the parent is inlineable=true 6658 */ 6659 description: string; 6660 /** 6661 * A message to show to the user if the refactoring cannot be applied in 6662 * the current context. 6663 */ 6664 notApplicableReason?: string; 6665 /** 6666 * The hierarchical dotted name of the refactor action. 6667 */ 6668 kind?: string; 6669 } 6670 /** 6671 * A set of edits to make in response to a refactor action, plus an optional 6672 * location where renaming should be invoked from 6673 */ 6674 interface RefactorEditInfo { 6675 edits: FileTextChanges[]; 6676 renameFilename?: string; 6677 renameLocation?: number; 6678 commands?: CodeActionCommand[]; 6679 } 6680 type RefactorTriggerReason = "implicit" | "invoked"; 6681 interface TextInsertion { 6682 newText: string; 6683 /** The position in newText the caret should point to after the insertion. */ 6684 caretOffset: number; 6685 } 6686 interface DocumentSpan { 6687 textSpan: TextSpan; 6688 fileName: string; 6689 /** 6690 * If the span represents a location that was remapped (e.g. via a .d.ts.map file), 6691 * then the original filename and span will be specified here 6692 */ 6693 originalTextSpan?: TextSpan; 6694 originalFileName?: string; 6695 /** 6696 * If DocumentSpan.textSpan is the span for name of the declaration, 6697 * then this is the span for relevant declaration 6698 */ 6699 contextSpan?: TextSpan; 6700 originalContextSpan?: TextSpan; 6701 } 6702 interface RenameLocation extends DocumentSpan { 6703 readonly prefixText?: string; 6704 readonly suffixText?: string; 6705 } 6706 interface ReferenceEntry extends DocumentSpan { 6707 isWriteAccess: boolean; 6708 isInString?: true; 6709 } 6710 interface ImplementationLocation extends DocumentSpan { 6711 kind: ScriptElementKind; 6712 displayParts: SymbolDisplayPart[]; 6713 } 6714 enum HighlightSpanKind { 6715 none = "none", 6716 definition = "definition", 6717 reference = "reference", 6718 writtenReference = "writtenReference" 6719 } 6720 interface HighlightSpan { 6721 fileName?: string; 6722 isInString?: true; 6723 textSpan: TextSpan; 6724 contextSpan?: TextSpan; 6725 kind: HighlightSpanKind; 6726 } 6727 interface NavigateToItem { 6728 name: string; 6729 kind: ScriptElementKind; 6730 kindModifiers: string; 6731 matchKind: "exact" | "prefix" | "substring" | "camelCase"; 6732 isCaseSensitive: boolean; 6733 fileName: string; 6734 textSpan: TextSpan; 6735 containerName: string; 6736 containerKind: ScriptElementKind; 6737 } 6738 enum IndentStyle { 6739 None = 0, 6740 Block = 1, 6741 Smart = 2 6742 } 6743 enum SemicolonPreference { 6744 Ignore = "ignore", 6745 Insert = "insert", 6746 Remove = "remove" 6747 } 6748 /** @deprecated - consider using EditorSettings instead */ 6749 interface EditorOptions { 6750 BaseIndentSize?: number; 6751 IndentSize: number; 6752 TabSize: number; 6753 NewLineCharacter: string; 6754 ConvertTabsToSpaces: boolean; 6755 IndentStyle: IndentStyle; 6756 } 6757 interface EditorSettings { 6758 baseIndentSize?: number; 6759 indentSize?: number; 6760 tabSize?: number; 6761 newLineCharacter?: string; 6762 convertTabsToSpaces?: boolean; 6763 indentStyle?: IndentStyle; 6764 trimTrailingWhitespace?: boolean; 6765 } 6766 /** @deprecated - consider using FormatCodeSettings instead */ 6767 interface FormatCodeOptions extends EditorOptions { 6768 InsertSpaceAfterCommaDelimiter: boolean; 6769 InsertSpaceAfterSemicolonInForStatements: boolean; 6770 InsertSpaceBeforeAndAfterBinaryOperators: boolean; 6771 InsertSpaceAfterConstructor?: boolean; 6772 InsertSpaceAfterKeywordsInControlFlowStatements: boolean; 6773 InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; 6774 InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; 6775 InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean; 6776 InsertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; 6777 InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean; 6778 InsertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; 6779 InsertSpaceAfterTypeAssertion?: boolean; 6780 InsertSpaceBeforeFunctionParenthesis?: boolean; 6781 PlaceOpenBraceOnNewLineForFunctions: boolean; 6782 PlaceOpenBraceOnNewLineForControlBlocks: boolean; 6783 insertSpaceBeforeTypeAnnotation?: boolean; 6784 } 6785 interface FormatCodeSettings extends EditorSettings { 6786 readonly insertSpaceAfterCommaDelimiter?: boolean; 6787 readonly insertSpaceAfterSemicolonInForStatements?: boolean; 6788 readonly insertSpaceBeforeAndAfterBinaryOperators?: boolean; 6789 readonly insertSpaceAfterConstructor?: boolean; 6790 readonly insertSpaceAfterKeywordsInControlFlowStatements?: boolean; 6791 readonly insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean; 6792 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean; 6793 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean; 6794 readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; 6795 readonly insertSpaceAfterOpeningAndBeforeClosingEmptyBraces?: boolean; 6796 readonly insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean; 6797 readonly insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; 6798 readonly insertSpaceAfterTypeAssertion?: boolean; 6799 readonly insertSpaceBeforeFunctionParenthesis?: boolean; 6800 readonly placeOpenBraceOnNewLineForFunctions?: boolean; 6801 readonly placeOpenBraceOnNewLineForControlBlocks?: boolean; 6802 readonly insertSpaceBeforeTypeAnnotation?: boolean; 6803 readonly indentMultiLineObjectLiteralBeginningOnBlankLine?: boolean; 6804 readonly semicolons?: SemicolonPreference; 6805 } 6806 function getDefaultFormatCodeSettings(newLineCharacter?: string): FormatCodeSettings; 6807 interface DefinitionInfo extends DocumentSpan { 6808 kind: ScriptElementKind; 6809 name: string; 6810 containerKind: ScriptElementKind; 6811 containerName: string; 6812 unverified?: boolean; 6813 } 6814 interface DefinitionInfoAndBoundSpan { 6815 definitions?: readonly DefinitionInfo[]; 6816 textSpan: TextSpan; 6817 } 6818 interface ReferencedSymbolDefinitionInfo extends DefinitionInfo { 6819 displayParts: SymbolDisplayPart[]; 6820 } 6821 interface ReferencedSymbol { 6822 definition: ReferencedSymbolDefinitionInfo; 6823 references: ReferencedSymbolEntry[]; 6824 } 6825 interface ReferencedSymbolEntry extends ReferenceEntry { 6826 isDefinition?: boolean; 6827 } 6828 enum SymbolDisplayPartKind { 6829 aliasName = 0, 6830 className = 1, 6831 enumName = 2, 6832 fieldName = 3, 6833 interfaceName = 4, 6834 keyword = 5, 6835 lineBreak = 6, 6836 numericLiteral = 7, 6837 stringLiteral = 8, 6838 localName = 9, 6839 methodName = 10, 6840 moduleName = 11, 6841 operator = 12, 6842 parameterName = 13, 6843 propertyName = 14, 6844 punctuation = 15, 6845 space = 16, 6846 text = 17, 6847 typeParameterName = 18, 6848 enumMemberName = 19, 6849 functionName = 20, 6850 regularExpressionLiteral = 21, 6851 link = 22, 6852 linkName = 23, 6853 linkText = 24 6854 } 6855 interface SymbolDisplayPart { 6856 text: string; 6857 kind: string; 6858 } 6859 interface JSDocLinkDisplayPart extends SymbolDisplayPart { 6860 target: DocumentSpan; 6861 } 6862 interface JSDocTagInfo { 6863 name: string; 6864 text?: SymbolDisplayPart[] | string; 6865 index?: number; 6866 } 6867 interface QuickInfo { 6868 kind: ScriptElementKind; 6869 kindModifiers: string; 6870 textSpan: TextSpan; 6871 displayParts?: SymbolDisplayPart[]; 6872 documentation?: SymbolDisplayPart[]; 6873 tags?: JSDocTagInfo[]; 6874 } 6875 type RenameInfo = RenameInfoSuccess | RenameInfoFailure; 6876 interface RenameInfoSuccess { 6877 canRename: true; 6878 /** 6879 * File or directory to rename. 6880 * If set, `getEditsForFileRename` should be called instead of `findRenameLocations`. 6881 */ 6882 fileToRename?: string; 6883 displayName: string; 6884 fullDisplayName: string; 6885 kind: ScriptElementKind; 6886 kindModifiers: string; 6887 triggerSpan: TextSpan; 6888 } 6889 interface RenameInfoFailure { 6890 canRename: false; 6891 localizedErrorMessage: string; 6892 } 6893 /** 6894 * @deprecated Use `UserPreferences` instead. 6895 */ 6896 interface RenameInfoOptions { 6897 readonly allowRenameOfImportPath?: boolean; 6898 } 6899 interface DocCommentTemplateOptions { 6900 readonly generateReturnInDocTemplate?: boolean; 6901 } 6902 interface SignatureHelpParameter { 6903 name: string; 6904 documentation: SymbolDisplayPart[]; 6905 displayParts: SymbolDisplayPart[]; 6906 isOptional: boolean; 6907 isRest?: boolean; 6908 } 6909 interface SelectionRange { 6910 textSpan: TextSpan; 6911 parent?: SelectionRange; 6912 } 6913 /** 6914 * Represents a single signature to show in signature help. 6915 * The id is used for subsequent calls into the language service to ask questions about the 6916 * signature help item in the context of any documents that have been updated. i.e. after 6917 * an edit has happened, while signature help is still active, the host can ask important 6918 * questions like 'what parameter is the user currently contained within?'. 6919 */ 6920 interface SignatureHelpItem { 6921 isVariadic: boolean; 6922 prefixDisplayParts: SymbolDisplayPart[]; 6923 suffixDisplayParts: SymbolDisplayPart[]; 6924 separatorDisplayParts: SymbolDisplayPart[]; 6925 parameters: SignatureHelpParameter[]; 6926 documentation: SymbolDisplayPart[]; 6927 tags: JSDocTagInfo[]; 6928 } 6929 /** 6930 * Represents a set of signature help items, and the preferred item that should be selected. 6931 */ 6932 interface SignatureHelpItems { 6933 items: SignatureHelpItem[]; 6934 applicableSpan: TextSpan; 6935 selectedItemIndex: number; 6936 argumentIndex: number; 6937 argumentCount: number; 6938 } 6939 enum CompletionInfoFlags { 6940 None = 0, 6941 MayIncludeAutoImports = 1, 6942 IsImportStatementCompletion = 2, 6943 IsContinuation = 4, 6944 ResolvedModuleSpecifiers = 8, 6945 ResolvedModuleSpecifiersBeyondLimit = 16, 6946 MayIncludeMethodSnippets = 32 6947 } 6948 interface CompletionInfo { 6949 /** For performance telemetry. */ 6950 flags?: CompletionInfoFlags; 6951 /** Not true for all global completions. This will be true if the enclosing scope matches a few syntax kinds. See `isSnippetScope`. */ 6952 isGlobalCompletion: boolean; 6953 isMemberCompletion: boolean; 6954 /** 6955 * In the absence of `CompletionEntry["replacementSpan"]`, the editor may choose whether to use 6956 * this span or its default one. If `CompletionEntry["replacementSpan"]` is defined, that span 6957 * must be used to commit that completion entry. 6958 */ 6959 optionalReplacementSpan?: TextSpan; 6960 /** 6961 * true when the current location also allows for a new identifier 6962 */ 6963 isNewIdentifierLocation: boolean; 6964 /** 6965 * Indicates to client to continue requesting completions on subsequent keystrokes. 6966 */ 6967 isIncomplete?: true; 6968 entries: CompletionEntry[]; 6969 } 6970 interface CompletionEntryDataAutoImport { 6971 /** 6972 * The name of the property or export in the module's symbol table. Differs from the completion name 6973 * in the case of InternalSymbolName.ExportEquals and InternalSymbolName.Default. 6974 */ 6975 exportName: string; 6976 moduleSpecifier?: string; 6977 /** The file name declaring the export's module symbol, if it was an external module */ 6978 fileName?: string; 6979 /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */ 6980 ambientModuleName?: string; 6981 /** True if the export was found in the package.json AutoImportProvider */ 6982 isPackageJsonImport?: true; 6983 } 6984 interface CompletionEntryDataUnresolved extends CompletionEntryDataAutoImport { 6985 /** The key in the `ExportMapCache` where the completion entry's `SymbolExportInfo[]` is found */ 6986 exportMapKey: string; 6987 } 6988 interface CompletionEntryDataResolved extends CompletionEntryDataAutoImport { 6989 moduleSpecifier: string; 6990 } 6991 type CompletionEntryData = CompletionEntryDataUnresolved | CompletionEntryDataResolved; 6992 interface CompletionEntry { 6993 name: string; 6994 kind: ScriptElementKind; 6995 kindModifiers?: string; 6996 sortText: string; 6997 insertText?: string; 6998 isSnippet?: true; 6999 /** 7000 * An optional span that indicates the text to be replaced by this completion item. 7001 * If present, this span should be used instead of the default one. 7002 * It will be set if the required span differs from the one generated by the default replacement behavior. 7003 */ 7004 replacementSpan?: TextSpan; 7005 hasAction?: true; 7006 source?: string; 7007 sourceDisplay?: SymbolDisplayPart[]; 7008 labelDetails?: CompletionEntryLabelDetails; 7009 isRecommended?: true; 7010 isFromUncheckedFile?: true; 7011 isPackageJsonImport?: true; 7012 isImportStatementCompletion?: true; 7013 /** 7014 * A property to be sent back to TS Server in the CompletionDetailsRequest, along with `name`, 7015 * that allows TS Server to look up the symbol represented by the completion item, disambiguating 7016 * items with the same name. Currently only defined for auto-import completions, but the type is 7017 * `unknown` in the protocol, so it can be changed as needed to support other kinds of completions. 7018 * The presence of this property should generally not be used to assume that this completion entry 7019 * is an auto-import. 7020 */ 7021 data?: CompletionEntryData; 7022 jsDoc?: JSDocTagInfo[]; 7023 displayParts?: SymbolDisplayPart[]; 7024 } 7025 interface CompletionEntryLabelDetails { 7026 detail?: string; 7027 description?: string; 7028 } 7029 interface CompletionEntryDetails { 7030 name: string; 7031 kind: ScriptElementKind; 7032 kindModifiers: string; 7033 displayParts: SymbolDisplayPart[]; 7034 documentation?: SymbolDisplayPart[]; 7035 tags?: JSDocTagInfo[]; 7036 codeActions?: CodeAction[]; 7037 /** @deprecated Use `sourceDisplay` instead. */ 7038 source?: SymbolDisplayPart[]; 7039 sourceDisplay?: SymbolDisplayPart[]; 7040 } 7041 interface OutliningSpan { 7042 /** The span of the document to actually collapse. */ 7043 textSpan: TextSpan; 7044 /** The span of the document to display when the user hovers over the collapsed span. */ 7045 hintSpan: TextSpan; 7046 /** The text to display in the editor for the collapsed region. */ 7047 bannerText: string; 7048 /** 7049 * Whether or not this region should be automatically collapsed when 7050 * the 'Collapse to Definitions' command is invoked. 7051 */ 7052 autoCollapse: boolean; 7053 /** 7054 * Classification of the contents of the span 7055 */ 7056 kind: OutliningSpanKind; 7057 } 7058 enum OutliningSpanKind { 7059 /** Single or multi-line comments */ 7060 Comment = "comment", 7061 /** Sections marked by '// #region' and '// #endregion' comments */ 7062 Region = "region", 7063 /** Declarations and expressions */ 7064 Code = "code", 7065 /** Contiguous blocks of import declarations */ 7066 Imports = "imports" 7067 } 7068 enum OutputFileType { 7069 JavaScript = 0, 7070 SourceMap = 1, 7071 Declaration = 2 7072 } 7073 enum EndOfLineState { 7074 None = 0, 7075 InMultiLineCommentTrivia = 1, 7076 InSingleQuoteStringLiteral = 2, 7077 InDoubleQuoteStringLiteral = 3, 7078 InTemplateHeadOrNoSubstitutionTemplate = 4, 7079 InTemplateMiddleOrTail = 5, 7080 InTemplateSubstitutionPosition = 6 7081 } 7082 enum TokenClass { 7083 Punctuation = 0, 7084 Keyword = 1, 7085 Operator = 2, 7086 Comment = 3, 7087 Whitespace = 4, 7088 Identifier = 5, 7089 NumberLiteral = 6, 7090 BigIntLiteral = 7, 7091 StringLiteral = 8, 7092 RegExpLiteral = 9 7093 } 7094 interface ClassificationResult { 7095 finalLexState: EndOfLineState; 7096 entries: ClassificationInfo[]; 7097 } 7098 interface ClassificationInfo { 7099 length: number; 7100 classification: TokenClass; 7101 } 7102 interface Classifier { 7103 /** 7104 * Gives lexical classifications of tokens on a line without any syntactic context. 7105 * For instance, a token consisting of the text 'string' can be either an identifier 7106 * named 'string' or the keyword 'string', however, because this classifier is not aware, 7107 * it relies on certain heuristics to give acceptable results. For classifications where 7108 * speed trumps accuracy, this function is preferable; however, for true accuracy, the 7109 * syntactic classifier is ideal. In fact, in certain editing scenarios, combining the 7110 * lexical, syntactic, and semantic classifiers may issue the best user experience. 7111 * 7112 * @param text The text of a line to classify. 7113 * @param lexState The state of the lexical classifier at the end of the previous line. 7114 * @param syntacticClassifierAbsent Whether the client is *not* using a syntactic classifier. 7115 * If there is no syntactic classifier (syntacticClassifierAbsent=true), 7116 * certain heuristics may be used in its place; however, if there is a 7117 * syntactic classifier (syntacticClassifierAbsent=false), certain 7118 * classifications which may be incorrectly categorized will be given 7119 * back as Identifiers in order to allow the syntactic classifier to 7120 * subsume the classification. 7121 * @deprecated Use getLexicalClassifications instead. 7122 */ 7123 getClassificationsForLine(text: string, lexState: EndOfLineState, syntacticClassifierAbsent: boolean): ClassificationResult; 7124 getEncodedLexicalClassifications(text: string, endOfLineState: EndOfLineState, syntacticClassifierAbsent: boolean): Classifications; 7125 } 7126 enum ScriptElementKind { 7127 unknown = "", 7128 warning = "warning", 7129 /** predefined type (void) or keyword (class) */ 7130 keyword = "keyword", 7131 /** top level script node */ 7132 scriptElement = "script", 7133 /** module foo {} */ 7134 moduleElement = "module", 7135 /** class X {} */ 7136 classElement = "class", 7137 /** var x = class X {} */ 7138 localClassElement = "local class", 7139 /** struct X {} */ 7140 structElement = "struct", 7141 /** interface Y {} */ 7142 interfaceElement = "interface", 7143 /** type T = ... */ 7144 typeElement = "type", 7145 /** enum E */ 7146 enumElement = "enum", 7147 enumMemberElement = "enum member", 7148 /** 7149 * Inside module and script only 7150 * const v = .. 7151 */ 7152 variableElement = "var", 7153 /** Inside function */ 7154 localVariableElement = "local var", 7155 /** 7156 * Inside module and script only 7157 * function f() { } 7158 */ 7159 functionElement = "function", 7160 /** Inside function */ 7161 localFunctionElement = "local function", 7162 /** class X { [public|private]* foo() {} } */ 7163 memberFunctionElement = "method", 7164 /** class X { [public|private]* [get|set] foo:number; } */ 7165 memberGetAccessorElement = "getter", 7166 memberSetAccessorElement = "setter", 7167 /** 7168 * class X { [public|private]* foo:number; } 7169 * interface Y { foo:number; } 7170 */ 7171 memberVariableElement = "property", 7172 /** class X { [public|private]* accessor foo: number; } */ 7173 memberAccessorVariableElement = "accessor", 7174 /** 7175 * class X { constructor() { } } 7176 * class X { static { } } 7177 */ 7178 constructorImplementationElement = "constructor", 7179 /** interface Y { ():number; } */ 7180 callSignatureElement = "call", 7181 /** interface Y { []:number; } */ 7182 indexSignatureElement = "index", 7183 /** interface Y { new():Y; } */ 7184 constructSignatureElement = "construct", 7185 /** function foo(*Y*: string) */ 7186 parameterElement = "parameter", 7187 typeParameterElement = "type parameter", 7188 primitiveType = "primitive type", 7189 label = "label", 7190 alias = "alias", 7191 constElement = "const", 7192 letElement = "let", 7193 directory = "directory", 7194 externalModuleName = "external module name", 7195 /** 7196 * <JsxTagName attribute1 attribute2={0} /> 7197 * @deprecated 7198 */ 7199 jsxAttribute = "JSX attribute", 7200 /** String literal */ 7201 string = "string", 7202 /** Jsdoc @link: in `{@link C link text}`, the before and after text "{@link " and "}" */ 7203 link = "link", 7204 /** Jsdoc @link: in `{@link C link text}`, the entity name "C" */ 7205 linkName = "link name", 7206 /** Jsdoc @link: in `{@link C link text}`, the link text "link text" */ 7207 linkText = "link text" 7208 } 7209 enum ScriptElementKindModifier { 7210 none = "", 7211 publicMemberModifier = "public", 7212 privateMemberModifier = "private", 7213 protectedMemberModifier = "protected", 7214 exportedModifier = "export", 7215 ambientModifier = "declare", 7216 staticModifier = "static", 7217 abstractModifier = "abstract", 7218 optionalModifier = "optional", 7219 deprecatedModifier = "deprecated", 7220 dtsModifier = ".d.ts", 7221 tsModifier = ".ts", 7222 tsxModifier = ".tsx", 7223 jsModifier = ".js", 7224 jsxModifier = ".jsx", 7225 jsonModifier = ".json", 7226 dmtsModifier = ".d.mts", 7227 mtsModifier = ".mts", 7228 mjsModifier = ".mjs", 7229 dctsModifier = ".d.cts", 7230 ctsModifier = ".cts", 7231 cjsModifier = ".cjs", 7232 etsModifier = ".ets", 7233 detsModifier = ".d.ets" 7234 } 7235 enum ClassificationTypeNames { 7236 comment = "comment", 7237 identifier = "identifier", 7238 keyword = "keyword", 7239 numericLiteral = "number", 7240 bigintLiteral = "bigint", 7241 operator = "operator", 7242 stringLiteral = "string", 7243 whiteSpace = "whitespace", 7244 text = "text", 7245 punctuation = "punctuation", 7246 className = "class name", 7247 enumName = "enum name", 7248 interfaceName = "interface name", 7249 moduleName = "module name", 7250 typeParameterName = "type parameter name", 7251 typeAliasName = "type alias name", 7252 parameterName = "parameter name", 7253 docCommentTagName = "doc comment tag name", 7254 jsxOpenTagName = "jsx open tag name", 7255 jsxCloseTagName = "jsx close tag name", 7256 jsxSelfClosingTagName = "jsx self closing tag name", 7257 jsxAttribute = "jsx attribute", 7258 jsxText = "jsx text", 7259 jsxAttributeStringLiteralValue = "jsx attribute string literal value" 7260 } 7261 enum ClassificationType { 7262 comment = 1, 7263 identifier = 2, 7264 keyword = 3, 7265 numericLiteral = 4, 7266 operator = 5, 7267 stringLiteral = 6, 7268 regularExpressionLiteral = 7, 7269 whiteSpace = 8, 7270 text = 9, 7271 punctuation = 10, 7272 className = 11, 7273 enumName = 12, 7274 interfaceName = 13, 7275 moduleName = 14, 7276 typeParameterName = 15, 7277 typeAliasName = 16, 7278 parameterName = 17, 7279 docCommentTagName = 18, 7280 jsxOpenTagName = 19, 7281 jsxCloseTagName = 20, 7282 jsxSelfClosingTagName = 21, 7283 jsxAttribute = 22, 7284 jsxText = 23, 7285 jsxAttributeStringLiteralValue = 24, 7286 bigintLiteral = 25 7287 } 7288 interface InlayHintsContext { 7289 file: SourceFile; 7290 program: Program; 7291 cancellationToken: CancellationToken; 7292 host: LanguageServiceHost; 7293 span: TextSpan; 7294 preferences: UserPreferences; 7295 } 7296} 7297declare namespace ts { 7298 /** The classifier is used for syntactic highlighting in editors via the TSServer */ 7299 function createClassifier(): Classifier; 7300} 7301declare namespace ts { 7302 interface DocumentHighlights { 7303 fileName: string; 7304 highlightSpans: HighlightSpan[]; 7305 } 7306} 7307declare namespace ts { 7308 /** 7309 * The document registry represents a store of SourceFile objects that can be shared between 7310 * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) 7311 * of files in the context. 7312 * SourceFile objects account for most of the memory usage by the language service. Sharing 7313 * the same DocumentRegistry instance between different instances of LanguageService allow 7314 * for more efficient memory utilization since all projects will share at least the library 7315 * file (lib.d.ts). 7316 * 7317 * A more advanced use of the document registry is to serialize sourceFile objects to disk 7318 * and re-hydrate them when needed. 7319 * 7320 * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it 7321 * to all subsequent createLanguageService calls. 7322 */ 7323 interface DocumentRegistry { 7324 /** 7325 * Request a stored SourceFile with a given fileName and compilationSettings. 7326 * The first call to acquire will call createLanguageServiceSourceFile to generate 7327 * the SourceFile if was not found in the registry. 7328 * 7329 * @param fileName The name of the file requested 7330 * @param compilationSettingsOrHost Some compilation settings like target affects the 7331 * shape of a the resulting SourceFile. This allows the DocumentRegistry to store 7332 * multiple copies of the same file for different compilation settings. A minimal 7333 * resolution cache is needed to fully define a source file's shape when 7334 * the compilation settings include `module: node16`+, so providing a cache host 7335 * object should be preferred. A common host is a language service `ConfiguredProject`. 7336 * @param scriptSnapshot Text of the file. Only used if the file was not found 7337 * in the registry and a new one was created. 7338 * @param version Current version of the file. Only used if the file was not found 7339 * in the registry and a new one was created. 7340 */ 7341 acquireDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7342 acquireDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7343 /** 7344 * Request an updated version of an already existing SourceFile with a given fileName 7345 * and compilationSettings. The update will in-turn call updateLanguageServiceSourceFile 7346 * to get an updated SourceFile. 7347 * 7348 * @param fileName The name of the file requested 7349 * @param compilationSettingsOrHost Some compilation settings like target affects the 7350 * shape of a the resulting SourceFile. This allows the DocumentRegistry to store 7351 * multiple copies of the same file for different compilation settings. A minimal 7352 * resolution cache is needed to fully define a source file's shape when 7353 * the compilation settings include `module: node16`+, so providing a cache host 7354 * object should be preferred. A common host is a language service `ConfiguredProject`. 7355 * @param scriptSnapshot Text of the file. 7356 * @param version Current version of the file. 7357 */ 7358 updateDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7359 updateDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile; 7360 getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey; 7361 /** 7362 * Informs the DocumentRegistry that a file is not needed any longer. 7363 * 7364 * Note: It is not allowed to call release on a SourceFile that was not acquired from 7365 * this registry originally. 7366 * 7367 * @param fileName The name of the file to be released 7368 * @param compilationSettings The compilation settings used to acquire the file 7369 * @param scriptKind The script kind of the file to be released 7370 */ 7371 /**@deprecated pass scriptKind and impliedNodeFormat for correctness */ 7372 releaseDocument(fileName: string, compilationSettings: CompilerOptions, scriptKind?: ScriptKind): void; 7373 /** 7374 * Informs the DocumentRegistry that a file is not needed any longer. 7375 * 7376 * Note: It is not allowed to call release on a SourceFile that was not acquired from 7377 * this registry originally. 7378 * 7379 * @param fileName The name of the file to be released 7380 * @param compilationSettings The compilation settings used to acquire the file 7381 * @param scriptKind The script kind of the file to be released 7382 * @param impliedNodeFormat The implied source file format of the file to be released 7383 */ 7384 releaseDocument(fileName: string, compilationSettings: CompilerOptions, scriptKind: ScriptKind, impliedNodeFormat: SourceFile["impliedNodeFormat"]): void; 7385 /** 7386 * @deprecated pass scriptKind for and impliedNodeFormat correctness */ 7387 releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey, scriptKind?: ScriptKind): void; 7388 releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey, scriptKind: ScriptKind, impliedNodeFormat: SourceFile["impliedNodeFormat"]): void; 7389 reportStats(): string; 7390 } 7391 type DocumentRegistryBucketKey = string & { 7392 __bucketKey: any; 7393 }; 7394 function createDocumentRegistry(useCaseSensitiveFileNames?: boolean, currentDirectory?: string): DocumentRegistry; 7395} 7396declare namespace ts { 7397 function preProcessFile(sourceText: string, readImportFiles?: boolean, detectJavaScriptImports?: boolean): PreProcessedFileInfo; 7398} 7399declare namespace ts { 7400 interface TranspileOptions { 7401 compilerOptions?: CompilerOptions; 7402 fileName?: string; 7403 reportDiagnostics?: boolean; 7404 moduleName?: string; 7405 renamedDependencies?: MapLike<string>; 7406 transformers?: CustomTransformers; 7407 } 7408 interface TranspileOutput { 7409 outputText: string; 7410 diagnostics?: Diagnostic[]; 7411 sourceMapText?: string; 7412 } 7413 function transpileModule(input: string, transpileOptions: TranspileOptions): TranspileOutput; 7414 function transpile(input: string, compilerOptions?: CompilerOptions, fileName?: string, diagnostics?: Diagnostic[], moduleName?: string): string; 7415} 7416declare namespace ts { 7417 /** The version of the language service API */ 7418 const servicesVersion = "0.8"; 7419 function toEditorSettings(options: EditorOptions | EditorSettings): EditorSettings; 7420 function displayPartsToString(displayParts: SymbolDisplayPart[] | undefined): string; 7421 function getDefaultCompilerOptions(): CompilerOptions; 7422 function getSupportedCodeFixes(): string[]; 7423 function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTargetOrOptions: ScriptTarget | CreateSourceFileOptions, version: string, setNodeParents: boolean, scriptKind?: ScriptKind, option?: CompilerOptions): SourceFile; 7424 function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange | undefined, aggressiveChecks?: boolean, option?: CompilerOptions): SourceFile; 7425 function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry, syntaxOnlyOrLanguageServiceMode?: boolean | LanguageServiceMode): LanguageService; 7426 /** 7427 * Get the path of the default library files (lib.d.ts) as distributed with the typescript 7428 * node package. 7429 * The functionality is not supported if the ts module is consumed outside of a node module. 7430 */ 7431 function getDefaultLibFilePath(options: CompilerOptions): string; 7432} 7433declare namespace ts { 7434 /** 7435 * Transform one or more nodes using the supplied transformers. 7436 * @param source A single `Node` or an array of `Node` objects. 7437 * @param transformers An array of `TransformerFactory` callbacks used to process the transformation. 7438 * @param compilerOptions Optional compiler options. 7439 */ 7440 function transform<T extends Node>(source: T | T[], transformers: TransformerFactory<T>[], compilerOptions?: CompilerOptions): TransformationResult<T>; 7441} 7442declare namespace ts { 7443 /** @deprecated Use `factory.createNodeArray` or the factory supplied by your transformation context instead. */ 7444 const createNodeArray: <T extends Node>(elements?: readonly T[] | undefined, hasTrailingComma?: boolean | undefined) => NodeArray<T>; 7445 /** @deprecated Use `factory.createNumericLiteral` or the factory supplied by your transformation context instead. */ 7446 const createNumericLiteral: (value: string | number, numericLiteralFlags?: TokenFlags | undefined) => NumericLiteral; 7447 /** @deprecated Use `factory.createBigIntLiteral` or the factory supplied by your transformation context instead. */ 7448 const createBigIntLiteral: (value: string | PseudoBigInt) => BigIntLiteral; 7449 /** @deprecated Use `factory.createStringLiteral` or the factory supplied by your transformation context instead. */ 7450 const createStringLiteral: { 7451 (text: string, isSingleQuote?: boolean | undefined): StringLiteral; 7452 (text: string, isSingleQuote?: boolean | undefined, hasExtendedUnicodeEscape?: boolean | undefined): StringLiteral; 7453 }; 7454 /** @deprecated Use `factory.createStringLiteralFromNode` or the factory supplied by your transformation context instead. */ 7455 const createStringLiteralFromNode: (sourceNode: PrivateIdentifier | PropertyNameLiteral, isSingleQuote?: boolean | undefined) => StringLiteral; 7456 /** @deprecated Use `factory.createRegularExpressionLiteral` or the factory supplied by your transformation context instead. */ 7457 const createRegularExpressionLiteral: (text: string) => RegularExpressionLiteral; 7458 /** @deprecated Use `factory.createLoopVariable` or the factory supplied by your transformation context instead. */ 7459 const createLoopVariable: (reservedInNestedScopes?: boolean | undefined) => Identifier; 7460 /** @deprecated Use `factory.createUniqueName` or the factory supplied by your transformation context instead. */ 7461 const createUniqueName: (text: string, flags?: GeneratedIdentifierFlags | undefined) => Identifier; 7462 /** @deprecated Use `factory.createPrivateIdentifier` or the factory supplied by your transformation context instead. */ 7463 const createPrivateIdentifier: (text: string) => PrivateIdentifier; 7464 /** @deprecated Use `factory.createSuper` or the factory supplied by your transformation context instead. */ 7465 const createSuper: () => SuperExpression; 7466 /** @deprecated Use `factory.createThis` or the factory supplied by your transformation context instead. */ 7467 const createThis: () => ThisExpression; 7468 /** @deprecated Use `factory.createNull` or the factory supplied by your transformation context instead. */ 7469 const createNull: () => NullLiteral; 7470 /** @deprecated Use `factory.createTrue` or the factory supplied by your transformation context instead. */ 7471 const createTrue: () => TrueLiteral; 7472 /** @deprecated Use `factory.createFalse` or the factory supplied by your transformation context instead. */ 7473 const createFalse: () => FalseLiteral; 7474 /** @deprecated Use `factory.createModifier` or the factory supplied by your transformation context instead. */ 7475 const createModifier: <T extends ModifierSyntaxKind>(kind: T) => ModifierToken<T>; 7476 /** @deprecated Use `factory.createModifiersFromModifierFlags` or the factory supplied by your transformation context instead. */ 7477 const createModifiersFromModifierFlags: (flags: ModifierFlags) => Modifier[] | undefined; 7478 /** @deprecated Use `factory.createQualifiedName` or the factory supplied by your transformation context instead. */ 7479 const createQualifiedName: (left: EntityName, right: string | Identifier) => QualifiedName; 7480 /** @deprecated Use `factory.updateQualifiedName` or the factory supplied by your transformation context instead. */ 7481 const updateQualifiedName: (node: QualifiedName, left: EntityName, right: Identifier) => QualifiedName; 7482 /** @deprecated Use `factory.createComputedPropertyName` or the factory supplied by your transformation context instead. */ 7483 const createComputedPropertyName: (expression: Expression) => ComputedPropertyName; 7484 /** @deprecated Use `factory.updateComputedPropertyName` or the factory supplied by your transformation context instead. */ 7485 const updateComputedPropertyName: (node: ComputedPropertyName, expression: Expression) => ComputedPropertyName; 7486 /** @deprecated Use `factory.createTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ 7487 const createTypeParameterDeclaration: { 7488 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; 7489 (name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; 7490 }; 7491 /** @deprecated Use `factory.updateTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ 7492 const updateTypeParameterDeclaration: { 7493 (node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 7494 (node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 7495 }; 7496 /** @deprecated Use `factory.createParameterDeclaration` or the factory supplied by your transformation context instead. */ 7497 const createParameter: { 7498 (modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken | undefined, type?: TypeNode | undefined, initializer?: Expression | undefined): ParameterDeclaration; 7499 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken | undefined, type?: TypeNode | undefined, initializer?: Expression | undefined): ParameterDeclaration; 7500 }; 7501 /** @deprecated Use `factory.updateParameterDeclaration` or the factory supplied by your transformation context instead. */ 7502 const updateParameter: { 7503 (node: ParameterDeclaration, modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; 7504 (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; 7505 }; 7506 /** @deprecated Use `factory.createDecorator` or the factory supplied by your transformation context instead. */ 7507 const createDecorator: (expression: Expression) => Decorator; 7508 /** @deprecated Use `factory.updateDecorator` or the factory supplied by your transformation context instead. */ 7509 const updateDecorator: (node: Decorator, expression: Expression) => Decorator; 7510 /** @deprecated Use `factory.createPropertyDeclaration` or the factory supplied by your transformation context instead. */ 7511 const createProperty: { 7512 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 7513 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 7514 }; 7515 /** @deprecated Use `factory.updatePropertyDeclaration` or the factory supplied by your transformation context instead. */ 7516 const updateProperty: { 7517 (node: PropertyDeclaration, modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 7518 (node: PropertyDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 7519 }; 7520 /** @deprecated Use `factory.createMethodDeclaration` or the factory supplied by your transformation context instead. */ 7521 const createMethod: { 7522 (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; 7523 (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; 7524 }; 7525 /** @deprecated Use `factory.updateMethodDeclaration` or the factory supplied by your transformation context instead. */ 7526 const updateMethod: { 7527 (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; 7528 (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; 7529 }; 7530 /** @deprecated Use `factory.createConstructorDeclaration` or the factory supplied by your transformation context instead. */ 7531 const createConstructor: { 7532 (modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 7533 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 7534 }; 7535 /** @deprecated Use `factory.updateConstructorDeclaration` or the factory supplied by your transformation context instead. */ 7536 const updateConstructor: { 7537 (node: ConstructorDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 7538 (node: ConstructorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 7539 }; 7540 /** @deprecated Use `factory.createGetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 7541 const createGetAccessor: { 7542 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 7543 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 7544 }; 7545 /** @deprecated Use `factory.updateGetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 7546 const updateGetAccessor: { 7547 (node: GetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 7548 (node: GetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 7549 }; 7550 /** @deprecated Use `factory.createSetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 7551 const createSetAccessor: { 7552 (modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 7553 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 7554 }; 7555 /** @deprecated Use `factory.updateSetAccessorDeclaration` or the factory supplied by your transformation context instead. */ 7556 const updateSetAccessor: { 7557 (node: SetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 7558 (node: SetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 7559 }; 7560 /** @deprecated Use `factory.createCallSignature` or the factory supplied by your transformation context instead. */ 7561 const createCallSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined) => CallSignatureDeclaration; 7562 /** @deprecated Use `factory.updateCallSignature` or the factory supplied by your transformation context instead. */ 7563 const updateCallSignature: (node: CallSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined) => CallSignatureDeclaration; 7564 /** @deprecated Use `factory.createConstructSignature` or the factory supplied by your transformation context instead. */ 7565 const createConstructSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined) => ConstructSignatureDeclaration; 7566 /** @deprecated Use `factory.updateConstructSignature` or the factory supplied by your transformation context instead. */ 7567 const updateConstructSignature: (node: ConstructSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined) => ConstructSignatureDeclaration; 7568 /** @deprecated Use `factory.updateIndexSignature` or the factory supplied by your transformation context instead. */ 7569 const updateIndexSignature: { 7570 (node: IndexSignatureDeclaration, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 7571 (node: IndexSignatureDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 7572 }; 7573 /** @deprecated Use `factory.createKeywordTypeNode` or the factory supplied by your transformation context instead. */ 7574 const createKeywordTypeNode: <TKind extends KeywordTypeSyntaxKind>(kind: TKind) => KeywordTypeNode<TKind>; 7575 /** @deprecated Use `factory.createTypePredicateNode` or the factory supplied by your transformation context instead. */ 7576 const createTypePredicateNodeWithModifier: (assertsModifier: AssertsKeyword | undefined, parameterName: string | Identifier | ThisTypeNode, type: TypeNode | undefined) => TypePredicateNode; 7577 /** @deprecated Use `factory.updateTypePredicateNode` or the factory supplied by your transformation context instead. */ 7578 const updateTypePredicateNodeWithModifier: (node: TypePredicateNode, assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode, type: TypeNode | undefined) => TypePredicateNode; 7579 /** @deprecated Use `factory.createTypeReferenceNode` or the factory supplied by your transformation context instead. */ 7580 const createTypeReferenceNode: (typeName: string | EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeReferenceNode; 7581 /** @deprecated Use `factory.updateTypeReferenceNode` or the factory supplied by your transformation context instead. */ 7582 const updateTypeReferenceNode: (node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray<TypeNode> | undefined) => TypeReferenceNode; 7583 /** @deprecated Use `factory.createFunctionTypeNode` or the factory supplied by your transformation context instead. */ 7584 const createFunctionTypeNode: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => FunctionTypeNode; 7585 /** @deprecated Use `factory.updateFunctionTypeNode` or the factory supplied by your transformation context instead. */ 7586 const updateFunctionTypeNode: (node: FunctionTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode) => FunctionTypeNode; 7587 /** @deprecated Use `factory.createConstructorTypeNode` or the factory supplied by your transformation context instead. */ 7588 const createConstructorTypeNode: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => ConstructorTypeNode; 7589 /** @deprecated Use `factory.updateConstructorTypeNode` or the factory supplied by your transformation context instead. */ 7590 const updateConstructorTypeNode: (node: ConstructorTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode) => ConstructorTypeNode; 7591 /** @deprecated Use `factory.createTypeQueryNode` or the factory supplied by your transformation context instead. */ 7592 const createTypeQueryNode: (exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; 7593 /** @deprecated Use `factory.updateTypeQueryNode` or the factory supplied by your transformation context instead. */ 7594 const updateTypeQueryNode: (node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; 7595 /** @deprecated Use `factory.createTypeLiteralNode` or the factory supplied by your transformation context instead. */ 7596 const createTypeLiteralNode: (members: readonly TypeElement[] | undefined) => TypeLiteralNode; 7597 /** @deprecated Use `factory.updateTypeLiteralNode` or the factory supplied by your transformation context instead. */ 7598 const updateTypeLiteralNode: (node: TypeLiteralNode, members: NodeArray<TypeElement>) => TypeLiteralNode; 7599 /** @deprecated Use `factory.createArrayTypeNode` or the factory supplied by your transformation context instead. */ 7600 const createArrayTypeNode: (elementType: TypeNode) => ArrayTypeNode; 7601 /** @deprecated Use `factory.updateArrayTypeNode` or the factory supplied by your transformation context instead. */ 7602 const updateArrayTypeNode: (node: ArrayTypeNode, elementType: TypeNode) => ArrayTypeNode; 7603 /** @deprecated Use `factory.createTupleTypeNode` or the factory supplied by your transformation context instead. */ 7604 const createTupleTypeNode: (elements: readonly (TypeNode | NamedTupleMember)[]) => TupleTypeNode; 7605 /** @deprecated Use `factory.updateTupleTypeNode` or the factory supplied by your transformation context instead. */ 7606 const updateTupleTypeNode: (node: TupleTypeNode, elements: readonly (TypeNode | NamedTupleMember)[]) => TupleTypeNode; 7607 /** @deprecated Use `factory.createOptionalTypeNode` or the factory supplied by your transformation context instead. */ 7608 const createOptionalTypeNode: (type: TypeNode) => OptionalTypeNode; 7609 /** @deprecated Use `factory.updateOptionalTypeNode` or the factory supplied by your transformation context instead. */ 7610 const updateOptionalTypeNode: (node: OptionalTypeNode, type: TypeNode) => OptionalTypeNode; 7611 /** @deprecated Use `factory.createRestTypeNode` or the factory supplied by your transformation context instead. */ 7612 const createRestTypeNode: (type: TypeNode) => RestTypeNode; 7613 /** @deprecated Use `factory.updateRestTypeNode` or the factory supplied by your transformation context instead. */ 7614 const updateRestTypeNode: (node: RestTypeNode, type: TypeNode) => RestTypeNode; 7615 /** @deprecated Use `factory.createUnionTypeNode` or the factory supplied by your transformation context instead. */ 7616 const createUnionTypeNode: (types: readonly TypeNode[]) => UnionTypeNode; 7617 /** @deprecated Use `factory.updateUnionTypeNode` or the factory supplied by your transformation context instead. */ 7618 const updateUnionTypeNode: (node: UnionTypeNode, types: NodeArray<TypeNode>) => UnionTypeNode; 7619 /** @deprecated Use `factory.createIntersectionTypeNode` or the factory supplied by your transformation context instead. */ 7620 const createIntersectionTypeNode: (types: readonly TypeNode[]) => IntersectionTypeNode; 7621 /** @deprecated Use `factory.updateIntersectionTypeNode` or the factory supplied by your transformation context instead. */ 7622 const updateIntersectionTypeNode: (node: IntersectionTypeNode, types: NodeArray<TypeNode>) => IntersectionTypeNode; 7623 /** @deprecated Use `factory.createConditionalTypeNode` or the factory supplied by your transformation context instead. */ 7624 const createConditionalTypeNode: (checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode) => ConditionalTypeNode; 7625 /** @deprecated Use `factory.updateConditionalTypeNode` or the factory supplied by your transformation context instead. */ 7626 const updateConditionalTypeNode: (node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode) => ConditionalTypeNode; 7627 /** @deprecated Use `factory.createInferTypeNode` or the factory supplied by your transformation context instead. */ 7628 const createInferTypeNode: (typeParameter: TypeParameterDeclaration) => InferTypeNode; 7629 /** @deprecated Use `factory.updateInferTypeNode` or the factory supplied by your transformation context instead. */ 7630 const updateInferTypeNode: (node: InferTypeNode, typeParameter: TypeParameterDeclaration) => InferTypeNode; 7631 /** @deprecated Use `factory.createImportTypeNode` or the factory supplied by your transformation context instead. */ 7632 const createImportTypeNode: { 7633 (argument: TypeNode, assertions?: ImportTypeAssertionContainer | undefined, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 7634 (argument: TypeNode, assertions?: ImportTypeAssertionContainer | undefined, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 7635 (argument: TypeNode, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 7636 }; 7637 /** @deprecated Use `factory.updateImportTypeNode` or the factory supplied by your transformation context instead. */ 7638 const updateImportTypeNode: { 7639 (node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 7640 (node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; 7641 }; 7642 /** @deprecated Use `factory.createParenthesizedType` or the factory supplied by your transformation context instead. */ 7643 const createParenthesizedType: (type: TypeNode) => ParenthesizedTypeNode; 7644 /** @deprecated Use `factory.updateParenthesizedType` or the factory supplied by your transformation context instead. */ 7645 const updateParenthesizedType: (node: ParenthesizedTypeNode, type: TypeNode) => ParenthesizedTypeNode; 7646 /** @deprecated Use `factory.createThisTypeNode` or the factory supplied by your transformation context instead. */ 7647 const createThisTypeNode: () => ThisTypeNode; 7648 /** @deprecated Use `factory.updateTypeOperatorNode` or the factory supplied by your transformation context instead. */ 7649 const updateTypeOperatorNode: (node: TypeOperatorNode, type: TypeNode) => TypeOperatorNode; 7650 /** @deprecated Use `factory.createIndexedAccessTypeNode` or the factory supplied by your transformation context instead. */ 7651 const createIndexedAccessTypeNode: (objectType: TypeNode, indexType: TypeNode) => IndexedAccessTypeNode; 7652 /** @deprecated Use `factory.updateIndexedAccessTypeNode` or the factory supplied by your transformation context instead. */ 7653 const updateIndexedAccessTypeNode: (node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode) => IndexedAccessTypeNode; 7654 /** @deprecated Use `factory.createMappedTypeNode` or the factory supplied by your transformation context instead. */ 7655 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; 7656 /** @deprecated Use `factory.updateMappedTypeNode` or the factory supplied by your transformation context instead. */ 7657 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; 7658 /** @deprecated Use `factory.createLiteralTypeNode` or the factory supplied by your transformation context instead. */ 7659 const createLiteralTypeNode: (literal: LiteralExpression | BooleanLiteral | PrefixUnaryExpression | NullLiteral) => LiteralTypeNode; 7660 /** @deprecated Use `factory.updateLiteralTypeNode` or the factory supplied by your transformation context instead. */ 7661 const updateLiteralTypeNode: (node: LiteralTypeNode, literal: LiteralExpression | BooleanLiteral | PrefixUnaryExpression | NullLiteral) => LiteralTypeNode; 7662 /** @deprecated Use `factory.createObjectBindingPattern` or the factory supplied by your transformation context instead. */ 7663 const createObjectBindingPattern: (elements: readonly BindingElement[]) => ObjectBindingPattern; 7664 /** @deprecated Use `factory.updateObjectBindingPattern` or the factory supplied by your transformation context instead. */ 7665 const updateObjectBindingPattern: (node: ObjectBindingPattern, elements: readonly BindingElement[]) => ObjectBindingPattern; 7666 /** @deprecated Use `factory.createArrayBindingPattern` or the factory supplied by your transformation context instead. */ 7667 const createArrayBindingPattern: (elements: readonly ArrayBindingElement[]) => ArrayBindingPattern; 7668 /** @deprecated Use `factory.updateArrayBindingPattern` or the factory supplied by your transformation context instead. */ 7669 const updateArrayBindingPattern: (node: ArrayBindingPattern, elements: readonly ArrayBindingElement[]) => ArrayBindingPattern; 7670 /** @deprecated Use `factory.createBindingElement` or the factory supplied by your transformation context instead. */ 7671 const createBindingElement: (dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression | undefined) => BindingElement; 7672 /** @deprecated Use `factory.updateBindingElement` or the factory supplied by your transformation context instead. */ 7673 const updateBindingElement: (node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined) => BindingElement; 7674 /** @deprecated Use `factory.createArrayLiteralExpression` or the factory supplied by your transformation context instead. */ 7675 const createArrayLiteral: (elements?: readonly Expression[] | undefined, multiLine?: boolean | undefined) => ArrayLiteralExpression; 7676 /** @deprecated Use `factory.updateArrayLiteralExpression` or the factory supplied by your transformation context instead. */ 7677 const updateArrayLiteral: (node: ArrayLiteralExpression, elements: readonly Expression[]) => ArrayLiteralExpression; 7678 /** @deprecated Use `factory.createObjectLiteralExpression` or the factory supplied by your transformation context instead. */ 7679 const createObjectLiteral: (properties?: readonly ObjectLiteralElementLike[] | undefined, multiLine?: boolean | undefined) => ObjectLiteralExpression; 7680 /** @deprecated Use `factory.updateObjectLiteralExpression` or the factory supplied by your transformation context instead. */ 7681 const updateObjectLiteral: (node: ObjectLiteralExpression, properties: readonly ObjectLiteralElementLike[]) => ObjectLiteralExpression; 7682 /** @deprecated Use `factory.createPropertyAccessExpression` or the factory supplied by your transformation context instead. */ 7683 const createPropertyAccess: (expression: Expression, name: string | MemberName) => PropertyAccessExpression; 7684 /** @deprecated Use `factory.updatePropertyAccessExpression` or the factory supplied by your transformation context instead. */ 7685 const updatePropertyAccess: (node: PropertyAccessExpression, expression: Expression, name: MemberName) => PropertyAccessExpression; 7686 /** @deprecated Use `factory.createPropertyAccessChain` or the factory supplied by your transformation context instead. */ 7687 const createPropertyAccessChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, name: string | MemberName) => PropertyAccessChain; 7688 /** @deprecated Use `factory.updatePropertyAccessChain` or the factory supplied by your transformation context instead. */ 7689 const updatePropertyAccessChain: (node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, name: MemberName) => PropertyAccessChain; 7690 /** @deprecated Use `factory.createElementAccessExpression` or the factory supplied by your transformation context instead. */ 7691 const createElementAccess: (expression: Expression, index: number | Expression) => ElementAccessExpression; 7692 /** @deprecated Use `factory.updateElementAccessExpression` or the factory supplied by your transformation context instead. */ 7693 const updateElementAccess: (node: ElementAccessExpression, expression: Expression, argumentExpression: Expression) => ElementAccessExpression; 7694 /** @deprecated Use `factory.createElementAccessChain` or the factory supplied by your transformation context instead. */ 7695 const createElementAccessChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, index: number | Expression) => ElementAccessChain; 7696 /** @deprecated Use `factory.updateElementAccessChain` or the factory supplied by your transformation context instead. */ 7697 const updateElementAccessChain: (node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, argumentExpression: Expression) => ElementAccessChain; 7698 /** @deprecated Use `factory.createCallExpression` or the factory supplied by your transformation context instead. */ 7699 const createCall: (expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => CallExpression; 7700 /** @deprecated Use `factory.updateCallExpression` or the factory supplied by your transformation context instead. */ 7701 const updateCall: (node: CallExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]) => CallExpression; 7702 /** @deprecated Use `factory.createCallChain` or the factory supplied by your transformation context instead. */ 7703 const createCallChain: (expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => CallChain; 7704 /** @deprecated Use `factory.updateCallChain` or the factory supplied by your transformation context instead. */ 7705 const updateCallChain: (node: CallChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]) => CallChain; 7706 /** @deprecated Use `factory.createNewExpression` or the factory supplied by your transformation context instead. */ 7707 const createNew: (expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => NewExpression; 7708 /** @deprecated Use `factory.updateNewExpression` or the factory supplied by your transformation context instead. */ 7709 const updateNew: (node: NewExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined) => NewExpression; 7710 /** @deprecated Use `factory.createTypeAssertion` or the factory supplied by your transformation context instead. */ 7711 const createTypeAssertion: (type: TypeNode, expression: Expression) => TypeAssertion; 7712 /** @deprecated Use `factory.updateTypeAssertion` or the factory supplied by your transformation context instead. */ 7713 const updateTypeAssertion: (node: TypeAssertion, type: TypeNode, expression: Expression) => TypeAssertion; 7714 /** @deprecated Use `factory.createParenthesizedExpression` or the factory supplied by your transformation context instead. */ 7715 const createParen: (expression: Expression) => ParenthesizedExpression; 7716 /** @deprecated Use `factory.updateParenthesizedExpression` or the factory supplied by your transformation context instead. */ 7717 const updateParen: (node: ParenthesizedExpression, expression: Expression) => ParenthesizedExpression; 7718 /** @deprecated Use `factory.createFunctionExpression` or the factory supplied by your transformation context instead. */ 7719 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; 7720 /** @deprecated Use `factory.updateFunctionExpression` or the factory supplied by your transformation context instead. */ 7721 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; 7722 /** @deprecated Use `factory.createDeleteExpression` or the factory supplied by your transformation context instead. */ 7723 const createDelete: (expression: Expression) => DeleteExpression; 7724 /** @deprecated Use `factory.updateDeleteExpression` or the factory supplied by your transformation context instead. */ 7725 const updateDelete: (node: DeleteExpression, expression: Expression) => DeleteExpression; 7726 /** @deprecated Use `factory.createTypeOfExpression` or the factory supplied by your transformation context instead. */ 7727 const createTypeOf: (expression: Expression) => TypeOfExpression; 7728 /** @deprecated Use `factory.updateTypeOfExpression` or the factory supplied by your transformation context instead. */ 7729 const updateTypeOf: (node: TypeOfExpression, expression: Expression) => TypeOfExpression; 7730 /** @deprecated Use `factory.createVoidExpression` or the factory supplied by your transformation context instead. */ 7731 const createVoid: (expression: Expression) => VoidExpression; 7732 /** @deprecated Use `factory.updateVoidExpression` or the factory supplied by your transformation context instead. */ 7733 const updateVoid: (node: VoidExpression, expression: Expression) => VoidExpression; 7734 /** @deprecated Use `factory.createAwaitExpression` or the factory supplied by your transformation context instead. */ 7735 const createAwait: (expression: Expression) => AwaitExpression; 7736 /** @deprecated Use `factory.updateAwaitExpression` or the factory supplied by your transformation context instead. */ 7737 const updateAwait: (node: AwaitExpression, expression: Expression) => AwaitExpression; 7738 /** @deprecated Use `factory.createPrefixExpression` or the factory supplied by your transformation context instead. */ 7739 const createPrefix: (operator: PrefixUnaryOperator, operand: Expression) => PrefixUnaryExpression; 7740 /** @deprecated Use `factory.updatePrefixExpression` or the factory supplied by your transformation context instead. */ 7741 const updatePrefix: (node: PrefixUnaryExpression, operand: Expression) => PrefixUnaryExpression; 7742 /** @deprecated Use `factory.createPostfixUnaryExpression` or the factory supplied by your transformation context instead. */ 7743 const createPostfix: (operand: Expression, operator: PostfixUnaryOperator) => PostfixUnaryExpression; 7744 /** @deprecated Use `factory.updatePostfixUnaryExpression` or the factory supplied by your transformation context instead. */ 7745 const updatePostfix: (node: PostfixUnaryExpression, operand: Expression) => PostfixUnaryExpression; 7746 /** @deprecated Use `factory.createBinaryExpression` or the factory supplied by your transformation context instead. */ 7747 const createBinary: (left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression) => BinaryExpression; 7748 /** @deprecated Use `factory.updateConditionalExpression` or the factory supplied by your transformation context instead. */ 7749 const updateConditional: (node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression) => ConditionalExpression; 7750 /** @deprecated Use `factory.createTemplateExpression` or the factory supplied by your transformation context instead. */ 7751 const createTemplateExpression: (head: TemplateHead, templateSpans: readonly TemplateSpan[]) => TemplateExpression; 7752 /** @deprecated Use `factory.updateTemplateExpression` or the factory supplied by your transformation context instead. */ 7753 const updateTemplateExpression: (node: TemplateExpression, head: TemplateHead, templateSpans: readonly TemplateSpan[]) => TemplateExpression; 7754 /** @deprecated Use `factory.createTemplateHead` or the factory supplied by your transformation context instead. */ 7755 const createTemplateHead: { 7756 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateHead; 7757 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateHead; 7758 }; 7759 /** @deprecated Use `factory.createTemplateMiddle` or the factory supplied by your transformation context instead. */ 7760 const createTemplateMiddle: { 7761 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateMiddle; 7762 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateMiddle; 7763 }; 7764 /** @deprecated Use `factory.createTemplateTail` or the factory supplied by your transformation context instead. */ 7765 const createTemplateTail: { 7766 (text: string, rawText?: string | undefined, templateFlags?: TokenFlags | undefined): TemplateTail; 7767 (text: string | undefined, rawText: string, templateFlags?: TokenFlags | undefined): TemplateTail; 7768 }; 7769 /** @deprecated Use `factory.createNoSubstitutionTemplateLiteral` or the factory supplied by your transformation context instead. */ 7770 const createNoSubstitutionTemplateLiteral: { 7771 (text: string, rawText?: string | undefined): NoSubstitutionTemplateLiteral; 7772 (text: string | undefined, rawText: string): NoSubstitutionTemplateLiteral; 7773 }; 7774 /** @deprecated Use `factory.updateYieldExpression` or the factory supplied by your transformation context instead. */ 7775 const updateYield: (node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression | undefined) => YieldExpression; 7776 /** @deprecated Use `factory.createSpreadExpression` or the factory supplied by your transformation context instead. */ 7777 const createSpread: (expression: Expression) => SpreadElement; 7778 /** @deprecated Use `factory.updateSpreadExpression` or the factory supplied by your transformation context instead. */ 7779 const updateSpread: (node: SpreadElement, expression: Expression) => SpreadElement; 7780 /** @deprecated Use `factory.createOmittedExpression` or the factory supplied by your transformation context instead. */ 7781 const createOmittedExpression: () => OmittedExpression; 7782 /** @deprecated Use `factory.createAsExpression` or the factory supplied by your transformation context instead. */ 7783 const createAsExpression: (expression: Expression, type: TypeNode) => AsExpression; 7784 /** @deprecated Use `factory.updateAsExpression` or the factory supplied by your transformation context instead. */ 7785 const updateAsExpression: (node: AsExpression, expression: Expression, type: TypeNode) => AsExpression; 7786 /** @deprecated Use `factory.createNonNullExpression` or the factory supplied by your transformation context instead. */ 7787 const createNonNullExpression: (expression: Expression) => NonNullExpression; 7788 /** @deprecated Use `factory.updateNonNullExpression` or the factory supplied by your transformation context instead. */ 7789 const updateNonNullExpression: (node: NonNullExpression, expression: Expression) => NonNullExpression; 7790 /** @deprecated Use `factory.createNonNullChain` or the factory supplied by your transformation context instead. */ 7791 const createNonNullChain: (expression: Expression) => NonNullChain; 7792 /** @deprecated Use `factory.updateNonNullChain` or the factory supplied by your transformation context instead. */ 7793 const updateNonNullChain: (node: NonNullChain, expression: Expression) => NonNullChain; 7794 /** @deprecated Use `factory.createMetaProperty` or the factory supplied by your transformation context instead. */ 7795 const createMetaProperty: (keywordToken: SyntaxKind.ImportKeyword | SyntaxKind.NewKeyword, name: Identifier) => MetaProperty; 7796 /** @deprecated Use `factory.updateMetaProperty` or the factory supplied by your transformation context instead. */ 7797 const updateMetaProperty: (node: MetaProperty, name: Identifier) => MetaProperty; 7798 /** @deprecated Use `factory.createTemplateSpan` or the factory supplied by your transformation context instead. */ 7799 const createTemplateSpan: (expression: Expression, literal: TemplateMiddle | TemplateTail) => TemplateSpan; 7800 /** @deprecated Use `factory.updateTemplateSpan` or the factory supplied by your transformation context instead. */ 7801 const updateTemplateSpan: (node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail) => TemplateSpan; 7802 /** @deprecated Use `factory.createSemicolonClassElement` or the factory supplied by your transformation context instead. */ 7803 const createSemicolonClassElement: () => SemicolonClassElement; 7804 /** @deprecated Use `factory.createBlock` or the factory supplied by your transformation context instead. */ 7805 const createBlock: (statements: readonly Statement[], multiLine?: boolean | undefined) => Block; 7806 /** @deprecated Use `factory.updateBlock` or the factory supplied by your transformation context instead. */ 7807 const updateBlock: (node: Block, statements: readonly Statement[]) => Block; 7808 /** @deprecated Use `factory.createVariableStatement` or the factory supplied by your transformation context instead. */ 7809 const createVariableStatement: (modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList | readonly VariableDeclaration[]) => VariableStatement; 7810 /** @deprecated Use `factory.updateVariableStatement` or the factory supplied by your transformation context instead. */ 7811 const updateVariableStatement: (node: VariableStatement, modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList) => VariableStatement; 7812 /** @deprecated Use `factory.createEmptyStatement` or the factory supplied by your transformation context instead. */ 7813 const createEmptyStatement: () => EmptyStatement; 7814 /** @deprecated Use `factory.createExpressionStatement` or the factory supplied by your transformation context instead. */ 7815 const createExpressionStatement: (expression: Expression) => ExpressionStatement; 7816 /** @deprecated Use `factory.updateExpressionStatement` or the factory supplied by your transformation context instead. */ 7817 const updateExpressionStatement: (node: ExpressionStatement, expression: Expression) => ExpressionStatement; 7818 /** @deprecated Use `factory.createExpressionStatement` or the factory supplied by your transformation context instead. */ 7819 const createStatement: (expression: Expression) => ExpressionStatement; 7820 /** @deprecated Use `factory.updateExpressionStatement` or the factory supplied by your transformation context instead. */ 7821 const updateStatement: (node: ExpressionStatement, expression: Expression) => ExpressionStatement; 7822 /** @deprecated Use `factory.createIfStatement` or the factory supplied by your transformation context instead. */ 7823 const createIf: (expression: Expression, thenStatement: Statement, elseStatement?: Statement | undefined) => IfStatement; 7824 /** @deprecated Use `factory.updateIfStatement` or the factory supplied by your transformation context instead. */ 7825 const updateIf: (node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement | undefined) => IfStatement; 7826 /** @deprecated Use `factory.createDoStatement` or the factory supplied by your transformation context instead. */ 7827 const createDo: (statement: Statement, expression: Expression) => DoStatement; 7828 /** @deprecated Use `factory.updateDoStatement` or the factory supplied by your transformation context instead. */ 7829 const updateDo: (node: DoStatement, statement: Statement, expression: Expression) => DoStatement; 7830 /** @deprecated Use `factory.createWhileStatement` or the factory supplied by your transformation context instead. */ 7831 const createWhile: (expression: Expression, statement: Statement) => WhileStatement; 7832 /** @deprecated Use `factory.updateWhileStatement` or the factory supplied by your transformation context instead. */ 7833 const updateWhile: (node: WhileStatement, expression: Expression, statement: Statement) => WhileStatement; 7834 /** @deprecated Use `factory.createForStatement` or the factory supplied by your transformation context instead. */ 7835 const createFor: (initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement) => ForStatement; 7836 /** @deprecated Use `factory.updateForStatement` or the factory supplied by your transformation context instead. */ 7837 const updateFor: (node: ForStatement, initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement) => ForStatement; 7838 /** @deprecated Use `factory.createForInStatement` or the factory supplied by your transformation context instead. */ 7839 const createForIn: (initializer: ForInitializer, expression: Expression, statement: Statement) => ForInStatement; 7840 /** @deprecated Use `factory.updateForInStatement` or the factory supplied by your transformation context instead. */ 7841 const updateForIn: (node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement) => ForInStatement; 7842 /** @deprecated Use `factory.createForOfStatement` or the factory supplied by your transformation context instead. */ 7843 const createForOf: (awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement) => ForOfStatement; 7844 /** @deprecated Use `factory.updateForOfStatement` or the factory supplied by your transformation context instead. */ 7845 const updateForOf: (node: ForOfStatement, awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement) => ForOfStatement; 7846 /** @deprecated Use `factory.createContinueStatement` or the factory supplied by your transformation context instead. */ 7847 const createContinue: (label?: string | Identifier | undefined) => ContinueStatement; 7848 /** @deprecated Use `factory.updateContinueStatement` or the factory supplied by your transformation context instead. */ 7849 const updateContinue: (node: ContinueStatement, label: Identifier | undefined) => ContinueStatement; 7850 /** @deprecated Use `factory.createBreakStatement` or the factory supplied by your transformation context instead. */ 7851 const createBreak: (label?: string | Identifier | undefined) => BreakStatement; 7852 /** @deprecated Use `factory.updateBreakStatement` or the factory supplied by your transformation context instead. */ 7853 const updateBreak: (node: BreakStatement, label: Identifier | undefined) => BreakStatement; 7854 /** @deprecated Use `factory.createReturnStatement` or the factory supplied by your transformation context instead. */ 7855 const createReturn: (expression?: Expression | undefined) => ReturnStatement; 7856 /** @deprecated Use `factory.updateReturnStatement` or the factory supplied by your transformation context instead. */ 7857 const updateReturn: (node: ReturnStatement, expression: Expression | undefined) => ReturnStatement; 7858 /** @deprecated Use `factory.createWithStatement` or the factory supplied by your transformation context instead. */ 7859 const createWith: (expression: Expression, statement: Statement) => WithStatement; 7860 /** @deprecated Use `factory.updateWithStatement` or the factory supplied by your transformation context instead. */ 7861 const updateWith: (node: WithStatement, expression: Expression, statement: Statement) => WithStatement; 7862 /** @deprecated Use `factory.createSwitchStatement` or the factory supplied by your transformation context instead. */ 7863 const createSwitch: (expression: Expression, caseBlock: CaseBlock) => SwitchStatement; 7864 /** @deprecated Use `factory.updateSwitchStatement` or the factory supplied by your transformation context instead. */ 7865 const updateSwitch: (node: SwitchStatement, expression: Expression, caseBlock: CaseBlock) => SwitchStatement; 7866 /** @deprecated Use `factory.createLabelStatement` or the factory supplied by your transformation context instead. */ 7867 const createLabel: (label: string | Identifier, statement: Statement) => LabeledStatement; 7868 /** @deprecated Use `factory.updateLabelStatement` or the factory supplied by your transformation context instead. */ 7869 const updateLabel: (node: LabeledStatement, label: Identifier, statement: Statement) => LabeledStatement; 7870 /** @deprecated Use `factory.createThrowStatement` or the factory supplied by your transformation context instead. */ 7871 const createThrow: (expression: Expression) => ThrowStatement; 7872 /** @deprecated Use `factory.updateThrowStatement` or the factory supplied by your transformation context instead. */ 7873 const updateThrow: (node: ThrowStatement, expression: Expression) => ThrowStatement; 7874 /** @deprecated Use `factory.createTryStatement` or the factory supplied by your transformation context instead. */ 7875 const createTry: (tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined) => TryStatement; 7876 /** @deprecated Use `factory.updateTryStatement` or the factory supplied by your transformation context instead. */ 7877 const updateTry: (node: TryStatement, tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined) => TryStatement; 7878 /** @deprecated Use `factory.createDebuggerStatement` or the factory supplied by your transformation context instead. */ 7879 const createDebuggerStatement: () => DebuggerStatement; 7880 /** @deprecated Use `factory.createVariableDeclarationList` or the factory supplied by your transformation context instead. */ 7881 const createVariableDeclarationList: (declarations: readonly VariableDeclaration[], flags?: NodeFlags | undefined) => VariableDeclarationList; 7882 /** @deprecated Use `factory.updateVariableDeclarationList` or the factory supplied by your transformation context instead. */ 7883 const updateVariableDeclarationList: (node: VariableDeclarationList, declarations: readonly VariableDeclaration[]) => VariableDeclarationList; 7884 /** @deprecated Use `factory.createFunctionDeclaration` or the factory supplied by your transformation context instead. */ 7885 const createFunctionDeclaration: { 7886 (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; 7887 (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; 7888 }; 7889 /** @deprecated Use `factory.updateFunctionDeclaration` or the factory supplied by your transformation context instead. */ 7890 const updateFunctionDeclaration: { 7891 (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; 7892 (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; 7893 }; 7894 /** @deprecated Use `factory.createClassDeclaration` or the factory supplied by your transformation context instead. */ 7895 const createClassDeclaration: { 7896 (modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 7897 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 7898 }; 7899 /** @deprecated Use `factory.updateClassDeclaration` or the factory supplied by your transformation context instead. */ 7900 const updateClassDeclaration: { 7901 (node: ClassDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration; 7902 (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; 7903 }; 7904 /** @deprecated Use `factory.createInterfaceDeclaration` or the factory supplied by your transformation context instead. */ 7905 const createInterfaceDeclaration: { 7906 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 7907 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 7908 }; 7909 /** @deprecated Use `factory.updateInterfaceDeclaration` or the factory supplied by your transformation context instead. */ 7910 const updateInterfaceDeclaration: { 7911 (node: InterfaceDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 7912 (node: InterfaceDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 7913 }; 7914 /** @deprecated Use `factory.createTypeAliasDeclaration` or the factory supplied by your transformation context instead. */ 7915 const createTypeAliasDeclaration: { 7916 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 7917 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 7918 }; 7919 /** @deprecated Use `factory.updateTypeAliasDeclaration` or the factory supplied by your transformation context instead. */ 7920 const updateTypeAliasDeclaration: { 7921 (node: TypeAliasDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 7922 (node: TypeAliasDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 7923 }; 7924 /** @deprecated Use `factory.createEnumDeclaration` or the factory supplied by your transformation context instead. */ 7925 const createEnumDeclaration: { 7926 (modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 7927 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 7928 }; 7929 /** @deprecated Use `factory.updateEnumDeclaration` or the factory supplied by your transformation context instead. */ 7930 const updateEnumDeclaration: { 7931 (node: EnumDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 7932 (node: EnumDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 7933 }; 7934 /** @deprecated Use `factory.createModuleDeclaration` or the factory supplied by your transformation context instead. */ 7935 const createModuleDeclaration: { 7936 (modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags | undefined): ModuleDeclaration; 7937 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags | undefined): ModuleDeclaration; 7938 }; 7939 /** @deprecated Use `factory.updateModuleDeclaration` or the factory supplied by your transformation context instead. */ 7940 const updateModuleDeclaration: { 7941 (node: ModuleDeclaration, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 7942 (node: ModuleDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 7943 }; 7944 /** @deprecated Use `factory.createModuleBlock` or the factory supplied by your transformation context instead. */ 7945 const createModuleBlock: (statements: readonly Statement[]) => ModuleBlock; 7946 /** @deprecated Use `factory.updateModuleBlock` or the factory supplied by your transformation context instead. */ 7947 const updateModuleBlock: (node: ModuleBlock, statements: readonly Statement[]) => ModuleBlock; 7948 /** @deprecated Use `factory.createCaseBlock` or the factory supplied by your transformation context instead. */ 7949 const createCaseBlock: (clauses: readonly CaseOrDefaultClause[]) => CaseBlock; 7950 /** @deprecated Use `factory.updateCaseBlock` or the factory supplied by your transformation context instead. */ 7951 const updateCaseBlock: (node: CaseBlock, clauses: readonly CaseOrDefaultClause[]) => CaseBlock; 7952 /** @deprecated Use `factory.createNamespaceExportDeclaration` or the factory supplied by your transformation context instead. */ 7953 const createNamespaceExportDeclaration: (name: string | Identifier) => NamespaceExportDeclaration; 7954 /** @deprecated Use `factory.updateNamespaceExportDeclaration` or the factory supplied by your transformation context instead. */ 7955 const updateNamespaceExportDeclaration: (node: NamespaceExportDeclaration, name: Identifier) => NamespaceExportDeclaration; 7956 /** @deprecated Use `factory.createImportEqualsDeclaration` or the factory supplied by your transformation context instead. */ 7957 const createImportEqualsDeclaration: { 7958 (modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 7959 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 7960 }; 7961 /** @deprecated Use `factory.updateImportEqualsDeclaration` or the factory supplied by your transformation context instead. */ 7962 const updateImportEqualsDeclaration: { 7963 (node: ImportEqualsDeclaration, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 7964 (node: ImportEqualsDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 7965 }; 7966 /** @deprecated Use `factory.createImportDeclaration` or the factory supplied by your transformation context instead. */ 7967 const createImportDeclaration: { 7968 (modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause | undefined): ImportDeclaration; 7969 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause | undefined): ImportDeclaration; 7970 }; 7971 /** @deprecated Use `factory.updateImportDeclaration` or the factory supplied by your transformation context instead. */ 7972 const updateImportDeclaration: { 7973 (node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 7974 (node: ImportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 7975 }; 7976 /** @deprecated Use `factory.createNamespaceImport` or the factory supplied by your transformation context instead. */ 7977 const createNamespaceImport: (name: Identifier) => NamespaceImport; 7978 /** @deprecated Use `factory.updateNamespaceImport` or the factory supplied by your transformation context instead. */ 7979 const updateNamespaceImport: (node: NamespaceImport, name: Identifier) => NamespaceImport; 7980 /** @deprecated Use `factory.createNamedImports` or the factory supplied by your transformation context instead. */ 7981 const createNamedImports: (elements: readonly ImportSpecifier[]) => NamedImports; 7982 /** @deprecated Use `factory.updateNamedImports` or the factory supplied by your transformation context instead. */ 7983 const updateNamedImports: (node: NamedImports, elements: readonly ImportSpecifier[]) => NamedImports; 7984 /** @deprecated Use `factory.createImportSpecifier` or the factory supplied by your transformation context instead. */ 7985 const createImportSpecifier: (isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ImportSpecifier; 7986 /** @deprecated Use `factory.updateImportSpecifier` or the factory supplied by your transformation context instead. */ 7987 const updateImportSpecifier: (node: ImportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ImportSpecifier; 7988 /** @deprecated Use `factory.createExportAssignment` or the factory supplied by your transformation context instead. */ 7989 const createExportAssignment: { 7990 (modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 7991 (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 7992 }; 7993 /** @deprecated Use `factory.updateExportAssignment` or the factory supplied by your transformation context instead. */ 7994 const updateExportAssignment: { 7995 (node: ExportAssignment, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 7996 (node: ExportAssignment, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 7997 }; 7998 /** @deprecated Use `factory.createNamedExports` or the factory supplied by your transformation context instead. */ 7999 const createNamedExports: (elements: readonly ExportSpecifier[]) => NamedExports; 8000 /** @deprecated Use `factory.updateNamedExports` or the factory supplied by your transformation context instead. */ 8001 const updateNamedExports: (node: NamedExports, elements: readonly ExportSpecifier[]) => NamedExports; 8002 /** @deprecated Use `factory.createExportSpecifier` or the factory supplied by your transformation context instead. */ 8003 const createExportSpecifier: (isTypeOnly: boolean, propertyName: string | Identifier | undefined, name: string | Identifier) => ExportSpecifier; 8004 /** @deprecated Use `factory.updateExportSpecifier` or the factory supplied by your transformation context instead. */ 8005 const updateExportSpecifier: (node: ExportSpecifier, isTypeOnly: boolean, propertyName: Identifier | undefined, name: Identifier) => ExportSpecifier; 8006 /** @deprecated Use `factory.createExternalModuleReference` or the factory supplied by your transformation context instead. */ 8007 const createExternalModuleReference: (expression: Expression) => ExternalModuleReference; 8008 /** @deprecated Use `factory.updateExternalModuleReference` or the factory supplied by your transformation context instead. */ 8009 const updateExternalModuleReference: (node: ExternalModuleReference, expression: Expression) => ExternalModuleReference; 8010 /** @deprecated Use `factory.createJSDocTypeExpression` or the factory supplied by your transformation context instead. */ 8011 const createJSDocTypeExpression: (type: TypeNode) => JSDocTypeExpression; 8012 /** @deprecated Use `factory.createJSDocTypeTag` or the factory supplied by your transformation context instead. */ 8013 const createJSDocTypeTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTypeTag; 8014 /** @deprecated Use `factory.createJSDocReturnTag` or the factory supplied by your transformation context instead. */ 8015 const createJSDocReturnTag: (tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocReturnTag; 8016 /** @deprecated Use `factory.createJSDocThisTag` or the factory supplied by your transformation context instead. */ 8017 const createJSDocThisTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocThisTag; 8018 /** @deprecated Use `factory.createJSDocComment` or the factory supplied by your transformation context instead. */ 8019 const createJSDocComment: (comment?: string | NodeArray<JSDocComment> | undefined, tags?: readonly JSDocTag[] | undefined) => JSDoc; 8020 /** @deprecated Use `factory.createJSDocParameterTag` or the factory supplied by your transformation context instead. */ 8021 const createJSDocParameterTag: (tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, isNameFirst?: boolean | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocParameterTag; 8022 /** @deprecated Use `factory.createJSDocClassTag` or the factory supplied by your transformation context instead. */ 8023 const createJSDocClassTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocClassTag; 8024 /** @deprecated Use `factory.createJSDocAugmentsTag` or the factory supplied by your transformation context instead. */ 8025 const createJSDocAugmentsTag: (tagName: Identifier | undefined, className: ExpressionWithTypeArguments & { 8026 readonly expression: Identifier | PropertyAccessEntityNameExpression; 8027 }, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocAugmentsTag; 8028 /** @deprecated Use `factory.createJSDocEnumTag` or the factory supplied by your transformation context instead. */ 8029 const createJSDocEnumTag: (tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocEnumTag; 8030 /** @deprecated Use `factory.createJSDocTemplateTag` or the factory supplied by your transformation context instead. */ 8031 const createJSDocTemplateTag: (tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTemplateTag; 8032 /** @deprecated Use `factory.createJSDocTypedefTag` or the factory supplied by your transformation context instead. */ 8033 const createJSDocTypedefTag: (tagName: Identifier | undefined, typeExpression?: JSDocTypeLiteral | JSDocTypeExpression | undefined, fullName?: Identifier | JSDocNamespaceDeclaration | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocTypedefTag; 8034 /** @deprecated Use `factory.createJSDocCallbackTag` or the factory supplied by your transformation context instead. */ 8035 const createJSDocCallbackTag: (tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName?: Identifier | JSDocNamespaceDeclaration | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocCallbackTag; 8036 /** @deprecated Use `factory.createJSDocSignature` or the factory supplied by your transformation context instead. */ 8037 const createJSDocSignature: (typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type?: JSDocReturnTag | undefined) => JSDocSignature; 8038 /** @deprecated Use `factory.createJSDocPropertyTag` or the factory supplied by your transformation context instead. */ 8039 const createJSDocPropertyTag: (tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, isNameFirst?: boolean | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPropertyTag; 8040 /** @deprecated Use `factory.createJSDocTypeLiteral` or the factory supplied by your transformation context instead. */ 8041 const createJSDocTypeLiteral: (jsDocPropertyTags?: readonly JSDocPropertyLikeTag[] | undefined, isArrayType?: boolean | undefined) => JSDocTypeLiteral; 8042 /** @deprecated Use `factory.createJSDocImplementsTag` or the factory supplied by your transformation context instead. */ 8043 const createJSDocImplementsTag: (tagName: Identifier | undefined, className: ExpressionWithTypeArguments & { 8044 readonly expression: Identifier | PropertyAccessEntityNameExpression; 8045 }, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocImplementsTag; 8046 /** @deprecated Use `factory.createJSDocAuthorTag` or the factory supplied by your transformation context instead. */ 8047 const createJSDocAuthorTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocAuthorTag; 8048 /** @deprecated Use `factory.createJSDocPublicTag` or the factory supplied by your transformation context instead. */ 8049 const createJSDocPublicTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPublicTag; 8050 /** @deprecated Use `factory.createJSDocPrivateTag` or the factory supplied by your transformation context instead. */ 8051 const createJSDocPrivateTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocPrivateTag; 8052 /** @deprecated Use `factory.createJSDocProtectedTag` or the factory supplied by your transformation context instead. */ 8053 const createJSDocProtectedTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocProtectedTag; 8054 /** @deprecated Use `factory.createJSDocReadonlyTag` or the factory supplied by your transformation context instead. */ 8055 const createJSDocReadonlyTag: (tagName: Identifier | undefined, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocReadonlyTag; 8056 /** @deprecated Use `factory.createJSDocUnknownTag` or the factory supplied by your transformation context instead. */ 8057 const createJSDocTag: (tagName: Identifier, comment?: string | NodeArray<JSDocComment> | undefined) => JSDocUnknownTag; 8058 /** @deprecated Use `factory.createJsxElement` or the factory supplied by your transformation context instead. */ 8059 const createJsxElement: (openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement) => JsxElement; 8060 /** @deprecated Use `factory.updateJsxElement` or the factory supplied by your transformation context instead. */ 8061 const updateJsxElement: (node: JsxElement, openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement) => JsxElement; 8062 /** @deprecated Use `factory.createJsxSelfClosingElement` or the factory supplied by your transformation context instead. */ 8063 const createJsxSelfClosingElement: (tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxSelfClosingElement; 8064 /** @deprecated Use `factory.updateJsxSelfClosingElement` or the factory supplied by your transformation context instead. */ 8065 const updateJsxSelfClosingElement: (node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxSelfClosingElement; 8066 /** @deprecated Use `factory.createJsxOpeningElement` or the factory supplied by your transformation context instead. */ 8067 const createJsxOpeningElement: (tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxOpeningElement; 8068 /** @deprecated Use `factory.updateJsxOpeningElement` or the factory supplied by your transformation context instead. */ 8069 const updateJsxOpeningElement: (node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes) => JsxOpeningElement; 8070 /** @deprecated Use `factory.createJsxClosingElement` or the factory supplied by your transformation context instead. */ 8071 const createJsxClosingElement: (tagName: JsxTagNameExpression) => JsxClosingElement; 8072 /** @deprecated Use `factory.updateJsxClosingElement` or the factory supplied by your transformation context instead. */ 8073 const updateJsxClosingElement: (node: JsxClosingElement, tagName: JsxTagNameExpression) => JsxClosingElement; 8074 /** @deprecated Use `factory.createJsxFragment` or the factory supplied by your transformation context instead. */ 8075 const createJsxFragment: (openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment) => JsxFragment; 8076 /** @deprecated Use `factory.createJsxText` or the factory supplied by your transformation context instead. */ 8077 const createJsxText: (text: string, containsOnlyTriviaWhiteSpaces?: boolean | undefined) => JsxText; 8078 /** @deprecated Use `factory.updateJsxText` or the factory supplied by your transformation context instead. */ 8079 const updateJsxText: (node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean | undefined) => JsxText; 8080 /** @deprecated Use `factory.createJsxOpeningFragment` or the factory supplied by your transformation context instead. */ 8081 const createJsxOpeningFragment: () => JsxOpeningFragment; 8082 /** @deprecated Use `factory.createJsxJsxClosingFragment` or the factory supplied by your transformation context instead. */ 8083 const createJsxJsxClosingFragment: () => JsxClosingFragment; 8084 /** @deprecated Use `factory.updateJsxFragment` or the factory supplied by your transformation context instead. */ 8085 const updateJsxFragment: (node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment) => JsxFragment; 8086 /** @deprecated Use `factory.createJsxAttribute` or the factory supplied by your transformation context instead. */ 8087 const createJsxAttribute: (name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; 8088 /** @deprecated Use `factory.updateJsxAttribute` or the factory supplied by your transformation context instead. */ 8089 const updateJsxAttribute: (node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; 8090 /** @deprecated Use `factory.createJsxAttributes` or the factory supplied by your transformation context instead. */ 8091 const createJsxAttributes: (properties: readonly JsxAttributeLike[]) => JsxAttributes; 8092 /** @deprecated Use `factory.updateJsxAttributes` or the factory supplied by your transformation context instead. */ 8093 const updateJsxAttributes: (node: JsxAttributes, properties: readonly JsxAttributeLike[]) => JsxAttributes; 8094 /** @deprecated Use `factory.createJsxSpreadAttribute` or the factory supplied by your transformation context instead. */ 8095 const createJsxSpreadAttribute: (expression: Expression) => JsxSpreadAttribute; 8096 /** @deprecated Use `factory.updateJsxSpreadAttribute` or the factory supplied by your transformation context instead. */ 8097 const updateJsxSpreadAttribute: (node: JsxSpreadAttribute, expression: Expression) => JsxSpreadAttribute; 8098 /** @deprecated Use `factory.createJsxExpression` or the factory supplied by your transformation context instead. */ 8099 const createJsxExpression: (dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined) => JsxExpression; 8100 /** @deprecated Use `factory.updateJsxExpression` or the factory supplied by your transformation context instead. */ 8101 const updateJsxExpression: (node: JsxExpression, expression: Expression | undefined) => JsxExpression; 8102 /** @deprecated Use `factory.createCaseClause` or the factory supplied by your transformation context instead. */ 8103 const createCaseClause: (expression: Expression, statements: readonly Statement[]) => CaseClause; 8104 /** @deprecated Use `factory.updateCaseClause` or the factory supplied by your transformation context instead. */ 8105 const updateCaseClause: (node: CaseClause, expression: Expression, statements: readonly Statement[]) => CaseClause; 8106 /** @deprecated Use `factory.createDefaultClause` or the factory supplied by your transformation context instead. */ 8107 const createDefaultClause: (statements: readonly Statement[]) => DefaultClause; 8108 /** @deprecated Use `factory.updateDefaultClause` or the factory supplied by your transformation context instead. */ 8109 const updateDefaultClause: (node: DefaultClause, statements: readonly Statement[]) => DefaultClause; 8110 /** @deprecated Use `factory.createHeritageClause` or the factory supplied by your transformation context instead. */ 8111 const createHeritageClause: (token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword, types: readonly ExpressionWithTypeArguments[]) => HeritageClause; 8112 /** @deprecated Use `factory.updateHeritageClause` or the factory supplied by your transformation context instead. */ 8113 const updateHeritageClause: (node: HeritageClause, types: readonly ExpressionWithTypeArguments[]) => HeritageClause; 8114 /** @deprecated Use `factory.createCatchClause` or the factory supplied by your transformation context instead. */ 8115 const createCatchClause: (variableDeclaration: string | VariableDeclaration | BindingName | undefined, block: Block) => CatchClause; 8116 /** @deprecated Use `factory.updateCatchClause` or the factory supplied by your transformation context instead. */ 8117 const updateCatchClause: (node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block) => CatchClause; 8118 /** @deprecated Use `factory.createPropertyAssignment` or the factory supplied by your transformation context instead. */ 8119 const createPropertyAssignment: (name: string | PropertyName, initializer: Expression) => PropertyAssignment; 8120 /** @deprecated Use `factory.updatePropertyAssignment` or the factory supplied by your transformation context instead. */ 8121 const updatePropertyAssignment: (node: PropertyAssignment, name: PropertyName, initializer: Expression) => PropertyAssignment; 8122 /** @deprecated Use `factory.createShorthandPropertyAssignment` or the factory supplied by your transformation context instead. */ 8123 const createShorthandPropertyAssignment: (name: string | Identifier, objectAssignmentInitializer?: Expression | undefined) => ShorthandPropertyAssignment; 8124 /** @deprecated Use `factory.updateShorthandPropertyAssignment` or the factory supplied by your transformation context instead. */ 8125 const updateShorthandPropertyAssignment: (node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression | undefined) => ShorthandPropertyAssignment; 8126 /** @deprecated Use `factory.createSpreadAssignment` or the factory supplied by your transformation context instead. */ 8127 const createSpreadAssignment: (expression: Expression) => SpreadAssignment; 8128 /** @deprecated Use `factory.updateSpreadAssignment` or the factory supplied by your transformation context instead. */ 8129 const updateSpreadAssignment: (node: SpreadAssignment, expression: Expression) => SpreadAssignment; 8130 /** @deprecated Use `factory.createEnumMember` or the factory supplied by your transformation context instead. */ 8131 const createEnumMember: (name: string | PropertyName, initializer?: Expression | undefined) => EnumMember; 8132 /** @deprecated Use `factory.updateEnumMember` or the factory supplied by your transformation context instead. */ 8133 const updateEnumMember: (node: EnumMember, name: PropertyName, initializer: Expression | undefined) => EnumMember; 8134 /** @deprecated Use `factory.updateSourceFile` or the factory supplied by your transformation context instead. */ 8135 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; 8136 /** @deprecated Use `factory.createNotEmittedStatement` or the factory supplied by your transformation context instead. */ 8137 const createNotEmittedStatement: (original: Node) => NotEmittedStatement; 8138 /** @deprecated Use `factory.createPartiallyEmittedExpression` or the factory supplied by your transformation context instead. */ 8139 const createPartiallyEmittedExpression: (expression: Expression, original?: Node | undefined) => PartiallyEmittedExpression; 8140 /** @deprecated Use `factory.updatePartiallyEmittedExpression` or the factory supplied by your transformation context instead. */ 8141 const updatePartiallyEmittedExpression: (node: PartiallyEmittedExpression, expression: Expression) => PartiallyEmittedExpression; 8142 /** @deprecated Use `factory.createCommaListExpression` or the factory supplied by your transformation context instead. */ 8143 const createCommaList: (elements: readonly Expression[]) => CommaListExpression; 8144 /** @deprecated Use `factory.updateCommaListExpression` or the factory supplied by your transformation context instead. */ 8145 const updateCommaList: (node: CommaListExpression, elements: readonly Expression[]) => CommaListExpression; 8146 /** @deprecated Use `factory.createBundle` or the factory supplied by your transformation context instead. */ 8147 const createBundle: (sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[] | undefined) => Bundle; 8148 /** @deprecated Use `factory.updateBundle` or the factory supplied by your transformation context instead. */ 8149 const updateBundle: (node: Bundle, sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[] | undefined) => Bundle; 8150 /** @deprecated Use `factory.createImmediatelyInvokedFunctionExpression` or the factory supplied by your transformation context instead. */ 8151 const createImmediatelyInvokedFunctionExpression: { 8152 (statements: readonly Statement[]): CallExpression; 8153 (statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 8154 }; 8155 /** @deprecated Use `factory.createImmediatelyInvokedArrowFunction` or the factory supplied by your transformation context instead. */ 8156 const createImmediatelyInvokedArrowFunction: { 8157 (statements: readonly Statement[]): CallExpression; 8158 (statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression; 8159 }; 8160 /** @deprecated Use `factory.createVoidZero` or the factory supplied by your transformation context instead. */ 8161 const createVoidZero: () => VoidExpression; 8162 /** @deprecated Use `factory.createExportDefault` or the factory supplied by your transformation context instead. */ 8163 const createExportDefault: (expression: Expression) => ExportAssignment; 8164 /** @deprecated Use `factory.createExternalModuleExport` or the factory supplied by your transformation context instead. */ 8165 const createExternalModuleExport: (exportName: Identifier) => ExportDeclaration; 8166 /** @deprecated Use `factory.createNamespaceExport` or the factory supplied by your transformation context instead. */ 8167 const createNamespaceExport: (name: Identifier) => NamespaceExport; 8168 /** @deprecated Use `factory.updateNamespaceExport` or the factory supplied by your transformation context instead. */ 8169 const updateNamespaceExport: (node: NamespaceExport, name: Identifier) => NamespaceExport; 8170 /** @deprecated Use `factory.createToken` or the factory supplied by your transformation context instead. */ 8171 const createToken: <TKind extends SyntaxKind>(kind: TKind) => Token<TKind>; 8172 /** @deprecated Use `factory.createIdentifier` or the factory supplied by your transformation context instead. */ 8173 const createIdentifier: (text: string) => Identifier; 8174 /** @deprecated Use `factory.createTempVariable` or the factory supplied by your transformation context instead. */ 8175 const createTempVariable: (recordTempVariable: ((node: Identifier) => void) | undefined) => Identifier; 8176 /** @deprecated Use `factory.getGeneratedNameForNode` or the factory supplied by your transformation context instead. */ 8177 const getGeneratedNameForNode: (node: Node | undefined) => Identifier; 8178 /** @deprecated Use `factory.createUniqueName(text, GeneratedIdentifierFlags.Optimistic)` or the factory supplied by your transformation context instead. */ 8179 const createOptimisticUniqueName: (text: string) => Identifier; 8180 /** @deprecated Use `factory.createUniqueName(text, GeneratedIdentifierFlags.Optimistic | GeneratedIdentifierFlags.FileLevel)` or the factory supplied by your transformation context instead. */ 8181 const createFileLevelUniqueName: (text: string) => Identifier; 8182 /** @deprecated Use `factory.createIndexSignature` or the factory supplied by your transformation context instead. */ 8183 const createIndexSignature: (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode) => IndexSignatureDeclaration; 8184 /** @deprecated Use `factory.createTypePredicateNode` or the factory supplied by your transformation context instead. */ 8185 const createTypePredicateNode: (parameterName: Identifier | ThisTypeNode | string, type: TypeNode) => TypePredicateNode; 8186 /** @deprecated Use `factory.updateTypePredicateNode` or the factory supplied by your transformation context instead. */ 8187 const updateTypePredicateNode: (node: TypePredicateNode, parameterName: Identifier | ThisTypeNode, type: TypeNode) => TypePredicateNode; 8188 /** @deprecated Use `factory.createStringLiteral`, `factory.createStringLiteralFromNode`, `factory.createNumericLiteral`, `factory.createBigIntLiteral`, `factory.createTrue`, `factory.createFalse`, or the factory supplied by your transformation context instead. */ 8189 const createLiteral: { 8190 (value: string | StringLiteral | NoSubstitutionTemplateLiteral | NumericLiteral | Identifier): StringLiteral; 8191 (value: number | PseudoBigInt): NumericLiteral; 8192 (value: boolean): BooleanLiteral; 8193 (value: string | number | PseudoBigInt | boolean): PrimaryExpression; 8194 }; 8195 /** @deprecated Use `factory.createMethodSignature` or the factory supplied by your transformation context instead. */ 8196 const createMethodSignature: (typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined) => MethodSignature; 8197 /** @deprecated Use `factory.updateMethodSignature` or the factory supplied by your transformation context instead. */ 8198 const updateMethodSignature: (node: MethodSignature, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined, name: PropertyName, questionToken: QuestionToken | undefined) => MethodSignature; 8199 /** @deprecated Use `factory.createTypeOperatorNode` or the factory supplied by your transformation context instead. */ 8200 const createTypeOperatorNode: { 8201 (type: TypeNode): TypeOperatorNode; 8202 (operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode; 8203 }; 8204 /** @deprecated Use `factory.createTaggedTemplate` or the factory supplied by your transformation context instead. */ 8205 const createTaggedTemplate: { 8206 (tag: Expression, template: TemplateLiteral): TaggedTemplateExpression; 8207 (tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 8208 }; 8209 /** @deprecated Use `factory.updateTaggedTemplate` or the factory supplied by your transformation context instead. */ 8210 const updateTaggedTemplate: { 8211 (node: TaggedTemplateExpression, tag: Expression, template: TemplateLiteral): TaggedTemplateExpression; 8212 (node: TaggedTemplateExpression, tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression; 8213 }; 8214 /** @deprecated Use `factory.updateBinary` or the factory supplied by your transformation context instead. */ 8215 const updateBinary: (node: BinaryExpression, left: Expression, right: Expression, operator?: BinaryOperator | BinaryOperatorToken) => BinaryExpression; 8216 /** @deprecated Use `factory.createConditional` or the factory supplied by your transformation context instead. */ 8217 const createConditional: { 8218 (condition: Expression, whenTrue: Expression, whenFalse: Expression): ConditionalExpression; 8219 (condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression; 8220 }; 8221 /** @deprecated Use `factory.createYield` or the factory supplied by your transformation context instead. */ 8222 const createYield: { 8223 (expression?: Expression | undefined): YieldExpression; 8224 (asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression; 8225 }; 8226 /** @deprecated Use `factory.createClassExpression` or the factory supplied by your transformation context instead. */ 8227 const createClassExpression: (modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]) => ClassExpression; 8228 /** @deprecated Use `factory.updateClassExpression` or the factory supplied by your transformation context instead. */ 8229 const updateClassExpression: (node: ClassExpression, modifiers: readonly Modifier[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]) => ClassExpression; 8230 /** @deprecated Use `factory.createPropertySignature` or the factory supplied by your transformation context instead. */ 8231 const createPropertySignature: (modifiers: readonly Modifier[] | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer?: Expression | undefined) => PropertySignature; 8232 /** @deprecated Use `factory.updatePropertySignature` or the factory supplied by your transformation context instead. */ 8233 const updatePropertySignature: (node: PropertySignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined) => PropertySignature; 8234 /** @deprecated Use `factory.createExpressionWithTypeArguments` or the factory supplied by your transformation context instead. */ 8235 const createExpressionWithTypeArguments: (typeArguments: readonly TypeNode[] | undefined, expression: Expression) => ExpressionWithTypeArguments; 8236 /** @deprecated Use `factory.updateExpressionWithTypeArguments` or the factory supplied by your transformation context instead. */ 8237 const updateExpressionWithTypeArguments: (node: ExpressionWithTypeArguments, typeArguments: readonly TypeNode[] | undefined, expression: Expression) => ExpressionWithTypeArguments; 8238 /** @deprecated Use `factory.createArrowFunction` or the factory supplied by your transformation context instead. */ 8239 const createArrowFunction: { 8240 (modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction; 8241 (modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: ConciseBody): ArrowFunction; 8242 }; 8243 /** @deprecated Use `factory.updateArrowFunction` or the factory supplied by your transformation context instead. */ 8244 const updateArrowFunction: { 8245 (node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken, body: ConciseBody): ArrowFunction; 8246 (node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: ConciseBody): ArrowFunction; 8247 }; 8248 /** @deprecated Use `factory.createVariableDeclaration` or the factory supplied by your transformation context instead. */ 8249 const createVariableDeclaration: { 8250 (name: string | BindingName, type?: TypeNode | undefined, initializer?: Expression | undefined): VariableDeclaration; 8251 (name: string | BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 8252 }; 8253 /** @deprecated Use `factory.updateVariableDeclaration` or the factory supplied by your transformation context instead. */ 8254 const updateVariableDeclaration: { 8255 (node: VariableDeclaration, name: BindingName, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 8256 (node: VariableDeclaration, name: BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; 8257 }; 8258 /** @deprecated Use `factory.createImportClause` or the factory supplied by your transformation context instead. */ 8259 const createImportClause: (name: Identifier | undefined, namedBindings: NamedImportBindings | undefined, isTypeOnly?: any) => ImportClause; 8260 /** @deprecated Use `factory.updateImportClause` or the factory supplied by your transformation context instead. */ 8261 const updateImportClause: (node: ImportClause, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined, isTypeOnly: boolean) => ImportClause; 8262 /** @deprecated Use `factory.createExportDeclaration` or the factory supplied by your transformation context instead. */ 8263 const createExportDeclaration: (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression | undefined, isTypeOnly?: any) => ExportDeclaration; 8264 /** @deprecated Use `factory.updateExportDeclaration` or the factory supplied by your transformation context instead. */ 8265 const updateExportDeclaration: (node: ExportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, isTypeOnly: boolean) => ExportDeclaration; 8266 /** @deprecated Use `factory.createJSDocParameterTag` or the factory supplied by your transformation context instead. */ 8267 const createJSDocParamTag: (name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression | undefined, comment?: string | undefined) => JSDocParameterTag; 8268 /** @deprecated Use `factory.createComma` or the factory supplied by your transformation context instead. */ 8269 const createComma: (left: Expression, right: Expression) => Expression; 8270 /** @deprecated Use `factory.createLessThan` or the factory supplied by your transformation context instead. */ 8271 const createLessThan: (left: Expression, right: Expression) => Expression; 8272 /** @deprecated Use `factory.createAssignment` or the factory supplied by your transformation context instead. */ 8273 const createAssignment: (left: Expression, right: Expression) => BinaryExpression; 8274 /** @deprecated Use `factory.createStrictEquality` or the factory supplied by your transformation context instead. */ 8275 const createStrictEquality: (left: Expression, right: Expression) => BinaryExpression; 8276 /** @deprecated Use `factory.createStrictInequality` or the factory supplied by your transformation context instead. */ 8277 const createStrictInequality: (left: Expression, right: Expression) => BinaryExpression; 8278 /** @deprecated Use `factory.createAdd` or the factory supplied by your transformation context instead. */ 8279 const createAdd: (left: Expression, right: Expression) => BinaryExpression; 8280 /** @deprecated Use `factory.createSubtract` or the factory supplied by your transformation context instead. */ 8281 const createSubtract: (left: Expression, right: Expression) => BinaryExpression; 8282 /** @deprecated Use `factory.createLogicalAnd` or the factory supplied by your transformation context instead. */ 8283 const createLogicalAnd: (left: Expression, right: Expression) => BinaryExpression; 8284 /** @deprecated Use `factory.createLogicalOr` or the factory supplied by your transformation context instead. */ 8285 const createLogicalOr: (left: Expression, right: Expression) => BinaryExpression; 8286 /** @deprecated Use `factory.createPostfixIncrement` or the factory supplied by your transformation context instead. */ 8287 const createPostfixIncrement: (operand: Expression) => PostfixUnaryExpression; 8288 /** @deprecated Use `factory.createLogicalNot` or the factory supplied by your transformation context instead. */ 8289 const createLogicalNot: (operand: Expression) => PrefixUnaryExpression; 8290 /** @deprecated Use an appropriate `factory` method instead. */ 8291 const createNode: (kind: SyntaxKind, pos?: any, end?: any) => Node; 8292 /** 8293 * Creates a shallow, memberwise clone of a node ~for mutation~ with its `pos`, `end`, and `parent` set. 8294 * 8295 * NOTE: It is unsafe to change any properties of a `Node` that relate to its AST children, as those changes won't be 8296 * captured with respect to transformations. 8297 * 8298 * @deprecated Use an appropriate `factory.update...` method instead, use `setCommentRange` or `setSourceMapRange`, and avoid setting `parent`. 8299 */ 8300 const getMutableClone: <T extends Node>(node: T) => T; 8301} 8302declare namespace ts { 8303 /** @deprecated Use `isTypeAssertionExpression` instead. */ 8304 const isTypeAssertion: (node: Node) => node is TypeAssertion; 8305} 8306declare namespace ts { 8307 /** 8308 * @deprecated Use `ts.ReadonlyESMap<K, V>` instead. 8309 */ 8310 interface ReadonlyMap<T> extends ReadonlyESMap<string, T> { 8311 } 8312 /** 8313 * @deprecated Use `ts.ESMap<K, V>` instead. 8314 */ 8315 interface Map<T> extends ESMap<string, T> { 8316 } 8317} 8318declare namespace ts { 8319 /** 8320 * @deprecated Use `isMemberName` instead. 8321 */ 8322 const isIdentifierOrPrivateIdentifier: (node: Node) => node is MemberName; 8323} 8324declare namespace ts { 8325 interface NodeFactory { 8326 /** @deprecated Use the overload that accepts 'modifiers' */ 8327 createConstructorTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): ConstructorTypeNode; 8328 /** @deprecated Use the overload that accepts 'modifiers' */ 8329 updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode): ConstructorTypeNode; 8330 } 8331} 8332declare namespace ts { 8333 interface NodeFactory { 8334 createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 8335 /** @deprecated Use the overload that accepts 'assertions' */ 8336 createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; 8337 /** @deprecated Use the overload that accepts 'assertions' */ 8338 updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; 8339 } 8340} 8341declare namespace ts { 8342 interface NodeFactory { 8343 /** @deprecated Use the overload that accepts 'modifiers' */ 8344 createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; 8345 /** @deprecated Use the overload that accepts 'modifiers' */ 8346 updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; 8347 } 8348} 8349declare namespace ts { 8350 interface Node { 8351 /** 8352 * @deprecated `decorators` has been removed from `Node` and merged with `modifiers` on the `Node` subtypes that support them. 8353 * Use `ts.canHaveDecorators()` to test whether a `Node` can have decorators. 8354 * Use `ts.getDecorators()` to get the decorators of a `Node`. 8355 * 8356 * For example: 8357 * ```ts 8358 * const decorators = ts.canHaveDecorators(node) ? ts.getDecorators(node) : undefined; 8359 * ``` 8360 */ 8361 readonly decorators?: undefined; 8362 /** 8363 * @deprecated `modifiers` has been removed from `Node` and moved to the `Node` subtypes that support them. 8364 * Use `ts.canHaveModifiers()` to test whether a `Node` can have modifiers. 8365 * Use `ts.getModifiers()` to get the modifiers of a `Node`. 8366 * 8367 * For example: 8368 * ```ts 8369 * const modifiers = ts.canHaveModifiers(node) ? ts.getModifiers(node) : undefined; 8370 * ``` 8371 */ 8372 readonly modifiers?: NodeArray<ModifierLike> | undefined; 8373 } 8374 interface PropertySignature { 8375 /** @deprecated A property signature cannot have an initializer */ 8376 readonly initializer?: Expression | undefined; 8377 } 8378 interface PropertyAssignment { 8379 /** @deprecated A property assignment cannot have a question token */ 8380 readonly questionToken?: QuestionToken | undefined; 8381 /** @deprecated A property assignment cannot have an exclamation token */ 8382 readonly exclamationToken?: ExclamationToken | undefined; 8383 } 8384 interface ShorthandPropertyAssignment { 8385 /** @deprecated A shorthand property assignment cannot have modifiers */ 8386 readonly modifiers?: NodeArray<Modifier> | undefined; 8387 /** @deprecated A shorthand property assignment cannot have a question token */ 8388 readonly questionToken?: QuestionToken | undefined; 8389 /** @deprecated A shorthand property assignment cannot have an exclamation token */ 8390 readonly exclamationToken?: ExclamationToken | undefined; 8391 } 8392 interface FunctionTypeNode { 8393 /** @deprecated A function type cannot have modifiers */ 8394 readonly modifiers?: NodeArray<Modifier> | undefined; 8395 } 8396 interface NodeFactory { 8397 /** 8398 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8399 */ 8400 createParameterDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; 8401 /** 8402 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8403 */ 8404 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; 8405 /** 8406 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8407 */ 8408 createPropertyDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; 8409 /** 8410 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8411 */ 8412 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; 8413 /** 8414 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8415 */ 8416 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; 8417 /** 8418 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8419 */ 8420 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; 8421 /** 8422 * @deprecated This node does not support Decorators. Callers should use an overload that does not accept a `decorators` parameter. 8423 */ 8424 createConstructorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 8425 /** 8426 * @deprecated This node does not support Decorators. Callers should use an overload that does not accept a `decorators` parameter. 8427 */ 8428 updateConstructorDeclaration(node: ConstructorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration; 8429 /** 8430 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8431 */ 8432 createGetAccessorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 8433 /** 8434 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8435 */ 8436 updateGetAccessorDeclaration(node: GetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; 8437 /** 8438 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8439 */ 8440 createSetAccessorDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 8441 /** 8442 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8443 */ 8444 updateSetAccessorDeclaration(node: SetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration; 8445 /** 8446 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8447 */ 8448 createIndexSignature(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 8449 /** 8450 * @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. 8451 */ 8452 updateIndexSignature(node: IndexSignatureDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration; 8453 /** 8454 * @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. 8455 */ 8456 createClassStaticBlockDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, body: Block): ClassStaticBlockDeclaration; 8457 /** 8458 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8459 */ 8460 updateClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, body: Block): ClassStaticBlockDeclaration; 8461 /** 8462 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8463 */ 8464 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; 8465 /** 8466 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8467 */ 8468 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; 8469 /** 8470 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8471 */ 8472 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; 8473 /** 8474 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8475 */ 8476 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; 8477 /** 8478 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8479 */ 8480 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; 8481 /** 8482 * @deprecated Decorators have been combined with modifiers. Callers should use an overload that does not accept a `decorators` parameter. 8483 */ 8484 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; 8485 /** 8486 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8487 */ 8488 createInterfaceDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration; 8489 /** 8490 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8491 */ 8492 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; 8493 /** 8494 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8495 */ 8496 createTypeAliasDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 8497 /** 8498 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8499 */ 8500 updateTypeAliasDeclaration(node: TypeAliasDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration; 8501 /** 8502 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8503 */ 8504 createEnumDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration; 8505 /** 8506 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8507 */ 8508 updateEnumDeclaration(node: EnumDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration; 8509 /** 8510 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8511 */ 8512 createModuleDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration; 8513 /** 8514 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8515 */ 8516 updateModuleDeclaration(node: ModuleDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; 8517 /** 8518 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8519 */ 8520 createImportEqualsDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 8521 /** 8522 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8523 */ 8524 updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; 8525 /** 8526 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8527 */ 8528 createImportDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause?: AssertClause): ImportDeclaration; 8529 /** 8530 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8531 */ 8532 updateImportDeclaration(node: ImportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 8533 /** 8534 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8535 */ 8536 createExportAssignment(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; 8537 /** 8538 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8539 */ 8540 updateExportAssignment(node: ExportAssignment, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment; 8541 /** 8542 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8543 */ 8544 createExportDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression, assertClause?: AssertClause): ExportDeclaration; 8545 /** 8546 * @deprecated Decorators are no longer supported for this function. Callers should use an overload that does not accept a `decorators` parameter. 8547 */ 8548 updateExportDeclaration(node: ExportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, assertClause: AssertClause | undefined): ExportDeclaration; 8549 } 8550} 8551declare namespace ts { 8552 namespace ArkTSLinter_1_0 { 8553 namespace Common { 8554 interface AutofixInfo { 8555 problemID: string; 8556 start: number; 8557 end: number; 8558 } 8559 interface CommandLineOptions { 8560 strictMode?: boolean; 8561 ideMode?: boolean; 8562 logTscErrors?: boolean; 8563 warningsAsErrors: boolean; 8564 parsedConfigFile?: ParsedCommandLine; 8565 inputFiles: string[]; 8566 autofixInfo?: AutofixInfo[]; 8567 } 8568 interface LintOptions { 8569 cmdOptions: CommandLineOptions; 8570 tsProgram?: Program; 8571 [key: string]: any; 8572 } 8573 } 8574 } 8575} 8576declare namespace ts { 8577 namespace ArkTSLinter_1_0 { 8578 const cookBookMsg: string[]; 8579 const cookBookTag: string[]; 8580 } 8581} 8582declare namespace ts { 8583 namespace ArkTSLinter_1_0 { 8584 namespace DiagnosticCheckerNamespace { 8585 interface DiagnosticChecker { 8586 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 8587 } 8588 } 8589 } 8590} 8591declare namespace ts { 8592 namespace ArkTSLinter_1_0 { 8593 import DiagnosticChecker = DiagnosticCheckerNamespace.DiagnosticChecker; 8594 namespace LibraryTypeCallDiagnosticCheckerNamespace { 8595 const TYPE_0_IS_NOT_ASSIGNABLE_TO_TYPE_1_ERROR_CODE = 2322; 8596 const TYPE_UNKNOWN_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 8597 const TYPE_NULL_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 8598 const TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 8599 const ARGUMENT_OF_TYPE_0_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_ERROR_CODE = 2345; 8600 const ARGUMENT_OF_TYPE_NULL_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 8601 const ARGUMENT_OF_TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 8602 const NO_OVERLOAD_MATCHES_THIS_CALL_ERROR_CODE = 2769; 8603 class LibraryTypeCallDiagnosticChecker implements DiagnosticChecker { 8604 inLibCall: boolean; 8605 diagnosticMessages: Array<ts.DiagnosticMessageChain> | undefined; 8606 filteredDiagnosticMessages: DiagnosticMessageChain[]; 8607 constructor(filteredDiagnosticMessages: DiagnosticMessageChain[]); 8608 configure(inLibCall: boolean, diagnosticMessages: Array<ts.DiagnosticMessageChain>): void; 8609 checkMessageText(msg: string): boolean; 8610 checkMessageChain(chain: ts.DiagnosticMessageChain): boolean; 8611 checkFilteredDiagnosticMessages(msgText: ts.DiagnosticMessageChain | string): boolean; 8612 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 8613 } 8614 } 8615 } 8616} 8617declare namespace ts { 8618 namespace ArkTSLinter_1_0 { 8619 namespace Utils { 8620 import AutofixInfo = Common.AutofixInfo; 8621 const PROPERTY_HAS_NO_INITIALIZER_ERROR_CODE = 2564; 8622 const NON_INITIALIZABLE_PROPERTY_DECORATORS: string[]; 8623 const NON_INITIALIZABLE_PROPERTY_ClASS_DECORATORS: string[]; 8624 const LIMITED_STANDARD_UTILITY_TYPES: string[]; 8625 const ALLOWED_STD_SYMBOL_API: string[]; 8626 enum ProblemSeverity { 8627 WARNING = 1, 8628 ERROR = 2 8629 } 8630 const ARKTS_IGNORE_DIRS: string[]; 8631 const ARKTS_IGNORE_FILES: string[]; 8632 function setTypeChecker(tsTypeChecker: TypeChecker): void; 8633 function clearTypeChecker(): void; 8634 function setTestMode(tsTestMode: boolean): void; 8635 function getStartPos(nodeOrComment: Node | CommentRange): number; 8636 function getEndPos(nodeOrComment: Node | CommentRange): number; 8637 function isAssignmentOperator(tsBinOp: BinaryOperatorToken): boolean; 8638 function isTypedArray(tsType: TypeNode | undefined): boolean; 8639 function isType(tsType: TypeNode | undefined, checkType: string): boolean; 8640 function entityNameToString(name: EntityName): string; 8641 function isNumberType(tsType: Type): boolean; 8642 function isBooleanType(tsType: Type): boolean; 8643 function isStringLikeType(tsType: Type): boolean; 8644 function isStringType(type: Type): boolean; 8645 function isPrimitiveEnumType(type: Type, primitiveType: TypeFlags): boolean; 8646 function isPrimitiveEnumMemberType(type: Type, primitiveType: TypeFlags): boolean; 8647 function unwrapParenthesizedType(tsType: TypeNode): TypeNode; 8648 function findParentIf(asExpr: AsExpression): IfStatement | null; 8649 function isDestructuringAssignmentLHS(tsExpr: ArrayLiteralExpression | ObjectLiteralExpression): boolean; 8650 function isEnumType(tsType: Type): boolean; 8651 function isEnumMemberType(tsType: Type): boolean; 8652 function isObjectLiteralType(tsType: Type): boolean; 8653 function isNumberLikeType(tsType: Type): boolean; 8654 function hasModifier(tsModifiers: readonly Modifier[] | undefined, tsModifierKind: number): boolean; 8655 function unwrapParenthesized(tsExpr: Expression): Expression; 8656 function followIfAliased(sym: Symbol): Symbol; 8657 function trueSymbolAtLocation(node: Node): Symbol | undefined; 8658 function clearTrueSymbolAtLocationCache(): void; 8659 function isTypeDeclSyntaxKind(kind: SyntaxKind): boolean; 8660 function symbolHasDuplicateName(symbol: Symbol, tsDeclKind: SyntaxKind): boolean; 8661 function isReferenceType(tsType: Type): boolean; 8662 function isPrimitiveType(type: Type): boolean; 8663 function isTypeSymbol(symbol: Symbol | undefined): boolean; 8664 function isGenericArrayType(tsType: Type): tsType is TypeReference; 8665 function isDerivedFrom(tsType: Type, checkType: CheckType): tsType is TypeReference; 8666 function isTypeReference(tsType: Type): tsType is TypeReference; 8667 function isNullType(tsTypeNode: TypeNode): boolean; 8668 function isThisOrSuperExpr(tsExpr: Expression): boolean; 8669 function isPrototypeSymbol(symbol: Symbol | undefined): boolean; 8670 function isFunctionSymbol(symbol: Symbol | undefined): boolean; 8671 function isInterfaceType(tsType: Type | undefined): boolean; 8672 function isAnyType(tsType: Type): tsType is TypeReference; 8673 function isUnknownType(tsType: Type): boolean; 8674 function isUnsupportedType(tsType: Type): boolean; 8675 function isUnsupportedUnionType(tsType: Type): boolean; 8676 function isFunctionOrMethod(tsSymbol: Symbol | undefined): boolean; 8677 function isMethodAssignment(tsSymbol: Symbol | undefined): boolean; 8678 function getDeclaration(tsSymbol: ts.Symbol | undefined): ts.Declaration | undefined; 8679 function isValidEnumMemberInit(tsExpr: Expression): boolean; 8680 function isCompileTimeExpression(tsExpr: Expression): boolean; 8681 function isConst(tsNode: Node): boolean; 8682 function isNumberConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 8683 function isIntegerConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 8684 function isStringConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression): boolean; 8685 function relatedByInheritanceOrIdentical(typeA: Type, typeB: Type): boolean; 8686 function needToDeduceStructuralIdentity(typeFrom: Type, typeTo: Type, allowPromotion?: boolean): boolean; 8687 function hasPredecessor(node: Node, predicate: (node: Node) => boolean): boolean; 8688 function processParentTypes(parentTypes: NodeArray<ExpressionWithTypeArguments>, typeB: Type, processInterfaces: boolean): boolean; 8689 function processParentTypesCheck(parentTypes: NodeArray<ExpressionWithTypeArguments>, checkType: CheckType): boolean; 8690 function isObjectType(tsType: Type): boolean; 8691 function logTscDiagnostic(diagnostics: readonly Diagnostic[], log: (message: any, ...args: any[]) => void): void; 8692 function encodeProblemInfo(problem: ProblemInfo): string; 8693 function decodeAutofixInfo(info: string): AutofixInfo; 8694 function isCallToFunctionWithOmittedReturnType(tsExpr: Expression): boolean; 8695 function validateObjectLiteralType(type: Type | undefined): boolean; 8696 function isStructDeclarationKind(kind: SyntaxKind): boolean; 8697 function isStructDeclaration(node: Node): boolean; 8698 function isStructObjectInitializer(objectLiteral: ObjectLiteralExpression): boolean; 8699 function hasMethods(type: Type): boolean; 8700 function isExpressionAssignableToType(lhsType: ts.Type | undefined, rhsExpr: ts.Expression): boolean; 8701 function isLiteralType(type: Type): boolean; 8702 function validateFields(type: Type, objectLiteral: ObjectLiteralExpression): boolean; 8703 function isSupportedType(typeNode: TypeNode): boolean; 8704 function isStruct(symbol: Symbol): boolean; 8705 enum CheckType { 8706 Array = 0, 8707 String = "String", 8708 Set = "Set", 8709 Map = "Map", 8710 Error = "Error" 8711 } 8712 const ES_OBJECT = "ESObject"; 8713 const LIMITED_STD_GLOBAL_FUNC: string[]; 8714 const LIMITED_STD_OBJECT_API: string[]; 8715 const LIMITED_STD_REFLECT_API: string[]; 8716 const LIMITED_STD_PROXYHANDLER_API: string[]; 8717 const ARKUI_DECORATORS: string[]; 8718 const FUNCTION_HAS_NO_RETURN_ERROR_CODE = 2366; 8719 const NON_RETURN_FUNCTION_DECORATORS: string[]; 8720 const STANDARD_LIBRARIES: string[]; 8721 const TYPED_ARRAYS: string[]; 8722 function getParentSymbolName(symbol: Symbol): string | undefined; 8723 function isGlobalSymbol(symbol: Symbol): boolean; 8724 function isSymbolAPI(symbol: Symbol): boolean; 8725 function isStdSymbol(symbol: ts.Symbol): boolean; 8726 function isSymbolIterator(symbol: ts.Symbol): boolean; 8727 function isDefaultImport(importSpec: ImportSpecifier): boolean; 8728 function hasAccessModifier(decl: Declaration): boolean; 8729 function getModifier(modifiers: readonly Modifier[] | undefined, modifierKind: SyntaxKind): Modifier | undefined; 8730 function getAccessModifier(modifiers: readonly Modifier[] | undefined): Modifier | undefined; 8731 function isStdRecordType(type: Type): boolean; 8732 function isStdPartialType(type: Type): boolean; 8733 function isStdRequiredType(type: Type): boolean; 8734 function isStdReadonlyType(type: Type): boolean; 8735 function isLibraryType(type: Type): boolean; 8736 function hasLibraryType(node: Node): boolean; 8737 function isLibrarySymbol(sym: Symbol | undefined): boolean; 8738 function pathContainsDirectory(targetPath: string, dir: string): boolean; 8739 function getScriptKind(srcFile: SourceFile): ScriptKind; 8740 function isStdLibraryType(type: Type): boolean; 8741 function isStdLibrarySymbol(sym: Symbol | undefined): boolean; 8742 function isIntrinsicObjectType(type: Type): boolean; 8743 function isDynamicType(type: Type | undefined): boolean | undefined; 8744 function isDynamicLiteralInitializer(expr: Expression): boolean; 8745 function isEsObjectType(typeNode: TypeNode): boolean; 8746 function isInsideBlock(node: ts.Node): boolean; 8747 function isEsObjectPossiblyAllowed(typeRef: ts.TypeReferenceNode): boolean; 8748 function isValueAssignableToESObject(node: ts.Node): boolean; 8749 function getVariableDeclarationTypeNode(node: Node): TypeNode | undefined; 8750 function getSymbolDeclarationTypeNode(sym: ts.Symbol): ts.TypeNode | undefined; 8751 function hasEsObjectType(node: Node): boolean; 8752 function symbolHasEsObjectType(sym: ts.Symbol): boolean; 8753 function isEsObjectSymbol(sym: Symbol): boolean; 8754 function isAnonymousType(type: Type): boolean; 8755 function getSymbolOfCallExpression(callExpr: CallExpression): Symbol | undefined; 8756 function typeIsRecursive(topType: Type, type?: Type | undefined): boolean; 8757 } 8758 } 8759} 8760declare namespace ts { 8761 namespace ArkTSLinter_1_0 { 8762 namespace Problems { 8763 enum FaultID { 8764 AnyType = 0, 8765 SymbolType = 1, 8766 ObjectLiteralNoContextType = 2, 8767 ArrayLiteralNoContextType = 3, 8768 ComputedPropertyName = 4, 8769 LiteralAsPropertyName = 5, 8770 TypeQuery = 6, 8771 RegexLiteral = 7, 8772 IsOperator = 8, 8773 DestructuringParameter = 9, 8774 YieldExpression = 10, 8775 InterfaceMerging = 11, 8776 EnumMerging = 12, 8777 InterfaceExtendsClass = 13, 8778 IndexMember = 14, 8779 WithStatement = 15, 8780 ThrowStatement = 16, 8781 IndexedAccessType = 17, 8782 UnknownType = 18, 8783 ForInStatement = 19, 8784 InOperator = 20, 8785 ImportFromPath = 21, 8786 FunctionExpression = 22, 8787 IntersectionType = 23, 8788 ObjectTypeLiteral = 24, 8789 CommaOperator = 25, 8790 LimitedReturnTypeInference = 26, 8791 LambdaWithTypeParameters = 27, 8792 ClassExpression = 28, 8793 DestructuringAssignment = 29, 8794 DestructuringDeclaration = 30, 8795 VarDeclaration = 31, 8796 CatchWithUnsupportedType = 32, 8797 DeleteOperator = 33, 8798 DeclWithDuplicateName = 34, 8799 UnaryArithmNotNumber = 35, 8800 ConstructorType = 36, 8801 ConstructorIface = 37, 8802 ConstructorFuncs = 38, 8803 CallSignature = 39, 8804 TypeAssertion = 40, 8805 PrivateIdentifier = 41, 8806 LocalFunction = 42, 8807 ConditionalType = 43, 8808 MappedType = 44, 8809 NamespaceAsObject = 45, 8810 ClassAsObject = 46, 8811 NonDeclarationInNamespace = 47, 8812 GeneratorFunction = 48, 8813 FunctionContainsThis = 49, 8814 PropertyAccessByIndex = 50, 8815 JsxElement = 51, 8816 EnumMemberNonConstInit = 52, 8817 ImplementsClass = 53, 8818 NoUndefinedPropAccess = 54, 8819 MultipleStaticBlocks = 55, 8820 ThisType = 56, 8821 IntefaceExtendDifProps = 57, 8822 StructuralIdentity = 58, 8823 DefaultImport = 59, 8824 ExportAssignment = 60, 8825 ImportAssignment = 61, 8826 GenericCallNoTypeArgs = 62, 8827 ParameterProperties = 63, 8828 InstanceofUnsupported = 64, 8829 ShorthandAmbientModuleDecl = 65, 8830 WildcardsInModuleName = 66, 8831 UMDModuleDefinition = 67, 8832 NewTarget = 68, 8833 DefiniteAssignment = 69, 8834 Prototype = 70, 8835 GlobalThis = 71, 8836 UtilityType = 72, 8837 PropertyDeclOnFunction = 73, 8838 FunctionApplyBindCall = 74, 8839 ConstAssertion = 75, 8840 ImportAssertion = 76, 8841 SpreadOperator = 77, 8842 LimitedStdLibApi = 78, 8843 ErrorSuppression = 79, 8844 StrictDiagnostic = 80, 8845 UnsupportedDecorators = 81, 8846 ImportAfterStatement = 82, 8847 EsObjectType = 83, 8848 LAST_ID = 84 8849 } 8850 class FaultAttributs { 8851 migratable?: boolean; 8852 warning?: boolean; 8853 cookBookRef: string; 8854 } 8855 const faultsAttrs: FaultAttributs[]; 8856 } 8857 } 8858} 8859declare namespace ts { 8860 namespace ArkTSLinter_1_0 { 8861 namespace Autofixer { 8862 import AutofixInfo = Common.AutofixInfo; 8863 import FaultID = Problems.FaultID; 8864 const AUTOFIX_ALL: AutofixInfo; 8865 const autofixInfo: AutofixInfo[]; 8866 function shouldAutofix(node: Node, faultID: FaultID): boolean; 8867 interface Autofix { 8868 replacementText: string; 8869 start: number; 8870 end: number; 8871 } 8872 function fixLiteralAsPropertyName(node: Node): Autofix[] | undefined; 8873 function fixPropertyAccessByIndex(node: Node): Autofix[] | undefined; 8874 function fixFunctionExpression(funcExpr: FunctionExpression, params?: NodeArray<ParameterDeclaration>, retType?: TypeNode | undefined): Autofix; 8875 function fixReturnType(funcLikeDecl: FunctionLikeDeclaration, typeNode: TypeNode): Autofix; 8876 function fixCtorParameterProperties(ctorDecl: ConstructorDeclaration, paramTypes: TypeNode[]): Autofix[] | undefined; 8877 } 8878 } 8879} 8880declare namespace ts { 8881 namespace ArkTSLinter_1_0 { 8882 import FaultID = Problems.FaultID; 8883 class LinterConfig { 8884 static nodeDesc: string[]; 8885 static tsSyntaxKindNames: string[]; 8886 static initStatic(): void; 8887 static terminalTokens: Set<SyntaxKind>; 8888 static incrementOnlyTokens: ESMap<SyntaxKind, FaultID>; 8889 } 8890 } 8891} 8892declare namespace ts { 8893 namespace ArkTSLinter_1_0 { 8894 import Autofix = Autofixer.Autofix; 8895 import LibraryTypeCallDiagnosticChecker = LibraryTypeCallDiagnosticCheckerNamespace.LibraryTypeCallDiagnosticChecker; 8896 interface ProblemInfo { 8897 line: number; 8898 column: number; 8899 start: number; 8900 end: number; 8901 type: string; 8902 severity: number; 8903 problem: string; 8904 suggest: string; 8905 rule: string; 8906 ruleTag: number; 8907 autofixable: boolean; 8908 autofix?: Autofix[]; 8909 } 8910 class TypeScriptLinter { 8911 private sourceFile; 8912 private tscStrictDiagnostics?; 8913 static ideMode: boolean; 8914 static strictMode: boolean; 8915 static logTscErrors: boolean; 8916 static warningsAsErrors: boolean; 8917 static lintEtsOnly: boolean; 8918 static totalVisitedNodes: number; 8919 static nodeCounters: number[]; 8920 static lineCounters: number[]; 8921 static totalErrorLines: number; 8922 static errorLineNumbersString: string; 8923 static totalWarningLines: number; 8924 static warningLineNumbersString: string; 8925 static reportDiagnostics: boolean; 8926 static problemsInfos: ProblemInfo[]; 8927 static filteredDiagnosticMessages: DiagnosticMessageChain[]; 8928 static initGlobals(): void; 8929 static initStatic(): void; 8930 static tsTypeChecker: TypeChecker; 8931 currentErrorLine: number; 8932 currentWarningLine: number; 8933 staticBlocks: Set<string>; 8934 libraryTypeCallDiagnosticChecker: LibraryTypeCallDiagnosticChecker; 8935 skipArkTSStaticBlocksCheck: boolean; 8936 constructor(sourceFile: SourceFile, tsProgram: Program, tscStrictDiagnostics?: Map<Diagnostic[]> | undefined); 8937 static clearTsTypeChecker(): void; 8938 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 8939 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 8940 visitTSNode(node: Node): void; 8941 private countInterfaceExtendsDifferentPropertyTypes; 8942 private countDeclarationsWithDuplicateName; 8943 private countClassMembersWithDuplicateName; 8944 private functionContainsThis; 8945 private isPrototypePropertyAccess; 8946 private interfaceInheritanceLint; 8947 private lintForInterfaceExtendsDifferentPorpertyTypes; 8948 private handleObjectLiteralExpression; 8949 private handleArrayLiteralExpression; 8950 private handleParameter; 8951 private handleEnumDeclaration; 8952 private handleInterfaceDeclaration; 8953 private handleThrowStatement; 8954 private handleForStatement; 8955 private handleForInStatement; 8956 private handleForOfStatement; 8957 private handleImportDeclaration; 8958 private handlePropertyAccessExpression; 8959 private handlePropertyAssignmentOrDeclaration; 8960 private filterOutDecoratorsDiagnostics; 8961 private checkInRange; 8962 private filterStrictDiagnostics; 8963 private handleFunctionExpression; 8964 private handleArrowFunction; 8965 private handleClassExpression; 8966 private handleFunctionDeclaration; 8967 private handleMissingReturnType; 8968 private hasLimitedTypeInferenceFromReturnExpr; 8969 private handlePrefixUnaryExpression; 8970 private handleBinaryExpression; 8971 private handleVariableDeclarationList; 8972 private handleVariableDeclaration; 8973 private handleEsObjectDelaration; 8974 private handleEsObjectAssignment; 8975 private handleCatchClause; 8976 private handleClassDeclaration; 8977 private handleModuleDeclaration; 8978 private handleTypeAliasDeclaration; 8979 private handleImportClause; 8980 private handleImportSpecifier; 8981 private handleNamespaceImport; 8982 private handleTypeAssertionExpression; 8983 private handleMethodDeclaration; 8984 private handleIdentifier; 8985 private isAllowedClassValueContext; 8986 private handleRestrictedValues; 8987 private identiferUseInValueContext; 8988 private isEnumPropAccess; 8989 private handleElementAccessExpression; 8990 private handleEnumMember; 8991 private handleExportAssignment; 8992 private handleCallExpression; 8993 private handleImportCall; 8994 private handleRequireCall; 8995 private handleGenericCallWithNoTypeArgs; 8996 private static listApplyBindCallApis; 8997 private handleFunctionApplyBindPropCall; 8998 private handleStructIdentAndUndefinedInArgs; 8999 private static LimitedApis; 9000 private handleStdlibAPICall; 9001 private findNonFilteringRangesFunctionCalls; 9002 private handleLibraryTypeCall; 9003 private handleNewExpression; 9004 private handleAsExpression; 9005 private handleTypeReference; 9006 private handleMetaProperty; 9007 private handleStructDeclaration; 9008 private handleSpreadOp; 9009 private handleConstructSignature; 9010 private handleComments; 9011 private handleExpressionWithTypeArguments; 9012 private handleComputedPropertyName; 9013 private checkErrorSuppressingAnnotation; 9014 private handleDecorators; 9015 private handleGetAccessor; 9016 private handleSetAccessor; 9017 private handleDeclarationInferredType; 9018 private handleDefiniteAssignmentAssertion; 9019 private validatedTypesSet; 9020 private checkAnyOrUnknownChildNode; 9021 private handleInferredObjectreference; 9022 private validateDeclInferredType; 9023 private handleClassStaticBlockDeclaration; 9024 lint(): void; 9025 } 9026 } 9027} 9028declare namespace ts { 9029 namespace ArkTSLinter_1_0 { 9030 class TSCCompiledProgram { 9031 private diagnosticsExtractor; 9032 constructor(program: BuilderProgram); 9033 getProgram(): Program; 9034 getBuilderProgram(): BuilderProgram; 9035 getStrictDiagnostics(fileName: string): Diagnostic[]; 9036 doAllGetDiagnostics(): void; 9037 } 9038 } 9039} 9040declare namespace ts { 9041 namespace ArkTSLinter_1_0 { 9042 function translateDiag(srcFile: SourceFile, problemInfo: ProblemInfo): Diagnostic; 9043 function runArkTSLinter(tsBuilderProgram: BuilderProgram, srcFile?: SourceFile, buildInfoWriteFile?: WriteFileCallback, arkTSVersion?: string): Diagnostic[]; 9044 } 9045} 9046declare namespace ts { 9047 namespace ArkTSLinter_1_1 { 9048 namespace Common { 9049 interface AutofixInfo { 9050 problemID: string; 9051 start: number; 9052 end: number; 9053 } 9054 interface CommandLineOptions { 9055 strictMode?: boolean; 9056 ideMode?: boolean; 9057 logTscErrors?: boolean; 9058 warningsAsErrors: boolean; 9059 parsedConfigFile?: ParsedCommandLine; 9060 inputFiles: string[]; 9061 autofixInfo?: AutofixInfo[]; 9062 } 9063 interface LintOptions { 9064 cmdOptions: CommandLineOptions; 9065 tsProgram?: Program; 9066 [key: string]: any; 9067 } 9068 enum ProblemSeverity { 9069 WARNING = 1, 9070 ERROR = 2 9071 } 9072 } 9073 } 9074} 9075declare namespace ts { 9076 namespace ArkTSLinter_1_1 { 9077 const cookBookMsg: string[]; 9078 const cookBookTag: string[]; 9079 } 9080} 9081declare namespace ts { 9082 namespace ArkTSLinter_1_1 { 9083 namespace DiagnosticCheckerNamespace { 9084 interface DiagnosticChecker { 9085 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 9086 } 9087 } 9088 } 9089} 9090declare namespace ts { 9091 namespace ArkTSLinter_1_1 { 9092 import DiagnosticChecker = DiagnosticCheckerNamespace.DiagnosticChecker; 9093 namespace LibraryTypeCallDiagnosticCheckerNamespace { 9094 const TYPE_0_IS_NOT_ASSIGNABLE_TO_TYPE_1_ERROR_CODE = 2322; 9095 const TYPE_UNKNOWN_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 9096 const TYPE_NULL_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 9097 const TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_TYPE_1_RE: RegExp; 9098 const ARGUMENT_OF_TYPE_0_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_ERROR_CODE = 2345; 9099 const ARGUMENT_OF_TYPE_NULL_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 9100 const ARGUMENT_OF_TYPE_UNDEFINED_IS_NOT_ASSIGNABLE_TO_PARAMETER_OF_TYPE_1_RE: RegExp; 9101 const NO_OVERLOAD_MATCHES_THIS_CALL_ERROR_CODE = 2769; 9102 class LibraryTypeCallDiagnosticChecker implements DiagnosticChecker { 9103 inLibCall: boolean; 9104 diagnosticMessages: Array<ts.DiagnosticMessageChain> | undefined; 9105 filteredDiagnosticMessages: DiagnosticMessageChain[]; 9106 constructor(filteredDiagnosticMessages: DiagnosticMessageChain[]); 9107 configure(inLibCall: boolean, diagnosticMessages: Array<ts.DiagnosticMessageChain>): void; 9108 checkMessageText(msg: string): boolean; 9109 checkMessageChain(chain: ts.DiagnosticMessageChain): boolean; 9110 checkFilteredDiagnosticMessages(msgText: ts.DiagnosticMessageChain | string): boolean; 9111 checkDiagnosticMessage(msgText: string | ts.DiagnosticMessageChain): boolean; 9112 } 9113 } 9114 } 9115} 9116declare namespace ts { 9117 namespace ArkTSLinter_1_1 { 9118 namespace Problems { 9119 import ProblemSeverity = Common.ProblemSeverity; 9120 enum FaultID { 9121 AnyType = 0, 9122 SymbolType = 1, 9123 ObjectLiteralNoContextType = 2, 9124 ArrayLiteralNoContextType = 3, 9125 ComputedPropertyName = 4, 9126 LiteralAsPropertyName = 5, 9127 TypeQuery = 6, 9128 IsOperator = 7, 9129 DestructuringParameter = 8, 9130 YieldExpression = 9, 9131 InterfaceMerging = 10, 9132 EnumMerging = 11, 9133 InterfaceExtendsClass = 12, 9134 IndexMember = 13, 9135 WithStatement = 14, 9136 ThrowStatement = 15, 9137 IndexedAccessType = 16, 9138 UnknownType = 17, 9139 ForInStatement = 18, 9140 InOperator = 19, 9141 FunctionExpression = 20, 9142 IntersectionType = 21, 9143 ObjectTypeLiteral = 22, 9144 CommaOperator = 23, 9145 LimitedReturnTypeInference = 24, 9146 ClassExpression = 25, 9147 DestructuringAssignment = 26, 9148 DestructuringDeclaration = 27, 9149 VarDeclaration = 28, 9150 CatchWithUnsupportedType = 29, 9151 DeleteOperator = 30, 9152 DeclWithDuplicateName = 31, 9153 UnaryArithmNotNumber = 32, 9154 ConstructorType = 33, 9155 ConstructorIface = 34, 9156 ConstructorFuncs = 35, 9157 CallSignature = 36, 9158 TypeAssertion = 37, 9159 PrivateIdentifier = 38, 9160 LocalFunction = 39, 9161 ConditionalType = 40, 9162 MappedType = 41, 9163 NamespaceAsObject = 42, 9164 ClassAsObject = 43, 9165 NonDeclarationInNamespace = 44, 9166 GeneratorFunction = 45, 9167 FunctionContainsThis = 46, 9168 PropertyAccessByIndex = 47, 9169 JsxElement = 48, 9170 EnumMemberNonConstInit = 49, 9171 ImplementsClass = 50, 9172 MethodReassignment = 51, 9173 MultipleStaticBlocks = 52, 9174 ThisType = 53, 9175 IntefaceExtendDifProps = 54, 9176 StructuralIdentity = 55, 9177 ExportAssignment = 56, 9178 ImportAssignment = 57, 9179 GenericCallNoTypeArgs = 58, 9180 ParameterProperties = 59, 9181 InstanceofUnsupported = 60, 9182 ShorthandAmbientModuleDecl = 61, 9183 WildcardsInModuleName = 62, 9184 UMDModuleDefinition = 63, 9185 NewTarget = 64, 9186 DefiniteAssignment = 65, 9187 Prototype = 66, 9188 GlobalThis = 67, 9189 UtilityType = 68, 9190 PropertyDeclOnFunction = 69, 9191 FunctionApplyCall = 70, 9192 FunctionBind = 71, 9193 ConstAssertion = 72, 9194 ImportAssertion = 73, 9195 SpreadOperator = 74, 9196 LimitedStdLibApi = 75, 9197 ErrorSuppression = 76, 9198 StrictDiagnostic = 77, 9199 ImportAfterStatement = 78, 9200 EsObjectType = 79, 9201 SendableClassInheritance = 80, 9202 SendablePropType = 81, 9203 SendableDefiniteAssignment = 82, 9204 SendableGenericTypes = 83, 9205 SendableCapturedVars = 84, 9206 SendableClassDecorator = 85, 9207 SendableObjectInitialization = 86, 9208 SendableComputedPropName = 87, 9209 SendableAsExpr = 88, 9210 SharedNoSideEffectImport = 89, 9211 SharedModuleExports = 90, 9212 SharedModuleNoStarExport = 91, 9213 NoTsImportEts = 92, 9214 SendableTypeInheritance = 93, 9215 SendableTypeExported = 94, 9216 SendableNoTsExportEts = 95, 9217 LAST_ID = 96 9218 } 9219 class FaultAttributes { 9220 cookBookRef: number; 9221 migratable: boolean; 9222 severity: ProblemSeverity; 9223 constructor(cookBookRef: number, migratable?: boolean, severity?: ProblemSeverity); 9224 } 9225 const faultsAttrs: FaultAttributes[]; 9226 } 9227 } 9228} 9229declare namespace ts { 9230 namespace ArkTSLinter_1_1 { 9231 import AutofixInfo = Common.AutofixInfo; 9232 namespace Utils { 9233 const PROPERTY_HAS_NO_INITIALIZER_ERROR_CODE = 2564; 9234 const NON_INITIALIZABLE_PROPERTY_DECORATORS: string[]; 9235 const NON_INITIALIZABLE_PROPERTY_CLASS_DECORATORS: string[]; 9236 const LIMITED_STANDARD_UTILITY_TYPES: string[]; 9237 const ALLOWED_STD_SYMBOL_API: string[]; 9238 const ARKTS_IGNORE_DIRS: string[]; 9239 const ARKTS_IGNORE_FILES: string[]; 9240 const SENDABLE_DECORATOR = "Sendable"; 9241 const SENDABLE_INTERFACE = "ISendable"; 9242 const ARKTS_COLLECTIONS_D_ETS = "@arkts.collections.d.ets"; 9243 const COLLECTIONS_NAMESPACE = "collections"; 9244 const ARKTS_COLLECTIONS_TYPES: string[]; 9245 const ARKTS_LANG_D_ETS = "@arkts.lang.d.ets"; 9246 const LANG_NAMESPACE = "lang"; 9247 const ISENDABLE_TYPE = "ISendable"; 9248 const USE_SHARED = "use shared"; 9249 const D_TS = ".d.ts"; 9250 function setTypeChecker(tsTypeChecker: TypeChecker): void; 9251 function clearTypeChecker(): void; 9252 function setTestMode(tsTestMode: boolean): void; 9253 function getStartPos(nodeOrComment: Node | CommentRange): number; 9254 function getEndPos(nodeOrComment: Node | CommentRange): number; 9255 function getHighlightRange(nodeOrComment: Node | CommentRange, faultId: number): [number, number]; 9256 function getVarDeclarationHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9257 function getCatchWithUnsupportedTypeHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9258 function getForInStatementHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9259 function getWithStatementHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9260 function getDeleteOperatorHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9261 function getTypeQueryHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9262 function getInstanceofUnsupportedHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9263 function getConstAssertionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9264 function getLimitedReturnTypeInferenceHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9265 function getLocalFunctionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9266 function getFunctionApplyCallHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9267 function getDeclWithDuplicateNameHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9268 function getObjectLiteralNoContextTypeHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9269 function getClassExpressionHighlightRange(nodeOrComment: Node | CommentRange): [number, number] | undefined; 9270 function getMultipleStaticBlocksHighlightRange(nodeOrComment: ts.Node | ts.CommentRange): [number, number] | undefined; 9271 function getSendableDefiniteAssignmentHighlightRange(nodeOrComment: ts.Node | ts.CommentRange): [number, number] | undefined; 9272 function getKeywordHighlightRange(nodeOrComment: Node | CommentRange, keyword: string): [number, number]; 9273 function isAssignmentOperator(tsBinOp: BinaryOperatorToken): boolean; 9274 function isType(tsType: TypeNode | undefined, checkType: string): boolean; 9275 function entityNameToString(name: EntityName): string; 9276 function isNumberLikeType(tsType: Type): boolean; 9277 function isBooleanLikeType(tsType: Type): boolean; 9278 function isStringLikeType(tsType: Type): boolean; 9279 function isStringType(tsType: ts.Type): boolean; 9280 function isPrimitiveEnumMemberType(type: Type, primitiveType: TypeFlags): boolean; 9281 function unwrapParenthesizedType(tsType: TypeNode): TypeNode; 9282 function findParentIf(asExpr: AsExpression): IfStatement | null; 9283 function isDestructuringAssignmentLHS(tsExpr: ArrayLiteralExpression | ObjectLiteralExpression): boolean; 9284 function isEnumType(tsType: ts.Type): boolean; 9285 function isEnum(tsSymbol: ts.Symbol): boolean; 9286 function isEnumMemberType(tsType: Type): boolean; 9287 function isObjectLiteralType(tsType: Type): boolean; 9288 function hasModifier(tsModifiers: readonly Modifier[] | undefined, tsModifierKind: number): boolean; 9289 function unwrapParenthesized(tsExpr: Expression): Expression; 9290 function followIfAliased(sym: Symbol): Symbol; 9291 function trueSymbolAtLocation(node: Node): Symbol | undefined; 9292 function clearTrueSymbolAtLocationCache(): void; 9293 function isTypeDeclSyntaxKind(kind: SyntaxKind): boolean; 9294 function symbolHasDuplicateName(symbol: Symbol, tsDeclKind: SyntaxKind): boolean; 9295 function isReferenceType(tsType: Type): boolean; 9296 function isPrimitiveType(type: Type): boolean; 9297 function isTypeSymbol(symbol: Symbol | undefined): boolean; 9298 function isGenericArrayType(tsType: Type): tsType is TypeReference; 9299 function isReadonlyArrayType(tsType: Type): boolean; 9300 function isTypedArray(tsType: ts.Type): boolean; 9301 function isArray(tsType: ts.Type): boolean; 9302 function isTuple(tsType: ts.Type): boolean; 9303 function isOrDerivedFrom(tsType: ts.Type, checkType: CheckType, checkedBaseTypes?: Set<ts.Type>): boolean; 9304 function isTypeReference(tsType: Type): tsType is TypeReference; 9305 function isNullType(tsTypeNode: TypeNode): boolean; 9306 function isThisOrSuperExpr(tsExpr: Expression): boolean; 9307 function isPrototypeSymbol(symbol: Symbol | undefined): boolean; 9308 function isFunctionSymbol(symbol: Symbol | undefined): boolean; 9309 function isInterfaceType(tsType: Type | undefined): boolean; 9310 function isAnyType(tsType: Type): tsType is TypeReference; 9311 function isUnknownType(tsType: Type): boolean; 9312 function isUnsupportedType(tsType: Type): boolean; 9313 function isUnsupportedUnionType(tsType: Type): boolean; 9314 function isFunctionOrMethod(tsSymbol: Symbol | undefined): boolean; 9315 function isMethodAssignment(tsSymbol: Symbol | undefined): boolean; 9316 function getDeclaration(tsSymbol: ts.Symbol | undefined): ts.Declaration | undefined; 9317 function isValidEnumMemberInit(tsExpr: Expression): boolean; 9318 function isCompileTimeExpression(tsExpr: Expression): boolean; 9319 function isConst(tsNode: Node): boolean; 9320 function isNumberConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 9321 function isIntegerConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression | NumericLiteral): boolean; 9322 function isStringConstantValue(tsExpr: EnumMember | PropertyAccessExpression | ElementAccessExpression): boolean; 9323 function relatedByInheritanceOrIdentical(typeA: Type, typeB: Type): boolean; 9324 function reduceReference(t: ts.Type): ts.Type; 9325 function needToDeduceStructuralIdentity(lhsType: Type, rhsType: Type, rhsExpr: Expression): boolean; 9326 function hasPredecessor(node: Node, predicate: (node: Node) => boolean): boolean; 9327 function processParentTypes(parentTypes: NodeArray<ExpressionWithTypeArguments>, typeB: Type, processInterfaces: boolean): boolean; 9328 function isObject(tsType: Type): boolean; 9329 function logTscDiagnostic(diagnostics: readonly Diagnostic[], log: (message: any, ...args: any[]) => void): void; 9330 function encodeProblemInfo(problem: ProblemInfo): string; 9331 function decodeAutofixInfo(info: string): AutofixInfo; 9332 function isCallToFunctionWithOmittedReturnType(tsExpr: Expression): boolean; 9333 function validateObjectLiteralType(type: Type | undefined): boolean; 9334 function isStructDeclarationKind(kind: SyntaxKind): boolean; 9335 function isStructDeclaration(node: Node): boolean; 9336 function isStructObjectInitializer(objectLiteral: ObjectLiteralExpression): boolean; 9337 function hasMethods(type: Type): boolean; 9338 function checkTypeSet(typeSet: ts.Type, predicate: CheckType): boolean; 9339 function getNonNullableType(t: ts.Type): ts.Type; 9340 function isObjectLiteralAssignable(lhsType: ts.Type | undefined, rhsExpr: ts.ObjectLiteralExpression): boolean; 9341 function isLiteralType(type: Type): boolean; 9342 function validateFields(objectType: Type, objectLiteral: ObjectLiteralExpression): boolean; 9343 function isSupportedType(typeNode: TypeNode): boolean; 9344 function isStruct(symbol: Symbol): boolean; 9345 type CheckType = ((t: Type) => boolean); 9346 const ES_OBJECT = "ESObject"; 9347 const LIMITED_STD_GLOBAL_FUNC: string[]; 9348 const LIMITED_STD_OBJECT_API: string[]; 9349 const LIMITED_STD_REFLECT_API: string[]; 9350 const LIMITED_STD_PROXYHANDLER_API: string[]; 9351 const FUNCTION_HAS_NO_RETURN_ERROR_CODE = 2366; 9352 const NON_RETURN_FUNCTION_DECORATORS: string[]; 9353 const STANDARD_LIBRARIES: string[]; 9354 const TYPED_ARRAYS: string[]; 9355 function getParentSymbolName(symbol: Symbol): string | undefined; 9356 function isGlobalSymbol(symbol: Symbol): boolean; 9357 function isSymbolAPI(symbol: Symbol): boolean; 9358 function isStdSymbol(symbol: ts.Symbol): boolean; 9359 function isSymbolIterator(symbol: ts.Symbol): boolean; 9360 function isDefaultImport(importSpec: ImportSpecifier): boolean; 9361 function hasAccessModifier(decl: Declaration): boolean; 9362 function getModifier(modifiers: readonly Modifier[] | undefined, modifierKind: SyntaxKind): Modifier | undefined; 9363 function getAccessModifier(modifiers: readonly Modifier[] | undefined): Modifier | undefined; 9364 function isStdRecordType(type: Type): boolean; 9365 function isStdMapType(type: Type): boolean; 9366 function isStdErrorType(type: ts.Type): boolean; 9367 function isStdPartialType(type: Type): boolean; 9368 function isStdRequiredType(type: Type): boolean; 9369 function isStdReadonlyType(type: Type): boolean; 9370 function isLibraryType(type: Type): boolean; 9371 function hasLibraryType(node: Node): boolean; 9372 function isLibrarySymbol(sym: Symbol | undefined): boolean; 9373 function pathContainsDirectory(targetPath: string, dir: string): boolean; 9374 function getScriptKind(srcFile: SourceFile): ScriptKind; 9375 function isStdLibraryType(type: Type): boolean; 9376 function isStdLibrarySymbol(sym: Symbol | undefined): boolean; 9377 function isIntrinsicObjectType(type: Type): boolean; 9378 function isDynamicType(type: Type | undefined): boolean | undefined; 9379 function isObjectType(type: ts.Type): type is ts.ObjectType; 9380 function isAnonymous(type: ts.Type): boolean; 9381 function isDynamicLiteralInitializer(expr: Expression): boolean; 9382 function isEsObjectType(typeNode: ts.TypeNode | undefined): boolean; 9383 function isInsideBlock(node: ts.Node): boolean; 9384 function isEsObjectPossiblyAllowed(typeRef: ts.TypeReferenceNode): boolean; 9385 function isValueAssignableToESObject(node: ts.Node): boolean; 9386 function getVariableDeclarationTypeNode(node: Node): TypeNode | undefined; 9387 function getSymbolDeclarationTypeNode(sym: ts.Symbol): ts.TypeNode | undefined; 9388 function hasEsObjectType(node: Node): boolean; 9389 function symbolHasEsObjectType(sym: ts.Symbol): boolean; 9390 function isEsObjectSymbol(sym: Symbol): boolean; 9391 function isAnonymousType(type: Type): boolean; 9392 function getSymbolOfCallExpression(callExpr: CallExpression): Symbol | undefined; 9393 function typeIsRecursive(topType: Type, type?: Type | undefined): boolean; 9394 function getTypeOrTypeConstraintAtLocation(expr: ts.Expression): ts.Type; 9395 function isStdBigIntType(type: ts.Type): boolean; 9396 function isStdNumberType(type: ts.Type): boolean; 9397 function isStdBooleanType(type: ts.Type): boolean; 9398 function isEnumStringLiteral(expr: ts.Expression): boolean; 9399 function isValidComputedPropertyName(computedProperty: ComputedPropertyName, isRecordObjectInitializer?: boolean): boolean; 9400 function isAllowedIndexSignature(node: ts.IndexSignatureDeclaration): boolean; 9401 function isArkTSCollectionsArrayLikeType(type: ts.Type): boolean; 9402 function getDecoratorName(decorator: ts.Decorator): string; 9403 function unwrapParenthesizedTypeNode(typeNode: ts.TypeNode): ts.TypeNode; 9404 function isSendableTypeNode(typeNode: ts.TypeNode): boolean; 9405 function isSendableType(type: ts.Type): boolean; 9406 function isShareableType(tsType: ts.Type): boolean; 9407 function isSendableClassOrInterface(type: ts.Type): boolean; 9408 function typeContainsSendableClassOrInterface(type: ts.Type): boolean; 9409 function isConstEnum(sym: ts.Symbol | undefined): boolean; 9410 function isSendableUnionType(type: ts.UnionType): boolean; 9411 function hasSendableDecorator(decl: ts.ClassDeclaration): boolean; 9412 function getNonSendableDecorators(decl: ts.ClassDeclaration): ts.Decorator[] | undefined; 9413 function getDecoratorsIfInSendableClass(declaration: ts.HasDecorators): readonly ts.Decorator[] | undefined; 9414 function isISendableInterface(type: ts.Type): boolean; 9415 function isSharedModule(sourceFile: ts.SourceFile): boolean; 9416 function getDeclarationNode(node: ts.Node): ts.Declaration | undefined; 9417 function isShareableEntity(node: ts.Node): boolean; 9418 function isSendableClassOrInterfaceEntity(node: ts.Node): boolean; 9419 function isInImportWhiteList(resolvedModule: ResolvedModuleFull): boolean; 9420 } 9421 } 9422} 9423declare namespace ts { 9424 namespace ArkTSLinter_1_1 { 9425 namespace Autofixer { 9426 import AutofixInfo = Common.AutofixInfo; 9427 import FaultID = Problems.FaultID; 9428 const AUTOFIX_ALL: AutofixInfo; 9429 const autofixInfo: AutofixInfo[]; 9430 function shouldAutofix(node: Node, faultID: FaultID): boolean; 9431 interface Autofix { 9432 replacementText: string; 9433 start: number; 9434 end: number; 9435 } 9436 function fixLiteralAsPropertyName(node: Node): Autofix[] | undefined; 9437 function fixPropertyAccessByIndex(node: Node): Autofix[] | undefined; 9438 function fixFunctionExpression(funcExpr: FunctionExpression, params?: NodeArray<ParameterDeclaration>, retType?: TypeNode | undefined): Autofix; 9439 function fixReturnType(funcLikeDecl: FunctionLikeDeclaration, typeNode: TypeNode): Autofix; 9440 function fixCtorParameterProperties(ctorDecl: ConstructorDeclaration, paramTypes: TypeNode[]): Autofix[] | undefined; 9441 } 9442 } 9443} 9444declare namespace ts { 9445 namespace ArkTSLinter_1_1 { 9446 import FaultID = Problems.FaultID; 9447 class LinterConfig { 9448 static nodeDesc: string[]; 9449 static tsSyntaxKindNames: string[]; 9450 static initStatic(): void; 9451 static terminalTokens: Set<SyntaxKind>; 9452 static incrementOnlyTokens: ESMap<SyntaxKind, FaultID>; 9453 } 9454 } 9455} 9456declare namespace ts { 9457 namespace ArkTSLinter_1_1 { 9458 import Autofix = Autofixer.Autofix; 9459 import LibraryTypeCallDiagnosticChecker = LibraryTypeCallDiagnosticCheckerNamespace.LibraryTypeCallDiagnosticChecker; 9460 interface ProblemInfo { 9461 line: number; 9462 column: number; 9463 start: number; 9464 end: number; 9465 type: string; 9466 severity: number; 9467 problem: string; 9468 suggest: string; 9469 rule: string; 9470 ruleTag: number; 9471 autofixable: boolean; 9472 autofix?: Autofix[]; 9473 } 9474 class TypeScriptLinter { 9475 private sourceFile; 9476 private tscStrictDiagnostics?; 9477 static ideMode: boolean; 9478 static strictMode: boolean; 9479 static logTscErrors: boolean; 9480 static warningsAsErrors: boolean; 9481 static lintEtsOnly: boolean; 9482 static totalVisitedNodes: number; 9483 static nodeCounters: number[]; 9484 static lineCounters: number[]; 9485 static totalErrorLines: number; 9486 static errorLineNumbersString: string; 9487 static totalWarningLines: number; 9488 static warningLineNumbersString: string; 9489 static reportDiagnostics: boolean; 9490 static problemsInfos: ProblemInfo[]; 9491 static filteredDiagnosticMessages: DiagnosticMessageChain[]; 9492 static sharedModulesCache: ESMap<string, boolean>; 9493 static initGlobals(): void; 9494 static initStatic(): void; 9495 static tsTypeChecker: TypeChecker; 9496 currentErrorLine: number; 9497 currentWarningLine: number; 9498 staticBlocks: Set<string>; 9499 libraryTypeCallDiagnosticChecker: LibraryTypeCallDiagnosticChecker; 9500 skipArkTSStaticBlocksCheck: boolean; 9501 constructor(sourceFile: SourceFile, tsProgram: Program, tscStrictDiagnostics?: Map<Diagnostic[]> | undefined); 9502 static clearTsTypeChecker(): void; 9503 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 9504 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 9505 private forEachNodeInSubtree; 9506 private visitSourceFile; 9507 private countInterfaceExtendsDifferentPropertyTypes; 9508 private countDeclarationsWithDuplicateName; 9509 private countClassMembersWithDuplicateName; 9510 private static scopeContainsThis; 9511 private isPrototypePropertyAccess; 9512 private interfaceInheritanceLint; 9513 private lintForInterfaceExtendsDifferentPorpertyTypes; 9514 private handleObjectLiteralExpression; 9515 private handleArrayLiteralExpression; 9516 private handleParameter; 9517 private handleEnumDeclaration; 9518 private handleInterfaceDeclaration; 9519 private handleThrowStatement; 9520 private handleForStatement; 9521 private handleForInStatement; 9522 private handleForOfStatement; 9523 private handleImportDeclaration; 9524 private handleSharedModuleNoSideEffectImport; 9525 private static inSharedModule; 9526 private handlePropertyAccessExpression; 9527 private handlePropertyDeclaration; 9528 private handleSendableClassProperty; 9529 private handlePropertyAssignment; 9530 private handlePropertySignature; 9531 private handleSendableInterfaceProperty; 9532 private filterOutDecoratorsDiagnostics; 9533 private checkInRange; 9534 private filterStrictDiagnostics; 9535 private static isClassLikeOrIface; 9536 private handleFunctionExpression; 9537 private handleArrowFunction; 9538 private handleFunctionDeclaration; 9539 private handleMissingReturnType; 9540 private hasLimitedTypeInferenceFromReturnExpr; 9541 private isValidTypeForUnaryArithmeticOperator; 9542 private handlePrefixUnaryExpression; 9543 private handleBinaryExpression; 9544 private handleVariableDeclarationList; 9545 private handleVariableDeclaration; 9546 private handleEsObjectDelaration; 9547 private handleEsObjectAssignment; 9548 private handleCatchClause; 9549 private handleClassDeclaration; 9550 private scanCapturedVarsInSendableScope; 9551 private checkLocalDecl; 9552 private checkLocalDeclWithSendableClosure; 9553 private checkIsTopClosure; 9554 private checkNamespaceImportVar; 9555 private checkClassDeclarationHeritageClause; 9556 private isValidSendableClassExtends; 9557 private checkSendableTypeParameter; 9558 private processClassStaticBlocks; 9559 private handleModuleDeclaration; 9560 private handleTypeAliasDeclaration; 9561 private handleImportClause; 9562 private handleImportSpecifier; 9563 private handleNamespaceImport; 9564 private handleTypeAssertionExpression; 9565 private handleMethodDeclaration; 9566 private handleMethodSignature; 9567 private handleIdentifier; 9568 private isAllowedClassValueContext; 9569 private handleRestrictedValues; 9570 private identiferUseInValueContext; 9571 private isEnumPropAccess; 9572 private isElementAcessAllowed; 9573 private handleElementAccessExpression; 9574 private handleEnumMember; 9575 private handleExportAssignment; 9576 private handleCallExpression; 9577 private handleEtsComponentExpression; 9578 private handleImportCall; 9579 private handleRequireCall; 9580 private handleGenericCallWithNoTypeArgs; 9581 private static readonly listFunctionApplyCallApis; 9582 private static readonly listFunctionBindApis; 9583 private handleFunctionApplyBindPropCall; 9584 private handleStructIdentAndUndefinedInArgs; 9585 private static LimitedApis; 9586 private handleStdlibAPICall; 9587 private findNonFilteringRangesFunctionCalls; 9588 private handleLibraryTypeCall; 9589 private handleNewExpression; 9590 private handleSendableGenericTypes; 9591 private handleAsExpression; 9592 private handleTypeReference; 9593 private handleMetaProperty; 9594 private handleSpreadOp; 9595 private handleConstructSignature; 9596 private handleExpressionWithTypeArguments; 9597 private handleComputedPropertyName; 9598 private isSendableInvalidCompPropName; 9599 private handleGetAccessor; 9600 private handleSetAccessor; 9601 private handleDeclarationInferredType; 9602 private handleDefiniteAssignmentAssertion; 9603 private validatedTypesSet; 9604 private checkAnyOrUnknownChildNode; 9605 private handleInferredObjectreference; 9606 private validateDeclInferredType; 9607 private processNoCheckEntry; 9608 private reportThisKeywordsInScope; 9609 private handleCommentDirectives; 9610 private handleClassStaticBlockDeclaration; 9611 private handleIndexSignature; 9612 lint(): void; 9613 private handleExportKeyword; 9614 private handleExportDeclaration; 9615 } 9616 } 9617} 9618declare namespace ts { 9619 namespace ArkTSLinter_1_1 { 9620 import Autofix = Autofixer.Autofix; 9621 interface KitSymbol { 9622 source: string; 9623 bindings: string; 9624 } 9625 type KitSymbols = Record<string, KitSymbol>; 9626 interface KitInfo { 9627 symbols?: KitSymbols; 9628 } 9629 class InteropTypescriptLinter { 9630 private sourceFile; 9631 private isInSdk; 9632 static strictMode: boolean; 9633 static totalVisitedNodes: number; 9634 static nodeCounters: number[]; 9635 static lineCounters: number[]; 9636 static totalErrorLines: number; 9637 static errorLineNumbersString: string; 9638 static totalWarningLines: number; 9639 static warningLineNumbersString: string; 9640 static reportDiagnostics: boolean; 9641 static problemsInfos: ProblemInfo[]; 9642 static initGlobals(): void; 9643 static initStatic(): void; 9644 static tsTypeChecker: TypeChecker; 9645 static etsLoaderPath?: string; 9646 static kitInfos: Map<KitInfo>; 9647 currentErrorLine: number; 9648 currentWarningLine: number; 9649 constructor(sourceFile: SourceFile, tsProgram: Program, isInSdk: boolean); 9650 static clearTsTypeChecker(): void; 9651 readonly handlersMap: ESMap<SyntaxKind, (node: Node) => void>; 9652 incrementCounters(node: Node | CommentRange, faultId: number, autofixable?: boolean, autofix?: Autofix[]): void; 9653 private forEachNodeInSubtree; 9654 private visitSourceFile; 9655 private handleImportDeclaration; 9656 private checkSendableClassorISendable; 9657 private checkKitImportClause; 9658 private checkImportClause; 9659 private allowInSdkImportSendable; 9660 private handleClassDeclaration; 9661 private checkClassOrInterfaceDeclarationHeritageClause; 9662 private handleInterfaceDeclaration; 9663 private handleNewExpression; 9664 private handleSendableGenericTypes; 9665 private handleObjectLiteralExpression; 9666 private handleArrayLiteralExpression; 9667 private handleAsExpression; 9668 private handleExportDeclaration; 9669 private handleExportAssignment; 9670 private initKitInfos; 9671 private getOriginalFileNames; 9672 lint(): void; 9673 } 9674 } 9675} 9676declare namespace ts { 9677 namespace ArkTSLinter_1_1 { 9678 class TSCCompiledProgram { 9679 private diagnosticsExtractor; 9680 constructor(program: BuilderProgram); 9681 getProgram(): Program; 9682 getBuilderProgram(): BuilderProgram; 9683 getStrictDiagnostics(fileName: string): Diagnostic[]; 9684 doAllGetDiagnostics(): void; 9685 } 9686 } 9687} 9688declare namespace ts { 9689 namespace ArkTSLinter_1_1 { 9690 function translateDiag(srcFile: SourceFile, problemInfo: ProblemInfo): Diagnostic; 9691 function runArkTSLinter(tsBuilderProgram: BuilderProgram, srcFile?: SourceFile, buildInfoWriteFile?: WriteFileCallback, arkTSVersion?: string): Diagnostic[]; 9692 } 9693} 9694declare namespace ts { 9695 enum TimePhase { 9696 START = "start", 9697 GET_PROGRAM = "getProgram(not ArkTSLinter)", 9698 UPDATE_ERROR_FILE = "updateErrorFile", 9699 INIT = "init", 9700 STRICT_PROGRAM_GET_SEMANTIC_DIAGNOSTICS = "strictProgramGetSemanticDiagnostics", 9701 NON_STRICT_PROGRAM_GET_SEMANTIC_DIAGNOSTICS = "nonStrictProgramGetSemanticDiagnostics", 9702 NON_STRICT_PROGRAM_GET_SYNTACTIC_DIAGNOSTICS = "nonStrictProgramGetSyntacticDiagnostics", 9703 GET_TSC_DIAGNOSTICS = "getTscDiagnostics", 9704 EMIT_BUILD_INFO = "emitBuildInfo", 9705 LINT = "lint" 9706 } 9707 class ArkTSLinterTimePrinter { 9708 private static instance?; 9709 private arkTSTimePrintSwitch; 9710 private timeMap; 9711 private constructor(); 9712 static getInstance(): ArkTSLinterTimePrinter; 9713 static destroyInstance(): void; 9714 setArkTSTimePrintSwitch(arkTSTimePrintSwitch: boolean): void; 9715 appendTime(key: string): void; 9716 private formatMapAsTable; 9717 printTimes(): void; 9718 } 9719} 9720 9721export = ts;