import { generateText, type LanguageModel } from "ai"; import type { SearchResult } from "../types"; /** Interface for reranking search results by relevance to a query. */ export interface Reranker { rerank(query: string, results: SearchResult[], limit: number): Promise; } /** Reranks search results using an LLM to judge relevance. */ export declare class LLMReranker implements Reranker { private languageModel; private maxCandidates; private provider; private modelName; private rateLimitingEnabled; _generate: typeof generateText; constructor(languageModel: LanguageModel, config: { rerankingMaxCandidates: number; provider?: string; model?: string; rateLimitingEnabled?: boolean; }); /** Rerank results by sending candidates to the LLM for relevance ordering. */ rerank(query: string, results: SearchResult[], limit: number): Promise; private applyReranking; } /** Reranks search results using term-overlap heuristics (no LLM required). */ export declare class HeuristicReranker implements Reranker { /** Rerank results by scoring term overlap, recency, and importance. */ rerank(query: string, results: SearchResult[], limit: number): Promise; private scoreCandidate; } /** Create a reranker based on config: LLM-based if model available, heuristic fallback. */ export declare function createReranker(config: { rerankingEnabled: boolean; rerankingMaxCandidates: number; provider?: string; model?: string; rateLimitingEnabled?: boolean; }, languageModel: LanguageModel | null): Reranker | null; //# sourceMappingURL=reranker.d.ts.map