import { Event } from 'microevent.ts'; import BoardInterface from '../board/BoardInterface'; import CpuInterface from '../cpu/CpuInterface'; import Bus from './Bus'; import BusInterface from '../bus/BusInterface'; import CartridgeInterface from './cartridge/CartridgeInterface'; import Config from './Config'; import VideoOutputInterface from '../io/VideoOutputInterface'; import WaveformAudioOutputInterface from '../io/WaveformAudioOutputInterface'; import PCMAudioOutputInterface from '../io/PCMAudioOutputInterface'; import ControlPanelInterface from './ControlPanelInterface'; import DigitalJoystickInterface from '../io/DigitalJoystickInterface'; import PaddleInterface from '../io/PaddleInterface'; import TimerInterface from '../board/TimerInterface'; import RngInterface from '../../tools/rng/GeneratorInterface'; declare class Board implements BoardInterface { private _config; constructor(_config: Config, cartridge: CartridgeInterface, cpuFactory?: (bus: BusInterface, rng?: RngInterface) => CpuInterface); getCpu(): CpuInterface; getBus(): Bus; getVideoOutput(): VideoOutputInterface; getWaveformChannels(): Array; getPCMChannel(): PCMAudioOutputInterface; getTimer(): TimerInterface; getConfig(): Config; reset(): Board; boot(): Board; suspend(): void; resume(): void; setAudioEnabled(state: boolean): void; triggerTrap(reason: BoardInterface.TrapReason, message?: string): Board; getControlPanel(): ControlPanelInterface; getJoystick0(): DigitalJoystickInterface; getJoystick1(): DigitalJoystickInterface; getBoardStateDebug(): string; setClockMode(clockMode: BoardInterface.ClockMode): Board; getClockMode(): BoardInterface.ClockMode; getPaddle(idx: number): PaddleInterface; getCpuTime(): number; tick(requestedCycles: number): number; getSubclock(): number; private static _executeSlice; private _updateAudioState; private _cycle; private _start; private _stop; private _onInvalidInstruction; trap: Event; clock: Event; cpuClock: Event; systemReset: Event; private _cpu; private _bus; private _tia; private _pia; private _cartridge; private _controlPanel; private _joystick0; private _joystick1; private _paddles; private _runTask; private _clockMode; private _cpuCycles; private _trap; private _audioEnabled; private _suspended; private _subClock; private _clockHz; private _sliceSize; private _timer; private _rng; } export { Board as default };