@rocket.chat/apps-engine
Version:
The engine code for the Rocket.Chat Apps which manages, runs, translates, coordinates and all of that.
72 lines (71 loc) • 5.19 kB
TypeScript
import type { IExtraRoomParams } from '../../definition/accessors/ILivechatCreator';
import type { IDepartment, ILivechatMessage, ILivechatRoom, ILivechatTransferData, IVisitor } from '../../definition/livechat';
import type { IMessage } from '../../definition/messages';
import type { IUser } from '../../definition/users';
import { BaseBridge } from './BaseBridge';
export declare abstract class LivechatBridge extends BaseBridge {
doIsOnline(departmentId?: string, appId?: string): boolean;
doIsOnlineAsync(departmentId?: string, appId?: string): Promise<boolean>;
doCreateMessage(message: ILivechatMessage, appId: string): Promise<string>;
doGetMessageById(messageId: string, appId: string): Promise<ILivechatMessage>;
doUpdateMessage(message: ILivechatMessage, appId: string): Promise<void>;
doCreateVisitor(visitor: IVisitor, appId: string): Promise<string>;
doFindVisitors(query: object, appId: string): Promise<Array<IVisitor>>;
doFindVisitorById(id: string, appId: string): Promise<IVisitor | undefined>;
doFindVisitorByEmail(email: string, appId: string): Promise<IVisitor | undefined>;
doFindVisitorByToken(token: string, appId: string): Promise<IVisitor | undefined>;
doFindVisitorByPhoneNumber(phoneNumber: string, appId: string): Promise<IVisitor | undefined>;
doTransferVisitor(visitor: IVisitor, transferData: ILivechatTransferData, appId: string): Promise<boolean>;
doCreateRoom(visitor: IVisitor, agent: IUser, appId: string, extraParams?: IExtraRoomParams): Promise<ILivechatRoom>;
doCloseRoom(room: ILivechatRoom, comment: string, closer: IUser | undefined, appId: string): Promise<boolean>;
doCountOpenRoomsByAgentId(agentId: string, appId: string): Promise<number>;
doFindOpenRoomsByAgentId(agentId: string, appId: string): Promise<Array<ILivechatRoom>>;
doFindRooms(visitor: IVisitor, departmentId: string | null, appId: string): Promise<Array<ILivechatRoom>>;
doFindDepartmentByIdOrName(value: string, appId: string): Promise<IDepartment | undefined>;
doFindDepartmentsEnabledWithAgents(appId: string): Promise<Array<IDepartment>>;
do_fetchLivechatRoomMessages(appId: string, roomId: string): Promise<Array<IMessage>>;
doSetCustomFields(data: {
token: IVisitor['token'];
key: string;
value: string;
overwrite: boolean;
}, appId: string): Promise<number>;
/**
* @deprecated please use the `isOnlineAsync` method instead.
* In the next major, this method will be `async`
*/
protected abstract isOnline(departmentId?: string, appId?: string): boolean;
protected abstract isOnlineAsync(departmentId?: string, appId?: string): Promise<boolean>;
protected abstract createMessage(message: ILivechatMessage, appId: string): Promise<string>;
protected abstract getMessageById(messageId: string, appId: string): Promise<ILivechatMessage>;
protected abstract updateMessage(message: ILivechatMessage, appId: string): Promise<void>;
protected abstract createVisitor(visitor: IVisitor, appId: string): Promise<string>;
/**
* @deprecated This method does not adhere to the conversion practices applied
* elsewhere in the Apps-Engine and will be removed in the next major version.
* Prefer other methods that fetch visitors.
*/
protected abstract findVisitors(query: object, appId: string): Promise<Array<IVisitor>>;
protected abstract findVisitorById(id: string, appId: string): Promise<IVisitor | undefined>;
protected abstract findVisitorByEmail(email: string, appId: string): Promise<IVisitor | undefined>;
protected abstract findVisitorByToken(token: string, appId: string): Promise<IVisitor | undefined>;
protected abstract findVisitorByPhoneNumber(phoneNumber: string, appId: string): Promise<IVisitor | undefined>;
protected abstract transferVisitor(visitor: IVisitor, transferData: ILivechatTransferData, appId: string): Promise<boolean>;
protected abstract createRoom(visitor: IVisitor, agent: IUser, appId: string, extraParams?: IExtraRoomParams): Promise<ILivechatRoom>;
protected abstract closeRoom(room: ILivechatRoom, comment: string, closer: IUser | undefined, appId: string): Promise<boolean>;
protected abstract countOpenRoomsByAgentId(agentId: string, appId: string): Promise<number>;
protected abstract findOpenRoomsByAgentId(agentId: string, appId: string): Promise<Array<ILivechatRoom>>;
protected abstract findRooms(visitor: IVisitor, departmentId: string | null, appId: string): Promise<Array<ILivechatRoom>>;
protected abstract findDepartmentByIdOrName(value: string, appId: string): Promise<IDepartment | undefined>;
protected abstract findDepartmentsEnabledWithAgents(appId: string): Promise<Array<IDepartment>>;
protected abstract _fetchLivechatRoomMessages(appId: string, roomId: string): Promise<Array<IMessage>>;
protected abstract setCustomFields(data: {
token: IVisitor['token'];
key: string;
value: string;
overwrite: boolean;
}, appId: string): Promise<number>;
private hasReadPermission;
private hasWritePermission;
private hasMultiplePermission;
}