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

from __future__ import annotations
from nabla_py.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class ArtifactTypedDict(TypedDict):
    filename: str
    r"""Artifact filename"""
    content_type: str
    r"""MIME type"""
    content_base64: str
    r"""Base64-encoded artifact content"""
    size_bytes: int
    r"""Size in bytes"""
    diagram: NotRequired[str]
    r"""Mermaid diagram content (if applicable)"""


class Artifact(BaseModel):
    filename: str
    r"""Artifact filename"""

    content_type: str
    r"""MIME type"""

    content_base64: str
    r"""Base64-encoded artifact content"""

    size_bytes: int
    r"""Size in bytes"""

    diagram: Optional[str] = None
    r"""Mermaid diagram content (if applicable)"""
