#![warn(missing_docs)]
#![warn(rustdoc::missing_crate_level_docs)]
pub mod autoscaler;
pub mod builder;
pub mod controlplane;
pub mod error;
pub mod federation;
pub mod inference;
pub mod job;
pub mod metrics;
pub mod moe;
pub mod networking;
pub mod nomad;
pub mod resilience;
pub mod runtime;
pub mod scheduler;
pub mod sdk;
pub mod storage;
pub mod types;
pub use autoscaler::{Autoscaler, AutoscalerConfig, ScalingDecision};
pub use builder::ForgeBuilder;
pub use error::{ForgeError, Result};
pub use job::{Driver, Job, Task, TaskGroup};
pub use metrics::{ForgeMetrics, MetricsExporter, MetricsHook};
pub use moe::{DefaultMoERouter, LoadAwareMoERouter, MoERouter, RoundRobinMoERouter, RouteResult, GpuAwareMoERouter, VersionAwareMoERouter};
pub use networking::{HttpServer, HttpServerConfig};
#[cfg(feature = "quic")]
pub use networking::QuicTransport;
pub use nomad::NomadClient;
pub use runtime::Forge;
pub use storage::{FileStore, MemoryStore, StateStore};
pub use types::{Expert, GpuResources, NodeId, Region, Shard, ShardId};
pub mod prelude {
pub use crate::autoscaler::{Autoscaler, AutoscalerConfig};
pub use crate::builder::ForgeBuilder;
pub use crate::error::Result;
pub use crate::job::{Driver, Job, Task};
pub use crate::moe::MoERouter;
pub use crate::runtime::Forge;
pub use crate::sdk::{allocate_port, graceful_shutdown, ready, ForgeClient};
pub use crate::types::{Expert, Shard};
}