type BpmDetect = (buffer: AudioBuffer) => number;
export declare function loadBpmDetective(importFn?: () => Promise<unknown>): Promise<BpmDetect | null>;
export interface MusicBeatAnalysis {
    beatTimes: number[];
    /** Per-beat loudness 0–1 (local RMS / peak), aligned by index with beatTimes. */
    beatStrengths: number[];
    bpm: number | null;
    bpmConfidence: "high" | "low" | "uncertain";
    /** Decoded mono samples — retained so strength can be measured at user-added
     *  beats. Audio-file coordinates. May be null if decode data was dropped. */
    channelData: Float32Array | null;
    sampleRate: number;
    /** Reference peak RMS used to normalize beat strengths. */
    peak: number;
}
/** Local RMS amplitude at a given audio-file time. */
export declare function computeRmsAt(channelData: Float32Array, sampleRate: number, time: number): number;
/** Normalized beat strength (0–1) at an audio-file time, using a track peak. */
export declare function strengthAtTime(analysis: Pick<MusicBeatAnalysis, "channelData" | "sampleRate" | "peak">, time: number): number;
export declare function detectBeats(audioBuffer: AudioBuffer): Promise<number[]>;
export declare function analyzeMusicFromBuffer(audioBuffer: AudioBuffer): Promise<MusicBeatAnalysis>;
export declare function detectBeatsFromUrl(url: string): Promise<number[]>;
export declare function analyzeMusicFromUrl(url: string): Promise<MusicBeatAnalysis>;
export {};
//# sourceMappingURL=beatDetection.d.ts.map