"""Re-exports the public judge API."""

from __future__ import annotations

from evalkit.judges.base import BaseJudge
from evalkit.models import JudgeResponse


def __getattr__(name: str):
    """Lazy imports for optional judge implementations."""
    if name in ("OpenAIJudge", "AzureOpenAIJudge"):
        from evalkit.judges.openai import AzureOpenAIJudge, OpenAIJudge

        return OpenAIJudge if name == "OpenAIJudge" else AzureOpenAIJudge
    if name == "AnthropicJudge":
        from evalkit.judges.anthropic import AnthropicJudge

        return AnthropicJudge
    if name == "OllamaJudge":
        from evalkit.judges.ollama import OllamaJudge

        return OllamaJudge
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")


__all__ = [
    "BaseJudge",
    "JudgeResponse",
    "OpenAIJudge",
    "AzureOpenAIJudge",
    "AnthropicJudge",
    "OllamaJudge",
]
