/** * 2D Convolution for spectrograms * @param {Array>} matrix - 2D spectrogram (freq x time) * @param {Array>} kernel - 2D convolution kernel * @param {string} mode - Padding mode ('constant', 'edge', etc.) * @param {number} cval - Constant value for padding * @returns {Array>} Convolved matrix */ export function convolve2d(matrix: Array>, kernel: Array>, mode?: string, cval?: number): Array>; /** * Downsample spectrum (MaxPool-like) * @param {Array} spectrum - Frequency spectrum * @param {number} factor - Downsampling factor * @returns {Array} Downsampled spectrum */ export function downsampleSpectrum(spectrum: Array, factor?: number): Array; /** * Create oriented edge detection filter * @param {number} angleDeg - Angle in degrees * @param {number} size - Kernel size * @returns {Array>} Convolution kernel */ export function createOrientedFilter(angleDeg: number, size?: number): Array>; /** * Create 18 different views/slices of the spectrogram * @param {Array>} magnitudeSpectrogram - Magnitude spectrogram (freq x time) * @returns {Object} Dictionary of slices */ export function create18Slices(magnitudeSpectrogram: Array>): any; /** * Extract detailed metrics from a frequency window (425-point fingerprint) * @param {Array} window - Frequency spectrum for one time window * @param {number} sr - Sample rate * @returns {Object} Fingerprint metrics */ export function windowToFingerprint(window: Array, sr: number): any; /** * Process audio to create complete fingerprint * @param {AudioBuffer} audioBuffer - Audio buffer * @param {number} nFft - FFT window size * @param {number} hopLength - Hop length * @returns {Object} Processing results including fingerprints */ export function processAudioToFingerprints(audioBuffer: AudioBuffer, nFft?: number, hopLength?: number): any; /** * Optimize EQ curves to match mixture fingerprints to vocal fingerprints * @param {Object} vocalFps - Vocal fingerprints * @param {Object} mixtureFps - Mixture fingerprints (used for initialization context) * @param {Array>} mixtureMag - Mixture magnitude spectrogram (freq x time) * @param {number} numWindows - Number of time windows * @param {number} sr - Sample rate * @param {number} numIterations - Number of optimization iterations * @param {number} learningRate - Learning rate for gradient descent * @returns {Array>} Optimized EQ curves */ export function optimizeEqCurves(vocalFps: any, mixtureFps: any, mixtureMag: Array>, numWindows: number, sr: number, numIterations?: number, learningRate?: number): Array>; /** * Reconstruct vocal audio using learned EQ curves * @param {Array} mixtureStft - Mixture STFT in (freq x time) format * @param {Array>} eqCurves - EQ curves for each window * @param {number} sr - Sample rate * @param {number} nFft - FFT size * @param {number} hopLength - Hop length * @returns {Float32Array} Reconstructed audio */ export function reconstructVocal(mixtureStft: any[], eqCurves: Array>, sr: number, nFft?: number, hopLength?: number): Float32Array;