use crate::models::churn::CodeChurnAnalysis;
use crate::models::dag::DependencyGraph;
use crate::services::complexity::{ComplexityReport, FileComplexityMetrics};
use crate::services::satd_detector::SATDAnalysisResult;
use dashmap::DashMap;
use rayon::prelude::*;
use std::path::PathBuf;
use std::sync::LazyLock;
use tracing::{info, warn};
use super::super::DagType;
pub(super) static RUST_UNIFIED_CACHE: LazyLock<DashMap<PathBuf, FileComplexityMetrics>> =
LazyLock::new(|| DashMap::with_capacity(1024));
pub(super) static TYPESCRIPT_UNIFIED_CACHE: LazyLock<DashMap<PathBuf, FileComplexityMetrics>> =
LazyLock::new(|| DashMap::with_capacity(256));
pub(super) static PYTHON_UNIFIED_CACHE: LazyLock<DashMap<PathBuf, FileComplexityMetrics>> =
LazyLock::new(|| DashMap::with_capacity(256));
pub(super) static GO_UNIFIED_CACHE: LazyLock<DashMap<PathBuf, FileComplexityMetrics>> =
LazyLock::new(|| DashMap::with_capacity(256));
pub(super) static WASM_UNIFIED_CACHE: LazyLock<DashMap<PathBuf, FileComplexityMetrics>> =
LazyLock::new(|| DashMap::with_capacity(64));
pub(super) static BASH_UNIFIED_CACHE: LazyLock<DashMap<PathBuf, FileComplexityMetrics>> =
LazyLock::new(|| DashMap::with_capacity(64));
include!("metrics_complexity.rs");
include!("metrics_analyses.rs");
include!("metrics_dead_code.rs");
include!("metrics_dead_code_helpers.rs");