1import { TSESTree } from '../ts-estree'; 2declare namespace Scope { 3 interface ScopeManager { 4 scopes: Scope[]; 5 globalScope: Scope | null; 6 acquire(node: TSESTree.Node, inner?: boolean): Scope | null; 7 getDeclaredVariables(node: TSESTree.Node): Variable[]; 8 } 9 interface Reference { 10 identifier: TSESTree.Identifier; 11 from: Scope; 12 resolved: Variable | null; 13 writeExpr: TSESTree.Node | null; 14 init: boolean; 15 isWrite(): boolean; 16 isRead(): boolean; 17 isWriteOnly(): boolean; 18 isReadOnly(): boolean; 19 isReadWrite(): boolean; 20 } 21 interface Variable { 22 name: string; 23 identifiers: TSESTree.Identifier[]; 24 references: Reference[]; 25 defs: Definition[]; 26 scope: Scope; 27 eslintUsed?: boolean; 28 } 29 interface Scope { 30 type: 'block' | 'catch' | 'class' | 'for' | 'function' | 'function-expression-name' | 'global' | 'module' | 'switch' | 'with' | 'TDZ'; 31 isStrict: boolean; 32 upper: Scope | null; 33 childScopes: Scope[]; 34 variableScope: Scope; 35 block: TSESTree.Node; 36 variables: Variable[]; 37 set: Map<string, Variable>; 38 references: Reference[]; 39 through: Reference[]; 40 functionExpressionScope: boolean; 41 } 42 type DefinitionType = { 43 type: 'CatchClause'; 44 node: TSESTree.CatchClause; 45 parent: null; 46 } | { 47 type: 'ClassName'; 48 node: TSESTree.ClassDeclaration | TSESTree.ClassExpression; 49 parent: null; 50 } | { 51 type: 'FunctionName'; 52 node: TSESTree.FunctionDeclaration | TSESTree.FunctionExpression; 53 parent: null; 54 } | { 55 type: 'ImplicitGlobalVariable'; 56 node: TSESTree.Program; 57 parent: null; 58 } | { 59 type: 'ImportBinding'; 60 node: TSESTree.ImportSpecifier | TSESTree.ImportDefaultSpecifier | TSESTree.ImportNamespaceSpecifier; 61 parent: TSESTree.ImportDeclaration; 62 } | { 63 type: 'Parameter'; 64 node: TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression; 65 parent: null; 66 } | { 67 type: 'Variable'; 68 node: TSESTree.VariableDeclarator; 69 parent: TSESTree.VariableDeclaration; 70 }; 71 type Definition = DefinitionType & { 72 name: TSESTree.Identifier; 73 }; 74} 75export { Scope }; 76//# sourceMappingURL=Scope.d.ts.map 77