/** * Knowledge reranking — reorder retrieved documents by relevance. * * Phase-1 sibling of the reference engines' reranking. A `Reranker` takes the * query and the retriever's candidate hits and returns them reordered (and * possibly trimmed). `NoopReranker` is the default passthrough; `LexicalReranker` * re-scores by query-term coverage normalized for document length, so a concise * on-topic doc outranks a long one with the same raw overlap. A cross-encoder or * gateway reranker drops in behind the same interface. */ import type { KnowledgeHit } from './knowledge.js'; export interface Reranker { rerank(query: string, hits: KnowledgeHit[]): KnowledgeHit[]; } /** Returns the hits unchanged — the zero-cost default. */ export declare class NoopReranker implements Reranker { rerank(_query: string, hits: KnowledgeHit[]): KnowledgeHit[]; } /** * Reorders by query-term coverage normalized by document length: * `coverage / log2(2 + docTokenCount)`, so coverage is rewarded but long docs are * penalized relative to concise ones with the same coverage. Stable for ties. */ export declare class LexicalReranker implements Reranker { rerank(query: string, hits: KnowledgeHit[]): KnowledgeHit[]; } //# sourceMappingURL=rerank.d.ts.map