using System.Threading.Tasks;
namespace SpotifyAPI.Web
{
///
/// Endpoints for getting playlists and new album releases featured on Spotify’s Browse tab.
///
public interface IBrowseClient
{
///
/// Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab).
///
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-categories
///
///
Task GetCategories();
///
/// Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab).
///
/// The request-model which contains required and optional parameters.
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-categories
///
///
Task GetCategories(CategoriesRequest request);
///
/// Get a single category used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab).
///
/// The Spotify category ID for the category.
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-category
///
///
Task GetCategory(string categoryId);
///
/// Get a single category used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab).
///
/// The Spotify category ID for the category.
/// The request-model which contains required and optional parameters.
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-category
///
///
Task GetCategory(string categoryId, CategoryRequest request);
///
/// Get a list of Spotify playlists tagged with a particular category.
///
/// The Spotify category ID for the category.
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-categories-playlists
///
///
Task GetCategoryPlaylists(string categoryId);
///
/// Get a list of Spotify playlists tagged with a particular category.
///
/// The Spotify category ID for the category.
/// The request-model which contains required and optional parameters.
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-categories-playlists
///
///
Task GetCategoryPlaylists(string categoryId, CategoriesPlaylistsRequest request);
///
/// Recommendations are generated based on the available information for a given seed entity and matched against
/// similar artists and tracks. If there is sufficient information about the provided seeds,
/// a list of tracks will be returned together with pool size details.
///
/// The request-model which contains required and optional parameters.
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-recommendations
///
///
Task GetRecommendations(RecommendationsRequest request);
///
/// Retrieve a list of available genres seed parameter values for recommendations.
///
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-recommendation-genres
///
///
Task GetRecommendationGenres();
///
/// Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab).
///
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-new-releases
///
///
Task GetNewReleases();
///
/// Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab).
///
/// The request-model which contains required and optional parameters.
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-new-releases
///
///
Task GetNewReleases(NewReleasesRequest request);
///
/// Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s ‘Browse’ tab).
///
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-featured-playlists
///
///
Task GetFeaturedPlaylists();
///
/// Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s ‘Browse’ tab).
///
/// The request-model which contains required and optional parameters.
///
/// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-featured-playlists
///
///
Task GetFeaturedPlaylists(FeaturedPlaylistsRequest request);
}
}