UNPKG

@rocket.chat/apps-engine

Version:

The engine code for the Rocket.Chat Apps which manages, runs, translates, coordinates and all of that.

86 lines (85 loc) 3.43 kB
import type { ILivechatMessage } from '../livechat'; import type { IMessage } from '../messages'; import type { IRoom } from '../rooms'; import type { BlockBuilder } from '../uikit'; import type { AppVideoConference } from '../videoConferences'; import type { IBotUser } from '../users/IBotUser'; import type { IDiscussionBuilder } from './IDiscussionBuilder'; import type { ILivechatCreator } from './ILivechatCreator'; import type { ILivechatMessageBuilder } from './ILivechatMessageBuilder'; import type { IMessageBuilder } from './IMessageBuilder'; import type { IRoomBuilder } from './IRoomBuilder'; import type { IUploadCreator } from './IUploadCreator'; import type { IUserBuilder } from './IUserBuilder'; import type { IVideoConferenceBuilder } from './IVideoConferenceBuilder'; export interface IModifyCreator { /** * Get the creator object responsible for the * Livechat integrations */ getLivechatCreator(): ILivechatCreator; /** * Get the creator object responsible for the upload. */ getUploadCreator(): IUploadCreator; /** * @deprecated please prefer the rocket.chat/ui-kit components * * Gets a new instance of a BlockBuilder */ getBlockBuilder(): BlockBuilder; /** * Starts the process for building a new message object. * * @param data (optional) the initial data to pass into the builder, * the `id` property will be ignored * @return an IMessageBuilder instance */ startMessage(data?: IMessage): IMessageBuilder; /** * Starts the process for building a new livechat message object. * * @param data (optional) the initial data to pass into the builder, * the `id` property will be ignored * @return an IMessageBuilder instance */ startLivechatMessage(data?: ILivechatMessage): ILivechatMessageBuilder; /** * Starts the process for building a new room. * * @param data (optional) the initial data to pass into the builder, * the `id` property will be ignored * @return an IRoomBuilder instance */ startRoom(data?: IRoom): IRoomBuilder; /** * Starts the process for building a new discussion. * * @param data (optional) the initial data to pass into the builder, * the `id` property will be ignored * @return an IDiscussionBuilder instance */ startDiscussion(data?: Partial<IRoom>): IDiscussionBuilder; /** * Starts the process for building a new video conference. * * @param data (optional) the initial data to pass into the builder, * @return an IVideoConferenceBuilder instance */ startVideoConference(data?: Partial<AppVideoConference>): IVideoConferenceBuilder; /** * Starts the process for building a new bot user. * * @param data (optional) the initial data to pass into the builder, * the `id` property will be ignored * @return an IUserBuilder instance */ startBotUser(data?: Partial<IBotUser>): IUserBuilder; /** * Finishes the creating process, saving the object to the database. * * @param builder the builder instance * @return the resulting `id` of the resulting object */ finish(builder: IMessageBuilder | ILivechatMessageBuilder | IRoomBuilder | IDiscussionBuilder | IVideoConferenceBuilder | IUserBuilder): Promise<string>; }