namespace EventBus
{
    /// <summary>
    /// 不带返回值的匿名事件
    /// </summary>
    public interface IAnonymousEventData : IBaseEventData
    {
        /// <summary>
        /// 发布同步事件
        /// </summary>
        void Publish(object sender, Properties? properties = null, params object[] data);
        /// <summary>
        /// 发布异步事件
        /// </summary>
        Task PublishAsync(object sender, Properties? properties = null, params object[] data);
        /// <summary>
        /// 订阅事件
        /// </summary>
        /// <param name="action">事件处理函数</param>
        /// <param name="properties">筛选器</param>
        Guid Subscrip(Action<object, EventArgs<object[]>> action, Properties? properties = null);

    }
}