@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
TypeScript
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>;
}