import type { Fix, Fixes } from './exports.ts'; import type { IssueSymbol, SymbolType } from './issues.ts'; export type Identifier = string; type FilePath = string; type NamespaceOrAlias = string; type Reference = string; type References = Set; type Tags = Set; export interface Position { pos: number; line: number; col: number; } export type IdToFileMap = Map>; export type IdToNsToFileMap = Map>>; export type ImportMaps = { refs: References; enumerated: References | undefined; import: IdToFileMap; importAs: IdToNsToFileMap; importNs: IdToFileMap; reExport: IdToFileMap; reExportNs: IdToFileMap; reExportAs: IdToNsToFileMap; }; export type ImportMap = Map; export interface Import extends Position { readonly specifier: string; readonly filePath: string | undefined; readonly identifier: string | undefined; readonly isTypeOnly: boolean; } export interface ExternalRef { readonly specifier: string; readonly identifier: string | undefined; } export interface Export extends Position { readonly identifier: Identifier; readonly type: SymbolType; readonly members: ExportMember[]; jsDocTags: Tags; hasRefsInFile: boolean; referencedIn: Set | undefined; readonly fixes: Fixes; isReExport: boolean; } export interface ExportMember extends Position { readonly identifier: Identifier; readonly type: SymbolType; readonly fix: Fix; jsDocTags: Tags; readonly flags: number; hasRefsInFile: boolean; } export type ExportMap = Map; export type Imports = Set; export type FileNode = { imports: { readonly internal: ImportMap; readonly external: Set; readonly externalRefs: Set; unresolved: Set; readonly programFiles: Set; readonly entryFiles: Set; readonly imports: Imports; }; exports: ExportMap; duplicates: Iterable>; scripts: Set; importedBy: undefined | ImportMaps; internalImportCache: undefined | ImportMap; }; export type ModuleGraph = Map; export {};