"""Evaluator implementations."""

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from ..config import EvaluatorConfig

from .base import BaseEvaluator
from .stub import StubEvaluator
from .multi_model import MultiModelEvaluator


def get_evaluator(config: "EvaluatorConfig") -> BaseEvaluator:
    """Factory function to create evaluator from config."""
    evaluators = {
        "stub": StubEvaluator,
        "multi_model": MultiModelEvaluator,
        # "rv_telos": RVTelosEvaluator,  # TODO: implement
        # "cuda_gates": CUDAGatesEvaluator,  # TODO: implement
    }
    
    evaluator_cls = evaluators.get(config.type)
    if not evaluator_cls:
        raise ValueError(f"Unknown evaluator type: {config.type}")
    
    return evaluator_cls(config)


__all__ = ["BaseEvaluator", "StubEvaluator", "MultiModelEvaluator", "get_evaluator"]
