import type { CodeModuleRecord } from '../types/code.types.js';
export interface CodeMatchResult {
    moduleId: number;
    score: number;
    matchType: 'exact' | 'structural' | 'semantic' | 'vector';
}
export declare function findExactMatches(fingerprint: string, candidates: CodeModuleRecord[]): CodeMatchResult[];
export declare function findStructuralMatches(source: string, language: string, candidates: CodeModuleRecord[], threshold?: number): CodeMatchResult[];
export declare function findSemanticMatches(description: string, candidates: CodeModuleRecord[], threshold?: number): CodeMatchResult[];
/**
 * Find matches using pre-computed vector embeddings.
 * Vector scores are computed externally (by the EmbeddingEngine) and passed in.
 */
export declare function findVectorMatches(vectorScores: Map<number, number>, threshold?: number): CodeMatchResult[];
/**
 * Hybrid search: combine structural + semantic + vector matches,
 * deduplicating and taking the highest score per module.
 */
export declare function findHybridMatches(source: string, language: string, description: string, candidates: CodeModuleRecord[], vectorScores?: Map<number, number>): CodeMatchResult[];
