type Vec3 = [number, number, number]; /** * SpatialAudioSource.ts * * 3D audio source: positioning, distance attenuation, * rolloff models, panning, cone, and Doppler. * * @module audio */ export type RolloffModel = 'linear' | 'inverse' | 'exponential' | 'custom'; export interface AudioCone { innerAngle: number; outerAngle: number; outerGain: number; } export interface SpatialAudioConfig { position: Vec3; velocity: Vec3; rolloff: RolloffModel; minDistance: number; maxDistance: number; volume: number; pitch: number; loop: boolean; cone: AudioCone | null; dopplerFactor: number; rolloffFactor: number; spatialBlend: number; } export declare class SpatialAudioSource { private config; private playing; private paused; private time; private clipDuration; private gain; private pan; constructor(config?: Partial); play(duration?: number): void; stop(): void; pause(): void; resume(): void; isPlaying(): boolean; setPosition(x: number, y: number, z: number): void; getPosition(): Vec3; setVelocity(x: number, y: number, z: number): void; setVolume(v: number): void; getVolume(): number; setPitch(p: number): void; setLoop(loop: boolean): void; setRolloff(model: RolloffModel): void; setMinDistance(d: number): void; setMaxDistance(d: number): void; setSpatialBlend(blend: number): void; setCone(cone: AudioCone): void; update(dt: number, listenerPos: Vec3): void; private computeAttenuation; private computeConeGain; getGain(): number; getPan(): number; getTime(): number; getConfig(): SpatialAudioConfig; } export {}; //# sourceMappingURL=SpatialAudioSource.d.ts.map