import { CtcpParser, ParamsCTCP } from './ctcp_parser'; import * as ProgressBar from './lib/progress'; export type ParamsDL = ParamsCTCP & { /** * Array of ports for passive DCC * @default [5001] * @remark Some xdcc bots use passive dcc, this require to have these ports opened on your computer/router/firewall * @example * ```js * params.passivePort = [3213, 3214] * ``` */ passivePort: number[]; /** * Throttle speed (KiB/s) * @default undefined * @example * ```js * param.throttle = 500 * ``` */ throttle?: number; }; export default class Downloader extends CtcpParser { protected passivePort: number[]; private ip; protected throttle?: number; constructor(params: ParamsDL); static getIp(): Promise<{ v4: string | undefined; v6: string | undefined; }>; private setupStream; private prepareDL; private portPicker; private processDL; private onTimeOut; private onError; private onClose; private onData; protected static setupProgressBar(len: number): ProgressBar; }