pub mod backend;
pub mod error;
pub mod model;
pub mod schema;
pub mod server;

#[cfg(all(feature = "cuda", feature = "cuda-cutile"))]
pub use backend::dlrm::CutileDlrmBackend;
#[cfg(feature = "torch")]
pub use backend::torch_dlrm::TorchDlrmBackend;
pub use backend::{
    BackendMetadata, InferenceBackend,
    burn::BurnBackend,
    dlrm::{BurnDlrmBackend, BurnDlrmModel, DlrmConfig},
    mlp::{BurnMlpBackend, BurnMlpModel, MlpConfig},
};
pub use error::{NarsilError, Result};
pub use model::{ModelArtifact, ModelFormat, UserServingAdapter};
pub use schema::{DataType, InferenceRequest, InferenceResponse, Tensor};
#[cfg(feature = "quic")]
pub use server::serve_quic;
pub use server::{
    BatchingConfig, GrpcInferenceService, ObservabilityState, SharedInferenceService,
    WorkerPoolConfig, http_router, http_router_with_observability, observability_router, serve,
    serve_with_batching, serve_with_worker_pool,
};
