import { Event, EventInterface } from 'microevent.ts'; import EmulationServiceInterface from '../EmulationServiceInterface'; import EmulationContext from './EmulationContext'; import CartridgeInfo from '../../../../machine/stella/cartridge/CartridgeInfo'; export default class EmulationService implements EmulationServiceInterface { constructor(); init(): Promise; start(buffer: { [i: number]: number; length: number; }, config: EmulationServiceInterface.Config, cartridgeType?: CartridgeInfo.CartridgeType): Promise; stop(): Promise; pause(): Promise; resume(): Promise; reset(): Promise; getState(): EmulationServiceInterface.State; getEmulationContext(): EmulationContext; getLastError(): Error; getFrequency(): number; getRateLimit(): boolean; setRateLimit(enforce: boolean): Promise; private static _trapHandler; private _stop; private _tryToResume; private _setError; private _setState; private _updateScheduler; stateChanged: Event; emulationError: Event; frequencyUpdate: EventInterface; private _enforceRateLimit; private _state; private _lastError; private _board; private _context; private _asyncIO; private _scheduler; private _clockProbe; private _mutex; private _schedulerFactory; private _limitingStrategy; }