import type { AttachmentStore } from './attachment-store.js'; import type { ConversationStreamStore } from './conversation-stream.js'; import type { CostBudgetStore } from './cost-budget.js'; import type { RunStore } from './persistence.js'; import type { AgentSubmissionStore } from './submission-store.js'; import type { SessionStore } from './types.js'; export interface PersistenceHealth { ok: boolean; latencyMs: number; backend: string; } export interface PersistenceDeleteResult { sessionId: string; deletedSubmissions: number; deletedAttachments: number; deletedConversationStream: boolean; /** Signed, content-free evidence when deletion recording is configured. */ deletionRecord?: DeletionCompletionRecord; } export interface DeletionCompletionRecord { version: 1; deletionId: string; /** HMAC pseudonym of the deleted session id; the id itself is not retained. */ subjectDigest: string; tenantDigest?: string; completedAt: string; deletedSubmissions: number; deletedAttachments: number; deletedConversationStream: boolean; previousRecordDigest?: string; recordDigest: string; algorithm: 'hmac-sha256' | 'ed25519'; keyId: string; signature: string; } /** Complete persistence surface consumed by a Fabric host. */ export interface PersistenceBundle { readonly backend: string; readonly sessionStore: SessionStore; readonly submissionStore: AgentSubmissionStore; readonly conversationStreamStore: ConversationStreamStore; readonly attachmentStore: AttachmentStore; readonly runStore: RunStore; readonly costBudgetStore: CostBudgetStore; migrate(): Promise; health(): Promise; serverOptions(): Promise<{ sessionStore: SessionStore; submissionStore: AgentSubmissionStore; conversationStreamStore: ConversationStreamStore; attachmentStore: AttachmentStore; }>; deleteSession(sessionId: string): Promise; close(): Promise; } //# sourceMappingURL=persistence-bundle.d.ts.map