import { ProbeBackend, CommandResult, GDBServerInfo } from "./backend"; import { ProcessManager } from "../utils/process-manager"; export interface BlackMagicConfig { /** Path to GDB binary (arm-none-eabi-gdb) */ gdbPath: string; /** Serial port for BMP (e.g., "/dev/ttyACM0", "/dev/cu.usbmodem*") */ serialPort: string; /** Target index when scanning (default 1) */ targetIndex: number; /** GDB port if using networked BMP */ gdbPort: number; } /** * Black Magic Probe backend. * BMP is unique: it has a built-in GDB server on a serial port. * We interact with it by running arm-none-eabi-gdb with commands. * No separate GDB server process is needed. */ export declare class BlackMagicBackend extends ProbeBackend { readonly type: "blackmagic"; readonly displayName = "Black Magic Probe"; private config; private processManager; constructor(config: Partial, processManager: ProcessManager); /** Execute GDB commands against the Black Magic Probe */ private gdbExec; getDeviceInfo(): Promise; halt(): Promise; resume(): Promise; reset(halt?: boolean): Promise; step(): Promise; readMemory(address: number, length: number): Promise; writeMemory(address: number, value: number): Promise; readAllRegisters(): Promise; readRegister(name: string): Promise; flash(filePath: string, baseAddress?: number): Promise; erase(): Promise; setBreakpoint(address: number): Promise; clearBreakpoints(): Promise; executeRaw(commands: string[]): Promise; startGDBServer(): Promise<{ success: boolean; message: string; }>; stopGDBServer(): { success: boolean; message: string; }; isGDBServerRunning(): boolean; getGDBServerStatus(): GDBServerInfo; getGDBServerOutput(_lines?: number): string[]; supportsRTT(): boolean; isDeviceConfigured(): boolean; getDeviceName(): string; setDevice(device: string): void; listDevices(): Promise; dispose(): void; } //# sourceMappingURL=blackmagic.d.ts.map