import { VMState } from '@computernewb/superqemu'; import { VMDisplay } from '../display/interface.js'; import { EventEmitter } from 'node:events'; // Abstraction of VM interface export default interface VM { // Starts the VM. Start(): Promise; // Stops the VM. Stop(): Promise; // Reboots the VM. Reboot(): Promise; // Resets the VM. Reset(): Promise; // Monitor command MonitorCommand(command: string): Promise; // Start/connect the display StartDisplay(): void; // Gets the current active display // TODO: this could probaly be replaced with an event or something GetDisplay(): VMDisplay | null; GetState(): VMState; SnapshotsSupported(): boolean; Events(): EventEmitter; }