namespace Toolkit.Framework.Foundation; public interface IMediator { ValueTask Publish(TNotification notification, CancellationToken cancellationToken = default) where TNotification : INotification; ValueTask Send(IRequest request, CancellationToken cancellationToken = default); ValueTask Send(ICommand command, CancellationToken cancellationToken = default); ValueTask Send(IQuery query, CancellationToken cancellationToken = default); ValueTask Send(object message, CancellationToken cancellationToken = default); void Subscribe(object subscriber); }