//! Configuration parsing for Aphoria.
//!
//! This module coordinates configuration loading, type definitions, defaults,
//! and validation. All public types and functions are re-exported from this
//! module to maintain API compatibility.

#[cfg(test)]
mod tests;

mod defaults;
mod loader;
mod types;
mod validation;

// Re-export all public types and constants.
// These are used by other modules but not within this module,
// so we allow unused imports for the re-export pattern.
#[allow(unused_imports)]
pub use defaults::llm_cache_dir;
#[allow(unused_imports)]
pub use types::{
    AliasConfig, AphoriaConfig, AutonomousConfig, CommunityConfig, CorpusConfig,
    CrossProjectConfig, DepVersionConfig, EntropyConfig, EpistemeConfig, EvalConfig,
    ExtractorConfig, GovernanceConfig, HostedConfig, LearningConfig, LlmConfig, OfflineFallback,
    PredicateAliasConfig, ProjectConfig, PromotionConfig, ScanConfig, ShadowConfig, SyncMode,
    ThresholdConfig, TimeoutExtractorConfig, DEFAULT_LLM_MODEL,
};
