export interface IRCCommunicator { emit(event: string, ...args: any[]): void; on(event: string, handler: (...args: any[]) => void): void; write(format: string, ...args: any[]): void; } export interface IRCConnector extends IRCCommunicator { connected: boolean; connect(): Promise; destroy(): Promise; } export interface IRCConnectorConstructor { new (secure: boolean, host: string, port?: number): IRCConnector; }