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