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 SendMessage(string url, ApiMessage message, IMessageSerializer? serializer = null); Task> SendRequest(string url, ApiMessage message, IMessageSerializer? serializer = null) where TResponse : ApiMessage; }