UNPKG

@agentman/chat-widget

Version:

Agentman Chat Widget for easy integration with web applications

67 lines (66 loc) 2.12 kB
import type { Message, AgentMetadata } from "./types/types"; import type { PersistenceResult, PersistenceEventCallback, StorageInfo } from "./types/persistence-types"; import { StateManager } from "./StateManager"; export interface ConversationMeta { id: string; title: string; lastUpdated: number; metadata?: AgentMetadata; } export declare class PersistenceManager { private containerId; private stateManager; private enabled; private logger; private eventCallbacks; private inMemoryFallback; private useInMemoryFallback; constructor(containerId: string, stateManager: StateManager, enabled?: boolean, debugConfig?: boolean | import('./types/types').DebugConfig); onPersistenceEvent(callback: PersistenceEventCallback): void; private emitEvent; private checkStorageAvailability; private get indexKey(); private convKey; getStorageKey(): string; private readIndex; private writeIndex; private handleStorageError; private getErrorMessage; list(): ConversationMeta[]; getCurrentId(): string | undefined; create(initialTitle?: string): string; switchTo(id: string): void; delete(id: string): void; loadMessages(): Message[]; loadMetadata(): AgentMetadata | null; saveMetadata(metadata: AgentMetadata): void; /** * Atomically save metadata to prevent corruption */ private saveMetadataAtomic; /** * Update index with metadata */ private updateIndexMetadata; saveMessages(): PersistenceResult; migrateLegacy(): void; setConversationId(id: string): void; getConversationId(): string | null; clearStorage(): void; /** * Safely parse and validate conversation payload */ private parseAndValidatePayload; /** * Create default conversation payload */ private createDefaultPayload; /** * Get storage usage information */ getStorageInfo(): Promise<StorageInfo>; /** * Clear old conversations to free up space */ clearOldConversations(keepCount?: number): PersistenceResult<number>; }