///
import { EventEmitter } from "events";
import { RoleType } from "./proto";
export declare class MasterSlaver extends EventEmitter {
get isMaster(): boolean;
get masterId(): string;
get roleId(): string;
ready: boolean;
private _group;
constructor(host: string, port: number);
private _initInfo;
init(roleId: string, groupId: string, score: number, info: any): Promise;
private joinGroup;
close(): void;
controlMsg(cmd: number, info: {
[key: string]: any;
}, requestId?: string): boolean;
answerMsg(roleId: string, cmd: number, info: {
code: number;
info?: any;
errMsg?: string;
}, requestId?: string): boolean;
requestMsg(roleId: string, cmd: number, info: {
[key: string]: any;
}, requestId?: string): boolean;
/**
* 通知所有人内容 主要是平级间的,不分主次的命令才可以
* @param cmd
* @param info
*/
normalBroadcast(cmd: number, info: {
[key: string]: any;
}, toSelf?: boolean): boolean;
private onData;
private onConnection;
private onClose;
private onReady;
private roletype;
on(event: 'request', listener: (cmd: number, info: {
[key: string]: any;
}, role: string, requestId: string) => void): this;
on(event: 'answer' | symbol, listener: (cmd: number, info: {
[key: string]: any;
}, role: string, requestId: string) => void): this;
on(event: 'control', listener: (cmd: number, info: {
[key: string]: any;
}, role: string) => void, requestId?: string): this;
on(event: 'roletype', listener: (isMaster: boolean, type: RoleType) => void): this;
once(event: 'request', listener: (cmd: number, info: {
[key: string]: any;
}, role: string, requestId: string) => void): this;
once(event: 'answer' | symbol, listener: (cmd: number, info: {
[key: string]: any;
}, role: string, requestId: string) => void): this;
once(event: 'control', listener: (cmd: number, info: {
[key: string]: any;
}, role: string) => void, requestId?: string): this;
once(event: 'roletype', listener: (isMaster: boolean, type: RoleType) => void): this;
off(event: string | symbol, listener: (...args: any[]) => void): this;
}