//
// Copyright (c) PlaceholderCompany. All rights reserved.
//
#nullable disable
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
namespace MediaBrowser.Controller.Persistence;
public interface IPeopleRepository
{
///
/// Gets the people.
///
/// The query.
/// The list of people matching the filter.
IReadOnlyList GetPeople(InternalPeopleQuery filter);
///
/// Gets the people asynchronously.
///
/// The query.
/// The cancellation token.
/// The list of people matching the filter.
Task> GetPeopleAsync(InternalPeopleQuery filter, CancellationToken cancellationToken = default);
///
/// Updates the people.
///
/// The item identifier.
/// The people.
void UpdatePeople(Guid itemId, IReadOnlyList people);
///
/// Updates the people asynchronously.
///
/// The item identifier.
/// The people.
/// The cancellation token.
/// A task representing the asynchronous operation.
Task UpdatePeopleAsync(Guid itemId, IReadOnlyList people, CancellationToken cancellationToken = default);
///
/// Gets the people names.
///
/// The query.
/// The list of people names matching the filter.
IReadOnlyList GetPeopleNames(InternalPeopleQuery filter);
///
/// Gets the people names asynchronously.
///
/// The query.
/// The cancellation token.
/// The list of people names matching the filter.
Task> GetPeopleNamesAsync(InternalPeopleQuery filter, CancellationToken cancellationToken = default);
}