import type { DifficultyName } from '../schema/shared/types/difficulty.js'; /** NJS class for various utility around jump distance, reaction time, etc. */ export declare class NoteJumpSpeed { static readonly HJD_START: number; static readonly HJD_MIN: number; bpm: number; value: number; offset: number; constructor(bpm: number, njs?: number, sdm?: number); /** * Create and return new instance of NJS class. * ```ts * const njs = NoteJumpSpeed.create(128, 16, 0); * ``` */ static create(bpm: number, njs?: number, sdm?: number): NoteJumpSpeed; /** * Fallback value used if NJS value is null or 0. * ```ts * 'ExpertPlus' -> 16, * 'Expert' -> 12, * 'Hard' -> 10, * 'Normal' -> 10, * 'Easy' -> 10 * ``` */ static readonly FallbackNJS: { readonly [key in DifficultyName]: number; }; get hjd(): number; get jd(): number; get reactionTime(): number; /** * Calculate half jump duration given NJS offset. * ```ts * const hjd = njs.calcHjd(); * const hjdOffset = njs.calcHjd(0.5); * const hjdNoOffset = njs.calcHjd(0); * ``` */ calcHjd(offset?: number): number; /** * Calculate half jump duration given jump distance. * ```ts * const hjd = njs.calcHjdFromJd(); * const hjdSpecified = njs.calcHjdFromJd(21); * ``` */ calcHjdFromJd(jd?: number): number; /** * Calculate half jump duration given real time in second. * ```ts * const hjd = njs.calcHjdFromRt(); * const hjdSpecified = njs.calcHjdFromRt(4.5); * ``` */ calcHjdFromRt(rt?: number): number; /** * Calculate offset given half jump duration. * ```ts * const hjd = njs.calcOffsetFromHjd(); * ``` */ calcOffsetFromHjd(hjd: number): number; /** * Calculate offset given real time in second. * ```ts * const offset = njs.calcOffsetFromRt(); * const offsetSpecified = njs.calcOffsetFromRt(4.5); * ``` */ calcOffsetFromRt(rt?: number): number; /** * Calculate jump distance given half jump duration. * ```ts * const jd = njs.calcJd(); * const jdSpecified = njs.calcJd(1.5); * ``` */ calcJd(hjd?: number): number; /** * Calculate optimal jump distance. * ```ts * const [lowJd, highJd] = njs.calcJdOptimal(); * ``` */ calcJdOptimal(): [low: number, high: number]; /** * Calculate reaction time given jump distance. * ```ts * const rt = njs.calcRtFromJd(); * const rtSpecified = njs.calcRtFromJd(21); * ``` */ calcRtFromJd(jd?: number): number; /** * Calculate reaction time given half jump duration. * ```ts * const rt = njs.calcRtFromHjd(); * const rtSpecified = njs.calcRtFromHjd(1.5); * ``` */ calcRtFromHjd(hjd?: number): number; /** * Calculate unity distance given beat. * ```ts * const distance = njs.calcDistance(1); * ``` */ calcDistance(beat: number): number; } //# sourceMappingURL=njs.d.ts.map