import AddJob from './addjob'; import type { FileInfo } from './interfaces/fileinfo'; import { ParamsTimeout } from './timeouthandler'; export type ParamsCTCP = ParamsTimeout & { /** * Download path * @default `false` * @remark `undefined` or `false` enables piping, see {@link XDCC.download} for example on how to use pipes. * @example * ```js * // absolute path * params.path = '/home/user/downloads * ``` * @example * ```js * // relative path * params.path = 'downloads/xdcc' //=> /your/project/folder/downloads/xdcc * ``` * @example * ```js * // explicitly enable piping * params.path = false * ``` * */ path: string | false; /** * Block downloads if the bot's name does not match the request * @example * ```js * // with botNameMatch = true * xdccJS.download('BOT-A', 1) * //=> Only accept files comming from 'BOT-A' * ``` */ botNameMatch: boolean; }; export declare class CtcpParser extends AddJob { protected path: string | false; protected botNameMatch: boolean; private resumequeue; constructor(params: ParamsCTCP); static pathCheck(fpath?: ParamsCTCP['path']): string | false; private static mkdir; private SecurityCheck; private checkBeforeDL; private addToResumeQueue; private checkExistingFiles; private static fileNameWithQuotes; private static ctcpMatch; private fileInfoBuilder; protected parseCtcp(text: string, nick: string): FileInfo | undefined; protected static uint32ToIP(value: string): string; }