import type { IBPMChangeTime, IBPMTimeScale } from '../schema/shared/types/timeProcessor.js'; import type { IBPMChange as IV2BPMChange, IBPMChangeOld } from '../schema/v2/types/custom/bpmChange.js'; import type { IBPMChange as IV3BPMChange } from '../schema/v3/types/custom/bpmChange.js'; import type { IBPMEvent } from '../schema/v3/types/bpmEvent.js'; /** Time processor for various utility around adjusted beat time, JSON time, reaction time, etc. */ export declare class TimeProcessor { bpm: number; private _bpmChange; private _timeScale; private _offset; constructor(bpm: number, bpmChange?: (IV2BPMChange | IBPMChangeOld | IV3BPMChange | IBPMEvent | Omit | IBPMTimeScale)[], offset?: number); /** * Create and return an instance of BeatPerMinute class. * ```ts * const bpm = BeatPerMinute.create(bpm, bpmc, 0); * ``` */ static create: (bpm: number, bpmChange?: (IV2BPMChange | IBPMChangeOld | IV3BPMChange | IBPMEvent | Omit | IBPMTimeScale)[], offset?: number) => TimeProcessor; get change(): IBPMChangeTime[]; set change(val: (IBPMChangeTime | IV2BPMChange | IBPMChangeOld | IV3BPMChange)[]); get timescale(): IBPMTimeScale[]; set timescale(val: (IBPMTimeScale | IBPMEvent | Omit)[]); get offset(): number; set offset(val: number); /** * Create new BPM change object that allow time to be read according to editor. * ```ts * const newBpmChange = bpm.getBpmChangeTime(bpmc); * ``` */ private getBpmChangeTime; /** * Create new time scale object that adjust beat to BPM event. * ```ts * const newTimeScale = bpm.getTimeScale(bpmc); * ``` */ private getTimeScale; /** * Adjust beat time by offset. * ```ts * const removedOffset = bpm.offsetBegone(beat); * ``` */ private offsetBegone; getBpmAtTime(beat: number): number; /** * Convert beat time at an offset beat to real-time in second. * ```ts * const durationSecond = bpm.toRealTimeOffset(obstacleTime, obstacleDuration); * ``` */ toRealTimeAtOffset(offset: number, beat: number, timescale?: boolean): number; /** * Convert beat time to real-time in second. * ```ts * const realTime = bpm.toRealTime(beat); * ``` */ toRealTime(beat: number, timescale?: boolean): number; /** * Convert real-time in second to beat time. * ```ts * const beatTime = bpm.toBeatTime(rt); * ``` */ toBeatTime(seconds: number, timescale?: boolean): number; /** * Convert editor beat time to actual JSON time. * ```ts * const JsonTime = bpm.toJsonTime(beat); * ``` * * This only works with custom data BPM change. */ toJsonTime(beat: number): number; /** * Adjust beat time from BPM changes and offset. * ```ts * const adjustedBeat = bpm.adjustTime(beat); * ``` * * @deprecated only use if you are using info custom data song offset, typically exist in older v2 beatmaps */ adjustTime(beat: number): number; } //# sourceMappingURL=timeProcessor.d.ts.map