dmclc
Version:
Dolphin Minecraft Launcher Core
63 lines (62 loc) • 2.17 kB
TypeScript
import { Version } from "./Version.js";
/**
* Represents a <a href="https://semver.org/">Sematic Version</a>.
*
* <p>Compared to a regular {@link Version}, this type of version receives better support
* for version comparisons in dependency notations, and is preferred.</p>
*
* @see Version
*/
export declare abstract class SemanticVersion extends Version {
/**
* The value of {@linkplain #getVersionComponent(int) version component} that indicates
* a {@linkplain #hasWildcard() wildcard}.
*/
static COMPONENT_WILDCARD: number;
/**
* Returns the number of components in this version.
*
* <p>For example, {@code 1.3.x} has 3 components.</p>
*
* @return the number of components
*/
abstract getVersionComponentCount(): number;
/**
* Returns the version component at {@code pos}.
*
* <p>May return {@link #COMPONENT_WILDCARD} to indicate a wildcard component.</p>
*
* <p>If the pos exceeds the number of components, returns {@link #COMPONENT_WILDCARD}
* if the version {@linkplain #hasWildcard() has wildcard}; otherwise returns {@code 0}.</p>
*
* @param pos - the position to check
* @return the version component
*/
abstract getVersionComponent(pos: number): number;
/**
* Returns the prerelease key in the version notation.
*
* <p>The prerelease key is indicated by a {@code -} before a {@code +} in
* the version notation.</p>
*
* @return the optional prerelease key
*/
abstract getPrereleaseKey(): string | null;
/**
* Returns the build key in the version notation.
*
* <p>The build key is indicated by a {@code +} in the version notation.</p>
*
* @return the optional build key
*/
abstract getBuildKey(): string | null;
/**
* Returns if a wildcard notation is present in this version.
*
* <p>A wildcard notation is a {@code x}, {@code X}, or {@code *} in the version string,
* such as {@code 2.5.*}.</p>
*
* @return whether this version has a wildcard notation
*/
abstract hasWildcard(): boolean | undefined;
}