from abc import ABC, abstractmethod
from typing import Dict, Type, Union

from messageprocessor import MessageProcessor

from ._EventProcessorDefinition import EventProcessorDefinition


class AutoMappedEventProcessorBuilder(ABC):

    @abstractmethod
    def build_events(self) -> Dict[str, Union[Type[MessageProcessor], EventProcessorDefinition]]:
        raise NotImplementedError()
