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

from __future__ import annotations
from syllable_sdk.types import BaseModel
from typing_extensions import TypedDict


class ToolParametersTypedDict(TypedDict):
    r"""Parameters for Insight Tool Definition"""


class ToolParameters(BaseModel):
    r"""Parameters for Insight Tool Definition"""


class ToolResultSetTypedDict(TypedDict):
    r"""Result key/types for Insight Tool Definition"""


class ToolResultSet(BaseModel):
    r"""Result key/types for Insight Tool Definition"""


class InsightToolDefinitionTypedDict(TypedDict):
    id: int
    r"""Unique ID for Insight Tool Definition"""
    name: str
    r"""Human readable name of Insight Tool Definition"""
    type: str
    r"""Type of Insight Tool Definition"""
    description: str
    r"""Text description of Insight Tool Definition"""
    tool_parameters: ToolParametersTypedDict
    r"""Parameters for Insight Tool Definition"""
    tool_result_set: ToolResultSetTypedDict
    r"""Result key/types for Insight Tool Definition"""


class InsightToolDefinition(BaseModel):
    id: int
    r"""Unique ID for Insight Tool Definition"""

    name: str
    r"""Human readable name of Insight Tool Definition"""

    type: str
    r"""Type of Insight Tool Definition"""

    description: str
    r"""Text description of Insight Tool Definition"""

    tool_parameters: ToolParameters
    r"""Parameters for Insight Tool Definition"""

    tool_result_set: ToolResultSet
    r"""Result key/types for Insight Tool Definition"""
