use std::sync::Arc;
use arc_swap::ArcSwap;
use crate::event::EventBus;
use crate::protocol::schema_manager::{MemorySchemaStore, SchemaManager};
use crate::protocol::session::MemorySessionStore;
use super::RewriteConfig;
use super::forwarding::UpstreamClient;
use super::health::SharedProxyHealth;
pub struct ProxyState {
pub name: String,
pub mcp_upstream: String,
pub upstream: UpstreamClient,
pub max_request_body: usize,
pub max_response_body: usize,
pub max_concurrent_upstream: usize,
pub rewrite_config: Arc<ArcSwap<RewriteConfig>>,
pub sessions: MemorySessionStore,
pub schema_manager: Arc<SchemaManager<MemorySchemaStore>>,
pub health: SharedProxyHealth,
pub event_bus: EventBus,
}