/**
 * Reranker Implementation
 *
 * Multi-factor scoring system for reranking retrieval results.
 * Combines semantic relevance (LLM-based), vector similarity, and position.
 */
import type { VectorQueryResult, RerankerOptions, RerankResult } from "../types.js";
import type { AIProvider } from "../../types/providers.js";
/**
 * Rerank vector search results using multi-factor scoring
 *
 * Combines three scoring factors:
 * 1. Semantic score: LLM-based relevance assessment
 * 2. Vector score: Original similarity score from vector search
 * 3. Position score: Inverse of original ranking position
 *
 * @param results - Vector search results to rerank
 * @param query - Original search query
 * @param model - Language model for semantic scoring
 * @param options - Reranking options
 * @returns Reranked results with detailed scores
 */
export declare function rerank(results: VectorQueryResult[], query: string, model: AIProvider, options?: RerankerOptions): Promise<RerankResult[]>;
/**
 * Batch rerank with optimized LLM calls
 * Scores multiple documents in a single prompt for efficiency
 *
 * @param results - Results to rerank
 * @param query - Search query
 * @param model - Language model
 * @param options - Reranking options
 * @returns Reranked results
 */
export declare function batchRerank(results: VectorQueryResult[], query: string, model: AIProvider, options?: RerankerOptions): Promise<RerankResult[]>;
/**
 * Simple position-based reranker (no LLM required)
 * Uses only vector score and position
 *
 * @param results - Results to rerank
 * @param options - Reranking options
 * @returns Reranked results
 */
export declare function simpleRerank(results: VectorQueryResult[], options?: {
    topK?: number;
    vectorWeight?: number;
    positionWeight?: number;
}): RerankResult[];
/**
 * Cohere-style relevance scorer interface
 * Placeholder for integration with Cohere's rerank API
 */
export declare class CohereRelevanceScorer {
    private modelName;
    constructor(modelName?: string);
    score(_query: string, _documents: string[]): Promise<Array<{
        index: number;
        score: number;
    }>>;
}
/**
 * Cross-encoder style reranker interface
 * Placeholder for integration with cross-encoder models
 */
export declare class CrossEncoderReranker {
    private modelName;
    constructor(modelName?: string);
    rerank(_query: string, _documents: string[]): Promise<Array<{
        index: number;
        score: number;
    }>>;
}
