import { JSONObject, PluginContext } from "kuzzle"; export interface BaseAccount { client: T; options: JSONObject; name: string; } export declare abstract class MessengerClient { protected config: JSONObject; protected context: PluginContext; protected name: string; protected accounts: Map; protected EVENT_ACCOUNT_ADD: string; protected EVENT_ACCOUNT_REMOVE: string; get sdk(): import("kuzzle").EmbeddedSDK; get cluster(): import("kuzzle").BackendCluster; constructor(name: string); init(config: JSONObject, context: PluginContext): Promise; protected abstract _createAccount(...args: any[]): T; /** * Adds an account to send message with. * * @param name Account name * @param args Any credentials needed to initialize the associated client */ addAccount(name: string, ...args: any[]): void; private nodeAddAccount; /** * Removes an account * * @param name Account name */ removeAccount(name: string): void; private nodeRemoveAccount; /** * Lists available accounts * * @returns Account names */ listAccounts(): Array<{ name: string; options: JSONObject; }>; protected getAccount(accountName: string): T; protected mockedAccount(accountName: string): Promise; private logInfo; }