blob: 9b7e929a287100c5497909969cd135025e2a5264 [file] [log] [blame]
import { TSESTree } from '../ts-estree';
import { EcmaVersion } from '../ts-eslint';
import { Scope } from './Scope';
import { Variable } from './Variable';
interface ScopeManagerOptions {
directive?: boolean;
optimistic?: boolean;
ignoreEval?: boolean;
nodejsScope?: boolean;
sourceType?: 'module' | 'script';
impliedStrict?: boolean;
ecmaVersion?: EcmaVersion;
}
interface ScopeManager {
__options: ScopeManagerOptions;
__currentScope: Scope;
__nodeToScope: WeakMap<TSESTree.Node, Scope[]>;
__declaredVariables: WeakMap<TSESTree.Node, Variable[]>;
scopes: Scope[];
globalScope: Scope;
__useDirective(): boolean;
__isOptimistic(): boolean;
__ignoreEval(): boolean;
__isNodejsScope(): boolean;
isModule(): boolean;
isImpliedStrict(): boolean;
isStrictModeSupported(): boolean;
__get(node: TSESTree.Node): Scope | undefined;
getDeclaredVariables(node: TSESTree.Node): Variable[];
acquire(node: TSESTree.Node, inner?: boolean): Scope | null;
acquireAll(node: TSESTree.Node): Scope | null;
release(node: TSESTree.Node, inner?: boolean): Scope | null;
attach(): void;
detach(): void;
__nestScope<T extends Scope>(scope: T): T;
__nestGlobalScope(node: TSESTree.Node): Scope;
__nestBlockScope(node: TSESTree.Node): Scope;
__nestFunctionScope(node: TSESTree.Node, isMethodDefinition: boolean): Scope;
__nestForScope(node: TSESTree.Node): Scope;
__nestCatchScope(node: TSESTree.Node): Scope;
__nestWithScope(node: TSESTree.Node): Scope;
__nestClassScope(node: TSESTree.Node): Scope;
__nestSwitchScope(node: TSESTree.Node): Scope;
__nestModuleScope(node: TSESTree.Node): Scope;
__nestFunctionExpressionNameScope(node: TSESTree.Node): Scope;
__isES6(): boolean;
}
declare const ScopeManager: new (options: ScopeManagerOptions) => ScopeManager;
export { ScopeManager, ScopeManagerOptions };
//# sourceMappingURL=ScopeManager.d.ts.map