/** * @fileoverview Storage adapter for persistent memory storage */ import type { MemoryMetadata } from '../types/index.js'; /** * Storage adapter interface for different storage backends */ export interface StorageAdapter { /** * Store a memory entry */ store(memory: MemoryMetadata): Promise; /** * Retrieve a memory by ID */ retrieve(id: string): Promise; /** * Update a memory entry */ update(id: string, updates: Partial): Promise; /** * Delete a memory entry */ delete(id: string): Promise; /** * List memories with optional filtering */ list(filters?: MemoryFilters): Promise; /** * Clear all memories (with optional tenant filter) */ clear(tenantId?: string): Promise; } /** * Memory filtering options */ export interface MemoryFilters { tenantId?: string; agentId?: string; type?: string; importance?: number; minImportance?: number; maxImportance?: number; tags?: string[]; since?: Date; until?: Date; startDate?: Date; endDate?: Date; sortBy?: 'created' | 'updated' | 'accessed' | 'importance'; offset?: number; limit?: number; } /** * In-memory storage adapter for development and testing */ export declare class InMemoryStorageAdapter implements StorageAdapter { private memories; store(memory: MemoryMetadata): Promise; retrieve(id: string): Promise; update(id: string, updates: Partial): Promise; delete(id: string): Promise; list(filters?: MemoryFilters): Promise; clear(tenantId?: string): Promise; } /** * PostgreSQL storage adapter (production implementation available) * @deprecated Use ProductionPostgreSQLAdapter for production deployments */ /** * PostgreSQL storage adapter - Enhanced implementation * @deprecated Use ProductionPostgreSQLAdapter for new implementations */ export declare class PostgreSQLStorageAdapter implements StorageAdapter { private adapter; constructor(connectionString: string); private parseConnectionString; store(memory: MemoryMetadata): Promise; retrieve(id: string): Promise; update(id: string, updates: Partial): Promise; delete(id: string): Promise; list(filters?: MemoryFilters): Promise; clear(tenantId?: string): Promise; } /** * Redis storage adapter - Production implementation */ export declare class RedisStorageAdapter implements StorageAdapter { private redisUrl; private redis; constructor(redisUrl: string); private initializeRedis; private ensureConnected; store(memory: MemoryMetadata): Promise; retrieve(id: string): Promise; update(id: string, updates: Partial): Promise; delete(id: string): Promise; list(filters?: MemoryFilters): Promise; clear(tenantId?: string): Promise; } /** * File-based storage adapter for shared persistent storage */ export declare class FileStorageAdapter implements StorageAdapter { private filePath; private lockPath; constructor(dataDirectory?: string); private ensureDirectory; private acquireLock; private releaseLock; private readMemories; private writeMemories; store(memory: MemoryMetadata): Promise; retrieve(id: string): Promise; update(id: string, updates: Partial): Promise; delete(id: string): Promise; list(filters?: MemoryFilters): Promise; clear(tenantId?: string): Promise; } //# sourceMappingURL=StorageAdapter.d.ts.map