using Connected.ServiceModel; using System.Collections.Immutable; namespace Connected.Middleware; public interface IMiddlewareService { Task First() where TMiddleware : IMiddleware; Task> Query() where TMiddleware : IMiddleware; Task> Query(ICallerContext? context) where TMiddleware : IMiddleware; Task First(Type type); Task> Query(Type type); Task> Query(Type type, ICallerContext? context); }