/**
 * RAG backend configuration resolver.
 *
 * Decides which backend `buildRegistry()` instantiates for the host
 * runtime. Resolution chain (first match wins):
 *
 *   1. `OPENSQUID_RAG_BACKEND` env var — explicit override (test seam +
 *      user pinning). Accepts: `loop-engine` | `libsql-qwen3` |
 *      `libsql-fastembed` | `libsql-lexical` | `claude-auto-memory`. Unknown
 *      values surface as an error at boot rather than silently defaulting.
 *   2. `~/.opensquid/rag-config.json` — persisted user choice. Same kind
 *      vocabulary. Phase 1 ships read-only; setup wizard writes it.
 *   3. Default: `loop-engine` when the engine binary is discoverable
 *      via `resolveEngineBin()`; else `libsql-fastembed` (self-contained
 *      in-process embedder — works out-of-box with NO Ollama; E2-validated
 *      recall parity with Qwen3). `libsql-qwen3` stays available via override.
 *
 * The discoverability check is non-blocking — if the engine binary
 * lookup throws, we fall back to libsql-fastembed with a stderr note. This
 * keeps boot resilient to a half-migrated engine path while still
 * preferring the engine when it's wired up correctly.
 *
 * Each variant's tunable opts (`dbUrl`, `ollamaUrl`, `mode`) accept
 * config-file overrides. Sensible defaults baked in so a missing
 * config file produces a working backend without any user setup.
 *
 * Imports from: ../engine/config.js, ./backend_factory.js.
 * Imported by: src/runtime/bootstrap.ts.
 */
import type { BackendConfig } from './backend_factory.js';
/**
 * Resolve the backend config for `buildRegistry()`. Always returns a
 * usable config — never null. Logs to stderr when falling back to the
 * libsql default after an engine binary lookup miss so users see why
 * their preferred backend isn't active.
 */
export declare function resolveBackendConfig(): Promise<BackendConfig>;
//# sourceMappingURL=config.d.ts.map