export interface RunOptions { /** Emulator executable binary */ bin?: string; /** Additional CLI args to pass to emulator program. Remote debugger args are added automatically */ args: string[]; /** Directory to mount as hard drive 0 (SYS) */ mountDir?: string; /** Callback executed on process exit */ onExit?: () => void; } export interface DebugOptions extends RunOptions { serverPort: number; remoteProgram: string; } export declare type EmulatorType = "fs-uae" | "winuae"; /** * Base emulator class */ export declare abstract class Emulator { /** * Running emulator process */ private childProcess?; /** * Return default path for emulator binary for platform */ protected abstract defaultBin(): string; /** * Generated args to pass when running */ protected abstract runArgs(opts: RunOptions): string[]; /** * Generated args to pass when debugging */ protected abstract debugArgs(opts: DebugOptions): string[]; /** * Factory */ static getInstance(type: EmulatorType): Emulator; /** * Start emulator with remote debugger */ debug(opts: DebugOptions): Promise; /** * Start emulator process */ run(opts: RunOptions): Promise; /** * Check suitablity of emulator binary path */ protected checkBin(bin: string): boolean; /** * Terminate process */ destroy(): void; } /** * FS-UAE emaultor program */ export declare class FsUAE extends Emulator { protected defaultBin(): string; protected checkBin(bin: string): boolean; protected runArgs(opts: RunOptions): string[]; protected debugArgs(opts: DebugOptions): string[]; } /** * WinUAE Emulator program */ export declare class WinUAE extends Emulator { protected defaultBin(): string; protected checkBin(bin: string): boolean; protected runArgs(opts: RunOptions): string[]; protected debugArgs(opts: DebugOptions): string[]; }