/**
 * Module Graph — Build a project-wide dependency graph from import/export statements.
 *
 * Provides forward edges (depends-on) and reverse edges (imported-by) for
 * cross-file analysis. Detects circular imports via DFS.
 */
import type { ScanFile } from '../shared/types';
import type { ParsedImport, ParsedExport } from './import-resolver';
export interface ResolvedImport extends ParsedImport {
    resolvedPath: string | null;
}
export interface ModuleNode {
    filePath: string;
    imports: ResolvedImport[];
    exports: ParsedExport[];
    dependsOn: Set<string>;
    importedBy: Set<string>;
}
export interface ModuleGraphStats {
    totalFiles: number;
    totalEdges: number;
    circularImportCount: number;
    duration: number;
}
export interface ModuleGraph {
    nodes: Map<string, ModuleNode>;
    circularImports: Set<string>;
    stats: ModuleGraphStats;
}
/**
 * Build a project-wide module graph from scanned files.
 *
 * For each code file: extract imports, resolve paths, extract exports.
 * Build forward (dependsOn) and reverse (importedBy) edges.
 * Detect circular imports via DFS.
 */
export declare function buildModuleGraph(files: ScanFile[]): ModuleGraph;
/**
 * Resolve what file and export an imported symbol refers to.
 * Follows one-hop re-exports through barrel files.
 */
export declare function resolveImportedName(graph: ModuleGraph, fromFile: string, importedName: string): {
    filePath: string;
    exportName: string;
} | null;
//# sourceMappingURL=module-graph.d.ts.map