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