UNPKG

xmppjs-chat-bot

Version:
46 lines (45 loc) 2.85 kB
/// <reference types="xmpp__jid" /> /// <reference types="node" /> import type { Bot } from './bot'; import { Logger } from './logger'; import type { Stanza, MessageStanza, PresenceStanza } from './stanza'; import type { Reference } from './reference'; import type { Handler } from './handlers/abstract'; import EventEmitter from 'events'; import { JID } from '@xmpp/jid'; import { RoomUser } from './user'; declare interface Room { on: (((event: 'room_joined', listener: (user: RoomUser) => void) => this) & ((event: 'room_parted', listener: (user: RoomUser) => void) => this) & ((event: 'room_nick_changed', listener: (user: RoomUser, previousJID: JID) => void) => this) & ((event: 'room_roster_initialized', listener: (OnlineUsers: RoomUser[]) => void) => this) & ((event: 'room_message', listener: (stanza: MessageStanza, fromUser: RoomUser) => void) => this) & ((event: 'room_mentionned', listener: (stanza: MessageStanza, fromUser: RoomUser) => void) => this) & ((event: 'room_command', listener: (command: string, parameters: string[], stanza: MessageStanza, fromUser: RoomUser) => void) => this)); emit: (((event: 'room_joined', user: RoomUser) => boolean) & ((event: 'room_parted', user: RoomUser) => boolean) & ((event: 'room_nick_changed', user: RoomUser, previousJID: JID) => boolean) & ((event: 'room_roster_initialized', onlineUsers: RoomUser[]) => boolean) & ((event: 'room_message', stanza: MessageStanza, fromUser: RoomUser) => boolean) & ((event: 'room_mentionned', stanza: MessageStanza, fromUser: RoomUser) => boolean) & ((event: 'room_command', command: string, parameters: string[], stanza: MessageStanza, fromUser: RoomUser) => boolean)); } declare class Room extends EventEmitter { protected readonly bot: Bot; protected readonly roomJID: JID; protected state: 'offline' | 'online'; protected userJID: JID | undefined; protected readonly roster: Map<string, RoomUser>; readonly logger: Logger; protected readonly handlers: { [id: string]: Handler; }; constructor(bot: Bot, roomJID: JID); reset(): void; isOnline(): boolean; onlineUserCount(): number; getOnlineUsers(): RoomUser[]; get myNick(): string | undefined; get jid(): JID; join(nick: string): Promise<void>; part(): Promise<void>; changeNickname(nick: string): Promise<void>; sendGroupchat(msg: string, references?: Reference[]): Promise<void>; moderateMessage(stanza: MessageStanza, reason?: string): Promise<void>; receiveStanza(stanza: Stanza): void; receivePresenceStanza(stanza: PresenceStanza): void; protected receiveMessageStanza(stanza: MessageStanza): void; attachHandler(handler: Handler): void; detachHandlers(): void; getHandlerById(id: string): Handler | null; detachHandlerById(id: string): void; } export { Room, RoomUser };