import { EventTarget } from '../event-target';
import { CONTEXT_STORE } from '../globals';
export const createMinimalBaseAudioContextConstructor = (audioDestinationNodeConstructor) => {
    return class MinimalBaseAudioContext extends EventTarget {
        constructor(nativeContext, numberOfChannels) {
            super();
            CONTEXT_STORE.set(this, nativeContext);
            this._nativeContext = nativeContext;
            this._destination = new audioDestinationNodeConstructor(this, numberOfChannels);
        }
        get currentTime() {
            return this._nativeContext.currentTime;
        }
        get destination() {
            return this._destination;
        }
        get onstatechange() {
            return this._nativeContext.onstatechange;
        }
        set onstatechange(value) {
            this._nativeContext.onstatechange = value;
        }
        get sampleRate() {
            return this._nativeContext.sampleRate;
        }
        get state() {
            return this._nativeContext.state;
        }
    };
};
//# sourceMappingURL=/build/es2015/factories/minimal-base-audio-context-constructor.js.map