--- /dev/null
+import { TSESTree } from '../ts-estree';\r
+import { Definition } from './Definition';\r
+import { Reference, ReferenceFlag } from './Reference';\r
+import { ScopeManager } from './ScopeManager';\r
+import { Variable } from './Variable';\r
+declare type ScopeType = 'block' | 'catch' | 'class' | 'for' | 'function' | 'function-expression-name' | 'global' | 'module' | 'switch' | 'with' | 'TDZ' | 'enum' | 'empty-function';\r
+interface Scope {\r
+ type: ScopeType;\r
+ isStrict: boolean;\r
+ upper: Scope | null;\r
+ childScopes: Scope[];\r
+ variableScope: Scope;\r
+ block: TSESTree.Node;\r
+ variables: Variable[];\r
+ set: Map<string, Variable>;\r
+ references: Reference[];\r
+ through: Reference[];\r
+ thisFound?: boolean;\r
+ taints: Map<string, boolean>;\r
+ functionExpressionScope: boolean;\r
+ __left: Reference[];\r
+ __shouldStaticallyClose(scopeManager: ScopeManager): boolean;\r
+ __shouldStaticallyCloseForGlobal(ref: any): boolean;\r
+ __staticCloseRef(ref: any): void;\r
+ __dynamicCloseRef(ref: any): void;\r
+ __globalCloseRef(ref: any): void;\r
+ __close(scopeManager: ScopeManager): Scope;\r
+ __isValidResolution(ref: any, variable: any): variable is Variable;\r
+ __resolve(ref: Reference): boolean;\r
+ __delegateToUpperScope(ref: any): void;\r
+ __addDeclaredVariablesOfNode(variable: any, node: TSESTree.Node): void;\r
+ __defineGeneric(name: string, set: Map<string, Variable>, variables: Variable[], node: TSESTree.Identifier, def: Definition): void;\r
+ __define(node: TSESTree.Node, def: Definition): void;\r
+ __referencing(node: TSESTree.Node, assign?: ReferenceFlag, writeExpr?: TSESTree.Node, maybeImplicitGlobal?: any, partial?: any, init?: any): void;\r
+ __detectEval(): void;\r
+ __detectThis(): void;\r
+ __isClosed(): boolean;\r
+ /**\r
+ * returns resolved {Reference}\r
+ * @method Scope#resolve\r
+ * @param {Espree.Identifier} ident - identifier to be resolved.\r
+ * @returns {Reference} reference\r
+ */\r
+ resolve(ident: TSESTree.Node): Reference;\r
+ /**\r
+ * returns this scope is static\r
+ * @method Scope#isStatic\r
+ * @returns {boolean} static\r
+ */\r
+ isStatic(): boolean;\r
+ /**\r
+ * returns this scope has materialized arguments\r
+ * @method Scope#isArgumentsMaterialized\r
+ * @returns {boolean} arguments materialized\r
+ */\r
+ isArgumentsMaterialized(): boolean;\r
+ /**\r
+ * returns this scope has materialized `this` reference\r
+ * @method Scope#isThisMaterialized\r
+ * @returns {boolean} this materialized\r
+ */\r
+ isThisMaterialized(): boolean;\r
+ isUsedName(name: any): boolean;\r
+}\r
+interface ScopeConstructor {\r
+ new (scopeManager: ScopeManager, type: ScopeType, upperScope: Scope | null, block: TSESTree.Node | null, isMethodDefinition: boolean): Scope;\r
+}\r
+declare const Scope: ScopeConstructor;\r
+interface ScopeChildConstructorWithUpperScope<T> {\r
+ new (scopeManager: ScopeManager, upperScope: Scope, block: TSESTree.Node | null): T;\r
+}\r
+interface GlobalScope extends Scope {\r
+}\r
+declare const GlobalScope: ScopeConstructor & (new (scopeManager: ScopeManager, block: TSESTree.Node | null) => GlobalScope);\r
+interface ModuleScope extends Scope {\r
+}\r
+declare const ModuleScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<ModuleScope>;\r
+interface FunctionExpressionNameScope extends Scope {\r
+}\r
+declare const FunctionExpressionNameScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<FunctionExpressionNameScope>;\r
+interface CatchScope extends Scope {\r
+}\r
+declare const CatchScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<CatchScope>;\r
+interface WithScope extends Scope {\r
+}\r
+declare const WithScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<WithScope>;\r
+interface BlockScope extends Scope {\r
+}\r
+declare const BlockScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<BlockScope>;\r
+interface SwitchScope extends Scope {\r
+}\r
+declare const SwitchScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<SwitchScope>;\r
+interface FunctionScope extends Scope {\r
+}\r
+declare const FunctionScope: ScopeConstructor & (new (scopeManager: ScopeManager, upperScope: Scope, block: TSESTree.Node | null, isMethodDefinition: boolean) => FunctionScope);\r
+interface ForScope extends Scope {\r
+}\r
+declare const ForScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<ForScope>;\r
+interface ClassScope extends Scope {\r
+}\r
+declare const ClassScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<ClassScope>;\r
+export { ScopeType, Scope, GlobalScope, ModuleScope, FunctionExpressionNameScope, CatchScope, WithScope, BlockScope, SwitchScope, FunctionScope, ForScope, ClassScope, };\r
+//# sourceMappingURL=Scope.d.ts.map\r