using System;
namespace StardewModdingAPI.Toolkit
{
/// A semantic version with an optional release tag.
public interface ISemanticVersion : IComparable, IEquatable
{
/*********
** Accessors
*********/
/// The major version incremented for major API changes.
int Major { get; }
/// The minor version incremented for backwards-compatible changes.
int Minor { get; }
/// The patch version for backwards-compatible bug fixes.
int Patch { get; }
/// An optional prerelease tag.
string Tag { get; }
/*********
** Accessors
*********/
/// Whether this is a pre-release version.
bool IsPrerelease();
/// Get whether this version is older than the specified version.
/// The version to compare with this instance.
bool IsOlderThan(ISemanticVersion other);
/// Get whether this version is newer than the specified version.
/// The version to compare with this instance.
bool IsNewerThan(ISemanticVersion other);
/// Get whether this version is between two specified versions (inclusively).
/// The minimum version.
/// The maximum version.
bool IsBetween(ISemanticVersion min, ISemanticVersion max);
/// Get a string representation of the version.
string ToString();
}
}