"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations from openrouter.types import BaseModel from typing import Optional from typing_extensions import NotRequired, TypedDict class CompletionTokensDetailsTypedDict(TypedDict): r"""Detailed completion token usage""" reasoning_tokens: NotRequired[float] r"""Tokens used for reasoning""" audio_tokens: NotRequired[float] r"""Tokens used for audio output""" accepted_prediction_tokens: NotRequired[float] r"""Accepted prediction tokens""" rejected_prediction_tokens: NotRequired[float] r"""Rejected prediction tokens""" class CompletionTokensDetails(BaseModel): r"""Detailed completion token usage""" reasoning_tokens: Optional[float] = None r"""Tokens used for reasoning""" audio_tokens: Optional[float] = None r"""Tokens used for audio output""" accepted_prediction_tokens: Optional[float] = None r"""Accepted prediction tokens""" rejected_prediction_tokens: Optional[float] = None r"""Rejected prediction tokens""" class PromptTokensDetailsTypedDict(TypedDict): r"""Detailed prompt token usage""" cached_tokens: NotRequired[float] r"""Cached prompt tokens""" audio_tokens: NotRequired[float] r"""Audio input tokens""" class PromptTokensDetails(BaseModel): r"""Detailed prompt token usage""" cached_tokens: Optional[float] = None r"""Cached prompt tokens""" audio_tokens: Optional[float] = None r"""Audio input tokens""" class CompletionUsageTypedDict(TypedDict): r"""Token usage statistics""" completion_tokens: float r"""Number of tokens in the completion""" prompt_tokens: float r"""Number of tokens in the prompt""" total_tokens: float r"""Total number of tokens""" completion_tokens_details: NotRequired[CompletionTokensDetailsTypedDict] r"""Detailed completion token usage""" prompt_tokens_details: NotRequired[PromptTokensDetailsTypedDict] r"""Detailed prompt token usage""" class CompletionUsage(BaseModel): r"""Token usage statistics""" completion_tokens: float r"""Number of tokens in the completion""" prompt_tokens: float r"""Number of tokens in the prompt""" total_tokens: float r"""Total number of tokens""" completion_tokens_details: Optional[CompletionTokensDetails] = None r"""Detailed completion token usage""" prompt_tokens_details: Optional[PromptTokensDetails] = None r"""Detailed prompt token usage"""