"""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 PublicPricingTypedDict(TypedDict):
    r"""Pricing information for the model"""

    prompt: str
    r"""A value in string format that is a large number"""
    completion: str
    r"""A value in string format that is a large number"""
    request: NotRequired[str]
    r"""A value in string format that is a large number"""
    image: NotRequired[str]
    r"""A value in string format that is a large number"""
    image_token: NotRequired[str]
    r"""A value in string format that is a large number"""
    image_output: NotRequired[str]
    r"""A value in string format that is a large number"""
    audio: NotRequired[str]
    r"""A value in string format that is a large number"""
    input_audio_cache: NotRequired[str]
    r"""A value in string format that is a large number"""
    web_search: NotRequired[str]
    r"""A value in string format that is a large number"""
    internal_reasoning: NotRequired[str]
    r"""A value in string format that is a large number"""
    input_cache_read: NotRequired[str]
    r"""A value in string format that is a large number"""
    input_cache_write: NotRequired[str]
    r"""A value in string format that is a large number"""
    discount: NotRequired[float]


class PublicPricing(BaseModel):
    r"""Pricing information for the model"""

    prompt: str
    r"""A value in string format that is a large number"""

    completion: str
    r"""A value in string format that is a large number"""

    request: Optional[str] = None
    r"""A value in string format that is a large number"""

    image: Optional[str] = None
    r"""A value in string format that is a large number"""

    image_token: Optional[str] = None
    r"""A value in string format that is a large number"""

    image_output: Optional[str] = None
    r"""A value in string format that is a large number"""

    audio: Optional[str] = None
    r"""A value in string format that is a large number"""

    input_audio_cache: Optional[str] = None
    r"""A value in string format that is a large number"""

    web_search: Optional[str] = None
    r"""A value in string format that is a large number"""

    internal_reasoning: Optional[str] = None
    r"""A value in string format that is a large number"""

    input_cache_read: Optional[str] = None
    r"""A value in string format that is a large number"""

    input_cache_write: Optional[str] = None
    r"""A value in string format that is a large number"""

    discount: Optional[float] = None
