mod interface;
pub use interface::{
    BinaryCodec, ExtismChatChunk, ExtismChatChunkParseRequest, ExtismChatParseRequest,
    ExtismChatRequest, ExtismChatResponse, ExtismCompleteParseRequest, ExtismCompleteRequest,
    ExtismEmbedParseRequest, ExtismEmbedRequest, ExtismListModelsParseRequest,
    ExtismListModelsRequest, ExtismLogRecord, ExtismSttRequest, ExtismSttResponse,
    ExtismTtsRequest, ExtismTtsResponse, ExtismVoiceConfig, PluginError, StreamOpenResult,
};

#[cfg(feature = "extism_host")]
pub mod host;

// Export HTTP wire types when either host (http-client) or plugin (extism_plugin) features are enabled
#[cfg(any(feature = "http-client", feature = "extism_plugin"))]
mod http_wire;
#[cfg(any(feature = "http-client", feature = "extism_plugin"))]
pub use http_wire::{SerializableHttpRequest, SerializableHttpResponse};
