import { type ManagedScopeErrorCode } from "../session/internal/managed-session-scope"; import type { ResumeSessionIdentity } from "../session/session-manager"; /** Version of the supported readonly managed-session directory API. */ /** Broker-owned policy for managed-session migration decisions after scope validation. */ export type DirectoryMigrationPolicy = "copy-retain" | "disabled"; export declare const SESSION_DIRECTORY_API_VERSION: 1; /** A collision-resistant v2 managed-session scope for one canonical workspace identity. */ export interface ManagedSessionScope { readonly apiVersion: 1; readonly layoutVersion: 2; readonly identityVersion: 1; readonly agentDir: string; readonly sessionsRoot: string; readonly canonicalCwd: string; readonly legacyLexicalCwd: string; readonly directoryName: string; readonly directoryPath: string; } export type ResolveManagedSessionScopeResult = { kind: "resolved"; scope: ManagedSessionScope; } | { kind: "error"; code: ManagedScopeErrorCode; message: string; }; export interface LogicalSessionCandidate { readonly sessionId: string; readonly path: string; readonly cwd: string; readonly provenance: "v2" | "legacy"; readonly identity: Readonly; readonly migrationState: "native_v2" | "legacy_unmigrated" | "migrated_v2"; } export type ListManagedSessionCandidatesResult = { kind: "complete"; scope: ManagedSessionScope; owned: readonly LogicalSessionCandidate[]; foreignCount: number; invalid: readonly { code: string; }[]; } | { kind: "error"; code: "scan_failed" | "unsafe_root" | "invalid_candidate"; message: string; }; /** Resolve a v2 scope without creating, migrating, or deleting session data. */ export declare function resolveManagedSessionScope(input: { cwd: string; agentDir?: string; sessionsRoot?: string; }): Promise; /** List readonly v2 and validated legacy candidates for an already resolved scope. */ export declare function listManagedSessionCandidates(input: { scope: ManagedSessionScope; }): Promise;