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

from messageprocessor import MessageProcessor

from ._MessageProcessorDefinition import MessageProcessorDefinition


class AutoMappedMessageProcessorBuilder(ABC):

    @abstractmethod
    def build_messages(self) -> Dict[int, Union[Type[MessageProcessor], MessageProcessorDefinition]]:
        raise NotImplementedError()
