Socket
Socket
Sign inDemoInstall

ast-types

Package Overview
Dependencies
0
Maintainers
1
Versions
172
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.12.4 to 0.13.0

11

def/core.js

@@ -160,4 +160,3 @@ "use strict";;

.field("init", or(def("Expression"), null), defaults["null"]);
// TODO Are all Expressions really Patterns?
def("Expression").bases("Node", "Pattern");
def("Expression").bases("Node");
def("ThisExpression").bases("Expression").build();

@@ -205,3 +204,3 @@ def("ArrayExpression")

.field("operator", AssignmentOperator)
.field("left", def("Pattern"))
.field("left", or(def("Pattern"), def("MemberExpression")))
.field("right", def("Expression"));

@@ -263,4 +262,3 @@ var UpdateOperator = or("++", "--");

def("Identifier")
// But aren't Expressions and Patterns already Nodes? TODO Report this.
.bases("Node", "Expression", "Pattern")
.bases("Expression", "Pattern")
.build("name")

@@ -270,4 +268,3 @@ .field("name", String)

def("Literal")
// But aren't Expressions already Nodes? TODO Report this.
.bases("Node", "Expression")
.bases("Expression")
.build("value")

@@ -274,0 +271,0 @@ .field("value", or(String, Boolean, null, Number, RegExp))

@@ -57,3 +57,3 @@ "use strict";;

def("TSAsExpression")
.bases("Expression")
.bases("Expression", "Pattern")
.build("expression")

@@ -64,3 +64,3 @@ .field("expression", def("Expression"))

def("TSNonNullExpression")
.bases("Expression")
.bases("Expression", "Pattern")
.build("expression")

@@ -249,3 +249,3 @@ .field("expression", def("Expression"));

def("TSTypeAssertion")
.bases("Expression")
.bases("Expression", "Pattern")
.build("typeAnnotation", "expression")

@@ -252,0 +252,0 @@ .field("typeAnnotation", def("TSType"))

@@ -23,8 +23,4 @@ import { Def, Plugin } from "./types";

};
namedTypes: {
[name: string]: import("./lib/types").AnyType;
};
builders: {
[name: string]: import("./lib/types").Builder;
};
namedTypes: import("./gen/namedTypes").NamedTypes;
builders: import("./gen/builders").builders;
defineMethod: (name: any, func?: Function | undefined) => Function;

@@ -46,3 +42,3 @@ getFieldNames: (object: any) => string[];

use: <T>(plugin: Plugin<T>) => T;
visit: (node: import("./lib/types").ASTNode, methods?: any) => any;
visit: <M = {}>(node: import("./lib/types").ASTNode, methods?: import("./main").Visitor<M> | undefined) => any;
};

@@ -17,3 +17,3 @@ "use strict";;

var PathVisitor = fork.use(path_visitor_1.default);
var exports = {
return {
Type: types.Type,

@@ -38,3 +38,2 @@ builtInTypes: types.builtInTypes,

};
return exports;
}

@@ -41,0 +40,0 @@ exports.default = default_1;

@@ -1,262 +0,262 @@

