import { type Vec3 } from '@quake2ts/shared'; import { MusicSystem } from './music.js'; import { SoundRegistry } from './registry.js'; import { AudioSystem, type SoundRequest, type ActiveSound } from './system.js'; export interface SubtitleClient { showSubtitle(text: string, soundName: string): void; } export interface AudioApiOptions { registry: SoundRegistry; system: AudioSystem; music?: MusicSystem; client?: SubtitleClient; } export declare class AudioApi { private readonly registry; private readonly system; private readonly music?; private readonly client?; constructor(options: AudioApiOptions); soundindex(name: string): number; sound(entity: number, channel: number, soundindex: number, volume: number, attenuation: number, timeofs: number): void; positioned_sound(origin: Vec3, soundindex: number, volume: number, attenuation: number): void; loop_sound(entity: number, channel: number, soundindex: number, volume: number, attenuation: number): ActiveSound | undefined; stop_entity_sounds(entnum: number): void; setPlaybackRate(rate: number): void; set_listener(listener: Parameters[0]): void; play_music(track: string, loop?: boolean): Promise; play_track(trackNum: number, loop?: boolean): Promise; pause_music(): void; resume_music(): Promise; stop_music(): void; set_music_volume(volume: number): void; play_ambient(origin: Vec3, soundindex: number, volume: number): void; play_channel(request: Omit): void; private triggerSubtitle; } //# sourceMappingURL=api.d.ts.map