import type { HarnessDescriptor } from "../knowledge/descriptor.js"; export interface ResumeLastNoticeInputs { /** The child's effective environment (see `effectiveGuardEnv`). */ readonly env: Readonly>; /** The spawn cwd (raw; realpath'd here). */ readonly cwd: string; /** Home for root expansion; defaults to the env, else the process home. */ readonly home?: string; } /** The store root for the scope: descriptor data first, the shared * transcript-style root elsewhere. The choice keys on descriptor data * (whether a rootEnv/defaultRoot table exists), never on a name. The * transcript-style roots resolve with the spawn-cwd anchor (relative env * values anchor at the spawn cwd, empty counts as unset - the same * precedence `resolveStoreRoot` uses); `hcn transcript` keeps the legacy * process-cwd behavior and never passes through here. */ export declare const resumeLastStoreRoot: (h: HarnessDescriptor, opts: { readonly env: Readonly>; readonly cwd: string; readonly home: string; }) => string; /** The per-cwd scope directory whose absence warns, or null where no * check exists. Derived purely from the store template: a template with * no `{cwdSlug}` (codex, muse) files no per-cwd directory; a bare * `{root}` template whose root table carries the slug (pi) files entries * in the resolved root itself; one with no `{sessionId}` and no `{root}` * is the resolved root itself; one with a `{root}` * per-cwd directory (cursor) resolves through the template; one filing * one entry per session under the slug (claude) is the slug joined under * the resolved root. */ export declare const resumeLastScopeDir: (h: HarnessDescriptor, opts: { readonly root: string; readonly cwd: string; readonly home: string; }) => string | null; export interface ResumeLastNotices { /** The realpath scope the texts name. */ readonly cwd: string; /** The resolved store root the diagnostic line names. */ readonly root: string; /** The pre-spawn messages in emit order: the fixed warning, the * resolved-root diagnostic, then the absent-directory warn when the * per-cwd directory is missing (never a refusal: the absent case is * also the legitimate first run in a new cwd). */ readonly messages: readonly string[]; } /** The realpath of the spawn cwd: the harnesses slug the physical path * (the claude project directory carries the -private-tmp- prefix). A cwd * that does not exist yet resolves to itself. */ export declare const resumeLastScopeCwd: (cwd: string) => string; /** The full pre-spawn guard for one resume-last turn. Read-only against * the filesystem (one realpath, at most one existence check); never * refuses. */ export declare const resumeLastNoticesFor: (h: HarnessDescriptor, opts: ResumeLastNoticeInputs) => ResumeLastNotices; //# sourceMappingURL=resume-last-guard.d.ts.map