namespace PostFundManagement.Domain.Abstractions; public interface IS3Service { string GenerateCdnUrl(string fileKey); ValueTask> GeneratePresignedUrlAsync(string fileKey, TimeSpan duration, string? contentType = null, CancellationToken cancellationToken = default); ValueTask> UploadFileAsync(string fileName, string subPath, Stream fileStream, string contentType, CancellationToken cancellationToken = default); ValueTask DeleteFileAsync(string fileKey, CancellationToken cancellationToken = default); }