@typescript-deploys/pr-build 5.0.0-pr-50403-6 → 5.0.0-pr-51682-13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4510,9 +4510,16 @@ declare namespace ts {
4510
4510
  */
4511
4511
  readonly modifiers?: NodeArray<ModifierLike> | undefined;
4512
4512
  }
4513
- interface JSDocContainer {
4513
+ interface JSDocContainer extends Node {
4514
+ _jsdocContainerBrand: any;
4514
4515
  }
4515
- 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;
4516
+ interface LocalsContainer extends Node {
4517
+ _localsContainerBrand: any;
4518
+ }
4519
+ interface FlowContainer extends Node {
4520
+ _flowContainerBrand: any;
4521
+ }
4522
+ type HasJSDoc = AccessorDeclaration | ArrowFunction | BinaryExpression | Block | BreakStatement | CallSignatureDeclaration | CaseClause | ClassLikeDeclaration | ClassStaticBlockDeclaration | ConstructorDeclaration | ConstructorTypeNode | ConstructSignatureDeclaration | ContinueStatement | DebuggerStatement | DoStatement | ElementAccessExpression | EmptyStatement | EndOfFileToken | EnumDeclaration | EnumMember | ExportAssignment | ExportDeclaration | ExportSpecifier | ExpressionStatement | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression | FunctionTypeNode | Identifier | IfStatement | ImportDeclaration | ImportEqualsDeclaration | IndexSignatureDeclaration | InterfaceDeclaration | JSDocFunctionType | JSDocSignature | LabeledStatement | MethodDeclaration | MethodSignature | ModuleDeclaration | NamedTupleMember | NamespaceExportDeclaration | ObjectLiteralExpression | ParameterDeclaration | ParenthesizedExpression | PropertyAccessExpression | PropertyAssignment | PropertyDeclaration | PropertySignature | ReturnStatement | ShorthandPropertyAssignment | SpreadAssignment | SwitchStatement | ThrowStatement | TryStatement | TypeAliasDeclaration | TypeParameterDeclaration | VariableDeclaration | VariableStatement | WhileStatement | WithStatement;
4516
4523
  type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType;
4517
4524
  type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement;
4518
4525
  type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute;
@@ -4580,7 +4587,7 @@ declare namespace ts {
4580
4587
  FileLevel = 32,
4581
4588
  AllowNameSubstitution = 64
4582
4589
  }
4583
- interface Identifier extends PrimaryExpression, Declaration {
4590
+ interface Identifier extends PrimaryExpression, Declaration, JSDocContainer, FlowContainer {
4584
4591
  readonly kind: SyntaxKind.Identifier;
4585
4592
  /**
4586
4593
  * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.)
@@ -4596,7 +4603,7 @@ declare namespace ts {
4596
4603
  interface TransientIdentifier extends Identifier {
4597
4604
  resolvedSymbol: Symbol;
4598
4605
  }
4599
- interface QualifiedName extends Node {
4606
+ interface QualifiedName extends Node, FlowContainer {
4600
4607
  readonly kind: SyntaxKind.QualifiedName;
4601
4608
  readonly left: EntityName;
4602
4609
  readonly right: Identifier;
@@ -4631,7 +4638,7 @@ declare namespace ts {
4631
4638
  readonly parent: NamedDeclaration;
4632
4639
  readonly expression: LeftHandSideExpression;
4633
4640
  }
4634
- interface TypeParameterDeclaration extends NamedDeclaration {
4641
+ interface TypeParameterDeclaration extends NamedDeclaration, JSDocContainer {
4635
4642
  readonly kind: SyntaxKind.TypeParameter;
4636
4643
  readonly parent: DeclarationWithTypeParameterChildren | InferTypeNode;
4637
4644
  readonly modifiers?: NodeArray<Modifier>;
@@ -4649,10 +4656,10 @@ declare namespace ts {
4649
4656
  readonly type?: TypeNode | undefined;
4650
4657
  }
4651
4658
  type SignatureDeclaration = CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | AccessorDeclaration | FunctionExpression | ArrowFunction;
4652
- interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement {
4659
+ interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {
4653
4660
  readonly kind: SyntaxKind.CallSignature;
4654
4661
  }
4655
- interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement {
4662
+ interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {
4656
4663
  readonly kind: SyntaxKind.ConstructSignature;
4657
4664
  }
4658
4665
  type BindingName = Identifier | BindingPattern;
@@ -4679,7 +4686,7 @@ declare namespace ts {
4679
4686
  readonly type?: TypeNode;
4680
4687
  readonly initializer?: Expression;
4681
4688
  }
4682
- interface BindingElement extends NamedDeclaration {
4689
+ interface BindingElement extends NamedDeclaration, FlowContainer {
4683
4690
  readonly kind: SyntaxKind.BindingElement;
4684
4691
  readonly parent: BindingPattern;
4685
4692
  readonly propertyName?: PropertyName;
@@ -4689,6 +4696,7 @@ declare namespace ts {
4689
4696
  }
4690
4697
  interface PropertySignature extends TypeElement, JSDocContainer {
4691
4698
  readonly kind: SyntaxKind.PropertySignature;
4699
+ readonly parent: TypeLiteralNode | InterfaceDeclaration;
4692
4700
  readonly modifiers?: NodeArray<Modifier>;
4693
4701
  readonly name: PropertyName;
4694
4702
  readonly questionToken?: QuestionToken;
@@ -4750,9 +4758,6 @@ declare namespace ts {
4750
4758
  readonly expression: Expression;
4751
4759
  }
4752
4760
  type VariableLikeDeclaration = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | PropertySignature | JsxAttribute | ShorthandPropertyAssignment | EnumMember | JSDocPropertyTag | JSDocParameterTag;
4753
- interface PropertyLikeDeclaration extends NamedDeclaration {
4754
- readonly name: PropertyName;
4755
- }
4756
4761
  interface ObjectBindingPattern extends Node {
4757
4762
  readonly kind: SyntaxKind.ObjectBindingPattern;
4758
4763
  readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement;
@@ -4783,26 +4788,26 @@ declare namespace ts {
4783
4788
  type FunctionLikeDeclaration = FunctionDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | FunctionExpression | ArrowFunction;
4784
4789
  /** @deprecated Use SignatureDeclaration */
4785
4790
  type FunctionLike = SignatureDeclaration;
4786
- interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement {
4791
+ interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement, LocalsContainer {
4787
4792
  readonly kind: SyntaxKind.FunctionDeclaration;
4788
4793
  readonly modifiers?: NodeArray<Modifier>;
4789
4794
  readonly name?: Identifier;
4790
4795
  readonly body?: FunctionBody;
4791
4796
  }
4792
- interface MethodSignature extends SignatureDeclarationBase, TypeElement {
4797
+ interface MethodSignature extends SignatureDeclarationBase, TypeElement, LocalsContainer {
4793
4798
  readonly kind: SyntaxKind.MethodSignature;
4794
- readonly parent: ObjectTypeDeclaration;
4799
+ readonly parent: TypeLiteralNode | InterfaceDeclaration;
4795
4800
  readonly modifiers?: NodeArray<Modifier>;
4796
4801
  readonly name: PropertyName;
4797
4802
  }
4798
- interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer {
4803
+ interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
4799
4804
  readonly kind: SyntaxKind.MethodDeclaration;
4800
4805
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression;
4801
4806
  readonly modifiers?: NodeArray<ModifierLike> | undefined;
4802
4807
  readonly name: PropertyName;
4803
4808
  readonly body?: FunctionBody | undefined;
4804
4809
  }
4805
- interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer {
4810
+ interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer, LocalsContainer {
4806
4811
  readonly kind: SyntaxKind.Constructor;
4807
4812
  readonly parent: ClassLikeDeclaration;
4808
4813
  readonly modifiers?: NodeArray<Modifier> | undefined;
@@ -4813,14 +4818,14 @@ declare namespace ts {
4813
4818
  readonly kind: SyntaxKind.SemicolonClassElement;
4814
4819
  readonly parent: ClassLikeDeclaration;
4815
4820
  }
4816
- interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer {
4821
+ interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
4817
4822
  readonly kind: SyntaxKind.GetAccessor;
4818
4823
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;
4819
4824
  readonly modifiers?: NodeArray<ModifierLike>;
4820
4825
  readonly name: PropertyName;
4821
4826
  readonly body?: FunctionBody;
4822
4827
  }
4823
- interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer {
4828
+ interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
4824
4829
  readonly kind: SyntaxKind.SetAccessor;
4825
4830
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;
4826
4831
  readonly modifiers?: NodeArray<ModifierLike>;
@@ -4828,13 +4833,13 @@ declare namespace ts {
4828
4833
  readonly body?: FunctionBody;
4829
4834
  }
4830
4835
  type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration;
4831
- interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement {
4836
+ interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement, LocalsContainer {
4832
4837
  readonly kind: SyntaxKind.IndexSignature;
4833
4838
  readonly parent: ObjectTypeDeclaration;
4834
4839
  readonly modifiers?: NodeArray<Modifier>;
4835
4840
  readonly type: TypeNode;
4836
4841
  }
4837
- interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer {
4842
+ interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer, LocalsContainer {
4838
4843
  readonly kind: SyntaxKind.ClassStaticBlockDeclaration;
4839
4844
  readonly parent: ClassDeclaration | ClassExpression;
4840
4845
  readonly body: Block;
@@ -4866,14 +4871,14 @@ declare namespace ts {
4866
4871
  readonly kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType;
4867
4872
  readonly type: TypeNode;
4868
4873
  }
4869
- interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase {
4874
+ interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
4870
4875
  readonly kind: SyntaxKind.FunctionType;
4871
4876
  }
4872
4877
  interface FunctionTypeNode {
4873
4878
  /** @deprecated A function type cannot have modifiers */
4874
4879
  readonly modifiers?: NodeArray<Modifier> | undefined;
4875
4880
  }
4876
- interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase {
4881
+ interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
4877
4882
  readonly kind: SyntaxKind.ConstructorType;
4878
4883
  readonly modifiers?: NodeArray<Modifier>;
4879
4884
  }
@@ -4908,7 +4913,7 @@ declare namespace ts {
4908
4913
  readonly kind: SyntaxKind.TupleType;
4909
4914
  readonly elements: NodeArray<TypeNode | NamedTupleMember>;
4910
4915
  }
4911
- interface NamedTupleMember extends TypeNode, JSDocContainer, Declaration {
4916
+ interface NamedTupleMember extends TypeNode, Declaration, JSDocContainer {
4912
4917
  readonly kind: SyntaxKind.NamedTupleMember;
4913
4918
  readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>;
4914
4919
  readonly name: Identifier;
@@ -4932,7 +4937,7 @@ declare namespace ts {
4932
4937
  readonly kind: SyntaxKind.IntersectionType;
4933
4938
  readonly types: NodeArray<TypeNode>;
4934
4939
  }
4935
- interface ConditionalTypeNode extends TypeNode {
4940
+ interface ConditionalTypeNode extends TypeNode, LocalsContainer {
4936
4941
  readonly kind: SyntaxKind.ConditionalType;
4937
4942
  readonly checkType: TypeNode;
4938
4943
  readonly extendsType: TypeNode;
@@ -4957,7 +4962,7 @@ declare namespace ts {
4957
4962
  readonly objectType: TypeNode;
4958
4963
  readonly indexType: TypeNode;
4959
4964
  }
4960
- interface MappedTypeNode extends TypeNode, Declaration {
4965
+ interface MappedTypeNode extends TypeNode, Declaration, LocalsContainer {
4961
4966
  readonly kind: SyntaxKind.MappedType;
4962
4967
  readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken;
4963
4968
  readonly typeParameter: TypeParameterDeclaration;
@@ -5036,10 +5041,10 @@ declare namespace ts {
5036
5041
  readonly kind: SyntaxKind.FalseKeyword;
5037
5042
  }
5038
5043
  type BooleanLiteral = TrueLiteral | FalseLiteral;
5039
- interface ThisExpression extends PrimaryExpression {
5044
+ interface ThisExpression extends PrimaryExpression, FlowContainer {
5040
5045
  readonly kind: SyntaxKind.ThisKeyword;
5041
5046
  }
5042
- interface SuperExpression extends PrimaryExpression {
5047
+ interface SuperExpression extends PrimaryExpression, FlowContainer {
5043
5048
  readonly kind: SyntaxKind.SuperKeyword;
5044
5049
  }
5045
5050
  interface ImportExpression extends PrimaryExpression {
@@ -5093,7 +5098,7 @@ declare namespace ts {
5093
5098
  type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken;
5094
5099
  type LogicalOrCoalescingAssignmentOperator = SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.QuestionQuestionEqualsToken;
5095
5100
  type BinaryOperatorToken = Token<BinaryOperator>;
5096
- interface BinaryExpression extends Expression, Declaration {
5101
+ interface BinaryExpression extends Expression, Declaration, JSDocContainer {
5097
5102
  readonly kind: SyntaxKind.BinaryExpression;
5098
5103
  readonly left: Expression;
5099
5104
  readonly operatorToken: BinaryOperatorToken;
@@ -5130,13 +5135,13 @@ declare namespace ts {
5130
5135
  }
5131
5136
  type FunctionBody = Block;
5132
5137
  type ConciseBody = FunctionBody | Expression;
5133
- interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer {
5138
+ interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {
5134
5139
  readonly kind: SyntaxKind.FunctionExpression;
5135
5140
  readonly modifiers?: NodeArray<Modifier>;
5136
5141
  readonly name?: Identifier;
5137
5142
  readonly body: FunctionBody;
5138
5143
  }
5139
- interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer {
5144
+ interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {
5140
5145
  readonly kind: SyntaxKind.ArrowFunction;
5141
5146
  readonly modifiers?: NodeArray<Modifier>;
5142
5147
  readonly equalsGreaterThanToken: EqualsGreaterThanToken;
@@ -5223,13 +5228,13 @@ declare namespace ts {
5223
5228
  interface ObjectLiteralExpressionBase<T extends ObjectLiteralElement> extends PrimaryExpression, Declaration {
5224
5229
  readonly properties: NodeArray<T>;
5225
5230
  }
5226
- interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike> {
5231
+ interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike>, JSDocContainer {
5227
5232
  readonly kind: SyntaxKind.ObjectLiteralExpression;
5228
5233
  }
5229
5234
  type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;
5230
5235
  type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
5231
5236
  type AccessExpression = PropertyAccessExpression | ElementAccessExpression;
5232
- interface PropertyAccessExpression extends MemberExpression, NamedDeclaration {
5237
+ interface PropertyAccessExpression extends MemberExpression, NamedDeclaration, JSDocContainer, FlowContainer {
5233
5238
  readonly kind: SyntaxKind.PropertyAccessExpression;
5234
5239
  readonly expression: LeftHandSideExpression;
5235
5240
  readonly questionDotToken?: QuestionDotToken;
@@ -5248,7 +5253,7 @@ declare namespace ts {
5248
5253
  readonly expression: EntityNameExpression;
5249
5254
  readonly name: Identifier;
5250
5255
  }
5251
- interface ElementAccessExpression extends MemberExpression {
5256
+ interface ElementAccessExpression extends MemberExpression, Declaration, JSDocContainer, FlowContainer {
5252
5257
  readonly kind: SyntaxKind.ElementAccessExpression;
5253
5258
  readonly expression: LeftHandSideExpression;
5254
5259
  readonly questionDotToken?: QuestionDotToken;
@@ -5318,7 +5323,7 @@ declare namespace ts {
5318
5323
  interface NonNullChain extends NonNullExpression {
5319
5324
  _optionalChainBrand: any;
5320
5325
  }
5321
- interface MetaProperty extends PrimaryExpression {
5326
+ interface MetaProperty extends PrimaryExpression, FlowContainer {
5322
5327
  readonly kind: SyntaxKind.MetaProperty;
5323
5328
  readonly keywordToken: SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword;
5324
5329
  readonly name: Identifier;
@@ -5411,7 +5416,7 @@ declare namespace ts {
5411
5416
  interface EmptyStatement extends Statement {
5412
5417
  readonly kind: SyntaxKind.EmptyStatement;
5413
5418
  }
5414
- interface DebuggerStatement extends Statement {
5419
+ interface DebuggerStatement extends Statement, FlowContainer {
5415
5420
  readonly kind: SyntaxKind.DebuggerStatement;
5416
5421
  }
5417
5422
  interface MissingDeclaration extends DeclarationStatement {
@@ -5419,20 +5424,20 @@ declare namespace ts {
5419
5424
  readonly name?: Identifier;
5420
5425
  }
5421
5426
  type BlockLike = SourceFile | Block | ModuleBlock | CaseOrDefaultClause;
5422
- interface Block extends Statement {
5427
+ interface Block extends Statement, LocalsContainer {
5423
5428
  readonly kind: SyntaxKind.Block;
5424
5429
  readonly statements: NodeArray<Statement>;
5425
5430
  }
5426
- interface VariableStatement extends Statement {
5431
+ interface VariableStatement extends Statement, FlowContainer {
5427
5432
  readonly kind: SyntaxKind.VariableStatement;
5428
5433
  readonly modifiers?: NodeArray<Modifier>;
5429
5434
  readonly declarationList: VariableDeclarationList;
5430
5435
  }
5431
- interface ExpressionStatement extends Statement {
5436
+ interface ExpressionStatement extends Statement, FlowContainer {
5432
5437
  readonly kind: SyntaxKind.ExpressionStatement;
5433
5438
  readonly expression: Expression;
5434
5439
  }
5435
- interface IfStatement extends Statement {
5440
+ interface IfStatement extends Statement, FlowContainer {
5436
5441
  readonly kind: SyntaxKind.IfStatement;
5437
5442
  readonly expression: Expression;
5438
5443
  readonly thenStatement: Statement;
@@ -5441,58 +5446,58 @@ declare namespace ts {
5441
5446
  interface IterationStatement extends Statement {
5442
5447
  readonly statement: Statement;
5443
5448
  }
5444
- interface DoStatement extends IterationStatement {
5449
+ interface DoStatement extends IterationStatement, FlowContainer {
5445
5450
  readonly kind: SyntaxKind.DoStatement;
5446
5451
  readonly expression: Expression;
5447
5452
  }
5448
- interface WhileStatement extends IterationStatement {
5453
+ interface WhileStatement extends IterationStatement, FlowContainer {
5449
5454
  readonly kind: SyntaxKind.WhileStatement;
5450
5455
  readonly expression: Expression;
5451
5456
  }
5452
5457
  type ForInitializer = VariableDeclarationList | Expression;
5453
- interface ForStatement extends IterationStatement {
5458
+ interface ForStatement extends IterationStatement, LocalsContainer, FlowContainer {
5454
5459
  readonly kind: SyntaxKind.ForStatement;
5455
5460
  readonly initializer?: ForInitializer;
5456
5461
  readonly condition?: Expression;
5457
5462
  readonly incrementor?: Expression;
5458
5463
  }
5459
5464
  type ForInOrOfStatement = ForInStatement | ForOfStatement;
5460
- interface ForInStatement extends IterationStatement {
5465
+ interface ForInStatement extends IterationStatement, LocalsContainer, FlowContainer {
5461
5466
  readonly kind: SyntaxKind.ForInStatement;
5462
5467
  readonly initializer: ForInitializer;
5463
5468
  readonly expression: Expression;
5464
5469
  }
5465
- interface ForOfStatement extends IterationStatement {
5470
+ interface ForOfStatement extends IterationStatement, LocalsContainer, FlowContainer {
5466
5471
  readonly kind: SyntaxKind.ForOfStatement;
5467
5472
  readonly awaitModifier?: AwaitKeyword;
5468
5473
  readonly initializer: ForInitializer;
5469
5474
  readonly expression: Expression;
5470
5475
  }
5471
- interface BreakStatement extends Statement {
5476
+ interface BreakStatement extends Statement, FlowContainer {
5472
5477
  readonly kind: SyntaxKind.BreakStatement;
5473
5478
  readonly label?: Identifier;
5474
5479
  }
5475
- interface ContinueStatement extends Statement {
5480
+ interface ContinueStatement extends Statement, FlowContainer {
5476
5481
  readonly kind: SyntaxKind.ContinueStatement;
5477
5482
  readonly label?: Identifier;
5478
5483
  }
5479
5484
  type BreakOrContinueStatement = BreakStatement | ContinueStatement;
5480
- interface ReturnStatement extends Statement {
5485
+ interface ReturnStatement extends Statement, FlowContainer {
5481
5486
  readonly kind: SyntaxKind.ReturnStatement;
5482
5487
  readonly expression?: Expression;
5483
5488
  }
5484
- interface WithStatement extends Statement {
5489
+ interface WithStatement extends Statement, FlowContainer {
5485
5490
  readonly kind: SyntaxKind.WithStatement;
5486
5491
  readonly expression: Expression;
5487
5492
  readonly statement: Statement;
5488
5493
  }
5489
- interface SwitchStatement extends Statement {
5494
+ interface SwitchStatement extends Statement, FlowContainer {
5490
5495
  readonly kind: SyntaxKind.SwitchStatement;
5491
5496
  readonly expression: Expression;
5492
5497
  readonly caseBlock: CaseBlock;
5493
5498
  possiblyExhaustive?: boolean;
5494
5499
  }
5495
- interface CaseBlock extends Node {
5500
+ interface CaseBlock extends Node, LocalsContainer {
5496
5501
  readonly kind: SyntaxKind.CaseBlock;
5497
5502
  readonly parent: SwitchStatement;
5498
5503
  readonly clauses: NodeArray<CaseOrDefaultClause>;
@@ -5509,22 +5514,22 @@ declare namespace ts {
5509
5514
  readonly statements: NodeArray<Statement>;
5510
5515
  }
5511
5516
  type CaseOrDefaultClause = CaseClause | DefaultClause;
5512
- interface LabeledStatement extends Statement {
5517
+ interface LabeledStatement extends Statement, FlowContainer {
5513
5518
  readonly kind: SyntaxKind.LabeledStatement;
5514
5519
  readonly label: Identifier;
5515
5520
  readonly statement: Statement;
5516
5521
  }
5517
- interface ThrowStatement extends Statement {
5522
+ interface ThrowStatement extends Statement, FlowContainer {
5518
5523
  readonly kind: SyntaxKind.ThrowStatement;
5519
5524
  readonly expression: Expression;
5520
5525
  }
5521
- interface TryStatement extends Statement {
5526
+ interface TryStatement extends Statement, FlowContainer {
5522
5527
  readonly kind: SyntaxKind.TryStatement;
5523
5528
  readonly tryBlock: Block;
5524
5529
  readonly catchClause?: CatchClause;
5525
5530
  readonly finallyBlock?: Block;
5526
5531
  }
5527
- interface CatchClause extends Node {
5532
+ interface CatchClause extends Node, LocalsContainer {
5528
5533
  readonly kind: SyntaxKind.CatchClause;
5529
5534
  readonly parent: TryStatement;
5530
5535
  readonly variableDeclaration?: VariableDeclaration;
@@ -5574,7 +5579,7 @@ declare namespace ts {
5574
5579
  readonly token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword;
5575
5580
  readonly types: NodeArray<ExpressionWithTypeArguments>;
5576
5581
  }
5577
- interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer {
5582
+ interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {
5578
5583
  readonly kind: SyntaxKind.TypeAliasDeclaration;
5579
5584
  readonly modifiers?: NodeArray<Modifier>;
5580
5585
  readonly name: Identifier;
@@ -5595,7 +5600,7 @@ declare namespace ts {
5595
5600
  }
5596
5601
  type ModuleName = Identifier | StringLiteral;
5597
5602
  type ModuleBody = NamespaceBody | JSDocNamespaceBody;
5598
- interface ModuleDeclaration extends DeclarationStatement, JSDocContainer {
5603
+ interface ModuleDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {
5599
5604
  readonly kind: SyntaxKind.ModuleDeclaration;
5600
5605
  readonly parent: ModuleBody | SourceFile;
5601
5606
  readonly modifiers?: NodeArray<Modifier>;
@@ -5811,7 +5816,7 @@ declare namespace ts {
5811
5816
  readonly kind: SyntaxKind.JSDocOptionalType;
5812
5817
  readonly type: TypeNode;
5813
5818
  }
5814
- interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase {
5819
+ interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase, LocalsContainer {
5815
5820
  readonly kind: SyntaxKind.JSDocFunctionType;
5816
5821
  }
5817
5822
  interface JSDocVariadicType extends JSDocType {
@@ -5897,7 +5902,7 @@ declare namespace ts {
5897
5902
  interface JSDocOverrideTag extends JSDocTag {
5898
5903
  readonly kind: SyntaxKind.JSDocOverrideTag;
5899
5904
  }
5900
- interface JSDocEnumTag extends JSDocTag, Declaration {
5905
+ interface JSDocEnumTag extends JSDocTag, Declaration, LocalsContainer {
5901
5906
  readonly kind: SyntaxKind.JSDocEnumTag;
5902
5907
  readonly parent: JSDoc;
5903
5908
  readonly typeExpression: JSDocTypeExpression;
@@ -5923,21 +5928,21 @@ declare namespace ts {
5923
5928
  readonly kind: SyntaxKind.JSDocTypeTag;
5924
5929
  readonly typeExpression: JSDocTypeExpression;
5925
5930
  }
5926
- interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
5931
+ interface JSDocTypedefTag extends JSDocTag, NamedDeclaration, LocalsContainer {
5927
5932
  readonly kind: SyntaxKind.JSDocTypedefTag;
5928
5933
  readonly parent: JSDoc;
5929
5934
  readonly fullName?: JSDocNamespaceDeclaration | Identifier;
5930
5935
  readonly name?: Identifier;
5931
5936
  readonly typeExpression?: JSDocTypeExpression | JSDocTypeLiteral;
5932
5937
  }
5933
- interface JSDocCallbackTag extends JSDocTag, NamedDeclaration {
5938
+ interface JSDocCallbackTag extends JSDocTag, NamedDeclaration, LocalsContainer {
5934
5939
  readonly kind: SyntaxKind.JSDocCallbackTag;
5935
5940
  readonly parent: JSDoc;
5936
5941
  readonly fullName?: JSDocNamespaceDeclaration | Identifier;
5937
5942
  readonly name?: Identifier;
5938
5943
  readonly typeExpression: JSDocSignature;
5939
5944
  }
5940
- interface JSDocSignature extends JSDocType, Declaration {
5945
+ interface JSDocSignature extends JSDocType, Declaration, JSDocContainer, LocalsContainer {
5941
5946
  readonly kind: SyntaxKind.JSDocSignature;
5942
5947
  readonly typeParameters?: readonly JSDocTemplateTag[];
5943
5948
  readonly parameters: readonly JSDocParameterTag[];
@@ -5957,7 +5962,7 @@ declare namespace ts {
5957
5962
  interface JSDocParameterTag extends JSDocPropertyLikeTag {
5958
5963
  readonly kind: SyntaxKind.JSDocParameterTag;
5959
5964
  }
5960
- interface JSDocTypeLiteral extends JSDocType {
5965
+ interface JSDocTypeLiteral extends JSDocType, Declaration {
5961
5966
  readonly kind: SyntaxKind.JSDocTypeLiteral;
5962
5967
  readonly jsDocPropertyTags?: readonly JSDocPropertyLikeTag[];
5963
5968
  /** If true, then this type literal represents an *array* of its type. */
@@ -6037,7 +6042,7 @@ declare namespace ts {
6037
6042
  getLineAndCharacterOfPosition(pos: number): LineAndCharacter;
6038
6043
  }
6039
6044
  type ResolutionMode = ModuleKind.ESNext | ModuleKind.CommonJS | undefined;
6040
- interface SourceFile extends Declaration {
6045
+ interface SourceFile extends Declaration, LocalsContainer {
6041
6046
  readonly kind: SyntaxKind.SourceFile;
6042
6047
  readonly statements: NodeArray<Statement>;
6043
6048
  readonly endOfFileToken: Token<SyntaxKind.EndOfFileToken>;
@@ -7463,11 +7468,12 @@ declare namespace ts {
7463
7468
  createToken(token: SyntaxKind.NullKeyword): NullLiteral;
7464
7469
  createToken(token: SyntaxKind.TrueKeyword): TrueLiteral;
7465
7470
  createToken(token: SyntaxKind.FalseKeyword): FalseLiteral;
7471
+ createToken(token: SyntaxKind.EndOfFileToken): EndOfFileToken;
7472
+ createToken(token: SyntaxKind.Unknown): Token<SyntaxKind.Unknown>;
7466
7473
  createToken<TKind extends PunctuationSyntaxKind>(token: TKind): PunctuationToken<TKind>;
7467
7474
  createToken<TKind extends KeywordTypeSyntaxKind>(token: TKind): KeywordTypeNode<TKind>;
7468
7475
  createToken<TKind extends ModifierSyntaxKind>(token: TKind): ModifierToken<TKind>;
7469
7476
  createToken<TKind extends KeywordSyntaxKind>(token: TKind): KeywordToken<TKind>;
7470
- createToken<TKind extends SyntaxKind.Unknown | SyntaxKind.EndOfFileToken>(token: TKind): Token<TKind>;
7471
7477
  createSuper(): SuperExpression;
7472
7478
  createThis(): ThisExpression;
7473
7479
  createNull(): NullLiteral;
@@ -9159,7 +9165,7 @@ declare namespace ts {
9159
9165
  /**
9160
9166
  * Note that the case of the config path has not yet been normalized, as no files have been imported into the project yet
9161
9167
  */
9162
- extendedConfigPath?: string | string[];
9168
+ extendedConfigPath?: string;
9163
9169
  }
9164
9170
  interface ExtendedConfigCacheEntry {
9165
9171
  extendedResult: TsConfigSourceFile;