using System.Threading.Tasks; using CleanArchitecture.Domain.Commands; using CleanArchitecture.Shared.Events; using MediatR; namespace CleanArchitecture.Domain.Interfaces; public interface IMediatorHandler { Task RaiseEventAsync(T @event) where T : DomainEvent; Task SendCommandAsync(T command) where T : CommandBase; Task QueryAsync(IRequest query); }