namespace Toolkit.Foundation; public interface IMediator { Task Handle(object message, object? key = null, CancellationToken cancellationToken = default); Task Handle(TMessage message, object? key = null, CancellationToken cancellationToken = default) where TMessage : notnull; IAsyncEnumerable HandleManyAsync(object message, object? key = null, CancellationToken cancellationToken = default); IAsyncEnumerable HandleManyAsync(TMessage message, object? key = null, CancellationToken cancellationToken = default) where TMessage : notnull; Task> HandleMany(TMessage message, object? key = null, CancellationToken cancellationToken = default) where TMessage : notnull; }