import type { RuntimeWorkspace } from './types.js'; import type { TraceActor } from '../session/session-identity.js'; import { type ProcessLiveness } from '../process-liveness.js'; export declare const PRESENCE_SCHEMA_VERSION = 1; export interface PresenceFileInfo { sessionId: string; surface: string; actor?: TraceActor; cwd: string; startedAt: string; model: { provider: string; name: string; }; workspace: RuntimeWorkspace; pid: number; afk?: boolean; schemaVersion?: number; heartbeatAt?: string; blockedSince?: string; } export type PresenceLiveness = ProcessLiveness; export interface PresenceRecord extends PresenceFileInfo { path: string; liveness: PresenceLiveness; heartbeatAgeMs: number | null; } export declare function writePresenceFile(info: PresenceFileInfo): Promise; export declare function writePresenceFileSync(info: PresenceFileInfo): void; export declare function touchPresenceHeartbeat(sessionId: string): Promise; export declare function setPresenceAfk(sessionId: string, afk: boolean): Promise; export declare function setPresenceBlocked(sessionId: string, blocked: boolean): Promise; export declare function updatePresenceCwd(sessionId: string, cwd: string): Promise; export declare function removePresenceFile(sessionId: string): Promise; export declare function removePresenceFileSync(sessionId: string): void; export declare function readPresenceFiles(): Promise; export interface ReadLivePresenceOptions { maxHeartbeatAgeMs?: number; } export declare function readLivePresenceFiles(options?: ReadLivePresenceOptions): Promise;