import { AudioEventName, AudioEventCallback } from './types'; import AudioEventSubscription from './AudioEventSubscription'; import { IAudioEventEmitter } from '../interfaces'; export default class AudioEventEmitter { private readonly audioEventEmitter: IAudioEventEmitter; constructor(audioEventEmitter: IAudioEventEmitter) { this.audioEventEmitter = audioEventEmitter; } addAudioEventListener( name: Name, callback: AudioEventCallback ): AudioEventSubscription { const subscriptionId = this.audioEventEmitter.addAudioEventListener( name, callback ); return new AudioEventSubscription(subscriptionId, name, this); } removeAudioEventListener( name: Name, subscriptionId: string ): void { this.audioEventEmitter.removeAudioEventListener(name, subscriptionId); } }