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

from __future__ import annotations
from .contentpartaudio import ContentPartAudio, ContentPartAudioTypedDict
from .contentpartimage import ContentPartImage, ContentPartImageTypedDict
from .contentpartvideo import ContentPartVideo, ContentPartVideoTypedDict
from openrouter.utils import get_discriminator
from pydantic import Discriminator, Tag
from typing import Union
from typing_extensions import Annotated, TypeAliasType


InputReferenceTypedDict = TypeAliasType(
    "InputReferenceTypedDict",
    Union[
        ContentPartImageTypedDict, ContentPartAudioTypedDict, ContentPartVideoTypedDict
    ],
)
r"""A reference asset used to guide video generation. Image references are supported by all providers; audio and video references are only honored by providers that support them (currently BytePlus Seedance 2.0)."""


InputReference = Annotated[
    Union[
        Annotated[ContentPartAudio, Tag("audio_url")],
        Annotated[ContentPartImage, Tag("image_url")],
        Annotated[ContentPartVideo, Tag("video_url")],
    ],
    Discriminator(lambda m: get_discriminator(m, "type", "type")),
]
r"""A reference asset used to guide video generation. Image references are supported by all providers; audio and video references are only honored by providers that support them (currently BytePlus Seedance 2.0)."""
