import type { PerspectiveCamera } from 'three'; import type { PlayerState } from '../core/player-state.js'; import type { VzEventEmitter } from '../core/event-emitter.js'; export type AudioFormat = 'ambix' | 'stereo'; /** * Manages audio playback and spatial audio decoding. * * For standard stereo audio: passes through unchanged. * For AmbiX FOA audio: decodes 4-channel ambisonic stream to binaural stereo, * rotating the soundfield to match camera orientation each frame. */ export declare class AudioManager { private state; private events; private audioContext; private sourceNode; private ambisonicRenderer; private audioFormat; private videoElement; private initialized; constructor(state: PlayerState, events: VzEventEmitter); /** * Initialize audio processing for a video element. * Must be called after a user gesture (click/play) to satisfy autoplay policy. */ init(videoElement: HTMLVideoElement, audioFormat?: AudioFormat): Promise; /** * Resume AudioContext after user gesture. * Browsers require a user interaction before AudioContext can play. */ resume(): Promise; /** * Update listener orientation from camera. * Called each frame from the renderer tick loop. */ updateOrientation(camera: PerspectiveCamera): void; /** Get the audio format */ getAudioFormat(): AudioFormat; /** Check if initialized */ isInitialized(): boolean; /** Dispose all audio resources */ dispose(): void; } //# sourceMappingURL=audio-manager.d.ts.map