interface AudioData {
    sampleRate: number;
    channelData: Float32Array[];
    duration: number;
    numberOfChannels: number;
    length: number;
}
type ChannelSelector = 'mix' | number | 'all' | readonly number[];

interface CrestFactorOptions {
    channel?: ChannelSelector;
    windowSize?: number;
    hopSize?: number;
    method?: 'simple' | 'weighted';
}
interface CrestFactorResult {
    crestFactor: number;
    crestFactorLinear: number;
    peak: number;
    rms: number;
    timeVarying?: {
        times: Float32Array;
        values: Float32Array;
        valuesLinear: Float32Array;
        peaks: Float32Array;
        rmsValues: Float32Array;
    } | undefined;
}
declare function getCrestFactor(audio: AudioData, options?: CrestFactorOptions): CrestFactorResult;

export { type CrestFactorOptions, type CrestFactorResult, getCrestFactor };
