/**
 * 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<Float32Array>;
    /** 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<Float32Array | null>;
/** 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 @xenova/transformers
 * bundle unless embedding is actually requested.
 *
 * @task T136 @epic T134
 */
export declare function initDefaultProvider(): Promise<void>;
//# sourceMappingURL=brain-embedding.d.ts.map