﻿using System.Threading.Tasks;
using Cumulus.Patterns.Contracts.Messages;

namespace Cumulus.Patterns.Contracts.Handlers
{
    public interface IHandleMulticastRequest<in TBusRequest, TBusResponse>
        where TBusRequest : IBusMulticastRequest<TBusRequest, TBusResponse>
        where TBusResponse : IBusMulticastResponse
    {
        Task<TBusResponse> HandleAsync(TBusRequest request);
    }
}