import { EventEmitter } from "events";
/**
 * A TCP proxy server that sits between the RTT telnet port and external consumers
 * (like Trice or Pigweed detokenizer). It tees the data so both the MCP server
 * and external tools can consume the RTT stream simultaneously.
 *
 * Architecture:
 *   JLinkGDBServer:19021 (RTT) --> TelnetProxy:19400 --> multiple clients
 *                                                    --> internal buffer (for MCP)
 */
export declare class TelnetProxy extends EventEmitter {
    private server;
    private sourceSocket;
    private clients;
    private listenPort;
    private sourceHost;
    private sourcePort;
    private running;
    private dataBuffer;
    private maxBufferLines;
    constructor(listenPort?: number, sourceHost?: string, sourcePort?: number);
    /** Start the proxy: connect to source and listen for clients */
    start(): Promise<{
        success: boolean;
        message: string;
    }>;
    private connectToSource;
    private startServer;
    /** Stop the proxy */
    stop(): void;
    /** Get buffered data */
    getBuffer(lines?: number): string[];
    /** Clear buffer */
    clearBuffer(): void;
    /** Write data to source (device) */
    writeToSource(data: string): boolean;
    /** Get proxy status */
    getStatus(): {
        running: boolean;
        listenPort: number;
        sourceConnected: boolean;
        clientCount: number;
        bufferedLines: number;
    };
}
//# sourceMappingURL=telnet-proxy.d.ts.map