/// 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; }