import { ProbeBackend, CommandResult, GDBServerInfo } from "./backend";
import { ProcessManager } from "../utils/process-manager";
export interface JLinkConfig {
    installDir: string;
    device: string;
    interface: "SWD" | "JTAG";
    speed: number;
    serialNumber?: string;
    gdbPort: number;
    rttTelnetPort: number;
    swoTelnetPort: number;
}
export declare class JLinkBackend extends ProbeBackend {
    readonly type: "jlink";
    readonly displayName = "SEGGER J-Link";
    private config;
    private processManager;
    private gdbOutputBuffer;
    constructor(config: Partial<JLinkConfig>, processManager: ProcessManager);
    private get jlinkExe();
    private get gdbServerExe();
    /** Core execution: spawn JLinkExe with commands piped to stdin */
    private exec;
    getDeviceInfo(): Promise<CommandResult>;
    halt(): Promise<CommandResult>;
    resume(): Promise<CommandResult>;
    reset(halt?: boolean): Promise<CommandResult>;
    step(): Promise<CommandResult>;
    readMemory(address: number, length: number): Promise<CommandResult>;
    writeMemory(address: number, value: number): Promise<CommandResult>;
    readAllRegisters(): Promise<CommandResult>;
    readRegister(name: string): Promise<CommandResult>;
    flash(filePath: string, baseAddress?: number): Promise<CommandResult>;
    erase(): Promise<CommandResult>;
    setBreakpoint(address: number): Promise<CommandResult>;
    clearBreakpoints(): Promise<CommandResult>;
    executeRaw(commands: string[]): Promise<CommandResult>;
    startGDBServer(): Promise<{
        success: boolean;
        message: string;
    }>;
    stopGDBServer(): {
        success: boolean;
        message: string;
    };
    isGDBServerRunning(): boolean;
    getGDBServerStatus(): GDBServerInfo;
    getGDBServerOutput(lines?: number): string[];
    isDeviceConfigured(): boolean;
    getDeviceName(): string;
    setDevice(device: string): void;
    listDevices(): Promise<CommandResult>;
    supportsRTT(): boolean;
    getRTTPort(): number;
    dispose(): void;
}
//# sourceMappingURL=jlink.d.ts.map