import * as N from "./nodes";
export declare type PrintableKind = N.File | N.Program | N.Identifier | N.BlockStatement | N.EmptyStatement | N.ExpressionStatement | N.IfStatement | N.LabeledStatement | N.BreakStatement | N.ContinueStatement | N.WithStatement | N.SwitchStatement | N.SwitchCase | N.ReturnStatement | N.ThrowStatement | N.TryStatement | N.CatchClause | N.WhileStatement | N.DoWhileStatement | N.ForStatement | N.VariableDeclaration | N.ForInStatement | N.DebuggerStatement | N.FunctionDeclaration | N.FunctionExpression | N.VariableDeclarator | N.ThisExpression | N.ArrayExpression | N.ObjectExpression | N.Property | N.Literal | N.SequenceExpression | N.UnaryExpression | N.BinaryExpression | N.AssignmentExpression | N.UpdateExpression | N.LogicalExpression | N.ConditionalExpression | N.NewExpression | N.CallExpression | N.MemberExpression | N.RestElement | N.TypeAnnotation | N.TSTypeAnnotation | N.SpreadElementPattern | N.ArrowFunctionExpression | N.ForOfStatement | N.YieldExpression | N.GeneratorExpression | N.ComprehensionBlock | N.ComprehensionExpression | N.ObjectProperty | N.PropertyPattern | N.ObjectPattern | N.ArrayPattern | N.MethodDefinition | N.SpreadElement | N.AssignmentPattern | N.ClassPropertyDefinition | N.ClassProperty | N.ClassBody | N.ClassDeclaration | N.ClassExpression | N.ImportSpecifier | N.ImportNamespaceSpecifier | N.ImportDefaultSpecifier | N.ImportDeclaration | N.TaggedTemplateExpression | N.TemplateLiteral | N.TemplateElement | N.SpreadProperty | N.SpreadPropertyPattern | N.AwaitExpression | N.JSXAttribute | N.JSXIdentifier | N.JSXNamespacedName | N.JSXExpressionContainer | N.JSXMemberExpression | N.JSXSpreadAttribute | N.JSXElement | N.JSXOpeningElement | N.JSXClosingElement | N.JSXFragment | N.JSXText | N.JSXOpeningFragment | N.JSXClosingFragment | N.JSXEmptyExpression | N.JSXSpreadChild | N.TypeParameterDeclaration | N.TSTypeParameterDeclaration | N.TypeParameterInstantiation | N.TSTypeParameterInstantiation | N.ClassImplements | N.TSExpressionWithTypeArguments | N.AnyTypeAnnotation | N.EmptyTypeAnnotation | N.MixedTypeAnnotation | N.VoidTypeAnnotation | N.NumberTypeAnnotation | N.NumberLiteralTypeAnnotation | N.NumericLiteralTypeAnnotation | N.StringTypeAnnotation | N.StringLiteralTypeAnnotation | N.BooleanTypeAnnotation | N.BooleanLiteralTypeAnnotation | N.NullableTypeAnnotation | N.NullLiteralTypeAnnotation | N.NullTypeAnnotation | N.ThisTypeAnnotation | N.ExistsTypeAnnotation | N.ExistentialTypeParam | N.FunctionTypeAnnotation | N.FunctionTypeParam | N.ArrayTypeAnnotation | N.ObjectTypeAnnotation | N.ObjectTypeProperty | N.ObjectTypeSpreadProperty | N.ObjectTypeIndexer | N.ObjectTypeCallProperty | N.ObjectTypeInternalSlot | N.Variance | N.QualifiedTypeIdentifier | N.GenericTypeAnnotation | N.MemberTypeAnnotation | N.UnionTypeAnnotation | N.IntersectionTypeAnnotation | N.TypeofTypeAnnotation | N.TypeParameter | N.InterfaceTypeAnnotation | N.InterfaceExtends | N.InterfaceDeclaration | N.DeclareInterface | N.TypeAlias | N.OpaqueType | N.DeclareTypeAlias | N.DeclareOpaqueType | N.TypeCastExpression | N.TupleTypeAnnotation | N.DeclareVariable | N.DeclareFunction | N.DeclareClass | N.DeclareModule | N.DeclareModuleExports | N.DeclareExportDeclaration | N.ExportSpecifier | N.ExportBatchSpecifier | N.DeclareExportAllDeclaration | N.InferredPredicate | N.DeclaredPredicate | N.ExportDeclaration | N.Block | N.Line | N.Noop | N.DoExpression | N.Super | N.BindExpression | N.Decorator | N.MetaProperty | N.ParenthesizedExpression | N.ExportDefaultDeclaration | N.ExportNamedDeclaration | N.ExportNamespaceSpecifier | N.ExportDefaultSpecifier | N.ExportAllDeclaration | N.CommentBlock | N.CommentLine | N.Directive | N.DirectiveLiteral | N.InterpreterDirective | N.StringLiteral | N.NumericLiteral | N.BigIntLiteral | N.NullLiteral | N.BooleanLiteral | N.RegExpLiteral | N.ObjectMethod | N.ClassPrivateProperty | N.ClassMethod | N.ClassPrivateMethod | N.PrivateName | N.RestProperty | N.ForAwaitStatement | N.Import | N.TSQualifiedName | N.TSTypeReference | N.TSAsExpression | N.TSNonNullExpression | N.TSAnyKeyword | N.TSBigIntKeyword | N.TSBooleanKeyword | N.TSNeverKeyword | N.TSNullKeyword | N.TSNumberKeyword | N.TSObjectKeyword | N.TSStringKeyword | N.TSSymbolKeyword | N.TSUndefinedKeyword | N.TSUnknownKeyword | N.TSVoidKeyword | N.TSThisType | N.TSArrayType | N.TSLiteralType | N.TSUnionType | N.TSIntersectionType | N.TSConditionalType | N.TSInferType | N.TSTypeParameter | N.TSParenthesizedType | N.TSFunctionType | N.TSConstructorType | N.TSDeclareFunction | N.TSDeclareMethod | N.TSMappedType | N.TSTupleType | N.TSRestType | N.TSOptionalType | N.TSIndexedAccessType | N.TSTypeOperator | N.TSIndexSignature | N.TSPropertySignature | N.TSMethodSignature | N.TSTypePredicate | N.TSCallSignatureDeclaration | N.TSConstructSignatureDeclaration | N.TSEnumMember | N.TSTypeQuery | N.TSImportType | N.TSTypeLiteral | N.TSTypeAssertion | N.TSEnumDeclaration | N.TSTypeAliasDeclaration | N.TSModuleBlock | N.TSModuleDeclaration | N.TSImportEqualsDeclaration | N.TSExternalModuleReference | N.TSExportAssignment | N.TSNamespaceExportDeclaration | N.TSInterfaceBody | N.TSInterfaceDeclaration | N.TSParameterProperty | N.OptionalMemberExpression | N.OptionalCallExpression;
export declare type SourceLocationKind = N.SourceLocation;
export declare type NodeKind = N.File | N.Program | N.Identifier | N.BlockStatement | N.EmptyStatement | N.ExpressionStatement | N.IfStatement | N.LabeledStatement | N.BreakStatement | N.ContinueStatement | N.WithStatement | N.SwitchStatement | N.SwitchCase | N.ReturnStatement | N.ThrowStatement | N.TryStatement | N.CatchClause | N.WhileStatement | N.DoWhileStatement | N.ForStatement | N.VariableDeclaration | N.ForInStatement | N.DebuggerStatement | N.FunctionDeclaration | N.FunctionExpression | N.VariableDeclarator | N.ThisExpression | N.ArrayExpression | N.ObjectExpression | N.Property | N.Literal | N.SequenceExpression | N.UnaryExpression | N.BinaryExpression | N.AssignmentExpression | N.UpdateExpression | N.LogicalExpression | N.ConditionalExpression | N.NewExpression | N.CallExpression | N.MemberExpression | N.RestElement | N.TypeAnnotation | N.TSTypeAnnotation | N.SpreadElementPattern | N.ArrowFunctionExpression | N.ForOfStatement | N.YieldExpression | N.GeneratorExpression | N.ComprehensionBlock | N.ComprehensionExpression | N.ObjectProperty | N.PropertyPattern | N.ObjectPattern | N.ArrayPattern | N.MethodDefinition | N.SpreadElement | N.AssignmentPattern | N.ClassPropertyDefinition | N.ClassProperty | N.ClassBody | N.ClassDeclaration | N.ClassExpression | N.ImportSpecifier | N.ImportNamespaceSpecifier | N.ImportDefaultSpecifier | N.ImportDeclaration | N.TaggedTemplateExpression | N.TemplateLiteral | N.TemplateElement | N.SpreadProperty | N.SpreadPropertyPattern | N.AwaitExpression | N.JSXAttribute | N.JSXIdentifier | N.JSXNamespacedName | N.JSXExpressionContainer | N.JSXMemberExpression | N.JSXSpreadAttribute | N.JSXElement | N.JSXOpeningElement | N.JSXClosingElement | N.JSXFragment | N.JSXText | N.JSXOpeningFragment | N.JSXClosingFragment | N.JSXEmptyExpression | N.JSXSpreadChild | N.TypeParameterDeclaration | N.TSTypeParameterDeclaration | N.TypeParameterInstantiation | N.TSTypeParameterInstantiation | N.ClassImplements | N.TSExpressionWithTypeArguments | N.AnyTypeAnnotation | N.EmptyTypeAnnotation | N.MixedTypeAnnotation | N.VoidTypeAnnotation | N.NumberTypeAnnotation | N.NumberLiteralTypeAnnotation | N.NumericLiteralTypeAnnotation | N.StringTypeAnnotation | N.StringLiteralTypeAnnotation | N.BooleanTypeAnnotation | N.BooleanLiteralTypeAnnotation | N.NullableTypeAnnotation | N.NullLiteralTypeAnnotation | N.NullTypeAnnotation | N.ThisTypeAnnotation | N.ExistsTypeAnnotation | N.ExistentialTypeParam | N.FunctionTypeAnnotation | N.FunctionTypeParam | N.ArrayTypeAnnotation | N.ObjectTypeAnnotation | N.ObjectTypeProperty | N.ObjectTypeSpreadProperty | N.ObjectTypeIndexer | N.ObjectTypeCallProperty | N.ObjectTypeInternalSlot | N.Variance | N.QualifiedTypeIdentifier | N.GenericTypeAnnotation | N.MemberTypeAnnotation | N.UnionTypeAnnotation | N.IntersectionTypeAnnotation | N.TypeofTypeAnnotation | N.TypeParameter | N.InterfaceTypeAnnotation | N.InterfaceExtends | N.InterfaceDeclaration | N.DeclareInterface | N.TypeAlias | N.OpaqueType | N.DeclareTypeAlias | N.DeclareOpaqueType | N.TypeCastExpression | N.TupleTypeAnnotation | N.DeclareVariable | N.DeclareFunction | N.DeclareClass | N.DeclareModule | N.DeclareModuleExports | N.DeclareExportDeclaration | N.ExportSpecifier | N.ExportBatchSpecifier | N.DeclareExportAllDeclaration | N.InferredPredicate | N.DeclaredPredicate | N.ExportDeclaration | N.Noop | N.DoExpression | N.Super | N.BindExpression | N.Decorator | N.MetaProperty | N.ParenthesizedExpression | N.ExportDefaultDeclaration | N.ExportNamedDeclaration | N.ExportNamespaceSpecifier | N.ExportDefaultSpecifier | N.ExportAllDeclaration | N.Directive | N.DirectiveLiteral | N.InterpreterDirective | N.StringLiteral | N.NumericLiteral | N.BigIntLiteral | N.NullLiteral | N.BooleanLiteral | N.RegExpLiteral | N.ObjectMethod | N.ClassPrivateProperty | N.ClassMethod | N.ClassPrivateMethod | N.PrivateName | N.RestProperty | N.ForAwaitStatement | N.Import | N.TSQualifiedName | N.TSTypeReference | N.TSAsExpression | N.TSNonNullExpression | N.TSAnyKeyword | N.TSBigIntKeyword | N.TSBooleanKeyword | N.TSNeverKeyword | N.TSNullKeyword | N.TSNumberKeyword | N.TSObjectKeyword | N.TSStringKeyword | N.TSSymbolKeyword | N.TSUndefinedKeyword | N.TSUnknownKeyword | N.TSVoidKeyword | N.TSThisType | N.TSArrayType | N.TSLiteralType | N.TSUnionType | N.TSIntersectionType | N.TSConditionalType | N.TSInferType | N.TSTypeParameter | N.TSParenthesizedType | N.TSFunctionType | N.TSConstructorType | N.TSDeclareFunction | N.TSDeclareMethod | N.TSMappedType | N.TSTupleType | N.TSRestType | N.TSOptionalType | N.TSIndexedAccessType | N.TSTypeOperator | N.TSIndexSignature | N.TSPropertySignature | N.TSMethodSignature | N.TSTypePredicate | N.TSCallSignatureDeclaration | N.TSConstructSignatureDeclaration | N.TSEnumMember | N.TSTypeQuery | N.TSImportType | N.TSTypeLiteral | N.TSTypeAssertion | N.TSEnumDeclaration | N.TSTypeAliasDeclaration | N.TSModuleBlock | N.TSModuleDeclaration | N.TSImportEqualsDeclaration | N.TSExternalModuleReference | N.TSExportAssignment | N.TSNamespaceExportDeclaration | N.TSInterfaceBody | N.TSInterfaceDeclaration | N.TSParameterProperty | N.OptionalMemberExpression | N.OptionalCallExpression;
export declare type CommentKind = N.Block | N.Line | N.CommentBlock | N.CommentLine;
export declare type PositionKind = N.Position;
export declare type FileKind = N.File;
export declare type ProgramKind = N.Program;
export declare type StatementKind = N.BlockStatement | N.EmptyStatement | N.ExpressionStatement | N.IfStatement | N.LabeledStatement | N.BreakStatement | N.ContinueStatement | N.WithStatement | N.SwitchStatement | N.ReturnStatement | N.ThrowStatement | N.TryStatement | N.WhileStatement | N.DoWhileStatement | N.ForStatement | N.VariableDeclaration | N.ForInStatement | N.DebuggerStatement | N.FunctionDeclaration | N.ForOfStatement | N.MethodDefinition | N.ClassPropertyDefinition | N.ClassProperty | N.ClassBody | N.ClassDeclaration | N.ImportDeclaration | N.TSTypeParameterDeclaration | N.InterfaceDeclaration | N.DeclareInterface | N.TypeAlias | N.OpaqueType | N.DeclareTypeAlias | N.DeclareOpaqueType | N.DeclareVariable | N.DeclareFunction | N.DeclareClass | N.DeclareModule | N.DeclareModuleExports | N.DeclareExportDeclaration | N.DeclareExportAllDeclaration | N.ExportDeclaration | N.Noop | N.ExportDefaultDeclaration | N.ExportNamedDeclaration | N.ExportAllDeclaration | N.ClassPrivateProperty | N.ClassMethod | N.ClassPrivateMethod | N.ForAwaitStatement | N.TSDeclareFunction | N.TSDeclareMethod | N.TSIndexSignature | N.TSPropertySignature | N.TSMethodSignature | N.TSCallSignatureDeclaration | N.TSConstructSignatureDeclaration | N.TSEnumDeclaration | N.TSTypeAliasDeclaration | N.TSModuleDeclaration | N.TSImportEqualsDeclaration | N.TSExternalModuleReference | N.TSExportAssignment | N.TSNamespaceExportDeclaration | N.TSInterfaceDeclaration;
export declare type FunctionKind = N.FunctionDeclaration | N.FunctionExpression | N.ArrowFunctionExpression | N.ObjectMethod | N.ClassMethod | N.ClassPrivateMethod;
export declare type PatternKind = N.Identifier | N.FunctionExpression | N.ThisExpression | N.ArrayExpression | N.ObjectExpression | N.Literal | N.SequenceExpression | N.UnaryExpression | N.BinaryExpression | N.AssignmentExpression | N.UpdateExpression | N.LogicalExpression | N.ConditionalExpression | N.NewExpression | N.CallExpression | N.MemberExpression | N.RestElement | N.SpreadElementPattern | N.ArrowFunctionExpression | N.YieldExpression | N.GeneratorExpression | N.ComprehensionExpression | N.PropertyPattern | N.ObjectPattern | N.ArrayPattern | N.AssignmentPattern | N.ClassExpression | N.TaggedTemplateExpression | N.TemplateLiteral | N.SpreadPropertyPattern | N.AwaitExpression | N.JSXIdentifier | N.JSXExpressionContainer | N.JSXMemberExpression | N.JSXElement | N.JSXFragment | N.JSXText | N.JSXEmptyExpression | N.JSXSpreadChild | N.TypeCastExpression | N.DoExpression | N.Super | N.BindExpression | N.MetaProperty | N.ParenthesizedExpression | N.DirectiveLiteral | N.StringLiteral | N.NumericLiteral | N.BigIntLiteral | N.NullLiteral | N.BooleanLiteral | N.RegExpLiteral | N.PrivateName | N.Import | N.TSAsExpression | N.TSNonNullExpression | N.TSTypeParameter | N.TSTypeAssertion | N.TSParameterProperty | N.OptionalMemberExpression | N.OptionalCallExpression;
export declare type ExpressionKind = N.Identifier | N.FunctionExpression | N.ThisExpression | N.ArrayExpression | N.ObjectExpression | N.Literal | N.SequenceExpression | N.UnaryExpression | N.BinaryExpression | N.AssignmentExpression | N.UpdateExpression | N.LogicalExpression | N.ConditionalExpression | N.NewExpression | N.CallExpression | N.MemberExpression | N.ArrowFunctionExpression | N.YieldExpression | N.GeneratorExpression | N.ComprehensionExpression | N.ClassExpression | N.TaggedTemplateExpression | N.TemplateLiteral | N.AwaitExpression | N.JSXIdentifier | N.JSXExpressionContainer | N.JSXMemberExpression | N.JSXElement | N.JSXFragment | N.JSXText | N.JSXEmptyExpression | N.JSXSpreadChild | N.TypeCastExpression | N.DoExpression | N.Super | N.BindExpression | N.MetaProperty | N.ParenthesizedExpression | N.DirectiveLiteral | N.StringLiteral | N.NumericLiteral | N.BigIntLiteral | N.NullLiteral | N.BooleanLiteral | N.RegExpLiteral | N.PrivateName | N.Import | N.TSAsExpression | N.TSNonNullExpression | N.TSTypeParameter | N.TSTypeAssertion | N.OptionalMemberExpression | N.OptionalCallExpression;
export declare type IdentifierKind = N.Identifier | N.JSXIdentifier | N.TSTypeParameter;
export declare type BlockStatementKind = N.BlockStatement;
export declare type EmptyStatementKind = N.EmptyStatement;
export declare type ExpressionStatementKind = N.ExpressionStatement;
export declare type IfStatementKind = N.IfStatement;
export declare type LabeledStatementKind = N.LabeledStatement;
export declare type BreakStatementKind = N.BreakStatement;
export declare type ContinueStatementKind = N.ContinueStatement;
export declare type WithStatementKind = N.WithStatement;
export declare type SwitchStatementKind = N.SwitchStatement;
export declare type SwitchCaseKind = N.SwitchCase;
export declare type ReturnStatementKind = N.ReturnStatement;
export declare type ThrowStatementKind = N.ThrowStatement;
export declare type TryStatementKind = N.TryStatement;
export declare type CatchClauseKind = N.CatchClause;
export declare type WhileStatementKind = N.WhileStatement;
export declare type DoWhileStatementKind = N.DoWhileStatement;
export declare type ForStatementKind = N.ForStatement;
export declare type DeclarationKind = N.VariableDeclaration | N.FunctionDeclaration | N.MethodDefinition | N.ClassPropertyDefinition | N.ClassProperty | N.ClassBody | N.ClassDeclaration | N.ImportDeclaration | N.TSTypeParameterDeclaration | N.InterfaceDeclaration | N.DeclareInterface | N.TypeAlias | N.OpaqueType | N.DeclareTypeAlias | N.DeclareOpaqueType | N.DeclareClass | N.DeclareExportDeclaration | N.DeclareExportAllDeclaration | N.ExportDeclaration | N.ExportDefaultDeclaration | N.ExportNamedDeclaration | N.ExportAllDeclaration | N.ClassPrivateProperty | N.ClassMethod | N.ClassPrivateMethod | N.TSDeclareFunction | N.TSDeclareMethod | N.TSIndexSignature | N.TSPropertySignature | N.TSMethodSignature | N.TSCallSignatureDeclaration | N.TSConstructSignatureDeclaration | N.TSEnumDeclaration | N.TSTypeAliasDeclaration | N.TSModuleDeclaration | N.TSImportEqualsDeclaration | N.TSExternalModuleReference | N.TSNamespaceExportDeclaration | N.TSInterfaceDeclaration;
export declare type VariableDeclarationKind = N.VariableDeclaration;
export declare type ForInStatementKind = N.ForInStatement;
export declare type DebuggerStatementKind = N.DebuggerStatement;
export declare type FunctionDeclarationKind = N.FunctionDeclaration;
export declare type FunctionExpressionKind = N.FunctionExpression;
export declare type VariableDeclaratorKind = N.VariableDeclarator;
export declare type ThisExpressionKind = N.ThisExpression;
export declare type ArrayExpressionKind = N.ArrayExpression;
export declare type ObjectExpressionKind = N.ObjectExpression;
export declare type PropertyKind = N.Property;
export declare type LiteralKind = N.Literal | N.JSXText | N.StringLiteral | N.NumericLiteral | N.BigIntLiteral | N.NullLiteral | N.BooleanLiteral | N.RegExpLiteral;
export declare type SequenceExpressionKind = N.SequenceExpression;
export declare type UnaryExpressionKind = N.UnaryExpression;
export declare type BinaryExpressionKind = N.BinaryExpression;
export declare type AssignmentExpressionKind = N.AssignmentExpression;
export declare type UpdateExpressionKind = N.UpdateExpression;
export declare type LogicalExpressionKind = N.LogicalExpression;
export declare type ConditionalExpressionKind = N.ConditionalExpression;
export declare type NewExpressionKind = N.NewExpression;
export declare type CallExpressionKind = N.CallExpression | N.OptionalCallExpression;
export declare type MemberExpressionKind = N.MemberExpression | N.JSXMemberExpression | N.OptionalMemberExpression;
export declare type RestElementKind = N.RestElement;
export declare type TypeAnnotationKind = N.TypeAnnotation;
export declare type TSTypeAnnotationKind = N.TSTypeAnnotation | N.TSTypePredicate;
export declare type SpreadElementPatternKind = N.SpreadElementPattern;
export declare type ArrowFunctionExpressionKind = N.ArrowFunctionExpression;
export declare type ForOfStatementKind = N.ForOfStatement;
export declare type YieldExpressionKind = N.YieldExpression;
export declare type GeneratorExpressionKind = N.GeneratorExpression;
export declare type ComprehensionBlockKind = N.ComprehensionBlock;
export declare type ComprehensionExpressionKind = N.ComprehensionExpression;
export declare type ObjectPropertyKind = N.ObjectProperty;
export declare type PropertyPatternKind = N.PropertyPattern;
export declare type ObjectPatternKind = N.ObjectPattern;
export declare type ArrayPatternKind = N.ArrayPattern;
export declare type MethodDefinitionKind = N.MethodDefinition;
export declare type SpreadElementKind = N.SpreadElement;
export declare type AssignmentPatternKind = N.AssignmentPattern;
export declare type ClassPropertyDefinitionKind = N.ClassPropertyDefinition;
export declare type ClassPropertyKind = N.ClassProperty | N.ClassPrivateProperty;
export declare type ClassBodyKind = N.ClassBody;
export declare type ClassDeclarationKind = N.ClassDeclaration;
export declare type ClassExpressionKind = N.ClassExpression;
export declare type SpecifierKind = N.ImportSpecifier | N.ImportNamespaceSpecifier | N.ImportDefaultSpecifier | N.ExportSpecifier | N.ExportBatchSpecifier | N.ExportNamespaceSpecifier | N.ExportDefaultSpecifier;
export declare type ModuleSpecifierKind = N.ImportSpecifier | N.ImportNamespaceSpecifier | N.ImportDefaultSpecifier | N.ExportSpecifier;
export declare type ImportSpecifierKind = N.ImportSpecifier;
export declare type ImportNamespaceSpecifierKind = N.ImportNamespaceSpecifier;
export declare type ImportDefaultSpecifierKind = N.ImportDefaultSpecifier;
export declare type ImportDeclarationKind = N.ImportDeclaration;
export declare type TaggedTemplateExpressionKind = N.TaggedTemplateExpression;
export declare type TemplateLiteralKind = N.TemplateLiteral;
export declare type TemplateElementKind = N.TemplateElement;
export declare type SpreadPropertyKind = N.SpreadProperty;
export declare type SpreadPropertyPatternKind = N.SpreadPropertyPattern;
export declare type AwaitExpressionKind = N.AwaitExpression;
export declare type JSXAttributeKind = N.JSXAttribute;
export declare type JSXIdentifierKind = N.JSXIdentifier;
export declare type JSXNamespacedNameKind = N.JSXNamespacedName;
export declare type JSXExpressionContainerKind = N.JSXExpressionContainer;
export declare type JSXMemberExpressionKind = N.JSXMemberExpression;
export declare type JSXSpreadAttributeKind = N.JSXSpreadAttribute;
export declare type JSXElementKind = N.JSXElement;
export declare type JSXOpeningElementKind = N.JSXOpeningElement;
export declare type JSXClosingElementKind = N.JSXClosingElement;
export declare type JSXFragmentKind = N.JSXFragment;
export declare type JSXTextKind = N.JSXText;
export declare type JSXOpeningFragmentKind = N.JSXOpeningFragment;
export declare type JSXClosingFragmentKind = N.JSXClosingFragment;
export declare type JSXEmptyExpressionKind = N.JSXEmptyExpression;
export declare type JSXSpreadChildKind = N.JSXSpreadChild;
export declare type TypeParameterDeclarationKind = N.TypeParameterDeclaration;
export declare type TSTypeParameterDeclarationKind = N.TSTypeParameterDeclaration;
export declare type TypeParameterInstantiationKind = N.TypeParameterInstantiation;
export declare type TSTypeParameterInstantiationKind = N.TSTypeParameterInstantiation;
export declare type ClassImplementsKind = N.ClassImplements;
export declare type TSTypeKind = N.TSExpressionWithTypeArguments | N.TSTypeReference | N.TSAnyKeyword | N.TSBigIntKeyword | N.TSBooleanKeyword | N.TSNeverKeyword | N.TSNullKeyword | N.TSNumberKeyword | N.TSObjectKeyword | N.TSStringKeyword | N.TSSymbolKeyword | N.TSUndefinedKeyword | N.TSUnknownKeyword | N.TSVoidKeyword | N.TSThisType | N.TSArrayType | N.TSLiteralType | N.TSUnionType | N.TSIntersectionType | N.TSConditionalType | N.TSInferType | N.TSParenthesizedType | N.TSFunctionType | N.TSConstructorType | N.TSMappedType | N.TSTupleType | N.TSRestType | N.TSOptionalType | N.TSIndexedAccessType | N.TSTypeOperator | N.TSTypeQuery | N.TSImportType | N.TSTypeLiteral;
export declare type TSHasOptionalTypeParameterInstantiationKind = N.TSExpressionWithTypeArguments | N.TSTypeReference | N.TSImportType;
export declare type TSExpressionWithTypeArgumentsKind = N.TSExpressionWithTypeArguments;
export declare type FlowKind = N.AnyTypeAnnotation | N.EmptyTypeAnnotation | N.MixedTypeAnnotation | N.VoidTypeAnnotation | N.NumberTypeAnnotation | N.NumberLiteralTypeAnnotation | N.NumericLiteralTypeAnnotation | N.StringTypeAnnotation | N.StringLiteralTypeAnnotation | N.BooleanTypeAnnotation | N.BooleanLiteralTypeAnnotation | N.NullableTypeAnnotation | N.NullLiteralTypeAnnotation | N.NullTypeAnnotation | N.ThisTypeAnnotation | N.ExistsTypeAnnotation | N.ExistentialTypeParam | N.FunctionTypeAnnotation | N.ArrayTypeAnnotation | N.ObjectTypeAnnotation | N.GenericTypeAnnotation | N.MemberTypeAnnotation | N.UnionTypeAnnotation | N.IntersectionTypeAnnotation | N.TypeofTypeAnnotation | N.TypeParameter | N.InterfaceTypeAnnotation | N.TupleTypeAnnotation | N.InferredPredicate | N.DeclaredPredicate;
export declare type FlowTypeKind = N.AnyTypeAnnotation | N.EmptyTypeAnnotation | N.MixedTypeAnnotation | N.VoidTypeAnnotation | N.NumberTypeAnnotation | N.NumberLiteralTypeAnnotation | N.NumericLiteralTypeAnnotation | N.StringTypeAnnotation | N.StringLiteralTypeAnnotation | N.BooleanTypeAnnotation | N.BooleanLiteralTypeAnnotation | N.NullableTypeAnnotation | N.NullLiteralTypeAnnotation | N.NullTypeAnnotation | N.ThisTypeAnnotation | N.ExistsTypeAnnotation | N.ExistentialTypeParam | N.FunctionTypeAnnotation | N.ArrayTypeAnnotation | N.ObjectTypeAnnotation | N.GenericTypeAnnotation | N.MemberTypeAnnotation | N.UnionTypeAnnotation | N.IntersectionTypeAnnotation | N.TypeofTypeAnnotation | N.TypeParameter | N.InterfaceTypeAnnotation | N.TupleTypeAnnotation;
export declare type AnyTypeAnnotationKind = N.AnyTypeAnnotation;
export declare type EmptyTypeAnnotationKind = N.EmptyTypeAnnotation;
export declare type MixedTypeAnnotationKind = N.MixedTypeAnnotation;
export declare type VoidTypeAnnotationKind = N.VoidTypeAnnotation;
export declare type NumberTypeAnnotationKind = N.NumberTypeAnnotation;
export declare type NumberLiteralTypeAnnotationKind = N.NumberLiteralTypeAnnotation;
export declare type NumericLiteralTypeAnnotationKind = N.NumericLiteralTypeAnnotation;
export declare type StringTypeAnnotationKind = N.StringTypeAnnotation;
export declare type StringLiteralTypeAnnotationKind = N.StringLiteralTypeAnnotation;
export declare type BooleanTypeAnnotationKind = N.BooleanTypeAnnotation;
export declare type BooleanLiteralTypeAnnotationKind = N.BooleanLiteralTypeAnnotation;
export declare type NullableTypeAnnotationKind = N.NullableTypeAnnotation;
export declare type NullLiteralTypeAnnotationKind = N.NullLiteralTypeAnnotation;
export declare type NullTypeAnnotationKind = N.NullTypeAnnotation;
export declare type ThisTypeAnnotationKind = N.ThisTypeAnnotation;
export declare type ExistsTypeAnnotationKind = N.ExistsTypeAnnotation;
export declare type ExistentialTypeParamKind = N.ExistentialTypeParam;
export declare type FunctionTypeAnnotationKind = N.FunctionTypeAnnotation;
export declare type FunctionTypeParamKind = N.FunctionTypeParam;
export declare type ArrayTypeAnnotationKind = N.ArrayTypeAnnotation;
export declare type ObjectTypeAnnotationKind = N.ObjectTypeAnnotation;
export declare type ObjectTypePropertyKind = N.ObjectTypeProperty;
export declare type ObjectTypeSpreadPropertyKind = N.ObjectTypeSpreadProperty;
export declare type ObjectTypeIndexerKind = N.ObjectTypeIndexer;
export declare type ObjectTypeCallPropertyKind = N.ObjectTypeCallProperty;
export declare type ObjectTypeInternalSlotKind = N.ObjectTypeInternalSlot;
export declare type VarianceKind = N.Variance;
export declare type QualifiedTypeIdentifierKind = N.QualifiedTypeIdentifier;
export declare type GenericTypeAnnotationKind = N.GenericTypeAnnotation;
export declare type MemberTypeAnnotationKind = N.MemberTypeAnnotation;
export declare type UnionTypeAnnotationKind = N.UnionTypeAnnotation;
export declare type IntersectionTypeAnnotationKind = N.IntersectionTypeAnnotation;
export declare type TypeofTypeAnnotationKind = N.TypeofTypeAnnotation;
export declare type TypeParameterKind = N.TypeParameter;
export declare type InterfaceTypeAnnotationKind = N.InterfaceTypeAnnotation;
export declare type InterfaceExtendsKind = N.InterfaceExtends;
export declare type InterfaceDeclarationKind = N.InterfaceDeclaration | N.DeclareInterface | N.DeclareClass;
export declare type DeclareInterfaceKind = N.DeclareInterface;
export declare type TypeAliasKind = N.TypeAlias | N.DeclareTypeAlias | N.DeclareOpaqueType;
export declare type OpaqueTypeKind = N.OpaqueType;
export declare type DeclareTypeAliasKind = N.DeclareTypeAlias;
export declare type DeclareOpaqueTypeKind = N.DeclareOpaqueType;
export declare type TypeCastExpressionKind = N.TypeCastExpression;
export declare type TupleTypeAnnotationKind = N.TupleTypeAnnotation;
export declare type DeclareVariableKind = N.DeclareVariable;
export declare type DeclareFunctionKind = N.DeclareFunction;
export declare type DeclareClassKind = N.DeclareClass;
export declare type DeclareModuleKind = N.DeclareModule;
export declare type DeclareModuleExportsKind = N.DeclareModuleExports;
export declare type DeclareExportDeclarationKind = N.DeclareExportDeclaration;
export declare type ExportSpecifierKind = N.ExportSpecifier;
export declare type ExportBatchSpecifierKind = N.ExportBatchSpecifier;
export declare type DeclareExportAllDeclarationKind = N.DeclareExportAllDeclaration;
export declare type FlowPredicateKind = N.InferredPredicate | N.DeclaredPredicate;
export declare type InferredPredicateKind = N.InferredPredicate;
export declare type DeclaredPredicateKind = N.DeclaredPredicate;
export declare type ExportDeclarationKind = N.ExportDeclaration;
export declare type BlockKind = N.Block;
export declare type LineKind = N.Line;
export declare type NoopKind = N.Noop;
export declare type DoExpressionKind = N.DoExpression;
export declare type SuperKind = N.Super;
export declare type BindExpressionKind = N.BindExpression;
export declare type DecoratorKind = N.Decorator;
export declare type MetaPropertyKind = N.MetaProperty;
export declare type ParenthesizedExpressionKind = N.ParenthesizedExpression;
export declare type ExportDefaultDeclarationKind = N.ExportDefaultDeclaration;
export declare type ExportNamedDeclarationKind = N.ExportNamedDeclaration;
export declare type ExportNamespaceSpecifierKind = N.ExportNamespaceSpecifier;
export declare type ExportDefaultSpecifierKind = N.ExportDefaultSpecifier;
export declare type ExportAllDeclarationKind = N.ExportAllDeclaration;
export declare type CommentBlockKind = N.CommentBlock;
export declare type CommentLineKind = N.CommentLine;
export declare type DirectiveKind = N.Directive;
export declare type DirectiveLiteralKind = N.DirectiveLiteral;
export declare type InterpreterDirectiveKind = N.InterpreterDirective;
export declare type StringLiteralKind = N.StringLiteral;
export declare type NumericLiteralKind = N.NumericLiteral;
export declare type BigIntLiteralKind = N.BigIntLiteral;
export declare type NullLiteralKind = N.NullLiteral;
export declare type BooleanLiteralKind = N.BooleanLiteral;
export declare type RegExpLiteralKind = N.RegExpLiteral;
export declare type ObjectMethodKind = N.ObjectMethod;
export declare type ClassPrivatePropertyKind = N.ClassPrivateProperty;
export declare type ClassMethodKind = N.ClassMethod;
export declare type ClassPrivateMethodKind = N.ClassPrivateMethod;
export declare type PrivateNameKind = N.PrivateName;
export declare type RestPropertyKind = N.RestProperty;
export declare type ForAwaitStatementKind = N.ForAwaitStatement;
export declare type ImportKind = N.Import;
export declare type TSQualifiedNameKind = N.TSQualifiedName;
export declare type TSTypeReferenceKind = N.TSTypeReference;
export declare type TSHasOptionalTypeParametersKind = N.TSFunctionType | N.TSConstructorType | N.TSDeclareFunction | N.TSDeclareMethod | N.TSMethodSignature | N.TSCallSignatureDeclaration | N.TSConstructSignatureDeclaration | N.TSTypeAliasDeclaration | N.TSInterfaceDeclaration;
export declare type TSHasOptionalTypeAnnotationKind = N.TSFunctionType | N.TSConstructorType | N.TSIndexSignature | N.TSPropertySignature | N.TSMethodSignature | N.TSCallSignatureDeclaration | N.TSConstructSignatureDeclaration;
export declare type TSAsExpressionKind = N.TSAsExpression;
export declare type TSNonNullExpressionKind = N.TSNonNullExpression;
export declare type TSAnyKeywordKind = N.TSAnyKeyword;
export declare type TSBigIntKeywordKind = N.TSBigIntKeyword;
export declare type TSBooleanKeywordKind = N.TSBooleanKeyword;
export declare type TSNeverKeywordKind = N.TSNeverKeyword;
export declare type TSNullKeywordKind = N.TSNullKeyword;
export declare type TSNumberKeywordKind = N.TSNumberKeyword;
export declare type TSObjectKeywordKind = N.TSObjectKeyword;
export declare type TSStringKeywordKind = N.TSStringKeyword;
export declare type TSSymbolKeywordKind = N.TSSymbolKeyword;
export declare type TSUndefinedKeywordKind = N.TSUndefinedKeyword;
export declare type TSUnknownKeywordKind = N.TSUnknownKeyword;
export declare type TSVoidKeywordKind = N.TSVoidKeyword;
export declare type TSThisTypeKind = N.TSThisType;
export declare type TSArrayTypeKind = N.TSArrayType;
export declare type TSLiteralTypeKind = N.TSLiteralType;
export declare type TSUnionTypeKind = N.TSUnionType;
export declare type TSIntersectionTypeKind = N.TSIntersectionType;
export declare type TSConditionalTypeKind = N.TSConditionalType;
export declare type TSInferTypeKind = N.TSInferType;
export declare type TSTypeParameterKind = N.TSTypeParameter;
export declare type TSParenthesizedTypeKind = N.TSParenthesizedType;
export declare type TSFunctionTypeKind = N.TSFunctionType;
export declare type TSConstructorTypeKind = N.TSConstructorType;
export declare type TSDeclareFunctionKind = N.TSDeclareFunction;
export declare type TSDeclareMethodKind = N.TSDeclareMethod;
export declare type TSMappedTypeKind = N.TSMappedType;
export declare type TSTupleTypeKind = N.TSTupleType;
export declare type TSRestTypeKind = N.TSRestType;
export declare type TSOptionalTypeKind = N.TSOptionalType;
export declare type TSIndexedAccessTypeKind = N.TSIndexedAccessType;
export declare type TSTypeOperatorKind = N.TSTypeOperator;
export declare type TSIndexSignatureKind = N.TSIndexSignature;
export declare type TSPropertySignatureKind = N.TSPropertySignature;
export declare type TSMethodSignatureKind = N.TSMethodSignature;
export declare type TSTypePredicateKind = N.TSTypePredicate;
export declare type TSCallSignatureDeclarationKind = N.TSCallSignatureDeclaration;
export declare type TSConstructSignatureDeclarationKind = N.TSConstructSignatureDeclaration;
export declare type TSEnumMemberKind = N.TSEnumMember;
export declare type TSTypeQueryKind = N.TSTypeQuery;
export declare type TSImportTypeKind = N.TSImportType;
export declare type TSTypeLiteralKind = N.TSTypeLiteral;
export declare type TSTypeAssertionKind = N.TSTypeAssertion;
export declare type TSEnumDeclarationKind = N.TSEnumDeclaration;
export declare type TSTypeAliasDeclarationKind = N.TSTypeAliasDeclaration;
export declare type TSModuleBlockKind = N.TSModuleBlock;
export declare type TSModuleDeclarationKind = N.TSModuleDeclaration;
export declare type TSImportEqualsDeclarationKind = N.TSImportEqualsDeclaration;
export declare type TSExternalModuleReferenceKind = N.TSExternalModuleReference;
export declare type TSExportAssignmentKind = N.TSExportAssignment;
export declare type TSNamespaceExportDeclarationKind = N.TSNamespaceExportDeclaration;
export declare type TSInterfaceBodyKind = N.TSInterfaceBody;
export declare type TSInterfaceDeclarationKind = N.TSInterfaceDeclaration;
export declare type TSParameterPropertyKind = N.TSParameterProperty;
export declare type OptionalMemberExpressionKind = N.OptionalMemberExpression;
export declare type OptionalCallExpressionKind = N.OptionalCallExpression;
import { namedTypes } from "./namedTypes";
export declare type PrintableKind = namedTypes.File | namedTypes.Program | namedTypes.Identifier | namedTypes.BlockStatement | namedTypes.EmptyStatement | namedTypes.ExpressionStatement | namedTypes.IfStatement | namedTypes.LabeledStatement | namedTypes.BreakStatement | namedTypes.ContinueStatement | namedTypes.WithStatement | namedTypes.SwitchStatement | namedTypes.SwitchCase | namedTypes.ReturnStatement | namedTypes.ThrowStatement | namedTypes.TryStatement | namedTypes.CatchClause | namedTypes.WhileStatement | namedTypes.DoWhileStatement | namedTypes.ForStatement | namedTypes.VariableDeclaration | namedTypes.ForInStatement | namedTypes.DebuggerStatement | namedTypes.FunctionDeclaration | namedTypes.FunctionExpression | namedTypes.VariableDeclarator | namedTypes.ThisExpression | namedTypes.ArrayExpression | namedTypes.ObjectExpression | namedTypes.Property | namedTypes.Literal | namedTypes.SequenceExpression | namedTypes.UnaryExpression | namedTypes.BinaryExpression | namedTypes.AssignmentExpression | namedTypes.MemberExpression | namedTypes.UpdateExpression | namedTypes.LogicalExpression | namedTypes.ConditionalExpression | namedTypes.NewExpression | namedTypes.CallExpression | namedTypes.RestElement | namedTypes.TypeAnnotation | namedTypes.TSTypeAnnotation | namedTypes.SpreadElementPattern | namedTypes.ArrowFunctionExpression | namedTypes.ForOfStatement | namedTypes.YieldExpression | namedTypes.GeneratorExpression | namedTypes.ComprehensionBlock | namedTypes.ComprehensionExpression | namedTypes.ObjectProperty | namedTypes.PropertyPattern | namedTypes.ObjectPattern | namedTypes.ArrayPattern | namedTypes.MethodDefinition | namedTypes.SpreadElement | namedTypes.AssignmentPattern | namedTypes.ClassPropertyDefinition | namedTypes.ClassProperty | namedTypes.ClassBody | namedTypes.ClassDeclaration | namedTypes.ClassExpression | namedTypes.ImportSpecifier | namedTypes.ImportNamespaceSpecifier | namedTypes.ImportDefaultSpecifier | namedTypes.ImportDeclaration | namedTypes.TaggedTemplateExpression | namedTypes.TemplateLiteral | namedTypes.TemplateElement | namedTypes.SpreadProperty | namedTypes.SpreadPropertyPattern | namedTypes.AwaitExpression | namedTypes.JSXAttribute | namedTypes.JSXIdentifier | namedTypes.JSXNamespacedName | namedTypes.JSXExpressionContainer | namedTypes.JSXMemberExpression | namedTypes.JSXSpreadAttribute | namedTypes.JSXElement | namedTypes.JSXOpeningElement | namedTypes.JSXClosingElement | namedTypes.JSXFragment | namedTypes.JSXText | namedTypes.JSXOpeningFragment | namedTypes.JSXClosingFragment | namedTypes.JSXEmptyExpression | namedTypes.JSXSpreadChild | namedTypes.TypeParameterDeclaration | namedTypes.TSTypeParameterDeclaration | namedTypes.TypeParameterInstantiation | namedTypes.TSTypeParameterInstantiation | namedTypes.ClassImplements | namedTypes.TSExpressionWithTypeArguments | namedTypes.AnyTypeAnnotation | namedTypes.EmptyTypeAnnotation | namedTypes.MixedTypeAnnotation | namedTypes.VoidTypeAnnotation | namedTypes.NumberTypeAnnotation | namedTypes.NumberLiteralTypeAnnotation | namedTypes.NumericLiteralTypeAnnotation | namedTypes.StringTypeAnnotation | namedTypes.StringLiteralTypeAnnotation | namedTypes.BooleanTypeAnnotation | namedTypes.BooleanLiteralTypeAnnotation | namedTypes.NullableTypeAnnotation | namedTypes.NullLiteralTypeAnnotation | namedTypes.NullTypeAnnotation | namedTypes.ThisTypeAnnotation | namedTypes.ExistsTypeAnnotation | namedTypes.ExistentialTypeParam | namedTypes.FunctionTypeAnnotation | namedTypes.FunctionTypeParam | namedTypes.ArrayTypeAnnotation | namedTypes.ObjectTypeAnnotation | namedTypes.ObjectTypeProperty | namedTypes.ObjectTypeSpreadProperty | namedTypes.ObjectTypeIndexer | namedTypes.ObjectTypeCallProperty | namedTypes.ObjectTypeInternalSlot | namedTypes.Variance | namedTypes.QualifiedTypeIdentifier | namedTypes.GenericTypeAnnotation | namedTypes.MemberTypeAnnotation | namedTypes.UnionTypeAnnotation | namedTypes.IntersectionTypeAnnotation | namedTypes.TypeofTypeAnnotation | namedTypes.TypeParameter | namedTypes.InterfaceTypeAnnotation | namedTypes.InterfaceExtends | namedTypes.InterfaceDeclaration | namedTypes.DeclareInterface | namedTypes.TypeAlias | namedTypes.OpaqueType | namedTypes.DeclareTypeAlias | namedTypes.DeclareOpaqueType | namedTypes.TypeCastExpression | namedTypes.TupleTypeAnnotation | namedTypes.DeclareVariable | namedTypes.DeclareFunction | namedTypes.DeclareClass | namedTypes.DeclareModule | namedTypes.DeclareModuleExports | namedTypes.DeclareExportDeclaration | namedTypes.ExportSpecifier | namedTypes.ExportBatchSpecifier | namedTypes.DeclareExportAllDeclaration | namedTypes.InferredPredicate | namedTypes.DeclaredPredicate | namedTypes.ExportDeclaration | namedTypes.Block | namedTypes.Line | namedTypes.Noop | namedTypes.DoExpression | namedTypes.Super | namedTypes.BindExpression | namedTypes.Decorator | namedTypes.MetaProperty | namedTypes.ParenthesizedExpression | namedTypes.ExportDefaultDeclaration | namedTypes.ExportNamedDeclaration | namedTypes.ExportNamespaceSpecifier | namedTypes.ExportDefaultSpecifier | namedTypes.ExportAllDeclaration | namedTypes.CommentBlock | namedTypes.CommentLine | namedTypes.Directive | namedTypes.DirectiveLiteral | namedTypes.InterpreterDirective | namedTypes.StringLiteral | namedTypes.NumericLiteral | namedTypes.BigIntLiteral | namedTypes.NullLiteral | namedTypes.BooleanLiteral | namedTypes.RegExpLiteral | namedTypes.ObjectMethod | namedTypes.ClassPrivateProperty | namedTypes.ClassMethod | namedTypes.ClassPrivateMethod | namedTypes.PrivateName | namedTypes.RestProperty | namedTypes.ForAwaitStatement | namedTypes.Import | namedTypes.TSQualifiedName | namedTypes.TSTypeReference | namedTypes.TSAsExpression | namedTypes.TSNonNullExpression | namedTypes.TSAnyKeyword | namedTypes.TSBigIntKeyword | namedTypes.TSBooleanKeyword | namedTypes.TSNeverKeyword | namedTypes.TSNullKeyword | namedTypes.TSNumberKeyword | namedTypes.TSObjectKeyword | namedTypes.TSStringKeyword | namedTypes.TSSymbolKeyword | namedTypes.TSUndefinedKeyword | namedTypes.TSUnknownKeyword | namedTypes.TSVoidKeyword | namedTypes.TSThisType | namedTypes.TSArrayType | namedTypes.TSLiteralType | namedTypes.TSUnionType | namedTypes.TSIntersectionType | namedTypes.TSConditionalType | namedTypes.TSInferType | namedTypes.TSTypeParameter | namedTypes.TSParenthesizedType | namedTypes.TSFunctionType | namedTypes.TSConstructorType | namedTypes.TSDeclareFunction | namedTypes.TSDeclareMethod | namedTypes.TSMappedType | namedTypes.TSTupleType | namedTypes.TSRestType | namedTypes.TSOptionalType | namedTypes.TSIndexedAccessType | namedTypes.TSTypeOperator | namedTypes.TSIndexSignature | namedTypes.TSPropertySignature | namedTypes.TSMethodSignature | namedTypes.TSTypePredicate | namedTypes.TSCallSignatureDeclaration | namedTypes.TSConstructSignatureDeclaration | namedTypes.TSEnumMember | namedTypes.TSTypeQuery | namedTypes.TSImportType | namedTypes.TSTypeLiteral | namedTypes.TSTypeAssertion | namedTypes.TSEnumDeclaration | namedTypes.TSTypeAliasDeclaration | namedTypes.TSModuleBlock | namedTypes.TSModuleDeclaration | namedTypes.TSImportEqualsDeclaration | namedTypes.TSExternalModuleReference | namedTypes.TSExportAssignment | namedTypes.TSNamespaceExportDeclaration | namedTypes.TSInterfaceBody | namedTypes.TSInterfaceDeclaration | namedTypes.TSParameterProperty | namedTypes.OptionalMemberExpression | namedTypes.OptionalCallExpression;
export declare type SourceLocationKind = namedTypes.SourceLocation;
export declare type NodeKind = namedTypes.File | namedTypes.Program | namedTypes.Identifier | namedTypes.BlockStatement | namedTypes.EmptyStatement | namedTypes.ExpressionStatement | namedTypes.IfStatement | namedTypes.LabeledStatement | namedTypes.BreakStatement | namedTypes.ContinueStatement | namedTypes.WithStatement | namedTypes.SwitchStatement | namedTypes.SwitchCase | namedTypes.ReturnStatement | namedTypes.ThrowStatement | namedTypes.TryStatement | namedTypes.CatchClause | namedTypes.WhileStatement | namedTypes.DoWhileStatement | namedTypes.ForStatement | namedTypes.VariableDeclaration | namedTypes.ForInStatement | namedTypes.DebuggerStatement | namedTypes.FunctionDeclaration | namedTypes.FunctionExpression | namedTypes.VariableDeclarator | namedTypes.ThisExpression | namedTypes.ArrayExpression | namedTypes.ObjectExpression | namedTypes.Property | namedTypes.Literal | namedTypes.SequenceExpression | namedTypes.UnaryExpression | namedTypes.BinaryExpression | namedTypes.AssignmentExpression | namedTypes.MemberExpression | namedTypes.UpdateExpression | namedTypes.LogicalExpression | namedTypes.ConditionalExpression | namedTypes.NewExpression | namedTypes.CallExpression | namedTypes.RestElement | namedTypes.TypeAnnotation | namedTypes.TSTypeAnnotation | namedTypes.SpreadElementPattern | namedTypes.ArrowFunctionExpression | namedTypes.ForOfStatement | namedTypes.YieldExpression | namedTypes.GeneratorExpression | namedTypes.ComprehensionBlock | namedTypes.ComprehensionExpression | namedTypes.ObjectProperty | namedTypes.PropertyPattern | namedTypes.ObjectPattern | namedTypes.ArrayPattern | namedTypes.MethodDefinition | namedTypes.SpreadElement | namedTypes.AssignmentPattern | namedTypes.ClassPropertyDefinition | namedTypes.ClassProperty | namedTypes.ClassBody | namedTypes.ClassDeclaration | namedTypes.ClassExpression | namedTypes.ImportSpecifier | namedTypes.ImportNamespaceSpecifier | namedTypes.ImportDefaultSpecifier | namedTypes.ImportDeclaration | namedTypes.TaggedTemplateExpression | namedTypes.TemplateLiteral | namedTypes.TemplateElement | namedTypes.SpreadProperty | namedTypes.SpreadPropertyPattern | namedTypes.AwaitExpression | namedTypes.JSXAttribute | namedTypes.JSXIdentifier | namedTypes.JSXNamespacedName | namedTypes.JSXExpressionContainer | namedTypes.JSXMemberExpression | namedTypes.JSXSpreadAttribute | namedTypes.JSXElement | namedTypes.JSXOpeningElement | namedTypes.JSXClosingElement | namedTypes.JSXFragment | namedTypes.JSXText | namedTypes.JSXOpeningFragment | namedTypes.JSXClosingFragment | namedTypes.JSXEmptyExpression | namedTypes.JSXSpreadChild | namedTypes.TypeParameterDeclaration | namedTypes.TSTypeParameterDeclaration | namedTypes.TypeParameterInstantiation | namedTypes.TSTypeParameterInstantiation | namedTypes.ClassImplements | namedTypes.TSExpressionWithTypeArguments | namedTypes.AnyTypeAnnotation | namedTypes.EmptyTypeAnnotation | namedTypes.MixedTypeAnnotation | namedTypes.VoidTypeAnnotation | namedTypes.NumberTypeAnnotation | namedTypes.NumberLiteralTypeAnnotation | namedTypes.NumericLiteralTypeAnnotation | namedTypes.StringTypeAnnotation | namedTypes.StringLiteralTypeAnnotation | namedTypes.BooleanTypeAnnotation | namedTypes.BooleanLiteralTypeAnnotation | namedTypes.NullableTypeAnnotation | namedTypes.NullLiteralTypeAnnotation | namedTypes.NullTypeAnnotation | namedTypes.ThisTypeAnnotation | namedTypes.ExistsTypeAnnotation | namedTypes.ExistentialTypeParam | namedTypes.FunctionTypeAnnotation | namedTypes.FunctionTypeParam | namedTypes.ArrayTypeAnnotation | namedTypes.ObjectTypeAnnotation | namedTypes.ObjectTypeProperty | namedTypes.ObjectTypeSpreadProperty | namedTypes.ObjectTypeIndexer | namedTypes.ObjectTypeCallProperty | namedTypes.ObjectTypeInternalSlot | namedTypes.Variance | namedTypes.QualifiedTypeIdentifier | namedTypes.GenericTypeAnnotation | namedTypes.MemberTypeAnnotation | namedTypes.UnionTypeAnnotation | namedTypes.IntersectionTypeAnnotation | namedTypes.TypeofTypeAnnotation | namedTypes.TypeParameter | namedTypes.InterfaceTypeAnnotation | namedTypes.InterfaceExtends | namedTypes.InterfaceDeclaration | namedTypes.DeclareInterface | namedTypes.TypeAlias | namedTypes.OpaqueType | namedTypes.DeclareTypeAlias | namedTypes.DeclareOpaqueType | namedTypes.TypeCastExpression | namedTypes.TupleTypeAnnotation | namedTypes.DeclareVariable | namedTypes.DeclareFunction | namedTypes.DeclareClass | namedTypes.DeclareModule | namedTypes.DeclareModuleExports | namedTypes.DeclareExportDeclaration | namedTypes.ExportSpecifier | namedTypes.ExportBatchSpecifier | namedTypes.DeclareExportAllDeclaration | namedTypes.InferredPredicate | namedTypes.DeclaredPredicate | namedTypes.ExportDeclaration | namedTypes.Noop | namedTypes.DoExpression | namedTypes.Super | namedTypes.BindExpression | namedTypes.Decorator | namedTypes.MetaProperty | namedTypes.ParenthesizedExpression | namedTypes.ExportDefaultDeclaration | namedTypes.ExportNamedDeclaration | namedTypes.ExportNamespaceSpecifier | namedTypes.ExportDefaultSpecifier | namedTypes.ExportAllDeclaration | namedTypes.Directive | namedTypes.DirectiveLiteral | namedTypes.InterpreterDirective | namedTypes.StringLiteral | namedTypes.NumericLiteral | namedTypes.BigIntLiteral | namedTypes.NullLiteral | namedTypes.BooleanLiteral | namedTypes.RegExpLiteral | namedTypes.ObjectMethod | namedTypes.ClassPrivateProperty | namedTypes.ClassMethod | namedTypes.ClassPrivateMethod | namedTypes.PrivateName | namedTypes.RestProperty | namedTypes.ForAwaitStatement | namedTypes.Import | namedTypes.TSQualifiedName | namedTypes.TSTypeReference | namedTypes.TSAsExpression | namedTypes.TSNonNullExpression | namedTypes.TSAnyKeyword | namedTypes.TSBigIntKeyword | namedTypes.TSBooleanKeyword | namedTypes.TSNeverKeyword | namedTypes.TSNullKeyword | namedTypes.TSNumberKeyword | namedTypes.TSObjectKeyword | namedTypes.TSStringKeyword | namedTypes.TSSymbolKeyword | namedTypes.TSUndefinedKeyword | namedTypes.TSUnknownKeyword | namedTypes.TSVoidKeyword | namedTypes.TSThisType | namedTypes.TSArrayType | namedTypes.TSLiteralType | namedTypes.TSUnionType | namedTypes.TSIntersectionType | namedTypes.TSConditionalType | namedTypes.TSInferType | namedTypes.TSTypeParameter | namedTypes.TSParenthesizedType | namedTypes.TSFunctionType | namedTypes.TSConstructorType | namedTypes.TSDeclareFunction | namedTypes.TSDeclareMethod | namedTypes.TSMappedType | namedTypes.TSTupleType | namedTypes.TSRestType | namedTypes.TSOptionalType | namedTypes.TSIndexedAccessType | namedTypes.TSTypeOperator | namedTypes.TSIndexSignature | namedTypes.TSPropertySignature | namedTypes.TSMethodSignature | namedTypes.TSTypePredicate | namedTypes.TSCallSignatureDeclaration | namedTypes.TSConstructSignatureDeclaration | namedTypes.TSEnumMember | namedTypes.TSTypeQuery | namedTypes.TSImportType | namedTypes.TSTypeLiteral | namedTypes.TSTypeAssertion | namedTypes.TSEnumDeclaration | namedTypes.TSTypeAliasDeclaration | namedTypes.TSModuleBlock | namedTypes.TSModuleDeclaration | namedTypes.TSImportEqualsDeclaration | namedTypes.TSExternalModuleReference | namedTypes.TSExportAssignment | namedTypes.TSNamespaceExportDeclaration | namedTypes.TSInterfaceBody | namedTypes.TSInterfaceDeclaration | namedTypes.TSParameterProperty | namedTypes.OptionalMemberExpression | namedTypes.OptionalCallExpression;
export declare type CommentKind = namedTypes.Block | namedTypes.Line | namedTypes.CommentBlock | namedTypes.CommentLine;
export declare type PositionKind = namedTypes.Position;
export declare type FileKind = namedTypes.File;
export declare type ProgramKind = namedTypes.Program;
export declare type StatementKind = namedTypes.BlockStatement | namedTypes.EmptyStatement | namedTypes.ExpressionStatement | namedTypes.IfStatement | namedTypes.LabeledStatement | namedTypes.BreakStatement | namedTypes.ContinueStatement | namedTypes.WithStatement | namedTypes.SwitchStatement | namedTypes.ReturnStatement | namedTypes.ThrowStatement | namedTypes.TryStatement | namedTypes.WhileStatement | namedTypes.DoWhileStatement | namedTypes.ForStatement | namedTypes.VariableDeclaration | namedTypes.ForInStatement | namedTypes.DebuggerStatement | namedTypes.FunctionDeclaration | namedTypes.ForOfStatement | namedTypes.MethodDefinition | namedTypes.ClassPropertyDefinition | namedTypes.ClassProperty | namedTypes.ClassBody | namedTypes.ClassDeclaration | namedTypes.ImportDeclaration | namedTypes.TSTypeParameterDeclaration | namedTypes.InterfaceDeclaration | namedTypes.DeclareInterface | namedTypes.TypeAlias | namedTypes.OpaqueType | namedTypes.DeclareTypeAlias | namedTypes.DeclareOpaqueType | namedTypes.DeclareVariable | namedTypes.DeclareFunction | namedTypes.DeclareClass | namedTypes.DeclareModule | namedTypes.DeclareModuleExports | namedTypes.DeclareExportDeclaration | namedTypes.DeclareExportAllDeclaration | namedTypes.ExportDeclaration | namedTypes.Noop | namedTypes.ExportDefaultDeclaration | namedTypes.ExportNamedDeclaration | namedTypes.ExportAllDeclaration | namedTypes.ClassPrivateProperty | namedTypes.ClassMethod | namedTypes.ClassPrivateMethod | namedTypes.ForAwaitStatement | namedTypes.TSDeclareFunction | namedTypes.TSDeclareMethod | namedTypes.TSIndexSignature | namedTypes.TSPropertySignature | namedTypes.TSMethodSignature | namedTypes.TSCallSignatureDeclaration | namedTypes.TSConstructSignatureDeclaration | namedTypes.TSEnumDeclaration | namedTypes.TSTypeAliasDeclaration | namedTypes.TSModuleDeclaration | namedTypes.TSImportEqualsDeclaration | namedTypes.TSExternalModuleReference | namedTypes.TSExportAssignment | namedTypes.TSNamespaceExportDeclaration | namedTypes.TSInterfaceDeclaration;
export declare type FunctionKind = namedTypes.FunctionDeclaration | namedTypes.FunctionExpression | namedTypes.ArrowFunctionExpression | namedTypes.ObjectMethod | namedTypes.ClassMethod | namedTypes.ClassPrivateMethod;
export declare type ExpressionKind = namedTypes.Identifier | namedTypes.FunctionExpression | namedTypes.ThisExpression | namedTypes.ArrayExpression | namedTypes.ObjectExpression | namedTypes.Literal | namedTypes.SequenceExpression | namedTypes.UnaryExpression | namedTypes.BinaryExpression | namedTypes.AssignmentExpression | namedTypes.MemberExpression | namedTypes.UpdateExpression | namedTypes.LogicalExpression | namedTypes.ConditionalExpression | namedTypes.NewExpression | namedTypes.CallExpression | namedTypes.ArrowFunctionExpression | namedTypes.YieldExpression | namedTypes.GeneratorExpression | namedTypes.ComprehensionExpression | namedTypes.ClassExpression | namedTypes.TaggedTemplateExpression | namedTypes.TemplateLiteral | namedTypes.AwaitExpression | namedTypes.JSXIdentifier | namedTypes.JSXExpressionContainer | namedTypes.JSXMemberExpression | namedTypes.JSXElement | namedTypes.JSXFragment | namedTypes.JSXText | namedTypes.JSXEmptyExpression | namedTypes.JSXSpreadChild | namedTypes.TypeCastExpression | namedTypes.DoExpression | namedTypes.Super | namedTypes.BindExpression | namedTypes.MetaProperty | namedTypes.ParenthesizedExpression | namedTypes.DirectiveLiteral | namedTypes.StringLiteral | namedTypes.NumericLiteral | namedTypes.BigIntLiteral | namedTypes.NullLiteral | namedTypes.BooleanLiteral | namedTypes.RegExpLiteral | namedTypes.PrivateName | namedTypes.Import | namedTypes.TSAsExpression | namedTypes.TSNonNullExpression | namedTypes.TSTypeParameter | namedTypes.TSTypeAssertion | namedTypes.OptionalMemberExpression | namedTypes.OptionalCallExpression;
export declare type PatternKind = namedTypes.Identifier | namedTypes.RestElement | namedTypes.SpreadElementPattern | namedTypes.PropertyPattern | namedTypes.ObjectPattern | namedTypes.ArrayPattern | namedTypes.AssignmentPattern | namedTypes.SpreadPropertyPattern | namedTypes.JSXIdentifier | namedTypes.PrivateName | namedTypes.TSAsExpression | namedTypes.TSNonNullExpression | namedTypes.TSTypeParameter | namedTypes.TSTypeAssertion | namedTypes.TSParameterProperty;
export declare type IdentifierKind = namedTypes.Identifier | namedTypes.JSXIdentifier | namedTypes.TSTypeParameter;
export declare type BlockStatementKind = namedTypes.BlockStatement;
export declare type EmptyStatementKind = namedTypes.EmptyStatement;
export declare type ExpressionStatementKind = namedTypes.ExpressionStatement;
export declare type IfStatementKind = namedTypes.IfStatement;
export declare type LabeledStatementKind = namedTypes.LabeledStatement;
export declare type BreakStatementKind = namedTypes.BreakStatement;
export declare type ContinueStatementKind = namedTypes.ContinueStatement;
export declare type WithStatementKind = namedTypes.WithStatement;
export declare type SwitchStatementKind = namedTypes.SwitchStatement;
export declare type SwitchCaseKind = namedTypes.SwitchCase;
export declare type ReturnStatementKind = namedTypes.ReturnStatement;
export declare type ThrowStatementKind = namedTypes.ThrowStatement;
export declare type TryStatementKind = namedTypes.TryStatement;
export declare type CatchClauseKind = namedTypes.CatchClause;
export declare type WhileStatementKind = namedTypes.WhileStatement;
export declare type DoWhileStatementKind = namedTypes.DoWhileStatement;
export declare type ForStatementKind = namedTypes.ForStatement;
export declare type DeclarationKind = namedTypes.VariableDeclaration | namedTypes.FunctionDeclaration | namedTypes.MethodDefinition | namedTypes.ClassPropertyDefinition | namedTypes.ClassProperty | namedTypes.ClassBody | namedTypes.ClassDeclaration | namedTypes.ImportDeclaration | namedTypes.TSTypeParameterDeclaration | namedTypes.InterfaceDeclaration | namedTypes.DeclareInterface | namedTypes.TypeAlias | namedTypes.OpaqueType | namedTypes.DeclareTypeAlias | namedTypes.DeclareOpaqueType | namedTypes.DeclareClass | namedTypes.DeclareExportDeclaration | namedTypes.DeclareExportAllDeclaration | namedTypes.ExportDeclaration | namedTypes.ExportDefaultDeclaration | namedTypes.ExportNamedDeclaration | namedTypes.ExportAllDeclaration | namedTypes.ClassPrivateProperty | namedTypes.ClassMethod | namedTypes.ClassPrivateMethod | namedTypes.TSDeclareFunction | namedTypes.TSDeclareMethod | namedTypes.TSIndexSignature | namedTypes.TSPropertySignature | namedTypes.TSMethodSignature | namedTypes.TSCallSignatureDeclaration | namedTypes.TSConstructSignatureDeclaration | namedTypes.TSEnumDeclaration | namedTypes.TSTypeAliasDeclaration | namedTypes.TSModuleDeclaration | namedTypes.TSImportEqualsDeclaration | namedTypes.TSExternalModuleReference | namedTypes.TSNamespaceExportDeclaration | namedTypes.TSInterfaceDeclaration;
export declare type VariableDeclarationKind = namedTypes.VariableDeclaration;
export declare type ForInStatementKind = namedTypes.ForInStatement;
export declare type DebuggerStatementKind = namedTypes.DebuggerStatement;
export declare type FunctionDeclarationKind = namedTypes.FunctionDeclaration;
export declare type FunctionExpressionKind = namedTypes.FunctionExpression;
export declare type VariableDeclaratorKind = namedTypes.VariableDeclarator;
export declare type ThisExpressionKind = namedTypes.ThisExpression;
export declare type ArrayExpressionKind = namedTypes.ArrayExpression;
export declare type ObjectExpressionKind = namedTypes.ObjectExpression;
export declare type PropertyKind = namedTypes.Property;
export declare type LiteralKind = namedTypes.Literal | namedTypes.JSXText | namedTypes.StringLiteral | namedTypes.NumericLiteral | namedTypes.BigIntLiteral | namedTypes.NullLiteral | namedTypes.BooleanLiteral | namedTypes.RegExpLiteral;
export declare type SequenceExpressionKind = namedTypes.SequenceExpression;
export declare type UnaryExpressionKind = namedTypes.UnaryExpression;
export declare type BinaryExpressionKind = namedTypes.BinaryExpression;
export declare type AssignmentExpressionKind = namedTypes.AssignmentExpression;
export declare type MemberExpressionKind = namedTypes.MemberExpression | namedTypes.JSXMemberExpression | namedTypes.OptionalMemberExpression;
export declare type UpdateExpressionKind = namedTypes.UpdateExpression;
export declare type LogicalExpressionKind = namedTypes.LogicalExpression;
export declare type ConditionalExpressionKind = namedTypes.ConditionalExpression;
export declare type NewExpressionKind = namedTypes.NewExpression;
export declare type CallExpressionKind = namedTypes.CallExpression | namedTypes.OptionalCallExpression;
export declare type RestElementKind = namedTypes.RestElement;
export declare type TypeAnnotationKind = namedTypes.TypeAnnotation;
export declare type TSTypeAnnotationKind = namedTypes.TSTypeAnnotation | namedTypes.TSTypePredicate;
export declare type SpreadElementPatternKind = namedTypes.SpreadElementPattern;
export declare type ArrowFunctionExpressionKind = namedTypes.ArrowFunctionExpression;
export declare type ForOfStatementKind = namedTypes.ForOfStatement;
export declare type YieldExpressionKind = namedTypes.YieldExpression;
export declare type GeneratorExpressionKind = namedTypes.GeneratorExpression;
export declare type ComprehensionBlockKind = namedTypes.ComprehensionBlock;
export declare type ComprehensionExpressionKind = namedTypes.ComprehensionExpression;
export declare type ObjectPropertyKind = namedTypes.ObjectProperty;
export declare type PropertyPatternKind = namedTypes.PropertyPattern;
export declare type ObjectPatternKind = namedTypes.ObjectPattern;
export declare type ArrayPatternKind = namedTypes.ArrayPattern;
export declare type MethodDefinitionKind = namedTypes.MethodDefinition;
export declare type SpreadElementKind = namedTypes.SpreadElement;
export declare type AssignmentPatternKind = namedTypes.AssignmentPattern;
export declare type ClassPropertyDefinitionKind = namedTypes.ClassPropertyDefinition;
export declare type ClassPropertyKind = namedTypes.ClassProperty | namedTypes.ClassPrivateProperty;
export declare type ClassBodyKind = namedTypes.ClassBody;
export declare type ClassDeclarationKind = namedTypes.ClassDeclaration;
export declare type ClassExpressionKind = namedTypes.ClassExpression;
export declare type SpecifierKind = namedTypes.ImportSpecifier | namedTypes.ImportNamespaceSpecifier | namedTypes.ImportDefaultSpecifier | namedTypes.ExportSpecifier | namedTypes.ExportBatchSpecifier | namedTypes.ExportNamespaceSpecifier | namedTypes.ExportDefaultSpecifier;
export declare type ModuleSpecifierKind = namedTypes.ImportSpecifier | namedTypes.ImportNamespaceSpecifier | namedTypes.ImportDefaultSpecifier | namedTypes.ExportSpecifier;
export declare type ImportSpecifierKind = namedTypes.ImportSpecifier;
export declare type ImportNamespaceSpecifierKind = namedTypes.ImportNamespaceSpecifier;
export declare type ImportDefaultSpecifierKind = namedTypes.ImportDefaultSpecifier;
export declare type ImportDeclarationKind = namedTypes.ImportDeclaration;
export declare type TaggedTemplateExpressionKind = namedTypes.TaggedTemplateExpression;
export declare type TemplateLiteralKind = namedTypes.TemplateLiteral;
export declare type TemplateElementKind = namedTypes.TemplateElement;
export declare type SpreadPropertyKind = namedTypes.SpreadProperty;
export declare type SpreadPropertyPatternKind = namedTypes.SpreadPropertyPattern;
export declare type AwaitExpressionKind = namedTypes.AwaitExpression;
export declare type JSXAttributeKind = namedTypes.JSXAttribute;
export declare type JSXIdentifierKind = namedTypes.JSXIdentifier;
export declare type JSXNamespacedNameKind = namedTypes.JSXNamespacedName;
export declare type JSXExpressionContainerKind = namedTypes.JSXExpressionContainer;
export declare type JSXMemberExpressionKind = namedTypes.JSXMemberExpression;
export declare type JSXSpreadAttributeKind = namedTypes.JSXSpreadAttribute;
export declare type JSXElementKind = namedTypes.JSXElement;
export declare type JSXOpeningElementKind = namedTypes.JSXOpeningElement;
export declare type JSXClosingElementKind = namedTypes.JSXClosingElement;
export declare type JSXFragmentKind = namedTypes.JSXFragment;
export declare type JSXTextKind = namedTypes.JSXText;
export declare type JSXOpeningFragmentKind = namedTypes.JSXOpeningFragment;
export declare type JSXClosingFragmentKind = namedTypes.JSXClosingFragment;
export declare type JSXEmptyExpressionKind = namedTypes.JSXEmptyExpression;
export declare type JSXSpreadChildKind = namedTypes.JSXSpreadChild;
export declare type TypeParameterDeclarationKind = namedTypes.TypeParameterDeclaration;
export declare type TSTypeParameterDeclarationKind = namedTypes.TSTypeParameterDeclaration;
export declare type TypeParameterInstantiationKind = namedTypes.TypeParameterInstantiation;
export declare type TSTypeParameterInstantiationKind = namedTypes.TSTypeParameterInstantiation;
export declare type ClassImplementsKind = namedTypes.ClassImplements;
export declare type TSTypeKind = namedTypes.TSExpressionWithTypeArguments | namedTypes.TSTypeReference | namedTypes.TSAnyKeyword | namedTypes.TSBigIntKeyword | namedTypes.TSBooleanKeyword | namedTypes.TSNeverKeyword | namedTypes.TSNullKeyword | namedTypes.TSNumberKeyword | namedTypes.TSObjectKeyword | namedTypes.TSStringKeyword | namedTypes.TSSymbolKeyword | namedTypes.TSUndefinedKeyword | namedTypes.TSUnknownKeyword | namedTypes.TSVoidKeyword | namedTypes.TSThisType | namedTypes.TSArrayType | namedTypes.TSLiteralType | namedTypes.TSUnionType | namedTypes.TSIntersectionType | namedTypes.TSConditionalType | namedTypes.TSInferType | namedTypes.TSParenthesizedType | namedTypes.TSFunctionType | namedTypes.TSConstructorType | namedTypes.TSMappedType | namedTypes.TSTupleType | namedTypes.TSRestType | namedTypes.TSOptionalType | namedTypes.TSIndexedAccessType | namedTypes.TSTypeOperator | namedTypes.TSTypeQuery | namedTypes.TSImportType | namedTypes.TSTypeLiteral;
export declare type TSHasOptionalTypeParameterInstantiationKind = namedTypes.TSExpressionWithTypeArguments | namedTypes.TSTypeReference | namedTypes.TSImportType;
export declare type TSExpressionWithTypeArgumentsKind = namedTypes.TSExpressionWithTypeArguments;
export declare type FlowKind = namedTypes.AnyTypeAnnotation | namedTypes.EmptyTypeAnnotation | namedTypes.MixedTypeAnnotation | namedTypes.VoidTypeAnnotation | namedTypes.NumberTypeAnnotation | namedTypes.NumberLiteralTypeAnnotation | namedTypes.NumericLiteralTypeAnnotation | namedTypes.StringTypeAnnotation | namedTypes.StringLiteralTypeAnnotation | namedTypes.BooleanTypeAnnotation | namedTypes.BooleanLiteralTypeAnnotation | namedTypes.NullableTypeAnnotation | namedTypes.NullLiteralTypeAnnotation | namedTypes.NullTypeAnnotation | namedTypes.ThisTypeAnnotation | namedTypes.ExistsTypeAnnotation | namedTypes.ExistentialTypeParam | namedTypes.FunctionTypeAnnotation | namedTypes.ArrayTypeAnnotation | namedTypes.ObjectTypeAnnotation | namedTypes.GenericTypeAnnotation | namedTypes.MemberTypeAnnotation | namedTypes.UnionTypeAnnotation | namedTypes.IntersectionTypeAnnotation | namedTypes.TypeofTypeAnnotation | namedTypes.TypeParameter | namedTypes.InterfaceTypeAnnotation | namedTypes.TupleTypeAnnotation | namedTypes.InferredPredicate | namedTypes.DeclaredPredicate;
export declare type FlowTypeKind = namedTypes.AnyTypeAnnotation | namedTypes.EmptyTypeAnnotation | namedTypes.MixedTypeAnnotation | namedTypes.VoidTypeAnnotation | namedTypes.NumberTypeAnnotation | namedTypes.NumberLiteralTypeAnnotation | namedTypes.NumericLiteralTypeAnnotation | namedTypes.StringTypeAnnotation | namedTypes.StringLiteralTypeAnnotation | namedTypes.BooleanTypeAnnotation | namedTypes.BooleanLiteralTypeAnnotation | namedTypes.NullableTypeAnnotation | namedTypes.NullLiteralTypeAnnotation | namedTypes.NullTypeAnnotation | namedTypes.ThisTypeAnnotation | namedTypes.ExistsTypeAnnotation | namedTypes.ExistentialTypeParam | namedTypes.FunctionTypeAnnotation | namedTypes.ArrayTypeAnnotation | namedTypes.ObjectTypeAnnotation | namedTypes.GenericTypeAnnotation | namedTypes.MemberTypeAnnotation | namedTypes.UnionTypeAnnotation | namedTypes.IntersectionTypeAnnotation | namedTypes.TypeofTypeAnnotation | namedTypes.TypeParameter | namedTypes.InterfaceTypeAnnotation | namedTypes.TupleTypeAnnotation;
export declare type AnyTypeAnnotationKind = namedTypes.AnyTypeAnnotation;
export declare type EmptyTypeAnnotationKind = namedTypes.EmptyTypeAnnotation;
export declare type MixedTypeAnnotationKind = namedTypes.MixedTypeAnnotation;
export declare type VoidTypeAnnotationKind = namedTypes.VoidTypeAnnotation;
export declare type NumberTypeAnnotationKind = namedTypes.NumberTypeAnnotation;
export declare type NumberLiteralTypeAnnotationKind = namedTypes.NumberLiteralTypeAnnotation;
export declare type NumericLiteralTypeAnnotationKind = namedTypes.NumericLiteralTypeAnnotation;
export declare type StringTypeAnnotationKind = namedTypes.StringTypeAnnotation;
export declare type StringLiteralTypeAnnotationKind = namedTypes.StringLiteralTypeAnnotation;
export declare type BooleanTypeAnnotationKind = namedTypes.BooleanTypeAnnotation;
export declare type BooleanLiteralTypeAnnotationKind = namedTypes.BooleanLiteralTypeAnnotation;
export declare type NullableTypeAnnotationKind = namedTypes.NullableTypeAnnotation;
export declare type NullLiteralTypeAnnotationKind = namedTypes.NullLiteralTypeAnnotation;
export declare type NullTypeAnnotationKind = namedTypes.NullTypeAnnotation;
export declare type ThisTypeAnnotationKind = namedTypes.ThisTypeAnnotation;
export declare type ExistsTypeAnnotationKind = namedTypes.ExistsTypeAnnotation;
export declare type ExistentialTypeParamKind = namedTypes.ExistentialTypeParam;
export declare type FunctionTypeAnnotationKind = namedTypes.FunctionTypeAnnotation;
export declare type FunctionTypeParamKind = namedTypes.FunctionTypeParam;
export declare type ArrayTypeAnnotationKind = namedTypes.ArrayTypeAnnotation;
export declare type ObjectTypeAnnotationKind = namedTypes.ObjectTypeAnnotation;
export declare type ObjectTypePropertyKind = namedTypes.ObjectTypeProperty;
export declare type ObjectTypeSpreadPropertyKind = namedTypes.ObjectTypeSpreadProperty;
export declare type ObjectTypeIndexerKind = namedTypes.ObjectTypeIndexer;
export declare type ObjectTypeCallPropertyKind = namedTypes.ObjectTypeCallProperty;
export declare type ObjectTypeInternalSlotKind = namedTypes.ObjectTypeInternalSlot;
export declare type VarianceKind = namedTypes.Variance;
export declare type QualifiedTypeIdentifierKind = namedTypes.QualifiedTypeIdentifier;
export declare type GenericTypeAnnotationKind = namedTypes.GenericTypeAnnotation;
export declare type MemberTypeAnnotationKind = namedTypes.MemberTypeAnnotation;
export declare type UnionTypeAnnotationKind = namedTypes.UnionTypeAnnotation;
export declare type IntersectionTypeAnnotationKind = namedTypes.IntersectionTypeAnnotation;
export declare type TypeofTypeAnnotationKind = namedTypes.TypeofTypeAnnotation;
export declare type TypeParameterKind = namedTypes.TypeParameter;
export declare type InterfaceTypeAnnotationKind = namedTypes.InterfaceTypeAnnotation;
export declare type InterfaceExtendsKind = namedTypes.InterfaceExtends;
export declare type InterfaceDeclarationKind = namedTypes.InterfaceDeclaration | namedTypes.DeclareInterface | namedTypes.DeclareClass;
export declare type DeclareInterfaceKind = namedTypes.DeclareInterface;
export declare type TypeAliasKind = namedTypes.TypeAlias | namedTypes.DeclareTypeAlias | namedTypes.DeclareOpaqueType;
export declare type OpaqueTypeKind = namedTypes.OpaqueType;
export declare type DeclareTypeAliasKind = namedTypes.DeclareTypeAlias;
export declare type DeclareOpaqueTypeKind = namedTypes.DeclareOpaqueType;
export declare type TypeCastExpressionKind = namedTypes.TypeCastExpression;
export declare type TupleTypeAnnotationKind = namedTypes.TupleTypeAnnotation;
export declare type DeclareVariableKind = namedTypes.DeclareVariable;
export declare type DeclareFunctionKind = namedTypes.DeclareFunction;
export declare type DeclareClassKind = namedTypes.DeclareClass;
export declare type DeclareModuleKind = namedTypes.DeclareModule;
export declare type DeclareModuleExportsKind = namedTypes.DeclareModuleExports;
export declare type DeclareExportDeclarationKind = namedTypes.DeclareExportDeclaration;
export declare type ExportSpecifierKind = namedTypes.ExportSpecifier;
export declare type ExportBatchSpecifierKind = namedTypes.ExportBatchSpecifier;
export declare type DeclareExportAllDeclarationKind = namedTypes.DeclareExportAllDeclaration;
export declare type FlowPredicateKind = namedTypes.InferredPredicate | namedTypes.DeclaredPredicate;
export declare type InferredPredicateKind = namedTypes.InferredPredicate;
export declare type DeclaredPredicateKind = namedTypes.DeclaredPredicate;
export declare type ExportDeclarationKind = namedTypes.ExportDeclaration;
export declare type BlockKind = namedTypes.Block;
export declare type LineKind = namedTypes.Line;
export declare type NoopKind = namedTypes.Noop;
export declare type DoExpressionKind = namedTypes.DoExpression;
export declare type SuperKind = namedTypes.Super;
export declare type BindExpressionKind = namedTypes.BindExpression;
export declare type DecoratorKind = namedTypes.Decorator;
export declare type MetaPropertyKind = namedTypes.MetaProperty;
export declare type ParenthesizedExpressionKind = namedTypes.ParenthesizedExpression;
export declare type ExportDefaultDeclarationKind = namedTypes.ExportDefaultDeclaration;
export declare type ExportNamedDeclarationKind = namedTypes.ExportNamedDeclaration;
export declare type ExportNamespaceSpecifierKind = namedTypes.ExportNamespaceSpecifier;
export declare type ExportDefaultSpecifierKind = namedTypes.ExportDefaultSpecifier;
export declare type ExportAllDeclarationKind = namedTypes.ExportAllDeclaration;
export declare type CommentBlockKind = namedTypes.CommentBlock;
export declare type CommentLineKind = namedTypes.CommentLine;
export declare type DirectiveKind = namedTypes.Directive;
export declare type DirectiveLiteralKind = namedTypes.DirectiveLiteral;
export declare type InterpreterDirectiveKind = namedTypes.InterpreterDirective;
export declare type StringLiteralKind = namedTypes.StringLiteral;
export declare type NumericLiteralKind = namedTypes.NumericLiteral;
export declare type BigIntLiteralKind = namedTypes.BigIntLiteral;
export declare type NullLiteralKind = namedTypes.NullLiteral;
export declare type BooleanLiteralKind = namedTypes.BooleanLiteral;
export declare type RegExpLiteralKind = namedTypes.RegExpLiteral;
export declare type ObjectMethodKind = namedTypes.ObjectMethod;
export declare type ClassPrivatePropertyKind = namedTypes.ClassPrivateProperty;
export declare type ClassMethodKind = namedTypes.ClassMethod;
export declare type ClassPrivateMethodKind = namedTypes.ClassPrivateMethod;
export declare type PrivateNameKind = namedTypes.PrivateName;
export declare type RestPropertyKind = namedTypes.RestProperty;
export declare type ForAwaitStatementKind = namedTypes.ForAwaitStatement;
export declare type ImportKind = namedTypes.Import;
export declare type TSQualifiedNameKind = namedTypes.TSQualifiedName;
export declare type TSTypeReferenceKind = namedTypes.TSTypeReference;
export declare type TSHasOptionalTypeParametersKind = namedTypes.TSFunctionType | namedTypes.TSConstructorType | namedTypes.TSDeclareFunction | namedTypes.TSDeclareMethod | namedTypes.TSMethodSignature | namedTypes.TSCallSignatureDeclaration | namedTypes.TSConstructSignatureDeclaration | namedTypes.TSTypeAliasDeclaration | namedTypes.TSInterfaceDeclaration;
export declare type TSHasOptionalTypeAnnotationKind = namedTypes.TSFunctionType | namedTypes.TSConstructorType | namedTypes.TSIndexSignature | namedTypes.TSPropertySignature | namedTypes.TSMethodSignature | namedTypes.TSCallSignatureDeclaration | namedTypes.TSConstructSignatureDeclaration;
export declare type TSAsExpressionKind = namedTypes.TSAsExpression;
export declare type TSNonNullExpressionKind = namedTypes.TSNonNullExpression;
export declare type TSAnyKeywordKind = namedTypes.TSAnyKeyword;
export declare type TSBigIntKeywordKind = namedTypes.TSBigIntKeyword;
export declare type TSBooleanKeywordKind = namedTypes.TSBooleanKeyword;
export declare type TSNeverKeywordKind = namedTypes.TSNeverKeyword;
export declare type TSNullKeywordKind = namedTypes.TSNullKeyword;
export declare type TSNumberKeywordKind = namedTypes.TSNumberKeyword;
export declare type TSObjectKeywordKind = namedTypes.TSObjectKeyword;
export declare type TSStringKeywordKind = namedTypes.TSStringKeyword;
export declare type TSSymbolKeywordKind = namedTypes.TSSymbolKeyword;
export declare type TSUndefinedKeywordKind = namedTypes.TSUndefinedKeyword;
export declare type TSUnknownKeywordKind = namedTypes.TSUnknownKeyword;
export declare type TSVoidKeywordKind = namedTypes.TSVoidKeyword;
export declare type TSThisTypeKind = namedTypes.TSThisType;
export declare type TSArrayTypeKind = namedTypes.TSArrayType;
export declare type TSLiteralTypeKind = namedTypes.TSLiteralType;
export declare type TSUnionTypeKind = namedTypes.TSUnionType;
export declare type TSIntersectionTypeKind = namedTypes.TSIntersectionType;
export declare type TSConditionalTypeKind = namedTypes.TSConditionalType;
export declare type TSInferTypeKind = namedTypes.TSInferType;
export declare type TSTypeParameterKind = namedTypes.TSTypeParameter;
export declare type TSParenthesizedTypeKind = namedTypes.TSParenthesizedType;
export declare type TSFunctionTypeKind = namedTypes.TSFunctionType;
export declare type TSConstructorTypeKind = namedTypes.TSConstructorType;
export declare type TSDeclareFunctionKind = namedTypes.TSDeclareFunction;
export declare type TSDeclareMethodKind = namedTypes.TSDeclareMethod;
export declare type TSMappedTypeKind = namedTypes.TSMappedType;
export declare type TSTupleTypeKind = namedTypes.TSTupleType;
export declare type TSRestTypeKind = namedTypes.TSRestType;
export declare type TSOptionalTypeKind = namedTypes.TSOptionalType;
export declare type TSIndexedAccessTypeKind = namedTypes.TSIndexedAccessType;
export declare type TSTypeOperatorKind = namedTypes.TSTypeOperator;
export declare type TSIndexSignatureKind = namedTypes.TSIndexSignature;
export declare type TSPropertySignatureKind = namedTypes.TSPropertySignature;
export declare type TSMethodSignatureKind = namedTypes.TSMethodSignature;
export declare type TSTypePredicateKind = namedTypes.TSTypePredicate;
export declare type TSCallSignatureDeclarationKind = namedTypes.TSCallSignatureDeclaration;
export declare type TSConstructSignatureDeclarationKind = namedTypes.TSConstructSignatureDeclaration;
export declare type TSEnumMemberKind = namedTypes.TSEnumMember;
export declare type TSTypeQueryKind = namedTypes.TSTypeQuery;
export declare type TSImportTypeKind = namedTypes.TSImportType;
export declare type TSTypeLiteralKind = namedTypes.TSTypeLiteral;
export declare type TSTypeAssertionKind = namedTypes.TSTypeAssertion;
export declare type TSEnumDeclarationKind = namedTypes.TSEnumDeclaration;
export declare type TSTypeAliasDeclarationKind = namedTypes.TSTypeAliasDeclaration;
export declare type TSModuleBlockKind = namedTypes.TSModuleBlock;
export declare type TSModuleDeclarationKind = namedTypes.TSModuleDeclaration;
export declare type TSImportEqualsDeclarationKind = namedTypes.TSImportEqualsDeclaration;
export declare type TSExternalModuleReferenceKind = namedTypes.TSExternalModuleReference;
export declare type TSExportAssignmentKind = namedTypes.TSExportAssignment;
export declare type TSNamespaceExportDeclarationKind = namedTypes.TSNamespaceExportDeclaration;
export declare type TSInterfaceBodyKind = namedTypes.TSInterfaceBody;
export declare type TSInterfaceDeclarationKind = namedTypes.TSInterfaceDeclaration;
export declare type TSParameterPropertyKind = namedTypes.TSParameterProperty;
export declare type OptionalMemberExpressionKind = namedTypes.OptionalMemberExpression;
export declare type OptionalCallExpressionKind = namedTypes.OptionalCallExpression;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var namedTypes;
(function (namedTypes) {
})(namedTypes = exports.namedTypes || (exports.namedTypes = {}));

