export interface RerankerOptions { topNAfter?: number; bm25Weight?: number; cosineWeight?: number; lengthPenalty?: boolean; } export interface RerankCandidate { id: string; text: string; score?: number; metadata?: Record; } export interface RerankResult { id: string; text: string; score: number; components: { bm25: number; cosine: number; lengthPenalty: number; }; rank: number; metadata?: Record; } export declare class BrainRerank { /** Rerank a candidate list using fused BM25 + cosine + optional length penalty. */ rerank(query: string, candidates: RerankCandidate[], opts?: RerankerOptions): Promise; /** * Fuse with embeddings-v2: do ANN over topKFirst → rerank → return topNFinal. * Gracefully falls back to raw ANN hits if embeddings-v2 is missing. */ searchAndRerank(query: string, topKFirst?: number, topNFinal?: number, opts?: RerankerOptions): Promise; private computeBm25; private computeCosine; private lengthPenalty; } export declare function getBrainRerank(): BrainRerank; export declare function resetBrainRerankForTests(): void; //# sourceMappingURL=brain-rerank.d.ts.map