import type { EmbeddingProvider } from '../config-schema.js';
/**
 * All embedding providers implement this interface.
 */
export interface Embedder {
    /** The dimensionality of vectors produced by this embedder */
    readonly dimensions: number;
    /**
     * Embed a batch of texts. Returns one vector per input text.
     * Implementations should handle batching/rate-limiting internally.
     */
    embed(texts: string[]): Promise<number[][]>;
}
/**
 * Probe the Ollama daemon's `/api/tags` endpoint to determine whether it's
 * reachable. Used internally by `LazyEmbedder`'s fallback chain and exported
 * for `totem doctor`'s floor-expectation diagnostic (mmnto-ai/totem#1851).
 *
 * Never throws — network errors, timeouts, ECONNREFUSED, and non-2xx
 * responses all resolve to `false`. Bounded by a 3-second `AbortSignal`
 * timeout.
 */
export declare function isOllamaAvailable(baseUrl?: string): Promise<boolean>;
/**
 * Create an embedder from config. If the configured provider's SDK or API key
 * is missing, falls back to Ollama. If Ollama isn't available either, throws
 * a clear error.
 *
 * Returns synchronously via a lazy proxy that resolves on first embed() call.
 *
 * @param onWarn Optional callback for fallback warnings (defaults to a no-op)
 */
export declare function createEmbedder(config: EmbeddingProvider, onWarn?: (msg: string) => void): Embedder;
//# sourceMappingURL=embedder.d.ts.map