/**
 * claude-auto-memory RAG backend: wraps Claude Code's own auto-memory
 * directory (`~/.claude/projects/<slug>/memory/`) as a `RagBackend`.
 *
 * This is the strategic adapter — opensquid sits on TOP of Claude Code's
 * auto-memory storage rather than competing with it. Users who already
 * rely on Claude's per-project memory get opensquid's runtime + workflow
 * + wedge gate without migrating data. `embed()` is a no-op because the
 * adapter does not own the embedding pipeline (Claude Code's own
 * vectorizer, if any, is opaque); `recall()` is naive substring search
 * over the directory's `.md` files for Phase 1. Phase 2+ may upgrade to
 * semantic recall if Anthropic exposes the auto-memory vectorizer.
 *
 * `MEMORY.md` is treated as an index (Claude Code maintains it) and
 * excluded from recall hits — including it would surface index-summary
 * matches as if they were lessons.
 *
 * Path containment is enforced on `storeLesson`: a `lesson.id` containing
 * `..` segments must NOT escape the resolved memory dir. We resolve the
 * target file, take its `relative` path from the resolved dir, and reject
 * any result that starts with `..` (or contains a `..` segment). This is
 * the only write surface the adapter exposes, so this check is the only
 * traversal gate needed.
 *
 * `CLAUDE_PROJECT_DIR` is required at init — there is no sensible default.
 * Cross-project leak (resolving to another project's memory) is prevented
 * by failing loudly when the env var is unset, rather than guessing.
 *
 * Imports from: node:fs/promises, node:os, node:path, ../types.js.
 * Imported by: src/rag/backend_factory.ts.
 */
import type { RagBackend } from '../types.js';
/**
 * Resolve the Claude Code auto-memory dir for the current project.
 *
 * Slug convention (matches Claude Code's own scheme observed at
 * `~/.claude/projects/`): replace every `/` in the absolute project path
 * with `-`. e.g. `/Users/slee/projects/loop` → `-Users-slee-projects-loop`.
 *
 * Throws if `CLAUDE_PROJECT_DIR` is unset — better to fail at init than
 * silently write into a wrong-project memory dir or the current shell's
 * cwd.
 */
export declare function projectMemoryDir(): string;
export declare function claudeAutoMemoryBackend(): RagBackend;
//# sourceMappingURL=claude_auto_memory.d.ts.map