import { AddressBus } from '../memory/address-bus'; import { TILE_MAP, TILE_AREA } from './ppu'; export declare const SCREEN_WIDTH = 160; export declare const SCREEN_HEIGHT = 144; export declare class Display { private addressBus?; private buffers; private currentBuffer; private currentMode; private currentLine; private clock; private lcdControl; private lcdPalettes; private lcdPositions; private lcdEnablingDelay; private cgbBackgroundPalettes; private cgbSpritePalettes; constructor(); setAddressBus(addressBus: AddressBus): void; reset(): void; getFrontBuffer(): Uint8Array; getBackBuffer(): Uint8Array; tick(): void; setLcdControl(lcdControl: ILCDControl): void; getLcdControl(): ILCDControl; setLcdPalettes(lcdPalettes: ILCDPalettes): void; getLcdPalettes(): ILCDPalettes; setLcdPositions(lcdPositions: ILCDPositions): void; getLcdPosition(): ILCDPositions; getCgbBackgroundPalettes(): number[]; getCgbSpritePalettes(): number[]; private switchBuffers(); private clearBuffer(bufferIndex); private setMode(mode); private setCurrentLine(line); } export declare enum GPU_MODE { HBLANK = 0, VBLANK = 1, OAM_SEARCH = 2, PIXEL_TRANSFER = 3, } export declare type LCDPalette = [number, number, number, number]; export interface ILCDPalettes { backgroundPalette: LCDPalette; spritePalette0: LCDPalette; spritePalette1: LCDPalette; } export interface ILCDPositions { backgroundScrollY: number; backgroundScrollX: number; windowPositionY: number; windowPositionX: number; } export interface ILCDControl { backgroundEnabled: boolean; spritesEnabled: boolean; spritesHeight: number; backgroundTileMap: TILE_MAP; backgroundTileArea: TILE_AREA; windowEnabled: boolean; windowTileMap: TILE_MAP; lcdEnabled: boolean; }