import { Room as WechatyRoom, Contact as WechatyUser, Wechaty, Message } from 'wechaty'; import { MatrixRoom, MatrixUser } from 'matrix-appservice-bridge'; import { WechatyManager } from './wechaty-manager'; import { AppserviceManager } from './appservice-manager'; import { Manager } from './manager'; interface WechatyRoomData { consumerId?: string; direct?: boolean; matrixUserId?: string; /** * 2. If wechatyRoomId is set, then this room is a group room, linked to the wechatyRoomId as well. */ wechatyRoomId?: string; } interface WechatyUserData { consumerId: string; wechatyUserId: string; } interface DirectMessageUserPair { user: MatrixUser; service: MatrixUser; } export declare class MiddleManager extends Manager { private wechatyManager; private appserviceManager; constructor(); teamManager(managers: { wechatyManager: WechatyManager; appserviceManager: AppserviceManager; }): void; matrixUser(wechatyUser: WechatyUser): Promise; matrixUser(matrixUserId: string): Promise; /** * Get wechaty.userSelf() for consumerId */ wechatyUser(consumerId: string): Promise; /** * Get binded wechaty contact from the direct message room */ wechatyUser(room: MatrixRoom): Promise; /** * Get the mapped wechaty contact from the matrix user */ wechatyUser(user: MatrixUser): Promise; /** * Group Room */ matrixRoom(wechatyRoom: WechatyRoom): Promise; /** * Direct Message Room */ matrixRoom(wechatyUser: WechatyUser): Promise; wechatyRoom(room: MatrixRoom): Promise; protected generateMatrixUser(wechatyUser: WechatyUser, userData: WechatyUserData): Promise; /** * Room: Group Room * User: Direct Message Room */ protected generateMatrixRoom(wechatyRoomOrUser: WechatyRoom | WechatyUser, roomData: WechatyRoomData): Promise; setDirectMessageRoom(matrixRoom: MatrixRoom, data: WechatyRoomData): Promise; /** * See: Issue #4 - https://github.com/wechaty/matrix-appservice-wechaty/issues/4 * - https://github.com/matrix-org/matrix-js-sdk/issues/653#issuecomment-420808454 */ isDirectMessageRoom(matrixRoom: MatrixRoom): Promise; /** * FIXME: Huan(202003) study how to know a matrix room is direct message room */ protected fixmeTest(matrixRoom: MatrixRoom): Promise; directMessageUserPair(matrixRoom: MatrixRoom): Promise; /** * Send message from service bot to the bridge consumer * Send message from user to the bridge consumer */ directMessageToMatrixConsumer(message: string | Message, from: WechatyUser | Wechaty): Promise; /** * Direct Message Room from AppService Bot to Matrix Consumer (User) */ adminRoom(forConsumerIdOrWechaty: string | Wechaty): Promise; } export {}; //# sourceMappingURL=middle-manager.d.ts.map