import type * as LlmsProviders from "@cline/llms"; import type { AgentResult, BasicLogger } from "@cline/shared"; import type { SubAgentEndContext, SubAgentStartContext } from "../../extensions/tools/team"; import type { HookEventPayload } from "../../hooks"; import { type SessionStatus, type TerminalSessionStatus } from "../../types/common"; import type { PersistedSessionUpdateInput, SessionMessagesArtifactUploader, SessionPersistenceAdapter } from "../../types/session"; import type { SessionCompactionState } from "../models/session-compaction"; import type { SessionRow } from "../models/session-row"; export type { PersistedSessionUpdateInput, SessionPersistenceAdapter }; export declare class UnifiedSessionPersistenceService { private readonly adapter; private readonly manifestStore; private readonly teamChildren; private static readonly STALE_REASON; private static readonly STALE_SOURCE; private static readonly TEAM_HEARTBEAT_LOG_INTERVAL_MS; constructor(adapter: SessionPersistenceAdapter, options?: { messagesArtifactUploader?: SessionMessagesArtifactUploader; logger?: BasicLogger; }); private toPersistedMessages; ensureSessionsDir(): string; writeSessionManifest(manifestPath: string, manifest: import("../models/session-manifest").SessionManifest): void; readSessionManifest(sessionId: string): import("../models/session-manifest").SessionManifest | undefined; createRootSessionWithArtifacts(input: import("../models/session-row").CreateRootSessionWithArtifactsInput): Promise; updateSessionStatus(sessionId: string, status: SessionStatus, exitCode?: number | null): Promise<{ updated: boolean; endedAt?: string; }>; updateSession(input: { sessionId: string; prompt?: string | null; metadata?: Record | null; title?: string | null; }): Promise<{ updated: boolean; }>; queueSpawnRequest(event: HookEventPayload): Promise; upsertSubagentSession(input: import("../models/session-row").UpsertSubagentInput): Promise; upsertSubagentSessionFromHook(event: HookEventPayload): Promise; appendSubagentHookAudit(_subSessionId: string, event: HookEventPayload): Promise; persistSessionMessages(sessionId: string, messages: LlmsProviders.Message[], systemPrompt?: string): Promise; readSessionCompactionState(sessionId: string): Promise; persistSessionCompactionState(sessionId: string, state: SessionCompactionState): Promise; deleteSessionCompactionState(sessionId: string): Promise; applySubagentStatus(subSessionId: string, event: HookEventPayload): Promise; applySubagentStatusBySessionId(subSessionId: string, status: SessionStatus): Promise; applyStatusToRunningChildSessions(parentSessionId: string, status: TerminalSessionStatus): Promise; onTeamTaskStart(rootSessionId: string, agentId: string, message: string): Promise; onTeamTaskEnd(rootSessionId: string, agentId: string, status: SessionStatus, summary?: string, result?: AgentResult, messages?: LlmsProviders.Message[]): Promise; onTeamTaskProgress(rootSessionId: string, agentId: string, progress: string, options?: { kind?: "heartbeat" | "progress" | "text"; }): Promise; handleSubAgentStart(rootSessionId: string, context: SubAgentStartContext): Promise; handleSubAgentEnd(rootSessionId: string, context: SubAgentEndContext): Promise; private isPidAlive; private reconcileDeadRunningSession; listSessions(limit?: number): Promise; reconcileDeadSessions(limit?: number): Promise; deleteSession(sessionId: string): Promise<{ deleted: boolean; }>; private deleteSessionCompactionStateIfExists; }