import { Pattern } from '../../../types';
import { LanguageProfile, FrameworkProfile, ArchitectureProfile, TestingProfile, DependencyProfile, ComplexityProfile, RiskProfile, MaturityProfile, DevelopmentProfile, ProjectFingerprint, ProjectDNA, DNAComparison, DNABuildOptions } from '../../../core/project-dna-types';
export interface ProjectProfile {
    projectId: string;
    name: string;
    primaryLanguage: string;
    languages: Array<{
        language: string;
        count: number;
        pct: number;
    }>;
    categories: Array<{
        category: string;
        count: number;
        pct: number;
    }>;
    frameworks: Array<{
        framework: string;
        count: number;
    }>;
    totalPatterns: number;
    totalSignals: number;
    topPatterns: Array<{
        patternId: string;
        description: string;
        acceptRate: number;
    }>;
    patternSequences: Array<{
        from: string;
        to: string;
        count: number;
    }>;
    averageConfidence: number;
    createdAt: number;
    updatedAt: number;
}
export interface ProjectComparison {
    projectA: string;
    projectB: string;
    similarity: number;
    sharedLanguages: string[];
    sharedCategories: string[];
    sharedPatterns: string[];
    divergences: string[];
}
export interface ArchitectureInference {
    detectedPatterns: Array<{
        name: string;
        confidence: number;
        evidence: string[];
    }>;
    suggestedLabel: string;
}
export interface TestingStyle {
    framework: 'jest' | 'mocha' | 'vitest' | 'pytest' | 'junit' | 'unknown';
    style: 'describe/it' | 'test()' | 'class-based' | 'unknown';
    location: 'co-located' | '__tests__' | 'tests/' | 'spec/' | 'unknown';
    confidence: number;
}
export interface ConventionSuggestion {
    type: 'editorconfig' | 'eslint' | 'tsconfig' | 'prettier';
    content: string;
    description: string;
}
export declare function buildProjectProfile(projectId: string, name: string, patterns: Pattern[]): ProjectProfile;
export declare function getProjectProfile(projectId: string): ProjectProfile | null;
export declare function listProjectProfiles(): string[];
export declare function deleteProjectProfile(projectId: string): boolean;
export declare function compareProjects(projectA: string, projectB: string): ProjectComparison;
export declare function getProjectsDirectory(): string;
export declare function inferArchitecture(patterns: Array<{
    category: string;
    description: string;
    from: string;
    to: string;
}>): ArchitectureInference;
export declare function detectTestingStyle(patterns: Array<{
    description: string;
    from: string;
    to: string;
}>): TestingStyle;
export declare function generateConventions(profile: ProjectProfile): ConventionSuggestion[];
export declare function ensureProjectDnaTable(): void;
export declare function recordCloudArchitecture(projectId: string, label: string, patterns: string[]): void;
export declare function getCloudArchitecture(projectId: string): object | null;
export declare function recordCloudConvention(projectId: string, type: string, suggestion: string, description: string): void;
export declare function getCloudConventions(projectId: string): Array<{
    type: string;
    suggestion: string;
}>;
export interface ScannedFile {
    relativePath: string;
    fullPath: string;
    ext: string;
    lines: number;
    language: string;
    isTest: boolean;
    size: number;
}
export declare function scanFiles(rootDir: string, maxDepth?: number): ScannedFile[];
export declare function buildLanguageProfile(files: ScannedFile[]): LanguageProfile;
export declare function buildFrameworkProfile(files: ScannedFile[], rootDir: string): FrameworkProfile;
export declare function buildArchitectureProfile(files: ScannedFile[], rootDir: string): ArchitectureProfile;
export declare function buildTestingProfile(files: ScannedFile[], rootDir: string): TestingProfile;
export declare function buildDependencyProfile(files: ScannedFile[], rootDir: string): DependencyProfile;
export declare function buildComplexityProfile(files: ScannedFile[], rootDir: string): ComplexityProfile;
export declare function buildRiskProfile(files: ScannedFile[], rootDir: string, profiles: {
    testing: TestingProfile;
    dependency: DependencyProfile;
    maturity: MaturityProfile;
}): RiskProfile;
export declare function buildMaturityProfile(files: ScannedFile[], rootDir: string): MaturityProfile;
export declare function buildDevelopmentProfile(patterns: Pattern[], outcomes: Map<string, any>): DevelopmentProfile;
export declare function buildFingerprint(language: LanguageProfile, framework: FrameworkProfile, architecture: ArchitectureProfile, testing: TestingProfile, dependency: DependencyProfile, complexity: ComplexityProfile, risk: RiskProfile, maturity: MaturityProfile, development: DevelopmentProfile): ProjectFingerprint;
export declare function buildProjectDNA(projectId: string, projectPath: string, options?: DNABuildOptions): ProjectDNA;
export declare function saveDNA(dna: ProjectDNA): void;
export declare function getDNA(projectId: string): ProjectDNA | null;
export declare function listDNA(): ProjectDNA[];
export declare function deleteDNA(projectId: string): boolean;
export declare function getDNAHistory(projectId: string): ProjectDNA[];
export declare function compareDNA(projectA: string, projectB: string): DNAComparison;
//# sourceMappingURL=project-dna.d.ts.map