package org.bigbluebutton.core.api;
import java.util.Map;
import org.bigbluebutton.common.messages.*;
public interface IBigBlueButtonInGW {
void handleJsonMessage(String json);
void handleBigBlueButtonMessage(IBigBlueButtonMessage message);
void isAliveAudit(String aliveID);
void statusMeetingAudit(String meetingID);
void endMeeting(String meetingId);
void endAllMeetings();
void destroyMeeting(String meetingID);
void getAllMeetings(String meetingID);
void lockSettings(String meetingID, Boolean locked, Map<String, Boolean> lockSettigs);
// Polling
void votePoll(String meetingId, String userId, String pollId, Integer questionId, Integer answerId);
void startPoll(String meetingId, String requesterId, String pollId, String pollType);
void stopPoll(String meetingId, String userId, String pollId);
void showPollResult(String meetingId, String requesterId, String pollId, Boolean show);
// Lock
void initLockSettings(String meetingID, Map<String, Boolean> settings);
void sendLockSettings(String meetingID, String userId, Map<String, Boolean> settings);
void getLockSettings(String meetingId, String userId);
void lockUser(String meetingId, String requesterID, boolean lock, String internalUserID);
// Users
void validateAuthToken(String meetingId, String userId, String token, String correlationId, String sessionId);
void registerUser(String roomName, String userid, String username, String role, String externUserID, String authToken, String avatarURL);
void userEmojiStatus(String meetingId, String userId, String emojiStatus);
void shareWebcam(String meetingId, String userId, String stream);
void unshareWebcam(String meetingId, String userId, String stream);
void setUserStatus(String meetingID, String userID, String status, Object value);
void getUsers(String meetingID, String requesterID);
void userLeft(String meetingID, String userID, String sessionId);
void userJoin(String meetingID, String userID, String authToken);
void getCurrentPresenter(String meetingID, String requesterID);
void checkIfAllowedToShareDesktop(String meetingID, String userID);
void assignPresenter(String meetingID, String newPresenterID, String newPresenterName, String assignedBy);
void setRecordingStatus(String meetingId, String userId, Boolean recording);
void getRecordingStatus(String meetingId, String userId);
void userConnectedToGlobalAudio(String voiceConf, String userid, String name);
void userDisconnectedFromGlobalAudio(String voiceConf, String userid, String name);
// Voice
void initAudioSettings(String meetingID, String requesterID, Boolean muted);
void muteAllExceptPresenter(String meetingID, String requesterID, Boolean mute);
void muteAllUsers(String meetingID, String requesterID, Boolean mute);
void isMeetingMuted(String meetingID, String requesterID);
void muteUser(String meetingID, String requesterID, String userID, Boolean mute);
void lockMuteUser(String meetingID, String requesterID, String userID, Boolean lock);
void ejectUserFromVoice(String meetingID, String userId, String ejectedBy);
void ejectUserFromMeeting(String meetingId, String userId, String ejectedBy);
void voiceUserJoined(String voiceConfId, String voiceUserId, String userId, String callerIdName,
String callerIdNum, Boolean muted, String avatarURL, Boolean talking);
void voiceUserLeft(String meetingId, String userId);
void voiceUserLocked(String meetingId, String userId, Boolean locked);
void voiceUserMuted(String meetingId, String userId, Boolean muted);
void voiceUserTalking(String meetingId, String userId, Boolean talking);
void voiceRecording(String meetingId, String recordingFile,
String timestamp, Boolean recording);
// Presentation
void clear(String meetingID);
void removePresentation(String meetingID, String presentationID);
void getPresentationInfo(String meetingID, String requesterID, String replyTo);
void sendCursorUpdate(String meetingID, double xPercent, double yPercent);
void resizeAndMoveSlide(String meetingID, double xOffset, double yOffset, double widthRatio, double heightRatio);
void gotoSlide(String meetingID, String page);
void sharePresentation(String meetingID, String presentationID, boolean share);
void getSlideInfo(String meetingID, String requesterID, String replyTo);
void sendConversionUpdate(String messageKey, String meetingId,
String code, String presId, String presName);
void sendPageCountError(String messageKey, String meetingId,
String code, String presId, int numberOfPages,
int maxNumberPages, String presName);
void sendSlideGenerated(String messageKey, String meetingId,
String code, String presId, int numberOfPages,
int pagesCompleted, String presName);
void sendConversionCompleted(String messageKey, String meetingId,
String code, String presId, int numPages, String presName, String presBaseUrl);
// Layout
void getCurrentLayout(String meetingID, String requesterID);
void broadcastLayout(String meetingID, String requesterID, String layout);
void lockLayout(String meetingID, String setById,
boolean lock, boolean viewersOnly,
String layout);
// Chat
void getChatHistory(String meetingID, String requesterID, String replyTo);
void sendPublicMessage(String meetingID, String requesterID, Map<String, String> message);
void sendPrivateMessage(String meetingID, String requesterID, Map<String, String> message);
// Whiteboard
void sendWhiteboardAnnotation(String meetingID, String requesterID, java.util.Map<String, Object> annotation);
void requestWhiteboardAnnotationHistory(String meetingID, String requesterID, String whiteboardId, String replyTo);
void clearWhiteboard(String meetingID, String requesterID, String whiteboardId);
void undoWhiteboard(String meetingID, String requesterID, String whiteboardId);
void enableWhiteboard(String meetingID, String requesterID, Boolean enable);
void isWhiteboardEnabled(String meetingID, String requesterID, String replyTo);
// Caption
void sendCaptionHistory(String meetingID, String requesterID);
void updateCaptionOwner(String meetingID, String locale, String localeCode, String ownerID);
void editCaptionHistory(String meetingID, String userID, Integer startIndex, Integer endIndex, String locale, String localeCode, String text);
// DeskShare
void deskShareStarted(String confId, String callerId, String callerIdName);
void deskShareStopped(String conferenceName, String callerId, String callerIdName);
void deskShareRTMPBroadcastStarted(String conferenceName, String streamname, int videoWidth, int videoHeight, String timestamp);
void deskShareRTMPBroadcastStopped(String conferenceName, String streamname, int videoWidth, int videoHeight, String timestamp);
void deskShareGetInfoRequest(String meetingId, String requesterId, String replyTo);
}