/**
 * ChromaDB Integration Service
 * Manages vector database operations for Optimizely documentation storage
 */
export interface DocumentChunk {
    id: string;
    content: string;
    metadata: {
        product: string;
        url: string;
        title: string;
        section?: string;
        lastUpdated: string;
        contentType: 'documentation' | 'tutorial' | 'api' | 'example';
        tags?: string[];
    };
}
export interface SearchResult {
    id: string;
    content: string;
    metadata: DocumentChunk['metadata'];
    similarity: number;
}
export interface ChromaConfig {
    host?: string;
    port?: number;
    ssl?: boolean;
    headers?: Record<string, string>;
}
export declare class ChromaDBService {
    private client;
    private collections;
    private config;
    private breaker;
    private static readonly COLLECTIONS;
    constructor(config?: ChromaConfig);
    /**
     * Initialize ChromaDB client and collections
     */
    initialize(): Promise<boolean>;
    /**
     * Initialize collections for each Optimizely product
     */
    private initializeCollections;
    /**
     * Add document chunks to the appropriate collection
     */
    addDocuments(documents: DocumentChunk[]): Promise<boolean>;
    /**
     * Search for similar documents across all collections or specific product
     */
    searchDocuments(query: string, options?: {
        product?: string;
        limit?: number;
        threshold?: number;
        contentTypes?: string[];
    }): Promise<SearchResult[]>;
    /**
     * Get collection statistics
     */
    getCollectionStats(): Promise<Record<string, any>>;
    /**
     * Delete documents by IDs
     */
    deleteDocuments(ids: string[], product?: string): Promise<boolean>;
    /**
     * Clear all documents from a collection
     */
    clearCollection(product: string): Promise<boolean>;
    /**
     * Get collection name for a product
     */
    private getCollectionName;
    /**
     * Check if ChromaDB is available
     */
    isAvailable(): boolean;
    getCircuitState(): 'closed' | 'open' | 'half-open';
    /**
     * Test ChromaDB connection
     */
    testConnection(): Promise<boolean>;
    /**
     * Cleanup resources
     */
    cleanup(): Promise<void>;
}
export declare const chromaDBService: ChromaDBService;
//# sourceMappingURL=chromadb-client.d.ts.map