import { SearchResult, VectorStore, EmbeddingModel } from "../types";
export interface HybridSearchConfig {
    vectorWeight: number;
    keywordWeight: number;
    maxResults: number;
    minScore: number;
    enableReranking?: boolean;
}
export interface KeywordSearchResult {
    chunkId: string;
    score: number;
    matches: string[];
}
export declare class HybridRetriever {
    private vectorStore;
    private embeddingModel;
    private queryProcessor;
    private config;
    private documentIndex;
    constructor(vectorStore: VectorStore, embeddingModel: EmbeddingModel, config?: Partial<HybridSearchConfig>);
    search(query: string, k?: number): Promise<SearchResult[]>;
    private performVectorSearch;
    private performKeywordSearch;
    private combineResults;
    private rerankResults;
    updateDocumentIndex(chunkId: string, content: string): void;
    removeFromIndex(chunkId: string): void;
    updateConfig(config: Partial<HybridSearchConfig>): void;
    getSearchStats(): {
        indexSize: number;
        config: HybridSearchConfig;
    };
    clearIndex(): void;
}
//# sourceMappingURL=hybrid-retriever.d.ts.map