import type { DeepAnalysisResult } from './reverse-engineer.js';
export interface DiscoveredModule {
    name: string;
    path: string;
    estimatedFiles: number;
    language: string;
    detectionMethod: 'directory' | 'package' | 'framework' | 'monorepo' | 'manual';
}
export interface ModuleAnalysisResult {
    module: DiscoveredModule;
    analysis: DeepAnalysisResult;
    error?: string;
    status: 'success' | 'failed' | 'skipped';
}
export interface CrossModuleDependency {
    from: string;
    to: string;
    type: 'import' | 'runtime';
    files: string[];
}
export interface CrossModuleAntipattern {
    description: string;
    severity: 'low' | 'medium' | 'high' | 'critical';
    modules: string[];
    suggestion: string;
}
export interface CrossModuleAnalysis {
    dependencies: CrossModuleDependency[];
    circularDeps: string[][];
    antipatterns: CrossModuleAntipattern[];
    duplications: {
        signature: string;
        modules: string[];
    }[];
    orphanModules: string[];
}
export interface HealthBreakdown {
    testCoverage: number;
    techDebt: number;
    archConsistency: number;
    depHealth: number;
}
export type HealthGrade = 'A' | 'B' | 'C' | 'D' | 'F';
export interface ScanHealthScore {
    score: number;
    breakdown: HealthBreakdown;
    grade: HealthGrade;
}
export interface TopoEntry {
    name: string;
    deps: string[];
}
export interface TopoResult {
    sorted: TopoEntry[];
    cycleNote: string;
}
export interface ScanTeamPlan {
    teamSize: number;
    phases: {
        phase: number;
        teammates: string[];
        parallel: boolean;
    }[];
    estimatedDuration: string;
    teammatePrompts: {
        name: string;
        specId: string;
        model: string;
    }[];
}
export interface ScanProjectInput {
    path: string;
    projectId: string;
    depth?: 'shallow' | 'deep' | 'deep-v2';
    modules?: string[];
    concurrency?: number;
    generateOverview?: boolean;
    generateTeamPlan?: boolean;
}
export interface ScanProjectOutput {
    modulesDiscovered: number;
    modules: {
        name: string;
        path: string;
        files: number;
        language: string;
    }[];
    projectHealth: ScanHealthScore;
    specsGenerated: string[];
    overviewSpecId: string;
    crossModuleDeps: CrossModuleDependency[];
    antipatterns: CrossModuleAntipattern[];
    teamPlan?: ScanTeamPlan;
    analysisTimeMs: number;
    concurrencyUsed: number;
}
export interface LayerScanResult {
    files: string[];
    symbols: string[];
    tests: string[];
    registrations: string[];
}
export type ImplementationStatus = 'complete' | 'partial' | 'minimal' | 'not_found';
export interface GapScore {
    score: number;
    status: ImplementationStatus;
    layerScores: {
        files: number;
        symbols: number;
        tests: number;
        registrations: number;
    };
    warning: string | null;
}
export interface FileCollectionResult {
    files: string[];
    detectedStack: string[];
}
//# sourceMappingURL=scan-project.d.ts.map