export {};
import { EventEmitter } from "events";
import { Core } from "../Core";
import { Logger } from "./Logger";
/**
* @class
* @name Events
* @description
* This module fires every events that come from Rainbow.
* To receive them, you need to subscribe individually to each of the following events
* @fires Events#rainbow_onxmmpeventreceived
* @fires Events#rainbow_onxmmprequestsent
* @fires Events#rainbow_onrainbowversionwarning
* @fires Events#rainbow_onmessageserverreceiptreceived
* @fires Events#rainbow_onmessagereceiptreceived
* @fires Events#rainbow_onmessagereceiptreadreceived
* @fires Events#rainbow_onmessagereceived
* @fires Events#rainbow_onsendmessagefailed
* @fires Events#rainbow_oncontactpresencechanged
* @fires Events#rainbow_onpresencechanged
* @fires Events#rainbow_onconversationremoved
* @fires Events#rainbow_onconversationchanged
* @fires Events#rainbow_onloadConversationHistoryCompleted
* @fires Events#rainbow_onallmessagedremovedfromconversationreceived
* @fires Events#rainbow_onchatstate
* @fires Events#rainbow_oncontactinformationchanged
* @fires Events#rainbow_onuserinformationchanged
* @fires Events#rainbow_onuserpasswordconfig
* @fires Events#rainbow_onuserinvitereceived
* @fires Events#rainbow_onuserinviteaccepted
* @fires Events#rainbow_onuserinvitecanceled
* @fires Events#rainbow_oncontactremovedfromnetwork
* @fires Events#rainbow_onbubbleaffiliationchanged
* @fires Events#rainbow_onbubblepresencechanged
* @fires Events#rainbow_onbubbleownaffiliationchanged
* @fires Events#rainbow_onbubbledeleted
* @fires Events#rainbow_onbubbleinvitationreceived
* @fires Events#rainbow_onbubblecontactinvitationreceived
* @fires Events#rainbow_onbubbleconferencestartedreceived
* @fires Events#rainbow_onbubbleconferencestoppedreceived
* @fires Events#rainbow_onbubbleconferencedelegatereceived
* @fires Events#rainbow_onbubbleconferenceupdated
* @fires Events#rainbow_onbubblecustomdatachanged
* @fires Events#rainbow_onbubblecontactchanged
* @fires Events#rainbow_onbubbletopicchanged
* @fires Events#rainbow_onbubbleprivilegechanged
* @fires Events#rainbow_onbubbleavatarchanged
* @fires Events#rainbow_onbubblenamechanged
* @fires Events#rainbow_onopeninvitationupdate
* @fires Events#rainbow_ongroupcreated
* @fires Events#rainbow_ongroupdeleted
* @fires Events#rainbow_ongroupupdated
* @fires Events#rainbow_onuseraddedingroup
* @fires Events#rainbow_onuserremovedfromgroup
* @fires Events#rainbow_onstarted
* @fires Events#rainbow_onstopped
* @fires Events#rainbow_onready
* @fires Events#rainbow_onerror
* @fires Events#rainbow_onconnected
* @fires Events#rainbow_onconnectionerror
* @fires Events#rainbow_ondisconnected
* @fires Events#rainbow_onreconnecting
* @fires Events#rainbow_onfailed
* @fires Events#rainbow_oncallupdated
* @fires Events#rainbow_onconferenced
* @fires Events#rainbow_ontelephonystatuschanged
* @fires Events#rainbow_onnomadicstatusevent
* @fires Events#rainbow_onvoicemessageupdated
* @fires Events#rainbow_onvoicemessagesinfo
* @fires Events#rainbow_oncallforwarded
* @fires Events#rainbow_onchannelmessagereceived
* @fires Events#rainbow_onchannelmyappreciationreceived
* @fires Events#rainbow_onchannelmessagedeletedreceived
* @fires Events#rainbow_onprofilefeatureupdated
* @fires Events#rainbow_onfilecreated
* @fires Events#rainbow_onfileupdated
* @fires Events#rainbow_onfiledeleted
* @fires Events#rainbow_onthumbnailcreated
* @fires Events#rainbow_onwebinarupdated
* @fires Events#rainbow_onchannelupdated
* @fires Events#rainbow_onchannelusersubscription
* @fires Events#rainbow_onmediapropose
* @fires Events#rainbow_onmediaretract
* @fires Events#rainbow_oncalllogupdated
* @fires Events#rainbow_oncalllogackupdated
* @fires Events#rainbow_onfavoritecreated
* @fires Events#rainbow_onfavoriteupdated
* @fires Events#rainbow_onfavoritedeleted
* @fires Events#rainbow_onxmpperror
* @fires Events#rainbow_onalertmessagereceived
* @fires Events#rainbow_onbubblescontainercreated
* @fires Events#rainbow_onbubblescontainerupdated
* @fires Events#rainbow_onbubblescontainerdeleted
* @fires Events#rainbow_onusertokenrenewfailed
* @fires Events#rainbow_onusertokenwillexpire
* @fires Events#rainbow_onbubblepollcreated
* @fires Events#rainbow_onbubblepolldeleted
* @fires Events#rainbow_onbubblepollpublished
* @fires Events#rainbow_onbubblepollunpublished
* @fires Events#rainbow_onbubblepollterminated
* @fires Events#rainbow_onbubblepollupdated
* @fires Events#rainbow_onbubblepollvoted
* @fires Events#rainbow_onconnectorcommand
* @fires Events#rainbow_onconnectorconfig
* @fires Events#rainbow_onconnectorcommandended
* @fires Events#rainbow_onconnectorimportstatus
* @fires Events#rainbow_onEWSgetevents
* @fires Events#rainbow_onEWSgetautoreply
* @fires Events#rainbow_onrbvoicerawevent
* @fires Events#rainbow_onjoincompanyinvitereceived
* @fires Events#rainbow_onjoincompanyrequestreceived
* @fires Events#rainbow_onlogsconfig
* @fires Events#rainbow_ontaskcreated
* @fires Events#rainbow_ontaskupdated
* @fires Events#rainbow_ontaskdeleted
* @fires Events#rainbow_on429BackoffError
* @fires Events#rainbow_onrainbowcpaasreceived
* @fires Events#rainbow_ontelephonyrvcp
* @fires Events#rainbow_ontelephonyrvcppresence
* @fires Events#rainbow_ontelephonypcg
* @fires Events#rainbow_ontelephonypcgpresence
* @fires Events#rainbow_onconference
* @fires Events#rainbow_onpinmanagement
* @fires Events#rainbow_onvoicemailreceived
*/
declare class Events {
get logEmitter(): EventEmitter;
set logEmitter(value: EventEmitter);
_logger: Logger;
_filterCallback: Function;
_evReceiver: EventEmitter;
_evPublisher: EventEmitter;
_core: Core;
private _logEmitter;
sdkPublicEventsName: string[];
waitBeforeBubblePresenceSend: boolean;
constructor(_logger: Logger, _filterCallback: Function);
listenerData(): {
receiver: {
listenerCount: number;
};
emitter: {
listenerCount: number;
};
};
get iee(): EventEmitter;
get eee(): EventEmitter;
/**
* @method onLog
* @public
* @memberof Events
* @instance
* @param {string} event The event name to subscribe
* @param {function} callback The function called when the even is fired
* @return {Object} The events instance to be able to chain subscriptions
* @description
* Subscribe to an event raised when a log is done.
*/
onLog(event: any, callback: any): EventEmitter;
/**
* @method removeLogListener
* @public
* @memberof Events
* @instance
* @param {string} event The event name to unsubscribe
* @param {function} callback The function called when the even is fired
* @return {Object} The events instance to be able to chain subscriptions
* @description
* Unsubscribe to an event raised when a log is done.
*/
removeLogListener(event: any, callback: any): EventEmitter<[never]>;
/**
* @method on
* @public
* @memberof Events
* @instance
* @param {string} event The event name to subscribe
* @param {function} callback The function called when the even is fired
* @return {Object} The events instance to be able to chain subscriptions
* @description
* Subscribe to an event
*/
on(event: any, callback: any): EventEmitter;
/**
* @method emit
* @private
* @memberof Events
* @instance
* @param {string} eventName name for the event
* @param {any} data arguments for the event
* @return nothing
* @description
* Emit an event.
*/
emit(eventName: any, data: any): void;
/**
* @method removeListener
* @public
* @memberof Events
* @instance
* @param {string} eventName The event name to unsubscribe
* @param {function} listener The listener called when the even is fired
* @return {Object} The events instance to be able to remove a subscription from chain.
* @description
* Unsubscribe to an event
*/
removeListener(eventName: string | symbol, listener: (...args: any[]) => void): EventEmitter;
/**
* @method once
* @public
* @memberof Events
* @instance
* @param {string} event The event name to subscribe
* @param {function} callback The function called when the even is fired
* @return {Object} The events instance to be able to chain subscriptions
* @description
* Subscribe to an event only one time (fired only the first time)
*/
once(event: string, callback: (...args: any[]) => void): EventEmitter;
publish(event: string, data: any): void;
/**
* @method publishEvent
* @private
* @memberof Events
* @instance
* @param {...*} args all arguments for the event
* @return nothing
* @description
* Add "rainbow_on" prefix to event name, print it human readable, and raises it.
*/
publishEvent(...args: any[]): void;
setCore(_core: Core): void;
}
export { Events };