/** * Conversation Storage * * High-performance storage layer for conversation recording * Features: dual indexing, LRU caching, date-based partitioning, async I/O */ import { ConversationSession, ConversationMessage, ConversationSearchQuery, MessageSearchQuery, ConversationStorageStats, StorageConfig, LRUCacheOptions } from './types'; /** * LRU Cache Implementation * Least Recently Used cache with automatic eviction */ export declare class LRUCache { private cache; private maxSize; private ttl?; private timestamps?; constructor(options: LRUCacheOptions); get(key: K): V | undefined; set(key: K, value: V): void; has(key: K): boolean; delete(key: K): boolean; clear(): void; size(): number; } /** * Conversation Storage Manager * Manages conversation data persistence with optimized performance */ export declare class ConversationStorage { private config; private basePath; private sessionCache; private messageCache; private sessionIndex; private messageIndex; private indexUpdateQueue; private indexUpdateTimer; private closed; constructor(config: StorageConfig); /** * Initialize storage - create directories and load indexes */ init(): Promise; /** * Save conversation session */ saveSession(session: ConversationSession): Promise; /** * Save conversation message * Optimized for high-frequency writes (<10ms target) */ saveMessage(message: ConversationMessage): Promise; /** * Get session by ID */ getSession(id: string): Promise; /** * Get message by ID */ getMessage(id: string): Promise; /** * Get all messages for a session */ getSessionMessages(sessionId: string): Promise; /** * Update existing session */ updateSession(session: ConversationSession): Promise; /** * Update existing message */ updateMessage(message: ConversationMessage): Promise; /** * Search conversations */ searchConversations(query: ConversationSearchQuery): Promise; /** * Search messages */ searchMessages(query: MessageSearchQuery): Promise; /** * Get storage statistics */ getStats(): Promise; /** * Close storage - flush pending operations */ close(): Promise; private createEmptySessionIndex; private createEmptyMessageIndex; private createDirectories; private loadIndexes; private loadSessionIndex; private loadMessageIndex; private updateSessionIndex; private updateSessionStats; private saveSessionIndex; private queueIndexUpdate; private flushIndexUpdates; private addMessageToIndex; private saveMessageIndex; private findMessageIndexEntry; private writeMessageToDisk; /** * Atomic write with retry logic * Uses unique temp files to prevent race conditions during concurrent writes */ private atomicWrite; private parseSession; private parseMessage; private getMonthKey; private getDateKey; private calculateDiskUsage; private calculateCacheHitRate; private expandPath; } //# sourceMappingURL=storage.d.ts.map