pub mod backend;
pub mod client;
pub mod model_info;
mod models;
pub mod pricing;
pub mod prelude;
pub mod batch;
pub mod cache;
pub mod common;
pub mod embedding;
pub mod files;
pub mod generation;
pub mod safety;
pub mod tools;
#[cfg(test)]
mod tests;
#[cfg(test)]
mod response_parsing_tests;
pub use client::Error as ClientError;
pub use client::Gemini;
pub use client::GeminiBuilder;
pub use client::Model;
pub use models::{Blob, Content, FileDataRef, Message, Modality, Part, Role};
pub use generation::{
builder::ContentBuilder, model::BlockReason, model::Candidate, model::CitationMetadata,
model::CitationSource, model::FinishReason, model::GenerateContentRequest,
model::GenerationConfig, model::GenerationResponse, model::GroundingChunk,
model::GroundingMetadata, model::GroundingSegment, model::GroundingSupport,
model::MultiSpeakerVoiceConfig, model::PrebuiltVoiceConfig, model::PromptFeedback,
model::PromptTokenDetails, model::SpeakerVoiceConfig, model::SpeechConfig,
model::ThinkingConfig, model::ThinkingLevel, model::UsageMetadata, model::VoiceConfig,
model::WebGroundingChunk,
};
pub use embedding::{
builder::EmbedBuilder, model::BatchContentEmbeddingResponse, model::BatchEmbedContentsRequest,
model::ContentEmbedding, model::ContentEmbeddingResponse, model::EmbedContentRequest,
model::TaskType,
};
pub use safety::model::{
HarmBlockThreshold, HarmCategory, HarmProbability, SafetyRating, SafetySetting,
};
pub use tools::model::{
FunctionCall, FunctionCallingConfig, FunctionCallingMode, FunctionDeclaration,
FunctionResponse, FunctionResponsePart, Tool, ToolConfig,
};
pub use batch::{
Error as BatchError, builder::BatchBuilder, handle::BatchGenerationResponseItem,
handle::BatchHandle, handle::BatchHandle as Batch, handle::BatchStatus,
handle::Error as BatchHandleError, model::BatchConfig, model::BatchGenerateContentRequest,
model::BatchOperation, model::BatchStats, model::IndividualRequestError,
model::RequestMetadata,
};
pub use files::{
Error as FilesError, builder::FileBuilder, handle::FileHandle, model::File, model::FileState,
};
pub use cache::{
builder::CacheBuilder, handle::CachedContentHandle, model::CacheExpirationRequest,
model::CacheExpirationResponse, model::CachedContent, model::CreateCachedContentRequest,
};
pub use pricing::{CostBreakdown, GeminiPricing, estimate_cost, estimate_cost_long};