import { NappletMessage, WebrtcEvent, WebrtcOpenResult, WebrtcOpenRequest } from '@napplet/core'; export { WebrtcApi, WebrtcClosedEvent, WebrtcDirectScope, WebrtcEvent, WebrtcMessageEvent, WebrtcOpenRequest, WebrtcOpenResult, WebrtcPeerEvent, WebrtcRoomScope, WebrtcScope, WebrtcSession, WebrtcState, WebrtcStateEvent } from '@napplet/core'; /** * Napplet NAP webrtc types entrypoint. * * @module */ /** * @napplet/nap/webrtc -- Runtime-mediated WebRTC message types. * * NAP-WEBRTC lets napplets request runtime-owned WebRTC data sessions while the * runtime owns signaling transport, signing/encryption, SDP, ICE, and * RTCPeerConnection lifecycle. */ /** The NAP domain name for WebRTC messages. */ declare const DOMAIN: "webrtc"; /** Base interface for all WebRTC NAP messages. */ interface WebrtcMessage extends NappletMessage { type: `webrtc.${string}`; } /** Request a runtime-owned WebRTC session. */ interface WebrtcOpenMessage extends WebrtcMessage { type: 'webrtc.open'; id: string; request: WebrtcOpenRequest; } /** Result of `webrtc.open`. */ interface WebrtcOpenResultMessage extends WebrtcMessage { type: 'webrtc.open.result'; id: string; session?: WebrtcOpenResult['session']; error?: string; } /** Send an opaque application payload over a session. */ interface WebrtcSendMessage extends WebrtcMessage { type: 'webrtc.send'; id: string; sessionId: string; payload: unknown; } /** Result of `webrtc.send`. */ interface WebrtcSendResultMessage extends WebrtcMessage { type: 'webrtc.send.result'; id: string; error?: string; } /** Close a WebRTC session. */ interface WebrtcCloseMessage extends WebrtcMessage { type: 'webrtc.close'; id: string; sessionId: string; reason?: string; } /** Result of `webrtc.close`. */ interface WebrtcCloseResultMessage extends WebrtcMessage { type: 'webrtc.close.result'; id: string; error?: string; } /** Runtime-pushed WebRTC event. */ interface WebrtcEventMessage extends WebrtcMessage { type: 'webrtc.event'; event: WebrtcEvent; } /** Napplet -> runtime WebRTC messages. */ type WebrtcOutboundMessage = WebrtcOpenMessage | WebrtcSendMessage | WebrtcCloseMessage; /** Runtime -> napplet WebRTC messages. */ type WebrtcInboundMessage = WebrtcOpenResultMessage | WebrtcSendResultMessage | WebrtcCloseResultMessage | WebrtcEventMessage; /** All WebRTC NAP message types. */ type WebrtcNapMessage = WebrtcOutboundMessage | WebrtcInboundMessage; export { DOMAIN, type WebrtcCloseMessage, type WebrtcCloseResultMessage, type WebrtcEventMessage, type WebrtcInboundMessage, type WebrtcMessage, type WebrtcNapMessage, type WebrtcOpenMessage, type WebrtcOpenResultMessage, type WebrtcOutboundMessage, type WebrtcSendMessage, type WebrtcSendResultMessage };