export interface AgentStatus {
    agentName: string;
    version: string;
    profile: string;
    busy: boolean;
    stopRequested: boolean;
    compacting: boolean;
    activeSession: "general" | "coding";
    codingSession: {
        id: string | null;
        status: string;
        taskSummary: string;
        cwd?: string;
    };
    queueSize: number;
    uptime: number;
    channels: string[];
    pid: number;
}
export interface TuiEvent {
    type: "reply" | "status" | "error" | "ack";
    timestamp: string;
    message?: string;
    commandId?: string;
    commandState?: "queued" | "running" | "completed" | "failed";
}
export interface LogEntry {
    timestamp: string;
    level: string;
    category: string;
    message: string;
}
export declare function readTuiPort(): number | null;
export declare class TuiClient {
    private baseUrl;
    readonly sender: string;
    constructor(port: number, host?: string);
    getStatus(): Promise<AgentStatus>;
    getLogs(count?: number): Promise<LogEntry[]>;
    sendMessage(text: string): Promise<{
        ok: boolean;
        messageId?: string;
        error?: string;
    }>;
    restart(): Promise<{
        ok: boolean;
        message: string;
    }>;
    upgrade(tag?: string): Promise<{
        upgraded: boolean;
        currentVersion: string;
        latestVersion: string;
        message: string;
    }>;
    rdp(ttlMinutes?: number): Promise<{
        url?: string;
        expiresAt?: string;
        ttlMinutes?: number;
        error?: string;
    }>;
    switchSession(target: "general" | "coding"): Promise<{
        ok: boolean;
        activeSession: string;
    }>;
    wake(): Promise<{
        ok: boolean;
        message: string;
    }>;
    connectEvents(onEvent: (event: TuiEvent) => void, onError: (err: Error) => void): {
        close: () => void;
    };
}
//# sourceMappingURL=client.d.ts.map