/** * Reranker - Rerank search results for improved relevance * Inspired by mastra's rerank module */ export interface RerankResult { id: string; score: number; content: string; metadata?: Record; originalRank: number; newRank: number; } export interface RerankConfig { model?: string; topK?: number; threshold?: number; } /** * Abstract base class for rerankers */ export declare abstract class BaseReranker { readonly name: string; constructor(name: string); abstract rerank(query: string, documents: Array<{ id: string; content: string; metadata?: Record; }>, config?: RerankConfig): Promise; } /** * Cohere Reranker - Uses Cohere's rerank API */ export declare class CohereReranker extends BaseReranker { private apiKey; private model; constructor(config?: { apiKey?: string; model?: string; }); rerank(query: string, documents: Array<{ id: string; content: string; metadata?: Record; }>, config?: RerankConfig): Promise; } /** * Cross-Encoder Reranker - Uses sentence similarity for reranking * This is a simple implementation using cosine similarity */ export declare class CrossEncoderReranker extends BaseReranker { private embedFn?; constructor(config?: { embedFn?: (texts: string[]) => Promise; }); rerank(query: string, documents: Array<{ id: string; content: string; metadata?: Record; }>, config?: RerankConfig): Promise; private keywordRerank; private cosineSimilarity; } /** * LLM Reranker - Uses an LLM to score relevance */ export declare class LLMReranker extends BaseReranker { private generateFn; constructor(config: { generateFn: (prompt: string) => Promise; }); rerank(query: string, documents: Array<{ id: string; content: string; metadata?: Record; }>, config?: RerankConfig): Promise; } export declare function createCohereReranker(config?: { apiKey?: string; model?: string; }): CohereReranker; export declare function createCrossEncoderReranker(config?: { embedFn?: (texts: string[]) => Promise; }): CrossEncoderReranker; export declare function createLLMReranker(config: { generateFn: (prompt: string) => Promise; }): LLMReranker;