using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Querying;
using System.Collections.Generic;
using System.Threading.Tasks;
using MediaBrowser.Controller.Sync;
namespace MediaBrowser.Controller.Dto
{
///
/// Interface IDtoService
///
public interface IDtoService
{
///
/// Gets the dto id.
///
/// The item.
/// System.String.
string GetDtoId(BaseItem item);
///
/// Attaches the primary image aspect ratio.
///
/// The dto.
/// The item.
void AttachPrimaryImageAspectRatio(IItemDto dto, IHasMetadata item);
///
/// Gets the primary image aspect ratio.
///
/// The item.
/// System.Nullable<System.Double>.
double? GetPrimaryImageAspectRatio(IHasMetadata item);
///
/// Gets the base item dto.
///
/// The item.
/// The fields.
/// The user.
/// The owner.
/// Task{BaseItemDto}.
BaseItemDto GetBaseItemDto(BaseItem item, ItemFields[] fields, User user = null, BaseItem owner = null);
///
/// Gets the base item dto.
///
/// The item.
/// The options.
/// The user.
/// The owner.
/// BaseItemDto.
BaseItemDto GetBaseItemDto(BaseItem item, DtoOptions options, User user = null, BaseItem owner = null);
///
/// Gets the base item dtos.
///
/// The items.
/// The options.
/// The user.
/// The owner.
/// IEnumerable<BaseItemDto>.
Task GetBaseItemDtos(BaseItem[] items, DtoOptions options, User user = null, BaseItem owner = null);
Task GetBaseItemDtos(List items, DtoOptions options, User user = null, BaseItem owner = null);
///
/// Gets the chapter information dto.
///
/// The item.
/// ChapterInfoDto.
List GetChapterInfoDtos(BaseItem item);
///
/// Gets the user item data dto.
///
/// The data.
/// UserItemDataDto.
UserItemDataDto GetUserItemDataDto(UserItemData data);
///
/// Gets the item by name dto.
///
BaseItemDto GetItemByNameDto(BaseItem item, DtoOptions options, List taggedItems, Dictionary syncProgress, User user = null);
Dictionary GetSyncedItemProgress(DtoOptions options);
}
}