import type { CallExpression, OptionalChainCallExpression, NonOptionalChainCallExpression, } from "./node/call"; import type { ChainExpression } from "./node/chain"; import type { ClassExpression, ClassDeclaration, ClassBody, ConstructorMethodDefinition, ComputedPlainMethodDefinition, NonComputedPlainMethodDefinition, ComputedGetterMethodDefinition, NonComputedGetterMethodDefinition, ComputedSetterMethodDefinition, NonComputedSetterMethodDefinition, ComputedPropertyDefinition, NonComputedPropertyDefinition, StaticBlock, AnonymousClassDeclaration, } from "./node/class"; import type { VariableDeclaration, VariableDeclarator, } from "./node/declaration"; import type { ThisExpression, ArrayExpression, SequenceExpression, UnaryExpression, InBinaryExpression, OtherBinaryExpression, UpdateAssignmentExpression, DirectAssignmentExpression, UpdateExpression, LogicalExpression, ConditionalExpression, NewExpression, Super, SpreadElement, YieldExpression, MetaProperty, ImportExpression, AwaitExpression, } from "./node/expression"; import type { FunctionExpression, ExpressionArrowFunctionExpression, BlockArrowFunctionExpression, FunctionDeclaration, AnonymousFunctionDeclaration, } from "./node/function"; import type { Identifier, PrivateIdentifier } from "./node/identifier"; import type { NullLiteral, TrueLiteral, FalseLiteral, NumberLiteral, StringLiteral, BigIntLiteral, RegExpLiteral, } from "./node/literal"; import type { ComputedMemberExpression, NonComputedMemberExpression, ComputedOptionalChainMemberExpression, NonComputedOptionalChainMemberExpression, ComputedNonOptionalChainMemberExpression, NonComputedNonOptionalChainMemberExpression, } from "./node/member"; import type { ImportDeclaration, RegularImportSpecifier, ImportDefaultSpecifier, ImportNamespaceSpecifier, AggregateExportNamedDeclaration, IndirectExportNamedDeclaration, DirectExportNamedDeclaration, AggregateExportSpecifier, ExportSpecifier, ExportDefaultDeclaration, ExportAllDeclaration, } from "./node/module"; import type { ObjectExpression, NonComputedValueObjectProperty, ComputedValueObjectProperty, NonComputedMethodObjectProperty, ComputedMethodObjectProperty, ComputedGetterObjectProperty, NonComputedGetterObjectProperty, ComputedSetterObjectProperty, NonComputedSetterObjectProperty, } from "./node/object"; import type { NonComputedPatternProperty, ComputedPatternProperty, RestElement, ObjectPattern, ArrayPattern, AssignmentPattern, } from "./node/pattern"; import type { ModuleProgram, ScriptProgram } from "./node/program"; import type { SwitchCase, CatchClause, EmptyStatement, BlockStatement, ExpressionStatement, IfStatement, LabeledStatement, BreakStatement, ContinueStatement, WithStatement, SwitchStatement, ReturnStatement, ThrowStatement, TryStatement, WhileStatement, DoWhileStatement, ForStatement, ForInStatement, ForOfStatement, DebuggerStatement, } from "./node/statement"; import type { TaggedTemplateExpression, TemplateLiteral, TemplateElement, } from "./node/template"; export type Function = | FunctionExpression | ExpressionArrowFunctionExpression | BlockArrowFunctionExpression | FunctionDeclaration | AnonymousFunctionDeclaration; export type Class = | ClassExpression | ClassDeclaration | AnonymousClassDeclaration; export type Node = | CallExpression | OptionalChainCallExpression | NonOptionalChainCallExpression | ChainExpression | ClassExpression | ClassDeclaration | AnonymousClassDeclaration | ClassBody | ConstructorMethodDefinition | ComputedPlainMethodDefinition | NonComputedPlainMethodDefinition | ComputedGetterMethodDefinition | NonComputedGetterMethodDefinition | ComputedSetterMethodDefinition | NonComputedSetterMethodDefinition | ComputedPropertyDefinition | NonComputedPropertyDefinition | StaticBlock | VariableDeclaration | VariableDeclarator | ThisExpression | ArrayExpression | SequenceExpression | UnaryExpression | InBinaryExpression | OtherBinaryExpression | UpdateAssignmentExpression | DirectAssignmentExpression | UpdateExpression | LogicalExpression | ConditionalExpression | NewExpression | Super | SpreadElement | YieldExpression | MetaProperty | ImportExpression | AwaitExpression | FunctionExpression | ExpressionArrowFunctionExpression | BlockArrowFunctionExpression | FunctionDeclaration | AnonymousFunctionDeclaration | Identifier | PrivateIdentifier | NullLiteral | TrueLiteral | FalseLiteral | NumberLiteral | StringLiteral | BigIntLiteral | RegExpLiteral | ComputedMemberExpression | NonComputedMemberExpression | ComputedOptionalChainMemberExpression | NonComputedOptionalChainMemberExpression | ComputedNonOptionalChainMemberExpression | NonComputedNonOptionalChainMemberExpression | ImportDeclaration | RegularImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | AggregateExportNamedDeclaration | IndirectExportNamedDeclaration | DirectExportNamedDeclaration | AggregateExportSpecifier | ExportSpecifier | ExportDefaultDeclaration | ExportAllDeclaration | ObjectExpression | NonComputedValueObjectProperty | ComputedValueObjectProperty | NonComputedMethodObjectProperty | ComputedMethodObjectProperty | ComputedGetterObjectProperty | NonComputedGetterObjectProperty | ComputedSetterObjectProperty | NonComputedSetterObjectProperty | NonComputedPatternProperty | ComputedPatternProperty | RestElement | ObjectPattern | ArrayPattern | AssignmentPattern | ModuleProgram | ScriptProgram | SwitchCase | CatchClause | EmptyStatement | BlockStatement | ExpressionStatement | IfStatement | LabeledStatement | BreakStatement | ContinueStatement | WithStatement | SwitchStatement | ReturnStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | DebuggerStatement | TaggedTemplateExpression | TemplateLiteral | TemplateElement;