/** * Checkpointer Implementations * * Built-in checkpointers for state persistence. */ import type { AgentState, Checkpointer, SessionMetadata, SessionInfo, ListSessionsOptions, StateSerializer } from './types.js'; /** * In-memory checkpointer for development and testing. * State is lost when the process exits. */ export declare class MemoryCheckpointer implements Checkpointer { private readonly sessions; /** * Save state to memory * * Pre-validates state before saving to prevent corrupted checkpoints. * This catches issues like invalid data types that would fail on reload. */ save(sessionId: string, state: AgentState, metadataOverrides?: Partial): Promise; /** * Load state from memory */ load(sessionId: string): Promise; /** * List all sessions */ list(options?: ListSessionsOptions): Promise; /** * Delete a session */ delete(sessionId: string): Promise; /** * Check if session exists */ exists(sessionId: string): Promise; /** * Get session metadata */ getMetadata(sessionId: string): Promise; /** * Clear all sessions (useful for testing) */ clear(): void; /** * Get current session count */ get size(): number; } /** * Options for FileCheckpointer */ export interface FileCheckpointerOptions { /** * Custom serializer (defaults to JsonSerializer) */ serializer?: StateSerializer; /** * File extension (defaults to '.json') */ extension?: string; } /** * File-based checkpointer for simple persistence. * Stores each session as a separate JSON file. */ export declare class FileCheckpointer implements Checkpointer { private readonly baseDir; private readonly serializer; private readonly extension; constructor(baseDir: string, options?: FileCheckpointerOptions); /** * Get file path for a session */ private getStatePath; /** * Get metadata file path for a session */ private getMetadataPath; /** * Ensure base directory exists */ private ensureDir; /** * Save state to file * * Pre-validates state before saving to prevent corrupted checkpoints. * This catches issues like invalid data types that would fail on reload. */ save(sessionId: string, state: AgentState, metadataOverrides?: Partial): Promise; /** * Load state from file */ load(sessionId: string): Promise; /** * List all sessions */ list(options?: ListSessionsOptions): Promise; /** * Delete a session */ delete(sessionId: string): Promise; /** * Check if session exists */ exists(sessionId: string): Promise; /** * Get session metadata */ getMetadata(sessionId: string): Promise; }