//! Configuration type definitions for Aphoria.
//!
//! This module contains all configuration types organized into submodules:
//! - `core`: Main AphoriaConfig and basic types
//! - `eval`: LLM evaluation configuration
//! - `extractors`: Extractor configuration
//! - `scan`: Scan and corpus configuration
//! - `hosted`: Hosted mode and sync configuration
//! - `community`: Community sharing configuration
//! - `llm`: LLM extraction configuration
//! - `learning`: Pattern learning configuration
//! - `predicates`: Predicate alias configuration
//! - `autonomous`: Autonomous promotion configuration
//! - `cross_project`: Cross-project learning configuration

mod autonomous;
mod community;
mod core;
mod cross_project;
mod eval;
mod extractors;
mod governance;
mod hosted;
mod learning;
mod llm;
mod predicates;
mod scan;
mod shadow;
mod trust_pack;

// Re-export all public types for API compatibility.
#[allow(unused_imports)]
pub use autonomous::AutonomousConfig;
#[allow(unused_imports)]
pub use community::CommunityConfig;
#[allow(unused_imports)]
pub use core::{AphoriaConfig, EpistemeConfig, ProjectConfig, ThresholdConfig, DEFAULT_LLM_MODEL};
#[allow(unused_imports)]
pub use cross_project::CrossProjectConfig;
#[allow(unused_imports)]
pub use eval::EvalConfig;
#[allow(unused_imports)]
pub use extractors::{DepVersionConfig, EntropyConfig, ExtractorConfig, TimeoutExtractorConfig};
#[allow(unused_imports)]
pub use governance::GovernanceConfig;
#[allow(unused_imports)]
pub use hosted::{HostedConfig, OfflineFallback, SyncMode};
#[allow(unused_imports)]
pub use learning::{LearningConfig, PromotionConfig};
#[allow(unused_imports)]
pub use llm::LlmConfig;
#[allow(unused_imports)]
pub use predicates::PredicateAliasConfig;
#[allow(unused_imports)]
pub use scan::{AliasConfig, CorpusConfig, ScanConfig};
#[allow(unused_imports)]
pub use shadow::ShadowConfig;
#[allow(unused_imports)]
pub use trust_pack::TrustPackConfig;

// Re-export scope config from scope module
#[allow(unused_imports)]
pub use crate::scope::ScopeConfig;
