import type { ValidPeaks, NextIndexPeaks, OnThresholdFunction, AggregateData } from './types';
/**
 * Loop between .9 and minValidThreshold at .2 by default, passing the threshold to the function
 * @param onThreshold Function for each iteration, you must return a boolean, true will exit the loop process
 * @param minValidThreshold minValidThreshold usualy 0.2
 * @param startThreshold startThreshold usualy 0.9
 * @param thresholdStep thresholdStep usuably 0.05
 * @returns A promise that resolves nothing
 */
export declare function descendingOverThresholds(onThreshold: OnThresholdFunction, minValidThreshold?: number, startThreshold?: number, thresholdStep?: number): Promise<void>;
/**
 * Generate an object with keys as thresholds and will containes validPeaks
 * @param minValidThreshold minValidThreshold usualy 0.2
 * @param startThreshold startThreshold usualy 0.9
 * @param thresholdStep thresholdStep usuably 0.05
 * @returns Collection of validPeaks by thresholds
 */
export declare function generateValidPeaksModel(minValidThreshold?: number, startThreshold?: number, thresholdStep?: number): ValidPeaks;
/**
 * Generate an object with keys as thresholds and will containes NextIndexPeaks
 * @param minValidThreshold Minimum threshold to reach (we're descending from the startThreshold)
 * @param startThreshold Starting threshold
 * @param thresholdStep Usually 0.05
 * @returns Collection of NextIndexPeaks by thresholds
 */
export declare function generateNextIndexPeaksModel(minValidThreshold?: number, startThreshold?: number, thresholdStep?: number): NextIndexPeaks;
/**
 * Creates a function that aggregates incoming PCM data into chunks.
 * @returns A function that accepts PCM data and aggregates it into chunks.
 */
export declare function chunckAggregator(): (pcmData: Float32Array) => AggregateData;
/**
 * Computes the number of indexes we need to skip based on sampleRate
 * @param durationSeconds Duration expressed in seconds
 * @param sampleRate Sample rate, typically 48000, 441000, etc
 * @returns The number of indexes we need to skip
 */
export declare function computeIndexesToSkip(durationSeconds: number, sampleRate: number): number;
