"""Type definitions for LenzyAI SDK."""

from typing import List, Optional, TypedDict
from typing_extensions import Literal


class MessageRole:
    """Message role constants."""
    USER = "USER"
    ASSISTANT = "ASSISTANT"


MessageRoleType = Literal["USER", "ASSISTANT"]


class Message(TypedDict, total=False):
    """
    A single message in a conversation.

    Attributes:
        role: The role of the message sender ("USER" or "ASSISTANT")
        content: The content of the message
        external_id: Optional unique identifier for the message
        sent_at: Optional ISO 8601 timestamp when the message was sent
    """
    role: MessageRoleType
    content: str
    external_id: str
    sent_at: str
