/** * Brain Embedding System * * Provides text-to-vector embedding for semantic search in brain.db. * Uses a pluggable provider interface — real model integration * (e.g. @huggingface/transformers with all-MiniLM-L6-v2) is separate * from the embedding pipeline. When no provider is set, the system * falls back to FTS5-only search gracefully. * * @epic T5149 * @task T5386 */ /** Contract for embedding providers (local models, API services, etc.). */ export interface EmbeddingProvider { /** Convert text into a fixed-dimension float vector. */ embed(text: string): Promise; /** Number of dimensions the provider produces. Must match vec0 table. */ readonly dimensions: number; /** Whether the provider is ready to produce embeddings. */ isAvailable(): boolean; } /** Matches the brain_embeddings vec0 table: FLOAT[384]. */ export declare const EMBEDDING_DIMENSIONS = 384; /** * Register an embedding provider for the brain system. * Validates that the provider's dimensions match the vec0 table. * * @throws Error if provider dimensions do not match EMBEDDING_DIMENSIONS */ export declare function setEmbeddingProvider(provider: EmbeddingProvider): void; /** Get the currently registered embedding provider, or null. */ export declare function getEmbeddingProvider(): EmbeddingProvider | null; /** Clear the current embedding provider (useful for testing). */ export declare function clearEmbeddingProvider(): void; /** * Embed text into a float vector using the registered provider. * Returns null when no provider is set or not available (FTS5-only fallback). */ export declare function embedText(text: string): Promise; /** Check whether embedding is currently available. */ export declare function isEmbeddingAvailable(): boolean; /** * Initialize the default local embedding provider. * * Loads the LocalEmbeddingProvider dynamically and registers it via * setEmbeddingProvider(). Should be called once at startup when * `brain.embedding.enabled` is true. * * Uses dynamic import to avoid loading the heavy @huggingface/transformers * bundle unless embedding is actually requested. * * @task T136 @epic T134 */ export declare function initDefaultProvider(): Promise; //# sourceMappingURL=brain-embedding.d.ts.map