import { type FocusSessionRecord, type FocusSessionStore, type PlanRef } from "@veewo/claw-core"; export declare const SESSION_RECORD_TTL_MS: number; export type SessionClientInfo = { kind: "terminal" | "node" | "adapter"; host?: string; }; export type SessionRecordV2 = { schemaVersion: 2; agentSessionId: string; canonicalWorkdir: string; state: "live" | "disconnected"; currentPlan?: PlanRef; createdAt: string; updatedAt: string; lastConnectedAt: string; expiresAt: string; lastClient?: SessionClientInfo; }; export type SessionIdentityV2 = { agentSessionId: string; canonicalWorkdir: string; sessionKeyHash: string; }; export declare function resolveSessionDaemonRuntimeRoot(env?: NodeJS.ProcessEnv): string; export declare function canonicalizeSessionWorkdir(workdir: string): string; export declare function createSessionIdentity(agentSessionId: string, workdir: string): SessionIdentityV2; export declare function sessionFocusKey(identity: Pick): string; export declare class SessionRegistryV2 { readonly runtimeRoot: string; constructor(runtimeRoot?: string); open(agentSessionId: string, workdir: string, client: SessionClientInfo, now?: Date): Promise<{ identity: SessionIdentityV2; record: SessionRecordV2; created: boolean; }>; close(sessionKeyHash: string, now?: Date): Promise; touch(sessionKeyHash: string, now?: Date): Promise; read(sessionKeyHash: string): SessionRecordV2; write(sessionKeyHash: string, record: SessionRecordV2): void; recover(now?: Date): { normalized: string[]; removed: string[]; }; cleanupExpired(now?: Date, liveSessionKeys?: Set): string[]; listExpiredRecords(now?: Date, liveSessionKeys?: Set): Array<{ sessionKeyHash: string; record: SessionRecordV2; }>; removeExpired(sessionKeyHash: string, now?: Date): boolean; removeReleasedExpired(sessionKeyHash: string): boolean; recordPath(sessionKeyHash: string): string; commandQueuePath(sessionKeyHash: string): string; sessionDirectory(sessionKeyHash: string): string; private listSessionKeys; private removeSessionDirectory; } export declare function ensurePrivateDirectory(directory: string): void; export declare class RegistryFocusSessionStore implements FocusSessionStore { readonly registry: SessionRegistryV2; constructor(registry: SessionRegistryV2); read(sessionKeyHash: string): FocusSessionRecord; buildPersistedRecord(sessionKeyHash: string, focus: FocusSessionRecord): unknown; writePersistedAtomic(sessionKeyHash: string, persistedRecord: unknown): void; queuePath(sessionKeyHash: string): string; resourcePath(sessionKeyHash: string): string; }