import { PeerConnectionMonitor } from "../monitors/PeerConnectionMonitor"; import { ClientEventPayloadMap } from "./ClientEventPayloadProvider"; export type RtcPeerConnectionEventerContext = { peerConnection: RTCPeerConnection; monitor: PeerConnectionMonitor; peerConnectionId: string; appData?: Record; }; export declare class RtcPeerConnectionBinding { readonly peerConnection: RTCPeerConnection; readonly monitor: PeerConnectionMonitor; constructor(peerConnection: RTCPeerConnection, monitor: PeerConnectionMonitor); unbind(): void; bind(): void; private _onDataChannel; private _onIceCandidateError; private _onIceConnectionStateChange; private _onConnectionStateChange; private _onIceCandidate; private _onIceGatheringStateChange; private _onNegotiationNeeded; private _onSignalingStateChange; private _onTrack; private _fireEvent; } export declare function bindMediaStreamTrackEvents(options: { pcMonitor: PeerConnectionMonitor; track: MediaStreamTrack; fireEvent: (eventType: K, payload: ClientEventPayloadMap[K]) => void; attachments?: Record; }): void; export declare function bindRtcDataChannelEvents(options: { monitor: PeerConnectionMonitor; dataChannel: RTCDataChannel; fireEvent: (eventType: K, payload: ClientEventPayloadMap[K]) => void; }): void;