/**
 * Minimal WAV (RIFF/PCM) decoder producing the Float32Array @ 16 kHz mono that
 * transformers.js `automatic-speech-recognition` expects. Ports the decode/
 * mono-mix/resample logic from the retired Python `transcribe.py` (which read
 * via the stdlib `wave` module) so STT no longer shells out to Python.
 *
 * Supported sample formats: PCM uint8 (8-bit), int16 (16-bit), int32 (32-bit),
 * and IEEE float32 (format tag 3). Any number of channels is mixed down to mono.
 */
/** transformers.js Whisper feature extractor operates at 16 kHz. */
export declare const TARGET_SAMPLE_RATE = 16000;
/**
 * Resample via linear interpolation, mirroring the Python `np.interp` over
 * `linspace(0, n-1, targetLen)` against `arange(n)`.
 */
export declare function resampleLinear(input: Float32Array, fromRate: number, toRate: number): Float32Array;
/**
 * Decode a WAV byte buffer into a 16 kHz mono Float32Array suitable for the
 * transformers.js Whisper pipeline.
 */
export declare function decodeWavToMono16k(buffer: ArrayBuffer): Float32Array;
/**
 * Decode interleaved little-endian signed 16-bit PCM bytes into normalized
 * [-1, 1] mono float samples. The live recorder streams raw s16le frames from
 * sox/ffmpeg/arecord stdout (no RIFF container), so this is the hot-path
 * counterpart to {@link decodeWavToMono16k}. `bytes` MUST be 2-byte aligned;
 * callers buffer any trailing odd byte across chunk boundaries.
 */
export declare function decodePcmS16LE(bytes: Uint8Array): Float32Array;
