import { type PathCtx } from '../config/paths.js'; /** * Claude keeps transcripts, /resume history, and per-project memories under * /projects. ccx runs sessions under its own config root (so it can * swap credentials), which would split that history: /resume in a ccx session * would not see sessions from plain `claude`, and vice versa. These helpers make * the ccx session root SHARE the user's real ~/.claude data instead of forking it. */ /** The user's default claude config root (~/.claude). */ export declare function defaultClaudeRoot(c?: PathCtx): string; /** * Ensure /projects is a link to ~/.claude/projects so both roots see * ONE session/memory store. Self-healing and never lossy: * - already a link: done. * - missing: link it. * - a real directory: move it aside, link, then merge the moved content into the * shared store (hardlink same-volume, copy otherwise; existing files win). * - anything locked/busy (a live session): skip now, heal on the next start. * Returns true when the link is in place. */ export declare function ensureSharedProjects(sessionDir: string, c?: PathCtx): boolean; /** * Merge the user's REAL ~/.claude/settings.json (hooks, permissions, statusline) * into the session settings, with the session's own keys (e.g. the model pin) * winning on conflict. Without this, ccx sessions silently ran WITHOUT the * user's hooks and permission rules. Idempotent; runs each session start so * settings edits are picked up. */ export declare function mergeUserSettings(sessionDir: string, c?: PathCtx): void;