#nullable disable
using System;
using System.Collections.Generic;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Querying;
namespace MediaBrowser.Controller.Persistence;
///
/// Provides methods for accessing Peoples.
///
public interface IPeopleRepository
{
///
/// Gets the people.
///
/// The query.
/// The list of people matching the filter.
QueryResult GetPeople(InternalPeopleQuery filter);
///
/// Updates the people.
///
/// The item identifier.
/// The people.
void UpdatePeople(Guid itemId, IReadOnlyList people);
///
/// Gets the people names.
///
/// The query.
/// The list of people names matching the filter.
IReadOnlyList GetPeopleNames(InternalPeopleQuery filter);
///
/// Gets the distinct people names per item for multiple items efficiently by querying from the mapping table.
///
/// The item IDs to get people for.
/// The person types to include (e.g. "Actor", "Director").
/// A dictionary mapping each item ID to its distinct people names, ordered by cast list order. Items with no matching people are omitted.
IReadOnlyDictionary> GetPeopleNamesByItems(IReadOnlyList itemIds, IReadOnlyList personTypes);
}