{"version":3,"sources":["/home/runner/work/captcha-libs/captcha-libs/packages/twocaptcha/dist/index.cjs","../../captcha-client/src/captcha-client.ts","../../captcha-client/src/utils.ts","../src/lib/twocaptcha.ts","../src/lib/Requests/_BaseTaskRequest.ts","../src/lib/Requests/Recognition/TextCaptchaTask.ts","../src/lib/Requests/Recognition/RotateTask.ts","../src/lib/Requests/Recognition/ImageToTextTask.ts","../src/lib/Requests/Recognition/GridTask.ts","../src/lib/Requests/Recognition/DrawAroundTask.ts","../src/lib/Requests/Recognition/CoordinatesTask.ts","../src/lib/Requests/Recognition/BoundingBoxTask.ts","../src/lib/Requests/Recognition/AudioTask.ts","../src/lib/Requests/Token/Base/_TencentTaskBase.ts","../src/lib/Requests/Token/TencentTaskProxyless.ts","../src/lib/Requests/Token/TencentTask.ts","../src/lib/Requests/Token/Base/_AtbCaptchaTaskBase.ts","../src/lib/Requests/Token/AtbCaptchaTaskProxyless.ts","../src/lib/Requests/Token/AtbCaptchaTask.ts","../src/lib/Requests/Token/Base/_CutCaptchaTask.ts","../src/lib/Requests/Token/CutCaptchaTaskProxyless.ts","../src/lib/Requests/Token/CutCaptchaTask.ts","../src/lib/Requests/Token/Base/_TurnstileTaskBase.ts","../src/lib/Requests/Token/TurnstileTaskProxyless.ts","../src/lib/Requests/Token/TurnstileTask.ts","../src/lib/Requests/Token/Base/_RecaptchaV2TaskBase.ts","../src/lib/Requests/Token/RecaptchaV2EnterpriseTaskProxyless.ts","../src/lib/Requests/Token/RecaptchaV2TaskProxyless.ts","../src/lib/Requests/Token/RecaptchaV2Task.ts","../src/lib/Requests/Token/Base/_MtCaptchaTaskBase.ts","../src/lib/Requests/Token/MtCaptchaTaskProxyless.ts","../src/lib/Requests/Token/MtCaptchaTask.ts","../src/lib/Requests/Token/Base/_LeminTaskBase.ts","../src/lib/Requests/Token/LeminTaskProxyless.ts","../src/lib/Requests/Token/LeminTask.ts","../src/lib/Requests/Token/Base/_KeyCaptchaTaskBase.ts","../src/lib/Requests/Token/KeyCaptchaTaskProxyless.ts","../src/lib/Requests/Token/KeyCaptchaTask.ts","../src/lib/Requests/Token/Base/_HCaptchaTaskBase.ts","../src/lib/Requests/Token/HCaptchaTaskProxyless.ts","../src/lib/Requests/Token/HCaptchaTask.ts","../src/lib/Requests/Token/Base/_GeeTestV4TaskBase.ts","../src/lib/Requests/Token/GeeTestV4TaskProxyless.ts","../src/lib/Requests/Token/Base/_GeeTestV3TaskBase.ts","../src/lib/Requests/Token/GeeTestV3TaskProxyless.ts","../src/lib/Requests/Token/GeeTestV3Task.ts","../src/lib/Requests/Token/Base/_GeeTestTaskBase.ts","../src/lib/Requests/Token/GeeTestTaskProxyless.ts","../src/lib/Requests/Token/GeeTestTask.ts","../src/lib/Requests/Token/Base/_FunCaptchaTaskBase.ts","../src/lib/Requests/Token/FunCaptchaTaskProxyless.ts","../src/lib/Requests/Token/FunCaptchaTask.ts","../src/lib/Requests/Token/Base/_FriendlyCaptchaTask.ts","../src/lib/Requests/Token/FriendlyCaptchaTaskProxyless.ts","../src/lib/Requests/Token/FriendlyCaptchaTask.ts","../src/lib/Requests/Token/Base/_DataDomeSliderTaskBase.ts","../src/lib/Requests/Token/DataDomeSliderTask.ts","../src/lib/Requests/Token/Base/_CapyTaskBase.ts","../src/lib/Requests/Token/CapyTaskProxyless.ts","../src/lib/Requests/Token/CapyTask.ts","../src/lib/Requests/Token/Base/_AntiCyberSiAraTaskBase.ts","../src/lib/Requests/Token/AntiCyberSiAraTaskProxyless.ts","../src/lib/Requests/Token/AntiCyberSiAraTask.ts","../src/lib/Requests/Token/Base/_AmazonTaskBase.ts","../src/lib/Requests/Token/AmazonTaskProxyless.ts","../src/lib/Requests/Token/AmazonTask.ts","../src/lib/Requests/Token/GeeTestV4Task.ts","../src/lib/Requests/Token/RecaptchaV2EnterpriseTask.ts","../src/lib/Requests/Token/Base/_RecaptchaV3TaskBase.ts","../src/lib/Requests/Token/RecaptchaV3TaskProxyless.ts"],"names":["CaptchaClient","baseUrl","delay","timeout","Promise","resolve","setTimeout","TwoCaptcha","constructor","params","clientKey","pollingInterval","getBalance","body","fetch","errorId","getBalanceResponse","balance","request","response","taskId","_isAmazonTask","Error","createTaskResponse","AbortSignal","abortSignal","stringify","AbortError","error","BaseTask","type","TextCaptchaTask","comment","_isTextCaptchaTask","RotateTask","angle","imgInstructions","_isRotateTask","NumericOptions","ImageToTextTask","_case","case","math","maxLength","minLength","numeric","phrase","_isImageToTextTask","GridTask","rows","columns","_isGridTask","DrawAroundTask","_isDrawAroundTask","CoordinatesTask","_isCoordinatesTask","BoundingBoxTask","_isBoundingBoxTask","AudioTask","lang","_isAudioTask","TencentTaskBase","websiteURL","appId","proxyAddress","proxyLogin","proxyPassword","proxyPort","proxyType","proxy","_isTencentTaskProxyless","TencentTask","_isTencentTask","AtbCaptchaTaskBase","apiServer","_isAtbCaptchaTaskProxyless","AtbCaptchaTask","_isAtbCaptchaTask","CutCaptchaTaskBase","miseryKey","apiKey","_isCutCaptchaTaskProxyless","CutCaptchaTask","_isCutCaptchaTask","TurnstileTaskBase","websiteKey","action","data","pagedata","userAgent","_isTurnstileTaskProxyless","TurnstileTask","_isTurnstileTask","cookies","apiDomain","recaptchaDataSValue","isInvisible","RecaptchaV2EnterpriseTaskProxyless","enterprisePayload","_isRecaptchaV2EnterpriseTaskProxyless","RecaptchaV2TaskBase","_isRecaptchaV2TaskProxyless","RecaptchaV2Task","_isRecaptchaV2Task","MtCaptchaTaskBase","_isMtCaptchaTaskProxyless","MtCaptchaTask","_isMtCaptchaTask","LeminTaskBase","captchaId","divId","leminApiServerSubdomain","LeminTaskProxyless","_isLeminTaskProxyless","LeminTask","_isLeminTask","KeyCaptchaTaskBase","s_s_c_user_id","s_s_c_session_id","s_s_c_web_server_sign","s_s_c_web_server_sign2","_isKeyCaptchaTaskProxyless","KeyCaptchaTask","_isKeyCaptchaTask","HCaptchaTaskBase","_isHCaptchaTaskProxyless","HCaptchaTask","_isHCaptchaTask","GeeTestV4TaskBase","initParameters","version","_isGeeTestTaskProxyless","GeeTestV3TaskBase","challenge","gt","geetestApiServerSubdomain","GeeTestV3Task","_isGeeTestTask","GeeTestTaskBase","versionSpecific","GeeTestTask","FunCaptchaTaskBase","websitePublicKey","funcaptchaApiJSSubdomain","_isFunCaptchaTaskProxyless","FunCaptchaTask","_isFunCaptchaTask","FriendlyCaptchaTaskProxyless","_isFriendlyCaptchaTaskProxyless","FriendlyCaptchaTaskBase","_isFriendlyCaptchaTask","captchaUrl","DataDomeSliderTask","_isDataDomeSliderTask","DataDomeSliderTaskBase","CapyTaskBase","CapyTaskProxyless","_isCapyTaskProxyless","CapyTask","_isCapyTask","SlideMasterUrlId","AntiCyberSiAraTaskProxyless","_isAntiCyberSiAraTaskProxyless","AntiCyberSiAraTaskBase","AntiCyberSiAraTask","_isAntiCyberSiAraTask","AmazonTaskBase","iv","context","challengeScript","captchaScript","_isAmazonTaskProxyless","AmazonTask","GeeTestV4Task","RecaptchaV2EnterpriseTask","_isRecaptchaV2EnterpriseTask","minScore","pageAction","isEnterprise","_isRecaptchaV3TaskProxyless","RecaptchaV3TaskBase"],"mappings":"AAAA,6KAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,WAAW,EAAE,MAAM,CAAC,gBAAgB;AACxC,IAAI,kBAAkB,EAAE,MAAM,CAAC,yBAAyB;AACxD,IAAI,oBAAoB,EAAE,MAAM,CAAC,qBAAqB;AACtD,IAAI,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc;AAClD,IAAI,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB;AACxD,IAAI,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK;AAC/J,IAAI,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG;AAC/B,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,EAAE,GAAG,CAAC,mBAAmB;AACzB,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI;AACJ,EAAE,OAAO,CAAC;AACV,CAAC;AACD,IAAI,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACjE,IAAI,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AACxF,IAAI,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACrC,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;AACjB,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,MAAM;AACzB,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;AACjC,EAAE,GAAG,CAAC,OAAO,GAAG,KAAK,GAAG,mBAAmB;AAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;AACnC,IAAI;AACJ,EAAE,OAAO,MAAM;AACf,CAAC;AACD,IAAI,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;AAC9G,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG;AAClD,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;AAC1C,IAAI,IAAI,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG;AAC/B,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE;AAClB,QAAQ,MAAM,CAAC,CAAC,CAAC;AACjB,MAAM;AACN,IAAI,CAAC;AACL,IAAI,IAAI,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG;AAC9B,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE;AAClB,QAAQ,MAAM,CAAC,CAAC,CAAC;AACjB,MAAM;AACN,IAAI,CAAC;AACL,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpG,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA;ACtDO,IAAeA,eAAAA,EAAf,MAAeA,eAAAA;AAYtB,CAAA;AAZsBA,MAAAA,CAAAA,cAAAA,EAAAA,eAAAA,CAAAA;AACpB,aAAA,CADoBA,cAAAA,EACHC,SAAAA,CAAAA;AADZ,IAAeD,cAAAA,EAAf,cAAA;AD4DP;AACA;AE7DO,IAAME,MAAAA,kBACb,MAAA,CAAA,CAAOC,OAAAA,EAAAA,GAAAA,OAAAA,CAAAA,KAAAA,CAAAA,EAAAA,IAAAA,EAAAA,QAAAA,EAAAA,CAAAA,EAAAA;AAAoB,EAAA,OAAA,MAAM,IAAIC,OAAAA,CAAQ,CAACC,OAAAA,EAAAA,GAAYC,UAAAA,CAAWD,OAAAA,EAASF,OAAAA,CAAAA,CAAAA;AF+D9E,CAAC,CAAC,EE/DF,OAAA,CAAA;AFgEA;AACA;AGoBA,6FAAkC;AAO3B,IAAMI,YAAAA,EAAN,MAAMA,YAAAA,QAAmBP,cAAAA;AHxBhC;AACA;AACA;AACA;AACA;AACA;AACA,EG8CEQ,WAAAA,CAAaC,MAAAA,EAA6B;AACxC,IAAA,MAAM,EAAEC,SAAAA,EAAWP,QAAAA,EAAU,IAAA,EAASQ,gBAAAA,EAAkB,IAAK,EAAA,EAAKF,MAAAA;AAElE,IAAA,KAAA,CAAK,CAAA;AA1BGC;AHnBZ;AACA;AACA,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;AGsBxBC;AHpBZ;AACA;AACA,IAAI,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC;AGuB9BR;AHrBZ;AACA;AACA,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;AGwBtBF;AHtBZ;AACA;AACA,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,EGoBH,0BAAA,CAAA;AAa1B,IAAA,IAAA,CAAKS,UAAAA,EAAYA,SAAAA;AAEjB,IAAA,IAAA,CAAKC,gBAAAA,EAAkBA,eAAAA;AAEvB,IAAA,IAAA,CAAKR,QAAAA,EAAUA,OAAAA;AHjCnB,EGkCE;AHjCF,EGmCeS,UAAAA,CAAAA,EAA+B;AHlC9C,IAAI,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;AGmCxC,MAAA,MAAMC,KAAAA,EAAO,MAAMC,iCAAAA,CAAM,EAAA;AACA,QAAA;AAAoBJ,UAAAA;AAAU,QAAA;AAC3C,QAAA;AACZ,MAAA;AAEuBG,MAAAA;AAEfE,MAAAA;AAEO,MAAA;AAEIC,MAAAA;AAEOC,MAAAA;AAC5B,IAAA;AHpC8B,EAAA;AACA;AACA;AACA;AACA;AGsCqD,EAAA;AHpCrD,IAAA;AGqCH,MAAA;AACA,QAAA;AACHP,UAAAA;AACVQ,UAAAA;AACV,QAAA;AACU,QAAA;AACZ,MAAA;AAEuBL,MAAAA;AAELM,MAAAA;AAEXA,MAAAA;AACT,IAAA;AHtC8B,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AGwC8D,EAAA;AHtC9D,IAAA;AGuCH,MAAA;AACA,QAAA;AACHT,UAAAA;AAClBU,UAAAA;AACF,QAAA;AACU,QAAA;AACZ,MAAA;AAEuBP,MAAAA;AAELM,MAAAA;AAEXA,MAAAA;AACT,IAAA;AHxC8B,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AG0C4D,EAAA;AHxC5D,IAAA;AGyCH,MAAA;AACA,QAAA;AACHT,UAAAA;AAClBU,UAAAA;AACF,QAAA;AACU,QAAA;AACZ,MAAA;AAEuBP,MAAAA;AAELM,MAAAA;AAEXA,MAAAA;AACT,IAAA;AH1C8B,EAAA;AACA;AACA;AACA;AACA;AG0OkE,EAAA;AHxOlE,IAAA;AG8RxB,MAAA;AACe,QAAA;AACjB,QAAA;AACA,QAAA;AACA,QAAA;AACe,QAAA;AACI,QAAA;AACK,QAAA;AACxB,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACqB,QAAA;AACrB,QAAA;AACkB,QAAA;AAClB,QAAA;AACoB,QAAA;AACpB,QAAA;AACoB,QAAA;AACpB,QAAA;AACe,QAAA;AACI,QAAA;AACnB,QAAA;AACsB,QAAA;AACD,QAAA;AACrB,QAAA;AACgB,QAAA;AAChB,QAAA;AACoB,QAAA;AACpB,QAAA;AACA,QAAA;AACA,QAAA;AACsB,QAAA;AACtB,QAAA;AACA,QAAA;AACe,QAAA;AACE,QAAA;AACK,QAAA;AACF,QAAA;AACpB,QAAA;AACgB,QAAA;AACM,QAAA;AACA,QAAA;AACD,QAAA;AACA,QAAA;AACrB,QAAA;AACkB,QAAA;AAClB,QAAA;AA/FAE,MAAAA;AAoGoB,MAAA;AAEEC,MAAAA;AAElBC,MAAAA;AAEcC,MAAAA;AAEFC,MAAAA;AAEd,MAAA;AACiB,QAAA;AACEX,UAAAA;AACJY,YAAAA;AACOhB,cAAAA;AACRa,cAAAA;AACZ,YAAA;AACU,YAAA;AACAE,YAAAA;AACZ,UAAA;AAEiB,UAAA;AAECN,UAAAA;AACT,YAAA;AAEKI,cAAAA;AACZ,YAAA;AACkBR,UAAAA;AACF,YAAA;AAClB,UAAA;AAEiBJ,UAAAA;AACnB,QAAA;AACc,MAAA;AACOgB,QAAAA;AACVC,QAAAA;AACb,MAAA;AAEgB,MAAA;AAClB,IAAA;AHzS8B,EAAA;AG0ShC;AArdgC5B;AAAzB;AH+KyB;AACA;AIrMV6B;AAOe,EAAA;AAFzBC;AJoMoB;AACA;AACA,IAAA;AInMhBA,IAAAA;AACd,EAAA;AACF;AAVsBD;AAAf;AJiNyB;AACA;AK9QnBE;ALgRmB;AACA;AACA;AACA;AACA;AACA;AKnQe,EAAA;AACrC,IAAA;AAAU,MAAA;AAAkB,IAAA;AAdpCC;ALsR8B;AACA;AACA,IAAA;AKnRrBC;ALqRqB;AACA;AACA,IAAA;AK5QbD,IAAAA;AACjB,EAAA;AACF;AAvBqCH;AAA9B;ALuSyB;AACA;AMpSnBK;ANsSmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AM1QAC,EAAAA;AACtB,IAAA;AAAU,MAAA;AAAa,IAAA;AAhC/BH;AN+S8B;AACA;AACA,IAAA;AM5S9BnB;AN8S8B;AACA;AACA,IAAA;AM3S9BsB;AN6S8B;AACA;AACA,IAAA;AM1S9BC;AN4S8B;AACA;AACA,IAAA;AMzSrBC;AN2SqB;AACA;AACA,IAAA;AM/RhBxB,IAAAA;AAEGmB,IAAAA;AAEFG,IAAAA;AAEUC,IAAAA;AACzB,EAAA;AACF;AA/CgCP;AAAzB;AN+UyB;AACA;AACA;AO7VpBS;AP+VoB,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AOnWpBA;AAyBCC;AP6UmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AOxRDC,EAAAA;AACrB,IAAA;AAAU,MAAA;AAAkB,IAAA;AA9DpC3B;AP2V8B;AACA;AACA,IAAA;AOxV9B4B;AP0V8B;AACA;AACA,IAAA;AOvV9BT;APyV8B;AACA;AACA,IAAA;AOtV9BI;APwV8B;AACA;AACA,IAAA;AOrV9BM;APuV8B;AACA;AACA,IAAA;AOpV9BC;APsV8B;AACA;AACA,IAAA;AOnV9BC;APqV8B;AACA;AACA,IAAA;AOlV9BC;APoV8B;AACA;AACA,IAAA;AOjV9BC;APmV8B;AACA;AACA,IAAA;AOhVrBC;APkVqB;AACA;AACA,IAAA;AOjUhBlC,IAAAA;AAEA2B,IAAAA;AAEGR,IAAAA;AAEQI,IAAAA;AAEXM,IAAAA;AAEKC,IAAAA;AAEAC,IAAAA;AAEFC,IAAAA;AAEDC,IAAAA;AAChB,EAAA;AACF;AAvFqCjB;AAA9B;APoZyB;AACA;AQ7ZnBmB;AR+ZmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AQ9XAZ,EAAAA;AACtB,IAAA;AAAU,MAAA;AAAW,IAAA;AAtC7BJ;ARya8B;AACA;AACA,IAAA;AQta9BnB;ARwa8B;AACA;AACA,IAAA;AQra9BuB;ARua8B;AACA;AACA,IAAA;AQpa9Ba;ARsa8B;AACA;AACA,IAAA;AQna9BC;ARqa8B;AACA;AACA,IAAA;AQlarBC;ARoaqB;AACA;AACA,IAAA;AQvZhBtC,IAAAA;AAEGmB,IAAAA;AAEQI,IAAAA;AAEXa,IAAAA;AAEGC,IAAAA;AACjB,EAAA;AACF;AAvD8BrB;AAAvB;AR8cyB;AACA;ASjdnBuB;ATmdmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AS5bAhB,EAAAA;AACtB,IAAA;AAAU,MAAA;AAAiB,IAAA;AA1BnCJ;AT2d8B;AACA;AACA,IAAA;ASxd9BnB;AT0d8B;AACA;AACA,IAAA;ASvd9BuB;ATyd8B;AACA;AACA,IAAA;AStdrBiB;ATwdqB;AACA;AACA,IAAA;AS7chBxC,IAAAA;AAEGmB,IAAAA;AAEQI,IAAAA;AACzB,EAAA;AACF;AAvCoCP;AAA7B;ATsfyB;AACA;AU3fnByB;AV6fmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AUteAlB,EAAAA;AACtB,IAAA;AAAU,MAAA;AAAkB,IAAA;AA1BpCJ;AVqgB8B;AACA;AACA,IAAA;AUlgB9BnB;AVogB8B;AACA;AACA,IAAA;AUjgB9BuB;AVmgB8B;AACA;AACA,IAAA;AUhgBrBmB;AVkgBqB;AACA;AACA,IAAA;AUvfhB1C,IAAAA;AAEGmB,IAAAA;AAEQI,IAAAA;AACzB,EAAA;AACF;AAvCqCP;AAA9B;AVgiByB;AACA;AW7hBnB2B;AX+hBmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AWxgBApB,EAAAA;AACtB,IAAA;AAAU,MAAA;AAAkB,IAAA;AA1BpCJ;AXuiB8B;AACA;AACA,IAAA;AWpiB9BnB;AXsiB8B;AACA;AACA,IAAA;AWniB9BuB;AXqiB8B;AACA;AACA,IAAA;AWliBrBqB;AXoiBqB;AACA;AACA,IAAA;AWzhBhB5C,IAAAA;AAEGmB,IAAAA;AAEQI,IAAAA;AACzB,EAAA;AACF;AAvCqCP;AAA9B;AXkkByB;AACA;AYtkBnB6B;AZwkBmB;AACA;AACA;AACA;AACA;AACA;AACA;AYtjBgB,EAAA;AACtC,IAAA;AAAU,MAAA;AAAY,IAAA;AApB9B7C;AZ+kB8B;AACA;AACA,IAAA;AY5kB9B8C;AZ8kB8B;AACA;AACA,IAAA;AY3kBrBC;AZ6kBqB;AACA;AACA,IAAA;AYnkBhB/C,IAAAA;AAEA8C,IAAAA;AACd,EAAA;AACF;AA/B+B9B;AAAxB;AZqmByB;AACA;AaxmBVgC;Ab0mBU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AajlBRC,EAAAA;AACd,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AAhCfgC;AbsnB8B;AACA;AACA,IAAA;AannB9BC;AbqnB8B;AACA;AACA,IAAA;AarnB9BC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAiBeN,IAAAA;AAEKD,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AACnB,EAAA;AACF;AArD8CvC;AAAvC;AbmpByB;AACA;AcrpBzB;AdupByB;AACA;AACA;AACA;AACA;AACA;AACA;Ac/oBmB,EAAA;AACjC,IAAA;AAVPyC;Ad4pBqB;AACA;AACA,IAAA;AcnpB9B,EAAA;AACF;AAjB0CT;AAAnC;AdwqByB;AACA;AezqBnBU;Af2qBmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AenqBU,EAAA;AACxB,IAAA;AAfPC;AfqrBqB;AACA;AACA,IAAA;AevqB9B,EAAA;AACF;AAtBiCX;AAA1B;AfisByB;AACA;AgBhsBVY;AhBksBU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AgBpqBRX,EAAAA;AACd,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AAtCfgC;AhB+sB8B;AACA;AACA,IAAA;AgB5sB9BC;AhB8sB8B;AACA;AACA,IAAA;AgB3sB9BW;AhB6sB8B;AACA;AACA,IAAA;AgB7sB9BV,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAkBeN,IAAAA;AAEKD,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEAM,IAAAA;AACnB,EAAA;AAEF;AA9DiD7C;AAA1C;AhBivByB;AACA;AiBpvBzB;AjBsvByB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AiB9uBsB,EAAA;AACpC,IAAA;AAXP8C;AjB4vBqB;AACA;AACA,IAAA;AiBlvB9B,EAAA;AACF;AAlB6CF;AAAtC;AjBwwByB;AACA;AkBzwBnBG;AlB2wBmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AkBnwBa,EAAA;AAC3B,IAAA;AAhBPC;AlBsxBqB;AACA;AACA,IAAA;AkBvwB9B,EAAA;AACF;AAvBoCJ;AAA7B;AlBkyByB;AACA;AmBjyBVK;AnBmyBU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AmBvwBJhB,EAAAA;AAClB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AArCfgC;AnBizB8B;AACA;AACA,IAAA;AmB9yB9BiB;AnBgzB8B;AACA;AACA,IAAA;AmB7yB9BC;AnB+yB8B;AACA;AACA,IAAA;AmB/yB9BhB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAmBmBW,IAAAA;AAECjB,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEHY,IAAAA;AAChB,EAAA;AACF;AA5DiDnD;AAA1C;AnBk1ByB;AACA;AoBr1BzB;ApBu1ByB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AoB/0BsB,EAAA;AACpC,IAAA;AAXPoD;ApB61BqB;AACA;AACA,IAAA;AoBn1B9B,EAAA;AACF;AAlB6CH;AAAtC;ApBy2ByB;AACA;AqB12BnBI;ArB42BmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AqBp2Ba,EAAA;AAC3B,IAAA;AAhBPC;ArBu3BqB;AACA;AACA,IAAA;AqBx2B9B,EAAA;AACF;AAvBoCL;AAA7B;ArBm4ByB;AACA;AsB/3BVM;AtBi4BU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AsBt1BHtB,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AArDfgC;AtBg5B8B;AACA;AACA,IAAA;AsB74B9BuB;AtB+4B8B;AACA;AACA,IAAA;AsB54B9BC;AtB84B8B;AACA;AACA,IAAA;AsB34B9BC;AtB64B8B;AACA;AACA,IAAA;AsB14B9BC;AtB44B8B;AACA;AACA,IAAA;AsBz4B9BC;AtB24B8B;AACA;AACA,IAAA;AsB34B9BzB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAoBoBiB,IAAAA;AAEAvB,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEAqB,IAAAA;AAEHH,IAAAA;AAEEE,IAAAA;AAEJD,IAAAA;AACd,EAAA;AACF;AAlFgD1D;AAAzC;AtBg8ByB;AACA;AuBt8BzB;AvBw8ByB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AuBh8BqB,EAAA;AACnC,IAAA;AAbP6D;AvBg9BqB;AACA;AACA,IAAA;AuBp8B9B,EAAA;AACF;AApB4CN;AAArC;AvB49ByB;AACA;AwB79BnBO;AxB+9BmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AwBv9BY,EAAA;AAC1B,IAAA;AAlBPC;AxB4+BqB;AACA;AACA,IAAA;AwB39B9B,EAAA;AACF;AAzBmCR;AAA5B;AxBw/ByB;AACA;AyBn/BzB;AzBq/ByB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AyBr8BHtB,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AA7Df+D;AzBugC8B;AACA;AACA,IAAA;AyBpgC9BC;AzBsgC8B;AACA;AACA,IAAA;AyBngC9BC;AzBqgC8B;AACA;AACA,IAAA;AyBlgC9BC;AzBogC8B;AACA;AACA,IAAA;AyBjgC9BP;AzBmgC8B;AACA;AACA,IAAA;AyBhgC9B3B;AzBkgC8B;AACA;AACA,IAAA;AyB//B9BuB;AzBigC8B;AACA;AACA,IAAA;AyBjgC9BrB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAuBoBiB,IAAAA;AAEAvB,IAAAA;AAED2B,IAAAA;AAEEO,IAAAA;AAEQD,IAAAA;AAEVD,IAAAA;AAEFD,IAAAA;AAEK7B,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AACnB,EAAA;AACF;AA5FkDvC;AAA3C;AzB4jCyB;AACA;A0BjkCnBoE;A1BmkCmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A0BzjC2D,EAAA;AAA1EC,IAAAA;AACC,IAAA;AAlBPC;A1B+kCqB;AACA;AACA,IAAA;A0B/kC9BD,IAAAA;AAkB2BA,IAAAA;AAC3B,EAAA;AACF;AA3BwDE;AAA3CH;A1B6lCmB;AACA;A2BhmCzB;A3BkmCyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A2B1lCuB,EAAA;AACrC,IAAA;AAfPI;A3B4mCqB;AACA;AACA,IAAA;A2B9lC9B,EAAA;AACF;AAtB8CD;AAAvC;A3BwnCyB;AACA;A4BvnCnBE;A5BynCmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A4BjnCc,EAAA;AAC5B,IAAA;AArBPC;A5ByoCqB;AACA;AACA,IAAA;A4BrnC9B,EAAA;AACF;AA5BqCH;AAA9B;A5BqpCyB;AACA;A6BvpCVI;A7BypCU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A6BhoCH1C,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AAhCfgC;A7BqqC8B;AACA;AACA,IAAA;A6BlqC9BuB;A7BoqC8B;AACA;AACA,IAAA;A6BpqC9BrB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAiBoBgB,IAAAA;AAEAvB,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AACnB,EAAA;AAEF;AAtDgDvC;AAAzC;A7BksCyB;AACA;A8BpsCzB;A9BssCyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A8B9rCqB,EAAA;AACnC,IAAA;AAXP4E;A9B4sCqB;AACA;AACA,IAAA;A8BlsC9B,EAAA;AACF;AAlB4CD;AAArC;A9BwtCyB;AACA;A+BztCnBE;A/B2tCmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A+BntCY,EAAA;AAC1B,IAAA;AAfPC;A/BquCqB;AACA;AACA,IAAA;A+BvtC9B,EAAA;AACF;AAtBmCH;AAA5B;A/BivCyB;AACA;AgC9uCVI;AhCgvCU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AgC1sCJ9C,EAAAA;AAClB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AAhDfgC;AhC+vC8B;AACA;AACA,IAAA;AgC5vC9B+C;AhC8vC8B;AACA;AACA,IAAA;AgC3vC9BC;AhC6vC8B;AACA;AACA,IAAA;AgC1vC9BC;AhC4vC8B;AACA;AACA,IAAA;AgCzvC9BtB;AhC2vC8B;AACA;AACA,IAAA;AgC3vC9BzB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAoBmByC,IAAAA;AAEC/C,IAAAA;AAELgD,IAAAA;AAEIrB,IAAAA;AAEGzB,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEZ2C,IAAAA;AACP,EAAA;AAEF;AA5E4ClF;AAArC;AhC0yCyB;AACA;AiC/yCnBmF;AjCizCmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AiCzyCiB,EAAA;AAC/B,IAAA;AAbPC;AjCyzCqB;AACA;AACA,IAAA;AiC7yC9B,EAAA;AACF;AApBwCL;AAAjC;AjCq0CyB;AACA;AkCt0CnBM;AlCw0CmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AkCh0CQ,EAAA;AACtB,IAAA;AAlBPC;AlCq1CqB;AACA;AACA,IAAA;AkCp0C9B,EAAA;AACF;AAzB+BP;AAAxB;AlCi2CyB;AACA;AmC91CVQ;AnCg2CU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AmCzzChBpD,EAAAA;AAGN,IAAA;AAAElC,MAAAA;AAAK,IAAA;AAnDfgC;AnC+2C8B;AACA;AACA,IAAA;AmC52C9BuD;AnC82C8B;AACA;AACA,IAAA;AmC32C9BC;AnC62C8B;AACA;AACA,IAAA;AmC12C9BC;AnC42C8B;AACA;AACA,IAAA;AmCz2C9BC;AnC22C8B;AACA;AACA,IAAA;AmC32C9BxD,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAuBoBN,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEOkD,IAAAA;AAEHD,IAAAA;AAEhBE,IAAAA;AAEAC,IAAAA;AACP,EAAA;AACF;AA9EiD3F;AAA1C;AnC05CyB;AACA;AoC/5CzB;ApCi6CyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AoCz5CsB,EAAA;AACpC,IAAA;AAnBP4F;ApC+6CqB;AACA;AACA,IAAA;AoC75C9B,EAAA;AACF;AA1B6CL;AAAtC;ApC27CyB;AACA;AqC57CnBM;ArC87CmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AqCt7Ca,EAAA;AAC3B,IAAA;AAlBPC;ArC28CqB;AACA;AACA,IAAA;AqC17C9B,EAAA;AACF;AAzBoCP;AAA7B;ArCu9CyB;AACA;AsCr9CVQ;AtCu9CU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AsCj7CH9D,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AAjDfoE;AtCu+C8B;AACA;AACA,IAAA;AsCp+C9BF;AtCs+C8B;AACA;AACA,IAAA;AsCn+C9BP;AtCq+C8B;AACA;AACA,IAAA;AsCl+C9B3B;AtCo+C8B;AACA;AACA,IAAA;AsCj+C9BuB;AtCm+C8B;AACA;AACA,IAAA;AsCn+C9BrB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAqBoBiB,IAAAA;AAEAvB,IAAAA;AAECkC,IAAAA;AAEME,IAAAA;AAELlC,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AACnB,EAAA;AAEF;AA3E+CvC;AAAxC;AtCihDyB;AACA;AuCrhDzB;AvCuhDyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AuC/gDoB,EAAA;AAClC,IAAA;AAZPgG;AvC8hDqB;AACA;AACA,IAAA;AuCnhD9B,EAAA;AACF;AAnB2CD;AAApC;AvC0iDyB;AACA;AwC3iDnBE;AxC6iDmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AwCriDW,EAAA;AACzB,IAAA;AAjBPC;AxCyjDqB;AACA;AACA,IAAA;AwCziD9B,EAAA;AACF;AAxBkCH;AAA3B;AxCqkDyB;AACA;AyCxkDVI;AzC0kDU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AyC5iDHhE,EAAAA;AACnB,IAAA;AAAElC,MAAAA;AAAK,IAAA;AAtCfmG;AzCulD8B;AACA;AACA,IAAA;AyCplD9BxC;AzCslD8B;AACA;AACA,IAAA;AyCnlD9B3B;AzCqlD8B;AACA;AACA,IAAA;AyCrlD9BoE,IAAAA;AAEAlE,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAkBoBN,IAAAA;AAEImE,IAAAA;AAELxC,IAAAA;AAEGzB,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AACnB,EAAA;AACF;AA7DgDvC;AAAzC;AzCynDyB;AACA;A0CxnDzB;A1C0nDyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A0ClnDqB,EAAA;AACnC,IAAA;AAXPsG;A1CgoDqB;AACA;AACA,IAAA;A0CtnD9B,EAAA;AACF;AAlB4CH;AAArC;A1C4oDyB;AACA;A2C/oDVI;A3CipDU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A2CzmDCC,EAAAA;AACvB,IAAA;AAAEvG,MAAAA;AAAK,IAAA;AAnDfuG;A3CiqD8B;AACA;AACA,IAAA;A2C9pD9BC;A3CgqD8B;AACA;AACA,IAAA;A2C7pD9B7C;A3C+pD8B;AACA;AACA,IAAA;A2C5pD9B3B;A3C8pD8B;AACA;AACA,IAAA;A2C3pD9ByE;A3C6pD8B;AACA;AACA,IAAA;A2C7pD9BL,IAAAA;AAEAlE,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAqBYkE,IAAAA;AAEQxE,IAAAA;AAEDuE,IAAAA;AAEA5C,IAAAA;AAEZ8C,IAAAA;AAEevE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AACnB,EAAA;AACF;AA9EgDvC;AAAzC;A3C6sDyB;AACA;A4C5sDzB;A5C8sDyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A4CtsDqB,EAAA;AACnC,IAAA;AAbPsG;A5CstDqB;AACA;AACA,IAAA;A4C1sD9B,EAAA;AACF;AApB4CC;AAArC;A5CkuDyB;AACA;A6CnuDnBI;A7CquDmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A6C7tDY,EAAA;AAC1B,IAAA;AAlBPC;A7CkvDqB;AACA;AACA,IAAA;A6CjuD9B,EAAA;AACF;AAzBmCL;AAA5B;A7C8vDyB;AACA;A8ChvDVM;A9CkvDU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A8ClsDyJ,EAAA;AAA5JjD,IAAAA;AACnB,IAAA;AAAE3D,MAAAA;AAAK,IAAA;AA7DfmG;A9CqwD8B;AACA;AACA,IAAA;A8ClwD9BI;A9CowD8B;AACA;AACA,IAAA;A8CjwD9B5C;A9CmwD8B;AACA;AACA,IAAA;A8ChwD9B3B;A9CkwD8B;AACA;AACA,IAAA;A8C/vD9BwE;A9CiwD8B;AACA;AACA,IAAA;A8C9vD9BC;A9CgwD8B;AACA;AACA,IAAA;A8C7vD9BL;A9C+vD8B;AACA;AACA,IAAA;A8C/vD9BlE,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAuB0BuE,IAAAA;AACAA,MAAAA;AAEP,MAAA;AACV,IAAA;AACAJ,MAAAA;AAEYI,MAAAA;AAESL,MAAAA;AAEX,MAAA;AACjB,IAAA;AAEkBxE,IAAAA;AAED2B,IAAAA;AAEGzB,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AACnB,EAAA;AACF;AAhG8CvC;AAAvC;A9C8zDyB;AACA;A+C90DzB;A/Cg1DyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A+Cx0DmB,EAAA;AACjC,IAAA;AAdPsG;A/Cy1DqB;AACA;AACA,IAAA;A+C50D9B,EAAA;AACF;AArB0CO;AAAnC;A/Cq2DyB;AACA;AgDt2DnBE;AhDw2DmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AgDh2DU,EAAA;AACxB,IAAA;AApBPH;AhDu3DqB;AACA;AACA,IAAA;AgDp2D9B,EAAA;AACF;AA3BiCC;AAA1B;AhDm4DyB;AACA;AiDh4DVG;AjDk4DU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AiD51DfC,EAAAA;AACP,IAAA;AAAEhH,MAAAA;AAAK,IAAA;AA/CfgC;AjDg5D8B;AACA;AACA,IAAA;AiD74D9BgF;AjD+4D8B;AACA;AACA,IAAA;AiD54D9BC;AjD84D8B;AACA;AACA,IAAA;AiD34D9BxD;AjD64D8B;AACA;AACA,IAAA;AiD14D9BE;AjD44D8B;AACA;AACA,IAAA;AiD54D9BzB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAmB0B0E,IAAAA;AAENhF,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEZ2E,IAAAA;AAEYtD,IAAAA;AAELF,IAAAA;AACd,EAAA;AAEF;AA3EiD1D;AAA1C;AjD27DyB;AACA;AkDh8DzB;AlDk8DyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AkD17DsB,EAAA;AACpC,IAAA;AAbPmH;AlD08DqB;AACA;AACA,IAAA;AkD97D9B,EAAA;AACF;AApB6CH;AAAtC;AlDs9DyB;AACA;AmDv9DnBI;AnDy9DmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AmDj9Da,EAAA;AAC3B,IAAA;AAjBPC;AnDq+DqB;AACA;AACA,IAAA;AmDr9D9B,EAAA;AACF;AAxBoCL;AAA7B;AnDi/DyB;AACA;AoDj/DzB;ApDm/DyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AoD59DH/E,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AA9BfgC;ApD+/D8B;AACA;AACA,IAAA;AoD5/D9BuB;ApD8/D8B;AACA;AACA,IAAA;AoD9/D9BrB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAiBoBiB,IAAAA;AAEAvB,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AACnB,EAAA;AACF;AAnDsDvC;AAA/C;ApD2hEyB;AACA;AqD7hEnBsH;ArD+hEmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AqDvhE2B,EAAA;AACzC,IAAA;AAfPC;ArDyiEqB;AACA;AACA,IAAA;AqD3hE9B,EAAA;AACF;AAtBkDC;AAArCF;ArDqjEmB;AACA;AsDtjEzB;AtDwjEyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AsDhjEkB,EAAA;AAChC,IAAA;AAfPG;AtDkkEqB;AACA;AACA,IAAA;AsDpjE9B,EAAA;AACF;AAtByCD;AAAlC;AtD8kEyB;AACA;AuD3kEzB;AvD6kEyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AuDjjEHvF,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AApCfgC;AvD0lE8B;AACA;AACA,IAAA;AuDvlE9ByF;AvDylE8B;AACA;AACA,IAAA;AuDtlE9B9D;AvDwlE8B;AACA;AACA,IAAA;AuDxlE9BzB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAkBoBmF,IAAAA;AAEAzF,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEAqB,IAAAA;AACnB,EAAA;AACF;AA3DqD5D;AAA9C;AvD2nEyB;AACA;AwDhoEnB2H;AxDkoEmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AwD1nEiB,EAAA;AAC/B,IAAA;AAhBPC;AxD6oEqB;AACA;AACA,IAAA;AwD9nE9B,EAAA;AACF;AAvBwCC;AAAjC;AxDypEyB;AACA;AyDxpEVC;AzD0pEU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AyD9nEH7F,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AApCfgC;AzDuqE8B;AACA;AACA,IAAA;AyDpqE9BuB;AzDsqE8B;AACA;AACA,IAAA;AyDnqE9BI;AzDqqE8B;AACA;AACA,IAAA;AyDrqE9BzB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAkBoBiB,IAAAA;AAEAvB,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEAqB,IAAAA;AACnB,EAAA;AACF;AA3D2C5D;AAApC;AzDwsEyB;AACA;A0D3sEnB+H;A1D6sEmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A0DrsEgB,EAAA;AAC9B,IAAA;AAXPC;A1DmtEqB;AACA;AACA,IAAA;A0DzsE9B,EAAA;AACF;AAlBuCF;AAAhC;A1D+tEyB;AACA;A2DhuEnBG;A3DkuEmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A2D1tEO,EAAA;AACrB,IAAA;AAhBPC;A3D6uEqB;AACA;AACA,IAAA;A2D9tE9B,EAAA;AACF;AAvB8BJ;AAAvB;A3DyvEyB;AACA;A4DxvEzB;A5D0vEyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A4D9tEfK,EAAAA;AACP,IAAA;AAAElI,MAAAA;AAAK,IAAA;AApCfgC;A5DuwE8B;AACA;AACA,IAAA;A4DpwE9BkG;A5DswE8B;AACA;AACA,IAAA;A4DnwE9BvE;A5DqwE8B;AACA;AACA,IAAA;A4DrwE9BzB,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAkB0B4F,IAAAA;AAENlG,IAAAA;AAEEE,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEAqB,IAAAA;AACnB,EAAA;AACF;AA3DqD5D;AAA9C;A5DwyEyB;AACA;A6D3yEnBoI;A7D6yEmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A6DryE0B,EAAA;AACxC,IAAA;AAXPC;A7DmzEqB;AACA;AACA,IAAA;A6DzyE9B,EAAA;AACF;AAlBiDC;AAApCF;A7D+zEmB;AACA;A8Dh0EnBG;A9Dk0EmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A8D1zEiB,EAAA;AAC/B,IAAA;AAhBPC;A9D60EqB;AACA;AACA,IAAA;A8D9zE9B,EAAA;AACF;AAvBwCF;AAAjC;A9Dy1EyB;AACA;A+Dr1EVG;A/Du1EU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A+D5yEHxG,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AAtDfgC;A/Du2E8B;AACA;AACA,IAAA;A+Dp2E9BuB;A/Ds2E8B;AACA;AACA,IAAA;A+Dn2E9BkF;A/Dq2E8B;AACA;AACA,IAAA;A+Dl2E9BC;A/Do2E8B;AACA;AACA,IAAA;A+Dj2E9BC;A/Dm2E8B;AACA;AACA,IAAA;A+Dh2E9BC;A/Dk2E8B;AACA;AACA,IAAA;A+Dl2E9B1G,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAEAC,IAAAA;AAqBoBiB,IAAAA;AAEAvB,IAAAA;AAERyG,IAAAA;AAEUvG,IAAAA;AAEFC,IAAAA;AAEGC,IAAAA;AAEJC,IAAAA;AAEAC,IAAAA;AAEMqG,IAAAA;AAERD,IAAAA;AAEME,IAAAA;AACvB,EAAA;AAEF;AApF6C7I;AAAtC;A/Du5EyB;AACA;AgE75EzB;AhE+5EyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AgEv5EkB,EAAA;AAChC,IAAA;AAdP8I;AhEw6EqB;AACA;AACA,IAAA;AgE35E9B,EAAA;AACF;AArByCL;AAAlC;AhEo7EyB;AACA;AiEr7EnBM;AjEu7EmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AiE/6ES,EAAA;AACvB,IAAA;AAnBPvJ;AjEq8EqB;AACA;AACA,IAAA;AiEn7E9B,EAAA;AACF;AA1BgCiJ;AAAzB;AjEi9EyB;AACA;AkEl9EnBO;AlEo9EmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AkE58EY,EAAA;AAC1B,IAAA;AAhBPpC;AlE+9EqB;AACA;AACA,IAAA;AkEh9E9B,EAAA;AACF;AAvBmCT;AAA5B;AlE2+EyB;AACA;AmE1+EnB8C;AnE4+EmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AmE/9EkD,EAAA;AAAjE5E,IAAAA;AACC,IAAA;AA3BP6E;AnE8/EqB;AACA;AACA,IAAA;AmE3/E9B7E;AnE6/E8B;AACA;AACA,IAAA;AmEv+EHA,IAAAA;AAC3B,EAAA;AACF;AApC+CE;AAAxC;AnE+gFyB;AACA;AoE7gFzB;ApE+gFyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AoE9+EHtC,EAAAA;AACnB,IAAA;AAAEhC,MAAAA;AAAK,IAAA;AAxCfgE;ApE2hF8B;AACA;AACA,IAAA;AoExhF9BhC;ApE0hF8B;AACA;AACA,IAAA;AoEvhF9BuB;ApEyhF8B;AACA;AACA,IAAA;AoEthF9B2F;ApEwhF8B;AACA;AACA,IAAA;AoErhF9BC;ApEuhF8B;AACA;AACA,IAAA;AoEphF9BC;ApEshF8B;AACA;AACA,IAAA;AoEvgFV7F,IAAAA;AAEAvB,IAAAA;AAEDgC,IAAAA;AAEDkF,IAAAA;AAEEC,IAAAA;AAEEC,IAAAA;AACtB,EAAA;AAEF;AA5DkDrJ;AAA3C;ApEikFyB;AACA;AqEvkFzB;ArEykFyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AqEjkFuB,EAAA;AACrC,IAAA;AAdPsJ;ArEklFqB;AACA;AACA,IAAA;AqErkF9B,EAAA;AACF;AArB8CC;AAAvC;ArE8lFyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/captcha-libs/captcha-libs/packages/twocaptcha/dist/index.cjs","sourcesContent":[null,"export abstract class CaptchaClient<TCreateTaskResponse, TaskRequests, TGetBalanceResponse = number> {\n  protected static baseUrl: string;\n\n  protected abstract clientKey: string;\n\n  protected abstract timeout?: number;\n\n  protected abstract pollingInterval?: number;\n\n  protected abstract createTask (params: unknown): Promise<TCreateTaskResponse>;\n  public abstract solve (params: TaskRequests): Promise<unknown>;\n  public abstract getBalance (): Promise<TGetBalanceResponse>;\n}\n","export const delay =\nasync (timeout: number) => await new Promise((resolve) => setTimeout(resolve, timeout));\n","import { CaptchaClient, delay } from \"@captcha-libs/captcha-client\";\n\nimport type { TwoCaptchaCreateTaskResponse, CaptchaClientParams, TwoCaptchaBalanceResponse, TwoCaptchaSuccessResponse, TwoCaptchaReportTaskResponse, TwoCaptchaReportTaskSuccessResponse } from \"./types\";\n\nimport type {\n  AmazonTask,\n  AmazonTaskProxyless,\n  AntiCyberSiAraTask,\n  AntiCyberSiAraTaskProxyless,\n  CapyTask,\n  CapyTaskProxyless,\n  DataDomeSliderTask,\n  FriendlyCaptchaTask,\n  FriendlyCaptchaTaskProxyless,\n  FunCaptchaTask,\n  FunCaptchaTaskProxyless,\n  GeeTestTask,\n  GeeTestTaskProxyless,\n  GeeTestV3Task,\n  GeeTestV3TaskProxyless,\n  GeeTestV4Task,\n  GeeTestV4TaskProxyless,\n  GridTask,\n  HCaptchaTask,\n  HCaptchaTaskProxyless,\n  ImageToTextTask,\n  KeyCaptchaTask,\n  KeyCaptchaTaskProxyless,\n  LeminTask,\n  LeminTaskProxyless,\n  MtCaptchaTask,\n  MtCaptchaTaskProxyless,\n  RecaptchaV2EnterpriseTask,\n  RecaptchaV2EnterpriseTaskProxyless,\n  RecaptchaV2Task,\n  RecaptchaV2TaskProxyless,\n  RecaptchaV3TaskProxyless,\n  Requests,\n  RotateTask,\n  TextCaptchaTask,\n  TurnstileTask,\n  TurnstileTaskProxyless,\n  AudioTask,\n  BoundingBoxTask,\n  CoordinatesTask,\n  DrawAroundTask,\n  CutCaptchaTask,\n  CutCaptchaTaskProxyless,\n  TencentTask,\n  TencentTaskProxyless,\n  AtbCaptchaTaskProxyless,\n  AtbCaptchaTask\n} from \"./Requests\";\n\nimport type { TwoCaptchaSolution, TwoCaptchaSuccessSolution } from \"./Solutions/_BaseSolution\";\n\nimport type {\n  AudioTaskSolution,\n  BoundingBoxTaskSolution,\n  CoordinatesTaskSolution,\n  DrawAroundTaskSolution,\n  AmazonTaskSolution,\n  AntiCyberSiAraTaskSolution,\n  CapyTaskSolution,\n  DataDomeSliderTaskSolution,\n  FriendlyCaptchaTaskSolution,\n  FunCaptchaTaskSolution,\n  GeeTestTaskSolution,\n  GeeTestV3TaskSolution,\n  GeeTestV4TaskSolution,\n  GridTaskSolution,\n  HCaptchaTaskSolution,\n  KeyCaptchaTaskSolution,\n  LeminTaskSolution,\n  MtCaptchaTaskSolution,\n  RecaptchaV2TaskSolution,\n  RecaptchaV3TaskSolution,\n  RotateTaskSolution,\n  TextCaptchaTaskSolution,\n  TurnstileTaskSolution,\n  ImageToTextTaskSolution,\n  TencentTaskSolution,\n  AtbCaptchaTaskSolution,\n  CutCaptchaTaskSolution\n} from \"./Solutions\";\n\nimport fetch, { AbortError } from \"node-fetch\";\n\n/**\n * @classdesc TwoCaptcha client\n * @class\n * @see {@link https://2captcha.com/api-docs/quick-start}\n */\nexport class TwoCaptcha extends CaptchaClient<TwoCaptchaCreateTaskResponse, Requests> {\n\n  /**\n   * @type {string} clientKey - YOUR_API_KEY from dashboard\n   */\n  protected clientKey: string;\n\n  /**\n   * @type {number} pollingInterval - polling interval to getTaskResult in ms. Default to 5000\n   */\n  protected pollingInterval: number;\n\n  /**\n   * @type {number} timeout - max timeout to getTaskResult in ms. Default to 120_000\n   */\n  protected timeout: number;\n\n  /**\n   * @type {string} baseUrl - api base url\n   */\n  protected baseUrl: string = \"https://api.2captcha.com\";\n\n  /**\n   * @param {object} [params] - CaptchaClientParams\n   * @param {string} [params.clientKey] - YOUR_API_KEY from dashboard\n   * @param {number} [params.timeout] - max timeout to getTaskResult\n   * @param {number} [params.pollingInterval] - polling interval to getTaskResult\n   */\n  constructor (params: CaptchaClientParams) {\n    const { clientKey, timeout = 120_000, pollingInterval = 5_000 } = params;\n\n    super();\n\n    this.clientKey = clientKey;\n\n    this.pollingInterval = pollingInterval;\n\n    this.timeout = timeout;\n  }\n\n  public async getBalance (): Promise<number> {\n    const body = await fetch(`${this.baseUrl}/getBalance`, {\n      \"body\": JSON.stringify({ \"clientKey\": this.clientKey }),\n      \"method\": \"POST\"\n    });\n\n    const response = await body.json() as TwoCaptchaBalanceResponse;\n\n    const { errorId, ...getBalanceResponse } = response;\n\n    if (errorId && \"errorDescription\" in getBalanceResponse) throw new Error(`TwoCaptcha: ${getBalanceResponse.errorDescription}`);\n\n    if (!(\"balance\" in getBalanceResponse)) throw new Error(\"TwoCaptcha: unknown error\");\n\n    return getBalanceResponse.balance;\n  }\n\n  /**\n   * @param {object} request - task payload to create task\n   * @return {Promise<TwoCaptchaCreateTaskResponse>} - response of createTask\n   */\n  protected async createTask (request: Requests): Promise<TwoCaptchaSuccessResponse> {\n    const body = await fetch(`${this.baseUrl}/createTask`, {\n      \"body\": JSON.stringify({\n        \"clientKey\": this.clientKey,\n        \"task\": request\n      }),\n      \"method\": \"POST\"\n    });\n\n    const response = await body.json() as TwoCaptchaCreateTaskResponse;\n\n    if (!(\"taskId\" in response)) throw new Error(`TwoCaptcha: ${response.errorCode}. ${response.errorDescription}`);\n\n    return response;\n  }\n\n  /**\n   * The method is used for automated feedback on captcha solutions.\n   * Make this request if the answer was declined by the target website.\n   * We use the collected statistics to improve our service,\n   * we check the solutions, we check workers who provided the solution\n   * and after the analysis we issue refunds for incorrectly solved captchas.\n   * If your success rate is close to 0% please do not send this request, there is definitely wrong with your code/software.\n   * @see {@link https://2captcha.com/api-docs/report-incorrect}\n   * @param {number} taskId - The id of your task\n   * @return {Promise<TwoCaptchaReportTaskSuccessResponse>} - response of createTask\n   */\n  public async reportIncorrect (taskId: number): Promise<TwoCaptchaReportTaskSuccessResponse> {\n    const body = await fetch(`${this.baseUrl}/reportIncorrect`, {\n      \"body\": JSON.stringify({\n        \"clientKey\": this.clientKey,\n        taskId\n      }),\n      \"method\": \"POST\"\n    });\n\n    const response = await body.json() as TwoCaptchaReportTaskResponse;\n\n    if (!(\"status\" in response)) throw new Error(`TwoCaptcha: ${response.errorCode}. ${response.errorDescription}`);\n\n    return response;\n  }\n\n  /**\n   * The method is used for automated feedback on captcha solutions.\n   * If the answer was accepted by the target website send this request.\n   * We use the collected statistics to make our service better.\n   * @see {@link https://2captcha.com/api-docs/report-correct}\n   * @param {number} taskId - The id of your task\n   * @return {Promise<TwoCaptchaReportTaskSuccessResponse>} - response of createTask\n   */\n  public async reportCorrect (taskId: number): Promise<TwoCaptchaReportTaskSuccessResponse> {\n    const body = await fetch(`${this.baseUrl}/reportCorrect`, {\n      \"body\": JSON.stringify({\n        \"clientKey\": this.clientKey,\n        taskId\n      }),\n      \"method\": \"POST\"\n    });\n\n    const response = await body.json() as TwoCaptchaReportTaskResponse;\n\n    if (!(\"status\" in response)) throw new Error(`TwoCaptcha: ${response.errorCode}. ${response.errorDescription}`);\n\n    return response;\n  }\n\n  /**\n  * @param {AudioTask} request - task payload to create AudioTask\n  * @see {@link https://2captcha.com/api-docs/audio}\n  * @return {Promise<TwoCaptchaSuccessSolution<AudioTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AudioTask): Promise<TwoCaptchaSuccessSolution<AudioTaskSolution>>;\n\n  /**\n  * @param {GridTask} request - task payload to create GridTask\n  * @see {@link https://2captcha.com/api-docs/grid}\n  * @return {Promise<TwoCaptchaSuccessSolution<GridTaskSolution>>} - response of createTask\n  */\n  public async solve (request: GridTask): Promise<TwoCaptchaSuccessSolution<GridTaskSolution>>;\n\n  /**\n  * @param {BoundingBoxTask} request - task payload to create BoundingBoxTask\n  * @see {@link https://2captcha.com/api-docs/bounding-box}\n  * @return {Promise<TwoCaptchaSuccessSolution<BoundingBoxTaskSolution>>} - response of createTask\n  */\n  public async solve (request: BoundingBoxTask): Promise<TwoCaptchaSuccessSolution<BoundingBoxTaskSolution>>;\n\n  /**\n  * @param {CoordinatesTask} request - task payload to create CoordinatesTask\n  * @see {@link https://2captcha.com/api-docs/coordinates}\n  * @return {Promise<TwoCaptchaSuccessSolution<CoordinatesTaskSolution>>} - response of createTask\n  */\n  public async solve (request: CoordinatesTask): Promise<TwoCaptchaSuccessSolution<CoordinatesTaskSolution>>;\n\n  /**\n  * @param {DrawAroundTask} request - task payload to create DrawAroundTask\n  * @see {@link https://2captcha.com/api-docs/draw-around}\n  * @return {Promise<TwoCaptchaSuccessSolution<DrawAroundTaskSolution>>} - response of createTask\n  */\n  public async solve (request: DrawAroundTask): Promise<TwoCaptchaSuccessSolution<DrawAroundTaskSolution>>;\n\n  /**\n  * @param {ImageToTextTask} request - task payload to create ImageToTextTask\n  * @see {@link https://2captcha.com/api-docs/normal-captcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<ImageToTextTaskSolution>>} - response of createTask\n  */\n  public async solve (request: ImageToTextTask): Promise<TwoCaptchaSuccessSolution<ImageToTextTaskSolution>>;\n\n  /**\n  * @param {RotateTask} request - task payload to create RotateTask\n  * @see {@link https://2captcha.com/api-docs/rotate}\n  * @return {Promise<TwoCaptchaSuccessSolution<RotateTaskSolution>>} - response of createTask\n  */\n  public async solve (request: RotateTask): Promise<TwoCaptchaSuccessSolution<RotateTaskSolution>>;\n\n  /**\n  * @param {TextCaptchaTask} request - task payload to create TextCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/text}\n  * @return {Promise<TwoCaptchaSuccessSolution<TextCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: TextCaptchaTask): Promise<TwoCaptchaSuccessSolution<TextCaptchaTaskSolution>>;\n\n  /**\n  * @param {AmazonTask | AmazonTaskProxyless} request - task payload to create AmazonTask or AmazonTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<AmazonTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AmazonTask | AmazonTaskProxyless): Promise<TwoCaptchaSuccessSolution<AmazonTaskSolution>>;\n\n  /**\n  * @param {AntiCyberSiAraTask | AntiCyberSiAraTaskProxyless} request - task payload to create AntiCyberSiAraTask or AntiCyberSiAraTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/anti-cyber-siara}\n  * @return {Promise<TwoCaptchaSuccessSolution<AntiCyberSiAraTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiCyberSiAraTask | AntiCyberSiAraTaskProxyless): Promise<TwoCaptchaSuccessSolution<AntiCyberSiAraTaskSolution>>;\n\n  /**\n  * @param {CapyTask | CapyTaskProxyless} request - task payload to create CapyTask or CapyTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/capy-puzzle-captcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<CapyTaskSolution>>} - response of createTask\n  */\n  public async solve (request: CapyTask | CapyTaskProxyless): Promise<TwoCaptchaSuccessSolution<CapyTaskSolution>>;\n\n  /**\n  * @param {CutCaptchaTask | CutCaptchaTaskProxyless} request - task payload to create CutCaptchaTask or CutCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/cutcaptcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<CutCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: CutCaptchaTask | CutCaptchaTaskProxyless): Promise<TwoCaptchaSuccessSolution<CutCaptchaTaskSolution>>;\n\n  /**\n  * @param {DataDomeSliderTask} request - task payload to create DataDomeSliderTask or DataDomeSliderTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/datadome-slider-captcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<DataDomeSliderTaskSolution>>} - response of createTask\n  */\n  public async solve (request: DataDomeSliderTask): Promise<TwoCaptchaSuccessSolution<DataDomeSliderTaskSolution>>;\n\n  /**\n  * @param {FriendlyCaptchaTask | FriendlyCaptchaTaskProxyless} request - task payload to create FriendlyCaptchaTask or FriendlyCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/friendly-captcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<FriendlyCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: FriendlyCaptchaTask | FriendlyCaptchaTaskProxyless): Promise<TwoCaptchaSuccessSolution<FriendlyCaptchaTaskSolution>>;\n\n  /**\n  * @param {FunCaptchaTask | FunCaptchaTaskProxyless} request - task payload to create FunCaptchaTask or FunCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<FunCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: FunCaptchaTask | FunCaptchaTaskProxyless): Promise<TwoCaptchaSuccessSolution<FunCaptchaTaskSolution>>;\n\n  /**\n  * @param {GeeTestV3Task | GeeTestV3TaskProxyless} request - task payload to create GeeTestV3Task or GeeTestV3TaskProxyless\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @return {Promise<TwoCaptchaSuccessSolution<GeeTestV3TaskSolution>>} - response of createTask\n  */\n  public async solve (request: GeeTestV3Task | GeeTestV3TaskProxyless): Promise<TwoCaptchaSuccessSolution<GeeTestV3TaskSolution>>;\n\n  /**\n  * @param {GeeTestV4Task | GeeTestV4TaskProxyless} request - task payload to create GeeTestV4Task or GeeTestV4TaskProxyless\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @return {Promise<TwoCaptchaSuccessSolution<GeeTestV4TaskSolution>>} - response of createTask\n  */\n  public async solve (request: GeeTestV4Task | GeeTestV4TaskProxyless): Promise<TwoCaptchaSuccessSolution<GeeTestV4TaskSolution>>;\n\n  /**\n  * @param {GeeTestTask | GeeTestTaskProxyless} request - task payload to create GeeTestTask or GeeTestTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @return {Promise<TwoCaptchaSuccessSolution<GeeTestTaskSolution>>} - response of createTask\n  */\n  public async solve (request: GeeTestTask | GeeTestTaskProxyless): Promise<TwoCaptchaSuccessSolution<GeeTestTaskSolution>>;\n\n  /**\n  * @param {HCaptchaTask | HCaptchaTaskProxyless} request - task payload to create HCaptchaTask or HCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/hcaptcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<HCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: HCaptchaTask | HCaptchaTaskProxyless): Promise<TwoCaptchaSuccessSolution<HCaptchaTaskSolution>>;\n\n  /**\n  * @param {KeyCaptchaTask | KeyCaptchaTaskProxyless} request - task payload to create KeyCaptchaTask or KeyCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/keycaptcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<KeyCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: KeyCaptchaTask | KeyCaptchaTaskProxyless): Promise<TwoCaptchaSuccessSolution<KeyCaptchaTaskSolution>>;\n\n  /**\n  * @param {LeminTask | LeminTaskProxyless} request - task payload to create LeminTask or LeminTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/lemin}\n  * @return {Promise<TwoCaptchaSuccessSolution<LeminTaskSolution>>} - response of createTask\n  */\n  public async solve (request: LeminTask | LeminTaskProxyless): Promise<TwoCaptchaSuccessSolution<LeminTaskSolution>>;\n\n  /**\n  * @param {MtCaptchaTask | MtCaptchaTaskProxyless} request - task payload to create MtCaptchaTask or MtCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/mtcaptcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<MtCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: MtCaptchaTask | MtCaptchaTaskProxyless): Promise<TwoCaptchaSuccessSolution<MtCaptchaTaskSolution>>;\n\n  /**\n  * @param {RecaptchaV2EnterpriseTask | RecaptchaV2EnterpriseTaskProxyless | RecaptchaV2Task | RecaptchaV2TaskProxyless} request - task payload to create RecaptchaV2 task\n  * - {@link https://2captcha.com/api-docs/recaptcha-v2}\n  * - {@link https://2captcha.com/api-docs/recaptcha-v2-enterprise}\n  * @return {Promise<TwoCaptchaSuccessSolution<RecaptchaV2TaskSolution>>} - response of createTask\n  */\n  public async solve (request: RecaptchaV2EnterpriseTask | RecaptchaV2EnterpriseTaskProxyless | RecaptchaV2Task | RecaptchaV2TaskProxyless): Promise<TwoCaptchaSuccessSolution<RecaptchaV2TaskSolution>>;\n\n  /**\n  * @param {RecaptchaV3TaskProxyless} request - task payload to create RecaptchaV3TaskProxyless\n  * @see {@link https://3captcha.com/api-docs/recaptcha-v3}\n  * @return {Promise<TwoCaptchaSuccessSolution<RecaptchaV3TaskSolution>>} - response of createTask\n  */\n  public async solve (request: RecaptchaV3TaskProxyless): Promise<TwoCaptchaSuccessSolution<RecaptchaV3TaskSolution>>;\n\n  /**\n  * @param {TurnstileTask | TurnstileTaskProxyless} request - task payload to create TurnstileTask or TurnstileTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/cloudflare-turnstile}\n  * @return {Promise<TwoCaptchaSuccessSolution<TurnstileTaskSolution>>} - response of createTask\n  */\n  public async solve (request: TurnstileTask | TurnstileTaskProxyless): Promise<TwoCaptchaSuccessSolution<TurnstileTaskSolution>>;\n\n  /**\n  * @param {TencentTask | TencentTaskProxyless} request - task payload to create TencentTask or TencentTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/tencent}\n  * @return {Promise<TwoCaptchaSuccessSolution<TencentTaskSolution>>} - response of createTask\n  */\n  public async solve (request: TencentTask | TencentTaskProxyless): Promise<TwoCaptchaSuccessSolution<TencentTaskSolution>>;\n\n  /**\n  * @param {AtbCaptchaTask | AtbCaptchaTaskProxyless} request - task payload to create AtbCaptchaTask or AtbCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/atb-captcha}\n  * @return {Promise<TwoCaptchaSuccessSolution<AtbCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AtbCaptchaTask | AtbCaptchaTaskProxyless): Promise<TwoCaptchaSuccessSolution<AtbCaptchaTaskSolution>>;\n\n  /**\n  * @param {Requests} request - task payload to create task or taskProxyless\n  * @return {Promise<TwoCaptchaSuccessSolution<TSolution>>} - response of createTask\n  */\n  public async solve<TSolution>(request: Requests): Promise<TwoCaptchaSuccessSolution<TSolution>> {\n\n    /**\n     * _taskType - Only used for correct method overloading intellisense\n     */\n    const {\n      _isAmazonTask = false,\n      _isAmazonTaskProxyless = false,\n      _isAntiCyberSiAraTask = false,\n      _isAntiCyberSiAraTaskProxyless = false,\n      _isCapyTask = false,\n      _CutCaptchaTask = false,\n      _isCapyTaskProxyless = false,\n      _isCutCaptchaTaskProxyless = false,\n      _isDataDomeSliderTask = false,\n      _isFriendlyCaptchaTask = false,\n      _isFriendlyCaptchaTaskProxyless = false,\n      _isFunCaptchaTask = false,\n      _isFunCaptchaTaskProxyless = false,\n      _isGeeTestTask = false,\n      _isGeeTestTaskProxyless = false,\n      _isGeeTestV3Task = false,\n      _isGeeTestV3TaskProxyless = false,\n      _isGeeTestV4Task = false,\n      _isGeeTestV4TaskProxyless = false,\n      _isGridTask = false,\n      _isHCaptchaTask = false,\n      _isHCaptchaTaskProxyless = false,\n      _isImageToTextTask = false,\n      _isKeyCaptchaTask = false,\n      _isKeyCaptchaTaskProxyless = false,\n      _isLeminTask = false,\n      _isLeminTaskProxyless = false,\n      _isMtCaptchaTask = false,\n      _isMtCaptchaTaskProxyless = false,\n      _isRecaptchaV2EnterpriseTask = false,\n      _isRecaptchaV2EnterpriseTaskProxyless = false,\n      _isRecaptchaV2Task = false,\n      _isRecaptchaV2TaskProxyless = false,\n      _isRecaptchaV3TaskProxyless = false,\n      _isRequests = false,\n      _isRotateTask = false,\n      _isTextCaptchaTask = false,\n      _isTurnstileTask = false,\n      _isTurnstileTaskProxyless = false,\n      _isAudioTask = false,\n      _isBoundingBoxTask = false,\n      _isCoordinatesTask = false,\n      _isDrawAroundTask = false,\n      _isAtbCaptchaTask = false,\n      _isAtbCaptchaTaskProxyless = false,\n      _isTencentTask = false,\n      _isTencentTaskProxyless = false,\n      ...payload\n    } = {\n      \"_isAmazonTask\": false,\n      \"_isAmazonTaskProxyless\": false,\n      \"_isAntiCyberSiAraTask\": false,\n      \"_isAntiCyberSiAraTaskProxyless\": false,\n      \"_isCapyTask\": false,\n      \"_CutCaptchaTask\": false,\n      \"_isCapyTaskProxyless\": false,\n      \"_isCutCaptchaTaskProxyless\": false,\n      \"_isDataDomeSliderTask\": false,\n      \"_isFriendlyCaptchaTask\": false,\n      \"_isFriendlyCaptchaTaskProxyless\": false,\n      \"_isFunCaptchaTask\": false,\n      \"_isFunCaptchaTaskProxyless\": false,\n      \"_isGeeTestTask\": false,\n      \"_isGeeTestTaskProxyless\": false,\n      \"_isGeeTestV3Task\": false,\n      \"_isGeeTestV3TaskProxyless\": false,\n      \"_isGeeTestV4Task\": false,\n      \"_isGeeTestV4TaskProxyless\": false,\n      \"_isGridTask\": false,\n      \"_isHCaptchaTask\": false,\n      \"_isHCaptchaTaskProxyless\": false,\n      \"_isImageToTextTask\": false,\n      \"_isKeyCaptchaTask\": false,\n      \"_isKeyCaptchaTaskProxyless\": false,\n      \"_isLeminTask\": false,\n      \"_isLeminTaskProxyless\": false,\n      \"_isMtCaptchaTask\": false,\n      \"_isMtCaptchaTaskProxyless\": false,\n      \"_isRecaptchaV2EnterpriseTask\": false,\n      \"_isRecaptchaV2EnterpriseTaskProxyless\": false,\n      \"_isRecaptchaV2Task\": false,\n      \"_isRecaptchaV2TaskProxyless\": false,\n      \"_isRecaptchaV3TaskProxyless\": false,\n      \"_isRequests\": false,\n      \"_isRotateTask\": false,\n      \"_isTextCaptchaTask\": false,\n      \"_isTurnstileTask\": false,\n      \"_isTurnstileTaskProxyless\": false,\n      \"_isAudioTask\": false,\n      \"_isBoundingBoxTask\": false,\n      \"_isCoordinatesTask\": false,\n      \"_isDrawAroundTask\": false,\n      \"_isAtbCaptchaTask\": false,\n      \"_isAtbCaptchaTaskProxyless\": false,\n      \"_isTencentTask\": false,\n      \"_isTencentTaskProxyless\": false,\n      ...request\n    };\n\n    /* eslint @stylistic/padded-blocks: [\"off\"]*/\n    const balance = await this.getBalance();\n\n    if (!balance) throw new Error(\"TwoCaptcha: ERROR_ZERO_BALANCE\");\n\n    const createTaskResponse = await this.createTask(payload as Requests);\n\n    const abortSignal = AbortSignal.timeout(this.timeout);\n\n    const isAborted = abortSignal.aborted;\n\n    try {\n      while (!isAborted) {\n        const body = await fetch(`${this.baseUrl}/getTaskResult`, {\n          \"body\": JSON.stringify({\n            \"clientKey\": this.clientKey,\n            \"taskId\": createTaskResponse.taskId\n          }),\n          \"method\": \"POST\",\n          \"signal\": abortSignal\n        });\n\n        const response = await body.json() as TwoCaptchaSolution<TSolution>;\n\n        if (\"solution\" in response) {\n          return {\n            ...response,\n            \"taskId\": createTaskResponse.taskId\n          };\n        } else if (response.errorId) {\n          throw new Error(`TwoCaptcha: ${response.errorDescription}`);\n        }\n\n        await delay(this.pollingInterval);\n      }\n    } catch (error) {\n      if (error instanceof AbortError && error.name === \"AbortError\") throw new Error(`TwoCaptcha timeout ${this.timeout} exceeded!`);\n      else throw error;\n    }\n\n    throw new Error(\"TwoCaptcha finished with error\");\n  }\n}\n","const _TaskTypes = [\n  \"ImageToTextTask\",\n  \"TextCaptchaTask\",\n  \"RotateTask\",\n  \"CoordinatesTask\",\n  \"GridTask\",\n  \"DrawAroundTask\",\n  \"BoundingBoxTask\",\n  \"AudioTask\",\n  \"RecaptchaV2TaskProxyless\",\n  \"RecaptchaV2Task\",\n  \"RecaptchaV2EnterpriseTask\",\n  \"RecaptchaV2EnterpriseTaskProxyless\",\n  \"RecaptchaV3TaskProxyless\",\n  \"HCaptchaTask\",\n  \"HCaptchaTaskProxyless\",\n  \"FunCaptchaTask\",\n  \"FunCaptchaTaskProxyless\",\n  \"GeeTestTask\",\n  \"GeeTestTaskProxyless\",\n  \"TurnstileTask\",\n  \"TurnstileTaskProxyless\",\n  \"CapyTask\",\n  \"CapyTaskProxyless\",\n  \"KeyCaptchaTask\",\n  \"KeyCaptchaTaskProxyless\",\n  \"LeminTask\",\n  \"LeminTaskProxyless\",\n  \"AmazonTask\",\n  \"AmazonTaskProxyless\",\n  \"AntiCyberSiAraTask\",\n  \"AntiCyberSiAraTaskProxyless\",\n  \"MtCaptchaTask\",\n  \"MtCaptchaTaskProxyless\",\n  \"CutCaptchaTask\",\n  \"CutCaptchaTaskProxyless\",\n  \"DataDomeSliderTask\",\n  \"FriendlyCaptchaTask\",\n  \"FriendlyCaptchaTaskProxyless\",\n  \"TencentTask\",\n  \"TencentTaskProxyless\",\n  \"AtbCaptchaTask\",\n  \"AtbCaptchaTaskProxyless\"\n] as const;\n\nexport type TaskTypes = typeof _TaskTypes[number];\n\nexport interface BaseParams { \"type\": TaskTypes }\n\nexport type ProxyTypes = \"http\" | \"socks4\" | \"socks5\";\n\nexport type ProxyCredentials = {\n  \"proxyAddress\": string;\n  \"proxyLogin\"?: string;\n  \"proxyPassword\"?: string;\n  \"proxyPort\": number;\n  \"proxyType\": ProxyTypes;\n};\n\nexport type ProxyRequiredTaskParams<T> = ProxyCredentials & T;\n\nexport type ProxylessTaskParams<T> = Omit<T, keyof ProxyCredentials>;\n\n/**\n * @type {_IsTaskType} _IsTaskType - Only used for correct method overloading intellisense\n */\nexport type _IsTaskType = { readonly [type in TaskTypes as `_is${type}`]?: boolean };\n\n//\n// @classdesc BaseTask for Capsolver tasks\n// @class\n//\nexport abstract class BaseTask {\n\n  /**\n  * @type {TaskTypes} type - task type\n  */\n  protected type: TaskTypes;\n\n  constructor ({ type }: BaseParams) {\n    this.type = type;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask, type BaseParams } from \"../_BaseTaskRequest\";\n\ntype TextCaptchaParams = Omit<BaseParams, \"type\"> & { \"comment\": string };\n\n//\n// The method can be used to bypass tasks where you need to answer a question.\n// You can add some context that can help workers to provide the answer.\n// @extends {BaseTask}\n// {@link https://2captcha.com/api-docs/text}\n//\nexport class TextCaptchaTask extends BaseTask implements _IsTaskType, TextCaptchaParams {\n\n  /**\n  * @type {string} comment - Text with a question you need to answer.\n  */\n  comment: string;\n\n  /**\n  * @type {boolean} _isTextCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isTextCaptchaTask: _IsTaskType[\"_isTextCaptchaTask\"] = true;\n\n  /**\n  * Create TextCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/text}\n  * @param {Object} params - TextCaptchaParams\n  * @param {string} [params.comment] - Text with a question you need to answer.\n  */\n  constructor ({ comment }: TextCaptchaParams) {\n    super({ \"type\": \"TextCaptchaTask\" });\n\n    this.comment = comment;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask, type BaseParams } from \"../_BaseTaskRequest\";\n\ntype RotateTaskParams = Omit<BaseParams, \"type\"> & {\n  \"angle\"?: number;\n  \"body\": string;\n  \"comment\"?: string;\n  \"imgInstructions\"?: string;\n};\n\n/**\n * The method is used to solve captchas where you need to rotate an object to place it properly. Returns the required rotation angle.\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/rotate}\n */\nexport class RotateTask extends BaseTask implements _IsTaskType, RotateTaskParams {\n\n  /**\n  * @type {string} comment - A comment will be shown to workers to help them to solve the captcha properly\n  */\n  comment?: string;\n\n  /**\n   * @type {string} body - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n   */\n  body: string;\n\n  /**\n   * @type {number} angle - One step rotation angle. You can count how many steps are required to rotate the image 360 degrees and then divide 360 by this count to get the angle value\n   */\n  angle?: number;\n\n  /**\n   * @type {string} imgInstructions - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n   */\n  imgInstructions?: string;\n\n  /**\n  * @type {boolean} _isRotateTask - Only used for correct method overloading intellisense\n  */\n  readonly _isRotateTask: _IsTaskType[\"_isRotateTask\"] = true;\n\n  /**\n  * Create RotateTask\n  * @see {@link https://2captcha.com/api-docs/rotate}\n  * @param {Object} params - RotateTaskParams\n  * @param {string} [params.body] - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n  * @param {string=} [params.comment] - A comment will be shown to workers to help them to solve the captcha properly\n  * @param {string=} [params.angle] - One step rotation angle. You can count how many steps are required to rotate the image 360 degrees and then divide 360 by this count to get the angle value\n  * @type {string} [params.imgInstructions] - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n  */\n  constructor ({ body, comment, angle, imgInstructions }: RotateTaskParams) {\n    super({ \"type\": \"RotateTask\" });\n\n    this.body = body;\n\n    this.comment = comment;\n\n    this.angle = angle;\n\n    this.imgInstructions = imgInstructions;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask, type BaseParams } from \"../_BaseTaskRequest\";\n\nexport enum NumericOptions {\n  \"none\" = 0,\n  \"onlyNumbers\" = 1,\n  \"onlyLetters\" = 2,\n  \"numbersOrLetters\" = 3,\n  \"numbersAndLetters\" = 4\n}\n\ntype ImageToTextParams = Omit<BaseParams, \"type\"> & {\n  \"body\": string;\n  \"case\"?: boolean;\n  \"comment\"?: string;\n  \"imgInstructions\"?: string;\n  \"math\"?: boolean;\n  \"maxLength\"?: number;\n  \"minLength\"?: number;\n  \"numeric\"?: NumericOptions;\n  \"phrase\"?: boolean;\n};\n\n/**\n * Normal CAPTCHA is an image that contains distored but human-readable text. To solve the captcha user have to type the text from the image.\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/normal-captcha}\n */\nexport class ImageToTextTask extends BaseTask implements _IsTaskType, ImageToTextParams {\n\n  /**\n   * @type {string} body - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n   */\n  body: string;\n\n  /**\n   * @type {string} case - Case sensitive or not\n   */\n  case?: boolean;\n\n  /**\n   * @type {string} comment - A comment will be shown to workers to help them to solve the captcha properly\n   */\n  comment?: string;\n\n  /**\n   * @type {string} imgInstructions - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format.\n   */\n  imgInstructions?: string;\n\n  /**\n   * @type {string} math - Captcha requires calculation\n   */\n  math?: boolean;\n\n  /**\n   * @type {number} maxLength - defines maximal answer length\n   */\n  maxLength?: number;\n\n  /**\n   * @type {number} maxLength - defines minimal answer length\n   */\n  minLength?: number;\n\n  /**\n   * @type {number} maxLength - Numeric preference\n   */\n  numeric?: NumericOptions;\n\n  /**\n   * @type {number} maxLength - The answer should contain at least two words separated by space.\n   */\n  phrase?: boolean;\n\n  /**\n  * @type {boolean} _isImageToTextTask - Only used for correct method overloading intellisense\n  */\n  readonly _isImageToTextTask: _IsTaskType[\"_isImageToTextTask\"] = true;\n\n  /**\n  * Create ImageToTextTask\n  * @see {@link https://2captcha.com/api-docs/normal-captcha}\n  * @param {Object} params - ImageToTextParams\n  * @param {string} [params.body] - \tImage encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n  * @param {boolean=} [params.case] - Case sensitive or not\n  * @param {string=} [params.comment] - A comment will be shown to workers to help them to solve the captcha properly\n  * @param {string=} [params.imgInstructions] - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format.\n  * @param {boolean=} [params.math] - captcha requires calculation\n  * @param {number=} [params.maxLength] - defines maximal answer length\n  * @param {number=} [params.minLength] - defines minimal answer length\n  * @param {NumericOptions=} [params.numeric] - Numeric preference\n  * @param {boolean=} [params.phrase] - The answer should contain at least two words separated by space.\n  */\n  constructor ({ body, \"case\": _case, comment, imgInstructions, math, maxLength, minLength, numeric, phrase }: ImageToTextParams) {\n    super({ \"type\": \"ImageToTextTask\" });\n\n    this.body = body;\n\n    this.case = _case;\n\n    this.comment = comment;\n\n    this.imgInstructions = imgInstructions;\n\n    this.math = math;\n\n    this.maxLength = maxLength;\n\n    this.minLength = minLength;\n\n    this.numeric = numeric;\n\n    this.phrase = phrase;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ntype GridTaskParams = {\n  \"body\": string;\n  \"columns\"?: number;\n  \"comment\"?: string;\n  \"imgInstructions\"?: string;\n  \"rows\"?: number;\n};\n\ntype GridTaskParamsCommentParams = GridTaskParams & { \"comment\": string };\n\ntype GridTaskParamsImgInstructionsParams = GridTaskParams & { \"imgInstructions\": string };\n\n/**\n * The method can be used to bypass tasks where a grid is applied to an image and you need to click on grid tiles, like reCAPTCHA or hCaptcha images.\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/grid}\n */\nexport class GridTask extends BaseTask implements _IsTaskType, GridTaskParams {\n\n  /**\n  * @type {string} comment - A comment will be shown to workers to help them to solve the captcha properly\n  */\n  comment?: string;\n\n  /**\n   * @type {string} body - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n   */\n  body: string;\n\n  /**\n   * @type {string} imgInstructions - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n   */\n  imgInstructions?: string;\n\n  /**\n   * @type {number} rows - \tNumber of grid rows\n   */\n  rows?: number;\n\n  /**\n   * @type {number} columns -\tNumber of grid columns\n   */\n  columns?: number;\n\n  /**\n  * @type {boolean} _isGridTask - Only used for correct method overloading intellisense\n  */\n  readonly _isGridTask: _IsTaskType[\"_isGridTask\"] = true;\n\n  /**\n  * Create GridTask\n  * @see {@link https://2captcha.com/api-docs/grid}\n  * @param {Object} params - GridTaskParams\n  * @param {string} [params.body] - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n  * @param {string=} [params.comment] - A comment will be shown to workers to help them to solve the captcha properly\n  * @param {string} [params.imgInstructions] - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n  * @param {number} [params.rows] - Number of grid rows\n  * @param {number} [params.columns] - Number of grid columns\n  */\n  constructor ({ body, comment, imgInstructions, columns, rows }: GridTaskParamsCommentParams | GridTaskParamsImgInstructionsParams) {\n    super({ \"type\": \"GridTask\" });\n\n    this.body = body;\n\n    this.comment = comment;\n\n    this.imgInstructions = imgInstructions;\n\n    this.rows = rows;\n\n    this.columns = columns;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ninterface DrawAroundTaskParams {\n  \"body\": string;\n  \"comment\"?: string;\n  \"imgInstructions\"?: string;\n}\n\ntype DrawAroundTaskCommentParam = DrawAroundTaskParams & { \"comment\": string };\n\ntype DrawAroundTaskImgInstructionsParam = DrawAroundTaskParams & { \"imgInstructions\": string };\n\n/**\n * The method can be used to bypass tasks where you need to draw a line around a specific object shown on an image.\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/draw-around}\n */\nexport class DrawAroundTask extends BaseTask implements _IsTaskType, DrawAroundTaskParams {\n\n  /**\n  * @type {string} comment - A comment will be shown to workers to help them to solve the captcha properly\n  */\n  comment?: string;\n\n  /**\n   * @type {string} body - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n   */\n  body: string;\n\n  /**\n   * @type {string} imgInstructions - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n   */\n  imgInstructions?: string;\n\n  /**\n  * @type {boolean} _isDrawAroundTask - Only used for correct method overloading intellisense\n  */\n  readonly _isDrawAroundTask: _IsTaskType[\"_isDrawAroundTask\"] = true;\n\n  /**\n  * Create DrawAroundTask\n  * @see {@link https://2captcha.com/api-docs/draw-around}\n  * @param {Object} params - DrawAroundTaskParams\n  * @param {string} [params.body] - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n  * @param {string=} [params.comment] - A comment will be shown to workers to help them to solve the captcha properly\n  * @type {string} [params.imgInstructions] - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n  */\n  constructor ({ body, comment, imgInstructions }: DrawAroundTaskCommentParam | DrawAroundTaskImgInstructionsParam) {\n    super({ \"type\": \"DrawAroundTask\" });\n\n    this.body = body;\n\n    this.comment = comment;\n\n    this.imgInstructions = imgInstructions;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ntype CoordinatesTaskParams = {\n  \"body\": string;\n  \"comment\"?: string;\n  \"imgInstructions\"?: string;\n};\n\n/**\n * The method can be used to bypass tasks where you need to click on some points of an image.\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/coordinates}\n */\nexport class CoordinatesTask extends BaseTask implements _IsTaskType, CoordinatesTaskParams {\n\n  /**\n  * @type {string} comment - A comment will be shown to workers to help them to solve the captcha properly\n  */\n  comment?: string;\n\n  /**\n   * @type {string} body - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n   */\n  body: string;\n\n  /**\n   * @type {string} imgInstructions - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n   */\n  imgInstructions?: string;\n\n  /**\n  * @type {boolean} _isCoordinatesTask - Only used for correct method overloading intellisense\n  */\n  readonly _isCoordinatesTask: _IsTaskType[\"_isCoordinatesTask\"] = true;\n\n  /**\n  * Create CoordinatesTask\n  * @see {@link https://2captcha.com/api-docs/coordinates}\n  * @param {Object} params - CoordinatesTaskParams\n  * @param {string} [params.body] - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n  * @param {string=} [params.comment] - A comment will be shown to workers to help them to solve the captcha properly\n  * @param {string} [params.imgInstructions] - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n  */\n  constructor ({ body, comment, imgInstructions }: CoordinatesTaskParams) {\n    super({ \"type\": \"CoordinatesTask\" });\n\n    this.body = body;\n\n    this.comment = comment;\n\n    this.imgInstructions = imgInstructions;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ninterface BoundingBoxTaskParams {\n  \"body\": string;\n  \"comment\"?: string;\n  \"imgInstructions\"?: string;\n}\n\ntype BoundingBoxTaskCommentParam = BoundingBoxTaskParams & { \"comment\": string };\n\ntype BoundingBoxTaskImgInstructionsParam = BoundingBoxTaskParams & { \"imgInstructions\": string };\n\n/**\n * The method can be used to solve tasks where you need to select a specific object or draw a box around an object shown on an image.\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/bounding-box}\n */\nexport class BoundingBoxTask extends BaseTask implements _IsTaskType, BoundingBoxTaskParams {\n\n  /**\n  * @type {string} comment - A comment will be shown to workers to help them to solve the captcha properly\n  */\n  comment?: string;\n\n  /**\n   * @type {string} body - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n   */\n  body: string;\n\n  /**\n   * @type {string} imgInstructions - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n   */\n  imgInstructions?: string;\n\n  /**\n  * @type {boolean} _isBoundingBoxTask - Only used for correct method overloading intellisense\n  */\n  readonly _isBoundingBoxTask: _IsTaskType[\"_isBoundingBoxTask\"] = true;\n\n  /**\n  * Create BoundingBoxTask\n  * @see {@link https://2captcha.com/api-docs/bounding-box}\n  * @param {Object} params - BoundingBoxTaskParams\n  * @param {string} [params.body] - Image encoded into Base64 format. Data-URI format (containing data:content/type prefix) is also supported\n  * @param {string=} [params.comment] - A comment will be shown to workers to help them to solve the captcha properly\n  * @type {string=} [params.imgInstructions] - An optional image with instruction that will be shown to workers. Image should be encoded into Base64 format. Max file size: 100 kB\n  */\n  constructor ({ body, comment, imgInstructions }: BoundingBoxTaskCommentParam | BoundingBoxTaskImgInstructionsParam) {\n    super({ \"type\": \"BoundingBoxTask\" });\n\n    this.body = body;\n\n    this.comment = comment;\n\n    this.imgInstructions = imgInstructions;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask, type BaseParams } from \"../_BaseTaskRequest\";\n\ntype AudioLangs = \"de\" | \"el\" | \"en\" | \"fr\" | \"pt\" | \"ru\";\n\ntype AudioTaskParams = Omit<BaseParams, \"type\"> & {\n  \"body\": string;\n  \"lang\": AudioLangs;\n};\n\n/**\n * We provide a speech recognition method that allows you to convert an audio record to text. The method can be used to bypass audio captchas or to recognize any audio record.\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/audio}\n */\nexport class AudioTask extends BaseTask implements _IsTaskType, AudioTaskParams {\n\n  /**\n   * @type {string} body - Base64 encoded audio file in mp3 format\n   */\n  body: string;\n\n  /**\n  * @type {string} lang - The language of audio record. Supported languages are: en, fr, de, el, pt, ru\n  */\n  lang: AudioLangs;\n\n  /**\n   * @type {boolean} _isAudioTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAudioTask: _IsTaskType[\"_isAudioTask\"] = true;\n\n  /**\n  * Create AudioTask\n  * @see {@link https://2captcha.com/api-docs/audio}\n  * @param {Object} params - AudioTaskParams\n  * @param {string} [params.body] - Base64 encoded audio file in mp3 format\n  * @param {string} [params.lang] - The language of audio record. Supported languages are: en, fr, de, el, pt, ru\n  */\n  constructor ({ lang, body }: AudioTaskParams) {\n    super({ \"type\": \"AudioTask\" });\n\n    this.body = body;\n\n    this.lang = lang;\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type TencentTaskBaseParams = Partial<ProxyCredentials> & {\n  \"appId\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for TencentTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/tencent}\n */\nexport abstract class TencentTaskBase extends BaseTask implements TencentTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} appId - The TencentTask sitekey value found in the page code.\n   */\n  appId: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  proxy?: string;\n\n  /**\n  * TencentTaskBase\n  * @see {@link https://2captcha.com/api-docs/tencent}\n  * @param {Object} params - TencentTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.appId] - The TencentTask sitekey value found in the page code.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ appId, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: TencentTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.appId = appId;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { TencentTaskBaseParams } from \"./Base/_TencentTaskBase\";\n\nimport { TencentTaskBase } from \"./Base/_TencentTaskBase\";\n\ntype TencentTaskProxylessParams = ProxylessTaskParams<TencentTaskBaseParams>;\n\n/**\n * Token-based method to bypass Tencent captcha.\n * @extends {CapyTaskBase}\n * @see {@link https://2captcha.com/api-docs/tencent}\n */\nexport class TencentTaskProxyless extends TencentTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isTencentTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isTencentTaskProxyless: _IsTaskType[\"_isTencentTaskProxyless\"] = true;\n\n  /**\n  * Create TencentTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/tencent}\n  * @param {Object} params - TencentTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.appId] - The TencentTask sitekey value found in the page code.\n  */\n  constructor (params: TencentTaskProxylessParams) {\n    super(params, \"TencentTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { TencentTaskBaseParams } from \"./Base/_TencentTaskBase\";\n\nimport { TencentTaskBase } from \"./Base/_TencentTaskBase\";\n\ntype TencentTaskParams = ProxyRequiredTaskParams<TencentTaskBaseParams>;\n\n/**\n * Token-based method to bypass Tencent captcha.\n * @extends {TencentTaskBase}\n * @see {@link https://2captcha.com/api-docs/tencent}\n */\nexport class TencentTask extends TencentTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isTencentTask - Only used for correct method overloading intellisense\n  */\n  readonly _isTencentTask: _IsTaskType[\"_isTencentTask\"] = true;\n\n  /**\n  * Create TencentTask\n  * @see {@link https://2captcha.com/api-docs/tencent}\n  * @param {Object} params - TencentTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.appId] - The TencentTask sitekey value found in the page code.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: TencentTaskParams) {\n    super(params, \"TencentTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type AtbCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"apiServer\": string;\n  \"appId\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for AtbCaptchaTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/atb-captcha}\n */\nexport abstract class AtbCaptchaTaskBase extends BaseTask implements AtbCaptchaTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} appId - The value of appId parameter in the website source code.\n   */\n  appId: string;\n\n  /**\n   * @type {string} apiServer - The value of apiServer parameter in the website source code.\n   */\n  apiServer: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  proxy?: string;\n\n  /**\n  * AtbCaptchaTaskBase\n  * @see {@link https://2captcha.com/api-docs/atb-captcha}\n  * @param {Object} params - AtbCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.appId] - The value of appId parameter in the website source code.\n  * @param {string} [params.apiServer] - The value of apiServer parameter in the website source code.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ appId, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, apiServer }: AtbCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.appId = appId;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.apiServer = apiServer;\n  }\n\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AtbCaptchaTaskBaseParams } from \"./Base/_AtbCaptchaTaskBase\";\n\nimport { AtbCaptchaTaskBase } from \"./Base/_AtbCaptchaTaskBase\";\n\ntype AtbCaptchaTaskProxylessParams = ProxylessTaskParams<AtbCaptchaTaskBaseParams>;\n\n/**\n * Token-based method to bypass Tencent captcha.\n * @extends {AtbCaptchaTaskProxylessBase}\n * @see {@link https://2captcha.com/api-docs/atb-captcha}\n */\nexport class AtbCaptchaTaskProxyless extends AtbCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAtbCaptchaTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isAtbCaptchaTaskProxyless: _IsTaskType[\"_isAtbCaptchaTaskProxyless\"] = true;\n\n  /**\n  * Create AtbCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/atb-captcha}\n  * @param {Object} params - AtbCaptchaTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.appId] - The value of appId parameter in the website source code.\n  * @param {string} [params.apiServer] - The value of apiServer parameter in the website source code.\n  */\n  constructor (params: AtbCaptchaTaskProxylessParams) {\n    super(params, \"AtbCaptchaTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AtbCaptchaTaskBaseParams } from \"./Base/_AtbCaptchaTaskBase\";\n\nimport { AtbCaptchaTaskBase } from \"./Base/_AtbCaptchaTaskBase\";\n\ntype AtbCaptchaTaskParams = ProxyRequiredTaskParams<AtbCaptchaTaskBaseParams>;\n\n/**\n * Token-based method to bypass Tencent captcha.\n * @extends {AtbCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/atb-captcha}\n */\nexport class AtbCaptchaTask extends AtbCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAtbCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAtbCaptchaTask: _IsTaskType[\"_isAtbCaptchaTask\"] = true;\n\n  /**\n  * Create AtbCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/atb-captcha}\n  * @param {Object} params - AtbCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.appId] - The value of appId parameter in the website source code.\n  * @param {string} [params.apiServer] - The value of apiServer parameter in the website source code.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: AtbCaptchaTaskParams) {\n    super(params, \"AtbCaptchaTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type CutCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"apiKey\": string;\n  \"miseryKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for CutCaptchaTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/cutcaptcha}\n */\nexport abstract class CutCaptchaTaskBase extends BaseTask implements CutCaptchaTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} miseryKey - The value of CUTCAPTCHA_MISERY_KEY variable defined on page.\n   */\n  miseryKey: string;\n\n  /**\n   * @type {string} apiKey - The value of data-apikey attribute of iframe's body. Also the name of javascript file included on the page\n   */\n  apiKey: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * CutCaptchaTaskBase\n  * @see {@link https://2captcha.com/api-docs/cutcaptcha}\n  * @param {Object} params - CutCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.miseryKey] - The value of CUTCAPTCHA_MISERY_KEY variable defined on page.\n  * @param {string} [params.apiKey] - The value of data-apikey attribute of iframe's body. Also the name of javascript file included on the page\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ miseryKey, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, apiKey }: CutCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.miseryKey = miseryKey;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.apiKey = apiKey;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { CutCaptchaTaskBaseParams } from \"./Base/_CutCaptchaTask\";\n\nimport { CutCaptchaTaskBase } from \"./Base/_CutCaptchaTask\";\n\ntype CutCaptchaTaskProxylessParams = ProxylessTaskParams<CutCaptchaTaskBaseParams>;\n\n/**\n * Token-based method to bypass Friendly Captcha.\n * @extends {CutCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/cutcaptcha}\n */\nexport class CutCaptchaTaskProxyless extends CutCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isCutCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isCutCaptchaTaskProxyless: _IsTaskType[\"_isCutCaptchaTaskProxyless\"] = true;\n\n  /**\n  * Create CutCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/cutcaptcha}\n  * @param {Object} params - CutCaptchaTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.miseryKey] - The value of CUTCAPTCHA_MISERY_KEY variable defined on page.\n  * @param {string} [params.apiKey] - The value of data-apikey attribute of iframe's body. Also the name of javascript file included on the page\n  */\n  constructor (params: CutCaptchaTaskProxylessParams) {\n    super(params, \"CutCaptchaTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { CutCaptchaTaskBaseParams } from \"./Base/_CutCaptchaTask\";\n\nimport { CutCaptchaTaskBase } from \"./Base/_CutCaptchaTask\";\n\ntype CutCaptchaTaskParams = ProxyRequiredTaskParams<CutCaptchaTaskBaseParams>;\n\n/**\n * Token-based method to bypass Friendly Captcha.\n * @extends {CutCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/cutcaptcha}\n */\nexport class CutCaptchaTask extends CutCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isCutCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isCutCaptchaTask: _IsTaskType[\"_isCutCaptchaTask\"] = true;\n\n  /**\n  * Create CutCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/cutcaptcha}\n  * @param {Object} params - CutCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.miseryKey] - The value of CUTCAPTCHA_MISERY_KEY variable defined on page.\n  * @param {string} [params.apiKey] - The value of data-apikey attribute of iframe's body. Also the name of javascript file included on the page\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: CutCaptchaTaskParams) {\n    super(params, \"CutCaptchaTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type TurnstileTaskBaseParams = Partial<ProxyCredentials> & {\n  \"action\"?: string;\n  \"data\"?: string;\n  \"pagedata\"?: string;\n  \"userAgent\": string;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for TurnstileTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/cloudflare-turnstile}\n */\nexport abstract class TurnstileTaskBase extends BaseTask implements TurnstileTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websiteKey - Turnstile sitekey. Can be found inside data-sitekey property of the Turnstile div element\n   */\n  websiteKey: string;\n\n  /**\n   * @type {string} action - Required for Cloudflare Challenge pages. The value of action parameter of turnstile.render call\n   */\n  action?: string;\n\n  /**\n   * @type {string} data - Required for Cloudflare Challenge pages. The value of cData parameter of turnstile.render call\n   */\n  data?: string;\n\n  /**\n   * @type {string} pagedata - Required for Cloudflare Challenge pages. The value of chlPageData parameter of turnstile.render call\n   */\n  pagedata?: string;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * TurnstileTaskBase\n  * @see {@link https://2captcha.com/api-docs/cloudflare-turnstile}\n  * @param {Object} params - TurnstileTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Turnstile sitekey. Can be found inside data-sitekey property of the Turnstile div element\n  * @param {string} [params.actions] - Required for Cloudflare Challenge pages. The value of action parameter of turnstile.render call\n  * @param {string} [params.data] - Required for Cloudflare Challenge pages. The value of cData parameter of turnstile.render call\n  * @param {string} [params.pagedata] - Required for Cloudflare Challenge pages. The value of chlPageData parameter of turnstile.render call\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ websiteKey, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, userAgent, pagedata, data, action }: TurnstileTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.userAgent = userAgent;\n\n    this.action = action;\n\n    this.pagedata = pagedata;\n\n    this.data = data;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { TurnstileTaskBaseParams } from \"./Base/_TurnstileTaskBase\";\n\nimport { TurnstileTaskBase } from \"./Base/_TurnstileTaskBase\";\n\ntype TurnstileTaskProxylessParams = ProxylessTaskParams<TurnstileTaskBaseParams>;\n\n/**\n * Token-based method to bypass Cloudflare Turnstile. Both the standalone captcha and challenge mode are supported.\n * @extends {TurnstileTaskBase}\n * @see {@link https://2captcha.com/api-docs/cloudflare-turnstile}\n */\nexport class TurnstileTaskProxyless extends TurnstileTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isTurnstileTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isTurnstileTaskProxyless: _IsTaskType[\"_isTurnstileTaskProxyless\"] = true;\n\n  /**\n  * Create TurnstileTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/cloudflare-turnstile}\n  * @param {Object} params - TurnstileTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Turnstile sitekey. Can be found inside data-sitekey property of the Turnstile div element\n  * @param {string} [params.actions] - Required for Cloudflare Challenge pages. The value of action parameter of turnstile.render call\n  * @param {string} [params.data] - Required for Cloudflare Challenge pages. The value of cData parameter of turnstile.render call\n  * @param {string} [params.pagedata] - Required for Cloudflare Challenge pages. The value of chlPageData parameter of turnstile.render call\n  */\n  constructor (params: TurnstileTaskProxylessParams) {\n    super(params, \"TurnstileTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { TurnstileTaskBaseParams } from \"./Base/_TurnstileTaskBase\";\n\nimport { TurnstileTaskBase } from \"./Base/_TurnstileTaskBase\";\n\ntype TurnstileTaskParams = ProxyRequiredTaskParams<TurnstileTaskBaseParams>;\n\n/**\n * Token-based method to bypass Cloudflare Turnstile. Both the standalone captcha and challenge mode are supported.\n * @extends {TurnstileTaskBase}\n * @see {@link https://2captcha.com/api-docs/cloudflare-turnstile}\n */\nexport class TurnstileTask extends TurnstileTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isTurnstileTask - Only used for correct method overloading intellisense\n  */\n  readonly _isTurnstileTask: _IsTaskType[\"_isTurnstileTask\"] = true;\n\n  /**\n  * Create TurnstileTask\n  * @see {@link https://2captcha.com/api-docs/cloudflare-turnstile}\n  * @param {Object} params - TurnstileTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Turnstile sitekey. Can be found inside data-sitekey property of the Turnstile div element\n  * @param {string} [params.actions] - Required for Cloudflare Challenge pages. The value of action parameter of turnstile.render call\n  * @param {string} [params.data] - Required for Cloudflare Challenge pages. The value of cData parameter of turnstile.render call\n  * @param {string} [params.pagedata] - Required for Cloudflare Challenge pages. The value of chlPageData parameter of turnstile.render call\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: TurnstileTaskParams) {\n    super(params, \"TurnstileTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type RecaptchaV2TaskBaseParams = Partial<ProxyCredentials> & {\n  \"apiDomain\"?: string;\n  \"cookies\"?: string;\n  \"isInvisible\"?: boolean;\n  \"recaptchaDataSValue\"?: string;\n  \"userAgent\"?: string;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for Recaptcha V2\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/recaptcha-v2}\n */\nexport abstract class RecaptchaV2TaskBase extends BaseTask implements RecaptchaV2TaskBaseParams {\n\n  /**\n   * @type {string} cookies - Your cookies will be set in a browser of our worker. Suitable for captcha on Google services. The format is: key1=val1; key2=val2\n   */\n  cookies?: string;\n\n  /**\n   * @type {string} apiDomain - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n   */\n  apiDomain?: string;\n\n  /**\n   * @type {string} recaptchaDataSValue - The value of data-s parameter. Can be required to bypass the captcha on Google services\n   */\n  recaptchaDataSValue?: string;\n\n  /**\n    * @type {boolean} isInvisible - Pass true for Invisible version of reCAPTCHA - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n   */\n  isInvisible?: boolean;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websiteKey - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n   */\n  websiteKey: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * RecaptchaV2TaskBase\n  * @see {@link https://2captcha.com/api-docs/recaptcha-v2}\n  * @param {Object} params - RecaptchaV2TaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {boolean}[params.isInvisible] - Pass true for Invisible version of reCAPTCHA - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n  * @param {string} [params.recaptchaDataSValue] - The value of data-s parameter. Can be required to bypass the captcha on Google services\n  * @param {string} [params.apiDomain] - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n  * @param {string} [params.cookies] - Your cookies will be set in a browser of our worker. Suitable for captcha on Google services. The format is: key1=val1; key2=val2\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  *\n  */\n  constructor ({ websiteKey, websiteURL, userAgent, isInvisible, recaptchaDataSValue, apiDomain, cookies, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: RecaptchaV2TaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.userAgent = userAgent;\n\n    this.isInvisible = isInvisible;\n\n    this.recaptchaDataSValue = recaptchaDataSValue;\n\n    this.apiDomain = apiDomain;\n\n    this.cookies = cookies;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { _RecaptchaV2EnterpriseTaskParams } from \"./RecaptchaV2EnterpriseTask\";\n\nimport type { RecaptchaV2TaskBaseParams } from \"./Base/_RecaptchaV2TaskBase\";\n\nimport { RecaptchaV2TaskBase } from \"./Base/_RecaptchaV2TaskBase\";\n\ntype RecaptchaV2EnterpriseTaskProxylessParams = _RecaptchaV2EnterpriseTaskParams & ProxylessTaskParams<RecaptchaV2TaskBaseParams>;\n\n/**\n * Token-based method for automated solving of reCAPTCHA V2.\n * @extends {RecaptchaV2TaskBase}\n * @see {@link https://2captcha.com/api-docs/recaptcha-v2-enterprise}\n */\nexport class RecaptchaV2EnterpriseTaskProxyless extends RecaptchaV2TaskBase implements _RecaptchaV2EnterpriseTaskParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isRecaptchaV2EnterpriseTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isRecaptchaV2EnterpriseTaskProxyless: _IsTaskType[\"_isRecaptchaV2EnterpriseTaskProxyless\"] = true;\n\n  enterprisePayload?: Record<string, string>;\n\n  /**\n  * Create RecaptchaV2EnterpriseTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/recaptcha-v2-enterprise}\n  * @param {Object} params - RecaptchaV2EnterpriseTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {boolean}[params.isInvisible] - Pass true for Invisible version of reCAPTCHA - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n  * @param {string} [params.recaptchaDataSValue] - The value of data-s parameter. Can be required to bypass the captcha on Google services\n  * @param {string} [params.enterprisePayload] - Additional parameters passed to grecaptcha.enterprise.render call. For example, there can be an object containing s value\n  * @param {string} [params.apiDomain] - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n  * @param {string} [params.cookies] - Your cookies will be set in a browser of our worker. Suitable for captcha on Google services. The format is: key1=val1; key2=val2\n  */\n  constructor ({ enterprisePayload, ...params }: RecaptchaV2EnterpriseTaskProxylessParams) {\n    super(params, \"RecaptchaV2EnterpriseTaskProxyless\");\n\n    this.enterprisePayload = enterprisePayload;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { RecaptchaV2TaskBase } from \"./Base/_RecaptchaV2TaskBase\";\n\nimport type { RecaptchaV2TaskBaseParams } from \"./Base/_RecaptchaV2TaskBase\";\n\ntype RecaptchaV2TaskProxylessParams = ProxylessTaskParams<RecaptchaV2TaskBaseParams>;\n\n/**\n * Token-based method for automated solving of reCAPTCHA V2.\n * @extends {RecaptchaV2TaskProxylessBase}\n * @see {@link https://2captcha.com/api-docs/recaptcha-v2}\n */\nexport class RecaptchaV2TaskProxyless extends RecaptchaV2TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isRecaptchaV2TaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isRecaptchaV2TaskProxyless: _IsTaskType[\"_isRecaptchaV2TaskProxyless\"] = true;\n\n  /**\n  * Create RecaptchaV2TaskProxyless\n  * @see {@link https://2captcha.com/api-docs/recaptcha-v2}\n  * @param {Object} params - RecaptchaV2TaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {boolean}[params.isInvisible] - Pass true for Invisible version of reCAPTCHA - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n  * @param {string} [params.recaptchaDataSValue] - The value of data-s parameter. Can be required to bypass the captcha on Google services\n  * @param {string} [params.apiDomain] - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n  * @param {string} [params.cookies] - Your cookies will be set in a browser of our worker. Suitable for captcha on Google services. The format is: key1=val1; key2=val2\n  */\n  constructor (params: RecaptchaV2TaskProxylessParams) {\n    super(params, \"RecaptchaV2TaskProxyless\");\n  }\n}\n","import type { _IsTaskType } from \"./../_BaseTaskRequest\";\n\nimport type { ProxyRequiredTaskParams } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV2TaskBaseParams } from \"./Base/_RecaptchaV2TaskBase\";\n\nimport { RecaptchaV2TaskBase } from \"./Base/_RecaptchaV2TaskBase\";\n\ntype RecaptchaV2TaskParams = ProxyRequiredTaskParams<RecaptchaV2TaskBaseParams>;\n\n/**\n * Token-based method for automated solving of reCAPTCHA V2.\n * @extends {RecaptchaV2TaskBase}\n * @see {@link https://2captcha.com/api-docs/recaptcha-v2}\n */\nexport class RecaptchaV2Task extends RecaptchaV2TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isRecaptchaV2Task - Only used for correct method overloading intellisense\n  */\n  readonly _isRecaptchaV2Task: _IsTaskType[\"_isRecaptchaV2Task\"] = true;\n\n  /**\n  * Create RecaptchaV2Task\n  * @see {@link https://2captcha.com/api-docs/recaptcha-v2}\n  * @param {Object} params - RecaptchaV2TaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {boolean}[params.isInvisible] - Pass true for Invisible version of reCAPTCHA - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n  * @param {string} [params.recaptchaDataSValue] - The value of data-s parameter. Can be required to bypass the captcha on Google services\n  * @param {string} [params.apiDomain] - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n  * @param {string} [params.cookies] - Your cookies will be set in a browser of our worker. Suitable for captcha on Google services. The format is: key1=val1; key2=val2\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  *\n  */\n  constructor (params: RecaptchaV2TaskParams) {\n    super(params, \"RecaptchaV2Task\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type MtCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for MtCaptchaTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/mtcaptcha}\n */\nexport abstract class MtCaptchaTaskBase extends BaseTask implements MtCaptchaTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websiteKey - The MTCaptcha sitekey value found in the page code.\n   */\n  websiteKey: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  proxy?: string;\n\n  /**\n  * MtCaptchaTaskBase\n  * @see {@link https://2captcha.com/api-docs/mtcaptcha}\n  * @param {Object} params - MtCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - The MTCaptcha sitekey value found in the page code.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ websiteKey, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: MtCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n  }\n\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { MtCaptchaTaskBaseParams } from \"./Base/_MtCaptchaTaskBase\";\n\nimport { MtCaptchaTaskBase } from \"./Base/_MtCaptchaTaskBase\";\n\ntype MtCaptchaTaskProxylessParams = ProxylessTaskParams<MtCaptchaTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of MTCaptcha.\n * @extends {MtCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/mtcaptcha}\n */\nexport class MtCaptchaTaskProxyless extends MtCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isMtCaptchaTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isMtCaptchaTaskProxyless: _IsTaskType[\"_isMtCaptchaTaskProxyless\"] = true;\n\n  /**\n  * Create MtCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/mtcaptcha}\n  * @param {Object} params - MtCaptchaTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - The MTCaptcha sitekey value found in the page code.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  */\n  constructor (params: MtCaptchaTaskProxylessParams) {\n    super(params, \"MtCaptchaTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { MtCaptchaTaskBaseParams } from \"./Base/_MtCaptchaTaskBase\";\n\nimport { MtCaptchaTaskBase } from \"./Base/_MtCaptchaTaskBase\";\n\ntype MtCaptchaTaskParams = ProxyRequiredTaskParams<MtCaptchaTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of MTCaptcha.\n * @extends {MtCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/mtcaptcha}\n */\nexport class MtCaptchaTask extends MtCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isMtCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isMtCaptchaTask: _IsTaskType[\"_isMtCaptchaTask\"] = true;\n\n  /**\n  * Create MtCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/mtcaptcha}\n  * @param {Object} params - MtCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - The MTCaptcha sitekey value found in the page code.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: MtCaptchaTaskParams) {\n    super(params, \"MtCaptchaTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type LeminTaskBaseParams = Partial<ProxyCredentials> & {\n  \"captchaId\": string;\n  \"divId\": string;\n  \"leminApiServerSubdomain\"?: string;\n  \"userAgent\"?: string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for LeminTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/lemin}\n */\nexport abstract class LeminTaskBase extends BaseTask implements LeminTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} captchaId - Lemin captchaId value. Unique for a website.\n   */\n  captchaId: string;\n\n  /**\n   * @type {string} divId - The id of captcha parent div element\n   */\n  divId: string;\n\n  /**\n   * @type {string} leminApiServerSubdomain - API domain used to load the captcha scripts. Default: https://api.leminnow.com/\n   */\n  leminApiServerSubdomain?: string;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent?: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * LeminTaskBase\n  * @see {@link https://2captcha.com/api-docs/lemin}\n  * @param {Object} params - LeminTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.captchaId] - Lemin captchaId value. Unique for a website.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.divId] - The id of captcha parent div element\n  * @param {string} [params.leminApiServerSubdomain] - API domain used to load the captcha scripts. Default: https://api.leminnow.com/\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ captchaId, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, divId, leminApiServerSubdomain, userAgent }: LeminTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.captchaId = captchaId;\n\n    this.websiteURL = websiteURL;\n\n    this.divId = divId;\n\n    this.userAgent = userAgent;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.leminApiServerSubdomain = leminApiServerSubdomain;\n  }\n\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { LeminTaskBaseParams } from \"./Base/_LeminTaskBase\";\n\nimport { LeminTaskBase } from \"./Base/_LeminTaskBase\";\n\ntype LeminTaskProxylessParams = ProxylessTaskParams<LeminTaskBaseParams>;\n\n/**\n * Token-based method to bypass Lemin Puzzle CAPTCHA.\n * @extends {LeminTaskBase}\n * @see {@link https://2captcha.com/api-docs/lemin}\n */\nexport class LeminTaskProxyless extends LeminTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isLeminTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isLeminTaskProxyless: _IsTaskType[\"_isLeminTaskProxyless\"] = true;\n\n  /**\n  * Create LeminTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/lemin}\n  * @param {Object} params - LeminTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.captchaId] - Lemin captchaId value. Unique for a website.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.divId] - The id of captcha parent div element\n  * @param {string} [params.leminApiServerSubdomain] - API domain used to load the captcha scripts. Default: https://api.leminnow.com/\n  */\n  constructor (params: LeminTaskProxylessParams) {\n    super(params, \"LeminTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { LeminTaskBaseParams } from \"./Base/_LeminTaskBase\";\n\nimport { LeminTaskBase } from \"./Base/_LeminTaskBase\";\n\ntype LeminTaskParams = ProxyRequiredTaskParams<LeminTaskBaseParams>;\n\n/**\n * Token-based method to bypass Lemin Puzzle CAPTCHA.\n * @extends {LeminTaskBase}\n * @see {@link https://2captcha.com/api-docs/lemin}\n */\nexport class LeminTask extends LeminTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isLeminTask - Only used for correct method overloading intellisense\n  */\n  readonly _isLeminTask: _IsTaskType[\"_isLeminTask\"] = true;\n\n  /**\n  * Create LeminTask\n  * @see {@link https://2captcha.com/api-docs/lemin}\n  * @param {Object} params - LeminTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.captchaId] - Lemin captchaId value. Unique for a website.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.divId] - The id of captcha parent div element\n  * @param {string} [params.leminApiServerSubdomain] - API domain used to load the captcha scripts. Default: https://api.leminnow.com/\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: LeminTaskParams) {\n    super(params, \"LeminTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type KeyCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"s_s_c_session_id\": string;\n  \"s_s_c_user_id\": number;\n  \"s_s_c_web_server_sign\": string;\n  \"s_s_c_web_server_sign2\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for KeyCaptchaTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/keycaptcha}\n */\nexport abstract class KeyCaptchaTaskBase extends BaseTask implements KeyCaptchaTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {number} s_s_c_user_id - The value of s_s_c_user_id parameter found on page\n   */\n  s_s_c_user_id: number;\n\n  /**\n   * @type {string} s_s_c_session_id - The value of s_s_c_session_id parameter found on page\n   */\n  s_s_c_session_id: string;\n\n  /**\n   * @type {string} s_s_c_web_server_sign - The value of s_s_c_web_server_sign parameter found on page\n   */\n  s_s_c_web_server_sign: string;\n\n  /**\n   * @type {string} s_s_c_web_server_sign2 - The value of s_s_c_web_server_sign2 parameter found on page\n   */\n  s_s_c_web_server_sign2: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * KeyCaptchaTaskBase\n  * @see {@link https://2captcha.com/api-docs/keycaptcha}\n  * @param {Object} params - KeyCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {number} [params.s_s_c_user_id] - The value of s_s_c_user_id parameter found on page\n  * @param {string} [params.s_s_c_session_id] - The value of s_s_c_session_id parameter found on page\n  * @param {string} [params.s_s_c_web_server_sign] - The value of s_s_c_web_server_sign parameter found on page\n  * @param {string} [params.s_s_c_web_server_sign2] - The value of s_s_c_web_server_sign2 parameter found on page\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({\n    websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, s_s_c_session_id, s_s_c_user_id,\n    s_s_c_web_server_sign, s_s_c_web_server_sign2\n  }: KeyCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.s_s_c_session_id = s_s_c_session_id;\n\n    this.s_s_c_user_id = s_s_c_user_id;\n\n    this.s_s_c_web_server_sign = s_s_c_web_server_sign;\n\n    this.s_s_c_web_server_sign2 = s_s_c_web_server_sign2;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { KeyCaptchaTaskBaseParams } from \"./Base/_KeyCaptchaTaskBase\";\n\nimport { KeyCaptchaTaskBase } from \"./Base/_KeyCaptchaTaskBase\";\n\ntype KeyCaptchaTaskProxylessParams = ProxylessTaskParams<KeyCaptchaTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of Capy Puzzle Captcha.\n * @extends {KeyCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/keycaptcha}\n */\nexport class KeyCaptchaTaskProxyless extends KeyCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isKeyCaptchaTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isKeyCaptchaTaskProxyless: _IsTaskType[\"_isKeyCaptchaTaskProxyless\"] = true;\n\n  /**\n  * Create KeyCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/keycaptcha}\n  * @param {Object} params - KeyCaptchaTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.s_s_c_user_id] - The value of s_s_c_user_id parameter found on page\n  * @param {string} [params.s_s_c_session_id] - The value of s_s_c_session_id parameter found on page\n  * @param {string} [params.s_s_c_web_server_sign] - The value of s_s_c_web_server_sign parameter found on page\n  * @param {string} [params.s_s_c_web_server_sign2] - The value of s_s_c_web_server_sign2 parameter found on page\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: KeyCaptchaTaskProxylessParams) {\n    super(params, \"KeyCaptchaTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { KeyCaptchaTaskBaseParams } from \"./Base/_KeyCaptchaTaskBase\";\n\nimport { KeyCaptchaTaskBase } from \"./Base/_KeyCaptchaTaskBase\";\n\ntype KeyCaptchaTaskParams = ProxyRequiredTaskParams<KeyCaptchaTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of Capy Puzzle Captcha.\n * @extends {KeyCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/keycaptcha}\n */\nexport class KeyCaptchaTask extends KeyCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isKeyCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isKeyCaptchaTask: _IsTaskType[\"_isKeyCaptchaTask\"] = true;\n\n  /**\n  * Create KeyCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/keycaptcha}\n  * @param {Object} params - KeyCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.s_s_c_user_id] - The value of s_s_c_user_id parameter found on page\n  * @param {string} [params.s_s_c_session_id] - The value of s_s_c_session_id parameter found on page\n  * @param {string} [params.s_s_c_web_server_sign] - The value of s_s_c_web_server_sign parameter found on page\n  * @param {string} [params.s_s_c_web_server_sign2] - The value of s_s_c_web_server_sign2 parameter found on page\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: KeyCaptchaTaskParams) {\n    super(params, \"KeyCaptchaTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type HCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"enterprisePayload\"?: Record<string, string>;\n  \"isInvisible\"?: boolean;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for hcaptcha\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/hcaptcha}\n */\nexport abstract class HCaptchaTaskBase extends BaseTask implements HCaptchaTaskBaseParams {\n\n  /**\n   * @type {object} enterprisePayload - An object containing additional parameters like: rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost\n   */\n  enterprisePayload?: Record<string, string>;\n\n  /**\n    * @type {boolean} isInvisible - Pass true for Invisible version of hcaptcha - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n   */\n  isInvisible?: boolean;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websiteKey - hCaptcha sitekey. Can be found inside data-sitekey property of the hCaptcha div element or inside sitekey parameter of the requests to hCaptcha API\n   */\n  websiteKey: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * HCaptchaTaskBase\n  * @see {@link https://2captcha.com/api-docs/hcaptcha}\n  * @param {Object} params - HCaptchaTaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - hCaptcha sitekey. Can be found inside data-sitekey property of the hCaptcha div element or inside sitekey parameter of the requests to hCaptcha API\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {boolean}[params.isInvisible] - Pass true for Invisible version of hcaptcha - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n  * @param {object} [params.enterprisePayload] - An object containing additional parameters like: rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  *\n  */\n  constructor ({ websiteKey, websiteURL, isInvisible, enterprisePayload, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: HCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.isInvisible = isInvisible;\n\n    this.enterprisePayload = enterprisePayload;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n  }\n\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { HCaptchaTaskBaseParams } from \"./Base/_HCaptchaTaskBase\";\n\nimport { HCaptchaTaskBase } from \"./Base/_HCaptchaTaskBase\";\n\ntype HCaptchaTaskProxylessParams = ProxylessTaskParams<HCaptchaTaskBaseParams>;\n\n/**\n * Token-based method to bypass hCaptcha. The method is quite similar to reCAPTCHA V2. The token can be used on the target website inside h-captcha-response form field or passed to a callback function. It's recommended to use the userAgent value together with the token.\n * @extends {HCaptchaTaskProxylessBase}\n * @see {@link https://2captcha.com/api-docs/hcaptcha}\n */\nexport class HCaptchaTaskProxyless extends HCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isHCaptchaTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isHCaptchaTaskProxyless: _IsTaskType[\"_isHCaptchaTaskProxyless\"] = true;\n\n  /**\n  * Create HCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/hcaptcha}\n  * @param {Object} params - HCaptchaTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - hCaptcha sitekey. Can be found inside data-sitekey property of the hCaptcha div element or inside sitekey parameter of the requests to hCaptcha API\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {boolean}[params.isInvisible] - Pass true for Invisible version of hcaptcha - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n  */\n  constructor (params: HCaptchaTaskProxylessParams) {\n    super(params, \"HCaptchaTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { HCaptchaTaskBaseParams } from \"./Base/_HCaptchaTaskBase\";\n\nimport { HCaptchaTaskBase } from \"./Base/_HCaptchaTaskBase\";\n\ntype HCaptchaTaskParams = ProxyRequiredTaskParams<HCaptchaTaskBaseParams>;\n\n/**\n * Token-based method to bypass hCaptcha. The method is quite similar to reCAPTCHA V2. The token can be used on the target website inside h-captcha-response form field or passed to a callback function. It's recommended to use the userAgent value together with the token.\n * @extends {HCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/hcaptcha}\n */\nexport class HCaptchaTask extends HCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isHCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isHCaptchaTask: _IsTaskType[\"_isHCaptchaTask\"] = true;\n\n  /**\n  * Create HCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/hcaptcha}\n  * @param {Object} params - HCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - hCaptcha sitekey. Can be found inside data-sitekey property of the hCaptcha div element or inside sitekey parameter of the requests to hCaptcha API\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {boolean}[params.isInvisible] - Pass true for Invisible version of hcaptcha - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: HCaptchaTaskParams) {\n    super(params, \"HCaptchaTask\");\n  }\n}\n","import type { ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nimport type { GeeTestV4TaskParams } from \"./_GeeTestTaskBase\";\n\n/**\n * Base class for geetest\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport abstract class GeeTestV4TaskBase extends BaseTask implements GeeTestV4TaskParams {\n\n  /**\n   * @type {object} initParameters - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value\n   */\n  initParameters: GeeTestV4TaskParams[\"initParameters\"];\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL?: string;\n\n  version = 4;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * GeeTestV4TaskBase\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestV4TaskParams\n  * @param {object} [params.initParameters] - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, userAgent, initParameters }: GeeTestV4TaskParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteURL = websiteURL;\n\n    this.initParameters = initParameters;\n\n    this.userAgent = userAgent;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV4TaskParams as _GeeTestV4TaskParams } from \"./Base/_GeeTestTaskBase\";\n\nimport { GeeTestV4TaskBase } from \"./Base/_GeeTestV4TaskBase\";\n\ntype GeeTestV4TaskProxylessParams = ProxylessTaskParams<_GeeTestV4TaskParams>;\n\n/**\n * Token-based method to bypass GeeTest v4.\n * @extends {GeeTestV4TaskBase}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport class GeeTestV4TaskProxyless extends GeeTestV4TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isGeeTestTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isGeeTestTaskProxyless: _IsTaskType[\"_isGeeTestTaskProxyless\"] = true;\n\n  /**\n  * Create GeeTestV4TaskProxyless\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestV4TaskProxylessParams\n  * @param {object} [params.initParameters] - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  */\n  constructor (params: GeeTestV4TaskProxylessParams) {\n    super(params, \"GeeTestTaskProxyless\");\n  }\n}\n","import type { ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nimport type { GeeTestV3TaskParams } from \"./_GeeTestTaskBase\";\n\n/**\n * Base class for geetest\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport abstract class GeeTestV3TaskBase extends BaseTask implements GeeTestV3TaskParams {\n\n  /**\n    * @type {boolean} challenge - \tGeeTest challenge value.\n   */\n  challenge: string;\n\n  /**\n   * @type {string} gt - GeeTest gt value\n   */\n  gt: string;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL?: string;\n\n  /**\n   * @type {string} geetestApiServerSubdomain - Only for GeeTest V3. Custom GeeTest API domain, for example: api-na.geetest.com. Can be defined inside initGeetest call. Also you can check the domain used to load the scripts, the default domain is api.geetest.com.\n   */\n  geetestApiServerSubdomain?: string;\n\n  version = 3;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * GeeTestV3TaskBase\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestV3TaskBaseParams\n  * @param {string} [params.gt] -\tGeeTest gt value\n  * @param {boolean}[params.challenge] - \tGeeTest challenge value.\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.geetestApiServerSubdomain] - Only for GeeTest V3. Custom GeeTest API domain, for example: api-na.geetest.com. Can be defined inside initGeetest call. Also you can check the domain used to load the scripts, the default domain is api.geetest.com.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  *\n  */\n  constructor ({ gt, websiteURL, challenge, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, userAgent, geetestApiServerSubdomain }: GeeTestV3TaskParams, type: TaskTypes) {\n    super({ type });\n\n    this.gt = gt;\n\n    this.websiteURL = websiteURL;\n\n    this.challenge = challenge;\n\n    this.userAgent = userAgent;\n\n    this.geetestApiServerSubdomain = geetestApiServerSubdomain;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV3TaskParams } from \"./Base/_GeeTestTaskBase\";\n\nimport { GeeTestV3TaskBase } from \"./Base/_GeeTestV3TaskBase\";\n\ntype GeeTestV3TaskProxylessParams = ProxylessTaskParams<GeeTestV3TaskParams>;\n\n/**\n * Token-based method to bypass GeeTest v3.\n * @extends {GeeTestV3TaskBase}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport class GeeTestV3TaskProxyless extends GeeTestV3TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isGeeTestTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isGeeTestTaskProxyless: _IsTaskType[\"_isGeeTestTaskProxyless\"] = true;\n\n  /**\n  * Create GeeTestV3TaskProxyless\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestV3TaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.gt] -\tGeeTest gt value\n  * @param {boolean}[params.challenge] - \tGeeTest challenge value.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.geetestApiServerSubdomain] - Only for GeeTest V3. Custom GeeTest API domain, for example: api-na.geetest.com. Can be defined inside initGeetest call. Also you can check the domain used to load the scripts, the default domain is api.geetest.com.\n  */\n  constructor (params: GeeTestV3TaskProxylessParams) {\n    super(params, \"GeeTestTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV3TaskParams as _GeeTestV3TaskParams } from \"./Base/_GeeTestTaskBase\";\n\nimport { GeeTestV3TaskBase } from \"./Base/_GeeTestV3TaskBase\";\n\ntype GeeTestV3TaskParams = ProxyRequiredTaskParams<_GeeTestV3TaskParams>;\n\n/**\n * Token-based method to bypass GeeTest v3.\n * @extends {GeeTestV3TaskBase}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport class GeeTestV3Task extends GeeTestV3TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isGeeTestTask - Only used for correct method overloading intellisense\n  */\n  readonly _isGeeTestTask: _IsTaskType[\"_isGeeTestTask\"] = true;\n\n  /**\n  * Create GeeTestV3Task\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestV3TaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.gt] -\tGeeTest gt value\n  * @param {boolean}[params.challenge] - \tGeeTest challenge value.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.geetestApiServerSubdomain] - Only for GeeTest V3. Custom GeeTest API domain, for example: api-na.geetest.com. Can be defined inside initGeetest call. Also you can check the domain used to load the scripts, the default domain is api.geetest.com.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: GeeTestV3TaskParams) {\n    super(params, \"GeeTestTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type GeetestV3TaskBaseParams = {\n  \"challenge\": string;\n  \"geetestApiServerSubdomain\"?: string;\n  \"gt\": string;\n};\n\nexport type GeetestV4TaskBaseParams = { \"initParameters\": Record<string, string> & { \"captcha_id\": string } };\n\nexport type GeetestCommonParams = {\n  \"userAgent\"?: string;\n  \"websiteURL\"?: string;\n};\n\nexport type GeeTestTaskBaseParams = Partial<GeetestCommonParams & GeetestV4TaskBaseParams & ProxyCredentials> & { \"version\": 3 | 4 };\n\nexport type GeeTestV3TaskParams = GeetestCommonParams & GeetestV3TaskBaseParams & Partial<ProxyCredentials>;\n\nexport type GeeTestV4TaskParams = GeetestCommonParams & GeetestV4TaskBaseParams & Partial<ProxyCredentials>;\n\n/**\n * Base class for geetest\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport abstract class GeeTestTaskBase extends BaseTask implements GeeTestTaskBaseParams {\n\n  /**\n   * @type {object} initParameters - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value, for example: {\"captcha_id\" : \"e392e1d7fd421dc63325744d5a2b9c73\"}\n   */\n  initParameters?: GeetestV4TaskBaseParams[\"initParameters\"];\n\n  /**\n    * @type {boolean} challenge - \tGeeTest challenge value.\n   */\n  challenge?: string;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL?: string;\n\n  /**\n   * @type {string} gt - GeeTest gt value\n   */\n  gt?: string;\n\n  /**\n   * @type {string} geetestApiServerSubdomain - Only for GeeTest V3. Custom GeeTest API domain, for example: api-na.geetest.com. Can be defined inside initGeetest call. Also you can check the domain used to load the scripts, the default domain is api.geetest.com.\n   */\n  geetestApiServerSubdomain?: string;\n\n  /**\n   * @type {number} version - Should be set to 4 for GeeTest V4.\n   */\n  version: 3 | 4;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * GeeTestTaskBase\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestTaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.gt] -\tGeeTest gt value\n  * @param {boolean}[params.challenge] - \tGeeTest challenge value.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {object} [params.initParameters] - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value, for example: {\"captcha_id\" : \"e392e1d7fd421dc63325744d5a2b9c73\"}\n  * @param {string} [params.geetestApiServerSubdomain] - Only for GeeTest V3. Custom GeeTest API domain, for example: api-na.geetest.com. Can be defined inside initGeetest call. Also you can check the domain used to load the scripts, the default domain is api.geetest.com.\n  * @param {number} [params.version] - Should be set to 4 for GeeTest V4. GeeTest version: 3 or 4\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  *\n  */\n  constructor ({ websiteURL, userAgent, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, ...versionSpecific }: GeeTestV3TaskParams | GeeTestV4TaskParams, type: TaskTypes) {\n    super({ type });\n\n    if (\"initParameters\" in versionSpecific) {\n      this.initParameters = versionSpecific.initParameters;\n\n      this.version = 4;\n    } else {\n      this.geetestApiServerSubdomain = versionSpecific.geetestApiServerSubdomain;\n\n      this.challenge = versionSpecific.challenge;\n\n      this.gt = versionSpecific.gt;\n\n      this.version = 3;\n    }\n\n    this.websiteURL = websiteURL;\n\n    this.userAgent = userAgent;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV3TaskParams, GeeTestV4TaskParams } from \"./Base/_GeeTestTaskBase\";\n\nimport { GeeTestTaskBase } from \"./Base/_GeeTestTaskBase\";\n\ntype GeeTestTaskProxylessParams = ProxylessTaskParams<GeeTestV3TaskParams> | ProxylessTaskParams<GeeTestV4TaskParams>;\n\n/**\n * Token-based method to bypass GeeTestTaskProxyless\n * @extends {GeeTestTaskBase}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport class GeeTestTaskProxyless extends GeeTestTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isGeeTestTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isGeeTestTaskProxyless: _IsTaskType[\"_isGeeTestTaskProxyless\"] = true;\n\n  /**\n  * Create GeeTestTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.gt] -\tGeeTest gt value\n  * @param {boolean}[params.challenge] - \tGeeTest challenge value.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {object} [params.initParameters] - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value, for example: {\"captcha_id\" : \"e392e1d7fd421dc63325744d5a2b9c73\"}\n  * @param {string} [params.geetestApiServerSubdomain] - Only for GeeTest V3. Custom GeeTest API domain, for example: api-na.geetest.com. Can be defined inside initGeetest call. Also you can check the domain used to load the scripts, the default domain is api.geetest.com.\n  */\n  constructor (params: GeeTestTaskProxylessParams) {\n    super(params, \"GeeTestTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV3TaskParams, GeeTestV4TaskParams } from \"./Base/_GeeTestTaskBase\";\n\nimport { GeeTestTaskBase } from \"./Base/_GeeTestTaskBase\";\n\ntype GeeTestTaskParams = ProxyRequiredTaskParams<GeeTestV3TaskParams | GeeTestV4TaskParams>;\n\n/**\n * Token-based method to bypass GeeTest\n * @extends {GeeTestTaskBase}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport class GeeTestTask extends GeeTestTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isGeeTestTask - Only used for correct method overloading intellisense\n  */\n  readonly _isGeeTestTask: _IsTaskType[\"_isGeeTestTask\"] = true;\n\n  /**\n  * Create GeeTestTask\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.gt] -\tGeeTest gt value\n  * @param {boolean}[params.challenge] - \tGeeTest challenge value.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {object} [params.initParameters] - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value, for example: {\"captcha_id\" : \"e392e1d7fd421dc63325744d5a2b9c73\"}\n  * @param {string} [params.geetestApiServerSubdomain] - Only for GeeTest V3. Custom GeeTest API domain, for example: api-na.geetest.com. Can be defined inside initGeetest call. Also you can check the domain used to load the scripts, the default domain is api.geetest.com.\n  * @param {number} [params.version] - Should be set to 4 for GeeTest V4. GeeTest version: 3 or 4\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: GeeTestTaskParams) {\n    super(params, \"GeeTestTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type FunCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"data\"?: string;\n  \"funcaptchaApiJSSubdomain\"?: string;\n  \"userAgent\"?: string;\n  \"websitePublicKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for FunCaptcha\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}\n */\nexport abstract class FunCaptchaTaskBase extends BaseTask implements FunCaptchaTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websitePublicKey - ArkoseLabs CAPTCHA public key. The public key can be found in the value of the data-pkey parameter of the div element FunCaptcha, or you can find an element named (name) fc-token and from its value cut out the key that is specified after pk.\n   */\n  websitePublicKey: string;\n\n  /**\n   * @type {string} funcaptchaApiJSSubdomain - Custom subdomain used to load the captcha widget, like: sample-api.arkoselabs.com\n   */\n  funcaptchaApiJSSubdomain?: string;\n\n  /**\n   * @type {string} data - Additional data payload object converted to a string with JSON.stringify\n   */\n  data?: string;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent?: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * FunCaptchaTaskBase\n  * @see {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}\n  * @param {Object} params - FunCaptchaTaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websitePublicKey] - ArkoseLabs CAPTCHA public key. The public key can be found in the value of the data-pkey parameter of the div element FunCaptcha, or you can find an element named (name) fc-token and from its value cut out the key that is specified after pk.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.data] - Additional data payload object converted to a string with JSON.stringify\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ websitePublicKey, websiteURL, userAgent, funcaptchaApiJSSubdomain, data, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: FunCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websitePublicKey = websitePublicKey;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.funcaptchaApiJSSubdomain = funcaptchaApiJSSubdomain;\n\n    this.userAgent = userAgent;\n\n    this.data = data;\n  }\n\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { FunCaptchaTaskBaseParams } from \"./Base/_FunCaptchaTaskBase\";\n\nimport { FunCaptchaTaskBase } from \"./Base/_FunCaptchaTaskBase\";\n\ntype FunCaptchaTaskProxylessParams = ProxylessTaskParams<FunCaptchaTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of ArkoseLabs CAPTCHA (previously FunCaptcha).\n * @extends {FunCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}\n */\nexport class FunCaptchaTaskProxyless extends FunCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isFunCaptchaTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isFunCaptchaTaskProxyless: _IsTaskType[\"_isFunCaptchaTaskProxyless\"] = true;\n\n  /**\n  * Create FunCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}\n  * @param {Object} params - FunCaptchaTaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websitePublicKey] - ArkoseLabs CAPTCHA public key. The public key can be found in the value of the data-pkey parameter of the div element FunCaptcha, or you can find an element named (name) fc-token and from its value cut out the key that is specified after pk.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.data] - Additional data payload object converted to a string with JSON.stringify\n  * @param {string} [params.websitePublicKey] - ArkoseLabs CAPTCHA public key. The public key can be found in the value of the data-pkey parameter of the div element FunCaptcha, or you can find an element named (name) fc-token and from its value cut out the key that is specified after pk.\n  */\n  constructor (params: FunCaptchaTaskProxylessParams) {\n    super(params, \"FunCaptchaTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { FunCaptchaTaskBaseParams } from \"./Base/_FunCaptchaTaskBase\";\n\nimport { FunCaptchaTaskBase } from \"./Base/_FunCaptchaTaskBase\";\n\ntype FunCaptchaTaskParams = ProxyRequiredTaskParams<FunCaptchaTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of ArkoseLabs CAPTCHA (previously FunCaptcha).\n * @extends {FunCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}\n */\nexport class FunCaptchaTask extends FunCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isFunCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isFunCaptchaTask: _IsTaskType[\"_isFunCaptchaTask\"] = true;\n\n  /**\n  * Create FunCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/arkoselabs-funcaptcha}\n  * @param {Object} params - FunCaptchaTaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websitePublicKey] - ArkoseLabs CAPTCHA public key. The public key can be found in the value of the data-pkey parameter of the div element FunCaptcha, or you can find an element named (name) fc-token and from its value cut out the key that is specified after pk.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.data] - Additional data payload object converted to a string with JSON.stringify\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: FunCaptchaTaskParams) {\n    super(params, \"FunCaptchaTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type FriendlyCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for FriendlyCaptchaTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/friendly-captcha}\n */\nexport abstract class FriendlyCaptchaTaskBase extends BaseTask implements FriendlyCaptchaTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websiteKey - Capy Puzzle Captcha captchakey.\n   */\n  websiteKey: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * FriendlyCaptchaTaskBase\n  * @see {@link https://2captcha.com/api-docs/friendly-captcha}\n  * @param {Object} params - FriendlyCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Capy Puzzle Captcha captchakey.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ websiteKey, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: FriendlyCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { FriendlyCaptchaTaskBaseParams } from \"./Base/_FriendlyCaptchaTask\";\n\nimport { FriendlyCaptchaTaskBase } from \"./Base/_FriendlyCaptchaTask\";\n\ntype FriendlyCaptchaTaskProxylessParams = ProxylessTaskParams<FriendlyCaptchaTaskBaseParams>;\n\n/**\n * Token-based method to bypass Friendly Captcha.\n * @extends {FriendlyCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/friendly-captcha}\n */\nexport class FriendlyCaptchaTaskProxyless extends FriendlyCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isFriendlyCaptchaTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isFriendlyCaptchaTaskProxyless: _IsTaskType[\"_isFriendlyCaptchaTaskProxyless\"] = true;\n\n  /**\n  * Create FriendlyCaptchaTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/friendly-captcha}\n  * @param {Object} params - FriendlyCaptchaTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Capy Puzzle Captcha captchakey.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: FriendlyCaptchaTaskProxylessParams) {\n    super(params, \"FriendlyCaptchaTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { FriendlyCaptchaTaskBaseParams } from \"./Base/_FriendlyCaptchaTask\";\n\nimport { FriendlyCaptchaTaskBase } from \"./Base/_FriendlyCaptchaTask\";\n\ntype FriendlyCaptchaTaskParams = ProxyRequiredTaskParams<FriendlyCaptchaTaskBaseParams>;\n\n/**\n * Token-based method to bypass Friendly Captcha.\n * @extends {FriendlyCaptchaTaskBase}\n * @see {@link https://2captcha.com/api-docs/friendly-captcha}\n */\nexport class FriendlyCaptchaTask extends FriendlyCaptchaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isFriendlyCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isFriendlyCaptchaTask: _IsTaskType[\"_isFriendlyCaptchaTask\"] = true;\n\n  /**\n  * Create FriendlyCaptchaTask\n  * @see {@link https://2captcha.com/api-docs/friendly-captcha}\n  * @param {Object} params - FriendlyCaptchaTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Capy Puzzle Captcha captchakey.\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: FriendlyCaptchaTaskParams) {\n    super(params, \"FriendlyCaptchaTask\");\n  }\n}\n","import type { ProxyRequiredTaskParams, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\n type _DataDomeSliderTaskBaseParams = {\n   \"captchaUrl\": string;\n   \"userAgent\"?: string;\n   \"websiteURL\": string;\n };\n\nexport type DataDomeSliderTaskBaseParams = ProxyRequiredTaskParams<_DataDomeSliderTaskBaseParams>;\n\n/**\n * Base class for DataDomeSliderTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/datadome-slider-captcha}\n */\nexport abstract class DataDomeSliderTaskBase extends BaseTask implements DataDomeSliderTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} captchaUrl - The value of the src parameter for the iframe element containing the captcha on the page.\n   */\n  captchaUrl: string;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents. It is important to use the supported User-Agent values. @see https://2captcha.com/api-docs/datadome-slider-captcha\n   */\n  userAgent?: string;\n\n  proxyAddress: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort: number;\n\n  proxyType: ProxyTypes;\n\n  /**\n  * DataDomeSliderTaskBase\n  * @see {@link https://2captcha.com/api-docs/datadome-slider-captcha}\n  * @param {Object} params - DataDomeSliderTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.captchaUrl] - The value of the src parameter for the iframe element containing the captcha on the page.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents. It is important to use the supported User-Agent values. @see https://2captcha.com/api-docs/datadome-slider-captcha\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ captchaUrl, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, userAgent }: DataDomeSliderTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.captchaUrl = captchaUrl;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.userAgent = userAgent;\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { DataDomeSliderTaskBaseParams } from \"./Base/_DataDomeSliderTaskBase\";\n\nimport { DataDomeSliderTaskBase } from \"./Base/_DataDomeSliderTaskBase\";\n\ntype DataDomeSliderTaskParams = ProxyRequiredTaskParams<DataDomeSliderTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of DataDome.\n * @extends {DataDomeSliderTaskBase}\n * @see {@link https://2captcha.com/api-docs/datadome-slider-captcha}\n */\nexport class DataDomeSliderTask extends DataDomeSliderTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isDataDomeSliderTask - Only used for correct method overloading intellisense\n  */\n  readonly _isDataDomeSliderTask: _IsTaskType[\"_isDataDomeSliderTask\"] = true;\n\n  /**\n  * Create DataDomeSliderTask\n  * @see {@link https://2captcha.com/api-docs/datadome-slider-captcha}\n  * @param {Object} params - DataDomeSliderTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.captchaUrl] - The value of the src parameter for the iframe element containing the captcha on the page.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents. It is important to use the supported User-Agent values. @see https://2captcha.com/api-docs/datadome-slider-captcha\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: DataDomeSliderTaskParams) {\n    super(params, \"DataDomeSliderTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type CapyTaskBaseParams = Partial<ProxyCredentials> & {\n  \"userAgent\"?: string;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for CapyTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/capy-puzzle-captcha}\n */\nexport abstract class CapyTaskBase extends BaseTask implements CapyTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websiteKey - Capy Puzzle Captcha captchakey.\n   */\n  websiteKey: string;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent?: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * CapyTaskBase\n  * @see {@link https://2captcha.com/api-docs/capy-puzzle-captcha}\n  * @param {Object} params - CapyTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Capy Puzzle Captcha captchakey.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ websiteKey, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, userAgent }: CapyTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.userAgent = userAgent;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { CapyTaskBaseParams } from \"./Base/_CapyTaskBase\";\n\nimport { CapyTaskBase } from \"./Base/_CapyTaskBase\";\n\ntype CapyTaskProxylessParams = ProxylessTaskParams<CapyTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of Capy Puzzle Captcha.\n * @extends {CapyTaskBase}\n * @see {@link https://2captcha.com/api-docs/capy-puzzle-captcha}\n */\nexport class CapyTaskProxyless extends CapyTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isCapyTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isCapyTaskProxyless: _IsTaskType[\"_isCapyTaskProxyless\"] = true;\n\n  /**\n  * Create CapyTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/capy-puzzle-captcha}\n  * @param {Object} params - CapyTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Capy Puzzle Captcha captchakey.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  */\n  constructor (params: CapyTaskProxylessParams) {\n    super(params, \"CapyTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { CapyTaskBaseParams } from \"./Base/_CapyTaskBase\";\n\nimport { CapyTaskBase } from \"./Base/_CapyTaskBase\";\n\ntype CapyTaskParams = ProxyRequiredTaskParams<CapyTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of Capy Puzzle Captcha.\n * @extends {CapyTaskBase}\n * @see {@link https://2captcha.com/api-docs/capy-puzzle-captcha}\n */\nexport class CapyTask extends CapyTaskBase implements _IsTaskType {\n\n  /**\n   * @type {boolean} _isCapyTask - Only used for correct method overloading intellisense\n  */\n  readonly _isCapyTask: _IsTaskType[\"_isCapyTask\"] = true;\n\n  /**\n  * Create CapyTask\n  * @see {@link https://2captcha.com/api-docs/capy-puzzle-captcha}\n  * @param {Object} params - CapyTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Capy Puzzle Captcha captchakey.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: CapyTaskParams) {\n    super(params, \"CapyTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type AntiCyberSiAraTaskBaseParams = Partial<ProxyCredentials> & {\n  \"SlideMasterUrlId\": string;\n  \"userAgent\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for AntiCyberSiAraTaskBase\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/anti-cyber-siara}\n */\nexport abstract class AntiCyberSiAraTaskBase extends BaseTask implements AntiCyberSiAraTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} SlideMasterUrlId - The value of the MasterUrlId parameter obtained from the request to the endpoint API/CyberSiara/GetCyberSiara.\n   */\n  SlideMasterUrlId: string;\n\n  /**\n   * @type {string} userAgent - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n   */\n  userAgent: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * AntiCyberSiAraTaskBase\n  * @see {@link https://2captcha.com/api-docs/anti-cyber-siara}\n  * @param {Object} params - CapyTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.SlideMasterUrlId] - The value of the MasterUrlId parameter obtained from the request to the endpoint API/CyberSiara/GetCyberSiara.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ SlideMasterUrlId, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, userAgent }: AntiCyberSiAraTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.SlideMasterUrlId = SlideMasterUrlId;\n\n    this.websiteURL = websiteURL;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.userAgent = userAgent;\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiCyberSiAraTaskBaseParams } from \"./Base/_AntiCyberSiAraTaskBase\";\n\nimport { AntiCyberSiAraTaskBase } from \"./Base/_AntiCyberSiAraTaskBase\";\n\ntype AntiCyberSiAraTaskProxylessParams = ProxylessTaskParams<AntiCyberSiAraTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of CyberSiARA.\n * @extends {AntiCyberSiAraTaskBase}\n * @see {@link https://2captcha.com/api-docs/anti-cyber-siara}\n */\nexport class AntiCyberSiAraTaskProxyless extends AntiCyberSiAraTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiCyberSiAraTaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiCyberSiAraTaskProxyless: _IsTaskType[\"_isAntiCyberSiAraTaskProxyless\"] = true;\n\n  /**\n  * Create AntiCyberSiAraTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/anti-cyber-siara}\n  * @param {Object} params - CapyTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.SlideMasterUrlId] - The value of the MasterUrlId parameter obtained from the request to the endpoint API/CyberSiara/GetCyberSiara.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  */\n  constructor (params: AntiCyberSiAraTaskProxylessParams) {\n    super(params, \"AntiCyberSiAraTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiCyberSiAraTaskBaseParams } from \"./Base/_AntiCyberSiAraTaskBase\";\n\nimport { AntiCyberSiAraTaskBase } from \"./Base/_AntiCyberSiAraTaskBase\";\n\ntype AntiCyberSiAraTaskParams = ProxyRequiredTaskParams<AntiCyberSiAraTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of CyberSiARA.\n * @extends {AntiCyberSiAraTaskBase}\n * @see {@link https://2captcha.com/api-docs/anti-cyber-siara}\n */\nexport class AntiCyberSiAraTask extends AntiCyberSiAraTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiCyberSiAraTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiCyberSiAraTask: _IsTaskType[\"_isAntiCyberSiAraTask\"] = true;\n\n  /**\n  * Create AntiCyberSiAraTask\n  * @see {@link https://2captcha.com/api-docs/anti-cyber-siara}\n  * @param {Object} params - CapyTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.SlideMasterUrlId] - The value of the MasterUrlId parameter obtained from the request to the endpoint API/CyberSiara/GetCyberSiara.\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: AntiCyberSiAraTaskParams) {\n    super(params, \"AntiCyberSiAraTask\");\n  }\n}\n","import type { ProxyCredentials, ProxyTypes, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type AmazonTaskBaseParams = Partial<ProxyCredentials> & {\n  \"captchaScript\"?: string;\n  \"challengeScript\"?: string;\n  \"context\": string;\n  \"iv\": string;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for AmazonTask\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}\n */\nexport abstract class AmazonTaskBase extends BaseTask implements AmazonTaskBaseParams {\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websiteKey - Value of key parameter you found on the page\n   */\n  websiteKey: string;\n\n  /**\n   * @type {string} iv - Value of iv parameter you found on the\n   */\n  iv: string;\n\n  /**\n   * @type {string} context - Value of context parameter you found on the page\n   */\n  context: string;\n\n  /**\n   * @type {string} challengeScript - The source URL of challenge.js script on the page\n   */\n  challengeScript?: string;\n\n  /**\n   * @type {string} captchaScript - The source URL of captcha.js script on the page\n   */\n  captchaScript?: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyTypes;\n\n  /**\n  * AmazonTaskBase\n  * @see {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}\n  * @param {Object} params - AmazonTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Value of key parameter you found on the page\n  * @param {string} [params.iv] - Value of iv parameter you found on the\n  * @param {string} [params.context] - Value of context parameter you found on the page\n  * @param {string} [params.challengeScript] - The source URL of challenge.js script on the page\n  * @param {string} [params.captchaScript] - The source URL of captcha.js script on the page\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor ({ websiteKey, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, iv, challengeScript, captchaScript, context }: AmazonTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.iv = iv;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPassword = proxyPassword;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.challengeScript = challengeScript;\n\n    this.context = context;\n\n    this.captchaScript = captchaScript;\n  }\n\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AmazonTaskBaseParams } from \"./Base/_AmazonTaskBase\";\n\nimport { AmazonTaskBase } from \"./Base/_AmazonTaskBase\";\n\ntype AmazonTaskProxylessParams = ProxylessTaskParams<AmazonTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of Amazon AWS CAPTCHA.\n * @extends {AmazonTaskBase}\n * @see {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}\n */\nexport class AmazonTaskProxyless extends AmazonTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isKeyCaptchaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAmazonTaskProxyless: _IsTaskType[\"_isAmazonTaskProxyless\"] = true;\n\n  /**\n  * Create AmazonTaskProxyless\n  * @see {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}\n  * @param {Object} params - AmazonTaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Value of key parameter you found on the page\n  * @param {string} [params.iv] - Value of iv parameter you found on the\n  * @param {string} [params.context] - Value of context parameter you found on the page\n  * @param {string} [params.challengeScript] - The source URL of challenge.js script on the page\n  * @param {string} [params.captchaScript] - The source URL of captcha.js script on the page\n  */\n  constructor (params: AmazonTaskProxylessParams) {\n    super(params, \"AmazonTaskProxyless\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AmazonTaskBaseParams } from \"./Base/_AmazonTaskBase\";\n\nimport { AmazonTaskBase } from \"./Base/_AmazonTaskBase\";\n\ntype AmazonTaskParams = ProxyRequiredTaskParams<AmazonTaskBaseParams>;\n\n/**\n * Token-based method for automated solving of Amazon AWS CAPTCHA.\n * @extends {AmazonTaskBase}\n * @see {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}\n */\nexport class AmazonTask extends AmazonTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAmazonTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAmazonTask: _IsTaskType[\"_isAmazonTask\"] = true;\n\n  /**\n  * Create AmazonTask\n  * @see {@link https://2captcha.com/api-docs/amazon-aws-waf-captcha}\n  * @param {Object} params - AmazonTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - Value of key parameter you found on the page\n  * @param {string} [params.iv] - Value of iv parameter you found on the\n  * @param {string} [params.context] - Value of context parameter you found on the page\n  * @param {string} [params.challengeScript] - The source URL of challenge.js script on the page\n  * @param {string} [params.captchaScript] - The source URL of captcha.js script on the page\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: AmazonTaskParams) {\n    super(params, \"AmazonTask\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV4TaskParams as _GeeTestV4TaskParams } from \"./Base/_GeeTestTaskBase\";\n\nimport { GeeTestV4TaskBase } from \"./Base/_GeeTestV4TaskBase\";\n\ntype GeeTestV4TaskParams = ProxyRequiredTaskParams<_GeeTestV4TaskParams>;\n\n/**\n * Token-based method to bypass GeeTest v4.\n * @extends {GeeTestV4TaskBase}\n * @see {@link https://2captcha.com/api-docs/geetest}\n */\nexport class GeeTestV4Task extends GeeTestV4TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isGeeTestTask - Only used for correct method overloading intellisense\n  */\n  readonly _isGeeTestTask: _IsTaskType[\"_isGeeTestTask\"] = true;\n\n  /**\n  * Create GeeTestV4Task\n  * @see {@link https://2captcha.com/api-docs/geetest}\n  * @param {Object} params - GeeTestV4TaskParams\n  * @param {object} [params.initParameters] - Required for GeeTest V4. Captcha parameters passed to initGeetest4 call, must contain captcha_id value\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  */\n  constructor (params: GeeTestV4TaskParams) {\n    super(params, \"GeeTestTask\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV2TaskBaseParams } from \"./Base/_RecaptchaV2TaskBase\";\n\nimport { RecaptchaV2TaskBase } from \"./Base/_RecaptchaV2TaskBase\";\n\nexport interface _RecaptchaV2EnterpriseTaskParams { \"enterprisePayload\"?: Record<string, string> }\n\ntype RecaptchaV2EnterpriseTaskParams = _RecaptchaV2EnterpriseTaskParams & ProxyRequiredTaskParams<RecaptchaV2TaskBaseParams>;\n\n/**\n * Token-based method for automated solving of reCAPTCHA V2.\n * @extends {RecaptchaV2TaskBase}\n * @see {@link https://2captcha.com/api-docs/recaptcha-v2-enterprise}\n */\nexport class RecaptchaV2EnterpriseTask extends RecaptchaV2TaskBase implements _RecaptchaV2EnterpriseTaskParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isRecaptchaV2EnterpriseTask - Only used for correct method overloading intellisense\n  */\n  readonly _isRecaptchaV2EnterpriseTask: _IsTaskType[\"_isRecaptchaV2EnterpriseTask\"] = true;\n\n  /**\n   * @type {string} enterprisePayload - Additional parameters passed to grecaptcha.enterprise.render call. For example, there can be an object containing s value\n   */\n  enterprisePayload?: Record<string, string>;\n\n  /**\n  * Create RecaptchaV2EnterpriseTask\n  * @see {@link https://2captcha.com/api-docs/recaptcha-v2-enterprise}\n  * @param {Object} params - RecaptchaV2EnterpriseTaskParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n  * @param {string} [params.userAgent] - User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents\n  * @param {boolean}[params.isInvisible] - Pass true for Invisible version of reCAPTCHA - a case when you don't see the checkbox, but the challenge appears. Mostly used with a callback function\n  * @param {string} [params.recaptchaDataSValue] - The value of data-s parameter. Can be required to bypass the captcha on Google services\n  * @param {string} [params.enterprisePayload] - Additional parameters passed to grecaptcha.enterprise.render call. For example, there can be an object containing s value\n  * @param {string} [params.apiDomain] - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n  * @param {string} [params.cookies] - Your cookies will be set in a browser of our worker. Suitable for captcha on Google services. The format is: key1=val1; key2=val2\n  * @param {string} [params.proxyAddress] -\tProxy IP address or hostname\n  * @param {string} [params.proxyLogin] - Login for basic authentication on the proxy\n  * @param {string} [params.proxyPassword] - Password for basic authentication on the proxy\n  * @param {string} [params.proxyType] - Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5\n  * @param {string} [params.proxyPort] - Proxy port\n  *\n  */\n  constructor ({ enterprisePayload, ...params }: RecaptchaV2EnterpriseTaskParams) {\n    super(params, \"RecaptchaV2EnterpriseTask\");\n\n    this.enterprisePayload = enterprisePayload;\n  }\n}\n","import type { TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type RecaptchaV3TaskBaseParams = {\n  \"apiDomain\"?: string;\n  \"isEnterprise\"?: boolean;\n  \"minScore\": number;\n  \"pageAction\"?: string;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * Base class for Recaptcha V3\n * @extends {BaseTask}\n * @see {@link https://2captcha.com/api-docs/recaptcha-v3}\n */\nexport abstract class RecaptchaV3TaskBase extends BaseTask implements RecaptchaV3TaskBaseParams {\n\n  /**\n   * @type {string} apiDomain - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n   */\n  apiDomain?: string;\n\n  /**\n   * @type {string} websiteURL - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} websiteKey - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n   */\n  websiteKey: string;\n\n  /**\n   * @type {number} minScore - Required score value:\n   */\n  minScore: number;\n\n  /**\n   * @type {string} pageAction - Action parameter value. The value is set by website owner inside data-action property of the reCAPTCHA div element or passed inside options object of execute method call, like grecaptcha.execute('websiteKey'{ action: 'myAction' })\n   */\n  pageAction?: string;\n\n  /**\n    * @type {boolean} isEnterprise - Pass true for Enterprise version of reCAPTCHA. You can identify it by enterprise.js script used instead of api.js or by grecaptcha.enterprise.execute call used instead of grecaptcha.execute\n   */\n  isEnterprise?: boolean;\n\n  /**\n  * RecaptchaV3TaskBase\n  * @see {@link https://2captcha.com/api-docs/recaptcha-v3}\n  * @param {Object} params - RecaptchaV3TaskBaseParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n  *\n  * @param {string} [params.apiDomain] - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n  * @param {string} [params.pageAction] - Action parameter value. The value is set by website owner inside data-action property of the reCAPTCHA div element or passed inside options object of execute method call, like grecaptcha.execute('websiteKey'{ action: 'myAction' })\n  * @param {number} [params.minScore] - Required score value\n  * @param {boolean} [params.isEnterprise] - Pass true for Enterprise version of reCAPTCHA. You can identify it by enterprise.js script used instead of api.js or by grecaptcha.enterprise.execute call used instead of grecaptcha.execute\n  */\n  constructor ({ websiteKey, websiteURL, apiDomain, minScore, pageAction, isEnterprise }: RecaptchaV3TaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.apiDomain = apiDomain;\n\n    this.minScore = minScore;\n\n    this.pageAction = pageAction;\n\n    this.isEnterprise = isEnterprise;\n  }\n\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV3TaskBaseParams } from \"./Base/_RecaptchaV3TaskBase\";\n\nimport { RecaptchaV3TaskBase } from \"./Base/_RecaptchaV3TaskBase\";\n\ntype RecaptchaV3TaskProxylessParams = ProxylessTaskParams<RecaptchaV3TaskBaseParams>;\n\n/**\n * Token-based method for automated solving of reCAPTCHA V3.\n * @extends {RecaptchaV3TaskBase}\n * @see {@link https://3captcha.com/api-docs/recaptcha-v3}\n */\nexport class RecaptchaV3TaskProxyless extends RecaptchaV3TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isRecaptchaV3TaskProxyless - Only used for correct method overloading intellisense\n  */\n  readonly _isRecaptchaV3TaskProxyless: _IsTaskType[\"_isRecaptchaV3TaskProxyless\"] = true;\n\n  /**\n  * Create RecaptchaV3TaskProxyless\n  * @see {@link https://2captcha.com/api-docs/recaptcha-v3}\n  * @param {Object} params - RecaptchaV3TaskProxylessParams\n  * @param {string} [params.websiteURL] - The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users\n  * @param {string} [params.websiteKey] - reCAPTCHA sitekey. Can be found inside data-sitekey property of the reCAPTCHA div element or inside k parameter of the requests to reCAPTHCHA API. You can also use the script to find the value\n  *\n  * @param {string} [params.apiDomain] - Domain used to load the captcha: google.com or recaptcha.net. Default value: google.com\n  * @param {string} [params.pageAction] - Action parameter value. The value is set by website owner inside data-action property of the reCAPTCHA div element or passed inside options object of execute method call, like grecaptcha.execute('websiteKey'{ action: 'myAction' })\n  * @param {number} [params.minScore] - Required score value:\n  */\n  constructor (params: RecaptchaV3TaskProxylessParams) {\n    super(params, \"RecaptchaV3TaskProxyless\");\n  }\n}\n"]}