using System; using System.Collections.Generic; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using ErsatzTV.Core.Plex; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Plex { public interface IPlexServerApiClient { Task Ping( PlexConnection connection, PlexServerAuthToken token); Task>> GetLibraries( PlexConnection connection, PlexServerAuthToken token); Task>> GetMovieLibraryContents( PlexLibrary library, PlexConnection connection, PlexServerAuthToken token); Task>> GetShowLibraryContents( PlexLibrary library, PlexConnection connection, PlexServerAuthToken token); Task>> GetShowSeasons( PlexLibrary library, PlexShow show, PlexConnection connection, PlexServerAuthToken token); Task>> GetSeasonEpisodes( PlexLibrary library, PlexSeason season, PlexConnection connection, PlexServerAuthToken token); Task> GetMovieMetadata( PlexLibrary library, string key, PlexConnection connection, PlexServerAuthToken token); Task> GetShowMetadata( PlexLibrary library, string key, PlexConnection connection, PlexServerAuthToken token); Task>> GetMovieMetadataAndStatistics( PlexLibrary library, string key, PlexConnection connection, PlexServerAuthToken token); Task>> GetEpisodeMetadataAndStatistics( PlexLibrary library, string key, PlexConnection connection, PlexServerAuthToken token); } }