using ErsatzTV.Core.Domain; using ErsatzTV.Core.Jellyfin; namespace ErsatzTV.Core.Interfaces.Jellyfin; public interface IJellyfinApiClient { Task> GetServerInformation(string address, string apiKey); Task>> GetLibraries(string address, string apiKey); Task> GetAdminUserId(string address, string apiKey); IAsyncEnumerable> GetMovieLibraryItems(string address, string apiKey, JellyfinLibrary library); IAsyncEnumerable> GetShowLibraryItems(string address, string apiKey, JellyfinLibrary library); IAsyncEnumerable> GetSeasonLibraryItems( string address, string apiKey, JellyfinLibrary library, string showId); IAsyncEnumerable> GetEpisodeLibraryItems( string address, string apiKey, JellyfinLibrary library, string seasonId); IAsyncEnumerable> GetCollectionLibraryItems(string address, string apiKey, int mediaSourceId); IAsyncEnumerable> GetCollectionItems( string address, string apiKey, int mediaSourceId, string collectionId); Task> GetPlaybackInfo( string address, string apiKey, JellyfinLibrary library, string itemId); }