/**
 * T-CTX-LOOP CTX.4 (2026-05-29) — new-project detector.
 *
 * Fires inline at user-prompt-submit. Once per session — controlled by a
 * marker file at `~/.opensquid/sessions/<sid>/.new-project-checked`. When
 * the session's recorded cwd does NOT resolve to a known
 * `~/.claude/projects/<encoded-cwd>/memory/` directory (Claude Code's
 * per-project memory home), this module emits a one-paragraph
 * additionalContext line proposing the agent surface the new project +
 * route through CTX.0's verify-probe-gated `memorize` for global
 * `~/.claude/CLAUDE.md` mind-map update.
 *
 * Per `[[project-opensquid-interconnected-communication-loop]]`: the
 * cold-start LOAD position depends on the global mind-map's projects-index
 * being current; CTX.4 closes the new-project edge case.
 *
 * Imports from: node:fs/promises, node:os, node:path, ../session_state.js.
 * Imported by: src/runtime/hooks/user-prompt-submit.ts;
 *   src/runtime/hooks/new_project_detect.test.ts.
 */
export interface NewProjectDetectDeps {
    /** Defaults to `~/.claude/projects`. Test seam. */
    claudeProjectsRoot?: string;
    /** Defaults to `readSessionCwd`. Test seam. */
    readCwd?: (sessionId: string) => Promise<string | null>;
}
/**
 * Returns the additionalContext line to inject when a new project is
 * detected for THIS session — or `null` when (a) the once-marker exists,
 * (b) the cwd is unknown, or (c) the project's memory dir already exists.
 * Always writes the once-marker before returning (so a follow-up call in
 * the same session no-ops, regardless of outcome).
 */
export declare function detectNewProject(sessionId: string, deps?: NewProjectDetectDeps): Promise<string | null>;
//# sourceMappingURL=new_project_detect.d.ts.map