export interface RetroArchOptions { /** Target host (UDP destination). Default 127.0.0.1. */ host?: string; /** UDP port. Must match `network_cmd_port` in retroarch.cfg. Default 55355. */ port?: number; /** Per-call timeout in ms (responses only). Default 5000. */ timeoutMs?: number; } export type EmuStatus = { state: "playing" | "paused"; system: string; game: string; crc32?: string; } | { state: "contentless"; }; export declare class RetroArchClient { private socket; private pending; private readonly host; private readonly port; private readonly timeoutMs; constructor(opts?: RetroArchOptions); describeTarget(): string; /** Open a UDP socket and bind a message handler. */ connect(): Promise; disconnect(): void; /** Fire-and-forget send. Use for hotkey-style commands (PAUSE_TOGGLE, etc.). */ send(command: string): Promise; /** * Send and await one UDP response. Serial: throws if a previous query is * still in flight. Times out per `timeoutMs`. */ query(command: string): Promise; getVersion(): Promise; getStatus(): Promise; /** Memory read via libretro's system memory map (preferred). */ readMemory(addr: number, length: number): Promise; /** Memory read via the achievements (CHEEVOS) address space. */ readRam(addr: number, length: number): Promise; /** Memory write via libretro's system memory map (preferred). */ writeMemory(addr: number, bytes: Uint8Array | number[]): Promise; /** Memory write via CHEEVOS address space. No reply — fire-and-forget. */ writeRam(addr: number, bytes: Uint8Array | number[]): Promise; pauseToggle(): Promise; frameAdvance(): Promise; reset(): Promise; screenshot(): Promise; showMessage(msg: string): Promise; saveStateCurrent(): Promise; loadStateCurrent(): Promise; loadStateSlot(slot: number): Promise; stateSlotPlus(): Promise; stateSlotMinus(): Promise; /** GET_CONFIG_PARAM — query select RetroArch config values by name. */ getConfigParam(name: string): Promise; } //# sourceMappingURL=retroarch.d.ts.map