using System;
using System.Collections.Generic;
namespace Svrnty.CQRS.Events.Abstractions.Discovery;
///
/// Service for discovering all registered event types in the application.
/// Similar to ICommandDiscovery and IQueryDiscovery, provides runtime access to event metadata.
///
public interface IEventDiscovery
{
///
/// Get all registered event types.
///
/// Collection of event metadata.
IEnumerable GetEvents();
///
/// Get event metadata by name.
///
/// The event name.
/// Event metadata, or null if not found.
IEventMeta? GetEvent(string name);
///
/// Get event metadata by CLR type.
///
/// The event type.
/// Event metadata, or null if not found.
IEventMeta? GetEvent(Type eventType);
}