.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / @typescript-eslint / experimental-utils / dist / ast-utils / eslint-utils / ReferenceTracker.d.ts
1 import { TSESTree } from '../../ts-estree';
2 import * as TSESLint from '../../ts-eslint';
3 declare const ReferenceTrackerREAD: unique symbol;
4 declare const ReferenceTrackerCALL: unique symbol;
5 declare const ReferenceTrackerCONSTRUCT: unique symbol;
6 interface ReferenceTracker {
7     /**
8      * Iterate the references that the given `traceMap` determined.
9      * This method starts to search from global variables.
10      *
11      * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iterateglobalreferences}
12      */
13     iterateGlobalReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>;
14     /**
15      * Iterate the references that the given `traceMap` determined.
16      * This method starts to search from `require()` expression.
17      *
18      * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iteratecjsreferences}
19      */
20     iterateCjsReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>;
21     /**
22      * Iterate the references that the given `traceMap` determined.
23      * This method starts to search from `import`/`export` declarations.
24      *
25      * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iterateesmreferences}
26      */
27     iterateEsmReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>;
28 }
29 interface ReferenceTrackerStatic {
30     new (globalScope: TSESLint.Scope.Scope, options?: {
31         /**
32          * The mode which determines how the `tracker.iterateEsmReferences()` method scans CommonJS modules.
33          * If this is `"strict"`, the method binds CommonJS modules to the default export. Otherwise, the method binds
34          * CommonJS modules to both the default export and named exports. Optional. Default is `"strict"`.
35          */
36         mode: 'strict' | 'legacy';
37         /**
38          * The name list of Global Object. Optional. Default is `["global", "globalThis", "self", "window"]`.
39          */
40         globalObjectNames: readonly string[];
41     }): ReferenceTracker;
42     readonly READ: typeof ReferenceTrackerREAD;
43     readonly CALL: typeof ReferenceTrackerCALL;
44     readonly CONSTRUCT: typeof ReferenceTrackerCONSTRUCT;
45 }
46 declare namespace ReferenceTracker {
47     type READ = ReferenceTrackerStatic['READ'];
48     type CALL = ReferenceTrackerStatic['CALL'];
49     type CONSTRUCT = ReferenceTrackerStatic['CONSTRUCT'];
50     type ReferenceType = READ | CALL | CONSTRUCT;
51     type TraceMap<T = any> = Record<string, TraceMapElement<T>>;
52     interface TraceMapElement<T> {
53         [ReferenceTrackerREAD]?: T;
54         [ReferenceTrackerCALL]?: T;
55         [ReferenceTrackerCONSTRUCT]?: T;
56         [key: string]: TraceMapElement<T>;
57     }
58     interface FoundReference<T = any> {
59         node: TSESTree.Node;
60         path: readonly string[];
61         type: ReferenceType;
62         entry: T;
63     }
64 }
65 /**
66  * The tracker for references. This provides reference tracking for global variables, CommonJS modules, and ES modules.
67  *
68  * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#referencetracker-class}
69  */
70 declare const ReferenceTracker: ReferenceTrackerStatic;
71 export { ReferenceTracker };
72 //# sourceMappingURL=ReferenceTracker.d.ts.map