using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Net.Http.Headers; using System.Threading.Tasks; using SpotifyAPI.Web.Models; namespace SpotifyAPI.Web { public interface IClient : IDisposable { JsonSerializerSettings JsonSettings { get; set; } /// /// Downloads data from an URL and returns it /// /// An URL /// Tuple Download(string url, Dictionary headers = null); /// /// Downloads data async from an URL and returns it /// /// /// Task> DownloadAsync(string url, Dictionary headers = null); /// /// Downloads data from an URL and returns it /// /// An URL /// Tuple DownloadRaw(string url, Dictionary headers = null); /// /// Downloads data async from an URL and returns it /// /// /// Task> DownloadRawAsync(string url, Dictionary headers = null); /// /// Downloads data from an URL and converts it to an object /// /// The Type which the object gets converted to /// An URL /// Tuple DownloadJson(string url, Dictionary headers = null); /// /// Downloads data async from an URL and converts it to an object /// /// The Type which the object gets converted to /// An URL /// Task> DownloadJsonAsync(string url, Dictionary headers = null); /// /// Uploads data from an URL and returns the response /// /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// Tuple Upload(string url, string body, string method, Dictionary headers = null); /// /// Uploads data async from an URL and returns the response /// /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// Task> UploadAsync(string url, string body, string method, Dictionary headers = null); /// /// Uploads data from an URL and returns the response /// /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// Tuple UploadRaw(string url, string body, string method, Dictionary headers = null); /// /// Uploads data async from an URL and returns the response /// /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// Task> UploadRawAsync(string url, string body, string method, Dictionary headers = null); /// /// Uploads data from an URL and converts the response to an object /// /// The Type which the object gets converted to /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// Tuple UploadJson(string url, string body, string method, Dictionary headers = null); /// /// Uploads data async from an URL and converts the response to an object /// /// The Type which the object gets converted to /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// Task> UploadJsonAsync(string url, string body, string method, Dictionary headers = null); } }