ui-framework-jps
Version:
A simple UI framework for state management and UI components
78 lines (77 loc) • 3.58 kB
TypeScript
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;
}