-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescriptionCallback Mozilla RTCSessionDescriptionCallback documentation> 
newRTCSessionDescriptionCallbackSync ::
                                     (MonadIO m) =>
                                       (Maybe RTCSessionDescription -> IO ()) ->
                                         m RTCSessionDescriptionCallback
newRTCSessionDescriptionCallbackSync callback
  = liftIO
      (RTCSessionDescriptionCallback <$>
         syncCallback1 ContinueAsync
           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))
newRTCSessionDescriptionCallbackSync ::
                                     (MonadIO m) =>
                                       (Maybe RTCSessionDescription -> IO ()) ->
                                         m RTCSessionDescriptionCallback
newRTCSessionDescriptionCallbackSync callback
  = liftIO
      (RTCSessionDescriptionCallback <$>
         syncCallback1 ContinueAsync
           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))
newRTCSessionDescriptionCallbackSync callback
  = liftIO
      (RTCSessionDescriptionCallback <$>
         syncCallback1 ContinueAsync
           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))