export type SessionClientRecord = { daemonId: string; tmuxSessionId?: string; sessionId?: string; workdir?: string; conversationSessionIds?: string[]; clientType?: string; callbackUrl: string; tmuxTarget?: string; managedTmuxSession?: boolean; managedClientProcess?: boolean; managedClientPid?: number; managedClientCommandHint?: string; registeredAtMs: number; lastHeartbeatAtMs: number; lastInjectAtMs?: number; lastError?: string; }; export type SessionClientInjectArgs = { tmuxSessionId?: string; tmuxTarget?: string; sessionId?: string; workdir?: string; clientType?: string; tmuxOnly?: boolean; text: string; requestId?: string; source?: string; }; export type SessionClientInjectResult = { ok: boolean; daemonId?: string; reason?: string; }; export type SessionConversationBindArgs = { conversationSessionId: string; tmuxSessionId?: string; daemonId?: string; clientType?: string; workdir?: string; }; export type SessionCleanupResult = { removedDaemonIds: string[]; removedTmuxSessionIds: string[]; removedConversationSessionIds: string[]; killedTmuxSessionIds: string[]; failedKillTmuxSessionIds: string[]; skippedKillTmuxSessionIds: string[]; killedManagedClientPids: number[]; failedKillManagedClientPids: number[]; skippedKillManagedClientPids: number[]; }; export type SessionStaleCleanupResult = SessionCleanupResult & { staleAfterMs: number; }; type ManagedProcessInfo = { daemonId: string; pid: number; commandHint?: string; clientType?: string; }; export declare function normalizeString(value: unknown): string | undefined; export declare function normalizeWorkdir(value: unknown): string | undefined; export declare function isWorkdirCompatible(recordWorkdirRaw: unknown, hintWorkdirRaw: unknown): boolean; export declare function resolveHeartbeatTtlMs(): number; export declare function resolveManagedTmuxSessionState(args: { previousManagedTmuxSession?: boolean; managedTmuxSessionInput?: boolean; }): boolean; export declare function resolveManagedClientProcessState(args: { previousManagedClientProcess?: boolean; managedClientProcessInput?: boolean; }): boolean; export declare function normalizePositiveInt(value: unknown): number | undefined; export declare function removeConversationMappingsByTmuxSession(conversationToTmuxSession: Map, tmuxSessionIdRaw: string): string[]; export declare function cleanupStaleHeartbeatsFromRegistry(args: { records: Map; conversationToTmuxSession: Map; nowMs?: number; staleAfterMs?: number; isTmuxSessionAlive?: (tmuxSessionId: string) => boolean; terminateManagedTmuxSession?: (tmuxSessionId: string) => boolean; terminateManagedClientProcess?: (processInfo: ManagedProcessInfo) => boolean; }): SessionStaleCleanupResult; export declare function cleanupDeadTmuxSessionsFromRegistry(args: { records: Map; conversationToTmuxSession: Map; isTmuxSessionAlive: (tmuxSessionId: string) => boolean; terminateManagedTmuxSession?: (tmuxSessionId: string) => boolean; terminateManagedClientProcess?: (processInfo: ManagedProcessInfo) => boolean; }): SessionCleanupResult; export {};