use super::types::AuthResult;
use mockforge_core::config::AuthConfig;
use mockforge_openapi::OpenApiSpec;
use std::collections::HashMap;
use std::sync::Arc;
use tokio::sync::RwLock;
#[derive(Debug, Clone)]
pub struct CachedIntrospection {
pub result: AuthResult,
pub expires_at: i64,
}
#[derive(Clone)]
pub struct AuthState {
pub config: AuthConfig,
pub spec: Option<Arc<OpenApiSpec>>,
pub oauth2_client: Option<oauth2::basic::BasicClient>,
pub introspection_cache: Arc<RwLock<HashMap<String, CachedIntrospection>>>,
}