<?php
namespace Fifa\ConnectId\Sdk\Registration\Event;

/**
 * Interface MessageEventHandlerInterface
 * @package Fifa\ConnectId\Sdk\Registration\Event
 */
interface MessageEventHandlerInterface
{
    /**
     * Getter for PersonDetailsReceivedEvent
     *
     * @return EventHandlerCollection
     */
    public function getPersonDetailsReceivedEvent(): EventHandlerCollection;

    /**
     * Getter for PersonDetailRequestReceivedEvent
     *
     * @return EventHandlerCollection
     */
    public function getPersonDetailsRequestReceivedEvent(): EventHandlerCollection;

    /**
     * Getter for genericMessageReceivedEvent
     *
     * @return EventHandlerCollection
     */
    public function getGenericMessageReceivedEvent(): EventHandlerCollection;

    /**
     * Getter for serviceBusExceptionEvent
     *
     * @return EventHandlerCollection
     */
    public function getServiceBusExceptionEvent(): EventHandlerCollection;

    /**
     * Run the listener (SDK part) that receives and handles the messages from service bus
     * @return int
     */
    public function run(): int;
}