import { MemorySegment } from './segments/memory-segment'; import { IGameCartridge } from '../cartridge/game-cartridge'; import { IGameCartridgeInfo } from '../cartridge/game-cartridge-info'; import { Joypad } from '../controls/joypad'; import { DMAHandler } from './dma/dma-handler'; import { Display } from '../display/display'; import { CPUTimer } from '../cpu/cpu-timer'; import { CPUInterrupt } from '../cpu/cpu'; import { Audio } from '../audio/audio'; import { OAMSegment } from './segments/oam-segment'; export declare const VRAM_LENGTH: number; export declare const INTERNAL_RAM_LENGTH: number; export declare const OAM_LENGTH = 160; export declare const IOREGISTERS_LENGTH = 128; export declare const HRAM_LENGTH = 127; export declare class AddressBus { private bootRom?; private bootRomEnabled; private gameCartridge; private videoRamBanks; private currentVideoRamBank; private internalRamBanks; private currentRamBank; private oam; private ioRegisters; private hram; private ieRegister; private joypad; private display; private cpuTimer; private dmaHandler; private audio; private emulationMode; private doubleSpeedModeEnabled; private interruptTriggerFlags; private interruptEnableFlags; constructor(joypad: Joypad, dmaHandler: DMAHandler, cpuTimer: CPUTimer, audio: Audio, display: Display); getByte(address: number): number; setByte(address: number, value: number): void; getWord(address: number): number; setWord(address: number, value: number): void; toggleDoubleSpeedMode(): void; isDoubleSpeedModeEnabled(): boolean; reset(): void; initDefaultRegisterValues(): void; loadBootRom(bootRom: ArrayBuffer): void; loadCartridge(gameCartridge: IGameCartridge, preferredMode?: EMULATION_MODE): void; getCartridgeInfo(): IGameCartridgeInfo; hasBootRom(): boolean; disableBootRom(): void; getVideoRamBanks(): MemorySegment[]; setCurrentVideoRamBank(index: number): void; setCurrentRamBank(index: number): void; getOamSegment(): OAMSegment; getEmulationMode(): EMULATION_MODE; triggerInterrupt(interrupt: CPUInterrupt): void; getInterruptTriggerFlags(): [boolean, boolean, boolean, boolean, boolean]; getInterruptEnableFlags(): [boolean, boolean, boolean, boolean, boolean]; private getSegment(address); } export declare enum EMULATION_MODE { DMG = 0, CGB = 1, }