///
import { Client } from 'irc-framework';
export type ParamsIRC = {
/**
* IRC server's hostname
* @example
* ```js
* params.host = 'irc.server.net'
* ```
*/
host: string;
/**
* IRC server PORT
* @default `6667`
* @example
* ```js
* params.port = 6669
* ```
*/
port: number;
/**
* Nickname to use on IRC
* @default `'xdccJS' + randomInt`
* @example
* ```js
* params.nickname = 'JiPaix'
* ```
*/
nickname: string;
/**
* Real name to use on IRC
* @default `xdccJS`
* @example
* ```js
* params.gecos = 'JiPaix'
* ```
*/
gecos: string;
/**
* Version of the IRC client
* @default `'xdccJS' + packageJson.version`
* @example
* ```js
* params.version = 'mIRC 6.35'
* ```
*/
version: string;
/**
* Username to use on IRC
* @example
* ```js
* params.username = 'JiPaix'
* ```
*/
username: string;
/**
* Channel(s) to join
* @remark Hashtags are optional
* @example
* ```js
* params.chan = '#wee'
* // can also be an array
* params.chan = ['#wee', '#happy']
* // in both cases # are optional
* params.chan = 'weee'
* params.chan = ['#wee', 'happy']
* ```
*/
chan: string[];
/**
* Add Random numbers to nickname
* @default: `true`
* @example
* ```js
* params.randomizeNick = false
* ```
*/
randomizeNick: boolean;
/**
* Display information regarding your download in console
* @default `false`
* @example
* ```js
* params.verbose = true
* ```
*/
verbose: boolean;
/**
* Time before a download is considered timed out in seconds
* @default `30`
*/
timeout: number;
/**
* TLS/SSL
*/
tls: {
/**
* Enable TLS/SSL
* @default `false`
* @example
* ```js
* params.tls = { enable: true }
* ```
*/
enable: boolean;
/**
* (optional) Reject self-signed certificates
* @default `false`
* @example
* ```js
* params.tls = { enable: true, rejectUnauthorized: true }
* ```
*/
rejectUnauthorized?: boolean;
};
/**
* NickServ password
* @example
* ```js
* params.nickServ = 'my_password'
*/
nickServ?: string;
};
export default class Connect extends Client {
protected chan: string[];
protected verbose: boolean;
protected host: string;
protected nickname: string;
protected originalNickname: string;
protected nickRandomized: boolean;
protected port: number;
protected connectionTimeout: ReturnType;
protected tls: {
enable: boolean;
rejectUnauthorized?: boolean;
};
protected timeout: number;
private nickservPassword?;
protected gecos: string;
protected version: string;
protected username: string;
constructor(params: ParamsIRC);
private onConnect;
private nickServAuth;
static nickRandomizer(nick: string): string;
private turnOff;
static chanCheck(chan?: string | string[]): string[];
static identifyCheck(identify: unknown): void;
private static chanHashtag;
static replace(string: string): string;
static is(opts: {
name: string;
variable: T;
type: 'string' | 'number' | 'boolean' | 'object';
}): T;
static is(opts: {
name: string;
variable: T;
type: 'string' | 'number' | 'boolean' | 'object';
}, condition: boolean, conditionError: string): T;
static is(opts: {
name: string;
variable: T;
type: D;
}): D;
static is(opts: {
name: string;
variable: T;
type: D;
condition: boolean;
conditionError: string;
}): D;
protected print(string: string, padding?: number): void;
}