export declare function getCurrentVolume(analyser: AnalyserNode): number; export declare const isSpeaking: (analyser: AnalyserNode, threshold: number) => boolean; /** * Loudness as dBFS, from the same RMS the speaking check uses. Byte time-domain samples are * centred on 128, so the result is 0 or below and silence is -Infinity — clamp it. */ export declare function getVolumeDb(analyser: AnalyserNode): number; /** Quietest level the ring reacts to. Below this it sits at rest. */ export declare const VOLUME_FLOOR_DB = -55; /** Where the ring reaches full size. Normal speech sits a little under this. */ export declare const VOLUME_CEIL_DB = -12; /** * dBFS to a 0–1 ring size. Linear in dB rather than amplitude, which spends its range on * sounds too quiet to see and then saturates. */ export declare function volumeToLevel(db: number): number;