import { EventEmitter } from "events";
export interface ParsedLogLine {
    /** Device uptime timestamp like "00:03:09.516,100" */
    deviceTime: string | null;
    /** Log level: dbg, inf, wrn, err */
    level: string | null;
    /** Module name like "main", "inference_engine" */
    module: string | null;
    /** The actual log message */
    message: string;
    /** Original raw line */
    raw: string;
}
export interface RTTMessage {
    channel: number;
    timestamp: Date;
    /** Raw data from the device */
    rawData: string;
    /** Cleaned lines (ANSI stripped, headers removed) */
    lines: ParsedLogLine[];
}
/**
 * Connects to RTT via telnet (when JLinkGDBServer is running).
 * JLinkGDBServer exposes RTT channel 0 on a configurable telnet port (default 19021).
 *
 * Automatically strips ANSI escape codes and SEGGER banners.
 * Parses Zephyr-style log lines into structured fields.
 */
export declare class RTTClient extends EventEmitter {
    private socket;
    private host;
    private port;
    private messages;
    /** Flat buffer of all parsed log lines for searching */
    private allLines;
    private maxMessages;
    private maxLines;
    private reconnectTimer;
    private connected;
    private lineBuffer;
    constructor(host?: string, port?: number);
    /** Connect to RTT telnet port */
    connect(): Promise<void>;
    /** Disconnect */
    disconnect(): void;
    /** Send data to RTT down-channel (host → device) */
    send(data: string): boolean;
    /** Get recent log lines as formatted text */
    getLines(count?: number): string[];
    /** Search/filter log lines */
    search(opts: {
        level?: string;
        module?: string;
        pattern?: string;
        count?: number;
    }): ParsedLogLine[];
    /** Get messages (for backward compat / resource access) */
    getMessages(count?: number): RTTMessage[];
    /** Clear all buffers */
    clearBuffer(): void;
    /** Check connection status */
    isConnected(): boolean;
    /** Get buffer stats */
    getStats(): {
        connected: boolean;
        lineCount: number;
        messageCount: number;
        host: string;
        port: number;
    };
}
//# sourceMappingURL=rtt-client.d.ts.map