using System; using System.Collections.Generic; using System.Reflection; using System.Threading.Tasks; namespace Tapeti.Config { public interface IConfig { string Exchange { get; } IDependencyResolver DependencyResolver { get; } IReadOnlyList MessageMiddleware { get; } IEnumerable Queues { get; } } public interface IQueue { bool Dynamic { get; } string Name { get; } IEnumerable Bindings { get; } } public interface IBinding { Type Controller { get; } MethodInfo Method { get; } Type MessageClass { get; } bool Accept(object message); Task Invoke(IMessageContext context, object message); } }