1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![cfg_attr(not(test), forbid(unsafe_code))]
3#![cfg_attr(test, deny(unsafe_code))]
4#![warn(unreachable_pub)]
5#![warn(missing_docs)]
6#![doc = include_str!("../README.md")]
9
10#[cfg(feature = "batches")]
11pub mod batches;
12pub mod buffer;
13#[cfg(feature = "caches")]
14pub mod caches;
15#[cfg(feature = "chats")]
16pub mod chats;
17pub mod client;
18#[cfg(feature = "embed")]
19pub mod embed;
20#[cfg(feature = "files")]
21pub mod files;
22#[cfg(feature = "generate")]
23pub mod generate;
24#[cfg(feature = "models")]
25pub mod models;
26pub mod primitives;
27pub mod protocol;
28pub mod session;
29pub mod telemetry;
30#[cfg(feature = "tokens")]
31pub mod tokens;
32pub mod transport;
33#[cfg(feature = "tunings")]
34pub mod tunings;
35pub mod turn;
36#[cfg(feature = "vad")]
37pub mod vad;
38
39pub use client::Client;
41pub use transport::{ConnectBuilder, connect};
42
43pub mod prelude {
45 pub use crate::protocol::types::{
50 AccessToken, ActivityHandling, ApiEndpoint, AudioFormat, AutomaticActivityDetection, Blob,
51 CodeExecutionResult, Content, ContextWindowCompressionConfig, EndpointEnvError,
52 ExecutableCode, FunctionCall, FunctionCallingBehavior, FunctionCallingConfig,
53 FunctionCallingMode, FunctionDeclaration, FunctionResponse, FunctionResponseScheduling,
54 GenerationConfig, GoogleSearch, GoogleSearchRetrieval, GroundingMetadata,
55 InputAudioTranscription, LIVE_INPUT_SAMPLE_RATE, MediaResolution, Modality,
56 ModalityTokenCount, ModelId, OutputAudioTranscription, Part, PrebuiltVoiceConfig,
57 ProactivityConfig, RealtimeInputConfig, Role, Sensitivity, SessionConfig,
58 SessionResumptionConfig, SlidingWindow, SpeechConfig, ThinkingConfig, Tool,
59 ToolCodeExecution, ToolConfig, ToolProvider, TurnCoverage, UrlContext, UrlContextMetadata,
60 UsageMetadata, VertexConfig, Voice, VoiceConfig,
61 };
62 pub use crate::protocol::messages::ServerMessage;
64
65 pub use crate::transport::auth::{
67 AuthProvider, GoogleAIAuth, GoogleAITokenAuth, ServiceEndpoint, VertexAIAuth,
68 };
69 pub use crate::transport::ws::{
72 MockTransport, Transport, TungsteniteError, TungsteniteTransport,
73 };
74 pub use crate::transport::{
75 Codec, CodecError, ConnectBuilder, JsonCodec, TransportConfig, connect,
76 };
77
78 pub use crate::session::{
80 AuthError, ResumeInfo, SessionCommand, SessionError, SessionEvent, SessionHandle,
81 SessionPhase, SessionReader, SessionWriter, SetupError, WebSocketError, recv_event,
82 };
83
84 pub use crate::buffer::{
86 AudioJitterBuffer, BufferState, JitterConfig, SpscConsumer, SpscProducer, SpscRing,
87 };
88 pub use crate::buffer::{bytes_to_i16, i16_to_bytes, into_shared};
89
90 #[cfg(feature = "vad")]
92 pub use crate::vad::{VadConfig, VadEvent, VoiceActivityDetector};
93
94 pub use crate::turn::{
96 BargeInAction, BargeInConfig, BargeInDetector, TurnDetectionConfig, TurnDetectionEvent,
97 TurnDetector,
98 };
99
100 pub use crate::protocol::types::{
105 CitationMetadata, CitationSource, FileData, FinishReason, HarmBlockThreshold, HarmCategory,
106 HarmProbability, SafetyRating, SafetySetting,
107 };
108
109 #[cfg(feature = "http")]
112 pub use crate::client::http::{HttpClient, HttpConfig, HttpError};
113
114 #[cfg(feature = "generate")]
116 pub use crate::generate::{GenerateContentConfig, GenerateContentResponse, GenerateError};
117
118 #[cfg(feature = "tokens")]
120 pub use crate::tokens::{CountTokensResponse, TokensError};
121
122 #[cfg(feature = "models")]
124 pub use crate::models::{ListModelsResponse, ModelsError};
125
126 #[cfg(feature = "embed")]
128 pub use crate::embed::{
129 ContentEmbedding, EmbedContentConfig, EmbedContentResponse, EmbedError,
130 };
131
132 #[cfg(feature = "caches")]
137 pub use crate::caches::{
138 CachedContent, CachedContentUsageMetadata, CachesError, CreateCachedContentConfig,
139 ListCachedContentsResponse, UpdateCachedContentRequest,
140 };
141
142 #[cfg(feature = "tunings")]
144 pub use crate::tunings::{
145 CreateTuningJobConfig, ListTuningJobsResponse, SupervisedTuningSpec, TuningHyperParameters,
146 TuningJob, TuningJobState, TuningsError,
147 };
148
149 #[cfg(feature = "batches")]
151 pub use crate::batches::{
152 BatchJob, BatchJobDestination, BatchJobSource, BatchJobState, BatchesError,
153 CreateBatchJobConfig, ListBatchJobsResponse,
154 };
155
156 #[cfg(feature = "chats")]
158 pub use crate::chats::ChatSession;
159}