export { ChatStorageError, genericInvalidIssue, safeStorageIssue, type ChatStorageErrorCode, type ChatValidationIssue, type ChatValidationResult, } from "./chat-storage-errors.js"; export { isKnownChatActorKind, validateActor, } from "./chat-storage-actor-validation.js"; export { CHAT_SCHEMA_VERSION, assertMatchingScope, assertThreadMessageScope, assertValidChatMessage, assertValidChatThread, isSameScope, validateChatMessage, validateChatThread, } from "./chat-storage-validation.js"; import type { ChatDeleteMetadata, ChatExportOptions, ChatExportRecord, ChatListOptions, ChatMessage, ChatMessageListResult, ChatRedactionMetadata, ChatScope, ChatStorageState, ChatThread, ChatThreadListResult } from "./types/chat.js"; export interface ChatStorage { initializeChatStorage(scope: ChatScope): Promise; createThread(scope: ChatScope, thread: ChatThread): Promise; appendMessage(scope: ChatScope, message: ChatMessage): Promise; listThreads(scope: ChatScope, options?: ChatListOptions): Promise; getThread(scope: ChatScope, threadId: string): Promise; listMessages(scope: ChatScope, threadId: string, options?: ChatListOptions): Promise; redactMessage(scope: ChatScope, messageId: string, redaction: ChatRedactionMetadata): Promise; tombstoneThread(scope: ChatScope, threadId: string, deletion: ChatDeleteMetadata): Promise; tombstoneMessage(scope: ChatScope, messageId: string, deletion: ChatDeleteMetadata): Promise; exportThread(scope: ChatScope, threadId: string, options: ChatExportOptions): Promise; }