/// import type { ChatStatus } from "../../types/chat/ChatStatus"; import type { BotStatus } from "../../types/bot/BotStatus"; import type { Media } from "../../types/message/Media"; import IReactionMessage from "../message/IReactionMessage"; import IMessage from "../message/IMessage"; import IChat from "../chat/IChat"; import IUser from "../user/IUser"; import IBotEvents from "./IBotEvents"; import IAuth from "./IAuth"; /** Interface do bot */ export default interface IBot { /** ID do bot */ id: string; status: BotStatus; /** Gerenciador de eventos */ ev: IBotEvents; /** Conectar bot * @param auth Autenticação do bot */ connect(auth: IAuth | string): Promise; /** * * Conectar bot pelo código * @param phoneNumber Número do bot * @param auth Autenticação do bot */ connectByCode(phoneNumber: string, auth: IAuth | string): Promise; /** Reconectar bot * @param alert Alerta que está reconectando */ reconnect(alert?: boolean): Promise; /** Parar bot * @param reason Razão por parar o bot */ stop(reason?: any): Promise; /** Marca uma mensagem como visualizada * @param message Mensagem que será visualizada */ readMessage(message: IMessage): Promise; /** Adiciona uma reação na mensagem * @param message Mensagem * @param reaction Reação */ addReaction(message: IReactionMessage): Promise; /** Remove a reação da mensagem * @param Mensagem que terá sua reação removida */ removeReaction(message: IReactionMessage): Promise; /** Edita o texto de uma mensagem enviada * @param message Mensagem com o texto editado */ editMessage(message: IMessage): Promise; /** Enviar mensagem * @param message Mensagem que será enviada */ send(message: IMessage): Promise; /** Remover mensagem * @param message Mensagem que será removida da sala de bate-papo */ removeMessage(message: IMessage): Promise; /** Deletar mensagem * @param message Mensagem que será deletada da sala de bate-papos */ deleteMessage(message: IMessage): Promise; /** Retorna a stream da mídia * @param message Mídia que será baixada * @returns Stream da mídia */ downloadStreamMessage(media: Media): Promise; /** @returns Retorna o nome do bot */ getBotName(): Promise; /** Define o nome do bot * @param name Nome do bot */ setBotName(name: string): Promise; /** @returns Retorna a descrição do bot */ getBotDescription(): Promise; /** Define a descrição do bot * @param description Descrição do bot */ setBotDescription(description: string): Promise; /** @returns Retorna foto de perfil do bot */ getBotProfile(): Promise; /** Define foto de perfil do bot * @param image Foto de perfil do bot */ setBotProfile(image: Buffer): Promise; /** Adiciona uma sala de bate-papo * @param chat Sala de bate-papo */ addChat(chat: IChat): Promise; /** Remove uma sala de bate-papo * @param chat Sala de bate-papo */ removeChat(chat: IChat): Promise; /** Adiciona um novo usuário a uma sala de bate-papo * @param chat Sala de bate-papo * @param user Usuário */ addUserInChat(chat: IChat, user: IUser): Promise; /** Adiciona um novo usuário a uma sala de bate-papo * @param chat Sala de bate-papo * @param user Usuário */ removeUserInChat(chat: IChat, user: IUser): Promise; /** Promove há administrador um usuário da sala de bate-papo * @param chat Sala de bate-papo * @param user Usuário */ promoteUserInChat(chat: IChat, user: IUser): Promise; /** Remove a administração um usuário da sala de bate-papo * @param chat Sala de bate-papo * @param user Usuário */ demoteUserInChat(chat: IChat, user: IUser): Promise; /** Altera o status da sala de bate-papo * @param chat Sala de bate-papo * @param status Status da sala de bate-papo */ changeChatStatus(chat: IChat, status: ChatStatus): Promise; /** Cria uma sala de bate-papo * @param chat Sala de bate-papo */ createChat(chat: IChat): Promise; /** Sai de uma sala de bate-papo * @param chat Sala de bate-papo */ leaveChat(chat: IChat): Promise; /** * @param chat Sala de bate-papo * @returns Retorna uma sala de bate-papo */ getChat(chat: IChat): Promise; /** Define uma sala de bate-papo * @param chat Sala de bate-papo */ setChat(chat: IChat): Promise; /** * @param chat Sala de bate-papo * @returns Retorna o nome da sala de bate-papo */ getChatName(chat: IChat): Promise; /** Define o nome da sala de bate-papo * @param chat Sala de bate-papo * @param name Nome da sala de bate-papo */ setChatName(chat: IChat, name: string): Promise; /** * @param chat Sala de bate-papo * @returns Retorna a descrição da sala de bate-papo */ getChatDescription(chat: IChat): Promise; /** Define a descrição da sala de bate-papo * @param chat Sala de bate-papo * @param description Descrição da sala de bate-papo */ setChatDescription(chat: IChat, description: string): Promise; /** * @param chat Sala de bate-papo * @returns Retorna a imagem de perfil da sala de bate-papo */ getChatProfile(chat: IChat): Promise; /** Define a imagem de perfil da sala de bate-papo * @param chat Sala de bate-papo * @param profile Imagem de perfil da sala de bate-papo */ setChatProfile(chat: IChat, profile: Buffer): Promise; /** * @param chat Sala de bate-papo * @returns Retorna os usuários de uma sala de bate-papo */ getChatUsers(chat: IChat): Promise>; /** * @param chat Sala de bate-papo * @returns Retorna os administradores de uma sala de bate-papo */ getChatAdmins(chat: IChat): Promise>; /** * @param chat Sala de bate-papo * @returns Retorna o lider da sala de bate-papo */ getChatLeader(chat: IChat): Promise; /** * @returns Retorna as sala de bate-papo que o bot está */ getChats(): Promise>; /** Define as salas de bate-papo que o bot está * @param chats Salas de bate-papo */ setChats(chats: Record): Promise; /** Adiciona um novo usuário * @param user Usuário */ addUser(user: IUser): Promise; /** Remove um usuário * @param user Usuário */ removeUser(user: IUser): Promise; /** * @param user Usuário * @returns Retorna um usuário */ getUser(user: IUser): Promise; /** Define um usuário * @param user Usuário */ setUser(user: IUser): Promise; /** * @param user Usuário * @returns Retorna o nome do usuário */ getUserName(user: IUser): Promise; /** Define o nome do usuário * @param user Usuário * @param name Nome do usuário */ setUserName(user: IUser, name: string): Promise; /** * @param user Usuário * @returns Retorna a descrição do usuário */ getUserDescription(user: IUser): Promise; /** Define a descrição do usuário * @param user Usuário * @param description Descrição do usuário */ setUserDescription(user: IUser, description: string): Promise; /** * @param user Usuário * @returns Retorna a foto de perfil do usuário */ getUserProfile(user: IUser): Promise; /** Define a foto de perfil do usuário * @param user Usuário * @param profile Imagem de perfil do usuário */ setUserProfile(user: IUser, profile: Buffer): Promise; /** Desbloqueia um usuário * @param user Usuário */ unblockUser(user: IUser): Promise; /** Bloqueia um usuário * @param user Usuário */ blockUser(user: IUser): Promise; /** @returns Retorna a lista de usuários do bot */ getUsers(): Promise>; /** Define a lista de usuários do bot * @param users Usuários */ setUsers(users: Record): Promise; }