import type { FileSystem } from './file-operations';
/**
 * Types for graph data
 */
export interface GraphNode {
    id: string;
    label: string;
    type?: 'core' | 'feature' | 'shared';
}
export interface GraphEdge {
    source: string;
    target: string;
    type: 'direct-import' | 'indirect-import';
    metadata: {
        path: string;
        line?: number;
    };
}
export interface GraphData {
    nodes: GraphNode[];
    edges: GraphEdge[];
    metadata: {
        generatedAt: string;
        projectPath: string;
        totalDomains: number;
        totalDependencies: number;
    };
}
export interface DependencyInfo {
    fromDomain: string;
    toDomain: string;
    filePath: string;
    line: number;
    importStatement: string;
}
/**
 * Pure function to extract import statements from file content
 */
export declare const extractImportStatements: (content: string) => Array<{
    statement: string;
    line: number;
}>;
/**
 * Pure function to determine if an import path refers to a domain
 */
export declare const extractDomainFromImportPath: (importPath: string, currentDomain: string) => string | null;
/**
 * Pure function to get all TypeScript/JavaScript files in a directory recursively
 */
export declare const getSourceFiles: (fileSystem: FileSystem, dirPath: string) => Promise<string[]>;
/**
 * Analyze dependencies for a single domain
 */
export declare const analyzeDomainDependencies: (fileSystem: FileSystem, domainPath: string, domainName: string) => Promise<DependencyInfo[]>;
/**
 * Detect circular dependencies in the graph
 */
export declare const detectCircularDependencies: (edges: GraphEdge[]) => string[][];
/**
 * Generate complete graph data for all domains
 */
export declare const generateGraphData: (fileSystem: FileSystem, projectRoot?: string) => Promise<GraphData>;
//# sourceMappingURL=dependency-analyzer.d.ts.map