import type { TechDebtItem } from './analysis.js';
export interface TestCoverageReport {
    testedModules: string[];
    untestedModules: string[];
    testToSourceRatio: number;
}
export interface DependencyNode {
    file: string;
    imports: string[];
    fanIn: number;
    fanOut: number;
}
export interface DependencyGraph {
    nodes: DependencyNode[];
    cycles: string[][];
    hubs: string[];
    orphans: string[];
}
export interface ApiRoute {
    method: string;
    path: string;
    handler: string;
    resource: string;
}
export interface ComplexityHotspot {
    name: string;
    complexity: number;
    lines: number;
}
export interface ComplexityMetric {
    file: string;
    lineCount: number;
    functionCount: number;
    maxFunctionLength: number;
    avgComplexity: number;
    hotspots: ComplexityHotspot[];
}
export interface ConfigReport {
    configFiles: string[];
    envVars: string[];
    featureFlags: string[];
    infrastructure: string[];
}
export interface DeepAnalysisResult {
    testCoverage: TestCoverageReport;
    dependencyGraph: DependencyGraph;
    apiRoutes: ApiRoute[];
    complexityMetrics: ComplexityMetric[];
    configAnalysis: ConfigReport;
    analysisTimeMs: number;
}
export interface RoutePattern {
    regex: RegExp;
    methodGroup: number;
    pathGroup: number;
    handlerGroup?: number;
    defaultMethod?: string;
}
export interface ComplexityFunctionInfo {
    name: string;
    startLine: number;
    endLine: number;
    lines: number;
    complexity: number;
}
export interface AnalyzerOptions {
    enableTest?: boolean;
    enableDeps?: boolean;
    enableApi?: boolean;
    enableComplexity?: boolean;
    enableConfig?: boolean;
}
export interface SpecEnrichment {
    affectedFiles: string[];
    tags: string[];
    techDebt: TechDebtItem[];
}
export interface CodeAnalysisResult {
    interfaces: string[];
    dependencies: string[];
    layers: string[];
    exports: string[];
    patterns: string[];
    totalLines: number;
    limit: number;
    dominantLanguage: string;
    frameworkTerminology: string;
    techDebt: TechDebtItem[];
}
//# sourceMappingURL=reverse-engineer.d.ts.map