export function normalize(S: any, norm?: number, axis?: any, threshold?: number, fill?: boolean): any; /** * Peak normalization (normalize to maximum absolute value) * @param {Array|Float32Array} S - Input array (1D or 2D) * @param {number} target - Target peak value (default: 1.0) * @param {number} threshold - Threshold below which to avoid division (default: 1e-10) * @returns {Array|Float32Array} Peak-normalized array */ export function peak_normalize(S: any[] | Float32Array, target?: number, threshold?: number): any[] | Float32Array; /** * Normalize and clip values * @param {Array|Float32Array} S - Input array (1D or 2D) * @param {number} norm - Normalization type * @param {number} axis - Axis along which to normalize * @param {number} threshold - Normalization threshold * @param {number} clip_min - Minimum clip value (default: -1.0) * @param {number} clip_max - Maximum clip value (default: 1.0) * @returns {Array|Float32Array} Normalized and clipped array */ export function normalize_clip(S: any[] | Float32Array, norm?: number, axis?: number, threshold?: number, clip_min?: number, clip_max?: number): any[] | Float32Array; /** * Compute a soft mask (Wiener-like filter) * @param {Array} X - Positive input array (e.g., magnitude spectrogram) * @param {Array} X_ref - Reference array (same shape as X) * @param {number} power - Exponent for soft mask (default: 1.0, Wiener filter uses 2.0) * @param {number} split_zeros - Behavior for zero reference values (default: false) * @returns {Array} Soft mask array */ export function softmask(X: any[], X_ref: any[], power?: number, split_zeros?: number): any[]; /** * Get a tiny value for numerical stability * @param {*} value - Value to check (used for type inference) * @returns {number} Tiny value appropriate for the type */ export function tiny(value?: any): number; /** * Apply soft masking to a complex spectrogram * @param {Array} D - Complex spectrogram [freq][time] with {real, imag} bins * @param {Array} mask - Soft mask [freq][time] * @returns {Array} Masked complex spectrogram */ export function apply_mask(D: any[], mask: any[]): any[]; /** * RMS (Root Mean Square) normalization * @param {Float32Array} y - Audio signal * @param {number} target_rms - Target RMS level (default: 0.1) * @returns {Float32Array} RMS-normalized audio */ export function rms_normalize(y: Float32Array, target_rms?: number): Float32Array; /** * LUFS (Loudness Units Full Scale) normalization (simplified) * @param {Float32Array} y - Audio signal * @param {number} sr - Sample rate * @param {number} target_lufs - Target LUFS level (default: -23.0) * @returns {Float32Array} LUFS-normalized audio */ export function lufs_normalize(y: Float32Array, sr?: number, target_lufs?: number): Float32Array; /** * Dynamic range compression * @param {Float32Array} y - Audio signal * @param {number} threshold - Threshold in dB (default: -20.0) * @param {number} ratio - Compression ratio (default: 4.0) * @param {number} attack - Attack time in seconds (default: 0.005) * @param {number} release - Release time in seconds (default: 0.1) * @param {number} sr - Sample rate (default: 22050) * @returns {Float32Array} Compressed audio */ export function compress(y: Float32Array, threshold?: number, ratio?: number, attack?: number, release?: number, sr?: number): Float32Array; /** * Fade in/out * @param {Float32Array} y - Audio signal * @param {number} fade_in_len - Fade in length in samples * @param {number} fade_out_len - Fade out length in samples * @param {string} shape - Fade shape ('linear', 'exponential', 'logarithmic') * @returns {Float32Array} Faded audio */ export function fade(y: Float32Array, fade_in_len?: number, fade_out_len?: number, shape?: string): Float32Array; /** * Mix two signals with crossfade * @param {Float32Array} y1 - First audio signal * @param {Float32Array} y2 - Second audio signal * @param {number} crossfade_len - Crossfade length in samples * @returns {Float32Array} Mixed audio */ export function crossfade(y1: Float32Array, y2: Float32Array, crossfade_len: number): Float32Array;