//! xAI API client and Rig integration
//!
//! # Example
//! ```no_run
//! use rig_core::{client::CompletionClient, providers::xai};
//!
//! # fn run() -> Result<(), Box<dyn std::error::Error>> {
//! let client = xai::Client::new("YOUR_API_KEY")?;
//!
//! let grok = client.completion_model(xai::GROK_3);
//! # Ok(())
//! # }
//! ```

mod api;
#[cfg(feature = "audio")]
pub mod audio_generation;
pub mod client;
pub mod completion;
#[cfg(feature = "image")]
pub mod image_generation;
mod streaming;

#[cfg(feature = "audio")]
pub use audio_generation::{AudioGenerationModel, TTS_1};
pub use client::Client;
pub use completion::{
    CompletionModel, CompletionResponse, GROK_2_1212, GROK_2_IMAGE_1212, GROK_2_VISION_1212,
    GROK_3, GROK_3_FAST, GROK_3_MINI, GROK_3_MINI_FAST, GROK_4,
};
#[cfg(feature = "image")]
pub use image_generation::{GROK_IMAGINE_IMAGE, GROK_IMAGINE_IMAGE_PRO, ImageGenerationModel};
