"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from openrouter.types import BaseModel
from typing import Literal, Optional
from typing_extensions import NotRequired, TypedDict


ChatContentFileType = Literal["file",]


class FileTypedDict(TypedDict):
    file_data: NotRequired[str]
    r"""File content as base64 data URL or URL"""
    file_id: NotRequired[str]
    r"""File ID for previously uploaded files"""
    filename: NotRequired[str]
    r"""Original filename"""


class File(BaseModel):
    file_data: Optional[str] = None
    r"""File content as base64 data URL or URL"""

    file_id: Optional[str] = None
    r"""File ID for previously uploaded files"""

    filename: Optional[str] = None
    r"""Original filename"""


class ChatContentFileTypedDict(TypedDict):
    r"""File content part for document processing"""

    type: ChatContentFileType
    file: FileTypedDict


class ChatContentFile(BaseModel):
    r"""File content part for document processing"""

    type: ChatContentFileType

    file: File
