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

from __future__ import annotations
from .chatcontenttext import ChatContentText, ChatContentTextTypedDict
from openrouter.types import BaseModel
from typing import List, Literal, Optional, Union
from typing_extensions import NotRequired, TypeAliasType, TypedDict


ChatSystemMessageContentTypedDict = TypeAliasType(
    "ChatSystemMessageContentTypedDict", Union[str, List[ChatContentTextTypedDict]]
)
r"""System message content"""


ChatSystemMessageContent = TypeAliasType(
    "ChatSystemMessageContent", Union[str, List[ChatContentText]]
)
r"""System message content"""


ChatSystemMessageRole = Literal["system",]


class ChatSystemMessageTypedDict(TypedDict):
    r"""System message for setting behavior"""

    content: ChatSystemMessageContentTypedDict
    r"""System message content"""
    role: ChatSystemMessageRole
    name: NotRequired[str]
    r"""Optional name for the system message"""


class ChatSystemMessage(BaseModel):
    r"""System message for setting behavior"""

    content: ChatSystemMessageContent
    r"""System message content"""

    role: ChatSystemMessageRole

    name: Optional[str] = None
    r"""Optional name for the system message"""
