//! Known-compatible versions of gRPC, OpenAPI, OTel, and reqwest crates for QCS client development.
//!
//! This crate re-exports pinned, compatible versions of the core dependency crates used across
//! QCS client libraries. Depending on this crate ensures version alignment with other QCS crates.
//!
//! ## Re-exported crates
//!
//! ### gRPC / Protobuf (feature: `grpc`)
//! - [`pbjson`]: JSON serialization for protobuf messages
//! - [`pbjson_types`]: Well-known protobuf types with JSON support
//! - [`prost`]: Protobuf encoding/decoding
//! - [`prost_types`]: Well-known protobuf types
//! - [`tonic`]: gRPC client framework
//! - [`tonic_prost`]: Prost integration for Tonic
//!
//! ### OpenAPI / HTTP client (feature: `http`)
//! - [`http`]: HTTP types
//! - [`reqwest`]: HTTP client
//! - [`reqwest_middleware`]: Middleware for reqwest
//! - [`reqwest_tracing`]: OpenTelemetry tracing middleware for reqwest
//!
//! ### OpenTelemetry / Tracing
//! - [`opentelemetry`]: OpenTelemetry API
//! - [`opentelemetry_http`]: OpenTelemetry HTTP propagators (also requires feature `http`)
//! - [`opentelemetry_otlp`]: OTLP exporter
//! - [`opentelemetry_sdk`]: OpenTelemetry SDK
//! - [`tracing`]: Structured logging and diagnostics
//! - [`tracing_opentelemetry`]: OpenTelemetry bridge for tracing
//! - [`tracing_subscriber`]: Tracing subscriber implementations
//!
//! ### Service utilities (feature: `tower`)
//! - [`tower`]: Service abstraction layer

#[cfg(feature = "grpc")]
pub use pbjson;
#[cfg(feature = "grpc")]
pub use pbjson_types;
#[cfg(feature = "grpc")]
pub use prost;
#[cfg(feature = "grpc")]
pub use prost_types;
#[cfg(feature = "grpc")]
pub use tonic;
#[cfg(feature = "grpc")]
pub use tonic_prost;

#[cfg(feature = "http")]
pub use http;
#[cfg(feature = "http_otel_0_31")]
pub use opentelemetry_http;
#[cfg(feature = "http")]
pub use reqwest;
#[cfg(feature = "http")]
pub use reqwest_middleware;
#[cfg(feature = "http")]
pub use reqwest_tracing;

#[cfg(feature = "otel_0_31")]
pub use opentelemetry;
#[cfg(feature = "otel_0_31")]
pub use opentelemetry_otlp;
#[cfg(feature = "otel_0_31")]
pub use opentelemetry_sdk;
pub use tower;
pub use tracing;
#[cfg(feature = "otel_0_31")]
pub use tracing_opentelemetry;
pub use tracing_subscriber;
