/// /// /// import type * as fs from 'fs'; import type * as net from 'net'; import type { PassThrough } from 'stream'; import type { ParamsIRC } from './connect'; import Connect from './connect'; import type { FileInfo } from './interfaces/fileinfo'; import type { Job } from './interfaces/job'; import ProgressBar from './lib/progress'; export type ParamsTimeout = ParamsIRC & { /** * Number of retries when a download fails * @default `1` * @example * ```js * // we've set params.retry = 2 * xdccJS.download('xdcc|bot', '20, 25') * // if download of pack '20' fails it will retry twice before skipping to pack '25' */ retry: number; /** * Queue Regex */ queue?: RegExp; }; interface TimeoutSetup { candidate: Job; eventType: 'error' | 'cancel'; message: string; padding?: number; executeLater?: () => void; disconnectAfter?: { stream: fs.WriteStream | PassThrough; socket?: net.Socket; server?: net.Server; pick?: number | undefined; bar?: ProgressBar; }; delay: number; fileInfo?: FileInfo; } export declare class TimeOut extends Connect { protected portInUse: number[]; protected retry: number; protected queue?: RegExp; constructor(params: ParamsTimeout); protected SetupTimeout(obj: TimeoutSetup): void; protected DisableTimeOutOnQueue(job: Job, regex: RegExp): void; private TOendStreams; private TOstart; private routine; protected redownload(candidate: Job, fileInfo?: FileInfo): void; protected static makeClearable(candidate: Job): void; } export {};