///
import { EventEmitter } from 'events';
import net = require('net');
import tls = require('tls');
export declare class IrcClient extends EventEmitter {
nick: string;
ident: string;
realname: string;
saveRawLogs?: boolean | undefined;
private socket?;
private usingTLS;
private serverPassword?;
private bufferedData;
private rawLog;
private errorMessage;
timesNickWasInUse: number;
connectionRegComplete: boolean;
private saslPlainUsername;
private saslPlainPassword;
private saslRequired;
account: string;
constructor(nick: string, ident: string, realname: string, saveRawLogs?: boolean | undefined);
connect(netConnectionOptions?: net.NetConnectOpts, tlsConnectionOptions?: tls.ConnectionOptions, serverPassword?: string): void;
private socketConnected;
private socketData;
private socketClosed;
private socketError;
private handleAuthenticate;
private handleCap;
private handlePing;
private handleWelcome;
private handleIsupport;
private handleRegComplete;
private handleCannotSendMessage;
private handleBadNick;
private handleNickInUse;
private handleCannotJoinChannel;
private handleLoggedIn;
private handleSaslSuccess;
private handleSaslFail;
setupSaslPlain(username: string, password: string, required?: boolean): void;
private sendLine;
send(verb: string, ...params: string[]): void;
statusInfo(): {
type: string;
error: string;
log: string;
};
runUntilClosed(): Promise;
}