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

from __future__ import annotations
from .fusionservertoolconfig import (
    FusionServerToolConfig,
    FusionServerToolConfigTypedDict,
)
from openrouter.types import BaseModel
from typing import Literal, Optional
from typing_extensions import NotRequired, TypedDict


FusionServerToolOpenRouterType = Literal["openrouter:fusion",]


class FusionServerToolOpenRouterTypedDict(TypedDict):
    r"""OpenRouter built-in server tool: fans out the user prompt to a panel of analysis models, then asks a judge model to summarize their collective output as structured JSON the outer model can synthesize from."""

    type: FusionServerToolOpenRouterType
    parameters: NotRequired[FusionServerToolConfigTypedDict]
    r"""Configuration for the openrouter:fusion server tool."""


class FusionServerToolOpenRouter(BaseModel):
    r"""OpenRouter built-in server tool: fans out the user prompt to a panel of analysis models, then asks a judge model to summarize their collective output as structured JSON the outer model can synthesize from."""

    type: FusionServerToolOpenRouterType

    parameters: Optional[FusionServerToolConfig] = None
    r"""Configuration for the openrouter:fusion server tool."""
