using PSLauncher.Models;

namespace PSLauncher.Core.Licensing;

public interface ILicenseService
{
    Task<LicenseValidationResponse> ValidateAsync(string licenseKey, CancellationToken ct);
    LicenseValidationResponse? GetCached();
    void SaveCached(string licenseKey, LicenseValidationResponse response);
    void Clear();
    bool HasLicense();
    string GetMachineId();
    bool CanDownloadVersion(LicenseValidationResponse? license, VersionManifest version);
}
