using System; using System.IO; using System.Threading; using System.Threading.Tasks; namespace MalwareMultiScan.Backends.Interfaces { /// /// Scan backend. /// public interface IScanBackend { /// /// Unique backend id. /// public string Id { get; } /// /// Scan file. /// /// File path. /// Cancellation token. /// List of detected threats. public Task ScanAsync(string path, CancellationToken cancellationToken); /// /// Scan URL. /// /// URL. /// Cancellation token. /// List of detected threats. public Task ScanAsync(Uri uri, CancellationToken cancellationToken); /// /// Scan stream. /// /// Stream. /// Cancellation token. /// List of detected threats. public Task ScanAsync(Stream stream, CancellationToken cancellationToken); } }