import type { TimestampedFloat32Array } from '../SpectrumAnalyzer/types';
import type { WaterfallAnalyzerConfig, WaterfallSamplingOptions, WaterfallSnapshot } from './types';
export default class WaterfallAnalyzer {
    private readonly maxFrames?;
    private readonly onWaterfallUpdate?;
    private sourceData;
    private samplingOptions?;
    private snapshot;
    constructor(config?: WaterfallAnalyzerConfig);
    setData(frames: readonly TimestampedFloat32Array[]): Readonly<WaterfallSnapshot>;
    appendFrame(source: TimestampedFloat32Array): Readonly<WaterfallSnapshot>;
    updateSamplingRange(options: WaterfallSamplingOptions): Readonly<WaterfallSnapshot>;
    getSnapshot(): Readonly<WaterfallSnapshot>;
    private createSnapshot;
    private createReusableRows;
    private getSourceSize;
    private publishSnapshot;
}
