/**
 * RAG primitives: `recall`, `embed`, `store_lesson`.
 *
 * Skills compose these into rule processes via YAML; the runtime
 * dispatches each call through whichever backend the user configured
 * (libsql-qwen3 default, libsql-lexical fallback, or an adapter — see
 * src/rag/backend_factory.ts).
 *
 * Pluggability boundary: this file imports `RagBackend` ONLY from
 * `../rag/types.js` — no `@libsql/client` types, no embedder-specific
 * imports. A skill that calls `function: recall` doesn't know or care
 * what backend serves the request. Audit rule: keep it that way.
 *
 * Primitive surfaces:
 *
 *   recall({ query, k? = 5 }) → ok(RecallHit[])
 *     Fused semantic + lexical recall. Returns `[]` for empty DB or
 *     queries that match nothing. Errors travel as `runtime` — recall
 *     bugs (driver crash, schema mismatch) shouldn't silently mask
 *     empty results.
 *
 *   embed({ text }) → ok(number[] | null)
 *     `null` means the embedder is unavailable (Ollama down / model
 *     missing). Treat that as a degraded-mode signal, not an error —
 *     `store_lesson` continues to work, recall falls back to lexical.
 *
 *   store_lesson({ id, content, tags?, source?, author? }) → ok(undefined)
 *     Stamps `createdAt` with `new Date().toISOString()` so YAML
 *     authors don't have to compute it. `tags` defaults to `[]`,
 *     `source` to `'unknown'`, `author` to `'agent'` — these match
 *     the most common path (agent-captured candidates during a run).
 *
 * Imports from: zod, ../rag/types.js, ../runtime/result.js, ./registry.js.
 * Imported by: src/functions/index.ts (registry wiring).
 */
import type { RagBackend } from '../rag/types.js';
import type { FunctionRegistry } from './registry.js';
export declare function registerRagFunctions(registry: FunctionRegistry, backend: RagBackend): void;
//# sourceMappingURL=rag.d.ts.map