UNPKG

ui-framework-jps

Version:

A simple UI framework for state management and UI components

78 lines (77 loc) 3.58 kB
import { ChatLog, Invitation, InviteType, JoinLeft, Message, MessageReceived, Priority, SimpleAttachment } from "./Types"; import { ChatEmitter } from "./ChatEmitter"; import { ChatReceiver } from "./ChatReceiver"; import { ChatEventListener } from "./ChatEventListener"; import { StateManager } from "../state/interface/StateManager"; import { ChatUserEventListener } from "./ChatUserEventListener"; import { UnreadMessageCountListener } from "./UnreadMessageCountListener"; export declare class ChatManager implements ChatReceiver, ChatEmitter { private static _instance; private static chatLogKey; private static blockedListKey; private static favouriteListKey; protected chatLogs: ChatLog[]; protected localStorage: StateManager; protected blockedList: string[]; protected favouriteList: string[]; protected loggedInUsers: string[]; protected chatListeners: ChatEventListener[]; protected chatUserListeners: ChatUserEventListener[]; private currentUsername; private unreadListener; private constructor(); static getInstance(): ChatManager; addChatEventHandler(receiver: ChatEventListener): void; addChatUserEventHandler(receiver: ChatUserEventListener): void; isUserLoggedIn(username: string): boolean; receiveUserList(users: string[]): void; addUserToBlockedList(username: string): void; removeUserFromBlockedList(username: string): void; isUserInBlockedList(username: string): boolean; addUserToFavouriteList(username: string): void; removeUserFromFavouriteList(username: string): void; isUserInFavouriteList(username: string): boolean; getFavouriteUserList(): string[]; getBlockedUserList(): string[]; setCurrentUser(username: string): void; getCurrentUser(): string; receiveJoinedRoom(users: JoinLeft): void; receivedLeftRoom(users: JoinLeft): void; receiveInvitation(invite: Invitation): void; receiveLogin(username: string): void; receiveLogout(username: string): void; receiveDecline(room: string, username: string, type: number): void; setUnreadCountListener(listener: UnreadMessageCountListener): void; touchChatLog(room: string): void; getChatLog(room: string): ChatLog | null; receiveMessage(message: Message, wasOffline?: boolean): void; receiveQueuedInvites(invites: any): void; receiveQueuedMessages(messages: any): void; joinChat(room: string): void; leaveChat(room: string): void; login(): void; logout(): void; declineInvite(room: string): void; sendInvite(to: string, room: string, type?: InviteType, requiresAcceptDecline?: boolean, subject?: string): void; sendMessage(room: string, content: string, priority: Priority | undefined, simpleAttachement: SimpleAttachment | undefined, attachment: any | undefined): Message | null; getChatLogs(): ChatLog[]; startChatWithUser(username: string): string | null; doesChatAlreadyExistWithUser(username: string): boolean; clearAllChatLogs(): void; clearAllUserLists(): void; reset(): void; private saveLogs; private saveBlockedList; private saveFavouriteList; private ensureChatLogExists; private getExistingChatLogWithUser; private computeRoomName; private ensureChatLogExistsWithUser; private doesChatRoomExist; private emitUnreadMessageCountChanged; private addMessageToChatLog; private messageReceivedInChatLog; private addSenderToRoomIfNotAlreadyPresent; private removeChatLog; receiveMessageReceived(message: MessageReceived): void; }