import type Database from 'better-sqlite3';
import type { CodeModuleRecord } from '../../types/code.types.js';
type CodeModuleCreate = Omit<CodeModuleRecord, 'id' | 'created_at' | 'updated_at'>;
type CodeModuleUpdate = Partial<Omit<CodeModuleRecord, 'id' | 'created_at'>>;
export declare class CodeModuleRepository {
    private db;
    private stmts;
    constructor(db: Database.Database);
    create(data: CodeModuleCreate): number;
    getById(id: number): CodeModuleRecord | undefined;
    update(id: number, data: CodeModuleUpdate): boolean;
    delete(id: number): boolean;
    findByFingerprint(fingerprint: string): CodeModuleRecord | undefined;
    findByLanguage(language: string, limit?: number): CodeModuleRecord[];
    findByProject(projectId: number): CodeModuleRecord[];
    search(query: string): CodeModuleRecord[];
    findAll(limit?: number): CodeModuleRecord[];
    countAll(): number;
    upsertSimilarity(moduleAId: number, moduleBId: number, score: number): void;
    findSimilarModules(moduleId: number, limit?: number): Array<{
        module_id: number;
        similarity_score: number;
        name: string;
        file_path: string;
    }>;
    findHighSimilarityPairs(minScore?: number, limit?: number): Array<{
        module_a_id: number;
        module_b_id: number;
        similarity_score: number;
        a_name: string;
        a_path: string;
        b_name: string;
        b_path: string;
    }>;
}
export {};
