use crate::JsonSchema; use crate::TS; use serde::Deserialize; use serde::Serialize; #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)] #[serde(rename_all = "camelCase")] #[ts(export_to = "v2/")] pub struct ThreadUsage { pub thread_id: String, pub estimated_usage_credits_micros: i64, pub estimated_usage_usd_micros: Option, pub groups: Vec, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)] #[serde(rename_all = "camelCase")] #[ts(export_to = "v2/")] pub struct ThreadUsageBreakdownGroup { pub model: Option, pub reasoning_effort: Option, pub speed: Option, pub estimated_usage_credits_micros: i64, pub net_new_input_tokens: Option, pub cached_input_tokens: Option, pub input_tokens: Option, pub output_tokens: Option, pub total_tokens: Option, }