pub mod config;
pub mod error;
pub mod fluent;
pub mod kubebuilder;
pub mod kubernetes_manager;
pub mod kubessh;
pub mod kubedevel;
pub mod registry;
pub mod traefik;

// Re-export main types for convenience
pub use config::KubernetesConfig;
pub use error::{KubernetesError, KubernetesResult};
pub use fluent::{
    ConfigMapBuilder, DeploymentBuilder, HealthCheckBuilder, KubernetesContext, NamespaceBuilder, PodBuilder,
    SecretBuilder, ServiceBuilder,
};
pub use kubebuilder::{BuildMachine, BuildMachineHandle, KubeBuilderError, KubeBuilderResult};
pub use kubernetes_manager::{KubernetesManager, ServiceConnectionInfo};
pub use kubessh::KubeSsh;
pub use kubedevel::DevelopmentMachine;
pub use registry::{
    RegistryConfig, RegistryConfigBuilder, RegistryDeployer, RegistryDeployerBuilder,
    RegistryDeploymentResult,
};

pub use traefik::{
    HttpRoute, HttpRouteBuilder, Middleware, MiddlewareBuilder, MiddlewareSpec, ServiceTarget,
    TcpRoute, TcpRouteBuilder, TlsConfig, TlsOption, TlsOptionBuilder, UdpRoute, UdpRouteBuilder,
};

// Re-export commonly used Kubernetes types
pub use k8s_openapi::api::apps::v1::{Deployment, ReplicaSet};
pub use k8s_openapi::api::core::v1::{Namespace, Pod, Service};
