export type SessionStatus = 'online' | 'offline'; export interface ClientInfo { sessionId: string; name?: string; userAgent?: string; connectedAt: number; disconnectedAt?: number; status: SessionStatus; messageCount: number; deviceId?: string; } export interface WsMessage { type: string; sessionId: string; payload: unknown; timestamp: number; id?: string; } export interface LogEntry { type: 'console' | 'eval-response'; level: string; content: unknown[]; timestamp: number; sessionId: string; } export declare class RemoteConsoleClient { private ws; private serverUrl; private deviceId?; private apiToken?; private sessions; private logCache; private subscribedSessions; private pendingEvals; private connected; private reconnectTimer; private connectPromise; private connectResolve; /** Set when the server explicitly rejected our credentials. Stop retrying. */ private unauthorized; /** Resolves when console-history for a session finishes loading */ private historyPromises; constructor(serverUrl: string, deviceId?: string, apiToken?: string); connect(): Promise; private scheduleReconnect; ensureConnected(): Promise; isConnected(): boolean; disconnect(): void; private handleMessage; private parseLogMessages; private parseConsoleMessage; getSessions(statusFilter?: 'all' | 'online' | 'offline'): ClientInfo[]; getSession(sessionId: string): ClientInfo | undefined; /** * Subscribe to a session and wait for history replay to complete. */ subscribeTo(sessionId: string): Promise; /** * Get logs for a session. Auto-subscribes if needed. */ getLogs(sessionId: string, options?: { limit?: number; level?: string; search?: string; }): Promise; /** * Execute JavaScript code on a live session. * Returns a Promise that resolves with the eval result. */ executeCode(sessionId: string, code: string, timeout?: number): Promise<{ success: boolean; result?: unknown; error?: string; }>; private send; private log; private waitFor; }