import { Signal } from '@pilotlab/lux-signals';
import { AnimationEaseFunction } from '@pilotlab/lux-animation';
import AudioSource from './audioSource';
export declare class AudioManager {
    constructor();
    private _cache;
    private _currentlyPlaying;
    audioContext: AudioContext;
    gainNode: GainNode;
    readonly isPaused: boolean;
    private _isPaused;
    volume: number;
    private _volume;
    audioEnded: Signal<AudioSource>;
    tick(elapsedMilliseconds: number): void;
    playBallOut(): AudioManager;
    playPing(frequency?: number): AudioManager;
    preload(url: string): AudioSource;
    release(url: string): AudioManager;
    releaseAll(): AudioManager;
    play(url?: string, isStopCurrentlyPlaying?: boolean, isLoop?: boolean, isCache?: boolean, durationIn?: number, easeIn?: AnimationEaseFunction, durationOut?: number, easeOut?: AnimationEaseFunction): AudioSource;
    private _playAudioSource(audioSource, isStopCurrentlyPlaying?, durationIn?, easeIn?, durationOut?, easeOut?);
    pause(duration?: number, ease?: AnimationEaseFunction): boolean;
    stop(duration?: number, ease?: AnimationEaseFunction): AudioManager;
}
export default AudioManager;
