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