import type { MemoryMetadata, MemoryQuery, MemoryResult } from '../types/index.js';
export interface VectorPoint {
    id: string;
    vector: number[];
    payload: Record<string, unknown>;
}
export interface SearchResult {
    id: string;
    score: number;
    payload: Record<string, unknown>;
}
export interface VectorStore {
    initialize(): Promise<void>;
    upsert(points: VectorPoint[]): Promise<void>;
    search(vector: number[], query: MemoryQuery): Promise<SearchResult[]>;
    delete(ids: string[]): Promise<void>;
    count(tenantId: string): Promise<number>;
    healthCheck(): Promise<boolean>;
}
export declare class QdrantVectorStore implements VectorStore {
    private client;
    private collection;
    private dimension;
    constructor(url: string, collection: string, dimension: number, apiKey?: string);
    initialize(): Promise<void>;
    upsert(points: VectorPoint[]): Promise<void>;
    search(vector: number[], query: MemoryQuery): Promise<SearchResult[]>;
    delete(ids: string[]): Promise<void>;
    count(tenantId: string): Promise<number>;
    healthCheck(): Promise<boolean>;
}
export declare class MemoryVectorStore {
    private store;
    private isInitialized;
    constructor(store: VectorStore);
    initialize(): Promise<void>;
    storeMemory(memory: MemoryMetadata, embedding: number[]): Promise<void>;
    storeMemories(memories: MemoryMetadata[], embeddings: number[][]): Promise<void>;
    searchMemories(queryEmbedding: number[], query: MemoryQuery): Promise<MemoryResult[]>;
    deleteMemories(ids: string[]): Promise<void>;
    getMemoryCount(tenantId: string): Promise<number>;
    healthCheck(): Promise<boolean>;
    private ensureInitialized;
    private generateRelevanceReason;
}
//# sourceMappingURL=VectorStore.d.ts.map