softchatjs-core
Version:
Javascript client for JS based frameworks
114 lines (111 loc) • 3.95 kB
text/typescript
import { a as Connection } from './Broadcast-Duu_7bUS.mjs';
import { Reaction, ReadMessages, Prettify, SendMessageGenerics, Message, EditedMessage, Conversation, MediaType } from './types.mjs';
import { Emoticon } from './emoticon.type.mjs';
import 'isomorphic-ws';
import 'events';
declare class MessageClient {
private static message_client;
private connection;
private screen;
private idleTimers;
constructor(connection: Connection, conversationId: string);
static getInstace(connection: Connection, conversationId: string): MessageClient;
private getPublicMethods;
private getConversationType;
private rotateAndInsertMessageList;
private _createMessage;
private editConversationListMetaMessage;
private _editMessage;
_updateMessageReactions(conversationId: string, messageId: string, reactions: Reaction[], config?: {
ws: boolean;
to: string;
}): void;
private storeEditedMessage;
/**
*
* @param conversationId
* @summary Updates the list of conversations with typing indicator flags
*/
private showTypingIndicator;
private _sendTypingNotification;
private _sendStoppedTypingNotification;
private addMessageToConversation;
private sendReadNotification;
private _clearActiveTypingIndicator;
private _updateConversationListMetaMessages;
readMessages(conversationId: string, data: ReadMessages): void;
clearUserUnreadNotifications(conversationId: string, ids: string[]): void;
private wsOnError;
private deleteMessageFromConversationMeta;
reactToMessage({ conversationId, messageId, reactions, to, }: {
conversationId: string;
messageId: string;
reactions: Reaction[];
to: string;
}): void;
sendMessage(newMessage: Prettify<SendMessageGenerics<Message>>): void;
updateBroadcastList(payload: {
broadcastListId: string;
participants: string[];
name: string;
}): void;
deleteBroadcastList(payload: {
broadcastListId: string;
participants: string[];
name: string;
}): void;
broadcastMessage({ broadcastListId, participantsIds, newMessage }: {
broadcastListId: string;
participantsIds: string[];
newMessage: Prettify<SendMessageGenerics<Message>>;
}): void;
editMessage(message: Omit<EditedMessage, "from">): void;
sendTypingNotification(uid: string): void;
sendStoppedTypingNotification(uid: string): void;
deleteMessage(messageId: string, to: string, conversationId: string): void;
getMessages(page?: number): Promise<Message[]>;
getBroadcastListMessages(page?: number): Promise<Message[]>;
getConversation(conversationId: string): Promise<Conversation | null>;
getEmojiList(): Promise<Emoticon[]>;
uploadAttachment({ base64, fileKey, }: {
base64: string;
fileKey: string;
}): Promise<{
success: boolean;
data: {
url: string;
};
message: string;
} | undefined>;
private isReadableStream;
uploadFile(uri: string | NodeJS.ReadableStream | Buffer | File, meta: {
filename: string;
mimeType: string;
ext: string;
}): Promise<{
link: string;
success: boolean;
fileSize: number;
} | {
link: string;
success: boolean;
fileSize: string;
}>;
uploadAttachmentV2({ base64, fileKey, mediaType, mimeType, }: {
base64: string;
fileKey: string;
mediaType: MediaType;
mimeType: string;
}): Promise<{
success: boolean;
data: {
uploadUrl: string;
s3Link: string;
};
message: string;
} | undefined>;
setActiveConversation(): Promise<void>;
unSetActiveConversation(): Promise<void>;
messageEventHandler(event: MessageEvent): null | undefined;
}
export { MessageClient as default };