import { VectorStoreType, VectorStoreConfig, Document } from "../contexts/ChatbotContext";
export declare abstract class BaseVectorStore {
    protected config: VectorStoreConfig;
    protected isConnected: boolean;
    constructor(config: VectorStoreConfig);
    abstract connect(): Promise<void>;
    abstract disconnect(): Promise<void>;
    abstract addDocuments(documents: Document[]): Promise<void>;
    abstract removeDocuments(documentIds: string[]): Promise<void>;
    abstract similaritySearch(query: string, limit?: number): Promise<Document[]>;
    abstract getCollections(): Promise<string[]>;
    abstract getDocumentCount(): Promise<number>;
    abstract healthCheck(): Promise<boolean>;
    getStatus(): {
        isConnected: boolean;
        config: VectorStoreConfig;
    };
}
export declare class SupabaseVectorStore extends BaseVectorStore {
    private client;
    private tableName;
    constructor(config: VectorStoreConfig);
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    addDocuments(documents: Document[]): Promise<void>;
    removeDocuments(documentIds: string[]): Promise<void>;
    similaritySearch(query: string, limit?: number): Promise<Document[]>;
    getCollections(): Promise<string[]>;
    getDocumentCount(): Promise<number>;
    healthCheck(): Promise<boolean>;
    private mapSupabaseToDocument;
}
export declare class QdrantVectorStore extends BaseVectorStore {
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    addDocuments(documents: Document[]): Promise<void>;
    removeDocuments(documentIds: string[]): Promise<void>;
    similaritySearch(query: string, limit?: number): Promise<Document[]>;
    getCollections(): Promise<string[]>;
    getDocumentCount(): Promise<number>;
    healthCheck(): Promise<boolean>;
}
export declare class PineconeVectorStore extends BaseVectorStore {
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    addDocuments(documents: Document[]): Promise<void>;
    removeDocuments(documentIds: string[]): Promise<void>;
    similaritySearch(query: string, limit?: number): Promise<Document[]>;
    getCollections(): Promise<string[]>;
    getDocumentCount(): Promise<number>;
    healthCheck(): Promise<boolean>;
}
export declare function createVectorStore(config: VectorStoreConfig): BaseVectorStore;
export declare class EmbeddingService {
    static generateEmbedding(text: string): Promise<number[]>;
    static generateEmbeddings(texts: string[]): Promise<number[][]>;
}
export declare class VectorStoreUtils {
    static prepareDocumentsForStorage(documents: Document[]): Promise<Document[]>;
    static validateConfig(config: VectorStoreConfig): boolean;
    static getDefaultConfig(type: VectorStoreType): Partial<VectorStoreConfig>;
}
declare const _default: {
    BaseVectorStore: typeof BaseVectorStore;
    SupabaseVectorStore: typeof SupabaseVectorStore;
    QdrantVectorStore: typeof QdrantVectorStore;
    PineconeVectorStore: typeof PineconeVectorStore;
    createVectorStore: typeof createVectorStore;
    EmbeddingService: typeof EmbeddingService;
    VectorStoreUtils: typeof VectorStoreUtils;
};
export default _default;
//# sourceMappingURL=vectorStore.d.ts.map