use lellm_core::Message;
use super::budget::ContextBudget;
#[derive(Debug, Clone)]
pub struct CompactionResult {
pub messages: Vec<Message>,
pub before_tokens: usize,
pub after_tokens: usize,
pub removed_messages: usize,
}
pub trait ContextCompactor: Send + Sync {
fn compact(&self, messages: &[Message], budget: &ContextBudget) -> CompactionResult;
}