import type { Range , SemVer } from 'semver' ; import type { RangeStrategy } from '../types' ; export interface NewValueConfig { currentValue : string ; rangeStrategy : RangeStrategy ; currentVersion ? : string ; newVersion : string ; } export interface VersioningApi { isCompatible ( version , current ? ) : boolean ; isSingleVersion ( version ) : boolean ; isStable ( version ) : boolean ; isValid ( input ) : boolean ; isVersion ( input ) : boolean ; getMajor ( version ) : null | number ; getMinor ( version ) : null | number ; getPatch ( version ) : null | number ; equals ( version , other ) : boolean ; isGreaterThan ( version , other ) : boolean ; isLessThanRange ? ( version , range ) : boolean ; getSatisfyingVersion ( versions , range ) : string | null ; minSatisfyingVersion ( versions , range ) : string | null ; getNewValue ( newValueConfig ) : string | null ; sortVersions ( version , other ) : number ; matches ( version , range ) : boolean ; valueToVersion ? ( version ) : string ; } export interface VersioningApiConstructor { new ( config ? ) : VersioningApi ; }