import { NoiseChannel } from './channels/noise-channel'; import { QuadrangularChannel } from './channels/quadrangular-channel'; import { WaveChannel } from './channels/wave-channel'; export declare class Audio { readonly ch1: QuadrangularChannel; readonly ch2: QuadrangularChannel; readonly ch3: WaveChannel; readonly ch4: NoiseChannel; private _enabled; private _leftVolume; private _rightVolume; private vinLeftEnabled; private vinRightEnabled; private eventListener?; private ticksCounter; private sequencerCounter; private pendingEvents; constructor(); reset(): void; tick(): void; setEventListener(eventListener: IAudioEventListener): void; notifyListener(source: EventSource, name: EventName): void; enabled: boolean; leftVolume: number; rightVolume: number; nr50: number; nr51: number; nr52: number; } export declare enum EventSource { GLOBAL = 0, CHANNEL1 = 1, CHANNEL2 = 2, CHANNEL3 = 3, CHANNEL4 = 4, } export declare enum EventName { RESET = 0, ON_OFF = 1, VOLUME_CHANGED = 2, FREQUENCY_CHANGED = 3, DUTY_CHANGED = 4, WAVEFORM_CHANGED = 5, } export interface IAudioEventListener { onAudioEvent: (source: EventSource, name: EventName) => any; } export declare const DEFAULT_WAVE_DATA_DMG: number[]; export declare const DEFAULT_WAVE_DATA_CGB: number[];