import { TypedEventEmitter } from '../utils/typed-event-emitter';
/**
 * This class handles audio playlist management
 * - An audio element and audio context which processes audio from audio element is created
 *   in the constructor
 * It handles playback in the following steps
 *  - set's the url on the audio element created in the constructor
 *  - oncanplaythrough event of the audio element
 *    - resume the audio context if it is suspended
 *    - play the audio element
 *    - Get audio track from the audio context manager
 *    - The track is passed to playlist manager to publish
 */
export declare class PlaylistAudioManager extends TypedEventEmitter<{
    ended: null;
    progress: Event;
}> {
    private audioElement;
    private track?;
    private audioContextManager;
    private readonly TAG;
    private seeked;
    play(url: string): Promise<MediaStreamTrack[]>;
    getTracks(): string[];
    getElement(): HTMLAudioElement;
    stop(): void;
    private getAudioElement;
}
