/** * Musical boundary-aware analysis. * @param {AudioBuffer|Object} audioBuffer * @param {{bpm: number}} bpmData - tempo estimate driving bar-length candidates * @returns {Promise} best loop with 0..1 confidence * @throws when no candidate fits inside the buffer (gate named in the message) */ export function musicalLoopAnalysis(audioBuffer: AudioBuffer | any, bpmData: { bpm: number; }): Promise;