#import <Cordova/CDV.h>


@interface CustomUI : CDVPlugin

- (void)seturl:(CDVInvokedUrlCommand*)command;

- (void)loginUsername:(CDVInvokedUrlCommand*)command;
- (void)loginUserid:(CDVInvokedUrlCommand*)command;
- (void)guestLogin:(CDVInvokedUrlCommand*)command;

/* Create User */
- (void)setCometChatURL:(CDVInvokedUrlCommand*)command;

- (void)createUser:(CDVInvokedUrlCommand*)command;
- (void)removeUserByID:(CDVInvokedUrlCommand*)command;
- (void)updateDisplayName:(CDVInvokedUrlCommand*)command;
- (void)addFriends:(CDVInvokedUrlCommand*)command;
- (void)removeFriends:(CDVInvokedUrlCommand*)command;

/* Subscribe OneonOne */
- (void)subscribe:(CDVInvokedUrlCommand*)command;

/*  Send message to User */
- (void)sendMessage:(CDVInvokedUrlCommand*)command;

/*   Send image to user with the given image path */
- (void)sendImageWithPath:(CDVInvokedUrlCommand*)command;

/*  Send image to user with given image data */
- (void)sendImageWithData:(CDVInvokedUrlCommand*)command;

/*   Send audio to user with the given image path */
- (void)sendAudioWithPath:(CDVInvokedUrlCommand*)command;

/*  Send audio to user with given image data */
- (void)sendAudioWithData:(CDVInvokedUrlCommand*)command;

/*   Send file to user with the given image path */
- (void)sendFileWithPath:(CDVInvokedUrlCommand*)command;

/*   Send video to user with the given video path */
- (void)sendVideoWithPath:(CDVInvokedUrlCommand*)command;

/*  Send video to user with given video data */
- (void)sendVideoWithURL:(CDVInvokedUrlCommand*)command;

/* Broadcast message to users of given userIDs*/
- (void)broadcastMessage:(CDVInvokedUrlCommand*)command;

/* Send Whiteboard Request */
- (void)sendWhiteBoardRequest:(CDVInvokedUrlCommand*)command;

/* Send Writeboard Request */
- (void)sendWriteBoardRequest:(CDVInvokedUrlCommand*)command;

/* Send Writeboard Ack */
- (void)sendWriteBoardAck:(CDVInvokedUrlCommand*)command;

/* Change status of logged-in user. Refer to STATUS_OPTIONS enum in CometChat.h file for status values. */
- (void)changeStatus:(CDVInvokedUrlCommand*)command;

/* Change status message of logged-in user. */
- (void)changeStatusMessage:(CDVInvokedUrlCommand*)command;

/* Get Plugin Info if user is logged-in */
- (void)getPluginInfo:(CDVInvokedUrlCommand*)command;

/* Get user information for userID */
- (void)getUserInfo:(CDVInvokedUrlCommand*)command;

/* Get online users of the site */
- (void)getOnlineUsersWithResponse:(CDVInvokedUrlCommand*)command;

/* Get Single Player Game URL */
- (void)getSinglePlayerGamesUrl:(CDVInvokedUrlCommand*)command;

/* Get all announcements of the site */
- (void)getAllAnnouncements:(CDVInvokedUrlCommand*)command;

/* Block User */
- (void)blockUser:(CDVInvokedUrlCommand*)command;

/* Unblock User */
- (void)unblockUser:(CDVInvokedUrlCommand*)command;

/* Delete User's History */
- (void)deleteUserHistory:(CDVInvokedUrlCommand*)command;

/* Get List of blocked users */
- (void)getBlockedUsersWithResponse:(CDVInvokedUrlCommand*)command;

/* Get chat history of user specified by userID */
- (void)getChatHistoryOfUser:(CDVInvokedUrlCommand*)command;

/* Send Stickers */
- (void)sendStickers:(CDVInvokedUrlCommand*)command;

/* Translate OneOnOne and Chatroom Messages */
- (void)setTranslationLanguage:(CDVInvokedUrlCommand*)command;

/* Check whether the user is logged-in */
//+ (BOOL)isLoggedIn DEPRECATED_MSG_ATTRIBUTE("This method is deprecated");

/* Unsubscribe from OneOnChat */
- (void)unsubscribe:(CDVInvokedUrlCommand*)command;

/* Logout */
- (void)logoutWithSuccess:(CDVInvokedUrlCommand*)command;

/* Returns the SDK version */
- (void)getSDKVersion:(CDVInvokedUrlCommand*)command;

/* Check CometChat installation directory */
- (void)isCometChatInstalled:(CDVInvokedUrlCommand*)command;

/* isTyping */
- (void)isTyping:(CDVInvokedUrlCommand*)command;

/* Deliver - Read Receipt Feature */
- (void)sendDeliverdReceipt:(CDVInvokedUrlCommand*)command;

- (void)sendReadReceipt:(CDVInvokedUrlCommand*)command;


/*======== Chatroom Methods =======*/
/* Subscribe to Chatroom chat:
 BOOL mode indicating whether to strip html tags or not */
- (void)subscribeToChatroomWithMode:(CDVInvokedUrlCommand*)command;

/* Join chatroom:
 specify chatroomID and password */
- (void)joinChatroom:(CDVInvokedUrlCommand*)command;

/* Create Chatroom having specified type, name and password */
- (void)createChatRoom:(CDVInvokedUrlCommand*)command;

/* Get Chatroom Member list */
- (void)getChatroomMembers:(CDVInvokedUrlCommand*)command;

/* Delete Chatroom passing chatroomID */
- (void)deleteChatRoom:(CDVInvokedUrlCommand*)command;

/* Invite users to specified chatroom */
- (void)inviteUsers:(CDVInvokedUrlCommand*)command;

/* Send message to currently joined chatroom */
- (void)sendChatroomMessage:(CDVInvokedUrlCommand*)command;

/* Send Stickers */
- (void)sendChatroomStickers:(CDVInvokedUrlCommand*)command;

/*  Send image in chatroom with the given image path */
- (void)sendImageWithPathChatroom:(CDVInvokedUrlCommand*)command;

/*  Send image in chatroom with given image data */
- (void)sendImageWithDataChatroom:(CDVInvokedUrlCommand*)command;

/*  Send audio in chatroom with the given image path */
- (void)sendAudioWithPathChatroom:(CDVInvokedUrlCommand*)command;

/*  Send video in chatroom with the given image path */
- (void)sendVideoWithPathChatroom:(CDVInvokedUrlCommand*)command;

/*  Send video in chatroom with given video url */
- (void)sendVideoWithURLChatroom:(CDVInvokedUrlCommand*)command;

/*  Send file in chatroom with given file path */
- (void)sendFileWithPathChatroom:(CDVInvokedUrlCommand*)command;

/* Get chatroom list from server */
- (void)getAllChatrooms:(CDVInvokedUrlCommand*)command;

/* Leave currently joined chatroom */
- (void)leaveChatroom:(CDVInvokedUrlCommand*)command;

/* Unsubscribe from chatroom */
- (void)unsubscribeFromChatRoom:(CDVInvokedUrlCommand*)command;

/* Get currently joined chatroom id */
- (void)getCurrentChatroom:(CDVInvokedUrlCommand*)command;

/* Check whether the user is subscribed to given chatroom */
- (void)isSubscribedToChatroom:(CDVInvokedUrlCommand*)command;

/* Gives SHA1 value of specified string */
-(void)getSHA1ValueOfString:(CDVInvokedUrlCommand*)command;

@end