export default class AudioSource {
    analyzerNode?: AnalyserNode;
    audioContext?: AudioContext;
    baseEq?: BiquadFilterNode;
    bassEqValue: number;
    filter?: BiquadFilterNode;
    gainNode?: GainNode;
    liveFeedback: boolean;
    midEq?: BiquadFilterNode;
    midEqValue: number;
    source: any;
    trebleEq?: BiquadFilterNode;
    trebleEqValue: number;
    volumeValue: number;
    constructor();
    get analyzer(): AnalyserNode | undefined;
    get hasSource(): boolean | undefined;
    get isSuspended(): boolean | undefined;
    initContext: () => void;
    initCustomFilter: (type: BiquadFilterType, frequency?: number, Q?: number, gain?: number, detune?: number) => void;
    initWithMediaFilepath: (filepath: string) => Promise<AudioBuffer | null>;
    /**
     * initWithStream initializes the stream and connects all sources nodes to that
     * stream
     * @param stream Media stream
     * @param output A flag for live feedback, if false, no live feedback will play
     */
    initWithStream: (stream: MediaStream, liveFeedback?: boolean) => Promise<MediaStreamAudioSourceNode | undefined>;
    toggleLiveFeedback: (value?: boolean) => Promise<void>;
    setVolume: (value: number) => void;
    setBassEq: (value: number) => void;
    setMidEq: (value: number) => void;
    setTrebleEq: (value: number) => void;
    getMediaStreamDestination: () => MediaStreamAudioDestinationNode | undefined;
    connectDestinationStream: (stream: MediaStreamAudioDestinationNode) => void;
    resetControls: (volume?: number, midEqValue?: number, bassEqValue?: number, trebleEqValue?: number) => void;
    addReverb: () => Promise<void>;
    static getAudioBuffer: (blob: Blob) => Promise<AudioBuffer | undefined>;
}
