"""
Type definitions for client parameters
"""

from typing import List, Union, Dict, Any, Optional
from typing_extensions import TypeAlias

# Import the actual types for result processing
from openai.types.chat.chat_completion import ChatCompletion
from openai.types.responses.response import Response as OpenAIResponse
from anthropic.types.message import Message
from ..models.api_types import MultiAgentTrace
from ..tracing.agent_tracer import AgentTracer

# Simple dictionary tool format
ToolType = Dict[str, Any]

# Result format - can be OpenAI, Anthropic, dict, string, or None
ResultType: TypeAlias = Union[
    ChatCompletion,
    OpenAIResponse,
    Message,
    Dict[str, Any],  # Generic result format
    str,  # Simple string result
    None,
]


# Type aliases for lists
MessagesType = List[Dict[str, str]]
ToolsType = Optional[List[ToolType]]
