pub mod body;
mod decode;
mod error;
mod message;
mod request;
mod response;
mod tool;
mod tools;
#[cfg(feature = "client")]
mod client;
#[cfg(feature = "client")]
pub mod http;
#[cfg(feature = "client")]
pub mod layer;
pub mod openai;
#[cfg(feature = "client")]
mod stream;
#[cfg(feature = "client")]
pub use client::{Client, ClientBuilder, Model};
#[cfg(feature = "client")]
pub use stream::{EventStream, RawStream};
pub use decode::{Limits, Mode, Think};
pub use error::{Error, ErrorKind, Result};
pub use message::{Image, Message, Part, Role, Source, TextFile, ToolResult};
pub use request::{Effort, Request, ResponseFormat, Schema};
pub use response::{
Completion, Event, FinishReason, Reasoning, ReasoningSource, Timing, ToolCallDelta, Usage,
};
pub use tool::{Tool, ToolCall, ToolChoice};
pub use tools::{ToolOutput, Toolbox, Tools};
pub mod prelude {
#[cfg(feature = "client")]
pub use crate::{Client, EventStream};
pub use crate::{
Completion, Effort, Error, ErrorKind, Event, FinishReason, Image, Message, Part, Reasoning,
Request, ResponseFormat, Role, Schema, TextFile, Tool, ToolCall, ToolChoice, ToolResult,
Toolbox, Tools, Usage,
};
}