@@ -49,7 +49,7 @@ import { Omit } from "../types";

}
export interface Expression extends Node {
}
export interface Pattern extends Node {
}
export interface Expression extends Node, Pattern {
}
export interface Identifier extends Omit<Node, "type">, Omit<Expression, "type">, Omit<Pattern, "type"> {
export interface Identifier extends Omit<Expression, "type">, Omit<Pattern, "type"> {
type: "Identifier";

@@ -195,3 +195,3 @@ name: string;

}
export interface Literal extends Omit<Node, "type">, Omit<Expression, "type"> {
export interface Literal extends Omit<Expression, "type"> {
type: "Literal";

@@ -223,5 +223,11 @@ value: string | boolean | null | number | RegExp;

operator: "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=";
left: K.PatternKind;
left: K.PatternKind | K.MemberExpressionKind;
right: K.ExpressionKind;
}
export interface MemberExpression extends Omit<Expression, "type"> {
type: "MemberExpression";
object: K.ExpressionKind;
property: K.IdentifierKind | K.ExpressionKind;
computed: boolean;
}
export interface UpdateExpression extends Omit<Expression, "type"> {

@@ -255,8 +261,2 @@ type: "UpdateExpression";

}
export interface MemberExpression extends Omit<Expression, "type"> {
type: "MemberExpression";
object: K.ExpressionKind;
property: K.IdentifierKind | K.ExpressionKind;
computed: boolean;
}
export interface RestElement extends Omit<Pattern, "type"> {

@@ -992,3 +992,3 @@ type: "RestElement";

}
export interface TSAsExpression extends Omit<Expression, "type"> {
export interface TSAsExpression extends Omit<Expression, "type">, Omit<Pattern, "type"> {
type: "TSAsExpression";

@@ -1001,3 +1001,3 @@ expression: K.ExpressionKind;

}
export interface TSNonNullExpression extends Omit<Expression, "type"> {
export interface TSNonNullExpression extends Omit<Expression, "type">, Omit<Pattern, "type"> {
type: "TSNonNullExpression";

@@ -1195,3 +1195,3 @@ expression: K.ExpressionKind;

}
export interface TSTypeAssertion extends Omit<Expression, "type"> {
export interface TSTypeAssertion extends Omit<Expression, "type">, Omit<Pattern, "type"> {
type: "TSTypeAssertion";

@@ -1272,2 +1272,2 @@ typeAnnotation: K.TSTypeKind;

}
export declare type ASTNode = File | Program | Identifier | BlockStatement | EmptyStatement | ExpressionStatement | IfStatement | LabeledStatement | BreakStatement | ContinueStatement | WithStatement | SwitchStatement | SwitchCase | ReturnStatement | ThrowStatement | TryStatement | CatchClause | WhileStatement | DoWhileStatement | ForStatement | VariableDeclaration | ForInStatement | DebuggerStatement | FunctionDeclaration | FunctionExpression | VariableDeclarator | ThisExpression | ArrayExpression | ObjectExpression | Property | Literal | SequenceExpression | UnaryExpression | BinaryExpression | AssignmentExpression | UpdateExpression | LogicalExpression | ConditionalExpression | NewExpression | CallExpression | MemberExpression | RestElement | TypeAnnotation | TSTypeAnnotation | SpreadElementPattern | ArrowFunctionExpression | ForOfStatement | YieldExpression | GeneratorExpression | ComprehensionBlock | ComprehensionExpression | ObjectProperty | PropertyPattern | ObjectPattern | ArrayPattern | MethodDefinition | SpreadElement | AssignmentPattern | ClassPropertyDefinition | ClassProperty | ClassBody | ClassDeclaration | ClassExpression | ImportSpecifier | ImportNamespaceSpecifier | ImportDefaultSpecifier | ImportDeclaration | TaggedTemplateExpression | TemplateLiteral | TemplateElement | SpreadProperty | SpreadPropertyPattern | AwaitExpression | JSXAttribute | JSXIdentifier | JSXNamespacedName | JSXExpressionContainer | JSXMemberExpression | JSXSpreadAttribute | JSXElement | JSXOpeningElement | JSXClosingElement | JSXFragment | JSXText | JSXOpeningFragment | JSXClosingFragment | JSXEmptyExpression | JSXSpreadChild | TypeParameterDeclaration | TSTypeParameterDeclaration | TypeParameterInstantiation | TSTypeParameterInstantiation | ClassImplements | TSExpressionWithTypeArguments | AnyTypeAnnotation | EmptyTypeAnnotation | MixedTypeAnnotation | VoidTypeAnnotation | NumberTypeAnnotation | NumberLiteralTypeAnnotation | NumericLiteralTypeAnnotation | StringTypeAnnotation | StringLiteralTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullableTypeAnnotation | NullLiteralTypeAnnotation | NullTypeAnnotation | ThisTypeAnnotation | ExistsTypeAnnotation | ExistentialTypeParam | FunctionTypeAnnotation | FunctionTypeParam | ArrayTypeAnnotation | ObjectTypeAnnotation | ObjectTypeProperty | ObjectTypeSpreadProperty | ObjectTypeIndexer | ObjectTypeCallProperty | ObjectTypeInternalSlot | Variance | QualifiedTypeIdentifier | GenericTypeAnnotation | MemberTypeAnnotation | UnionTypeAnnotation | IntersectionTypeAnnotation | TypeofTypeAnnotation | TypeParameter | InterfaceTypeAnnotation | InterfaceExtends | InterfaceDeclaration | DeclareInterface | TypeAlias | OpaqueType | DeclareTypeAlias | DeclareOpaqueType | TypeCastExpression | TupleTypeAnnotation | DeclareVariable | DeclareFunction | DeclareClass | DeclareModule | DeclareModuleExports | DeclareExportDeclaration | ExportSpecifier | ExportBatchSpecifier | DeclareExportAllDeclaration | InferredPredicate | DeclaredPredicate | ExportDeclaration | Block | Line | Noop | DoExpression | Super | BindExpression | Decorator | MetaProperty | ParenthesizedExpression | ExportDefaultDeclaration | ExportNamedDeclaration | ExportNamespaceSpecifier | ExportDefaultSpecifier | ExportAllDeclaration | CommentBlock | CommentLine | Directive | DirectiveLiteral | InterpreterDirective | StringLiteral | NumericLiteral | BigIntLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | ObjectMethod | ClassPrivateProperty | ClassMethod | ClassPrivateMethod | PrivateName | RestProperty | ForAwaitStatement | Import | TSQualifiedName | TSTypeReference | TSAsExpression | TSNonNullExpression | TSAnyKeyword | TSBigIntKeyword | TSBooleanKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSArrayType | TSLiteralType | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSTypeParameter | TSParenthesizedType | TSFunctionType | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSMappedType | TSTupleType | TSRestType | TSOptionalType | TSIndexedAccessType | TSTypeOperator | TSIndexSignature | TSPropertySignature | TSMethodSignature | TSTypePredicate | TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSEnumMember | TSTypeQuery | TSImportType | TSTypeLiteral | TSTypeAssertion | TSEnumDeclaration | TSTypeAliasDeclaration | TSModuleBlock | TSModuleDeclaration | TSImportEqualsDeclaration | TSExternalModuleReference | TSExportAssignment | TSNamespaceExportDeclaration | TSInterfaceBody | TSInterfaceDeclaration | TSParameterProperty | OptionalMemberExpression | OptionalCallExpression;
export declare type ASTNode = File | Program | Identifier | BlockStatement | EmptyStatement | ExpressionStatement | IfStatement | LabeledStatement | BreakStatement | ContinueStatement | WithStatement | SwitchStatement | SwitchCase | ReturnStatement | ThrowStatement | TryStatement | CatchClause | WhileStatement | DoWhileStatement | ForStatement | VariableDeclaration | ForInStatement | DebuggerStatement | FunctionDeclaration | FunctionExpression | VariableDeclarator | ThisExpression | ArrayExpression | ObjectExpression | Property | Literal | SequenceExpression | UnaryExpression | BinaryExpression | AssignmentExpression | MemberExpression | UpdateExpression | LogicalExpression | ConditionalExpression | NewExpression | CallExpression | RestElement | TypeAnnotation | TSTypeAnnotation | SpreadElementPattern | ArrowFunctionExpression | ForOfStatement | YieldExpression | GeneratorExpression | ComprehensionBlock | ComprehensionExpression | ObjectProperty | PropertyPattern | ObjectPattern | ArrayPattern | MethodDefinition | SpreadElement | AssignmentPattern | ClassPropertyDefinition | ClassProperty | ClassBody | ClassDeclaration | ClassExpression | ImportSpecifier | ImportNamespaceSpecifier | ImportDefaultSpecifier | ImportDeclaration | TaggedTemplateExpression | TemplateLiteral | TemplateElement | SpreadProperty | SpreadPropertyPattern | AwaitExpression | JSXAttribute | JSXIdentifier | JSXNamespacedName | JSXExpressionContainer | JSXMemberExpression | JSXSpreadAttribute | JSXElement | JSXOpeningElement | JSXClosingElement | JSXFragment | JSXText | JSXOpeningFragment | JSXClosingFragment | JSXEmptyExpression | JSXSpreadChild | TypeParameterDeclaration | TSTypeParameterDeclaration | TypeParameterInstantiation | TSTypeParameterInstantiation | ClassImplements | TSExpressionWithTypeArguments | AnyTypeAnnotation | EmptyTypeAnnotation | MixedTypeAnnotation | VoidTypeAnnotation | NumberTypeAnnotation | NumberLiteralTypeAnnotation | NumericLiteralTypeAnnotation | StringTypeAnnotation | StringLiteralTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullableTypeAnnotation | NullLiteralTypeAnnotation | NullTypeAnnotation | ThisTypeAnnotation | ExistsTypeAnnotation | ExistentialTypeParam | FunctionTypeAnnotation | FunctionTypeParam | ArrayTypeAnnotation | ObjectTypeAnnotation | ObjectTypeProperty | ObjectTypeSpreadProperty | ObjectTypeIndexer | ObjectTypeCallProperty | ObjectTypeInternalSlot | Variance | QualifiedTypeIdentifier | GenericTypeAnnotation | MemberTypeAnnotation | UnionTypeAnnotation | IntersectionTypeAnnotation | TypeofTypeAnnotation | TypeParameter | InterfaceTypeAnnotation | InterfaceExtends | InterfaceDeclaration | DeclareInterface | TypeAlias | OpaqueType | DeclareTypeAlias | DeclareOpaqueType | TypeCastExpression | TupleTypeAnnotation | DeclareVariable | DeclareFunction | DeclareClass | DeclareModule | DeclareModuleExports | DeclareExportDeclaration | ExportSpecifier | ExportBatchSpecifier | DeclareExportAllDeclaration | InferredPredicate | DeclaredPredicate | ExportDeclaration | Block | Line | Noop | DoExpression | Super | BindExpression | Decorator | MetaProperty | ParenthesizedExpression | ExportDefaultDeclaration | ExportNamedDeclaration | ExportNamespaceSpecifier | ExportDefaultSpecifier | ExportAllDeclaration | CommentBlock | CommentLine | Directive | DirectiveLiteral | InterpreterDirective | StringLiteral | NumericLiteral | BigIntLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | ObjectMethod | ClassPrivateProperty | ClassMethod | ClassPrivateMethod | PrivateName | RestProperty | ForAwaitStatement | Import | TSQualifiedName | TSTypeReference | TSAsExpression | TSNonNullExpression | TSAnyKeyword | TSBigIntKeyword | TSBooleanKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSArrayType | TSLiteralType | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSTypeParameter | TSParenthesizedType | TSFunctionType | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSMappedType | TSTupleType | TSRestType | TSOptionalType | TSIndexedAccessType | TSTypeOperator | TSIndexSignature | TSPropertySignature | TSMethodSignature | TSTypePredicate | TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSEnumMember | TSTypeQuery | TSImportType | TSTypeLiteral | TSTypeAssertion | TSEnumDeclaration | TSTypeAliasDeclaration | TSModuleBlock | TSModuleDeclaration | TSImportEqualsDeclaration | TSExternalModuleReference | TSExportAssignment | TSNamespaceExportDeclaration | TSInterfaceBody | TSInterfaceDeclaration | TSParameterProperty | OptionalMemberExpression | OptionalCallExpression;
import { NodePath } from "../lib/node-path";
import { Context } from "../lib/path-visitor";
import * as N from "./nodes";
import { namedTypes } from "./namedTypes";
export interface Visitor<M = {}> {
visitPrintable?(this: Context & M, path: NodePath<N.Printable>): any;
visitSourceLocation?(this: Context & M, path: NodePath<N.SourceLocation>): any;
visitNode?(this: Context & M, path: NodePath<N.Node>): any;
visitComment?(this: Context & M, path: NodePath<N.Comment>): any;
visitPosition?(this: Context & M, path: NodePath<N.Position>): any;
visitFile?(this: Context & M, path: NodePath<N.File>): any;
visitProgram?(this: Context & M, path: NodePath<N.Program>): any;
visitStatement?(this: Context & M, path: NodePath<N.Statement>): any;
visitFunction?(this: Context & M, path: NodePath<N.Function>): any;
visitPattern?(this: Context & M, path: NodePath<N.Pattern>): any;
visitExpression?(this: Context & M, path: NodePath<N.Expression>): any;
visitIdentifier?(this: Context & M, path: NodePath<N.Identifier>): any;
visitBlockStatement?(this: Context & M, path: NodePath<N.BlockStatement>): any;
visitEmptyStatement?(this: Context & M, path: NodePath<N.EmptyStatement>): any;
visitExpressionStatement?(this: Context & M, path: NodePath<N.ExpressionStatement>): any;
visitIfStatement?(this: Context & M, path: NodePath<N.IfStatement>): any;
visitLabeledStatement?(this: Context & M, path: NodePath<N.LabeledStatement>): any;
visitBreakStatement?(this: Context & M, path: NodePath<N.BreakStatement>): any;
visitContinueStatement?(this: Context & M, path: NodePath<N.ContinueStatement>): any;
visitWithStatement?(this: Context & M, path: NodePath<N.WithStatement>): any;
visitSwitchStatement?(this: Context & M, path: NodePath<N.SwitchStatement>): any;
visitSwitchCase?(this: Context & M, path: NodePath<N.SwitchCase>): any;
visitReturnStatement?(this: Context & M, path: NodePath<N.ReturnStatement>): any;
visitThrowStatement?(this: Context & M, path: NodePath<N.ThrowStatement>): any;
visitTryStatement?(this: Context & M, path: NodePath<N.TryStatement>): any;
visitCatchClause?(this: Context & M, path: NodePath<N.CatchClause>): any;
visitWhileStatement?(this: Context & M, path: NodePath<N.WhileStatement>): any;
visitDoWhileStatement?(this: Context & M, path: NodePath<N.DoWhileStatement>): any;
visitForStatement?(this: Context & M, path: NodePath<N.ForStatement>): any;
visitDeclaration?(this: Context & M, path: NodePath<N.Declaration>): any;
visitVariableDeclaration?(this: Context & M, path: NodePath<N.VariableDeclaration>): any;
visitForInStatement?(this: Context & M, path: NodePath<N.ForInStatement>): any;
visitDebuggerStatement?(this: Context & M, path: NodePath<N.DebuggerStatement>): any;
visitFunctionDeclaration?(this: Context & M, path: NodePath<N.FunctionDeclaration>): any;
visitFunctionExpression?(this: Context & M, path: NodePath<N.FunctionExpression>): any;
visitVariableDeclarator?(this: Context & M, path: NodePath<N.VariableDeclarator>): any;
visitThisExpression?(this: Context & M, path: NodePath<N.ThisExpression>): any;
visitArrayExpression?(this: Context & M, path: NodePath<N.ArrayExpression>): any;
visitObjectExpression?(this: Context & M, path: NodePath<N.ObjectExpression>): any;
visitProperty?(this: Context & M, path: NodePath<N.Property>): any;
visitLiteral?(this: Context & M, path: NodePath<N.Literal>): any;
visitSequenceExpression?(this: Context & M, path: NodePath<N.SequenceExpression>): any;
visitUnaryExpression?(this: Context & M, path: NodePath<N.UnaryExpression>): any;
visitBinaryExpression?(this: Context & M, path: NodePath<N.BinaryExpression>): any;
visitAssignmentExpression?(this: Context & M, path: NodePath<N.AssignmentExpression>): any;
visitUpdateExpression?(this: Context & M, path: NodePath<N.UpdateExpression>): any;
visitLogicalExpression?(this: Context & M, path: NodePath<N.LogicalExpression>): any;
visitConditionalExpression?(this: Context & M, path: NodePath<N.ConditionalExpression>): any;
visitNewExpression?(this: Context & M, path: NodePath<N.NewExpression>): any;
visitCallExpression?(this: Context & M, path: NodePath<N.CallExpression>): any;
visitMemberExpression?(this: Context & M, path: NodePath<N.MemberExpression>): any;
visitRestElement?(this: Context & M, path: NodePath<N.RestElement>): any;
visitTypeAnnotation?(this: Context & M, path: NodePath<N.TypeAnnotation>): any;
visitTSTypeAnnotation?(this: Context & M, path: NodePath<N.TSTypeAnnotation>): any;
visitSpreadElementPattern?(this: Context & M, path: NodePath<N.SpreadElementPattern>): any;
visitArrowFunctionExpression?(this: Context & M, path: NodePath<N.ArrowFunctionExpression>): any;
visitForOfStatement?(this: Context & M, path: NodePath<N.ForOfStatement>): any;
visitYieldExpression?(this: Context & M, path: NodePath<N.YieldExpression>): any;
visitGeneratorExpression?(this: Context & M, path: NodePath<N.GeneratorExpression>): any;
visitComprehensionBlock?(this: Context & M, path: NodePath<N.ComprehensionBlock>): any;
visitComprehensionExpression?(this: Context & M, path: NodePath<N.ComprehensionExpression>): any;
visitObjectProperty?(this: Context & M, path: NodePath<N.ObjectProperty>): any;
visitPropertyPattern?(this: Context & M, path: NodePath<N.PropertyPattern>): any;
visitObjectPattern?(this: Context & M, path: NodePath<N.ObjectPattern>): any;
visitArrayPattern?(this: Context & M, path: NodePath<N.ArrayPattern>): any;
visitMethodDefinition?(this: Context & M, path: NodePath<N.MethodDefinition>): any;
visitSpreadElement?(this: Context & M, path: NodePath<N.SpreadElement>): any;
visitAssignmentPattern?(this: Context & M, path: NodePath<N.AssignmentPattern>): any;
visitClassPropertyDefinition?(this: Context & M, path: NodePath<N.ClassPropertyDefinition>): any;
visitClassProperty?(this: Context & M, path: NodePath<N.ClassProperty>): any;
visitClassBody?(this: Context & M, path: NodePath<N.ClassBody>): any;
visitClassDeclaration?(this: Context & M, path: NodePath<N.ClassDeclaration>): any;
visitClassExpression?(this: Context & M, path: NodePath<N.ClassExpression>): any;
visitSpecifier?(this: Context & M, path: NodePath<N.Specifier>): any;
visitModuleSpecifier?(this: Context & M, path: NodePath<N.ModuleSpecifier>): any;
visitImportSpecifier?(this: Context & M, path: NodePath<N.ImportSpecifier>): any;
visitImportNamespaceSpecifier?(this: Context & M, path: NodePath<N.ImportNamespaceSpecifier>): any;
visitImportDefaultSpecifier?(this: Context & M, path: NodePath<N.ImportDefaultSpecifier>): any;
visitImportDeclaration?(this: Context & M, path: NodePath<N.ImportDeclaration>): any;
visitTaggedTemplateExpression?(this: Context & M, path: NodePath<N.TaggedTemplateExpression>): any;
visitTemplateLiteral?(this: Context & M, path: NodePath<N.TemplateLiteral>): any;
visitTemplateElement?(this: Context & M, path: NodePath<N.TemplateElement>): any;
visitSpreadProperty?(this: Context & M, path: NodePath<N.SpreadProperty>): any;
visitSpreadPropertyPattern?(this: Context & M, path: NodePath<N.SpreadPropertyPattern>): any;
visitAwaitExpression?(this: Context & M, path: NodePath<N.AwaitExpression>): any;
visitJSXAttribute?(this: Context & M, path: NodePath<N.JSXAttribute>): any;
visitJSXIdentifier?(this: Context & M, path: NodePath<N.JSXIdentifier>): any;
visitJSXNamespacedName?(this: Context & M, path: NodePath<N.JSXNamespacedName>): any;
visitJSXExpressionContainer?(this: Context & M, path: NodePath<N.JSXExpressionContainer>): any;
visitJSXMemberExpression?(this: Context & M, path: NodePath<N.JSXMemberExpression>): any;
visitJSXSpreadAttribute?(this: Context & M, path: NodePath<N.JSXSpreadAttribute>): any;
visitJSXElement?(this: Context & M, path: NodePath<N.JSXElement>): any;
visitJSXOpeningElement?(this: Context & M, path: NodePath<N.JSXOpeningElement>): any;
visitJSXClosingElement?(this: Context & M, path: NodePath<N.JSXClosingElement>): any;
visitJSXFragment?(this: Context & M, path: NodePath<N.JSXFragment>): any;
visitJSXText?(this: Context & M, path: NodePath<N.JSXText>): any;
visitJSXOpeningFragment?(this: Context & M, path: NodePath<N.JSXOpeningFragment>): any;
visitJSXClosingFragment?(this: Context & M, path: NodePath<N.JSXClosingFragment>): any;
visitJSXEmptyExpression?(this: Context & M, path: NodePath<N.JSXEmptyExpression>): any;
visitJSXSpreadChild?(this: Context & M, path: NodePath<N.JSXSpreadChild>): any;
visitTypeParameterDeclaration?(this: Context & M, path: NodePath<N.TypeParameterDeclaration>): any;
visitTSTypeParameterDeclaration?(this: Context & M, path: NodePath<N.TSTypeParameterDeclaration>): any;
visitTypeParameterInstantiation?(this: Context & M, path: NodePath<N.TypeParameterInstantiation>): any;
visitTSTypeParameterInstantiation?(this: Context & M, path: NodePath<N.TSTypeParameterInstantiation>): any;
visitClassImplements?(this: Context & M, path: NodePath<N.ClassImplements>): any;
visitTSType?(this: Context & M, path: NodePath<N.TSType>): any;
visitTSHasOptionalTypeParameterInstantiation?(this: Context & M, path: NodePath<N.TSHasOptionalTypeParameterInstantiation>): any;
visitTSExpressionWithTypeArguments?(this: Context & M, path: NodePath<N.TSExpressionWithTypeArguments>): any;
visitFlow?(this: Context & M, path: NodePath<N.Flow>): any;
visitFlowType?(this: Context & M, path: NodePath<N.FlowType>): any;
visitAnyTypeAnnotation?(this: Context & M, path: NodePath<N.AnyTypeAnnotation>): any;
visitEmptyTypeAnnotation?(this: Context & M, path: NodePath<N.EmptyTypeAnnotation>): any;
visitMixedTypeAnnotation?(this: Context & M, path: NodePath<N.MixedTypeAnnotation>): any;
visitVoidTypeAnnotation?(this: Context & M, path: NodePath<N.VoidTypeAnnotation>): any;
visitNumberTypeAnnotation?(this: Context & M, path: NodePath<N.NumberTypeAnnotation>): any;
visitNumberLiteralTypeAnnotation?(this: Context & M, path: NodePath<N.NumberLiteralTypeAnnotation>): any;
visitNumericLiteralTypeAnnotation?(this: Context & M, path: NodePath<N.NumericLiteralTypeAnnotation>): any;
visitStringTypeAnnotation?(this: Context & M, path: NodePath<N.StringTypeAnnotation>): any;
visitStringLiteralTypeAnnotation?(this: Context & M, path: NodePath<N.StringLiteralTypeAnnotation>): any;
visitBooleanTypeAnnotation?(this: Context & M, path: NodePath<N.BooleanTypeAnnotation>): any;
visitBooleanLiteralTypeAnnotation?(this: Context & M, path: NodePath<N.BooleanLiteralTypeAnnotation>): any;
visitNullableTypeAnnotation?(this: Context & M, path: NodePath<N.NullableTypeAnnotation>): any;
visitNullLiteralTypeAnnotation?(this: Context & M, path: NodePath<N.NullLiteralTypeAnnotation>): any;
visitNullTypeAnnotation?(this: Context & M, path: NodePath<N.NullTypeAnnotation>): any;
visitThisTypeAnnotation?(this: Context & M, path: NodePath<N.ThisTypeAnnotation>): any;
visitExistsTypeAnnotation?(this: Context & M, path: NodePath<N.ExistsTypeAnnotation>): any;
visitExistentialTypeParam?(this: Context & M, path: NodePath<N.ExistentialTypeParam>): any;
visitFunctionTypeAnnotation?(this: Context & M, path: NodePath<N.FunctionTypeAnnotation>): any;
visitFunctionTypeParam?(this: Context & M, path: NodePath<N.FunctionTypeParam>): any;
visitArrayTypeAnnotation?(this: Context & M, path: NodePath<N.ArrayTypeAnnotation>): any;
visitObjectTypeAnnotation?(this: Context & M, path: NodePath<N.ObjectTypeAnnotation>): any;
visitObjectTypeProperty?(this: Context & M, path: NodePath<N.ObjectTypeProperty>): any;
visitObjectTypeSpreadProperty?(this: Context & M, path: NodePath<N.ObjectTypeSpreadProperty>): any;
visitObjectTypeIndexer?(this: Context & M, path: NodePath<N.ObjectTypeIndexer>): any;
visitObjectTypeCallProperty?(this: Context & M, path: NodePath<N.ObjectTypeCallProperty>): any;
visitObjectTypeInternalSlot?(this: Context & M, path: NodePath<N.ObjectTypeInternalSlot>): any;
visitVariance?(this: Context & M, path: NodePath<N.Variance>): any;
visitQualifiedTypeIdentifier?(this: Context & M, path: NodePath<N.QualifiedTypeIdentifier>): any;
visitGenericTypeAnnotation?(this: Context & M, path: NodePath<N.GenericTypeAnnotation>): any;
visitMemberTypeAnnotation?(this: Context & M, path: NodePath<N.MemberTypeAnnotation>): any;
visitUnionTypeAnnotation?(this: Context & M, path: NodePath<N.UnionTypeAnnotation>): any;
visitIntersectionTypeAnnotation?(this: Context & M, path: NodePath<N.IntersectionTypeAnnotation>): any;
visitTypeofTypeAnnotation?(this: Context & M, path: NodePath<N.TypeofTypeAnnotation>): any;
visitTypeParameter?(this: Context & M, path: NodePath<N.TypeParameter>): any;
visitInterfaceTypeAnnotation?(this: Context & M, path: NodePath<N.InterfaceTypeAnnotation>): any;
visitInterfaceExtends?(this: Context & M, path: NodePath<N.InterfaceExtends>): any;
visitInterfaceDeclaration?(this: Context & M, path: NodePath<N.InterfaceDeclaration>): any;
visitDeclareInterface?(this: Context & M, path: NodePath<N.DeclareInterface>): any;
visitTypeAlias?(this: Context & M, path: NodePath<N.TypeAlias>): any;
visitOpaqueType?(this: Context & M, path: NodePath<N.OpaqueType>): any;
visitDeclareTypeAlias?(this: Context & M, path: NodePath<N.DeclareTypeAlias>): any;
visitDeclareOpaqueType?(this: Context & M, path: NodePath<N.DeclareOpaqueType>): any;
visitTypeCastExpression?(this: Context & M, path: NodePath<N.TypeCastExpression>): any;
visitTupleTypeAnnotation?(this: Context & M, path: NodePath<N.TupleTypeAnnotation>): any;
visitDeclareVariable?(this: Context & M, path: NodePath<N.DeclareVariable>): any;
visitDeclareFunction?(this: Context & M, path: NodePath<N.DeclareFunction>): any;
visitDeclareClass?(this: Context & M, path: NodePath<N.DeclareClass>): any;
visitDeclareModule?(this: Context & M, path: NodePath<N.DeclareModule>): any;
visitDeclareModuleExports?(this: Context & M, path: NodePath<N.DeclareModuleExports>): any;
visitDeclareExportDeclaration?(this: Context & M, path: NodePath<N.DeclareExportDeclaration>): any;
visitExportSpecifier?(this: Context & M, path: NodePath<N.ExportSpecifier>): any;
visitExportBatchSpecifier?(this: Context & M, path: NodePath<N.ExportBatchSpecifier>): any;
visitDeclareExportAllDeclaration?(this: Context & M, path: NodePath<N.DeclareExportAllDeclaration>): any;
visitFlowPredicate?(this: Context & M, path: NodePath<N.FlowPredicate>): any;
visitInferredPredicate?(this: Context & M, path: NodePath<N.InferredPredicate>): any;
visitDeclaredPredicate?(this: Context & M, path: NodePath<N.DeclaredPredicate>): any;
visitExportDeclaration?(this: Context & M, path: NodePath<N.ExportDeclaration>): any;
visitBlock?(this: Context & M, path: NodePath<N.Block>): any;
visitLine?(this: Context & M, path: NodePath<N.Line>): any;
visitNoop?(this: Context & M, path: NodePath<N.Noop>): any;
visitDoExpression?(this: Context & M, path: NodePath<N.DoExpression>): any;
visitSuper?(this: Context & M, path: NodePath<N.Super>): any;
visitBindExpression?(this: Context & M, path: NodePath<N.BindExpression>): any;
visitDecorator?(this: Context & M, path: NodePath<N.Decorator>): any;
visitMetaProperty?(this: Context & M, path: NodePath<N.MetaProperty>): any;
visitParenthesizedExpression?(this: Context & M, path: NodePath<N.ParenthesizedExpression>): any;
visitExportDefaultDeclaration?(this: Context & M, path: NodePath<N.ExportDefaultDeclaration>): any;
visitExportNamedDeclaration?(this: Context & M, path: NodePath<N.ExportNamedDeclaration>): any;
visitExportNamespaceSpecifier?(this: Context & M, path: NodePath<N.ExportNamespaceSpecifier>): any;
visitExportDefaultSpecifier?(this: Context & M, path: NodePath<N.ExportDefaultSpecifier>): any;
visitExportAllDeclaration?(this: Context & M, path: NodePath<N.ExportAllDeclaration>): any;
visitCommentBlock?(this: Context & M, path: NodePath<N.CommentBlock>): any;
visitCommentLine?(this: Context & M, path: NodePath<N.CommentLine>): any;
visitDirective?(this: Context & M, path: NodePath<N.Directive>): any;
visitDirectiveLiteral?(this: Context & M, path: NodePath<N.DirectiveLiteral>): any;
visitInterpreterDirective?(this: Context & M, path: NodePath<N.InterpreterDirective>): any;
visitStringLiteral?(this: Context & M, path: NodePath<N.StringLiteral>): any;
visitNumericLiteral?(this: Context & M, path: NodePath<N.NumericLiteral>): any;
visitBigIntLiteral?(this: Context & M, path: NodePath<N.BigIntLiteral>): any;
visitNullLiteral?(this: Context & M, path: NodePath<N.NullLiteral>): any;
visitBooleanLiteral?(this: Context & M, path: NodePath<N.BooleanLiteral>): any;
visitRegExpLiteral?(this: Context & M, path: NodePath<N.RegExpLiteral>): any;
visitObjectMethod?(this: Context & M, path: NodePath<N.ObjectMethod>): any;
visitClassPrivateProperty?(this: Context & M, path: NodePath<N.ClassPrivateProperty>): any;
visitClassMethod?(this: Context & M, path: NodePath<N.ClassMethod>): any;
visitClassPrivateMethod?(this: Context & M, path: NodePath<N.ClassPrivateMethod>): any;
visitPrivateName?(this: Context & M, path: NodePath<N.PrivateName>): any;
visitRestProperty?(this: Context & M, path: NodePath<N.RestProperty>): any;
visitForAwaitStatement?(this: Context & M, path: NodePath<N.ForAwaitStatement>): any;
visitImport?(this: Context & M, path: NodePath<N.Import>): any;
visitTSQualifiedName?(this: Context & M, path: NodePath<N.TSQualifiedName>): any;
visitTSTypeReference?(this: Context & M, path: NodePath<N.TSTypeReference>): any;
visitTSHasOptionalTypeParameters?(this: Context & M, path: NodePath<N.TSHasOptionalTypeParameters>): any;
visitTSHasOptionalTypeAnnotation?(this: Context & M, path: NodePath<N.TSHasOptionalTypeAnnotation>): any;
visitTSAsExpression?(this: Context & M, path: NodePath<N.TSAsExpression>): any;
visitTSNonNullExpression?(this: Context & M, path: NodePath<N.TSNonNullExpression>): any;
visitTSAnyKeyword?(this: Context & M, path: NodePath<N.TSAnyKeyword>): any;
visitTSBigIntKeyword?(this: Context & M, path: NodePath<N.TSBigIntKeyword>): any;
visitTSBooleanKeyword?(this: Context & M, path: NodePath<N.TSBooleanKeyword>): any;
visitTSNeverKeyword?(this: Context & M, path: NodePath<N.TSNeverKeyword>): any;
visitTSNullKeyword?(this: Context & M, path: NodePath<N.TSNullKeyword>): any;
visitTSNumberKeyword?(this: Context & M, path: NodePath<N.TSNumberKeyword>): any;
visitTSObjectKeyword?(this: Context & M, path: NodePath<N.TSObjectKeyword>): any;
visitTSStringKeyword?(this: Context & M, path: NodePath<N.TSStringKeyword>): any;
visitTSSymbolKeyword?(this: Context & M, path: NodePath<N.TSSymbolKeyword>): any;
visitTSUndefinedKeyword?(this: Context & M, path: NodePath<N.TSUndefinedKeyword>): any;
visitTSUnknownKeyword?(this: Context & M, path: NodePath<N.TSUnknownKeyword>): any;
visitTSVoidKeyword?(this: Context & M, path: NodePath<N.TSVoidKeyword>): any;
visitTSThisType?(this: Context & M, path: NodePath<N.TSThisType>): any;
visitTSArrayType?(this: Context & M, path: NodePath<N.TSArrayType>): any;
visitTSLiteralType?(this: Context & M, path: NodePath<N.TSLiteralType>): any;
visitTSUnionType?(this: Context & M, path: NodePath<N.TSUnionType>): any;
visitTSIntersectionType?(this: Context & M, path: NodePath<N.TSIntersectionType>): any;
visitTSConditionalType?(this: Context & M, path: NodePath<N.TSConditionalType>): any;
visitTSInferType?(this: Context & M, path: NodePath<N.TSInferType>): any;
visitTSTypeParameter?(this: Context & M, path: NodePath<N.TSTypeParameter>): any;
visitTSParenthesizedType?(this: Context & M, path: NodePath<N.TSParenthesizedType>): any;
visitTSFunctionType?(this: Context & M, path: NodePath<N.TSFunctionType>): any;
visitTSConstructorType?(this: Context & M, path: NodePath<N.TSConstructorType>): any;
visitTSDeclareFunction?(this: Context & M, path: NodePath<N.TSDeclareFunction>): any;
visitTSDeclareMethod?(this: Context & M, path: NodePath<N.TSDeclareMethod>): any;
visitTSMappedType?(this: Context & M, path: NodePath<N.TSMappedType>): any;
visitTSTupleType?(this: Context & M, path: NodePath<N.TSTupleType>): any;
visitTSRestType?(this: Context & M, path: NodePath<N.TSRestType>): any;
visitTSOptionalType?(this: Context & M, path: NodePath<N.TSOptionalType>): any;
visitTSIndexedAccessType?(this: Context & M, path: NodePath<N.TSIndexedAccessType>): any;
visitTSTypeOperator?(this: Context & M, path: NodePath<N.TSTypeOperator>): any;
visitTSIndexSignature?(this: Context & M, path: NodePath<N.TSIndexSignature>): any;
visitTSPropertySignature?(this: Context & M, path: NodePath<N.TSPropertySignature>): any;
visitTSMethodSignature?(this: Context & M, path: NodePath<N.TSMethodSignature>): any;
visitTSTypePredicate?(this: Context & M, path: NodePath<N.TSTypePredicate>): any;
visitTSCallSignatureDeclaration?(this: Context & M, path: NodePath<N.TSCallSignatureDeclaration>): any;
visitTSConstructSignatureDeclaration?(this: Context & M, path: NodePath<N.TSConstructSignatureDeclaration>): any;
visitTSEnumMember?(this: Context & M, path: NodePath<N.TSEnumMember>): any;
visitTSTypeQuery?(this: Context & M, path: NodePath<N.TSTypeQuery>): any;
visitTSImportType?(this: Context & M, path: NodePath<N.TSImportType>): any;
visitTSTypeLiteral?(this: Context & M, path: NodePath<N.TSTypeLiteral>): any;
visitTSTypeAssertion?(this: Context & M, path: NodePath<N.TSTypeAssertion>): any;
visitTSEnumDeclaration?(this: Context & M, path: NodePath<N.TSEnumDeclaration>): any;
visitTSTypeAliasDeclaration?(this: Context & M, path: NodePath<N.TSTypeAliasDeclaration>): any;
visitTSModuleBlock?(this: Context & M, path: NodePath<N.TSModuleBlock>): any;
visitTSModuleDeclaration?(this: Context & M, path: NodePath<N.TSModuleDeclaration>): any;
visitTSImportEqualsDeclaration?(this: Context & M, path: NodePath<N.TSImportEqualsDeclaration>): any;
visitTSExternalModuleReference?(this: Context & M, path: NodePath<N.TSExternalModuleReference>): any;
visitTSExportAssignment?(this: Context & M, path: NodePath<N.TSExportAssignment>): any;
visitTSNamespaceExportDeclaration?(this: Context & M, path: NodePath<N.TSNamespaceExportDeclaration>): any;
visitTSInterfaceBody?(this: Context & M, path: NodePath<N.TSInterfaceBody>): any;
visitTSInterfaceDeclaration?(this: Context & M, path: NodePath<N.TSInterfaceDeclaration>): any;
visitTSParameterProperty?(this: Context & M, path: NodePath<N.TSParameterProperty>): any;
visitOptionalMemberExpression?(this: Context & M, path: NodePath<N.OptionalMemberExpression>): any;
visitOptionalCallExpression?(this: Context & M, path: NodePath<N.OptionalCallExpression>): any;
visitPrintable?(this: Context & M, path: NodePath<namedTypes.Printable>): any;
visitSourceLocation?(this: Context & M, path: NodePath<namedTypes.SourceLocation>): any;
visitNode?(this: Context & M, path: NodePath<namedTypes.Node>): any;
visitComment?(this: Context & M, path: NodePath<namedTypes.Comment>): any;
visitPosition?(this: Context & M, path: NodePath<namedTypes.Position>): any;
visitFile?(this: Context & M, path: NodePath<namedTypes.File>): any;
visitProgram?(this: Context & M, path: NodePath<namedTypes.Program>): any;
visitStatement?(this: Context & M, path: NodePath<namedTypes.Statement>): any;
visitFunction?(this: Context & M, path: NodePath<namedTypes.Function>): any;
visitExpression?(this: Context & M, path: NodePath<namedTypes.Expression>): any;
visitPattern?(this: Context & M, path: NodePath<namedTypes.Pattern>): any;
visitIdentifier?(this: Context & M, path: NodePath<namedTypes.Identifier>): any;
visitBlockStatement?(this: Context & M, path: NodePath<namedTypes.BlockStatement>): any;
visitEmptyStatement?(this: Context & M, path: NodePath<namedTypes.EmptyStatement>): any;
visitExpressionStatement?(this: Context & M, path: NodePath<namedTypes.ExpressionStatement>): any;
visitIfStatement?(this: Context & M, path: NodePath<namedTypes.IfStatement>): any;
visitLabeledStatement?(this: Context & M, path: NodePath<namedTypes.LabeledStatement>): any;
visitBreakStatement?(this: Context & M, path: NodePath<namedTypes.BreakStatement>): any;
visitContinueStatement?(this: Context & M, path: NodePath<namedTypes.ContinueStatement>): any;
visitWithStatement?(this: Context & M, path: NodePath<namedTypes.WithStatement>): any;
visitSwitchStatement?(this: Context & M, path: NodePath<namedTypes.SwitchStatement>): any;
visitSwitchCase?(this: Context & M, path: NodePath<namedTypes.SwitchCase>): any;
visitReturnStatement?(this: Context & M, path: NodePath<namedTypes.ReturnStatement>): any;
visitThrowStatement?(this: Context & M, path: NodePath<namedTypes.ThrowStatement>): any;
visitTryStatement?(this: Context & M, path: NodePath<namedTypes.TryStatement>): any;
visitCatchClause?(this: Context & M, path: NodePath<namedTypes.CatchClause>): any;
visitWhileStatement?(this: Context & M, path: NodePath<namedTypes.WhileStatement>): any;
visitDoWhileStatement?(this: Context & M, path: NodePath<namedTypes.DoWhileStatement>): any;
visitForStatement?(this: Context & M, path: NodePath<namedTypes.ForStatement>): any;
visitDeclaration?(this: Context & M, path: NodePath<namedTypes.Declaration>): any;
visitVariableDeclaration?(this: Context & M, path: NodePath<namedTypes.VariableDeclaration>): any;
visitForInStatement?(this: Context & M, path: NodePath<namedTypes.ForInStatement>): any;
visitDebuggerStatement?(this: Context & M, path: NodePath<namedTypes.DebuggerStatement>): any;
visitFunctionDeclaration?(this: Context & M, path: NodePath<namedTypes.FunctionDeclaration>): any;
visitFunctionExpression?(this: Context & M, path: NodePath<namedTypes.FunctionExpression>): any;
visitVariableDeclarator?(this: Context & M, path: NodePath<namedTypes.VariableDeclarator>): any;
visitThisExpression?(this: Context & M, path: NodePath<namedTypes.ThisExpression>): any;
visitArrayExpression?(this: Context & M, path: NodePath<namedTypes.ArrayExpression>): any;
visitObjectExpression?(this: Context & M, path: NodePath<namedTypes.ObjectExpression>): any;
visitProperty?(this: Context & M, path: NodePath<namedTypes.Property>): any;
visitLiteral?(this: Context & M, path: NodePath<namedTypes.Literal>): any;
visitSequenceExpression?(this: Context & M, path: NodePath<namedTypes.SequenceExpression>): any;
visitUnaryExpression?(this: Context & M, path: NodePath<namedTypes.UnaryExpression>): any;
visitBinaryExpression?(this: Context & M, path: NodePath<namedTypes.BinaryExpression>): any;
visitAssignmentExpression?(this: Context & M, path: NodePath<namedTypes.AssignmentExpression>): any;
visitMemberExpression?(this: Context & M, path: NodePath<namedTypes.MemberExpression>): any;
visitUpdateExpression?(this: Context & M, path: NodePath<namedTypes.UpdateExpression>): any;
visitLogicalExpression?(this: Context & M, path: NodePath<namedTypes.LogicalExpression>): any;
visitConditionalExpression?(this: Context & M, path: NodePath<namedTypes.ConditionalExpression>): any;
visitNewExpression?(this: Context & M, path: NodePath<namedTypes.NewExpression>): any;
visitCallExpression?(this: Context & M, path: NodePath<namedTypes.CallExpression>): any;
visitRestElement?(this: Context & M, path: NodePath<namedTypes.RestElement>): any;
visitTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TypeAnnotation>): any;
visitTSTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TSTypeAnnotation>): any;
visitSpreadElementPattern?(this: Context & M, path: NodePath<namedTypes.SpreadElementPattern>): any;
visitArrowFunctionExpression?(this: Context & M, path: NodePath<namedTypes.ArrowFunctionExpression>): any;
visitForOfStatement?(this: Context & M, path: NodePath<namedTypes.ForOfStatement>): any;
visitYieldExpression?(this: Context & M, path: NodePath<namedTypes.YieldExpression>): any;
visitGeneratorExpression?(this: Context & M, path: NodePath<namedTypes.GeneratorExpression>): any;
visitComprehensionBlock?(this: Context & M, path: NodePath<namedTypes.ComprehensionBlock>): any;
visitComprehensionExpression?(this: Context & M, path: NodePath<namedTypes.ComprehensionExpression>): any;
visitObjectProperty?(this: Context & M, path: NodePath<namedTypes.ObjectProperty>): any;
visitPropertyPattern?(this: Context & M, path: NodePath<namedTypes.PropertyPattern>): any;
visitObjectPattern?(this: Context & M, path: NodePath<namedTypes.ObjectPattern>): any;
visitArrayPattern?(this: Context & M, path: NodePath<namedTypes.ArrayPattern>): any;
visitMethodDefinition?(this: Context & M, path: NodePath<namedTypes.MethodDefinition>): any;
visitSpreadElement?(this: Context & M, path: NodePath<namedTypes.SpreadElement>): any;
visitAssignmentPattern?(this: Context & M, path: NodePath<namedTypes.AssignmentPattern>): any;
visitClassPropertyDefinition?(this: Context & M, path: NodePath<namedTypes.ClassPropertyDefinition>): any;
visitClassProperty?(this: Context & M, path: NodePath<namedTypes.ClassProperty>): any;
visitClassBody?(this: Context & M, path: NodePath<namedTypes.ClassBody>): any;
visitClassDeclaration?(this: Context & M, path: NodePath<namedTypes.ClassDeclaration>): any;
visitClassExpression?(this: Context & M, path: NodePath<namedTypes.ClassExpression>): any;
visitSpecifier?(this: Context & M, path: NodePath<namedTypes.Specifier>): any;
visitModuleSpecifier?(this: Context & M, path: NodePath<namedTypes.ModuleSpecifier>): any;
visitImportSpecifier?(this: Context & M, path: NodePath<namedTypes.ImportSpecifier>): any;
visitImportNamespaceSpecifier?(this: Context & M, path: NodePath<namedTypes.ImportNamespaceSpecifier>): any;
visitImportDefaultSpecifier?(this: Context & M, path: NodePath<namedTypes.ImportDefaultSpecifier>): any;
visitImportDeclaration?(this: Context & M, path: NodePath<namedTypes.ImportDeclaration>): any;
visitTaggedTemplateExpression?(this: Context & M, path: NodePath<namedTypes.TaggedTemplateExpression>): any;
visitTemplateLiteral?(this: Context & M, path: NodePath<namedTypes.TemplateLiteral>): any;
visitTemplateElement?(this: Context & M, path: NodePath<namedTypes.TemplateElement>): any;
visitSpreadProperty?(this: Context & M, path: NodePath<namedTypes.SpreadProperty>): any;
visitSpreadPropertyPattern?(this: Context & M, path: NodePath<namedTypes.SpreadPropertyPattern>): any;
visitAwaitExpression?(this: Context & M, path: NodePath<namedTypes.AwaitExpression>): any;
visitJSXAttribute?(this: Context & M, path: NodePath<namedTypes.JSXAttribute>): any;
visitJSXIdentifier?(this: Context & M, path: NodePath<namedTypes.JSXIdentifier>): any;
visitJSXNamespacedName?(this: Context & M, path: NodePath<namedTypes.JSXNamespacedName>): any;
visitJSXExpressionContainer?(this: Context & M, path: NodePath<namedTypes.JSXExpressionContainer>): any;
visitJSXMemberExpression?(this: Context & M, path: NodePath<namedTypes.JSXMemberExpression>): any;
visitJSXSpreadAttribute?(this: Context & M, path: NodePath<namedTypes.JSXSpreadAttribute>): any;
visitJSXElement?(this: Context & M, path: NodePath<namedTypes.JSXElement>): any;
visitJSXOpeningElement?(this: Context & M, path: NodePath<namedTypes.JSXOpeningElement>): any;
visitJSXClosingElement?(this: Context & M, path: NodePath<namedTypes.JSXClosingElement>): any;
visitJSXFragment?(this: Context & M, path: NodePath<namedTypes.JSXFragment>): any;
visitJSXText?(this: Context & M, path: NodePath<namedTypes.JSXText>): any;
visitJSXOpeningFragment?(this: Context & M, path: NodePath<namedTypes.JSXOpeningFragment>): any;
visitJSXClosingFragment?(this: Context & M, path: NodePath<namedTypes.JSXClosingFragment>): any;
visitJSXEmptyExpression?(this: Context & M, path: NodePath<namedTypes.JSXEmptyExpression>): any;
visitJSXSpreadChild?(this: Context & M, path: NodePath<namedTypes.JSXSpreadChild>): any;
visitTypeParameterDeclaration?(this: Context & M, path: NodePath<namedTypes.TypeParameterDeclaration>): any;
visitTSTypeParameterDeclaration?(this: Context & M, path: NodePath<namedTypes.TSTypeParameterDeclaration>): any;
visitTypeParameterInstantiation?(this: Context & M, path: NodePath<namedTypes.TypeParameterInstantiation>): any;
visitTSTypeParameterInstantiation?(this: Context & M, path: NodePath<namedTypes.TSTypeParameterInstantiation>): any;
visitClassImplements?(this: Context & M, path: NodePath<namedTypes.ClassImplements>): any;
visitTSType?(this: Context & M, path: NodePath<namedTypes.TSType>): any;
visitTSHasOptionalTypeParameterInstantiation?(this: Context & M, path: NodePath<namedTypes.TSHasOptionalTypeParameterInstantiation>): any;
visitTSExpressionWithTypeArguments?(this: Context & M, path: NodePath<namedTypes.TSExpressionWithTypeArguments>): any;
visitFlow?(this: Context & M, path: NodePath<namedTypes.Flow>): any;
visitFlowType?(this: Context & M, path: NodePath<namedTypes.FlowType>): any;
visitAnyTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.AnyTypeAnnotation>): any;
visitEmptyTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.EmptyTypeAnnotation>): any;
visitMixedTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.MixedTypeAnnotation>): any;
visitVoidTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.VoidTypeAnnotation>): any;
visitNumberTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NumberTypeAnnotation>): any;
visitNumberLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NumberLiteralTypeAnnotation>): any;
visitNumericLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NumericLiteralTypeAnnotation>): any;
visitStringTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.StringTypeAnnotation>): any;
visitStringLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.StringLiteralTypeAnnotation>): any;
visitBooleanTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.BooleanTypeAnnotation>): any;
visitBooleanLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.BooleanLiteralTypeAnnotation>): any;
visitNullableTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NullableTypeAnnotation>): any;
visitNullLiteralTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NullLiteralTypeAnnotation>): any;
visitNullTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.NullTypeAnnotation>): any;
visitThisTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.ThisTypeAnnotation>): any;
visitExistsTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.ExistsTypeAnnotation>): any;
visitExistentialTypeParam?(this: Context & M, path: NodePath<namedTypes.ExistentialTypeParam>): any;
visitFunctionTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.FunctionTypeAnnotation>): any;
visitFunctionTypeParam?(this: Context & M, path: NodePath<namedTypes.FunctionTypeParam>): any;
visitArrayTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.ArrayTypeAnnotation>): any;
visitObjectTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.ObjectTypeAnnotation>): any;
visitObjectTypeProperty?(this: Context & M, path: NodePath<namedTypes.ObjectTypeProperty>): any;
visitObjectTypeSpreadProperty?(this: Context & M, path: NodePath<namedTypes.ObjectTypeSpreadProperty>): any;
visitObjectTypeIndexer?(this: Context & M, path: NodePath<namedTypes.ObjectTypeIndexer>): any;
visitObjectTypeCallProperty?(this: Context & M, path: NodePath<namedTypes.ObjectTypeCallProperty>): any;
visitObjectTypeInternalSlot?(this: Context & M, path: NodePath<namedTypes.ObjectTypeInternalSlot>): any;
visitVariance?(this: Context & M, path: NodePath<namedTypes.Variance>): any;
visitQualifiedTypeIdentifier?(this: Context & M, path: NodePath<namedTypes.QualifiedTypeIdentifier>): any;
visitGenericTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.GenericTypeAnnotation>): any;
visitMemberTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.MemberTypeAnnotation>): any;
visitUnionTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.UnionTypeAnnotation>): any;
visitIntersectionTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.IntersectionTypeAnnotation>): any;
visitTypeofTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TypeofTypeAnnotation>): any;
visitTypeParameter?(this: Context & M, path: NodePath<namedTypes.TypeParameter>): any;
visitInterfaceTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.InterfaceTypeAnnotation>): any;
visitInterfaceExtends?(this: Context & M, path: NodePath<namedTypes.InterfaceExtends>): any;
visitInterfaceDeclaration?(this: Context & M, path: NodePath<namedTypes.InterfaceDeclaration>): any;
visitDeclareInterface?(this: Context & M, path: NodePath<namedTypes.DeclareInterface>): any;
visitTypeAlias?(this: Context & M, path: NodePath<namedTypes.TypeAlias>): any;
visitOpaqueType?(this: Context & M, path: NodePath<namedTypes.OpaqueType>): any;
visitDeclareTypeAlias?(this: Context & M, path: NodePath<namedTypes.DeclareTypeAlias>): any;
visitDeclareOpaqueType?(this: Context & M, path: NodePath<namedTypes.DeclareOpaqueType>): any;
visitTypeCastExpression?(this: Context & M, path: NodePath<namedTypes.TypeCastExpression>): any;
visitTupleTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TupleTypeAnnotation>): any;
visitDeclareVariable?(this: Context & M, path: NodePath<namedTypes.DeclareVariable>): any;
visitDeclareFunction?(this: Context & M, path: NodePath<namedTypes.DeclareFunction>): any;
visitDeclareClass?(this: Context & M, path: NodePath<namedTypes.DeclareClass>): any;
visitDeclareModule?(this: Context & M, path: NodePath<namedTypes.DeclareModule>): any;
visitDeclareModuleExports?(this: Context & M, path: NodePath<namedTypes.DeclareModuleExports>): any;
visitDeclareExportDeclaration?(this: Context & M, path: NodePath<namedTypes.DeclareExportDeclaration>): any;
visitExportSpecifier?(this: Context & M, path: NodePath<namedTypes.ExportSpecifier>): any;
visitExportBatchSpecifier?(this: Context & M, path: NodePath<namedTypes.ExportBatchSpecifier>): any;
visitDeclareExportAllDeclaration?(this: Context & M, path: NodePath<namedTypes.DeclareExportAllDeclaration>): any;
visitFlowPredicate?(this: Context & M, path: NodePath<namedTypes.FlowPredicate>): any;
visitInferredPredicate?(this: Context & M, path: NodePath<namedTypes.InferredPredicate>): any;
visitDeclaredPredicate?(this: Context & M, path: NodePath<namedTypes.DeclaredPredicate>): any;
visitExportDeclaration?(this: Context & M, path: NodePath<namedTypes.ExportDeclaration>): any;
visitBlock?(this: Context & M, path: NodePath<namedTypes.Block>): any;
visitLine?(this: Context & M, path: NodePath<namedTypes.Line>): any;
visitNoop?(this: Context & M, path: NodePath<namedTypes.Noop>): any;
visitDoExpression?(this: Context & M, path: NodePath<namedTypes.DoExpression>): any;
visitSuper?(this: Context & M, path: NodePath<namedTypes.Super>): any;
visitBindExpression?(this: Context & M, path: NodePath<namedTypes.BindExpression>): any;
visitDecorator?(this: Context & M, path: NodePath<namedTypes.Decorator>): any;
visitMetaProperty?(this: Context & M, path: NodePath<namedTypes.MetaProperty>): any;
visitParenthesizedExpression?(this: Context & M, path: NodePath<namedTypes.ParenthesizedExpression>): any;
visitExportDefaultDeclaration?(this: Context & M, path: NodePath<namedTypes.ExportDefaultDeclaration>): any;
visitExportNamedDeclaration?(this: Context & M, path: NodePath<namedTypes.ExportNamedDeclaration>): any;
visitExportNamespaceSpecifier?(this: Context & M, path: NodePath<namedTypes.ExportNamespaceSpecifier>): any;
visitExportDefaultSpecifier?(this: Context & M, path: NodePath<namedTypes.ExportDefaultSpecifier>): any;
visitExportAllDeclaration?(this: Context & M, path: NodePath<namedTypes.ExportAllDeclaration>): any;
visitCommentBlock?(this: Context & M, path: NodePath<namedTypes.CommentBlock>): any;
visitCommentLine?(this: Context & M, path: NodePath<namedTypes.CommentLine>): any;
visitDirective?(this: Context & M, path: NodePath<namedTypes.Directive>): any;
visitDirectiveLiteral?(this: Context & M, path: NodePath<namedTypes.DirectiveLiteral>): any;
visitInterpreterDirective?(this: Context & M, path: NodePath<namedTypes.InterpreterDirective>): any;
visitStringLiteral?(this: Context & M, path: NodePath<namedTypes.StringLiteral>): any;
visitNumericLiteral?(this: Context & M, path: NodePath<namedTypes.NumericLiteral>): any;
visitBigIntLiteral?(this: Context & M, path: NodePath<namedTypes.BigIntLiteral>): any;
visitNullLiteral?(this: Context & M, path: NodePath<namedTypes.NullLiteral>): any;
visitBooleanLiteral?(this: Context & M, path: NodePath<namedTypes.BooleanLiteral>): any;
visitRegExpLiteral?(this: Context & M, path: NodePath<namedTypes.RegExpLiteral>): any;
visitObjectMethod?(this: Context & M, path: NodePath<namedTypes.ObjectMethod>): any;
visitClassPrivateProperty?(this: Context & M, path: NodePath<namedTypes.ClassPrivateProperty>): any;
visitClassMethod?(this: Context & M, path: NodePath<namedTypes.ClassMethod>): any;
visitClassPrivateMethod?(this: Context & M, path: NodePath<namedTypes.ClassPrivateMethod>): any;
visitPrivateName?(this: Context & M, path: NodePath<namedTypes.PrivateName>): any;
visitRestProperty?(this: Context & M, path: NodePath<namedTypes.RestProperty>): any;
visitForAwaitStatement?(this: Context & M, path: NodePath<namedTypes.ForAwaitStatement>): any;
visitImport?(this: Context & M, path: NodePath<namedTypes.Import>): any;
visitTSQualifiedName?(this: Context & M, path: NodePath<namedTypes.TSQualifiedName>): any;
visitTSTypeReference?(this: Context & M, path: NodePath<namedTypes.TSTypeReference>): any;
visitTSHasOptionalTypeParameters?(this: Context & M, path: NodePath<namedTypes.TSHasOptionalTypeParameters>): any;
visitTSHasOptionalTypeAnnotation?(this: Context & M, path: NodePath<namedTypes.TSHasOptionalTypeAnnotation>): any;
visitTSAsExpression?(this: Context & M, path: NodePath<namedTypes.TSAsExpression>): any;
visitTSNonNullExpression?(this: Context & M, path: NodePath<namedTypes.TSNonNullExpression>): any;
visitTSAnyKeyword?(this: Context & M, path: NodePath<namedTypes.TSAnyKeyword>): any;
visitTSBigIntKeyword?(this: Context & M, path: NodePath<namedTypes.TSBigIntKeyword>): any;
visitTSBooleanKeyword?(this: Context & M, path: NodePath<namedTypes.TSBooleanKeyword>): any;
visitTSNeverKeyword?(this: Context & M, path: NodePath<namedTypes.TSNeverKeyword>): any;
visitTSNullKeyword?(this: Context & M, path: NodePath<namedTypes.TSNullKeyword>): any;
visitTSNumberKeyword?(this: Context & M, path: NodePath<namedTypes.TSNumberKeyword>): any;
visitTSObjectKeyword?(this: Context & M, path: NodePath<namedTypes.TSObjectKeyword>): any;
visitTSStringKeyword?(this: Context & M, path: NodePath<namedTypes.TSStringKeyword>): any;
visitTSSymbolKeyword?(this: Context & M, path: NodePath<namedTypes.TSSymbolKeyword>): any;
visitTSUndefinedKeyword?(this: Context & M, path: NodePath<namedTypes.TSUndefinedKeyword>): any;
visitTSUnknownKeyword?(this: Context & M, path: NodePath<namedTypes.TSUnknownKeyword>): any;
visitTSVoidKeyword?(this: Context & M, path: NodePath<namedTypes.TSVoidKeyword>): any;
visitTSThisType?(this: Context & M, path: NodePath<namedTypes.TSThisType>): any;
visitTSArrayType?(this: Context & M, path: NodePath<namedTypes.TSArrayType>): any;
visitTSLiteralType?(this: Context & M, path: NodePath<namedTypes.TSLiteralType>): any;
visitTSUnionType?(this: Context & M, path: NodePath<namedTypes.TSUnionType>): any;
visitTSIntersectionType?(this: Context & M, path: NodePath<namedTypes.TSIntersectionType>): any;
visitTSConditionalType?(this: Context & M, path: NodePath<namedTypes.TSConditionalType>): any;
visitTSInferType?(this: Context & M, path: NodePath<namedTypes.TSInferType>): any;
visitTSTypeParameter?(this: Context & M, path: NodePath<namedTypes.TSTypeParameter>): any;
visitTSParenthesizedType?(this: Context & M, path: NodePath<namedTypes.TSParenthesizedType>): any;
visitTSFunctionType?(this: Context & M, path: NodePath<namedTypes.TSFunctionType>): any;
visitTSConstructorType?(this: Context & M, path: NodePath<namedTypes.TSConstructorType>): any;
visitTSDeclareFunction?(this: Context & M, path: NodePath<namedTypes.TSDeclareFunction>): any;
visitTSDeclareMethod?(this: Context & M, path: NodePath<namedTypes.TSDeclareMethod>): any;
visitTSMappedType?(this: Context & M, path: NodePath<namedTypes.TSMappedType>): any;
visitTSTupleType?(this: Context & M, path: NodePath<namedTypes.TSTupleType>): any;
visitTSRestType?(this: Context & M, path: NodePath<namedTypes.TSRestType>): any;
visitTSOptionalType?(this: Context & M, path: NodePath<namedTypes.TSOptionalType>): any;
visitTSIndexedAccessType?(this: Context & M, path: NodePath<namedTypes.TSIndexedAccessType>): any;
visitTSTypeOperator?(this: Context & M, path: NodePath<namedTypes.TSTypeOperator>): any;
visitTSIndexSignature?(this: Context & M, path: NodePath<namedTypes.TSIndexSignature>): any;
visitTSPropertySignature?(this: Context & M, path: NodePath<namedTypes.TSPropertySignature>): any;
visitTSMethodSignature?(this: Context & M, path: NodePath<namedTypes.TSMethodSignature>): any;
visitTSTypePredicate?(this: Context & M, path: NodePath<namedTypes.TSTypePredicate>): any;
visitTSCallSignatureDeclaration?(this: Context & M, path: NodePath<namedTypes.TSCallSignatureDeclaration>): any;
visitTSConstructSignatureDeclaration?(this: Context & M, path: NodePath<namedTypes.TSConstructSignatureDeclaration>): any;
visitTSEnumMember?(this: Context & M, path: NodePath<namedTypes.TSEnumMember>): any;
visitTSTypeQuery?(this: Context & M, path: NodePath<namedTypes.TSTypeQuery>): any;
visitTSImportType?(this: Context & M, path: NodePath<namedTypes.TSImportType>): any;
visitTSTypeLiteral?(this: Context & M, path: NodePath<namedTypes.TSTypeLiteral>): any;
visitTSTypeAssertion?(this: Context & M, path: NodePath<namedTypes.TSTypeAssertion>): any;
visitTSEnumDeclaration?(this: Context & M, path: NodePath<namedTypes.TSEnumDeclaration>): any;
visitTSTypeAliasDeclaration?(this: Context & M, path: NodePath<namedTypes.TSTypeAliasDeclaration>): any;
visitTSModuleBlock?(this: Context & M, path: NodePath<namedTypes.TSModuleBlock>): any;
visitTSModuleDeclaration?(this: Context & M, path: NodePath<namedTypes.TSModuleDeclaration>): any;
visitTSImportEqualsDeclaration?(this: Context & M, path: NodePath<namedTypes.TSImportEqualsDeclaration>): any;
visitTSExternalModuleReference?(this: Context & M, path: NodePath<namedTypes.TSExternalModuleReference>): any;
visitTSExportAssignment?(this: Context & M, path: NodePath<namedTypes.TSExportAssignment>): any;
visitTSNamespaceExportDeclaration?(this: Context & M, path: NodePath<namedTypes.TSNamespaceExportDeclaration>): any;
visitTSInterfaceBody?(this: Context & M, path: NodePath<namedTypes.TSInterfaceBody>): any;
visitTSInterfaceDeclaration?(this: Context & M, path: NodePath<namedTypes.TSInterfaceDeclaration>): any;
visitTSParameterProperty?(this: Context & M, path: NodePath<namedTypes.TSParameterProperty>): any;
visitOptionalMemberExpression?(this: Context & M, path: NodePath<namedTypes.OptionalMemberExpression>): any;
visitOptionalCallExpression?(this: Context & M, path: NodePath<namedTypes.OptionalCallExpression>): any;
}

