using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace SpotifyAPI.Web.Http { public interface IAPIConnector { // IAuthenticator Authenticator { get; } // IJSONSerializer JSONSerializer { get; } // IHTTPClient HTTPClient { get; } event EventHandler? ResponseReceived; [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(Uri uri, CancellationToken cancel = default); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(Uri uri, IDictionary? parameters, CancellationToken cancel = default); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(Uri uri, IDictionary? parameters, object? body, CancellationToken cancel = default); Task Post(Uri uri, CancellationToken cancel = default); Task Post(Uri uri, IDictionary? parameters, CancellationToken cancel = default); Task Post(Uri uri, IDictionary? parameters, object? body, CancellationToken cancel = default); Task Post(Uri uri, IDictionary? parameters, object? body, Dictionary? headers, CancellationToken cancel = default); Task Post(Uri uri, IDictionary? parameters, object? body, CancellationToken cancel = default); Task Put(Uri uri, CancellationToken cancel = default); Task Put(Uri uri, IDictionary? parameters, CancellationToken cancel = default); Task Put(Uri uri, IDictionary? parameters, object? body, CancellationToken cancel = default); Task Put(Uri uri, IDictionary? parameters, object? body, CancellationToken cancel = default); Task PutRaw(Uri uri, IDictionary? parameters, object? body, CancellationToken cancel = default); Task Delete(Uri uri, CancellationToken cancel = default); Task Delete(Uri uri, IDictionary? parameters, CancellationToken cancel = default); Task Delete(Uri uri, IDictionary? parameters, object? body, CancellationToken cancel = default); Task Delete(Uri uri, IDictionary? parameters, object? body, CancellationToken cancel = default); Task SendAPIRequest( Uri uri, HttpMethod method, IDictionary? parameters = null, object? body = null, IDictionary? headers = null, CancellationToken cancel = default); void SetRequestTimeout(TimeSpan timeout); } }