import { IncomingMessage } from '../models/Message'; export interface SocketMessageEvent { (message: IncomingMessage): void | Promise; } export interface MessageDeliveredEvent { (userId: string, messageKey: string): void | Promise; } export interface MessageUpdateEvent { (contactId: string, messageKey: string): void | Promise; } export interface TypingStatusMessage { (userId: string, status: number): void | Promise; } export interface UserOnlineMessage { (userId: string, isOnline: boolean, timestamp: number): void | Promise; } export interface ConversationUpdateEvent { (userId: string): void | Promise; } /** * Define callbacks for realtime events. * * For usage, see {@link ApplozicClient} */ export interface SocketEventListener { onConnect?: () => void | Promise; onConversationDeleted?: ConversationUpdateEvent; onConversationDeliveredAndRead?: ConversationUpdateEvent; onConversationReadFromOtherSource?: SocketMessageEvent; onConversationRead?: ConversationUpdateEvent; onMessageDeleted?: MessageUpdateEvent; onMessageDelivered?: MessageDeliveredEvent; onMessageRead?: MessageUpdateEvent; onMessageReceived?: SocketMessageEvent; onMessageSentUpdate?: SocketMessageEvent; onMessageSent?: SocketMessageEvent; onTypingStatus?: TypingStatusMessage; onUserActivated?: SocketMessageEvent; onUserBlocked?: SocketMessageEvent; onUserConnect?: SocketMessageEvent; onUserDeactivated?: SocketMessageEvent; onUserDisconnect?: SocketMessageEvent; onUserOnlineStatus?: UserOnlineMessage; onUserUnblocked?: SocketMessageEvent; }