use crate::core::Agent;
use crate::error::StorageError;
use async_trait::async_trait;
#[async_trait]
pub trait CheckpointStorage: Send + Sync {
async fn save_checkpoint(&self, session_id: &str, agent: &Agent) -> Result<(), StorageError>;
async fn get_checkpoint(&self, session_id: &str) -> Result<Option<Agent>, StorageError>;
async fn delete_checkpoint(&self, session_id: &str) -> Result<(), StorageError>;
}