import type {SourceUnit, ElementaryTypeName, Assignment, BinaryOperation, Conditional, ElementaryTypeNameExpression, IndexAccess, FunctionCall, FunctionCallOptions, Literal, MemberAccess, NewExpression, TupleExpression, UnaryOperation, FunctionTypeName, ForStatement, IfStatement, EmitStatement, ExpressionStatement, VariableDeclarationStatement, WhileStatement, PlaceholderStatement, UserDefinedTypeName, InheritanceSpecifier, ModifierInvocation, Identifier, Block, OverrideSpecifier, EnumValue, EnumDefinition, EventDefinition, FunctionDefinition, ParameterList, ArrayTypeName, Mapping, ModifierDefinition, InlineAssembly, ImportDirective, PragmaDirective, ContractDefinition, Return, StructDefinition, UsingForDirective, VariableDeclaration, StructuredDocumentation} from './types';
export type Node = SourceUnit | ElementaryTypeName | Assignment | BinaryOperation | Conditional | ElementaryTypeNameExpression | IndexAccess | FunctionCall | FunctionCallOptions | Literal | MemberAccess | NewExpression | TupleExpression | UnaryOperation | FunctionTypeName | ForStatement | IfStatement | EmitStatement | ExpressionStatement | VariableDeclarationStatement | WhileStatement | PlaceholderStatement | UserDefinedTypeName | InheritanceSpecifier | ModifierInvocation | Identifier | Block | OverrideSpecifier | EnumValue | EnumDefinition | EventDefinition | FunctionDefinition | ParameterList | ArrayTypeName | Mapping | ModifierDefinition | InlineAssembly | ImportDirective | PragmaDirective | ContractDefinition | Return | StructDefinition | UsingForDirective | VariableDeclaration | StructuredDocumentation;
export type NodeTypeMap = { SourceUnit: SourceUnit, ElementaryTypeName: ElementaryTypeName, Assignment: Assignment, BinaryOperation: BinaryOperation, Conditional: Conditional, ElementaryTypeNameExpression: ElementaryTypeNameExpression, IndexAccess: IndexAccess, FunctionCall: FunctionCall, FunctionCallOptions: FunctionCallOptions, Literal: Literal, MemberAccess: MemberAccess, NewExpression: NewExpression, TupleExpression: TupleExpression, UnaryOperation: UnaryOperation, FunctionTypeName: FunctionTypeName, ForStatement: ForStatement, IfStatement: IfStatement, EmitStatement: EmitStatement, ExpressionStatement: ExpressionStatement, VariableDeclarationStatement: VariableDeclarationStatement, WhileStatement: WhileStatement, PlaceholderStatement: PlaceholderStatement, UserDefinedTypeName: UserDefinedTypeName, InheritanceSpecifier: InheritanceSpecifier, ModifierInvocation: ModifierInvocation, Identifier: Identifier, Block: Block, OverrideSpecifier: OverrideSpecifier, EnumValue: EnumValue, EnumDefinition: EnumDefinition, EventDefinition: EventDefinition, FunctionDefinition: FunctionDefinition, ParameterList: ParameterList, ArrayTypeName: ArrayTypeName, Mapping: Mapping, ModifierDefinition: ModifierDefinition, InlineAssembly: InlineAssembly, ImportDirective: ImportDirective, PragmaDirective: PragmaDirective, ContractDefinition: ContractDefinition, Return: Return, StructDefinition: StructDefinition, UsingForDirective: UsingForDirective, VariableDeclaration: VariableDeclaration, StructuredDocumentation: StructuredDocumentation };
export type NodeType = keyof NodeTypeMap;