using CloudPrint.Client.Models; namespace CloudPrint.Client.Services.Abstractions; public interface IFileService { long MaxFileSizeBytes { get; } IReadOnlyCollection SupportedExtensions { get; } bool IsSupported(string path); FileValidationResult ValidateFile(string path, long? maxFileSizeBytes = null); CloudPrintDocument CreateLocalDocument(string path); CloudPrintDocument CopyToLibrary(string sourcePath, string libraryRoot, string categoryName, int categoryId = 0); string PrepareForPrint(PrintJob job); Task PrepareForPrintAsync(PrintJob job, string cacheRoot, CancellationToken cancellationToken = default); }