import type { SearchResult } from "../db/store.ts"; /** * Reciprocal Rank Fusion — combines two ranked result lists into one. * * score(skill) = w_fts/(k + rank_fts) + w_vec/(k + rank_vec) * * k=60 is the standard constant. Skills that rank high in both * systems get the best combined score, without needing to normalize * different score scales (BM25 scores vs cosine distances). * * Weights default to fts=0.4, vec=0.6 — giving vector a slight edge * since it handles semantic queries better while BM25 still helps * with exact keyword matches. */ export declare function rrfMerge(ftsResults: SearchResult[], vecResults: SearchResult[], limit: number, k?: number, ftsWeight?: number, vecWeight?: number): SearchResult[];