import { EventEmitter2 } from 'eventemitter2' ; import { Store } from '../utils/store' ; export interface Logger { info ( ... msg ) : void ; warn ( ... msg ) : void ; error ( ... msg ) : void ; debug ( ... msg ) : void ; trace ( ... msg ) : void ; } export interface DataHandler { ( data ) : Promise < Buffer > ; } export interface MoneyHandler { ( amount ) : Promise < void > ; } export interface PluginInstance extends EventEmitter2 { connect ( options ) : Promise < void > ; disconnect ( ) : Promise < void > ; isConnected ( ) : boolean ; sendData ( data ) : Promise < Buffer > ; sendMoney ( amount ) : Promise < void > ; registerDataHandler ( dataHandler ) : void ; deregisterDataHandler ( ) : void ; registerMoneyHandler ( moneyHandler ) : void ; deregisterMoneyHandler ( ) : void ; getAdminInfo ? ( ) : Promise < object > ; sendAdminInfo ? ( info ) : Promise < object > ; } export interface PluginServices { log ? : Logger ; store ? : Store ; }