import type { ProcessManager } from "./process-manager.js"; import type { StructuredSessionManager } from "./structured-session-manager.js"; import type { WandStorage } from "./storage.js"; import type { ExecutionMode, SessionSnapshot } from "./types.js"; export type SessionOwner = "structured" | "pty" | "storage"; /** * Coordinates session ownership without merging the two runner managers. * Live structured state wins over PTY, and both win over a durable fallback. */ export declare class SessionRegistry { private readonly processes; private readonly structured; private readonly storage; constructor(processes: ProcessManager, structured: StructuredSessionManager, storage: WandStorage); ownerOf(id: string): SessionOwner | null; get(id: string): SessionSnapshot | null; getLatest(id: string): SessionSnapshot | null; listSlim(): SessionSnapshot[]; setSessionModel(id: string, model: string | null): SessionSnapshot | null; setSessionThinkingEffort(id: string, effort: SessionSnapshot["thinkingEffort"]): SessionSnapshot | null; setSessionMode(id: string, mode: ExecutionMode): SessionSnapshot | null; setSessionTopic(id: string, title: string, description: string): SessionSnapshot | null; updateWorktreeState(id: string, status: SessionSnapshot["worktreeMergeStatus"], info: SessionSnapshot["worktreeMergeInfo"]): SessionSnapshot | null; delete(id: string): SessionSnapshot | null; deleteWithProviderHistory(id: string): SessionSnapshot | null; private updateStored; }