using Castle.Core.Logging; namespace Pilz.Net.Api; public interface IApiClient { string ApiUrl { get; } string? AuthKey { get; set; } IMessageSerializer Serializer { get; } ILogger Log { get; set; } Task SendRequest(string route); Task SendRequest(string route, ApiMessage? message); Task SendRequest(string route, ApiMessage? message, IMessageSerializer? serializer); Task> SendRequest(string route) where TResponse : ApiMessage; Task> SendRequest(string route, ApiMessage? message) where TResponse : ApiMessage; Task> SendRequest(string route, ApiMessage? message, IMessageSerializer? serializer) where TResponse : ApiMessage; }