import { Measure, MeasureData, NormalizedMeasureData } from './Measure.js'; import { Score } from './Score.js'; interface MeasureAsObject { maxDuration: number; data: Array; } interface ScoreAsObject { name: string; voices: Record; timeSignature: [number, number]; bpm: number; } /** * @class ScoreHandler * Static class that can convert scores to objects and back. */ export declare class ScoreHandler { /** * Convert a measure to object literal. * @param {Measure} measure * @return {{duration: string, data: {}, maxDuration: (number)}} */ static measureToObject(measure: Measure): MeasureAsObject; /** * Convert a measure's notes member to object literal. * @param notesMember * @return {{duration: *, notes: any[]}} */ static notesToObject(notesMember: NormalizedMeasureData): MeasureData; /** * Convert object literal representing a measure to an instance of Measure. * @param {object} measureObject * @return {Measure} */ static objectToMeasure(measureObject: MeasureAsObject): Measure; /** * Convert a measure to object literal. * @param {Score} score * @return {{duration: string, voices: array, timeSignature: array, bpm: number}} */ static scoreToObject(score: Score): ScoreAsObject; /** * Convert object literal representing a Score to an instance of Score. * @param {object} scoreObject * @return {Score} */ static objectToScore(scoreObject: ScoreAsObject): Score; static cloneScore(score: Score): Score; } export {};