@hsaadawy/ngx-chat
Version:
47 lines (46 loc) • 2.41 kB
TypeScript
import { XmppChatAdapter } from '../xmpp-chat-adapter.service';
import { AbstractXmppPlugin } from './abstract-xmpp-plugin';
import { ServiceDiscoveryPlugin } from './service-discovery.plugin';
export declare const MUC_SUB_FEATURE_ID = "urn:xmpp:mucsub:0";
export declare enum MUC_SUB_EVENT_TYPE {
presence = "urn:xmpp:mucsub:nodes:presence",
messages = "urn:xmpp:mucsub:nodes:messages",
affiliations = "urn:xmpp:mucsub:nodes:affiliations",
subscribers = "urn:xmpp:mucsub:nodes:subscribers",
config = "urn:xmpp:mucsub:nodes:config",
subject = "urn:xmpp:mucsub:nodes:subject",
system = "urn:xmpp:mucsub:nodes:system"
}
/**
* support for https://docs.ejabberd.im/developer/xmpp-clients-bots/extensions/muc-sub/
*/
export declare class MucSubPlugin extends AbstractXmppPlugin {
private readonly xmppChatAdapter;
private readonly serviceDiscoveryPlugin;
private readonly supportsMucSub$;
constructor(xmppChatAdapter: XmppChatAdapter, serviceDiscoveryPlugin: ServiceDiscoveryPlugin);
onBeforeOnline(): PromiseLike<void>;
private determineSupportForMucSub;
onOffline(): void;
subscribeRoom(roomJid: string, nodes?: string[]): Promise<void>;
unsubscribeRoom(roomJid: string): Promise<void>;
/**
* A room moderator can unsubscribe others providing the their jid as attribute to the information query (iq)
* see: https://docs.ejabberd.im/developer/xmpp-clients-bots/extensions/muc-sub/#unsubscribing-from-a-muc-room
* @param roomJid for the room to be unsubscribed from
* @param jid user id to be unsubscribed
*/
unsubscribeJidFromRoom(roomJid: string, jid: string): void;
/**
* A user can query the MUC service to get their list of subscriptions.
* see: https://docs.ejabberd.im/developer/xmpp-clients-bots/extensions/muc-sub/#g dd ddetting-list-of-subscribed-rooms
*/
getSubscribedRooms(): Promise<any[]>;
/**
* A subscriber or room moderator can get the list of subscribers by sending <subscriptions/> request directly to the room JID.
* see: https://docs.ejabberd.im/developer/xmpp-clients-bots/extensions/muc-sub/#getting-list-of-subscribers-of-a-room
* @param roomJid of the room the get a subscriber list from
*/
getSubscribers(roomJid: string): void;
retrieveSubscriptions(): Promise<Map<string, string[]>>;
}