/// import type { PromiseMessageConfig } from "../../types/client"; import type { ConnectionConfig } from "../../types/connection"; import type { ChatStatus } from "../../types/chat/ChatStatus"; import type { BotStatus } from "../../types/bot/BotStatus"; import ICommandController from "../command/ICommandController"; import IMediaMessage from "../message/IMediaMessage"; import IMessage from "../message/IMessage"; import IAuth from "../bot/IAuth"; import ICommand from "../command/ICommand"; import IChat from "../chat/IChat"; import IUser from "../user/IUser"; import IBot from "../bot/IBot"; import IPromiseMessages from "./IPromiseMessage"; import IClientEvents from "./IClientEvents"; export default interface IClient extends IClientEvents { /** Bot */ bot: IBot; /** Configuração */ config: ConnectionConfig; /** * Vezes que o bot reconectou */ reconnectTimes: number; /** Espera de mensagens */ promiseMessages: IPromiseMessages; /** Controlador de comandos */ commandController: ICommandController; get id(): string; set id(id: string); get status(): BotStatus; set status(status: BotStatus); /** Configura os eventos do cliente */ configEvents(): void; /** @returns Controlador de comando do cliente */ getCommandController(): ICommandController; /** Define o controlador de comando do cliente */ setCommandController(controller: ICommandController): void; /** Define os comandos do bot * @param commands Comandos que será injetado */ setCommands(commands: ICommand[]): void; /** @returns Retorna os comandos do bot */ getCommands(): ICommand[]; /** Adiciona um comando na lista de comandos * @param command Comando que será adicionado */ addCommand(command: ICommand): void; /** Remove um comando na lista de comandos * @param command Comando que será removido */ removeCommand(command: ICommand): boolean; /** Procura um comando no texto */ searchCommand(text: string): ICommand | null; /** Execução do comando */ runCommand(command: ICommand, message: IMessage, type?: string): any; /** 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: number | 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 bot */ stop(reason?: any): Promise; /** Adiciona uma reação na mensagem * @param message Mensagem * @param reaction Reação */ addReaction(message: IMessage, reaction?: string): Promise; /** Remove a reação da mensagem * @param message Mensagem que terá sua reação removida */ removeReaction(message: IMessage): Promise; /** Adiciona animações na reação da mensagem * @param message Mensagem que receberá a animação * @param reactions Reações em sequência * @param interval Intervalo entre cada reação * @param maxTimeout Maximo de tempo reagindo */ addAnimatedReaction(message: IMessage, reactions: string[], interval?: number, maxTimeout?: number): (reactionStop?: string) => Promise; /** Marca uma mensagem como visualizada * @param message Mensagem que será visualizada */ readMessage(message: IMessage): Promise; /** Edita o texto de uma mensagem enviada * @param message Mensagem que será editada * @param text Novo texto da mensagem */ editMessage(message: IMessage, text: string): Promise; /** Envia uma mensagem * @param message Menssagem que será enviada * @returns Retorna o conteudo enviado */ send(message: IMessage): Promise; /** Envia uma mensagem * @param chat Sala de bate-papo onde irá ser enviado a mensagem * @param message Mensagem que será enviada * @param mention Mensagem que será mencionada */ sendMessage(chat: IChat | string, message: string | IMessage, mention?: IMessage): Promise; /** Aguarda uma mensagem ser recebida em uma sala de bate-papo * @param chatId Sala de bate-papo que irá receber a mensagem * @param config Configuração do aguardo da mensagem */ awaitMessage(chat: IChat | string, config: Partial): 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(message: IMediaMessage): 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 a imagem de perfil do bot * @param image Imagem de perfil do bot */ setBotProfile(image: Buffer): Promise; /** Adiciona uma sala de bate-papo * @param chat Sala de bate-papo */ addChat(chat: IChat | string): Promise; /** Remove uma sala de bate-papo * @param chat Sala de bate-papo */ removeChat(chat: IChat | string): 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 | string, user: IUser | string): 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 | string, user: IUser | string): 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 | string, user: IUser | string): 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 | string, user: IUser | string): 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 | string, 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 | string): Promise; /** * @param chat Sala de bate-papo * @returns Retorna uma sala de bate-papo */ getChat(chat: IChat | string): 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 | string): 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 | string, name: string): Promise; /** * @param chat Sala de bate-papo * @returns Retorna a descrição da sala de bate-papo */ getChatDescription(chat: IChat | string): 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 | string, description: string): Promise; /** * @param chat Sala de bate-papo * @returns Retorna a imagem de perfil da sala de bate-papo */ getChatProfile(chat: IChat | string): 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 | string, profile: Buffer): Promise; /** * @param chat Sala de bate-papo * @returns Retorna os usuários de uma sala de bate-papo */ getChatUsers(chat: IChat | string): Promise>; /** * @param chat Sala de bate-papo * @returns Retorna os administradores de uma sala de bate-papo */ getChatAdmins(chat: IChat | string): Promise>; /** * @param chat Sala de bate-papo * @returns Retorna o lider da sala de bate-papo */ getChatLeader(chat: IChat | string): 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 | string): Promise; /** Remove um usuário * @param user Usuário */ removeUser(user: IUser | string): Promise; /** * @param user Usuário * @returns Retorna um usuário */ getUser(user: IUser | string): Promise; /** Define um usuário * @param user Usuário */ setUser(user: IUser | string): Promise; /** * @param user Usuário * @returns Retorna o nome do usuário */ getUserName(user: IUser | string): Promise; /** Define o nome do usuário * @param user Usuário * @param name Nome do usuário */ setUserName(user: IUser | string, name: string): Promise; /** * @param user Usuário * @returns Retorna a descrição do usuário */ getUserDescription(user: IUser | string): Promise; /** Define a descrição do usuário * @param user Usuário * @param description Descrição do usuário */ setUserDescription(user: IUser | string, description: string): Promise; /** * @param user Usuário * @returns Retorna a foto de perfil do usuário */ getUserProfile(user: IUser | string): Promise; /** Define a imagem de perfil do usuário * @param user Usuário * @param profile Imagem de perfil do usuário */ setUserProfile(user: IUser | string, profile: Buffer): Promise; /** Desbloqueia um usuário * @param user Usuário */ unblockUser(user: IUser | string): Promise; /** Bloqueia um usuário * @param user Usuário */ blockUser(user: IUser | string): 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; }