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

from __future__ import annotations
from openrouter.components import (
    openresponsesnonstreamingresponse as components_openresponsesnonstreamingresponse,
    openresponsesstreamevent as components_openresponsesstreamevent,
)
from openrouter.types import BaseModel
from openrouter.utils import eventstreaming
from typing import Union
from typing_extensions import TypeAliasType, TypedDict


class CreateResponsesResponseBodyTypedDict(TypedDict):
    r"""Successful response"""

    data: components_openresponsesstreamevent.OpenResponsesStreamEventTypedDict
    r"""Union of all possible event types emitted during response streaming"""


class CreateResponsesResponseBody(BaseModel):
    r"""Successful response"""

    data: components_openresponsesstreamevent.OpenResponsesStreamEvent
    r"""Union of all possible event types emitted during response streaming"""


CreateResponsesResponseTypedDict = TypeAliasType(
    "CreateResponsesResponseTypedDict",
    Union[
        components_openresponsesnonstreamingresponse.OpenResponsesNonStreamingResponseTypedDict,
        Union[
            eventstreaming.EventStream[
                components_openresponsesstreamevent.OpenResponsesStreamEventTypedDict
            ],
            eventstreaming.EventStreamAsync[
                components_openresponsesstreamevent.OpenResponsesStreamEventTypedDict
            ],
        ],
    ],
)


CreateResponsesResponse = TypeAliasType(
    "CreateResponsesResponse",
    Union[
        components_openresponsesnonstreamingresponse.OpenResponsesNonStreamingResponse,
        Union[
            eventstreaming.EventStream[
                components_openresponsesstreamevent.OpenResponsesStreamEvent
            ],
            eventstreaming.EventStreamAsync[
                components_openresponsesstreamevent.OpenResponsesStreamEvent
            ],
        ],
    ],
)
