export interface IPayload { id: number, command: string, data: T, reply: boolean, status: 'success' | 'fail' } export interface IMessager { bind(name: string): (...args: any[]) => Promise define(name: string, callback: Function): void listener(data: any): any ready(): void fn: any addEventListener(name: string, callback: (params: IPayload) => void): void removeEventListener(name: string, callback: (params: IPayload) => void): void isConnect(): boolean } export default function createMessager(sendHandler: (data: any) => void): IMessager