import { BaseCheckpointSaver, Checkpoint, CheckpointMetadata, CheckpointTuple } from "@langchain/langgraph"; import { RunnableConfig } from "@langchain/core/runnables"; /** * Redis session configuration interface */ export interface RedisSessionConfig { host?: string; port?: number; password?: string; database?: number; url?: string; keyPrefix?: string; ttl?: number; maxSessions?: number; enableCompression?: boolean; } /** * Session metadata interface */ export interface SessionMetadata { id: string; userId?: string; createdAt: Date; lastAccessed: Date; expiresAt?: Date; metadata?: Record; } /** * Redis-based checkpoint saver for LangGraph sessions * Supports multiple sessions, TTL, compression, and advanced session management */ export declare class RedisSessionManager extends BaseCheckpointSaver { private redis; private config; private keyPrefix; private activeSessions; constructor(config: RedisSessionConfig); /** * Initialize Redis connection */ initialize(): Promise; /** * Create a new session */ createSession(agentId: string, userId?: string, metadata?: Record): Promise; /** * Get session metadata */ getSession(agentId: string, sessionId: string): Promise; /** * List all active sessions */ listSessions(agentId: string, userId?: string): Promise; /** * Delete a session */ deleteSession(agentId: string, sessionId: string): Promise; /** * Clean up expired sessions */ cleanupExpiredSessions(agentId: string): Promise; /** * Get session statistics */ getSessionStats(agentId: string): Promise<{ totalSessions: number; sessionsByUser: Record; averageSessionAge: number; oldestSession?: SessionMetadata; newestSession?: SessionMetadata; }>; getTuple(config: RunnableConfig): Promise; list(config: RunnableConfig): AsyncGenerator; put(config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata): Promise; putWrites(config: RunnableConfig, writes: any[], taskId: string): Promise; private generateSessionId; private getSessionIdFromConfig; private loadActiveSessions; private updateSessionMetadata; private updateSessionLastAccessed; private cleanupOldestSession; /** * Disconnect from Redis */ disconnect(): Promise; } //# sourceMappingURL=redis-session.manager.d.ts.map