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

from __future__ import annotations
from .conversationusageinfo import ConversationUsageInfo, ConversationUsageInfoTypedDict
from datetime import datetime
from mistralai.types import BaseModel
from mistralai.utils import validate_const
import pydantic
from pydantic.functional_validators import AfterValidator
from typing import Literal, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class ResponseDoneEventTypedDict(TypedDict):
    usage: ConversationUsageInfoTypedDict
    type: Literal["conversation.response.done"]
    created_at: NotRequired[datetime]


class ResponseDoneEvent(BaseModel):
    usage: ConversationUsageInfo

    type: Annotated[
        Annotated[
            Optional[Literal["conversation.response.done"]],
            AfterValidator(validate_const("conversation.response.done")),
        ],
        pydantic.Field(alias="type"),
    ] = "conversation.response.done"

    created_at: Optional[datetime] = None
