/**
 * Minimal Ollama HTTP client for embeddings.
 *
 * Single endpoint: `POST {ollamaUrl}/api/embed` with `{ model, input }`.
 * Returns `embeddings[0]` (Ollama replies `{ embeddings: number[][] }`
 * for `input` — array-of-strings — so we always take the first vector).
 *
 * NO model-name hardcoding in the call site: the caller supplies the
 * model id. The default arg here (`qwen3-embedding:4b`) is the project's
 * chosen embedder per `project_loop_embedder_choice` — this is the
 * embedder choice memory, not the LLM-model-neutrality rule
 * (`feedback_stop_haiku_drift`). The LLM neutrality rule applies to
 * classifier / subagent calls (see src/functions/llm.ts); the embedder
 * is a fixed substrate choice for the default backend.
 *
 * `QWEN3_DIM = 2560` is exported so the libsql backend can pin its
 * F32_BLOB schema column to the right width. Mismatch causes silent
 * insert failures, not row errors — that's the libsql vector contract.
 *
 * Errors: throws on non-2xx HTTP, missing `embeddings` field, or empty
 * vector. The libsql backend catches these to flip `embedderUp = false`.
 *
 * Imports from: nothing (fetch is global in Node 20+).
 * Imported by: src/rag/backends/libsql_qwen3.ts.
 */
export declare const QWEN3_DIM = 2560;
export declare function ollamaEmbed(ollamaUrl: string, text: string, model?: string): Promise<number[]>;
//# sourceMappingURL=ollama_client.d.ts.map