1 import { TSESTree } from '../ts-estree';
2 import { EcmaVersion } from '../ts-eslint';
3 import { Scope } from './Scope';
4 import { Variable } from './Variable';
5 interface ScopeManagerOptions {
10 sourceType?: 'module' | 'script';
11 impliedStrict?: boolean;
12 ecmaVersion?: EcmaVersion;
14 interface ScopeManager {
15 __options: ScopeManagerOptions;
16 __currentScope: Scope;
17 __nodeToScope: WeakMap<TSESTree.Node, Scope[]>;
18 __declaredVariables: WeakMap<TSESTree.Node, Variable[]>;
21 __useDirective(): boolean;
22 __isOptimistic(): boolean;
23 __ignoreEval(): boolean;
24 __isNodejsScope(): boolean;
26 isImpliedStrict(): boolean;
27 isStrictModeSupported(): boolean;
28 __get(node: TSESTree.Node): Scope | undefined;
29 getDeclaredVariables(node: TSESTree.Node): Variable[];
30 acquire(node: TSESTree.Node, inner?: boolean): Scope | null;
31 acquireAll(node: TSESTree.Node): Scope | null;
32 release(node: TSESTree.Node, inner?: boolean): Scope | null;
35 __nestScope<T extends Scope>(scope: T): T;
36 __nestGlobalScope(node: TSESTree.Node): Scope;
37 __nestBlockScope(node: TSESTree.Node): Scope;
38 __nestFunctionScope(node: TSESTree.Node, isMethodDefinition: boolean): Scope;
39 __nestForScope(node: TSESTree.Node): Scope;
40 __nestCatchScope(node: TSESTree.Node): Scope;
41 __nestWithScope(node: TSESTree.Node): Scope;
42 __nestClassScope(node: TSESTree.Node): Scope;
43 __nestSwitchScope(node: TSESTree.Node): Scope;
44 __nestModuleScope(node: TSESTree.Node): Scope;
45 __nestFunctionExpressionNameScope(node: TSESTree.Node): Scope;
48 declare const ScopeManager: new (options: ScopeManagerOptions) => ScopeManager;
49 export { ScopeManager, ScopeManagerOptions };
50 //# sourceMappingURL=ScopeManager.d.ts.map