/**
 * Build a dependency graph from TypeScript source files
 */
export declare function buildDependencyGraph(files: string[], options?: CircularDetectionOptions): Promise<Map<string, DependencyNode>>;
/**
 * Detect circular dependencies in a dependency graph
 */
export declare function detectCircularDependencies(graph: Map<string, DependencyNode>, options?: CircularDetectionOptions): CircularDependency[];
/**
 * Analyze files for circular dependencies
 */
export declare function analyzeCircularDependencies(files: string[], options?: CircularDetectionOptions): Promise<CircularAnalysisResult>;
/**
 * Format circular dependency analysis as a string
 */
export declare function formatCircularAnalysis(result: CircularAnalysisResult, rootDir?: string): string;
/**
 * Get a summary of the dependency graph
 */
export declare function getGraphSummary(graph: Map<string, DependencyNode>): {
  totalFiles: number
  totalDependencies: number
  avgDependencies: number
  maxDependencies: { file: string, count: number }
  isolatedFiles: string[]
  mostDepended: { file: string, count: number }
};
/**
 * Find all files that depend on a given file (transitive)
 */
export declare function findAllDependents(filePath: string, graph: Map<string, DependencyNode>): Set<string>;
/**
 * Find all dependencies of a given file (transitive)
 */
export declare function findAllDependencies(filePath: string, graph: Map<string, DependencyNode>): Set<string>;
/**
 * Export dependency graph as DOT format (for visualization with Graphviz)
 */
export declare function exportGraphAsDot(graph: Map<string, DependencyNode>, rootDir?: string): string;
/**
 * Export dependency graph as JSON
 */
export declare function exportGraphAsJson(graph: Map<string, DependencyNode>, rootDir?: string): string;
/**
 * A node in the dependency graph
 */
export declare interface DependencyNode {
  path: string
  exports: Set<string>
  imports: Map<string, string>
  dependencies: Set<string>
  dependents: Set<string>
}
/**
 * A circular dependency chain
 */
export declare interface CircularDependency {
  chain: string[]
  symbols: string[]
  severity: 'error' | 'warning'
  reason: string
}
/**
 * Result of circular dependency analysis
 */
export declare interface CircularAnalysisResult {
  hasCircular: boolean
  cycles: CircularDependency[]
  graph: Map<string, DependencyNode>
  filesAnalyzed: string[]
  durationMs: number
}
/**
 * Options for circular dependency detection
 */
export declare interface CircularDetectionOptions {
  rootDir?: string
  ignore?: string[]
  typesOnly?: boolean
  maxDepth?: number
  includeNodeModules?: boolean
}
