"""Benchmark definitions and registry."""

from embergraphrouter.evals.benchmarks.base import (
    Benchmark,
    BenchmarkDomain,
    BenchmarkExample,
    DifficultyLevel,
    EvaluationScore,
    MetricType,
)

# Import loaders to trigger registration
from embergraphrouter.evals.benchmarks.loaders import (
    BoolQBenchmark,
    DROPBenchmark,
    GPQABenchmark,
    HumanEvalBenchmark,
    IFEvalBenchmark,
    MATH500Benchmark,
    NaturalQuestionsBenchmark,
    SimpleQABenchmark,
)
from embergraphrouter.evals.benchmarks.registry import (
    BenchmarkRegistry,
    get_benchmark,
    list_benchmarks,
    register_benchmark,
)

__all__ = [
    # Base classes
    "Benchmark",
    "BenchmarkDomain",
    "BenchmarkExample",
    "DifficultyLevel",
    "EvaluationScore",
    "MetricType",
    # Registry
    "BenchmarkRegistry",
    "get_benchmark",
    "list_benchmarks",
    "register_benchmark",
    # Phase 1 loaders
    "GPQABenchmark",
    "HumanEvalBenchmark",
    "SimpleQABenchmark",
    # Phase 3 loaders
    "BoolQBenchmark",
    "DROPBenchmark",
    "IFEvalBenchmark",
    "MATH500Benchmark",
    "NaturalQuestionsBenchmark",
]
