@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.
@@ -577,9 +577,16 @@ declare namespace ts {
577
577
  */
578
578
  readonly modifiers?: NodeArray<ModifierLike> | undefined;
579
579
  }
580
- interface JSDocContainer {
580
+ interface JSDocContainer extends Node {
581
+ _jsdocContainerBrand: any;
581
582
  }
582
- 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;
583
+ interface LocalsContainer extends Node {
584
+ _localsContainerBrand: any;
585
+ }
586
+ interface FlowContainer extends Node {
587
+ _flowContainerBrand: any;
588
+ }
589
+ 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;
583
590
  type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType;
584
591
  type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement;
585
592
  type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute;
@@ -647,7 +654,7 @@ declare namespace ts {
647
654
  FileLevel = 32,
648
655
  AllowNameSubstitution = 64
649
656
  }
650
- interface Identifier extends PrimaryExpression, Declaration {
657
+ interface Identifier extends PrimaryExpression, Declaration, JSDocContainer, FlowContainer {
651
658
  readonly kind: SyntaxKind.Identifier;
652
659
  /**
653
660
  * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.)
@@ -663,7 +670,7 @@ declare namespace ts {
663
670
  interface TransientIdentifier extends Identifier {
664
671
  resolvedSymbol: Symbol;
665
672
  }
666
- interface QualifiedName extends Node {
673
+ interface QualifiedName extends Node, FlowContainer {
667
674
  readonly kind: SyntaxKind.QualifiedName;
668
675
  readonly left: EntityName;
669
676
  readonly right: Identifier;
@@ -698,7 +705,7 @@ declare namespace ts {
698
705
  readonly parent: NamedDeclaration;
699
706
  readonly expression: LeftHandSideExpression;
700
707
  }
701
- interface TypeParameterDeclaration extends NamedDeclaration {
708
+ interface TypeParameterDeclaration extends NamedDeclaration, JSDocContainer {
702
709
  readonly kind: SyntaxKind.TypeParameter;
703
710
  readonly parent: DeclarationWithTypeParameterChildren | InferTypeNode;
704
711
  readonly modifiers?: NodeArray<Modifier>;
@@ -716,10 +723,10 @@ declare namespace ts {
716
723
  readonly type?: TypeNode | undefined;
717
724
  }
718
725
  type SignatureDeclaration = CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | AccessorDeclaration | FunctionExpression | ArrowFunction;
719
- interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement {
726
+ interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {
720
727
  readonly kind: SyntaxKind.CallSignature;
721
728
  }
722
- interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement {
729
+ interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {
723
730
  readonly kind: SyntaxKind.ConstructSignature;
724
731
  }
725
732
  type BindingName = Identifier | BindingPattern;
@@ -746,7 +753,7 @@ declare namespace ts {
746
753
  readonly type?: TypeNode;
747
754
  readonly initializer?: Expression;
748
755
  }
749
- interface BindingElement extends NamedDeclaration {
756
+ interface BindingElement extends NamedDeclaration, FlowContainer {
750
757
  readonly kind: SyntaxKind.BindingElement;
751
758
  readonly parent: BindingPattern;
752
759
  readonly propertyName?: PropertyName;
@@ -756,6 +763,7 @@ declare namespace ts {
756
763
  }
757
764
  interface PropertySignature extends TypeElement, JSDocContainer {
758
765
  readonly kind: SyntaxKind.PropertySignature;
766
+ readonly parent: TypeLiteralNode | InterfaceDeclaration;
759
767
  readonly modifiers?: NodeArray<Modifier>;
760
768
  readonly name: PropertyName;
761
769
  readonly questionToken?: QuestionToken;
@@ -817,9 +825,6 @@ declare namespace ts {
817
825
  readonly expression: Expression;
818
826
  }
819
827
  type VariableLikeDeclaration = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | PropertySignature | JsxAttribute | ShorthandPropertyAssignment | EnumMember | JSDocPropertyTag | JSDocParameterTag;
820
- interface PropertyLikeDeclaration extends NamedDeclaration {
821
- readonly name: PropertyName;
822
- }
823
828
  interface ObjectBindingPattern extends Node {
824
829
  readonly kind: SyntaxKind.ObjectBindingPattern;
825
830
  readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement;
@@ -850,26 +855,26 @@ declare namespace ts {
850
855
  type FunctionLikeDeclaration = FunctionDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | FunctionExpression | ArrowFunction;
851
856
  /** @deprecated Use SignatureDeclaration */
852
857
  type FunctionLike = SignatureDeclaration;
853
- interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement {
858
+ interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement, LocalsContainer {
854
859
  readonly kind: SyntaxKind.FunctionDeclaration;
855
860
  readonly modifiers?: NodeArray<Modifier>;
856
861
  readonly name?: Identifier;
857
862
  readonly body?: FunctionBody;
858
863
  }
859
- interface MethodSignature extends SignatureDeclarationBase, TypeElement {
864
+ interface MethodSignature extends SignatureDeclarationBase, TypeElement, LocalsContainer {
860
865
  readonly kind: SyntaxKind.MethodSignature;
861
- readonly parent: ObjectTypeDeclaration;
866
+ readonly parent: TypeLiteralNode | InterfaceDeclaration;
862
867
  readonly modifiers?: NodeArray<Modifier>;
863
868
  readonly name: PropertyName;
864
869
  }
865
- interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer {
870
+ interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
866
871
  readonly kind: SyntaxKind.MethodDeclaration;
867
872
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression;
868
873
  readonly modifiers?: NodeArray<ModifierLike> | undefined;
869
874
  readonly name: PropertyName;
870
875
  readonly body?: FunctionBody | undefined;
871
876
  }
872
- interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer {
877
+ interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer, LocalsContainer {
873
878
  readonly kind: SyntaxKind.Constructor;
874
879
  readonly parent: ClassLikeDeclaration;
875
880
  readonly modifiers?: NodeArray<Modifier> | undefined;
@@ -880,14 +885,14 @@ declare namespace ts {
880
885
  readonly kind: SyntaxKind.SemicolonClassElement;
881
886
  readonly parent: ClassLikeDeclaration;
882
887
  }
883
- interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer {
888
+ interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
884
889
  readonly kind: SyntaxKind.GetAccessor;
885
890
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;
886
891
  readonly modifiers?: NodeArray<ModifierLike>;
887
892
  readonly name: PropertyName;
888
893
  readonly body?: FunctionBody;
889
894
  }
890
- interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer {
895
+ interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
891
896
  readonly kind: SyntaxKind.SetAccessor;
892
897
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;
893
898
  readonly modifiers?: NodeArray<ModifierLike>;
@@ -895,13 +900,13 @@ declare namespace ts {
895
900
  readonly body?: FunctionBody;
896
901
  }
897
902
  type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration;
898
- interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement {
903
+ interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement, LocalsContainer {
899
904
  readonly kind: SyntaxKind.IndexSignature;
900
905
  readonly parent: ObjectTypeDeclaration;
901
906
  readonly modifiers?: NodeArray<Modifier>;
902
907
  readonly type: TypeNode;
903
908
  }
904
- interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer {
909
+ interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer, LocalsContainer {
905
910
  readonly kind: SyntaxKind.ClassStaticBlockDeclaration;
906
911
  readonly parent: ClassDeclaration | ClassExpression;
907
912
  readonly body: Block;
@@ -933,14 +938,14 @@ declare namespace ts {
933
938
  readonly kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType;
934
939
  readonly type: TypeNode;
935
940
  }
936
- interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase {
941
+ interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
937
942
  readonly kind: SyntaxKind.FunctionType;
938
943
  }
939
944
  interface FunctionTypeNode {
940
945
  /** @deprecated A function type cannot have modifiers */
941
946
  readonly modifiers?: NodeArray<Modifier> | undefined;
942
947
  }
943
- interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase {
948
+ interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
944
949
  readonly kind: SyntaxKind.ConstructorType;
945
950
  readonly modifiers?: NodeArray<Modifier>;
946
951
  }
@@ -975,7 +980,7 @@ declare namespace ts {
975
980
  readonly kind: SyntaxKind.TupleType;
976
981
  readonly elements: NodeArray<TypeNode | NamedTupleMember>;
977
982
  }
978
- interface NamedTupleMember extends TypeNode, JSDocContainer, Declaration {
983
+ interface NamedTupleMember extends TypeNode, Declaration, JSDocContainer {
979
984
  readonly kind: SyntaxKind.NamedTupleMember;
980
985
  readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>;
981
986
  readonly name: Identifier;
@@ -999,7 +1004,7 @@ declare namespace ts {
999
1004
  readonly kind: SyntaxKind.IntersectionType;
1000
1005
  readonly types: NodeArray<TypeNode>;
1001
1006
  }
1002
- interface ConditionalTypeNode extends TypeNode {
1007
+ interface ConditionalTypeNode extends TypeNode, LocalsContainer {
1003
1008
  readonly kind: SyntaxKind.ConditionalType;
1004
1009
  readonly checkType: TypeNode;
1005
1010
  readonly extendsType: TypeNode;
@@ -1024,7 +1029,7 @@ declare namespace ts {
1024
1029
  readonly objectType: TypeNode;
1025
1030
  readonly indexType: TypeNode;
1026
1031
  }
1027
- interface MappedTypeNode extends TypeNode, Declaration {
1032
+ interface MappedTypeNode extends TypeNode, Declaration, LocalsContainer {
1028
1033
  readonly kind: SyntaxKind.MappedType;
1029
1034
  readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken;
1030
1035
  readonly typeParameter: TypeParameterDeclaration;
@@ -1103,10 +1108,10 @@ declare namespace ts {
1103
1108
  readonly kind: SyntaxKind.FalseKeyword;
1104
1109
  }
1105
1110
  type BooleanLiteral = TrueLiteral | FalseLiteral;
1106
- interface ThisExpression extends PrimaryExpression {
1111
+ interface ThisExpression extends PrimaryExpression, FlowContainer {
1107
1112
  readonly kind: SyntaxKind.ThisKeyword;
1108
1113
  }
1109
- interface SuperExpression extends PrimaryExpression {
1114
+ interface SuperExpression extends PrimaryExpression, FlowContainer {
1110
1115
  readonly kind: SyntaxKind.SuperKeyword;
1111
1116
  }
1112
1117
  interface ImportExpression extends PrimaryExpression {
@@ -1160,7 +1165,7 @@ declare namespace ts {
1160
1165
  type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken;
1161
1166
  type LogicalOrCoalescingAssignmentOperator = SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.QuestionQuestionEqualsToken;
1162
1167
  type BinaryOperatorToken = Token<BinaryOperator>;
1163
- interface BinaryExpression extends Expression, Declaration {
1168
+ interface BinaryExpression extends Expression, Declaration, JSDocContainer {
1164
1169
  readonly kind: SyntaxKind.BinaryExpression;
1165
1170
  readonly left: Expression;
1166
1171
  readonly operatorToken: BinaryOperatorToken;
@@ -1197,13 +1202,13 @@ declare namespace ts {
1197
1202
  }
1198
1203
  type FunctionBody = Block;
1199
1204
  type ConciseBody = FunctionBody | Expression;
1200
- interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer {
1205
+ interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {
1201
1206
  readonly kind: SyntaxKind.FunctionExpression;
1202
1207
  readonly modifiers?: NodeArray<Modifier>;
1203
1208
  readonly name?: Identifier;
1204
1209
  readonly body: FunctionBody;
1205
1210
  }
1206
- interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer {
1211
+ interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {
1207
1212
  readonly kind: SyntaxKind.ArrowFunction;
1208
1213
  readonly modifiers?: NodeArray<Modifier>;
1209
1214
  readonly equalsGreaterThanToken: EqualsGreaterThanToken;
@@ -1290,13 +1295,13 @@ declare namespace ts {
1290
1295
  interface ObjectLiteralExpressionBase<T extends ObjectLiteralElement> extends PrimaryExpression, Declaration {
1291
1296
  readonly properties: NodeArray<T>;
1292
1297
  }
1293
- interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike> {
1298
+ interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike>, JSDocContainer {
1294
1299
  readonly kind: SyntaxKind.ObjectLiteralExpression;
1295
1300
  }
1296
1301
  type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;
1297
1302
  type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
1298
1303
  type AccessExpression = PropertyAccessExpression | ElementAccessExpression;
1299
- interface PropertyAccessExpression extends MemberExpression, NamedDeclaration {
1304
+ interface PropertyAccessExpression extends MemberExpression, NamedDeclaration, JSDocContainer, FlowContainer {
1300
1305
  readonly kind: SyntaxKind.PropertyAccessExpression;
1301
1306
  readonly expression: LeftHandSideExpression;
1302
1307
  readonly questionDotToken?: QuestionDotToken;
@@ -1315,7 +1320,7 @@ declare namespace ts {
1315
1320
  readonly expression: EntityNameExpression;
1316
1321
  readonly name: Identifier;
1317
1322
  }
1318
- interface ElementAccessExpression extends MemberExpression {
1323
+ interface ElementAccessExpression extends MemberExpression, Declaration, JSDocContainer, FlowContainer {
1319
1324
  readonly kind: SyntaxKind.ElementAccessExpression;
1320
1325
  readonly expression: LeftHandSideExpression;
1321
1326
  readonly questionDotToken?: QuestionDotToken;
@@ -1385,7 +1390,7 @@ declare namespace ts {
1385
1390
  interface NonNullChain extends NonNullExpression {
1386
1391
  _optionalChainBrand: any;
1387
1392
  }
1388
- interface MetaProperty extends PrimaryExpression {
1393
+ interface MetaProperty extends PrimaryExpression, FlowContainer {
1389
1394
  readonly kind: SyntaxKind.MetaProperty;
1390
1395
  readonly keywordToken: SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword;
1391
1396
  readonly name: Identifier;
@@ -1478,7 +1483,7 @@ declare namespace ts {
1478
1483
  interface EmptyStatement extends Statement {
1479
1484
  readonly kind: SyntaxKind.EmptyStatement;
1480
1485
  }
1481
- interface DebuggerStatement extends Statement {
1486
+ interface DebuggerStatement extends Statement, FlowContainer {
1482
1487
  readonly kind: SyntaxKind.DebuggerStatement;
1483
1488
  }
1484
1489
  interface MissingDeclaration extends DeclarationStatement {
@@ -1486,20 +1491,20 @@ declare namespace ts {
1486
1491
  readonly name?: Identifier;
1487
1492
  }
1488
1493
  type BlockLike = SourceFile | Block | ModuleBlock | CaseOrDefaultClause;
1489
- interface Block extends Statement {
1494
+ interface Block extends Statement, LocalsContainer {
1490
1495
  readonly kind: SyntaxKind.Block;
1491
1496
  readonly statements: NodeArray<Statement>;
1492
1497
  }
1493
- interface VariableStatement extends Statement {
1498
+ interface VariableStatement extends Statement, FlowContainer {
1494
1499
  readonly kind: SyntaxKind.VariableStatement;
1495
1500
  readonly modifiers?: NodeArray<Modifier>;
1496
1501
  readonly declarationList: VariableDeclarationList;
1497
1502
  }
1498
- interface ExpressionStatement extends Statement {
1503
+ interface ExpressionStatement extends Statement, FlowContainer {
1499
1504
  readonly kind: SyntaxKind.ExpressionStatement;
1500
1505
  readonly expression: Expression;
1501
1506
  }
1502
- interface IfStatement extends Statement {
1507
+ interface IfStatement extends Statement, FlowContainer {
1503
1508
  readonly kind: SyntaxKind.IfStatement;
1504
1509
  readonly expression: Expression;
1505
1510
  readonly thenStatement: Statement;
@@ -1508,58 +1513,58 @@ declare namespace ts {
1508
1513
  interface IterationStatement extends Statement {
1509
1514
  readonly statement: Statement;
1510
1515
  }
1511
- interface DoStatement extends IterationStatement {
1516
+ interface DoStatement extends IterationStatement, FlowContainer {
1512
1517
  readonly kind: SyntaxKind.DoStatement;
1513
1518
  readonly expression: Expression;
1514
1519
  }
1515
- interface WhileStatement extends IterationStatement {
1520
+ interface WhileStatement extends IterationStatement, FlowContainer {
1516
1521
  readonly kind: SyntaxKind.WhileStatement;
1517
1522
  readonly expression: Expression;
1518
1523
  }
1519
1524
  type ForInitializer = VariableDeclarationList | Expression;
1520
- interface ForStatement extends IterationStatement {
1525
+ interface ForStatement extends IterationStatement, LocalsContainer, FlowContainer {
1521
1526
  readonly kind: SyntaxKind.ForStatement;
1522
1527
  readonly initializer?: ForInitializer;
1523
1528
  readonly condition?: Expression;
1524
1529
  readonly incrementor?: Expression;
1525
1530
  }
1526
1531
  type ForInOrOfStatement = ForInStatement | ForOfStatement;
1527
- interface ForInStatement extends IterationStatement {
1532
+ interface ForInStatement extends IterationStatement, LocalsContainer, FlowContainer {
1528
1533
  readonly kind: SyntaxKind.ForInStatement;
1529
1534
  readonly initializer: ForInitializer;
1530
1535
  readonly expression: Expression;
1531
1536
  }
1532
- interface ForOfStatement extends IterationStatement {
1537
+ interface ForOfStatement extends IterationStatement, LocalsContainer, FlowContainer {
1533
1538
  readonly kind: SyntaxKind.ForOfStatement;
1534
1539
  readonly awaitModifier?: AwaitKeyword;
1535
1540
  readonly initializer: ForInitializer;
1536
1541
  readonly expression: Expression;
1537
1542
  }
1538
- interface BreakStatement extends Statement {
1543
+ interface BreakStatement extends Statement, FlowContainer {
1539
1544
  readonly kind: SyntaxKind.BreakStatement;
1540
1545
  readonly label?: Identifier;
1541
1546
  }
1542
- interface ContinueStatement extends Statement {
1547
+ interface ContinueStatement extends Statement, FlowContainer {
1543
1548
  readonly kind: SyntaxKind.ContinueStatement;
1544
1549
  readonly label?: Identifier;
1545
1550
  }
1546
1551
  type BreakOrContinueStatement = BreakStatement | ContinueStatement;
1547
- interface ReturnStatement extends Statement {
1552
+ interface ReturnStatement extends Statement, FlowContainer {
1548
1553
  readonly kind: SyntaxKind.ReturnStatement;
1549
1554
  readonly expression?: Expression;
1550
1555
  }
1551
- interface WithStatement extends Statement {
1556
+ interface WithStatement extends Statement, FlowContainer {
1552
1557
  readonly kind: SyntaxKind.WithStatement;
1553
1558
  readonly expression: Expression;
1554
1559
  readonly statement: Statement;
1555
1560
  }
1556
- interface SwitchStatement extends Statement {
1561
+ interface SwitchStatement extends Statement, FlowContainer {
1557
1562
  readonly kind: SyntaxKind.SwitchStatement;
1558
1563
  readonly expression: Expression;
1559
1564
  readonly caseBlock: CaseBlock;
1560
1565
  possiblyExhaustive?: boolean;
1561
1566
  }
1562
- interface CaseBlock extends Node {
1567
+ interface CaseBlock extends Node, LocalsContainer {
1563
1568
  readonly kind: SyntaxKind.CaseBlock;
1564
1569
  readonly parent: SwitchStatement;
1565
1570
  readonly clauses: NodeArray<CaseOrDefaultClause>;
@@ -1576,22 +1581,22 @@ declare namespace ts {
1576
1581
  readonly statements: NodeArray<Statement>;
1577
1582
  }
1578
1583
  type CaseOrDefaultClause = CaseClause | DefaultClause;
1579
- interface LabeledStatement extends Statement {
1584
+ interface LabeledStatement extends Statement, FlowContainer {
1580
1585
  readonly kind: SyntaxKind.LabeledStatement;
1581
1586
  readonly label: Identifier;
1582
1587
  readonly statement: Statement;
1583
1588
  }
1584
- interface ThrowStatement extends Statement {
1589
+ interface ThrowStatement extends Statement, FlowContainer {
1585
1590
  readonly kind: SyntaxKind.ThrowStatement;
1586
1591
  readonly expression: Expression;
1587
1592
  }
1588
- interface TryStatement extends Statement {
1593
+ interface TryStatement extends Statement, FlowContainer {
1589
1594
  readonly kind: SyntaxKind.TryStatement;
1590
1595
  readonly tryBlock: Block;
1591
1596
  readonly catchClause?: CatchClause;
1592
1597
  readonly finallyBlock?: Block;
1593
1598
  }
1594
- interface CatchClause extends Node {
1599
+ interface CatchClause extends Node, LocalsContainer {
1595
1600
  readonly kind: SyntaxKind.CatchClause;
1596
1601
  readonly parent: TryStatement;
1597
1602
  readonly variableDeclaration?: VariableDeclaration;
@@ -1641,7 +1646,7 @@ declare namespace ts {
1641
1646
  readonly token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword;
1642
1647
  readonly types: NodeArray<ExpressionWithTypeArguments>;
1643
1648
  }
1644
- interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer {
1649
+ interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {
1645
1650
  readonly kind: SyntaxKind.TypeAliasDeclaration;
1646
1651
  readonly modifiers?: NodeArray<Modifier>;
1647
1652
  readonly name: Identifier;
@@ -1662,7 +1667,7 @@ declare namespace ts {
1662
1667
  }
1663
1668
  type ModuleName = Identifier | StringLiteral;
1664
1669
  type ModuleBody = NamespaceBody | JSDocNamespaceBody;
1665
- interface ModuleDeclaration extends DeclarationStatement, JSDocContainer {
1670
+ interface ModuleDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {
1666
1671
  readonly kind: SyntaxKind.ModuleDeclaration;
1667
1672
  readonly parent: ModuleBody | SourceFile;
1668
1673
  readonly modifiers?: NodeArray<Modifier>;
@@ -1878,7 +1883,7 @@ declare namespace ts {
1878
1883
  readonly kind: SyntaxKind.JSDocOptionalType;
1879
1884
  readonly type: TypeNode;
1880
1885
  }
1881
- interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase {
1886
+ interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase, LocalsContainer {
1882
1887
  readonly kind: SyntaxKind.JSDocFunctionType;
1883
1888
  }
1884
1889
  interface JSDocVariadicType extends JSDocType {
@@ -1964,7 +1969,7 @@ declare namespace ts {
1964
1969
  interface JSDocOverrideTag extends JSDocTag {
1965
1970
  readonly kind: SyntaxKind.JSDocOverrideTag;
1966
1971
  }
1967
- interface JSDocEnumTag extends JSDocTag, Declaration {
1972
+ interface JSDocEnumTag extends JSDocTag, Declaration, LocalsContainer {
1968
1973
  readonly kind: SyntaxKind.JSDocEnumTag;
1969
1974
  readonly parent: JSDoc;
1970
1975
  readonly typeExpression: JSDocTypeExpression;
@@ -1990,21 +1995,21 @@ declare namespace ts {
1990
1995
  readonly kind: SyntaxKind.JSDocTypeTag;
1991
1996
  readonly typeExpression: JSDocTypeExpression;
1992
1997
  }
1993
- interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
1998
+ interface JSDocTypedefTag extends JSDocTag, NamedDeclaration, LocalsContainer {
1994
1999
  readonly kind: SyntaxKind.JSDocTypedefTag;
1995
2000
  readonly parent: JSDoc;
1996
2001
  readonly fullName?: JSDocNamespaceDeclaration | Identifier;
1997
2002
  readonly name?: Identifier;
1998
2003
  readonly typeExpression?: JSDocTypeExpression | JSDocTypeLiteral;
1999
2004
  }
2000
- interface JSDocCallbackTag extends JSDocTag, NamedDeclaration {
2005
+ interface JSDocCallbackTag extends JSDocTag, NamedDeclaration, LocalsContainer {
2001
2006
  readonly kind: SyntaxKind.JSDocCallbackTag;
2002
2007
  readonly parent: JSDoc;
2003
2008
  readonly fullName?: JSDocNamespaceDeclaration | Identifier;
2004
2009
  readonly name?: Identifier;
2005
2010
  readonly typeExpression: JSDocSignature;
2006
2011
  }
2007
- interface JSDocSignature extends JSDocType, Declaration {
2012
+ interface JSDocSignature extends JSDocType, Declaration, JSDocContainer, LocalsContainer {
2008
2013
  readonly kind: SyntaxKind.JSDocSignature;
2009
2014
  readonly typeParameters?: readonly JSDocTemplateTag[];
2010
2015
  readonly parameters: readonly JSDocParameterTag[];
@@ -2024,7 +2029,7 @@ declare namespace ts {
2024
2029
  interface JSDocParameterTag extends JSDocPropertyLikeTag {
2025
2030
  readonly kind: SyntaxKind.JSDocParameterTag;
2026
2031
  }
2027
- interface JSDocTypeLiteral extends JSDocType {
2032
+ interface JSDocTypeLiteral extends JSDocType, Declaration {
2028
2033
  readonly kind: SyntaxKind.JSDocTypeLiteral;
2029
2034
  readonly jsDocPropertyTags?: readonly JSDocPropertyLikeTag[];
2030
2035
  /** If true, then this type literal represents an *array* of its type. */
@@ -2104,7 +2109,7 @@ declare namespace ts {
2104
2109
  getLineAndCharacterOfPosition(pos: number): LineAndCharacter;
2105
2110
  }
2106
2111
  type ResolutionMode = ModuleKind.ESNext | ModuleKind.CommonJS | undefined;
2107
- interface SourceFile extends Declaration {
2112
+ interface SourceFile extends Declaration, LocalsContainer {
2108
2113
  readonly kind: SyntaxKind.SourceFile;
2109
2114
  readonly statements: NodeArray<Statement>;
2110
2115
  readonly endOfFileToken: Token<SyntaxKind.EndOfFileToken>;
@@ -3530,11 +3535,12 @@ declare namespace ts {
3530
3535
  createToken(token: SyntaxKind.NullKeyword): NullLiteral;
3531
3536
  createToken(token: SyntaxKind.TrueKeyword): TrueLiteral;
3532
3537
  createToken(token: SyntaxKind.FalseKeyword): FalseLiteral;
3538
+ createToken(token: SyntaxKind.EndOfFileToken): EndOfFileToken;
3539
+ createToken(token: SyntaxKind.Unknown): Token<SyntaxKind.Unknown>;
3533
3540
  createToken<TKind extends PunctuationSyntaxKind>(token: TKind): PunctuationToken<TKind>;
3534
3541
  createToken<TKind extends KeywordTypeSyntaxKind>(token: TKind): KeywordTypeNode<TKind>;
3535
3542
  createToken<TKind extends ModifierSyntaxKind>(token: TKind): ModifierToken<TKind>;
3536
3543
  createToken<TKind extends KeywordSyntaxKind>(token: TKind): KeywordToken<TKind>;
3537
- createToken<TKind extends SyntaxKind.Unknown | SyntaxKind.EndOfFileToken>(token: TKind): Token<TKind>;
3538
3544
  createSuper(): SuperExpression;
3539
3545
  createThis(): ThisExpression;
3540
3546
  createNull(): NullLiteral;
@@ -5226,7 +5232,7 @@ declare namespace ts {
5226
5232
  /**
5227
5233
  * Note that the case of the config path has not yet been normalized, as no files have been imported into the project yet
5228
5234
  */
5229
- extendedConfigPath?: string | string[];
5235
+ extendedConfigPath?: string;
5230
5236
  }
5231
5237
  interface ExtendedConfigCacheEntry {
5232
5238
  extendedResult: TsConfigSourceFile;