import type { AudioAnalysis, NoiseAnalysis, NoiseClass } from "../types/audio.js"; import { type BandProfile } from "./measure.js"; import { type BandVerdict, type NoiseModel } from "./noise-model.js"; /** Highest frequency of contiguous stationary low-frequency noise, Hz. */ export declare function rumbleEdgeHz(bands: BandVerdict[]): number | null; /** * How much audible stationary noise the recording carries, 0–1. * Driven by the loudest band that reads as a standing noise floor. */ export declare function stationaryNoiseScoreOf(model: NoiseModel): number | null; /** * How much the noise itself moves, 0–1. * Bands that read as noise but still drift need tracking rather than a fixed * profile; a perfectly still floor does not. */ export declare function changingNoiseScoreOf(model: NoiseModel): number | null; /** * Measure what the recording's noise actually is. * * Every value comes from a measurement of this file. Uncertain measurements stay * null — a failed measurement must never be read as "no noise". */ export declare function analyzeNoiseCharacteristics(inputPath: string, analysis: AudioAnalysis, options?: { bandProfile?: BandProfile | null; /** Segment the user pointed at with `--noise-profile start:end`. */ noisePrintRange?: { startSeconds: number; endSeconds: number; }; }): Promise; export declare function classifyNoise(noise: NoiseAnalysis): NoiseClass[]; /** Exported for unit tests. */ export declare function scoreMeets(score: number | null, threshold: number): boolean;