import type Database from 'better-sqlite3';
import { BaseEmbeddingEngine } from '@timmeck/brain-core';
export interface EmbeddingConfig {
    enabled: boolean;
    modelName: string;
    cacheDir: string;
    sweepIntervalMs: number;
    batchSize: number;
}
/**
 * Brain-specific embedding engine.
 * Extends BaseEmbeddingEngine with sweep logic for brain's domain tables:
 * errors, code_modules, memories, sessions, decisions, tasks, project_docs.
 */
export declare class EmbeddingEngine extends BaseEmbeddingEngine {
    private config;
    private db;
    private sweepTimer;
    private sweepIntervalMs;
    private batchSize;
    constructor(config: EmbeddingConfig, db: Database.Database);
    /** Start background embedding sweep */
    start(): void;
    stop(): void;
    /** Generate embedding for a single text, returning null on failure (backward compat) */
    embedSafe(text: string): Promise<Float32Array | null>;
    /** Compute and store embeddings for entries that don't have them yet */
    sweep(): Promise<{
        errors: number;
        modules: number;
        memories: number;
        sessions: number;
        decisions: number;
        tasks: number;
        docs: number;
    }>;
    /** Load vector scores for error matching (sync - reads pre-computed embeddings from DB) */
    computeErrorVectorScores(errorId: number, projectId: number): Map<number, number>;
    /** Load vector scores for module-to-module matching (sync - reads pre-computed embeddings from DB) */
    computeModuleVectorScores(moduleId: number, language?: string): Map<number, number>;
}
