"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
# @generated-id: 48d46c10b453

from __future__ import annotations
from .toolproperties import ToolProperties, ToolPropertiesTypedDict
from mistralai.client.types import BaseModel, UnrecognizedStr
from typing import List, Literal, Union
from typing_extensions import TypeAliasType, TypedDict


LogicalExpressionType = Union[
    Literal[
        "and",
        "or",
    ],
    UnrecognizedStr,
]


class LogicalExpressionTypedDict(TypedDict):
    type: LogicalExpressionType
    expressions: List[ExpressionTypedDict]


class LogicalExpression(BaseModel):
    type: LogicalExpressionType

    expressions: List[Expression]


ExpressionTypedDict = TypeAliasType(
    "ExpressionTypedDict",
    Union[ToolPropertiesTypedDict, "LogicalExpressionTypedDict", List[str]],
)


Expression = TypeAliasType(
    "Expression", Union[ToolProperties, "LogicalExpression", List[str]]
)
