#pragma warning disable CA1002, CS1591
using System.Collections.Generic;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
namespace MediaBrowser.Controller.Library
{
    public interface IMusicManager
    {
        /// 
        /// Gets the instant mix from song.
        /// 
        /// The item to use.
        /// The user to use.
        /// The options to use.
        /// List of items.
        IReadOnlyList GetInstantMixFromItem(BaseItem item, User? user, DtoOptions dtoOptions);
        /// 
        /// Gets the instant mix from artist.
        /// 
        /// The artist to use.
        /// The user to use.
        /// The options to use.
        /// List of items.
        IReadOnlyList GetInstantMixFromArtist(MusicArtist artist, User? user, DtoOptions dtoOptions);
        /// 
        /// Gets the instant mix from genre.
        /// 
        /// The genres to use.
        /// The user to use.
        /// The options to use.
        /// List of items.
        IReadOnlyList GetInstantMixFromGenres(IEnumerable genres, User? user, DtoOptions dtoOptions);
    }
}