#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 distinct people names 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").
/// Maximum number of names to return.
/// The distinct people names.
IReadOnlyList GetPeopleNamesByItems(IReadOnlyList itemIds, IReadOnlyList personTypes, int limit);
}