#nullable disable
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Querying;
namespace MediaBrowser.Controller.Persistence;
///
/// Provides an interface to implement an Item repository.
///
public interface IItemRepository
{
///
/// Deletes the item.
///
/// The identifier.
void DeleteItem(Guid id);
///
/// Saves the items.
///
/// The items.
/// The cancellation token.
void SaveItems(IReadOnlyList items, CancellationToken cancellationToken);
void SaveImages(BaseItem item);
///
/// Retrieves the item.
///
/// The id.
/// BaseItem.
BaseItem RetrieveItem(Guid id);
///
/// Gets the items.
///
/// The query.
/// QueryResult<BaseItem>.
QueryResult GetItems(InternalItemsQuery filter);
///
/// Gets the item ids list.
///
/// The query.
/// List<Guid>.
IReadOnlyList GetItemIdsList(InternalItemsQuery filter);
///
/// Gets the item list.
///
/// The query.
/// List<BaseItem>.
IReadOnlyList GetItemList(InternalItemsQuery filter);
///
/// Updates the inherited values.
///
void UpdateInheritedValues();
int GetCount(InternalItemsQuery filter);
QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetGenres(InternalItemsQuery filter);
QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetMusicGenres(InternalItemsQuery filter);
QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetStudios(InternalItemsQuery filter);
QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetArtists(InternalItemsQuery filter);
QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetAlbumArtists(InternalItemsQuery filter);
QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetAllArtists(InternalItemsQuery filter);
IReadOnlyList GetMusicGenreNames();
IReadOnlyList GetStudioNames();
IReadOnlyList GetGenreNames();
IReadOnlyList GetAllArtistNames();
}