| import { TSESTree } from '../../ts-estree'; |
| import * as TSESLint from '../../ts-eslint'; |
| declare const ReferenceTrackerREAD: unique symbol; |
| declare const ReferenceTrackerCALL: unique symbol; |
| declare const ReferenceTrackerCONSTRUCT: unique symbol; |
| interface ReferenceTracker { |
| /** |
| * Iterate the references that the given `traceMap` determined. |
| * This method starts to search from global variables. |
| * |
| * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iterateglobalreferences} |
| */ |
| iterateGlobalReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>; |
| /** |
| * Iterate the references that the given `traceMap` determined. |
| * This method starts to search from `require()` expression. |
| * |
| * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iteratecjsreferences} |
| */ |
| iterateCjsReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>; |
| /** |
| * Iterate the references that the given `traceMap` determined. |
| * This method starts to search from `import`/`export` declarations. |
| * |
| * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iterateesmreferences} |
| */ |
| iterateEsmReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>; |
| } |
| interface ReferenceTrackerStatic { |
| new (globalScope: TSESLint.Scope.Scope, options?: { |
| /** |
| * The mode which determines how the `tracker.iterateEsmReferences()` method scans CommonJS modules. |
| * If this is `"strict"`, the method binds CommonJS modules to the default export. Otherwise, the method binds |
| * CommonJS modules to both the default export and named exports. Optional. Default is `"strict"`. |
| */ |
| mode: 'strict' | 'legacy'; |
| /** |
| * The name list of Global Object. Optional. Default is `["global", "globalThis", "self", "window"]`. |
| */ |
| globalObjectNames: readonly string[]; |
| }): ReferenceTracker; |
| readonly READ: typeof ReferenceTrackerREAD; |
| readonly CALL: typeof ReferenceTrackerCALL; |
| readonly CONSTRUCT: typeof ReferenceTrackerCONSTRUCT; |
| } |
| declare namespace ReferenceTracker { |
| type READ = ReferenceTrackerStatic['READ']; |
| type CALL = ReferenceTrackerStatic['CALL']; |
| type CONSTRUCT = ReferenceTrackerStatic['CONSTRUCT']; |
| type ReferenceType = READ | CALL | CONSTRUCT; |
| type TraceMap<T = any> = Record<string, TraceMapElement<T>>; |
| interface TraceMapElement<T> { |
| [ReferenceTrackerREAD]?: T; |
| [ReferenceTrackerCALL]?: T; |
| [ReferenceTrackerCONSTRUCT]?: T; |
| [key: string]: TraceMapElement<T>; |
| } |
| interface FoundReference<T = any> { |
| node: TSESTree.Node; |
| path: readonly string[]; |
| type: ReferenceType; |
| entry: T; |
| } |
| } |
| /** |
| * The tracker for references. This provides reference tracking for global variables, CommonJS modules, and ES modules. |
| * |
| * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#referencetracker-class} |
| */ |
| declare const ReferenceTracker: ReferenceTrackerStatic; |
| export { ReferenceTracker }; |
| //# sourceMappingURL=ReferenceTracker.d.ts.map |