import { Event } from 'microevent.ts'; import ControlPanelInterface from './ControlPanelInterface'; import DigitalJoystickInterface from '../io/DigitalJoystickInterface'; import Bus from './Bus'; import RngInterface from '../../tools/rng/GeneratorInterface'; declare class Pia { private _controlPanel; private _joystick0; private _joystick1; private _rng?; constructor(_controlPanel: ControlPanelInterface, _joystick0: DigitalJoystickInterface, _joystick1: DigitalJoystickInterface, _rng?: RngInterface); reset(): void; read(address: number): number; peek(address: number): number; write(address: number, value: number): void; cycle(): void; getDebugState(): string; setBus(bus: Bus): this; private _writeIo; private _writeTimer; private _setTimer; private _readIo; private _readTimer; private _peekTimer; private _cycleTimer; trap: Event; ram: Uint8Array; private _bus; private _timerValue; private _subTimer; private _timerDivide; private _interruptFlag; private _timerWrapped; private _flagSetDuringThisCycle; } declare namespace Pia { const enum Registers { swcha = 640, swacnt = 641, swchb = 642, swncnt = 643, intim = 644, instat = 645, tim1t = 660, tim8t = 661, tim64t = 662, t1024t = 663 } const enum TrapReason { invalidRead = 0, invalidWrite = 1 } class TrapPayload { reason: TrapReason; pia: Pia; message?: string; constructor(reason: TrapReason, pia: Pia, message?: string); } } export { Pia as default };