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

from __future__ import annotations
from .openresponsesnonstreamingresponse import (
    OpenResponsesNonStreamingResponse,
    OpenResponsesNonStreamingResponseTypedDict,
)
from .openresponsesstreamevent import (
    OpenResponsesStreamEvent,
    OpenResponsesStreamEventTypedDict,
)
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: OpenResponsesStreamEventTypedDict
    r"""Union of all possible event types emitted during response streaming"""


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

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


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


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