UNPKG

@sawport/peers-caller

Version:

WebRTC multi-peer video call library with mesh architecture supporting up to 4 participants

131 lines 4.02 kB
/** * CallSocket - WebSocket signaling management for PeersCaller * Handles all WebSocket communication for call signaling */ import type { SignalingEvents, SignalingIncomingEvents } from "../types"; export declare class CallSocket { private socket; private serverUrl; private socketPath; private token; private connected; private reconnectAttempts; private maxReconnectAttempts; constructor(serverUrl: string, token: string, socketPath?: string); /** * Connect to the WebSocket server */ connect(): Promise<void>; /** * Disconnect from the WebSocket server */ disconnect(): void; /** * Check if socket is connected */ isConnected(): boolean; /** * Emit a signaling event - fire and forget (no response expected) */ emit<K extends keyof SignalingEvents>(event: K, data: Parameters<SignalingEvents[K]>[0]): void; /** * Emit a signaling event and wait for response */ emitWithResponse<K extends keyof SignalingEvents>(event: K, data: Parameters<SignalingEvents[K]>[0], timeoutMs?: number): Promise<any>; /** * Listen for an incoming signaling event (from server) */ on<K extends keyof SignalingIncomingEvents>(event: K, listener: SignalingIncomingEvents[K]): void; /** * Remove an incoming signaling event listener */ off<K extends keyof SignalingIncomingEvents>(event: K, listener?: SignalingIncomingEvents[K]): void; /** * Start a new call */ startCall(conversationId: string, userId: string): Promise<{ success: boolean; participants: string[]; conversationId: string; userId: string; }>; /** * Join a call room for signaling */ joinRoom(conversationId: string, userId: string): Promise<{ participants: string[]; conversationId: string; }>; /** * Leave a call */ leaveCall(conversationId: string, userId: string): Promise<{ conversationId: string; success: boolean; }>; /** * Send WebRTC offer */ sendOffer(to: string, from: string, offer: RTCSessionDescriptionInit, conversationId: string): void; /** * Send WebRTC answer */ sendAnswer(to: string, from: string, answer: RTCSessionDescriptionInit, conversationId: string): void; /** * Send ICE candidate */ sendCandidate(to: string, from: string, candidate: RTCIceCandidateInit, conversationId: string): void; /** * Send participant state update */ sendStateUpdate(to: string, from: string, state: any, conversationId: string): void; /** * End call for specific participant (legacy method) */ endCall(to: string, _from: string, conversationId: string): void; /** * End call for all participants */ endCallForAll(conversationId: string): Promise<void>; /** * Start recording */ startRecording(conversationId: string, recordingId: string): Promise<{ recordingId: string; conversationId: string; }>; /** * Send recording chunk */ sendRecordingChunk(conversationId: string, recordingId: string, chunk: Blob): void; /** * End recording */ endRecording(conversationId: string, recordingId: string): Promise<{ recordingId: string; conversationId: string; success: boolean; }>; /** * Send transcript */ sendTranscript(conversationId: string, userId: string, transcript: string): void; /** * Check call status */ checkCallStatus(conversationId: string, userId: string): Promise<any>; /** * Handle disconnection scenarios */ private handleDisconnection; /** * Get connection health info */ getConnectionInfo(): { connected: boolean; socketId: string | undefined; transport: string | undefined; reconnectAttempts: number; }; } //# sourceMappingURL=CallSocket.d.ts.map