import { Scope } from "./scope"; import { Variable } from "./variable"; import * as ESTree from "estree"; export declare class ScopeManager { readonly __options: any; constructor(__options: any); globalScope: Scope | null; __currentScope: Scope | null; readonly scopes: Scope[]; readonly __nodeToScope: WeakMap; readonly __declaredVariables: WeakMap; __useDirective(): any; __isOptimistic(): any; __ignoreEval(): any; __isNodejsScope(): any; isModule(): boolean; isImpliedStrict(): any; isStrictModeSupported(): boolean; __get(node: ESTree.Node): Scope[] | undefined; getDeclaredVariables(node: ESTree.Node[]): Variable[]; acquire(node: ESTree.Node, inner: boolean): Scope | null; acquireAll(node: ESTree.Node): Scope[] | undefined; release(node: ESTree.Node, inner: boolean): Scope | null; attach(): void; detach(): void; __nestScope(scope: Scope): Scope; __nestGlobalScope(node: ESTree.Node): Scope; __nestBlockScope(node: ESTree.Node): Scope; __nestFunctionScope(node: ESTree.Function | ESTree.Program, isMethodDefinition: boolean): Scope; __nestForScope(node: ESTree.Node): Scope; __nestCatchScope(node: ESTree.Node): Scope; __nestWithScope(node: ESTree.Node): Scope; __nestClassScope(node: ESTree.Node): Scope; __nestSwitchScope(node: ESTree.SwitchStatement): Scope; __nestModuleScope(node: ESTree.Node): Scope; __nestTDZScope(node: ESTree.Node): Scope; __nestFunctionExpressionNameScope(node: ESTree.FunctionExpression): Scope; __isES6(): boolean; }