using System; using System.Collections.Generic; using System.Threading.Tasks; using DysonNetwork.Common.Models; using NodaTime; namespace DysonNetwork.Common.Interfaces { public interface IFileReferenceServiceClient { Task CreateReferenceAsync( string fileId, string usage, string resourceId, Instant? expiredAt = null, Duration? duration = null); Task DeleteReferenceAsync(string referenceId); Task DeleteResourceReferencesAsync(string resourceId, string? usage = null); Task> GetFileReferencesAsync(string fileId); Task> GetResourceReferencesAsync(string resourceId, string? usage = null); Task HasReferencesAsync(string fileId); Task UpdateReferenceExpirationAsync(string referenceId, Instant? expiredAt); } }