"""Built-in evaluation suites for evalkit."""

from __future__ import annotations

from collections.abc import Callable

from evalkit.models import Suite
from evalkit.suites.agent_tool_call import AgentToolCallSuite
from evalkit.suites.answer_similarity import AnswerSimilaritySuite
from evalkit.suites.base import EvaluationSuite
from evalkit.suites.conversational import ConversationalSuite
from evalkit.suites.document_search import DocumentSearchSuite
from evalkit.suites.live_qa import LiveQASuite
from evalkit.suites.rag_qa import RAGQASuite

BUILTIN_SUITES: dict[Suite, Callable[[], EvaluationSuite]] = {
    Suite.RAG_QA: RAGQASuite,
    Suite.DOCUMENT_SEARCH: DocumentSearchSuite,
    Suite.CONVERSATIONAL: ConversationalSuite,
    Suite.AGENT_TOOL_CALL: AgentToolCallSuite,
    Suite.LIVE_QA: LiveQASuite,
    Suite.ANSWER_SIMILARITY: AnswerSimilaritySuite,
}

__all__ = [
    "EvaluationSuite",
    "Suite",
    "RAGQASuite",
    "DocumentSearchSuite",
    "ConversationalSuite",
    "AgentToolCallSuite",
    "LiveQASuite",
    "AnswerSimilaritySuite",
    "BUILTIN_SUITES",
]
