export interface LanguageInfo {
    language: string;
    extensions: string[];
    fileCount: number;
    lineCount: number;
    percentage: number;
}
export interface LanguageProfile {
    primaryLanguage: string;
    languages: LanguageInfo[];
    languagePurity: number;
}
export interface FrameworkEvidence {
    name: string;
    confidence: number;
    evidence: string[];
}
export interface FrameworkProfile {
    frameworks: FrameworkEvidence[];
    primaryFramework: string | null;
}
export type ArchitectureType = 'monolith' | 'modular-monolith' | 'microservice' | 'layered' | 'feature-based' | 'mvc' | 'hexagonal' | 'clean-architecture' | 'unknown';
export interface ArchitectureEvidence {
    type: ArchitectureType;
    confidence: number;
    evidence: string[];
}
export interface ArchitectureProfile {
    architecture: ArchitectureType;
    confidence: number;
    candidates: ArchitectureEvidence[];
    hasApiLayer: boolean;
    hasServiceLayer: boolean;
    hasDataLayer: boolean;
}
export type TestFramework = 'jest' | 'vitest' | 'mocha' | 'playwright' | 'cypress' | 'pytest' | 'unittest' | 'go-test' | 'none';
export interface TestingProfile {
    frameworks: TestFramework[];
    testFileCount: number;
    sourceFileCount: number;
    testToSourceRatio: number;
    coverageScore: number;
    cultureScore: number;
    maturity: 'none' | 'minimal' | 'moderate' | 'strong' | 'comprehensive';
}
export interface DependencyInfo {
    name: string;
    version: string;
    isDev: boolean;
}
export interface DependencyProfile {
    totalDependencies: number;
    totalDevDependencies: number;
    dependencyCount: number;
    dependencyComplexity: 'low' | 'medium' | 'high' | 'extreme';
    dependencyRisk: number;
    hasPackageManager: boolean;
    packageManager: string | null;
}
export interface ComplexityProfile {
    totalFiles: number;
    totalLines: number;
    averageFileSize: number;
    largestFiles: Array<{
        path: string;
        lines: number;
    }>;
    complexity: 'low' | 'medium' | 'high' | 'extreme';
}
export interface RiskFactor {
    factor: string;
    severity: number;
    description: string;
}
export interface RiskProfile {
    riskScore: number;
    riskFactors: RiskFactor[];
    riskLevel: 'low' | 'medium' | 'high' | 'critical';
}
export type MaturityLevel = 'startup' | 'growing' | 'mature' | 'enterprise';
export interface MaturityProfile {
    level: MaturityLevel;
    score: number;
    hasCI: boolean;
    hasCD: boolean;
    hasLinting: boolean;
    hasFormatting: boolean;
    hasDocumentation: boolean;
    hasConventions: boolean;
    hasTesting: boolean;
    details: string[];
}
export type DevelopmentStyle = 'experiment-driven' | 'quality-driven' | 'speed-driven' | 'stability-driven';
export interface DevelopmentProfile {
    style: DevelopmentStyle;
    styleConfidence: number;
    patternsUsed: number;
    successRate: number;
    failureRate: number;
    acceptanceRate: number;
    iterationSpeed: 'slow' | 'moderate' | 'fast' | 'very-fast';
}
export interface ProjectFingerprint {
    primaryLanguage: string;
    framework: string | null;
    architecture: string;
    complexity: string;
    risk: number;
    maturity: string;
    testing: string;
    developmentStyle: string;
}
export interface ProjectDNA {
    projectId: string;
    projectPath: string;
    language: LanguageProfile;
    framework: FrameworkProfile;
    architecture: ArchitectureProfile;
    testing: TestingProfile;
    dependency: DependencyProfile;
    complexity: ComplexityProfile;
    risk: RiskProfile;
    maturity: MaturityProfile;
    development: DevelopmentProfile;
    fingerprint: ProjectFingerprint;
    builtAt: number;
    version: number;
}
export interface DNAComparison {
    projectA: string;
    projectB: string;
    overallSimilarity: number;
    languageSimilarity: number;
    frameworkSimilarity: number;
    architectureDifference: string;
    riskDifference: number;
    complexityDifference: string;
    maturityDifference: string;
    testingDifference: string;
    details: string[];
}
export interface DNABuildOptions {
    patterns?: any[];
    outcomes?: Map<string, any>;
    skipSystems?: string[];
}
export interface DNAStoreData {
    projects: Record<string, ProjectDNA>;
}
//# sourceMappingURL=project-dna-types.d.ts.map