@rocket.chat/apps-engine
Version:
The engine code for the Rocket.Chat Apps which manages, runs, translates, coordinates and all of that.
265 lines (264 loc) • 8.68 kB
TypeScript
import type { IPreEmailSentContext } from '../../definition/email';
import type { IExternalComponent } from '../../definition/externalComponent';
import type { ILivechatEventContext, ILivechatRoom, ILivechatTransferEventContext, IVisitor } from '../../definition/livechat';
import type { IMessage, IMessageDeleteContext, IMessageFollowContext, IMessagePinContext, IMessageReactionContext, IMessageReportContext, IMessageStarContext } from '../../definition/messages';
import { AppInterface } from '../../definition/metadata';
import type { IRoom, IRoomUserJoinedContext, IRoomUserLeaveContext } from '../../definition/rooms';
import type { IUIKitResponse, UIKitIncomingInteraction } from '../../definition/uikit';
import type { IUIKitLivechatIncomingInteraction } from '../../definition/uikit/livechat';
import type { IFileUploadContext } from '../../definition/uploads/IFileUploadContext';
import type { IUser, IUserContext, IUserStatusContext } from '../../definition/users';
import type { AppManager } from '../AppManager';
import type { ProxiedApp } from '../ProxiedApp';
interface IListenerExecutor {
[ ]: {
args: [IMessage];
result: boolean;
};
[ ]: {
args: [IMessage];
result: IMessage;
};
[ ]: {
args: [IMessage];
result: IMessage;
};
[ ]: {
args: [IMessage];
result: void;
};
[ ]: {
args: [IMessage];
result: boolean;
};
[ ]: {
args: [IMessageDeleteContext];
result: void;
};
[ ]: {
args: [IMessage];
result: unknown;
};
[ ]: {
args: [IMessage];
result: boolean;
};
[ ]: {
args: [IMessage];
result: IMessage;
};
[ ]: {
args: [IMessage];
result: IMessage;
};
[ ]: {
args: [IMessageReactionContext];
result: void;
};
[ ]: {
args: [IMessageFollowContext];
result: void;
};
[ ]: {
args: [IMessagePinContext];
result: void;
};
[ ]: {
args: [IMessageStarContext];
result: void;
};
[ ]: {
args: [IMessageReportContext];
result: void;
};
[ ]: {
args: [IRoom];
result: boolean;
};
[ ]: {
args: [IRoom];
result: IRoom;
};
[ ]: {
args: [IRoom];
result: IRoom;
};
[ ]: {
args: [IRoom];
result: void;
};
[ ]: {
args: [IRoom];
result: boolean;
};
[ ]: {
args: [IRoom];
result: void;
};
[ ]: {
args: [IRoomUserJoinedContext];
result: void;
};
[ ]: {
args: [IRoomUserJoinedContext];
result: void;
};
[ ]: {
args: [IRoomUserLeaveContext];
result: void;
};
[ ]: {
args: [IRoomUserLeaveContext];
result: void;
};
[ ]: {
args: [IExternalComponent];
result: void;
};
[ ]: {
args: [IExternalComponent];
result: void;
};
[ ]: {
args: [UIKitIncomingInteraction];
result: IUIKitResponse;
};
[ ]: {
args: [IUIKitLivechatIncomingInteraction];
result: IUIKitResponse;
};
[ ]: {
args: [ILivechatRoom];
result: void;
};
/**
* @deprecated please prefer the AppInterface.IPostLivechatRoomClosed event
*/
[ ]: {
args: [ILivechatRoom];
result: void;
};
[ ]: {
args: [ILivechatRoom];
result: void;
};
[ ]: {
args: [ILivechatRoom];
result: void;
};
[ ]: {
args: [ILivechatEventContext];
result: void;
};
[ ]: {
args: [ILivechatEventContext];
result: void;
};
[ ]: {
args: [ILivechatTransferEventContext];
result: void;
};
[ ]: {
args: [IVisitor];
result: void;
};
[ ]: {
args: [IFileUploadContext];
result: void;
};
[ ]: {
args: [IPreEmailSentContext];
result: IUIKitResponse;
};
[ ]: {
args: [IUserContext];
result: void;
};
[ ]: {
args: [IUserContext];
result: void;
};
[ ]: {
args: [IUserContext];
result: void;
};
[ ]: {
args: [IUser];
result: void;
};
[ ]: {
args: [IUser];
result: void;
};
[ ]: {
args: [IUserStatusContext];
result: void;
};
}
export declare class AppListenerManager {
private readonly manager;
private am;
private listeners;
private defaultHandlers;
/**
* Locked events are those who are listed in an app's
* "essentials" list but the app is disabled.
*
* They will throw a EssentialAppDisabledException upon call
*/
private lockedEvents;
constructor(manager: AppManager);
registerListeners(app: ProxiedApp): void;
unregisterListeners(app: ProxiedApp): void;
releaseEssentialEvents(app: ProxiedApp): void;
lockEssentialEvents(app: ProxiedApp): void;
getListeners(int: AppInterface): Array<ProxiedApp>;
isEventBlocked(event: AppInterface): boolean;
executeListener<I extends keyof IListenerExecutor>(int: I, data: IListenerExecutor[I]['args'][0]): Promise<IListenerExecutor[I]['result']>;
private executePreMessageSentPrevent;
private executePreMessageSentExtend;
private executePreMessageSentModify;
private executePostMessageSent;
private executePreMessageDeletePrevent;
private executePostMessageDelete;
private executePreMessageUpdatedPrevent;
private executePreMessageUpdatedExtend;
private executePreMessageUpdatedModify;
private executePostMessageUpdated;
private executePreRoomCreatePrevent;
private executePreRoomCreateExtend;
private executePreRoomCreateModify;
private executePostRoomCreate;
private executePreRoomDeletePrevent;
private executePostRoomDeleted;
private executePreRoomUserJoined;
private executePostRoomUserJoined;
private executePreRoomUserLeave;
private executePostRoomUserLeave;
private executePostExternalComponentOpened;
private executePostExternalComponentClosed;
private executeUIKitInteraction;
private executeUIKitLivechatInteraction;
private executePostLivechatRoomStarted;
private executeLivechatRoomClosedHandler;
private executePostLivechatRoomClosed;
private executePostLivechatAgentAssigned;
private executePostLivechatAgentUnassigned;
private executePostLivechatRoomTransferred;
private executePostLivechatGuestSaved;
private executePostLivechatRoomSaved;
private executePreFileUpload;
private executePreEmailSent;
private executePostMessageReacted;
private executePostMessageFollowed;
private executePostMessagePinned;
private executePostMessageStarred;
private executePostMessageReported;
private executePostUserCreated;
private executePostUserUpdated;
private executePostUserDeleted;
private executePostUserLoggedIn;
private executePostUserLoggedOut;
private executePostUserStatusChanged;
}
export {};