/**
 * Automatic embedding update service
 * Regenerates embeddings when memories are created or updated
 */
import { DatabaseConnection } from '../database/index.js';
export interface EmbeddingUpdateOptions {
    batchSize?: number;
    retryAttempts?: number;
    retryDelay?: number;
}
export declare class EmbeddingUpdater {
    private db;
    private embeddings;
    private isProcessing;
    private queue;
    private batchSize;
    private retryAttempts;
    private retryDelay;
    constructor(db: DatabaseConnection, openaiApiKey?: string, options?: EmbeddingUpdateOptions);
    /**
     * Queue a memory for embedding update
     */
    queueMemoryUpdate(memoryId: string): void;
    /**
     * Queue multiple memories for embedding update
     */
    queueMultipleUpdates(memoryIds: string[]): void;
    /**
     * Process the queue of memories needing embedding updates
     */
    private processQueue;
    /**
     * Process a batch of memories
     */
    private processBatch;
    /**
     * Update embedding for a single memory
     */
    private updateMemoryEmbedding;
    /**
     * Create embedding text from memory data
     */
    private createEmbeddingText;
    /**
     * Update all memories without embeddings
     */
    updateAllMissingEmbeddings(): Promise<{
        updated: number;
        failed: number;
    }>;
    /**
     * Monitor and update embeddings periodically
     */
    startMonitoring(intervalMs?: number): Promise<void>;
}
/**
 * Create and configure an embedding updater instance
 */
export declare function createEmbeddingUpdater(db: DatabaseConnection, openaiApiKey?: string, options?: EmbeddingUpdateOptions): EmbeddingUpdater;
//# sourceMappingURL=embedding-updater.d.ts.map