#nullable disable using System.Collections.Generic; using StardewModdingAPI.Toolkit.Framework.UpdateData; namespace StardewModdingAPI.Web.Framework { /// Generic metadata about a mod page. internal interface IModPage { /********* ** Accessors *********/ /// The mod site containing the mod. ModSiteKey Site { get; } /// The mod's unique ID within the site. string Id { get; } /// The mod name. string Name { get; } /// The mod's semantic version number. string Version { get; } /// The mod's web URL. string Url { get; } /// The mod downloads. IModDownload[] Downloads { get; } /// The mod page status. RemoteModStatus Status { get; } /// A user-friendly error which indicates why fetching the mod info failed (if applicable). string Error { get; } /********* ** Methods *********/ /// Set the fetched mod info. /// The mod name. /// The mod's semantic version number. /// The mod's web URL. /// The mod downloads. IModPage SetInfo(string name, string version, string url, IEnumerable downloads); /// Set a mod fetch error. /// The mod availability status on the remote site. /// A user-friendly error which indicates why fetching the mod info failed (if applicable). IModPage SetError(RemoteModStatus status, string error); } }