import { ReceivedMessage } from 'stanza/protocol'; import { Client } from './client'; import { NamedAgent } from './types/named-agent'; import { GenesysMediaMessage, StreamingClientExtension } from './types/interfaces'; import { Emitter } from 'strict-event-emitter'; declare type MessageWithMediaMessage = { from?: string; id?: string; to?: string; mediaMessage: GenesysMediaMessage; }; export declare type MediaMessageEvent = MessageWithMediaMessage & { fromMyUser: boolean; fromMyClient: boolean; }; export declare type MessengerEvents = { mediaMessage: [MediaMessageEvent]; }; export declare class MessengerExtension extends Emitter implements StreamingClientExtension { private client; private stanzaInstance; constructor(client: Client, stanzaInstance: NamedAgent); get bareJid(): string; handleStanzaInstanceChange(stanzaInstance: NamedAgent): void; isMediaMessage(msg: any): msg is MessageWithMediaMessage; handleMessage(msg: ReceivedMessage): void; /** * @param msg * @returns Promise */ broadcastMessage(msg: MessageWithMediaMessage): Promise; get expose(): MessengerExtensionApi; } export interface MessengerExtensionApi extends Pick, 'on' | 'off' | 'once' | 'addListener' | 'removeListener'> { broadcastMessage(msg: MessageWithMediaMessage): Promise; } export {};