from typing import List, Dict, Any, Tuple
from src.detections import Detection
from abc import ABC, abstractmethod

class Detector(ABC):
    @abstractmethod
    def detect(
        self, text: str, annotations: Dict[str, List[Tuple[int, int, Any]]]
    ) -> List[Tuple[int, int, Detection]]:
        """Detects entities in text

        Args:
            text (str): Text to be processed.
            annotations (Dict[str, List[Tuple[int, int, Any]]]): Annotations.

        Returns:
            List[Tuple[int, int, Detection]]: List of detections.
        """
        pass