@@ -166,12 +166,13 @@ "use strict";;

case "BinaryExpression":
case "LogicalExpression":
case "LogicalExpression": {
var n_1 = node;
var po = parent.operator;
var pp = PRECEDENCE[po];
var no = node.operator;
var pp_1 = PRECEDENCE[po];
var no = n_1.operator;
var np = PRECEDENCE[no];
if (pp > np) {
if (pp_1 > np) {
return true;
}
if (pp === np && this.name === "right") {
if (parent.right !== node) {
if (pp_1 === np && this.name === "right") {
if (parent.right !== n_1) {
throw new Error("Nodes must be equal");

@@ -181,2 +182,3 @@ }

}
}
default:

@@ -183,0 +185,0 @@ return false;

@@ -25,3 +25,3 @@ import { Fork, Omit } from "../types";

fromMethodsObject(methods?: any): Visitor;
visit(node: ASTNode, methods?: any): any;
visit<M = {}>(node: ASTNode, methods?: import("../gen/visitor").Visitor<M>): any;
}

@@ -28,0 +28,0 @@ export interface PathVisitorConstructor extends PathVisitorStatics {

@@ -207,3 +207,5 @@ "use strict";;

else if (ScopeType.check(node)) {
if (namedTypes.CatchClause.check(node)) {
if (namedTypes.CatchClause.check(node) &&
// TODO Broaden this to accept any pattern.
namedTypes.Identifier.check(node.param)) {
var catchParamName = node.param.name;

@@ -210,0 +212,0 @@ var hadBinding = hasOwn.call(bindings, catchParamName);

@@ -126,11 +126,7 @@ import { Fork } from "../types";

};
builders: {
[name: string]: Builder;
};
builders: import("../gen/builders").builders;
defineMethod: (name: any, func?: Function | undefined) => Function;
getBuilderName: (typeName: any) => any;
getStatementBuilderName: (typeName: any) => any;
namedTypes: {
[name: string]: AnyType;
};
namedTypes: import("../gen/namedTypes").NamedTypes;
getFieldNames: (object: any) => string[];

@@ -137,0 +133,0 @@ getFieldValue: (object: any, fieldName: any) => any;

@@ -1,16 +0,28 @@

import fork from "./fork";
import { Omit } from "./types";
import { ASTNode, Type, AnyType, Field } from "./lib/types";
import { NodePath } from "./lib/node-path";
import { NamedTypes } from "./gen/namedTypes";
import { Builders } from "./gen/builders";
import { namedTypes } from "./gen/namedTypes";
import { builders } from "./gen/builders";
import { Visitor } from "./gen/visitor";
declare type GenTypes = {
namedTypes: NamedTypes;
builders: Builders;
visit<M = {}>(node: ASTNode, methods?: Visitor<M> & M): any;
};
declare type Main = Omit<ReturnType<typeof fork>, keyof GenTypes> & GenTypes;
declare const main: Main;
export default main;
export { ASTNode, Type, AnyType, Field, NodePath, NamedTypes, Builders, Visitor, };
declare const astNodesAreEquivalent: {
(a: any, b: any, problemPath?: any): boolean;
assert(a: any, b: any): void;
}, builders: builders, builtInTypes: {
string: Type<string>;
function: Type<Function>;
array: Type<any[]>;
object: Type<{
[key: string]: any;
}>;
RegExp: Type<RegExp>;
Date: Type<Date>;
number: Type<number>;
boolean: Type<boolean>;
null: Type<null>;
undefined: Type<undefined>;
}, defineMethod: (name: any, func?: Function | undefined) => Function, eachField: (object: any, callback: (name: any, value: any) => any, context?: any) => void, finalize: () => void, getBuilderName: (typeName: any) => any, getFieldNames: (object: any) => string[], getFieldValue: (object: any, fieldName: any) => any, getSupertypeNames: (typeName: string) => string[], NodePath: import("./lib/node-path").NodePathConstructor, Path: import("./lib/path").PathConstructor, PathVisitor: import("./lib/path-visitor").PathVisitorConstructor, someField: (object: any, callback: (name: any, value: any) => any, context?: any) => boolean, Type: {
or(...types: any[]): Type<any>;
from<T>(value: any, name?: string | undefined): Type<T>;
def(typeName: string): import("./lib/types").Def<any>;
hasDef(typeName: string): boolean;
}, use: <T>(plugin: import("./types").Plugin<T>) => T, visit: <M = {}>(node: ASTNode, methods?: Visitor<M> | undefined) => any;
export { AnyType, ASTNode, astNodesAreEquivalent, builders, builtInTypes, defineMethod, eachField, Field, finalize, getBuilderName, getFieldNames, getFieldValue, getSupertypeNames, namedTypes, NodePath, Path, PathVisitor, someField, Type, use, visit, Visitor, };

@@ -1,2 +0,2 @@

"use strict";;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -16,3 +16,5 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

var es_proposals_1 = __importDefault(require("./def/es-proposals"));
var defs = [
var namedTypes_1 = require("./gen/namedTypes");
exports.namedTypes = namedTypes_1.namedTypes;
var _a = fork_1.default([
// This core module of AST types captures ES5 as it is parsed today by

@@ -31,5 +33,22 @@ // git://github.com/ariya/esprima.git#master.

es_proposals_1.default,
];
var main = fork_1.default(defs);
exports.default = main;
module.exports = exports["default"];
]), astNodesAreEquivalent = _a.astNodesAreEquivalent, builders = _a.builders, builtInTypes = _a.builtInTypes, defineMethod = _a.defineMethod, eachField = _a.eachField, finalize = _a.finalize, getBuilderName = _a.getBuilderName, getFieldNames = _a.getFieldNames, getFieldValue = _a.getFieldValue, getSupertypeNames = _a.getSupertypeNames, n = _a.namedTypes, NodePath = _a.NodePath, Path = _a.Path, PathVisitor = _a.PathVisitor, someField = _a.someField, Type = _a.Type, use = _a.use, visit = _a.visit;
exports.astNodesAreEquivalent = astNodesAreEquivalent;
exports.builders = builders;
exports.builtInTypes = builtInTypes;
exports.defineMethod = defineMethod;
exports.eachField = eachField;
exports.finalize = finalize;
exports.getBuilderName = getBuilderName;
exports.getFieldNames = getFieldNames;
exports.getFieldValue = getFieldValue;
exports.getSupertypeNames = getSupertypeNames;
exports.NodePath = NodePath;
exports.Path = Path;
exports.PathVisitor = PathVisitor;
exports.someField = someField;
exports.Type = Type;
exports.use = use;
exports.visit = visit;
// Populate the exported fields of the namedTypes namespace, while still
// retaining its member types.
Object.assign(namedTypes_1.namedTypes, n);
{
"author": "Ben Newman <bn@cs.stanford.edu>",
"name": "ast-types",
"version": "0.12.4",
"version": "0.13.0",
"description": "Esprima-compatible implementation of the Mozilla JS Parser API",

@@ -41,15 +41,15 @@ "keywords": [

"devDependencies": {
"@babel/parser": "7.4.3",
"@babel/types": "7.4.0",
"@babel/parser": "7.4.4",
"@babel/types": "7.4.4",
"@types/esprima": "4.0.2",
"@types/glob": "7.1.1",
"@types/mocha": "5.2.6",
"@types/node": "11.13.7",
"@types/node": "12.0.0",
"espree": "5.0.1",
"esprima": "4.0.1",
"esprima-fb": "15001.1001.0-dev-harmony-fb",
"flow-parser": "0.97.0",
"glob": "7.1.3",
"flow-parser": "0.98.1",
"glob": "7.1.4",
"mocha": "6.1.4",
"recast": "0.17.5",
"recast": "0.17.6",
"reify": "0.18.1",

@@ -59,3 +59,3 @@ "ts-add-module-exports": "1.0.0",

"ts-node": "7.0.1",
"typescript": "3.4.3"
"typescript": "3.4.5"
},

@@ -62,0 +62,0 @@ "engines": {

@@ -27,9 +27,11 @@ # AST Types [![Build Status](https://travis-ci.org/benjamn/ast-types.svg?branch=master)](https://travis-ci.org/benjamn/ast-types) [![Greenkeeper badge](https://badges.greenkeeper.io/benjamn/ast-types.svg)](https://greenkeeper.io/)

```js
var assert = require("assert");
var n = require("ast-types").namedTypes;
var b = require("ast-types").builders;
import assert from "assert";
import {
namedTypes as n,
builders as b,
} from "ast-types";
var fooId = b.identifier("foo");
var ifFoo = b.ifStatement(fooId, b.blockStatement([
b.expressionStatement(b.callExpression(fooId, []))
b.expressionStatement(b.callExpression(fooId, []))
]));

@@ -43,4 +45,5 @@

assert.strictEqual(
ifFoo.consequent.body[0].expression.arguments.length,
0);
ifFoo.consequent.body[0].expression.arguments.length,
0,
);

@@ -64,8 +67,12 @@ assert.strictEqual(ifFoo.test, fooId);

```js
var types = require("ast-types");
var partialFunExpr = { type: "FunctionExpression" };
import {
getFieldNames,
getFieldValue,
} from "ast-types";
const partialFunExpr = { type: "FunctionExpression" };
// Even though partialFunExpr doesn't actually contain all the fields that
// are expected for a FunctionExpression, types.getFieldNames knows:
console.log(types.getFieldNames(partialFunExpr));
console.log(getFieldNames(partialFunExpr));
// [ 'type', 'id', 'params', 'body', 'generator', 'expression',

@@ -76,3 +83,3 @@ // 'defaults', 'rest', 'async' ]

// the default if the field is not actually defined.
console.log(types.getFieldValue(partialFunExpr, "generator"));
console.log(getFieldValue(partialFunExpr, "generator"));
// false

@@ -88,7 +95,7 @@ ```

// Def, the callback will never be called.
exports.eachField = function(object, callback, context) {
getFieldNames(object).forEach(function(name) {
callback.call(this, name, getFieldValue(object, name));
}, context);
};
export function eachField(object, callback, context) {
getFieldNames(object).forEach(function(name) {
callback.call(this, name, getFieldValue(object, name));
}, context);
}

@@ -99,7 +106,7 @@ // Similar to eachField, except that iteration stops as soon as the

// returned true for any element or not.
exports.someField = function(object, callback, context) {
return getFieldNames(object).some(function(name) {
return callback.call(this, name, getFieldValue(object, name));
}, context);
};
export function someField(object, callback, context) {
return getFieldNames(object).some(function(name) {
return callback.call(this, name, getFieldValue(object, name));
}, context);
}
```

@@ -109,8 +116,9 @@

```js
var copy = {};
require("ast-types").eachField(node, function(name, value) {
// Note that undefined fields will be visited too, according to
// the rules associated with node.type, and default field values
// will be substituted if appropriate.
copy[name] = value;
import { eachField } from "ast-types";
const copy = {};
eachField(node, function(name, value) {
// Note that undefined fields will be visited too, according to
// the rules associated with node.type, and default field values
// will be substituted if appropriate.
copy[name] = value;
})

@@ -125,26 +133,30 @@ ```

```js
var assert = require("assert");
var types = require("ast-types");
var n = types.namedTypes;
import assert from "assert";
import {
visit,
namedTypes as n,
} from "ast-types";
types.visit(ast, {
// This method will be called for any node with .type "MemberExpression":
visitMemberExpression: function(path) {
// Visitor methods receive a single argument, a NodePath object
// wrapping the node of interest.
var node = path.node;
visit(ast, {
// This method will be called for any node with .type "MemberExpression":
visitMemberExpression(path) {
// Visitor methods receive a single argument, a NodePath object
// wrapping the node of interest.
var node = path.node;
if (n.Identifier.check(node.object) &&
node.object.name === "arguments" &&
n.Identifier.check(node.property)) {
assert.notStrictEqual(node.property.name, "callee");
}
if (
n.Identifier.check(node.object) &&
node.object.name === "arguments" &&
n.Identifier.check(node.property)
) {
assert.notStrictEqual(node.property.name, "callee");
}
// It's your responsibility to call this.traverse with some
// NodePath object (usually the one passed into the visitor
// method) before the visitor method returns, or return false to
// indicate that the traversal need not continue any further down
// this subtree.
this.traverse(path);
}
// It's your responsibility to call this.traverse with some
// NodePath object (usually the one passed into the visitor
// method) before the visitor method returns, or return false to
// indicate that the traversal need not continue any further down
// this subtree.
this.traverse(path);
}
});

@@ -157,83 +169,83 @@ ```

```js
var b = types.builders;
import { builders as b, visit } from "ast-types";
// Reuse the same AST structure for Array.prototype.slice.call.
var sliceExpr = b.memberExpression(
b.memberExpression(
b.memberExpression(
b.memberExpression(
b.identifier("Array"),
b.identifier("prototype"),
false
),
b.identifier("slice"),
false
b.identifier("Array"),
b.identifier("prototype"),
false
),
b.identifier("call"),
b.identifier("slice"),
false
),
b.identifier("call"),
false
);
types.visit(ast, {
// This method will be called for any node whose type is a subtype of
// Function (e.g., FunctionDeclaration, FunctionExpression, and
// ArrowFunctionExpression). Note that types.visit precomputes a
// lookup table from every known type to the appropriate visitor
// method to call for nodes of that type, so the dispatch takes
// constant time.
visitFunction: function(path) {
// Visitor methods receive a single argument, a NodePath object
// wrapping the node of interest.
var node = path.node;
visit(ast, {
// This method will be called for any node whose type is a subtype of
// Function (e.g., FunctionDeclaration, FunctionExpression, and
// ArrowFunctionExpression). Note that types.visit precomputes a
// lookup table from every known type to the appropriate visitor
// method to call for nodes of that type, so the dispatch takes
// constant time.
visitFunction(path) {
// Visitor methods receive a single argument, a NodePath object
// wrapping the node of interest.
const node = path.node;
// It's your responsibility to call this.traverse with some
// NodePath object (usually the one passed into the visitor
// method) before the visitor method returns, or return false to
// indicate that the traversal need not continue any further down
// this subtree. An assertion will fail if you forget, which is
// awesome, because it means you will never again make the
// disastrous mistake of forgetting to traverse a subtree. Also
// cool: because you can call this method at any point in the
// visitor method, it's up to you whether your traversal is
// pre-order, post-order, or both!
this.traverse(path);
// It's your responsibility to call this.traverse with some
// NodePath object (usually the one passed into the visitor
// method) before the visitor method returns, or return false to
// indicate that the traversal need not continue any further down
// this subtree. An assertion will fail if you forget, which is
// awesome, because it means you will never again make the
// disastrous mistake of forgetting to traverse a subtree. Also
// cool: because you can call this method at any point in the
// visitor method, it's up to you whether your traversal is
// pre-order, post-order, or both!
this.traverse(path);
// This traversal is only concerned with Function nodes that have
// rest parameters.
if (!node.rest) {
return;
}
// This traversal is only concerned with Function nodes that have
// rest parameters.
if (!node.rest) {
return;
}
// For the purposes of this example, we won't worry about functions
// with Expression bodies.
n.BlockStatement.assert(node.body);
// For the purposes of this example, we won't worry about functions
// with Expression bodies.
n.BlockStatement.assert(node.body);
// Use types.builders to build a variable declaration of the form
//
// var rest = Array.prototype.slice.call(arguments, n);
//
// where `rest` is the name of the rest parameter, and `n` is a
// numeric literal specifying the number of named parameters the
// function takes.
var restVarDecl = b.variableDeclaration("var", [
b.variableDeclarator(
node.rest,
b.callExpression(sliceExpr, [
b.identifier("arguments"),
b.literal(node.params.length)
])
)
]);
// Use types.builders to build a variable declaration of the form
//
// var rest = Array.prototype.slice.call(arguments, n);
//
// where `rest` is the name of the rest parameter, and `n` is a
// numeric literal specifying the number of named parameters the
// function takes.
const restVarDecl = b.variableDeclaration("var", [
b.variableDeclarator(
node.rest,
b.callExpression(sliceExpr, [
b.identifier("arguments"),
b.literal(node.params.length)
])
)
]);
// Similar to doing node.body.body.unshift(restVarDecl), except
// that the other NodePath objects wrapping body statements will
// have their indexes updated to accommodate the new statement.
path.get("body", "body").unshift(restVarDecl);
// Similar to doing node.body.body.unshift(restVarDecl), except
// that the other NodePath objects wrapping body statements will
// have their indexes updated to accommodate the new statement.
path.get("body", "body").unshift(restVarDecl);
// Nullify node.rest now that we have simulated the behavior of
// the rest parameter using ordinary JavaScript.
path.get("rest").replace(null);
// Nullify node.rest now that we have simulated the behavior of
// the rest parameter using ordinary JavaScript.
path.get("rest").replace(null);
// There's nothing wrong with doing node.rest = null, but I wanted
// to point out that the above statement has the same effect.
assert.strictEqual(node.rest, null);
}
// There's nothing wrong with doing node.rest = null, but I wanted
// to point out that the above statement has the same effect.
assert.strictEqual(node.rest, null);
}
});

@@ -247,60 +259,60 @@ ```

function usesThis(funcNode) {
n.Function.assert(funcNode);
var result = false;
n.Function.assert(funcNode);
var result = false;
types.visit(funcNode, {
visitThisExpression: function(path) {
result = true;
visit(funcNode, {
visitThisExpression(path) {
result = true;
// The quickest way to terminate the traversal is to call
// this.abort(), which throws a special exception (instanceof
// this.AbortRequest) that will be caught in the top-level
// types.visit method, so you don't have to worry about
// catching the exception yourself.
this.abort();
},
// The quickest way to terminate the traversal is to call
// this.abort(), which throws a special exception (instanceof
// this.AbortRequest) that will be caught in the top-level
// types.visit method, so you don't have to worry about
// catching the exception yourself.
this.abort();
},
visitFunction: function(path) {
// ThisExpression nodes in nested scopes don't count as `this`
// references for the original function node, so we can safely
// avoid traversing this subtree.
return false;
},
visitFunction(path) {
// ThisExpression nodes in nested scopes don't count as `this`
// references for the original function node, so we can safely
// avoid traversing this subtree.
return false;
},
visitCallExpression: function(path) {
var node = path.node;
visitCallExpression(path) {
const node = path.node;
// If the function contains CallExpression nodes involving
// super, those expressions will implicitly depend on the
// value of `this`, even though they do not explicitly contain
// any ThisExpression nodes.
if (this.isSuperCallExpression(node)) {
result = true;
this.abort(); // Throws AbortRequest exception.
}
// If the function contains CallExpression nodes involving
// super, those expressions will implicitly depend on the
// value of `this`, even though they do not explicitly contain
// any ThisExpression nodes.
if (this.isSuperCallExpression(node)) {
result = true;
this.abort(); // Throws AbortRequest exception.
}
this.traverse(path);
},
this.traverse(path);
},
// Yes, you can define arbitrary helper methods.
isSuperCallExpression: function(callExpr) {
n.CallExpression.assert(callExpr);
return this.isSuperIdentifier(callExpr.callee)
|| this.isSuperMemberExpression(callExpr.callee);
},
// Yes, you can define arbitrary helper methods.
isSuperCallExpression(callExpr) {
n.CallExpression.assert(callExpr);
return this.isSuperIdentifier(callExpr.callee)
|| this.isSuperMemberExpression(callExpr.callee);
},
// And even helper helper methods!
isSuperIdentifier: function(node) {
return n.Identifier.check(node.callee)
&& node.callee.name === "super";
},
// And even helper helper methods!
isSuperIdentifier(node) {
return n.Identifier.check(node.callee)
&& node.callee.name === "super";
},
isSuperMemberExpression: function(node) {
return n.MemberExpression.check(node.callee)
&& n.Identifier.check(node.callee.object)
&& node.callee.object.name === "super";
}
});
isSuperMemberExpression(node) {
return n.MemberExpression.check(node.callee)
&& n.Identifier.check(node.callee.object)
&& node.callee.object.name === "super";
}
});
return result;
return result;
}

@@ -397,4 +409,4 @@ ```

path.get("elements", 2).replace(
b.identifier("foo"),
b.thisExpression()
b.identifier("foo"),
b.thisExpression()
);

@@ -446,31 +458,36 @@

```js
var types = require("ast-types");
var def = types.Type.def;
var string = types.builtInTypes.string;
var b = types.builders;
import {
Type,
builtInTypes,
builders as b,
finalize,
} from "ast-types";
const { def } = Type;
const { string } = builtInTypes;
// Suppose you need a named File type to wrap your Programs.
def("File")
.bases("Node")
.build("name", "program")
.field("name", string)
.field("program", def("Program"));
.bases("Node")
.build("name", "program")
.field("name", string)
.field("program", def("Program"));
// Prevent further modifications to the File type (and any other
// types newly introduced by def(...)).
types.finalize();
finalize();
// The b.file builder function is now available. It expects two
// arguments, as named by .build("name", "program") above.
var main = b.file("main.js", b.program([
// Pointless program contents included for extra color.
b.functionDeclaration(b.identifier("succ"), [
b.identifier("x")
], b.blockStatement([
b.returnStatement(
b.binaryExpression(
"+", b.identifier("x"), b.literal(1)
)
)
]))
const main = b.file("main.js", b.program([
// Pointless program contents included for extra color.
b.functionDeclaration(b.identifier("succ"), [
b.identifier("x")
], b.blockStatement([
b.returnStatement(
b.binaryExpression(
"+", b.identifier("x"), b.literal(1)
)
)
]))
]));

@@ -477,0 +494,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc