/** * AudioRenderer - Web Audio API based audio playback with precise clock synchronization * Uses AudioContext as the master clock for A/V sync (60Hz smooth playback) */ import type { PCMFrame } from "../decode/SoftwareAudioDecoder"; export declare class AudioRenderer { private audioContext; private inputNode; private gainNode; private compressorNode; private scheduledTime; private isPlaying; private volume; private _playbackRate; private activeSources; private _muted; private firstBufferScheduledAt; private firstBufferMediaTime; private hasFirstBuffer; private currentMediaTime; private maxScheduledMediaTime; private lastDecodeTime; private scheduledCount; private isRebufferingForRateChange; private preservePitch; private signalsmith; private signalsmithLoading; private signalsmithSampleRate; private _stableAudio; private _sinkId; private static readonly GAIN_RAMP_TIME; private static readonly FADE_OUT_TIME; private contextStateHandler; private recoveryAttempts; private static readonly MAX_RECOVERY_ATTEMPTS; private starvationStartTime; private isStarved; private static readonly STARVATION_THRESHOLD; private keepaliveEl; private keepaliveUrl; constructor(); /** * Lazily create a near-silent looping