using System;
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Plugin.JRay.Models;
namespace Jellyfin.Plugin.JRay.Services.Interfaces;
///
/// Loads and caches scene-actor-extraction "truth" files for library items.
///
public interface ITruthDataService
{
///
/// Gets the truth file for the given library item, if one exists.
///
/// The Jellyfin library item id.
/// Cancellation token.
/// The parsed truth file, or null if no truth file exists for this item.
Task GetTruthAsync(Guid itemId, CancellationToken cancellationToken);
///
/// Removes any cached truth file for the given item, so the next
/// call re-reads from the managed store or sidecar file.
///
/// The Jellyfin library item id.
void Invalidate(Guid itemId);
///
/// Cheaply checks whether truth data exists for an item (managed upload
/// or sidecar file), without loading or caching it.
///
/// The Jellyfin library item id.
/// The item's media file path.
/// true if truth data exists for this item.
bool HasTruth(Guid itemId, string itemPath);
}