import type { ConnectRequest, ConnectResponse, DisconnectResponse, DiscoverResponse, SignalingMessage } from "./signaling-types.js"; export type SignalingMessageHandler = (msg: SignalingMessage) => void; /** * Client for the WebRTC signaling server. * * Encapsulates REST API calls (discover, connect, disconnect) and * WebSocket lifecycle (connect, send, message routing, heartbeat). */ export declare class SignalingClient { private ws; private apiUrl; private signalingUrl; private messageHandler; private heartbeatInterval; constructor(apiUrl: string, signalingUrl: string); discoverRobots(): Promise; requestConnection(robotId: string, request: ConnectRequest): Promise; requestDisconnect(robotId: string): Promise; /** Connect to the signaling WebSocket server. */ connectWs(): Promise; /** Set the handler for incoming signaling messages. */ onMessage(handler: SignalingMessageHandler): void; /** Send a signaling message over WebSocket. */ send(message: SignalingMessage): void; /** Send join_room to enter the session room. */ joinRoom(roomId: string, peerId: string, peerType: "frontend" | "robot", sessionId: string): void; /** Send an SDP answer back to the peer. */ sendAnswer(sdp: string, roomId: string, peerId: string, targetPeerId?: string): void; /** Send an ICE candidate to the peer. */ sendIceCandidate(candidate: string, sdpMid: string | null, sdpMLineIndex: number | null, targetPeerId?: string): void; /** Close the signaling WebSocket. */ close(): void; /** Whether the WebSocket is currently connected. */ get isConnected(): boolean; private startHeartbeat; private stopHeartbeat; } //# sourceMappingURL=signaling-client.d.ts.map