#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 people names per item for a batch of item IDs, preserving per-item list order.
/// One database round-trip for the whole batch; grouped by item id in memory.
/// Items with no people are omitted from the returned dictionary.
///
/// The item IDs to get people for.
/// Optional person types to include (e.g. "Actor", "Director"). Empty for all.
/// Dictionary keyed by item id; values are the per-item people names.
IReadOnlyDictionary> GetPeopleNamesByItem(IReadOnlyList itemIds, IReadOnlyList personTypes);
}