/**
 * Hybrid Memory Search
 *
 * Combines BM25 keyword search with semantic vector search
 * for high-quality memory retrieval. Currently BM25 is fully
 * implemented; semantic search is a stub for future embedding integration.
 */
export interface SearchResult {
    key: string;
    value: string;
    score: number;
    source: 'bm25' | 'semantic' | 'hybrid';
}
export declare class BM25Index {
    private documents;
    private tokenizedDocs;
    private docLengths;
    private avgDocLength;
    private df;
    private k1;
    private b;
    constructor(k1?: number, b?: number);
    addDocument(id: string, text: string): void;
    search(query: string, limit?: number): SearchResult[];
    removeDocument(id: string): void;
    getDocumentCount(): number;
    private tokenize;
    private updateAvgDocLength;
}
export declare class HybridMemorySearch {
    private static instance;
    private bm25Index;
    private bm25Weight;
    private semanticWeight;
    private constructor();
    static getInstance(): HybridMemorySearch;
    static resetInstance(): void;
    index(entries: Array<{
        key: string;
        value: string;
    }>): void;
    search(query: string, limit?: number): SearchResult[];
    setWeights(bm25Weight: number, semanticWeight: number): void;
    getStats(): {
        documentCount: number;
        bm25Weight: number;
        semanticWeight: number;
    };
    clear(): void;
    private mergeResults;
}
