import * as esrecurse from "esrecurse"; import { ImplicitGlobal } from "./reference"; import { VariableType } from "./variable"; import { PatternVisitorCallback, AssignmentType } from "./patternVisitor"; import { ScopeManager } from "./scopeManager"; import { Scope } from "./scope"; import * as ESTree from "estree"; export declare class Referencer extends esrecurse.Visitor { readonly options: esrecurse.VisitorOption; readonly scopeManager: ScopeManager; parent: Referencer | null; isInnerMethodDefinition: boolean; exportingSource: string | null; isExportingFromLocal: boolean; constructor(options: esrecurse.VisitorOption, scopeManager: ScopeManager); readonly currentScope: Scope<ESTree.Node> | null; close(node: ESTree.Node): void; pushInnerMethodDefinition(isInnerMethodDefinition: boolean): boolean; popInnerMethodDefinition(isInnerMethodDefinition: boolean): void; materializeTDZScope(node: ESTree.Node, iterationNode: ESTree.ForOfStatement | ESTree.ForInStatement): void; materializeIterationScope(node: ESTree.ForInStatement | ESTree.ForOfStatement): void; referencingDefaultValue(pattern: ESTree.Pattern, assignments: AssignmentType[], maybeImplicitGlobal?: ImplicitGlobal, init?: boolean): void; visitPattern(node: ESTree.Pattern, options: { processRightHandNodes: boolean; } | undefined, callback: PatternVisitorCallback): void; visitFunction(node: ESTree.Function): void; visitClass(node: ESTree.Class): void; visitProperty(node: any): void; visitForIn(node: ESTree.ForInStatement | ESTree.ForOfStatement): void; visitVariableDeclaration(variableTargetScope: Scope, type: VariableType, node: ESTree.VariableDeclaration, index: number, fromTDZ?: boolean): void; AssignmentExpression(node: ESTree.AssignmentExpression): void; CatchClause(node: ESTree.CatchClause): void; Program(node: ESTree.Program): void; Identifier(node: ESTree.Identifier): void; UpdateExpression(node: ESTree.UpdateExpression): void; MemberExpression(node: ESTree.MemberExpression): void; Property(node: ESTree.Property): void; MethodDefinition(node: ESTree.MethodDefinition): void; BreakStatement(): void; ContinueStatement(): void; LabeledStatement(node: ESTree.LabeledStatement): void; ForStatement(node: ESTree.ForStatement): void; ClassExpression(node: ESTree.ClassExpression): void; ClassDeclaration(node: ESTree.ClassDeclaration): void; CallExpression(node: ESTree.CallExpression): void; BlockStatement(node: ESTree.BlockStatement): void; ThisExpression(): void; WithStatement(node: ESTree.WithStatement): void; VariableDeclaration(node: ESTree.VariableDeclaration): void; SwitchStatement(node: ESTree.SwitchStatement): void; FunctionDeclaration(node: ESTree.FunctionDeclaration): void; FunctionExpression(node: ESTree.FunctionExpression): void; ForOfStatement(node: ESTree.ForOfStatement): void; ForInStatement(node: ESTree.ForInStatement): void; ArrowFunctionExpression(node: ESTree.ArrowFunctionExpression): void; ImportDeclaration(node: ESTree.ImportDeclaration): void; visitExportDeclaration(node: ESTree.ExportNamedDeclaration): void; ExportNamedDeclaration(node: ESTree.ExportNamedDeclaration): void; ExportDefaultDeclaration(node: ESTree.ExportDefaultDeclaration): void; ExportAllDeclaration(node: ESTree.ExportAllDeclaration): void; ExportSpecifier(node: ESTree.ExportSpecifier): void; MetaProperty(): void; }