{"version":3,"sources":["/Users/maksatsynasyl/captcha-libs/packages/capsolver/dist/index.cjs","../../captcha-client/src/captcha-client.ts","../../captcha-client/src/utils.ts","../src/lib/capsolver.ts","../src/lib/Requests/_BaseTaskRequest.ts","../src/lib/Requests/Classification/AwsWafClassification.ts","../src/lib/Requests/Classification/FunCaptchaClassification.ts","../src/lib/Requests/Classification/HCaptchaClassification.ts","../src/lib/Requests/Classification/ImageToTextTask.ts","../src/lib/Requests/Classification/ReCaptchaV2Classification.ts","../src/lib/Requests/Classification/VisionEngine.ts","../src/lib/Requests/Token/AntiAkamaiBMPTask.ts","../src/lib/Requests/Token/AntiAkamaiPowTask.ts","../src/lib/Requests/Token/AntiAkamaiSensorTask.ts","../src/lib/Requests/Token/AntiAkamaiWebTask.ts","../src/lib/Requests/Token/Base/_AntiAwsWafBase.ts","../src/lib/Requests/Token/AntiAwsWafTask.ts","../src/lib/Requests/Token/AntiAwsWafTaskProxyLess.ts","../src/lib/Requests/Token/Base/_AntiCloudflareBase.ts","../src/lib/Requests/Token/AntiCloudflareTask.ts","../src/lib/Requests/Token/AntiCloudflareTurnstileTask.ts","../src/lib/Requests/Token/Base/_AntiTurnstileTaskProxyLessBase.ts","../src/lib/Requests/Token/AntiTurnstileTaskProxyLess.ts","../src/lib/Requests/Token/Base/_AntiCyberSiAraBase.ts","../src/lib/Requests/Token/AntiCyberSiAraTask.ts","../src/lib/Requests/Token/AntiCyberSiAraTaskProxyLess.ts","../src/lib/Requests/Token/Base/_AntiImpervaBase.ts","../src/lib/Requests/Token/AntiImpervaTask.ts","../src/lib/Requests/Token/AntiImpervaTaskProxyLess.ts","../src/lib/Requests/Token/DataDomeSliderTask.ts","../src/lib/Requests/Token/Base/_FunCaptchaBase.ts","../src/lib/Requests/Token/FunCaptchaTaskProxyLess.ts","../src/lib/Requests/Token/FunCaptchaTask.ts","../src/lib/Requests/Token/Base/_GeeTestTaskBase.ts","../src/lib/Requests/Token/GeeTestTask.ts","../src/lib/Requests/Token/GeeTestTaskProxyLess.ts","../src/lib/Requests/Token/Base/_GeeTestV3TaskBase.ts","../src/lib/Requests/Token/GeeTestV3Task.ts","../src/lib/Requests/Token/GeeTestV3TaskProxyLess.ts","../src/lib/Requests/Token/Base/_GeeTestV4TaskBase.ts","../src/lib/Requests/Token/GeeTestV4Task.ts","../src/lib/Requests/Token/GeeTestV4TaskProxyLess.ts","../src/lib/Requests/Token/Base/_HCaptchaTaskBase.ts","../src/lib/Requests/Token/HCaptchaTask.ts","../src/lib/Requests/Token/HCaptchaTaskProxyLess.ts","../src/lib/Requests/Token/Base/_MtCaptchaTaskBase.ts","../src/lib/Requests/Token/MtCaptchaTask.ts","../src/lib/Requests/Token/MtCaptchaTaskProxyLess.ts","../src/lib/Requests/Token/Base/_RecaptchaV2TaskBase.ts","../src/lib/Requests/Token/ReCaptchaV2EnterpriseTask.ts","../src/lib/Requests/Token/ReCaptchaV2EnterpriseTaskProxyLess.ts","../src/lib/Requests/Token/ReCaptchaV2Task.ts","../src/lib/Requests/Token/ReCaptchaV2TaskProxyLess.ts","../src/lib/Requests/Token/Base/_RecaptchaV3TaskBase.ts","../src/lib/Requests/Token/ReCaptchaV3EnterpriseTask.ts","../src/lib/Requests/Token/ReCaptchaV3EnterpriseTaskProxyLess.ts","../src/lib/Requests/Token/ReCaptchaV3M1TaskProxyLess.ts","../src/lib/Requests/Token/ReCaptchaV3Task.ts","../src/lib/Requests/Token/ReCaptchaV3TaskProxyLess.ts"],"names":["CaptchaClient","baseUrl","delay","timeout","Promise","resolve","setTimeout","CapSolver","constructor","params","clientKey","pollingInterval","appId","getBalance","body","fetch","response","_endpoint","task","taskId","result","Error","_isAntiAkamaiBMPTask","createTaskResponse","solution","AbortSignal","abortSignal","stringify","errorCode","AbortError","error","BaseTask","type","question","_isAwsWafClassification","images","websiteKey","websiteURL","_isFunCaptchaClassification","module","_isHCaptchaClassification","queries","ImageToTextTask","_module","_isImageToTextTask","case","score","ReCaptchaV2Classification","_isReCaptchaV2Classification","image","VisionEngine","imageBackground","_isVisionEngine","AntiAkamaiBMPTask","deviceId","count","deviceName","packageName","pow","version","metadata","country","AntiAkamaiPowTask","AntiAkamaiWebTask","url","_isAntiAkamaiWebTask","abck","bmsz","userAgent","AntiAwsWafTaskBase","awsContext","proxyAddress","proxyLogin","proxyPassword","proxyPort","proxyType","awsChallengeJS","awsIv","awsKey","proxy","awsApiJs","awsProblemUrl","awsApiKey","awsExistingToken","AntiAwsWafTask","_isAntiAwsWafTask","_isAntiAwsWafTaskProxyLess","html","AntiCloudflareTask","_isAntiCloudflareTask","AntiCloudflareTaskBase","AntiCloudflareTurnstileTask","action","cdata","AntiTurnstileTaskProxyLessBase","AntiTurnstileTaskProxyLess","_isAntiTurnstileTaskProxyLess","SlideMasterUrlId","AntiCyberSiAraTask","_isAntiCyberSiAraTask","AntiCyberSiAraTaskBase","AntiCyberSiAraTaskProxyLess","_isAntiCyberSiAraTaskProxyLess","websiteUrl","utmvc","reese84","reeseScriptUrl","reeseToken","AntiImpervaTask","_isAntiImpervaTask","AntiImpervaTaskBase","_isAntiImpervaTaskProxyLess","DataDomeSliderTask","_isDataDomeSliderTask","captchaUrl","FunCaptchaTaskBase","websitePublicKey","data","_isFunCaptchaTaskProxyLess","FunCaptchaTask","_isFunCaptchaTask","GeeTestTaskBase","gt","challenge","geetestApiServerSubdomain","captchaId","riskType","GeeTestTask","_isGeeTestTask","_isGeeTestTaskProxyLess","GeeTestV3TaskBase","GeeTestV3Task","GeeTestV4TaskBase","GeeTestV4Task","HCaptchaTaskBase","enterprisePayload","isInvisible","getCaptcha","HCaptchaTask","_isHCaptchaTask","_isHCaptchaTaskProxyLess","MtCaptchaTaskBase","MtCaptchaTask","_isMtCaptchaTask","_isMtCaptchaTaskProxyLess","cookies","apiDomain","pageAction","isSession","recaptchaDataSValue","ReCaptchaV2EnterpriseTask","_isReCaptchaV2EnterpriseTask","RecaptchaV2TaskBase","ReCaptchaV2EnterpriseTaskProxyLess","_isReCaptchaV2EnterpriseTaskProxyLess","ReCaptchaV2Task","_isReCaptchaV2Task","_isReCaptchaV2TaskProxyLess","minScore","reload","anchor","ReCaptchaV3EnterpriseTask","_isReCaptchaV3EnterpriseTask","RecaptchaV3TaskBase","ReCaptchaV3EnterpriseTaskProxyLess","_isReCaptchaV3EnterpriseTaskProxyLess","ReCaptchaV3M1TaskProxyLess","_isReCaptchaV3M1TaskProxyLess","ReCaptchaV3Task","_isReCaptchaV3Task","_isReCaptchaV3TaskProxyLess"],"mappings":"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C,IAAAA;AAChB,EAAA;AA0EF;AAjIkDjI;AAA3C;ArDu0EyB;AACA;AsDx1EnBkI;AtD01EmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AsDl1EwB,EAAA;AACtC,IAAA;AArBPC;AtD02EqB;AACA;AACA,IAAA;AsDt1E9B,EAAA;AACF;AA5B+CC;AAAxC;AtDs3EyB;AACA;AuDr3EnBC;AvDu3EmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AuD/2EiC,EAAA;AAC/C,IAAA;AAfPC;AvDi4EqB;AACA;AACA,IAAA;AuDn3E9B,EAAA;AACF;AAtBwDF;AAA3CC;AvD64EmB;AACA;AwD74EnBE;AxD+4EmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AwDv4EyB,EAAA;AACvC,IAAA;AAfPC;AxDy5EqB;AACA;AACA,IAAA;AwD34E9B,EAAA;AACF;AAtBgDJ;AAAnCG;AxDq6EmB;AACA;AyDv6EnBE;AzDy6EmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AyDj6Ec,EAAA;AAC5B,IAAA;AArBPC;AzDy7EqB;AACA;AACA,IAAA;AyDr6E9B,EAAA;AACF;AA5BqCN;AAA9B;AzDq8EyB;AACA;A0Dt8EzB;A1Dw8EyB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A0Dh8EuB,EAAA;AACrC,IAAA;AAfPO;A1Dk9EqB;AACA;AACA,IAAA;A0Dp8E9B,EAAA;AACF;AAtB8CP;AAAvC;A1D89EyB;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":"/Users/maksatsynasyl/captcha-libs/packages/capsolver/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 { CapSolverCreateTaskResponse, CaptchaClientParams, CapSolverBalanceResponse, FeedbackTaskParams, FeedbackResponse, CapSolverBalanceSuccessResponse } from \"./types\";\n\nimport type {\n  AntiAkamaiPowTaskSolution,\n  AntiAkamaiSensorTaskSolution,\n  AntiAkamaiWebTaskSolution,\n  AntiAwsWafTaskSolution,\n  AntiCloudflareTaskSolution,\n  AntiCyberSiAraTaskSolution,\n  AntiImpervaTaskSolution,\n  DataDomeSliderTaskSolution,\n  FunCaptchaTaskSolution,\n  GeeTestV3TaskSolution,\n  GeeTestV4TaskSolution,\n  HCaptchaTaskSolution,\n  MtCaptchaTaskSolution,\n  ReCaptchaV2TaskSolution,\n  ReCaptchaV3TaskSolution,\n  AwsWafClassificationSolution,\n  HCaptchaClassificationSolution,\n  ImageToTextSolution,\n  ReCaptchaV2ClassificationSolution,\n  FunCaptchaClassificationSolution,\n  VisionEngineSolution\n} from \"./Solution\";\n\nimport type {\n  AntiAkamaiPowTask,\n  AntiAkamaiSensorTask,\n  AntiAkamaiWebTask,\n  AntiAwsWafTask,\n  AntiAwsWafTaskProxyLess,\n  AntiCloudflareTask,\n  AntiCloudflareTurnstileTask,\n  AntiCyberSiAraTask,\n  AntiCyberSiAraTaskProxyLess,\n  AntiImpervaTask,\n  AntiImpervaTaskProxyLess,\n  DataDomeSliderTask,\n  FunCaptchaTaskProxyLess,\n  GeeTestTask,\n  GeeTestTaskProxyLess,\n  FunCaptchaClassification,\n  GeeTestV3Task,\n  GeeTestV3TaskProxyLess,\n  GeeTestV4Task,\n  GeeTestV4TaskProxyLess,\n  HCaptchaTask,\n  HCaptchaTaskProxyLess,\n  MtCaptchaTask,\n  MtCaptchaTaskProxyLess,\n  Requests,\n  ReCaptchaV2EnterpriseTask,\n  ReCaptchaV2EnterpriseTaskProxyLess,\n  ReCaptchaV2Task,\n  ReCaptchaV2TaskProxyLess,\n  ReCaptchaV3EnterpriseTask,\n  ReCaptchaV3EnterpriseTaskProxyLess,\n  ReCaptchaV3M1TaskProxyLess,\n  ReCaptchaV3Task,\n  ReCaptchaV3TaskProxyLess,\n  AntiAkamaiBMPTask,\n  AwsWafClassification,\n  HCaptchaClassification,\n  ImageToTextTask,\n  ReCaptchaV2Classification,\n  VisionEngine,\n  AntiTurnstileTaskProxyLess,\n  FunCaptchaTask\n} from \"./Requests\";\n\nimport type { CapSolverSolution } from \"./Solution/_BaseSolution\";\n\nimport fetch, { AbortError } from \"node-fetch\";\n\n/**\n * @classdesc CapSolver client\n * @class\n * @see {@link https://docs.capsolver.com/guide/getting-started.html}\n */\nexport class CapSolver extends CaptchaClient<CapSolverCreateTaskResponse, Requests, CapSolverBalanceSuccessResponse> {\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   * @see {@link https://docs.capsolver.com/en/guide/api-server/}\n   */\n  protected baseUrl: string = \"https://api.capsolver.com\";\n\n  private appId = \"123FB4BE-4028-4B49-A71B-D6D578F88136\";\n\n  /**\n   * @param {object} [params] - CaptchaClientParams\n   * @param {string} [params.baseUrl] - @see {@link https://docs.capsolver.com/en/guide/api-server/}\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, baseUrl = \"https://api.capsolver.com\" } = params;\n\n    super();\n\n    this.clientKey = clientKey;\n\n    this.pollingInterval = pollingInterval;\n\n    this.timeout = timeout;\n    \n    this.baseUrl = baseUrl;\n  }\n\n  public async getBalance (): Promise<CapSolverBalanceSuccessResponse> {\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 CapSolverBalanceResponse;\n\n    if (\"errorCode\" in response && !(\"balance\" in response)) throw new Error(`CapSolver: ${response.errorCode}`);\n\n    return response as CapSolverBalanceSuccessResponse;\n  }\n\n  /**\n   * @param {object} request - task payload to create task\n   * @return {Promise<CapSolverCreateTaskResponse<TSolution>>} - response of createTask\n   */\n  protected async createTask<TSolution>(request: Requests): Promise<CapSolverCreateTaskResponse<TSolution>> {\n    const { _endpoint, ...task } = request;\n\n    const body = await fetch(`${this.baseUrl}/${_endpoint}`, {\n      \"body\": JSON.stringify({\n        \"appId\": this.appId,\n        \"clientKey\": this.clientKey,\n        \"task\": task\n      }),\n      \"headers\": { \"Content-Type\": \"application/json\" },\n      \"method\": \"POST\"\n    });\n\n    const response = await body.json() as CapSolverCreateTaskResponse<TSolution>;\n\n    if (response.errorCode) throw new Error(`CapSolver: ${response.errorCode}`);\n\n    return response;\n  }\n\n  /**\n   * We rely on reports to automatically analyze the quality of tokens issued by our API. These reports are processed automatically, and our team takes proactive steps to enhance token quality, such as updating the system for new tasks, improving grids, and more.\n   * @see {@link https://docs.capsolver.com/guide/api-feedback.html}\n   * @param {FeedbackTaskParams} params - task feedback payload\n   * @param {string} [params.taskId] - Your task id\n   * @param {boolean} [params.invalid] - is task result invalid?\n   * @param {number} [params.code] - code of task result\n   * @param {number} [params.message] - invalid token messages\n   */\n  public async feedbackTask (params: FeedbackTaskParams) {\n    const { taskId, ...result } = params;\n\n    const body = await fetch(`${this.baseUrl}/feedbackTask`, {\n      \"body\": JSON.stringify({\n        \"appId\": this.appId,\n        \"clientKey\": this.clientKey,\n        result,\n        taskId\n      }),\n      \"headers\": { \"Content-Type\": \"application/json\" },\n      \"method\": \"POST\"\n    });\n\n    const response = await body.json() as FeedbackResponse;\n\n    return response;\n  }\n\n  /**\n  * @param {ReCaptchaV2EnterpriseTask | ReCaptchaV2EnterpriseTaskProxyLess | ReCaptchaV2Task | ReCaptchaV2TaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<ReCaptchaV2TaskSolution>>} - response of createTask\n  */\n  public async solve (request: ReCaptchaV2EnterpriseTask | ReCaptchaV2EnterpriseTaskProxyLess | ReCaptchaV2Task | ReCaptchaV2TaskProxyLess): Promise<CapSolverSolution<ReCaptchaV2TaskSolution>>;\n\n  /**\n  * @param {ReCaptchaV3EnterpriseTask | ReCaptchaV3EnterpriseTaskProxyLess | ReCaptchaV3M1TaskProxyLess | ReCaptchaV3Task | ReCaptchaV3TaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<ReCaptchaV3TaskSolution>>} - response of createTask\n  */\n  public async solve (request: ReCaptchaV3EnterpriseTask | ReCaptchaV3EnterpriseTaskProxyLess | ReCaptchaV3M1TaskProxyLess | ReCaptchaV3Task | ReCaptchaV3TaskProxyLess): Promise<CapSolverSolution<ReCaptchaV3TaskSolution>>;\n\n  /**\n  * @param {AntiAwsWafTask | AntiAwsWafTaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AntiAwsWafTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiAwsWafTask | AntiAwsWafTaskProxyLess): Promise<CapSolverSolution<AntiAwsWafTaskSolution>>;\n\n  /**\n  * @param {AntiCyberSiAraTask | AntiCyberSiAraTaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AntiCyberSiAraTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiCyberSiAraTask | AntiCyberSiAraTaskProxyLess): Promise<CapSolverSolution<AntiCyberSiAraTaskSolution>>;\n\n  /**\n  * @param {FunCaptchaTask | FunCaptchaTaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<FunCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: FunCaptchaTask | FunCaptchaTaskProxyLess): Promise<CapSolverSolution<FunCaptchaTaskSolution>>;\n\n  /**\n  * @param {GeeTestV3Task | GeeTestV3TaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<GeeTestV3TaskSolution>>} - response of createTask\n  */\n  public async solve (request: GeeTestV3Task | GeeTestV3TaskProxyLess): Promise<CapSolverSolution<GeeTestV3TaskSolution>>;\n\n  /**\n  * @param {GeeTestV4Task | GeeTestV4TaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<GeeTestV4TaskSolution>>} - response of createTask\n  */\n  public async solve (request: GeeTestV4Task | GeeTestV4TaskProxyLess): Promise<CapSolverSolution<GeeTestV4TaskSolution>>;\n\n  /**\n  * @param {GeeTestTask | GeeTestTaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<GeeTestTaskSolution>>} - response of createTask\n  */\n  public async solve (request: GeeTestTask | GeeTestTaskProxyLess): Promise<CapSolverSolution<GeeTestV3TaskSolution & GeeTestV4TaskSolution>>;\n\n  /**\n  * @param {HCaptchaTask | HCaptchaTaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<HCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: HCaptchaTask | HCaptchaTaskProxyLess): Promise<CapSolverSolution<HCaptchaTaskSolution>>;\n\n  /**\n  * @param {MtCaptchaTask | MtCaptchaTaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<MtCaptchaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: MtCaptchaTask | MtCaptchaTaskProxyLess): Promise<CapSolverSolution<MtCaptchaTaskSolution>>;\n\n  /**\n  * @param {AntiCloudflareTask | AntiCloudflareTurnstileTask | AntiTurnstileTaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AntiCloudflareTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiCloudflareTask | AntiCloudflareTurnstileTask | AntiTurnstileTaskProxyLess): Promise<CapSolverSolution<AntiCloudflareTaskSolution>>;\n\n  /**\n  * @param {AntiImpervaTask | AntiImpervaTaskProxyLess} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AntiImpervaTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiImpervaTask | AntiImpervaTaskProxyLess): Promise<CapSolverSolution<AntiImpervaTaskSolution>>;\n\n  /**\n  * @param {DataDomeSliderTask} request - task payload to create task\n  * @return {Promise<CapSolverSolution<DataDomeSliderTaskSolution>>} - response of createTask\n  */\n  public async solve (request: DataDomeSliderTask): Promise<CapSolverSolution<DataDomeSliderTaskSolution>>;\n\n  /**\n  * @param {AntiAkamaiSensorTask} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AntiAkamaiBMPTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiAkamaiSensorTask): Promise<CapSolverSolution<AntiAkamaiSensorTaskSolution>>;\n\n  /**\n  * @param {AntiAkamaiPowTask} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AntiAkamaiBMPTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiAkamaiPowTask): Promise<CapSolverSolution<AntiAkamaiPowTaskSolution>>;\n\n  /**\n  * @param {AntiAkamaiBMPTask} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AntiAkamaiBMPTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiAkamaiBMPTask): Promise<CapSolverSolution<AntiAkamaiPowTaskSolution & AntiAkamaiSensorTaskSolution>>;\n\n  /**\n  * @param {AntiAkamaiWebTask} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AntiAkamaiWebTaskSolution>>} - response of createTask\n  */\n  public async solve (request: AntiAkamaiWebTask): Promise<CapSolverSolution<AntiAkamaiWebTaskSolution>>;\n\n  /**\n   * @param {ImageToTextTask} request - ImageToTextTask\n   * @return {Promise<ImageToTextSolution>} - response of createTask\n   */\n  public async solve (request: ImageToTextTask): Promise<CapSolverSolution<ImageToTextSolution>>;\n\n  /**\n  * @param {AwsWafClassification} request - task payload to create task\n  * @return {Promise<CapSolverSolution<AwsWafClassificationSolution>>} - response of createTask\n  */\n  public async solve (request: AwsWafClassification): Promise<CapSolverSolution<AwsWafClassificationSolution>>;\n\n  /**\n  * @param {HCaptchaClassification} request - task payload to create task\n  * @return {Promise<CapSolverSolution<HCaptchaClassificationSolution>>} - response of createTask\n  */\n  public async solve (request: HCaptchaClassification): Promise<CapSolverSolution<HCaptchaClassificationSolution>>;\n\n  /**\n  * @param {ReCaptchaV2Classification} request - task payload to create task\n  * @return {Promise<CapSolverSolution<ReCaptchaV2ClassificationSolution>>} - response of createTask\n  */\n  public async solve (request: ReCaptchaV2Classification): Promise<CapSolverSolution<ReCaptchaV2ClassificationSolution>>;\n\n  /**\n  * @param {FunCaptchaClassification} request - task payload to create task\n  * @return {Promise<CapSolverSolution<FunCaptchaClassificationSolution>>} - response of createTask\n  */\n  public async solve (request: FunCaptchaClassification): Promise<CapSolverSolution<FunCaptchaClassificationSolution>>;\n\n  /**\n  * @param {VisionEngine} request - task payload to create task\n  * @return {Promise<CapSolverSolution<VisionEngineSolution>>} - response of createTask\n  */\n  public async solve (request: VisionEngine): Promise<CapSolverSolution<VisionEngineSolution>>;\n\n  /**\n  * @param {Requests} request - task payload to create task\n  * @return {Promise<CapSolverSolution<TSolution>>} - response of createTask\n  */\n  public async solve<TSolution>(request: Requests): Promise<CapSolverSolution<TSolution>> {\n    const balance = await this.getBalance();\n\n    if (!balance) throw new Error(\"CapSolver: ERROR_ZERO_BALANCE\");\n\n    const {\n      _isAntiAkamaiBMPTask = false,\n      _isAntiAkamaiPowTask = false,\n      _isAntiAkamaiSensorTask = false,\n      _isAntiAkamaiWebTask = false,\n      _isAntiAwsWafTask = false,\n      _isAntiAwsWafTaskProxyLess = false,\n      _isAntiCloudflareTask = false,\n      _isAntiCloudflareTurnstileTask = false,\n      _isAntiCyberSiAraTask = false,\n      _isAntiCyberSiAraTaskProxyLess = false,\n      _isAntiImpervaTask = false,\n      _isAntiImpervaTaskProxyLess = false,\n      _isAwsWafClassification = false,\n      _isBaseTask = false,\n      _isDataDomeSliderTask = false,\n      _isFunCaptchaClassification = false,\n      _isFunCaptchaTaskProxyLess = false,\n      _isGeeTestTask = false,\n      _isGeeTestTaskProxyLess = false,\n      _isGeeTestV3Task = false,\n      _isGeeTestV3TaskProxyLess = false,\n      _isGeeTestV4Task = false,\n      _isGeeTestV4TaskProxyLess = false,\n      _isHCaptchaClassification = false,\n      _isHCaptchaTask = false,\n      _isHCaptchaTaskProxyLess = false,\n      _isImageToTextTask = false,\n      _isMtCaptchaTask = false,\n      _isMtCaptchaTaskProxyLess = false,\n      _isReCaptchaV2Classification = false,\n      _isReCaptchaV2EnterpriseTask = false,\n      _isReCaptchaV2EnterpriseTaskProxyLess = false,\n      _isReCaptchaV2Task = false,\n      _isReCaptchaV2TaskProxyLess = false,\n      _isReCaptchaV3EnterpriseTask = false,\n      _isReCaptchaV3EnterpriseTaskProxyLess = false,\n      _isReCaptchaV3M1TaskProxyLess = false,\n      _isReCaptchaV3Task = false,\n      _isReCaptchaV3TaskProxyLess = false,\n      _isVisionEngine = false,\n      _isFunCaptchaTask = false,\n      _isAntiTurnstileTaskProxyLess = false,\n      ...payload\n    } = {\n      \"_isAntiAkamaiBMPTask\": false,\n      \"_isAntiAkamaiPowTask\": false,\n      \"_isAntiAkamaiSensorTask\": false,\n      \"_isAntiAkamaiWebTask\": false,\n      \"_isAntiAwsWafTask\": false,\n      \"_isAntiAwsWafTaskProxyLess\": false,\n      \"_isAntiCloudflareTask\": false,\n      \"_isAntiCloudflareTurnstileTask\": false,\n      \"_isAntiCyberSiAraTask\": false,\n      \"_isAntiCyberSiAraTaskProxyLess\": false,\n      \"_isAntiImpervaTask\": false,\n      \"_isAntiImpervaTaskProxyLess\": false,\n      \"_isAwsWafClassification\": false,\n      \"_isBaseTask\": false,\n      \"_isDataDomeSliderTask\": false,\n      \"_isFunCaptchaClassification\": false,\n      \"_isFunCaptchaTaskProxyLess\": false,\n      \"_isGeeTestTask\": false,\n      \"_isGeeTestTaskProxyLess\": false,\n      \"_isGeeTestV3Task\": false,\n      \"_isGeeTestV3TaskProxyLess\": false,\n      \"_isGeeTestV4Task\": false,\n      \"_isGeeTestV4TaskProxyLess\": false,\n      \"_isHCaptchaClassification\": false,\n      \"_isHCaptchaTask\": false,\n      \"_isHCaptchaTaskProxyLess\": false,\n      \"_isImageToTextTask\": false,\n      \"_isMtCaptchaTask\": false,\n      \"_isMtCaptchaTaskProxyLess\": false,\n      \"_isReCaptchaV2Classification\": false,\n      \"_isReCaptchaV2EnterpriseTask\": false,\n      \"_isReCaptchaV2EnterpriseTaskProxyLess\": false,\n      \"_isReCaptchaV2Task\": false,\n      \"_isReCaptchaV2TaskProxyLess\": false,\n      \"_isReCaptchaV3EnterpriseTask\": false,\n      \"_isReCaptchaV3EnterpriseTaskProxyLess\": false,\n      \"_isReCaptchaV3M1TaskProxyLess\": false,\n      \"_isReCaptchaV3Task\": false,\n      \"_isReCaptchaV3TaskProxyLess\": false,\n      \"_isVisionEngine\": false,\n      \"_isFunCaptchaTask\": false,\n      \"_isAntiTurnstileTaskProxyLess\": false,\n      ...request\n    };\n\n    const createTaskResponse = await this.createTask<TSolution>(payload as Requests);\n\n    if (createTaskResponse.solution) return createTaskResponse as CapSolverSolution<TSolution>;\n\n    const abortSignal = AbortSignal.timeout(this.timeout);\n\n    const isAborted = abortSignal.aborted;\n\n    try {\n      while (!isAborted) {\n        const response = await fetch(`${this.baseUrl}/getTaskResult`, {\n          \"body\": JSON.stringify({ \"taskId\": createTaskResponse.taskId }),\n          \"method\": \"POST\",\n          \"headers\": { \"Content-Type\": \"application/json\" },\n          \"signal\": abortSignal\n        });\n\n        if (!response.ok) throw new Error(\"Unexpected error\");\n\n        const body = await response.json() as CapSolverSolution<TSolution>;\n\n        if (body.solution) return body;\n\n        else if (body.errorCode) throw new Error(`CapSolver: ${body.errorDescription}`);\n\n        await delay(this.pollingInterval);\n      }\n    } catch (error) {\n      if (error instanceof AbortError && error.name === \"AbortError\") throw new Error(`CapSolver timeout ${this.timeout} exceeded!`);\n      else throw error;\n    }\n\n    throw new Error(\"CapSolver finished with error\");\n  }\n}\n","const _TaskTypes = [\n  \"HCaptchaClassification\",\n  \"ImageToTextTask\",\n  \"ReCaptchaV2EnterpriseTask\",\n  \"ReCaptchaV2EnterpriseTaskProxyLess\",\n  \"ReCaptchaV2Task\",\n  \"ReCaptchaV2TaskProxyLess\",\n  \"ReCaptchaV3EnterpriseTask\",\n  \"ReCaptchaV3EnterpriseTaskProxyLess\",\n  \"ReCaptchaV3M1TaskProxyLess\",\n  \"ReCaptchaV3Task\",\n  \"ReCaptchaV3TaskProxyLess\",\n  \"FunCaptchaClassification\",\n  \"ImageToTextTask\",\n  \"HCaptchaClassification\",\n  \"ReCaptchaV2Classification\",\n  \"AwsWafClassification\",\n  \"MtCaptchaTask\",\n  \"MtCaptchaTaskProxyLess\",\n  \"DataDomeSliderTask\",\n  \"AntiAwsWafTask\",\n  \"AntiAwsWafTaskProxyLess\",\n  \"AntiCyberSiAraTask\",\n  \"AntiCyberSiAraTaskProxyLess\",\n  \"AntiImpervaTask\",\n  \"AntiImpervaTaskProxyLess\",\n  \"AntiCloudflareTask\",\n  \"AntiAkamaiBMPTask\",\n  \"AntiAkamaiWebTask\",\n  \"HCaptchaTask\",\n  \"HCaptchaTaskProxyLess\",\n  \"FunCaptchaTaskProxyLess\",\n  \"FunCaptchaTask\",\n  \"GeeTestTask\",\n  \"GeeTestTaskProxyLess\",\n  \"VisionEngine\",\n  \"AntiTurnstileTaskProxyLess\"\n] as const;\n\nexport type TaskTypes = typeof _TaskTypes[number];\n\nexport interface BaseParams {\n  \"_endpoint\"?: string;\n  \"type\": TaskTypes;\n}\n\ntype ProxyTypes = \"http\" | \"https\" | \"socks5\";\n\nexport interface ProxyCredentials {\n  \"proxyAddress\": string;\n  \"proxyLogin\"?: string;\n  \"proxyPassword\"?: string;\n  \"proxyPort\": number;\n  \"proxyType\": ProxyTypes;\n  \"proxy\": string;\n}\n\nexport type ProxylessTaskParams<T> = Omit<T, keyof ProxyCredentials | \"proxy\">;\n\nexport type ProxyRequiredTaskParams<T> = Omit<ProxyCredentials, \"proxy\"> & T & { \"proxy\"?: never } | T & { [PC in keyof ProxyCredentials]?: never } & { \"proxy\": string };\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  /**\n   * @type {string} _endpoint - special endpoint for task request\n   */\n  readonly _endpoint: string = \"createTask\";\n\n  constructor (params: BaseParams) {\n    const { type, _endpoint = \"createTask\" } = params || { \"_endpoint\": \"createTask\" };\n\n    this.type = type;\n\n    this._endpoint = _endpoint;\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ninterface AwsWafClassificationParams {\n  \"images\": Array<string>;\n  \"question\": string;\n  \"websiteKey\"?: string;\n  \"websiteURL\"?: string;\n}\n\n/**\n * @classdesc AWS WAF Images Recognize\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/recognition/AwsWafClassification.html}\n */\nexport class AwsWafClassification extends BaseTask implements AwsWafClassificationParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isAwsWafClassification - Only used for correct method overloading intellisense\n  */\n  readonly _isAwsWafClassification: _IsTaskType[\"_isAwsWafClassification\"] = true;\n\n  /**\n   * Create AwsWafClassification\n   * @see {@link https://docs.capsolver.com/guide/recognition/AwsWafClassification.html}\n   * @param {object} params -\tAwsWafClassificationParams\n   * @param {string} [params.question] - For full names of questions, please refer to the following list of questions.\n   * @param {string[]} [params.images] - base64 image string\n   * @param {string=} [params.websiteKey] - Website key to improve accuracy\n   * @param {string=} [params.websiteURL] - Page source url to improve accuracy\n   */\n  constructor ({ websiteKey, question, websiteURL, images }: AwsWafClassificationParams) {\n    super({ \"type\": \"AwsWafClassification\" });\n\n    this.images = images;\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.question = question;\n  }\n\n  /**\n   * @type {string} question - For full names of questions, please refer to the following list of questions.\n   */\n  question: string;\n\n  /**\n   * @type {string[]} images - base64 image string\n   */\n  images: Array<string>;\n\n  /**\n   * @type {string=} websiteKey - Website key to improve accuracy\n   */\n  websiteKey?: string;\n\n  /**\n   *\n   * @type {string=} websiteURL - Page source url to improve accuracy\n   */\n  websiteURL?: string;\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ninterface FunCaptchaClassificationParams {\n  \"images\": string;\n  \"module\"?: string;\n  \"question\": string;\n  \"websiteKey\"?: string;\n  \"websiteURL\"?: string;\n}\n\n/**\n * @classdesc FunCaptcha Images Recognize\n * @class\n * @deprecated deleted from service support\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/recognition/FunCaptchaClassification.html}\n * @deprecated deleted from service support\n */\nexport class FunCaptchaClassification extends BaseTask implements FunCaptchaClassificationParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isFunCaptchaClassification - Only used for correct method overloading intellisense\n  */\n  readonly _isFunCaptchaClassification: _IsTaskType[\"_isFunCaptchaClassification\"] = true;\n\n  /**\n   * Create FunCaptchaClassification\n   * @see {@link https://docs.capsolver.com/guide/recognition/FunCaptchaClassification.html}\n   * @param {Object} params - ImageToTextParams\n   * @param {string} [params.question] - Question name. this param value from API response game_variant field. Exmaple: maze,maze2,flockCompass,3d_rollball_animals\n   * @param {string} [params.images] - Base64 encoded image, can be a screenshot (pass only the hexagonal image, do not pass the rest of the content)\n   * @param {string} [params.module] - module name {@see https://docs.capsolver.com/guide/recognition/FunCaptchaClassification.html}\n   * @param {string} [params.websiteURL] - Page source url to improve accuracy\n   * @param {string} [params.websiteKey] - \tWebsite key to improve accuracy\n   */\n  constructor ({ images, module, question, websiteKey, websiteURL }: FunCaptchaClassificationParams) {\n    super({ \"type\": \"FunCaptchaClassification\" });\n\n    this.images = images;\n\n    this.module = module;\n\n    this.question = question;\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n  }\n\n  /**\n   * @type {string} question - Question name. this param value from API response game_variant field. Exmaple: maze,maze2,flockCompass,3d_rollball_animals\n   */\n  question: string;\n\n  /**\n   * @type {string} images - Base64 encoded image, can be a screenshot (pass only the hexagonal image, do not pass the rest of the content)\n   */\n  images: string;\n\n  /**\n   * @type {string} module - module name\n   * @see {@link https://docs.capsolver.com/guide/recognition/FunCaptchaClassification.html}\n   */\n  module?: string;\n\n  /**\n   * @type {string} websiteURL - Page source url to improve accuracy\n   */\n  websiteURL?: string;\n\n  /**\n   * @type {string} websiteKey - \tWebsite key to improve accuracy\n   */\n  websiteKey?: string;\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ninterface HCaptchaClassificationParams {\n  \"queries\": Array<string>;\n  \"question\": string;\n  \"websiteKey\"?: string;\n  \"websiteURL\"?: string;\n}\n\n/**\n * @classdesc HCaptcha Images Recognize\n * @class\n * @deprecated deleted from service support\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/recognition/HCaptchaClassification.html}\n */\nexport class HCaptchaClassification extends BaseTask implements HCaptchaClassificationParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isHCaptchaClassification - Only used for correct method overloading intellisense\n  */\n  readonly _isHCaptchaClassification: _IsTaskType[\"_isHCaptchaClassification\"] = true;\n\n  /**\n   * Create HCaptchaClassification\n   * @see {@link https://docs.capsolver.com/guide/recognition/HCaptchaClassification.html}\n   * @param {Object} params - ImageToTextParams\n   * @param {string} [params.question] - English is supported only. Please convert other languages by yourself\n   * @param {string} [params.queries] - Base64 encoded image, do not include \"data:image/***; base64,\" Assembles the picture as a list: [base64,base64,base64...]\n   * @param {string} [params.websiteKey] - Website key to improve accuracy\n   * @param {string} [params.websiteURL] - Page source url to improve accuracy\n   */\n  constructor ({ queries, question, websiteKey, websiteURL }: HCaptchaClassificationParams) {\n    super({ \"type\": \"HCaptchaClassification\" });\n\n    this.queries = queries;\n\n    this.question = question;\n\n    this.websiteURL = websiteURL;\n\n    this.websiteKey = websiteKey;\n  }\n\n  /**\n   * @type {string} question - English is supported only. Please convert other languages by yourself\n   */\n  question: string;\n\n  //\n  // @type {string} queries - Base64 encoded image, do not include \"data:image/***; base64,\"\n  // Assembles the picture as a list: [base64,base64,base64...]\n  //\n  queries: string[];\n\n  /**\n   * @type {string} websiteKey - Website key to improve accuracy\n   */\n  websiteKey?: string;\n\n  /**\n   * @type {string} websiteURL - \tPage source url to improve accuracy\n   */\n  websiteURL?: string;\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\nconst _ImageToTextModules = [\n  \"common\",\n  \"common2\",\n  \"number\",\n  \"module_001\",\n  \"module_002\",\n  \"module_003\",\n  \"module_004\",\n  \"module_005\",\n  \"module_006\",\n  \"module_007\",\n  \"module_008\",\n  \"module_010\",\n  \"module_012\",\n  \"module_013\",\n  \"module_014\",\n  \"module_015\",\n  \"module_016\",\n  \"module_017\",\n  \"module_018\",\n  \"module_019\",\n  \"module_020\",\n  \"module_021\",\n  \"module_022\",\n  \"module_023\",\n  \"module_024\",\n  \"module_025\",\n  \"module_026\",\n  \"module_027\",\n  \"module_028\",\n  \"module_029\",\n  \"module_030\",\n  \"module_031\",\n  \"module_032\"\n] as const;\n\ntype ImageToTextModules = typeof _ImageToTextModules[number];\n\ninterface ImageToTextParams {\n  \"body\": string;\n  \"module\"?: ImageToTextModules;\n  \"score\"?: number;\n  \"websiteURL\"?: string;\n  \"images\"?: string[];\n}\n\n/**\n * @classdesc OCR ImageToText\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/recognition/ImageToTextTask.html}\n */\nexport class ImageToTextTask extends BaseTask implements ImageToTextParams, _IsTaskType {\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://docs.capsolver.com/guide/recognition/ImageToTextTask.html}\n   * @param {Object} params - ImageToTextParams\n   * @param {string} [params.body] - base64 encoded content of the image (no newlines) (no data:image/*; base64, content\n   * @param {boolean=} [params.isCaseSensitive] - Case sensitive or not\n   * @param {ImageToTextModules=} [params.module] - Specifies the module. Currently, the supported modules are common and queueit\n   * @param {number=} [params.score] - 0.8 ~ 1, Identify the matching degree. If the recognition rate is not within the range, no deduction\n   * @param {string} [params.websiteURL] - Page source url to improve accuracy\n   * @param {string[]} [params.images] - Only for number module, Support up to 9 base64 encoded images each time\n   */\n  constructor ({ body, \"module\": _module, score, websiteURL, images }: ImageToTextParams) {\n    super({ \"type\": \"ImageToTextTask\" });\n\n    this.body = body;\n\n    this.score = score;\n\n    this.module = _module;\n\n    this.websiteURL = websiteURL;\n\n    this.images = images;\n  }\n\n  /**\n   * @type {string} body - base64 encoded content of the image (no newlines) (no data:image/*; base64, content\n   */\n  body: string;\n\n  /**\n   * @type {boolean=} case - Case sensitive or not\n   */\n  case?: boolean;\n\n  /**\n   * @type {ImageToTextModules=} module - Specifies the module. Currently, the supported modules are common and queueit\n   * {@see https://docs.capsolver.com/guide/recognition/ImageToTextTask.html}\n   */\n  module?: ImageToTextModules;\n\n  /**\n   * @type {number=} score - 0.8 ~ 1, Identify the matching degree. If the recognition rate is not within the range, no deduction\n   */\n  score?: number;\n\n  /**\n   * @type {string} websiteURL - Page source url to improve accuracy\n   */\n  websiteURL?: string;\n\n  images?: string[];\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ninterface ReCaptchaClassificationParams {\n  \"image\": string;\n  \"question\": string;\n  \"websiteKey\"?: string;\n  \"websiteURL\"?: string;\n}\n\n/**\n * @classdesc ReCaptcha Images Recognize\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/recognition/ReCaptchaClassification.html}\n */\nexport class ReCaptchaV2Classification extends BaseTask implements ReCaptchaClassificationParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isReCaptchaV2Classification - Only used for correct method overloading intellisense\n  */\n  readonly _isReCaptchaV2Classification: _IsTaskType[\"_isReCaptchaV2Classification\"] = true;\n\n  /**\n   * Create ReCaptchaV2Classification\n   * @see {@link https://docs.capsolver.com/guide/recognition/ReCaptchaClassification.html}\n   * @param {Object} params - ReCaptchaClassificationParams\n   * @param {string} [params.question] - please refer to the following list of questions.\n   * @param {string} [params.image] - base64 image string\n   * @param {string=} [params.websiteKey] - Website key to improve accuracy\n   * @param {string=} [params.websiteURL] - \tPage source url to improve accuracy\n   */\n  constructor ({ websiteKey, question, websiteURL, image }: ReCaptchaClassificationParams) {\n    super({ \"type\": \"ReCaptchaV2Classification\" });\n\n    this.image = image;\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.question = question;\n  }\n\n  /**\n   * @type {string} question - please refer to the following list of questions.\n   * @see {@link https://docs.capsolver.com/guide/recognition/ReCaptchaClassification.html}\n   */\n  question: string;\n\n  /**\n   * @type {string} image - base64 image string\n   */\n  image: string;\n\n  /**\n   * @type {string=} websiteKey - Website key to improve accuracy\n   */\n  websiteKey?: string;\n\n  /**\n   * @type {string=} websiteURL - \tPage source url to improve accuracy\n   */\n  websiteURL?: string;\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\nconst _VisionEngineModules = [\n  \"slider_1\",\n  \"rotate_1\",\n  \"rotate_2\",\n  \"shein\",\n  \"ocr_gif\",\n  \"botdeflector\"\n] as const;\n\ntype VisionEngineModules = typeof _VisionEngineModules[number];\n\ninterface VisionEngineParams {\n  \"image\": string;\n  \"imageBackground\"?: string;\n  \"module\": VisionEngineModules;\n  \"question\"?: string;\n  \"websiteURL\"?: string;\n}\n\n/**\n * @classdesc OCR VisionEngine\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/recognition/VisionEngine.html}\n */\nexport class VisionEngine extends BaseTask implements VisionEngineParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isVisionEngine - Only used for correct method overloading intellisense\n  */\n  readonly _isVisionEngine: _IsTaskType[\"_isVisionEngine\"] = true;\n\n  /**\n   * Create VisionEngine\n   * @see {@link https://docs.capsolver.com/guide/recognition/VisionEngine.html}\n   * @param {Object} params - VisionEngineParams\n   * @param {string} [params.image] - base64 encoded content of the image (no newlines, no data:image/***;charset=utf-8;base64,)\n   * @param {string} [params.imageBackground] - base64 encoded content of the image (no newlines, no data:image/***;charset=utf-8;base64,)\n   * @param {string} [params.question] - required for \"space_detection\" module\n   * @param {VisionEngineModules=} [params.module] - Specifies the module.\n   * @param {string} [params.websiteURL] - Page source url to improve accuracy\n   */\n  constructor ({ image, imageBackground, question, module, websiteURL }: VisionEngineParams) {\n    super({ \"type\": \"VisionEngine\" });\n\n    this.image = image;\n\n    this.imageBackground = imageBackground;\n\n    this.question = question;\n\n    this.module = module;\n\n    this.websiteURL = websiteURL;\n  }\n\n  /**\n   * @type {string} image - base64 encoded content of the image (no newlines, no data:image/***;charset=utf-8;base64,)\n   */\n  image: string;\n\n  /**\n   * @type {string} image - base64 encoded content of the image (no newlines, no data:image/***;charset=utf-8;base64,)\n   */\n  imageBackground?: string;\n\n  /**\n   * @type {VisionEngineModules=} module - Specifies the module\n   * {@see https://docs.capsolver.com/guide/recognition/VisionEngine.html}\n   */\n  module: VisionEngineModules;\n\n  /**\n   * @param {string} question - required for \"space_detection\" module\n   */\n  question?: string;\n\n  /**\n   * @type {string} websiteURL - Page source url to improve accuracy\n   */\n  websiteURL?: string;\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\nexport interface AntiAkamaiBMPTaskParams {\n  \"count\"?: number;\n  \"country\"?: string;\n  \"deviceId\"?: string;\n  \"deviceName\"?: string;\n  \"metadata\"?: Record<string, string>;\n  \"packageName\"?: string;\n  \"pow\"?: string;\n  \"version\"?: string;\n}\n\n/**\n * @classdesc Class for AntiAkamaiBMPTask. This task type uses a separate endpoint for fetching /akamaibmp/invoke\n * @class\n * @deprecated deleted from service support\n * @extends {AntiAkamaiBMPTaskBase}\n * @see {@link https://docs.capsolver.com/guide/antibots/akamaibmp.html}\n */\nexport class AntiAkamaiBMPTask extends BaseTask implements AntiAkamaiBMPTaskParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiAkamaiBMPTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiAkamaiBMPTask: _IsTaskType[\"_isAntiAkamaiBMPTask\"] = true;\n\n  /**\n   * Create AntiAkamaiBMPTaskBase\n   * @see {@link https://docs.capsolver.com/guide/antibots/akamaibmp.html}\n   * @param {object} params -\tAntiAkamaiBMPTaskBaseParams\n   * @param {number} [params.count] - Sensor combinations acquired at once, 0< count <= 50, max 50 items acquired at once\n   * @param {string} [params.deviceId] - If you want to have a fixed device ID in the sensor, you can pass this parameter\n   * @param {string} [params.deviceName] - Input fixed deviceInfo，default is: random. example: iPhone14,2/16.0.2\n   * @param {string} [params.packageName] - Package name of AkamaiBMP mobile APP, de.package.iphone\n   * @param {string} [params.pow] - Support: /_bm/get_params data. If this parameter is passed in, the other parameters will be ignored to generate the pow string\n   * @param {string} [params.version] - AKAMAI BMP Version number, default is: 3.2.6 , max support 3.3.1\n   */\n  constructor ({ count, deviceId, deviceName, packageName, pow, version, metadata, country }: AntiAkamaiBMPTaskParams) {\n    super({\n      \"_endpoint\": \"akamaibmp/invoke\",\n      \"type\": \"AntiAkamaiBMPTask\"\n    });\n\n    this.count = count;\n\n    this.deviceId = deviceId;\n\n    this.deviceName = deviceName;\n\n    this.packageName = packageName;\n\n    this.pow = pow;\n\n    this.version = version;\n\n    this.metadata = metadata;\n\n    this.country = country;\n  }\n\n  /**\n   * @type {number} count - Sensor combinations acquired at once, 0< count <= 50, max 50 items acquired at once\n   */\n  count?: number;\n\n  /**\n   * @type {string} deviceId - If you want to have a fixed device ID in the sensor, you can pass this parameter\n   */\n  deviceId?: string;\n\n  /**\n   * @type {string} deviceName - Input fixed deviceInfo，default is: random. example: iPhone14,2/16.0.2\n   */\n  deviceName?: string;\n\n  /**\n   * @type {string} packageName - Package name of AkamaiBMP mobile APP, de.package.iphone\n   */\n  packageName?: string;\n\n  //\n  // @type {string} pow - Support: /_bm/get_params data\n  // {\"mode\":1,\"nonce\":\"3764bd11365749ec62974f920eb3614c\",\"ttl\":21600,\"difficulty\":6000,\"timeout\":100,\"n\":490,\"s_timeout\":100,\"checksum\":\"plKZ9lBBJwLeeWRjoaZ4OevBFoPf3EyJIFgp2utWwI3ly34OsW6JluR2nY+lAwapZAcMf/kCo2g5ni6daXPhBSpg==\"} If this parameter is passed in, the other parameters will be ignored to generate the pow string\n  //\n  pow?: string;\n\n  /**\n   * @type {string} version - AKAMAI BMP Version number, default is: 3.2.6 , max support 3.3.1\n   */\n  version?: string;\n\n  /**\n   * @type {object} metadata - Use for sensor task\n   */\n  metadata?: Record<string, string>;\n\n  /**\n   * @type {string} country -\n   */\n  country?: string;\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\nimport type { AntiAkamaiBMPTaskParams } from \"./AntiAkamaiBMPTask\";\n\ntype AntiAkamaiPowTaskParams = Required<Pick<AntiAkamaiBMPTaskParams, \"deviceId\" | \"pow\">>;\n\n/**\n * @classdesc AntiAkamaiPowTask This task type uses a separate endpoint for fetching /akamaibmp/invoke\n * @class\n * @deprecated deleted from service support\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/antibots/akamaibmp.html}\n */\nexport class AntiAkamaiPowTask extends BaseTask implements AntiAkamaiPowTaskParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiAkamaiBMPTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiAkamaiBMPTask: _IsTaskType[\"_isAntiAkamaiBMPTask\"] = true;\n\n  /**\n   * Create AntiAkamaiPowTask\n   * @see {@link https://docs.capsolver.com/guide/antibots/akamaibmp.html}\n   * @param {object} params -\tAntiAkamaiPowTaskParams\n   * @param {string} [params.deviceId] - If you want to have a fixed device ID in the sensor, you can pass this parameter\n   * @param {string} [params.pow] - Support: /_bm/get_params data. If this parameter is passed in, the other parameters will be ignored to generate the pow string\n   */\n  constructor ({ deviceId, pow }: AntiAkamaiPowTaskParams) {\n    super({\n      \"_endpoint\": \"akamaibmp/invoke\",\n      \"type\": \"AntiAkamaiBMPTask\"\n    });\n\n    this.deviceId = deviceId;\n\n    this.pow = pow;\n  }\n\n  /**\n   * @type {string} deviceName - Input fixed deviceInfo，default is: random. example: iPhone14,2/16.0.2\n   */\n  deviceId: string;\n\n  //\n  // @type {string} pow - Support: /_bm/get_params data\n  // {\"mode\":1,\"nonce\":\"3764bd11365749ec62974f920eb3614c\",\"ttl\":21600,\"difficulty\":6000,\"timeout\":100,\"n\":490,\"s_timeout\":100,\"checksum\":\"plKZ9lBBJwLeeWRjoaZ4OevBFoPf3EyJIFgp2utWwI3ly34OsW6JluR2nY+lAwapZAcMf/kCo2g5ni6daXPhBSpg==\"} If this parameter is passed in, the other parameters will be ignored to generate the pow string\n  //\n  pow: string;\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\nimport type { AntiAkamaiBMPTaskParams } from \"./AntiAkamaiBMPTask\";\n\ntype AntiAkamaiSensorTaskParams = Omit<AntiAkamaiBMPTaskParams, \"pow\"> & Required<Pick<AntiAkamaiBMPTaskParams, \"packageName\" | \"version\">>;\n\n/**\n * @classdesc AntiAkamaiSensorTask This task type uses a separate endpoint for fetching /akamaibmp/invoke\n * @class\n * @deprecated deleted from service support\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/antibots/akamaibmp.html}\n */\nexport class AntiAkamaiSensorTask extends BaseTask implements AntiAkamaiSensorTaskParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiAkamaiBMPTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiAkamaiBMPTask: _IsTaskType[\"_isAntiAkamaiBMPTask\"] = true;\n\n  /**\n   * Create AntiAkamaiSensorTask\n   * This task type uses a separate endpoint for fetching /akamaibmp/invoke\n   * @see {@link https://docs.capsolver.com/guide/antibots/akamaibmp.html}\n   * @param {object} params -\tAntiAkamaiSensorTaskParams\n   * @param {string} [params.packageName] - required. Package name of AkamaiBMP mobile APP, de.package.iphone\n   * @param {string} [params.version] - required. AKAMAI BMP Version number, default is: 3.2.6 , max support 3.3.1\n   * @param {number} [params.count] - Sensor combinations acquired at once, 0< count <= 50, max 50 items acquired at once\n   * @param {string} [params.deviceId] - If you want to have a fixed device ID in the sensor, you can pass this parameter\n   * @param {string} [params.deviceName] - Input fixed deviceInfo，default is: random. example: iPhone14,2/16.0.2\n   */\n  constructor ({ count, country, deviceId, deviceName, metadata, packageName, version }: AntiAkamaiSensorTaskParams) {\n    super({\n      \"_endpoint\": \"akamaibmp/invoke\",\n      \"type\": \"AntiAkamaiBMPTask\"\n    });\n\n    this.count = count;\n\n    this.country = country;\n\n    this.deviceId = deviceId;\n\n    this.deviceName = deviceName;\n\n    this.metadata = metadata;\n\n    this.packageName = packageName;\n\n    this.version = version;\n  }\n\n  /**\n   * @type {number} count - Sensor combinations acquired at once, 0< count <= 50, max 50 items acquired at once\n   */\n  count?: number;\n\n  /**\n   * @type {string} country -\n   */\n  country?: string;\n\n  /**\n   * @type {string} deviceId - If you want to have a fixed device ID in the sensor, you can pass this parameter\n   */\n  deviceId?: string;\n\n  /**\n   * @type {string} deviceName - Input fixed deviceInfo，default is: random. example: iPhone14,2/16.0.2\n   */\n  deviceName?: string;\n\n  /**\n   * @type {object} metadata - Use for sensor task\n   */\n  metadata?: Record<string, string>;\n\n  /**\n   * @type {string} packageName - Package name of AkamaiBMP mobile APP, de.package.iphone\n   */\n  packageName: string;\n\n  /**\n   * @type {string} version - AKAMAI BMP Version number, default is: 3.2.6 , max support 3.3.1\n   */\n  version: string;\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ntype AntiAkamaiWebTaskParams = {\n  \"abck\"?: string;\n  \"bmsz\"?: string;\n  \"url\": string;\n  \"userAgent\"?: string;\n};\n\n/**\n * @classdesc AntiAkamaiWebTask This task type uses a separate endpoint for fetching /akamaibmp/invoke\n * @class\n * @extends {AntiAkamaiWebTaskBase}\n * @see {@link https://docs.capsolver.com/guide/antibots/akamaibmp.html}\n * @deprecated deleted from service support\n */\nexport class AntiAkamaiWebTask extends BaseTask implements AntiAkamaiWebTaskParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiAkamaiWebTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiAkamaiWebTask: _IsTaskType[\"_isAntiAkamaiWebTask\"] = true;\n\n  /**\n   * Create AntiAkamaiWebTaskBase\n   * @see {@link https://docs.capsolver.com/guide/antibots/akamaibmp.html}\n   * @param {object} params -\tAntiAkamaiWebTaskBaseParams\n   * @param {string} [params.url] - browser url address\n   * @param {string} [params.abck] - akamai cookie\n   * @param {string} [params.userAgent] - The browser's request header ua\n   */\n  constructor ({ abck, bmsz, url, userAgent }: AntiAkamaiWebTaskParams) {\n    super({\n      \"_endpoint\": \"akamaiweb/invoke\",\n\n      \"type\": \"AntiAkamaiWebTask\"\n    });\n\n    this.abck = abck;\n\n    this.bmsz = bmsz;\n\n    this.url = url;\n\n    this.userAgent = userAgent;\n  }\n\n  /**\n   * @type {string} url - browser url address\n   */\n  url: string;\n\n  /**\n   * @type {string} abck - akamai cookie\n   */\n  abck?: string;\n\n  /**\n   * @type {string} bmsz - akamai cookie\n   */\n  bmsz?: string;\n\n  /**\n   * @type {string} userAgent - The browser's request header ua\n   */\n  userAgent?: string;\n}\n","import type { TaskTypes, ProxyCredentials } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type AntiAwsWafTaskBaseParams = Partial<ProxyCredentials> & {\n  \"awsChallengeJS\"?: string;\n  \"awsContext\"?: string;\n  \"awsIv\"?: string;\n  \"awsKey\"?: string;\n  \"awsApiJs\"?: string; \n  \"awsProblemUrl\"?: string;\n  \"awsApiKey\"?: string;\n  \"awsExistingToken\"?: string;\n  \"websiteURL\": string;\n};\n\ntype Type = Extract<TaskTypes, \"AntiAwsWafTask\" | \"AntiAwsWafTaskProxyLess\">;\n\n/**\n * @classdesc Base class for AntiAwsWafTask\n * @class\n * @see {@link https://docs.capsolver.com/en/guide/captcha/awsWaf/}\n * @extends {BaseTask}\n */\nexport abstract class AntiAwsWafTaskBase extends BaseTask implements AntiAwsWafTaskBaseParams {\n\n  /**\n  * Create AntiAwsWafTaskBase\n  * {@link https://docs.capsolver.com/en/guide/captcha/awsWaf/}\n  * @param {Object} params - AntiAwsWafTaskBaseParams\n  * @param {string=} [params.awsChallengeJS] - When the status code returned by the websiteURL page is 202, you only need to pass in awsChallengeJs;\n  * @param {string=} [params.awsContext] - When the status code returned by the websiteURL page is 405, you need to pass in awsContext\n  * @param {string=} [params.awsIv] - When the status code returned by the websiteURL page is 405, you need to pass in awsIv\n  * @param {string=} [params.awsKey] - When the status code returned by the websiteURL page is 405, you need to pass in awsKey\n  * @param {string=} [params.awsApiJs] - The jsapi.js link returned by the captcha page\n  * @param {string=} [params.awsProblemUrl] - The problem endpoint url containing keywords like problem, num_solutions_required, etc.\n  * @param {string=} [params.awsApiKey] - The api_key value of the problem endpoint\n  * @param {string=} [params.awsExistingToken] - The aws-waf-token used for the last verification\n  * @param {string} [params.websiteURL] - The URL of the page that returns the captcha info\n  * @param {string} [params.proxy] -\tproxy\n  * @param {string} [params.proxyAddress] - proxyAddress\n  * @param {string} [params.proxyLogin] - proxyLogin\n  * @param {string} [params.proxyPassword] - proxyPassword\n  * @param {string} [params.proxyPort] - proxyPort\n  * @param {string} [params.proxyType] - proxyType\n  */\n  \n  constructor ({ awsChallengeJS, awsContext, awsIv, awsKey, awsApiJs, awsProblemUrl, awsApiKey, awsExistingToken, proxy, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: AntiAwsWafTaskBaseParams, type: Type) {\n    super({ type });\n\n    this.awsChallengeJS = awsChallengeJS;\n\n    this.awsContext = awsContext;\n\n    this.awsIv = awsIv;\n\n    this.awsKey = awsKey;\n    \n    this.awsApiJs = awsApiJs;\n\n    this.awsProblemUrl = awsProblemUrl;\n    \n    this.awsApiKey = awsApiKey;\n    \n    this.awsExistingToken = awsExistingToken;\n    \n    this.websiteURL = websiteURL;\n\n    this.proxy = proxy;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n\n  /**\n   * @type {string=} awsChallengeJS - When the status code returned by the websiteURL page is 202, you only need to pass in awsChallengeJs;\n   */\n  awsChallengeJS?: string;\n\n  /**\n   * @type {string=} awsContext - When the status code returned by the websiteURL page is 405, you need to pass in awsContext\n   */\n  awsContext?: string;\n\n  /**\n   * @type {string=} awsIv - When the status code returned by the websiteURL page is 405, you need to pass in awsIv\n   */\n  awsIv?: string;\n\n  /**\n   * @type {string=} awsKey - When the status code returned by the websiteURL page is 405, you need to pass in awsKey\n   */\n  awsKey?: string;\n\n  /**\n   * @type {string=} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} websiteURL - The URL of the page that returns the captcha info\n   */\n  websiteURL: string;\n  \n  /**\n   * @type {string} awsApiJs - The jsapi.js link returned by the captcha page\n   */\n  awsApiJs?: string;\n  \n  /**\n   * @type {string} awsProblemUrl - The problem endpoint url containing keywords like problem, num_solutions_required, etc.\n   */\n  awsProblemUrl?: string;\n  \n  /**\n   * @type {string} awsApiKey - The api_key value of the problem endpoint\n   */\n  awsApiKey?: string;\n\n  /**\n   * @type {string} awsExistingToken - The aws-waf-token used for the last verification\n   */\n  awsExistingToken?: string;\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiAwsWafTaskBaseParams } from \"./Base/_AntiAwsWafBase\";\n\nimport { AntiAwsWafTaskBase } from \"./Base/_AntiAwsWafBase\";\n\ntype AntiAwsWafTaskParams = ProxyRequiredTaskParams<AntiAwsWafTaskBaseParams>;\n\n/**\n * @classdesc AntiAwsWafTask this task type require your own proxies.\n * @class\n * @extends {AntiAwsWafTaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/awsWaf.html}\n */\nexport class AntiAwsWafTask extends AntiAwsWafTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiAwsWafTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiAwsWafTask: _IsTaskType[\"_isAntiAwsWafTask\"] = true;\n\n  /**\n   * Create AntiAwsWafTask - this task type require your own proxies.\n   * @see {@link https://docs.capsolver.com/guide/captcha/awsWaf.html}\n   * @param {Object} params - AntiAwsWafTaskParams\n   * @param {string=} [params.awsChallengeJS] - When the status code returned by the websiteURL page is 202, you only need to pass in awsChallengeJs;\n   * @param {string=} [params.awsContext] - When the status code returned by the websiteURL page is 405, you need to pass in awsContext\n   * @param {string=} [params.awsIv] - When the status code returned by the websiteURL page is 405, you need to pass in awsIv\n   * @param {string=} [params.awsKey] - When the status code returned by the websiteURL page is 405, you need to pass in awsKey\n   * @param {string} [params.proxy] - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   * @param {string} [params.websiteURL] - The URL of the page that returns the captcha info\n   */\n  constructor (params: AntiAwsWafTaskParams) {\n    super(params, \"AntiAwsWafTask\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiAwsWafTaskBaseParams } from \"./Base/_AntiAwsWafBase\";\n\nimport { AntiAwsWafTaskBase } from \"./Base/_AntiAwsWafBase\";\n\ntype AntiAwsWafTaskProxyLessParams = ProxylessTaskParams<AntiAwsWafTaskBaseParams>;\n\n/**\n * @classdesc AntiAwsWafTaskProxyLess this task type don't require your own proxies.\n * @class\n * @extends {AntiAwsWafTaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/awsWaf.html}\n */\nexport class AntiAwsWafTaskProxyLess extends AntiAwsWafTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiAwsWafTaskProxyLess - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiAwsWafTaskProxyLess: _IsTaskType[\"_isAntiAwsWafTaskProxyLess\"] = true;\n\n  /**\n   * Create AntiAwsWafTask\n   * @see {@link https://docs.capsolver.com/guide/captcha/awsWaf.html}\n   * @param {Object} params - AntiAwsWafTaskProxyLessParams\n   * @param {string=} [params.awsChallengeJS] - When the status code returned by the websiteURL page is 202, you only need to pass in awsChallengeJs;\n   * @param {string=} [params.awsContext] - When the status code returned by the websiteURL page is 405, you need to pass in awsContext\n   * @param {string=} [params.awsIv] - When the status code returned by the websiteURL page is 405, you need to pass in awsIv\n   * @param {string=} [params.awsKey] - When the status code returned by the websiteURL page is 405, you need to pass in awsKey\n   * @param {string=} [params.awsApiJs] - The jsapi.js link returned by the captcha page\n   * @param {string=} [params.awsProblemUrl] - The problem endpoint url containing keywords like problem, num_solutions_required, etc.\n   * @param {string=} [params.awsApiKey] - The api_key value of the problem endpoint\n   * @param {string=} [params.awsExistingToken] - The aws-waf-token used for the last verification\n   * @param {string} [params.websiteURL] - The URL of the page that returns the captcha info\n   */\n  constructor (params: AntiAwsWafTaskProxyLessParams) {\n    super(params, \"AntiAwsWafTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type AntiCloudflareTaskBaseParams = Partial<ProxyCredentials> & { \n  \"websiteURL\": string,\n  \"userAgent\"?: string,\n  \"html\"? :string \n};\n\ntype Type = Extract<TaskTypes, \"AntiCloudflareTask\">;\n\n/**\n * @classdesc Base class for AntiCloudflareTask\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/antibots/cloudflare_challenge.html}\n */\n\nexport abstract class AntiCloudflareTaskBase extends BaseTask implements AntiCloudflareTaskBaseParams {\n\n  /**\n   * Create AntiCloudflareTask\n   * @see {@link https://docs.capsolver.com/guide/antibots/cloudflare_challenge.html}\n   * @param {object} params -\tAntiCloudflareTaskParams\n   * @param {string} [params.websiteURL] - The address of the target page.\n   * @param {string=} [params.userAgent] - The user-agent you used to request the target website. Only Chrome’s userAgent is supported.\n   * @param {string=} [params.html] - The response of requesting the target website, it usually contains “Just a moment…” and status code is 403. we need this html for some websites, please be sure to use your sticky proxy to dynamically scrape the HTML every time.\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ websiteURL, userAgent, html, proxy, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: AntiCloudflareTaskBaseParams, type: Type) {\n    super({ type });\n\n    this.websiteURL = websiteURL;\n    \n    this.userAgent = userAgent;\n    \n    this.html = html;\n\n    this.proxy = proxy;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} websiteURL - The address of the target page.\n   */\n  websiteURL: string;\n  \n  /**\n   * @type {string} websiteURL - The user-agent you used to request the target website. Only Chrome’s userAgent is supported.\n   */\n  userAgent?: string;\n  \n  /**\n   * @type {string=} html - The response of requesting the target website, it usually contains “Just a moment…” and status code is 403. we need this html for some websites, please be sure to use your sticky proxy to dynamically scrape the HTML every time.\n   */\n  html?: string;\n  \n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiCloudflareTaskBaseParams } from \"./Base/_AntiCloudflareBase\";\n\nimport { AntiCloudflareTaskBase } from \"./Base/_AntiCloudflareBase\";\n\ntype AntiCloudflareTaskParams = AntiCloudflareTaskBaseParams;\n\n/**\n * @classdesc AntiCloudflareTask\n * @class\n * @extends {AntiCloudflareTaskBase}\n * @see {@link https://docs.capsolver.com/guide/antibots/cloudflare_challenge.html}\n */\nexport class AntiCloudflareTask extends AntiCloudflareTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiCloudflareTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiCloudflareTask: _IsTaskType[\"_isAntiCloudflareTask\"] = true;\n\n  /**\n   * Create AntiCloudflareTask\n   * @see {@link https://docs.capsolver.com/guide/antibots/cloudflare_challenge.html}\n   * @param {object} params -\tAntiCloudflareTaskParams\n   * @param {string} [params.websiteURL] - The address of the target page.\n   * @param {string=} [params.userAgent] - The user-agent you used to request the target website. Only Chrome’s userAgent is supported.\n   * @param {string=} [params.html] - The response of requesting the target website, it usually contains “Just a moment…” and status code is 403. we need this html for some websites, please be sure to use your sticky proxy to dynamically scrape the HTML every time.\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: AntiCloudflareTaskParams) {\n    super(params, \"AntiCloudflareTask\");\n  }\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { AntiCloudflareTaskBase, type AntiCloudflareTaskBaseParams } from \"./Base/_AntiCloudflareBase\";\n\ntype AntiCloudflareTurnstileTaskTypes = \"challenge\" | \"turnstile\";\n\nexport interface AntiCloudflareTurnstileTaskMetadata {\n  \"action\"?: string;\n  \"cdata\"?: string;\n  \"type\": AntiCloudflareTurnstileTaskTypes;\n}\n\nexport type AntiCloudflareTurnstileTaskParams = AntiCloudflareTaskBaseParams & {\n  \"metadata\": AntiCloudflareTurnstileTaskMetadata;\n  \"websiteKey\": string;\n};\n\n/**\n * @classdesc AntiCloudflareTurnstileTask\n * @class\n * @extends {AntiCloudflareTaskBase}\n * @see {@link https://docs.capsolver.com/en/guide/captcha/cloudflare_turnstile/}\n * @deprecated deleted from service support,\n * @see AntiTurnstileTaskProxyLess\n */\nexport class AntiCloudflareTurnstileTask extends AntiCloudflareTaskBase implements AntiCloudflareTurnstileTaskParams, _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiCloudflareTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiCloudflareTask: _IsTaskType[\"_isAntiCloudflareTask\"] = true;\n\n  /**\n   * Create AntiCloudflareTurnstileTask\n   * @see {@link https://docs.capsolver.com/en/guide/captcha/cloudflare_turnstile/}\n   * @param {Object} params - AntiCloudflareTurnstileTaskParams\n   * @param {string} [params.websiteURL] - The address of the target page.\n   * @param {string=} [params.websiteKey] - Turnstile website key.\n   * @param {object} [params.metadata] - Turnstile extra data {@link https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/}\n   * @param {string} [params.metadata.type] - challenge or turnstile fixed value, default: \"turnstile\"\n   * @param {string} [params.metadata.cdata] - The value of the data-cdata attribute of the Turnstile element if it exists.\n   * @param {string} [params.proxy] - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ websiteURL, proxy, metadata, websiteKey, proxyAddress, proxyLogin, proxyPassword, proxyPort, proxyType }: AntiCloudflareTurnstileTaskParams) {\n    const { action, type = \"turnstile\", cdata } = metadata || { \"type\": \"turnstile\" };\n\n    super({\n      proxy,\n      proxyAddress,\n      proxyLogin,\n      proxyPassword,\n      proxyPort,\n      proxyType,\n      websiteURL\n    }, \"AntiCloudflareTask\");\n\n    this.websiteKey = websiteKey;\n\n    this.metadata = {\n      action,\n      cdata,\n      type\n    };\n  }\n\n  websiteKey: string;\n\n  /**\n   * @type {object} [type.metadata] - Turnstile extra data {@link https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/}\n   * @type {string} [type.metadata.type] - challenge or turnstile fixed value.\n   * @type {string} [type.proxy] - proxy\n   * @type {string} [type.websiteURL] - The URL of the page that returns the captcha info\n   */\n  metadata: AntiCloudflareTurnstileTaskMetadata;\n}\n","import type { TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\ninterface AntiTurnstileMetaData {\n  \"action\"?: string;\n  \"cdata\"?: string;\n}\n\nexport type AntiTurnstileTaskProxyLessBaseParams = {\n  \"metadata\"?: AntiTurnstileMetaData;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\ntype Task = Extract<TaskTypes, \"AntiTurnstileTaskProxyLess\">;\n\n/**\n * @classdesc Base class for AntiTurnstileTaskProxyLess\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/en/guide/captcha/cloudflare_turnstile/}\n */\n\nexport abstract class AntiTurnstileTaskProxyLessBase extends BaseTask implements AntiTurnstileTaskProxyLessBaseParams {\n\n  /**\n   * Create AntiTurnstileTaskProxyLess\n   * @see {@link https://docs.capsolver.com/en/guide/captcha/cloudflare_turnstile/}\n   * @param {object} params -\tAntiTurnstileTaskProxyLessBaseParams\n   * @param {string} [params.websiteURL] - The address of the target page.\n   * @param {string} [params.websiteKey] - \tTurnstile website key.\n   * @param {Object} [params.metadata] - Turnstile extra data. @see https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/\n   * @param {string=} [params.metdata.action] - The value of the data-action attribute of the Turnstile element if it exists.\n   * @param {string=} [params.metadata.cdata] - The value of the data-cdata attribute of the Turnstile element if it exists.\n   */\n  constructor ({ websiteURL, websiteKey, metadata }: AntiTurnstileTaskProxyLessBaseParams, type: Task) {\n    super({ type });\n\n    this.websiteURL = websiteURL;\n\n    this.metadata = metadata;\n\n    this.websiteKey = websiteKey;\n  }\n\n  /**\n   * @type {string} websiteKey - \tTurnstile website key.\n   */\n  websiteKey: string;\n\n  /**\n   * @type {Object} metadata - Turnstile extra data. @see https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/\n   * @type {string=?} [metdata.action] - The value of the data-action attribute of the Turnstile element if it exists.\n   * @type {string=?} [metadata.cdata] - The value of the data-cdata attribute of the Turnstile element if it exists.\n   */\n  metadata?: {\n    \"action\"?: string | undefined;\n    \"cdata\"?: string | undefined;\n  } | undefined;\n\n  /**\n   * @type {string} websiteURL - The address of the target page.\n   */\n  websiteURL: string;\n\n}\n","import type { _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiTurnstileTaskProxyLessBaseParams } from \"./Base/_AntiTurnstileTaskProxyLessBase\";\n\nimport { AntiTurnstileTaskProxyLessBase } from \"./Base/_AntiTurnstileTaskProxyLessBase\";\n\n/**\n * @classdesc AntiTurnstileTaskProxyLess\n * @class\n * @extends {AntiTurnstileTaskProxyLessBase}\n * @see {@link https://docs.capsolver.com/en/guide/captcha/cloudflare_turnstile/}\n */\nexport class AntiTurnstileTaskProxyLess extends AntiTurnstileTaskProxyLessBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiTurnstileTaskProxyLess - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiTurnstileTaskProxyLess: _IsTaskType[\"_isAntiTurnstileTaskProxyLess\"] = true;\n\n  /**\n   * Create AntiTurnstileTaskProxyLess\n   * @see {@link https://docs.capsolver.com/en/guide/captcha/cloudflare_turnstile/}\n   * @param {object} params -\tAntiCloudflareTaskParams\n   * @param {string} [params.websiteURL] - The address of the target page.\n   * @param {string} [params.websiteKey] - \tTurnstile website key.\n   * @param {Object} [params.metadata] - Turnstile extra data. @see https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/\n   * @param {string=} [params.metdata.action] - The value of the data-action attribute of the Turnstile element if it exists.\n   * @param {string=} [params.metadata.cdata] - The value of the data-cdata attribute of the Turnstile element if it exists.\n   */\n  constructor ({ websiteURL, websiteKey, metadata }: AntiTurnstileTaskProxyLessBaseParams) {\n    super({\n      metadata,\n      websiteKey,\n      websiteURL\n    }, \"AntiTurnstileTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, 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 * @classdesc Base class for AntiCyberSiAraTaskBase\n * @class\n * @see {@link https://docs.capsolver.com/guide/captcha/CyberSiara.html}\n * @extends {BaseTask}\n */\nexport abstract class AntiCyberSiAraTaskBase extends BaseTask implements AntiCyberSiAraTaskBaseParams {\n\n  /**\n   * Create AntiCyberSiAraTaskBase\n   * @see {@link https://docs.capsolver.com/guide/captcha/CyberSiara.html}\n   * @param {Object} params - AntiCyberSiAraTaskBaseParams\n   * @param {string} [params.SlideMasterUrlId] - you can get MasterUrlId param form api/CyberSiara/GetCyberSiara endpoint\n   * @param {string} [params.userAgent] - browser userAgent,you need submit your userAgent\n   * @param {string} [params.websiteURL] - the current website home page url\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ proxy, SlideMasterUrlId, userAgent, websiteURL, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: AntiCyberSiAraTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.SlideMasterUrlId = SlideMasterUrlId;\n\n    this.userAgent = userAgent;\n\n    this.websiteURL = websiteURL;\n\n    this.proxy = proxy;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} SlideMasterUrlId - you can get MasterUrlId param form api/CyberSiara/GetCyberSiara endpoint\n   */\n  SlideMasterUrlId: string;\n\n  /**\n   * @type {string} userAgent - browser userAgent,you need submit your userAgent\n   */\n  userAgent: string;\n\n  /**\n   * @type {string=} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} websiteURL - the current website home page url\n   */\n  websiteURL: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiCyberSiAraTaskBaseParams } from \"./Base/_AntiCyberSiAraBase\";\n\nimport { AntiCyberSiAraTaskBase } from \"./Base/_AntiCyberSiAraBase\";\n\ntype AntiCyberSiAraTaskParams = ProxyRequiredTaskParams<AntiCyberSiAraTaskBaseParams>;\n\n/**\n * @classdesc AntiCyberSiAraTask this task type require your own proxies.\n * @class\n * @deprecated deleted from service support\n * @extends {AntiCyberSiAraTaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/CyberSiara.html}\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 this task type require your own proxies.\n   * @see {@link https://docs.capsolver.com/guide/captcha/CyberSiara.html}\n   * @param {Object} params - AntiCyberSiAraTaskParams\n   * @param {string} [params.SlideMasterUrlId] - you can get MasterUrlId param form api/CyberSiara/GetCyberSiara endpoint\n   * @param {string} [params.userAgent] - browser userAgent,you need submit your userAgent\n   * @param {string} [params.websiteURL] - the current website home page url\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: AntiCyberSiAraTaskParams) {\n    super(params, \"AntiCyberSiAraTask\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiCyberSiAraTaskBaseParams } from \"./Base/_AntiCyberSiAraBase\";\n\nimport { AntiCyberSiAraTaskBase } from \"./Base/_AntiCyberSiAraBase\";\n\ntype AntiCyberSiAraTaskProxyLessParams = ProxylessTaskParams<AntiCyberSiAraTaskBaseParams>;\n\n/**\n * @classdesc AntiCyberSiAraTaskProxyLess this task type don't require your own proxies.\n * @class\n * @deprecated deleted from service support\n * @extends {AntiCyberSiAraTaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/CyberSiara.html}\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://docs.capsolver.com/guide/captcha/CyberSiara.html}\n   * @param {object} params - AntiCyberSiAraTaskProxyLessParams\n   * @param {string} [params.SlideMasterUrlId] - you can get MasterUrlId param form api/CyberSiara/GetCyberSiara endpoint\n   * @param {string} [params.userAgent] - browser userAgent,you need submit your userAgent\n   * @param {string} [params.websiteURL] - the current website home page url\n   */\n  constructor (params: AntiCyberSiAraTaskProxyLessParams) {\n    super(params, \"AntiCyberSiAraTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type AntiImpervaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"reese84\"?: boolean;\n  \"reeseScriptUrl\"?: string;\n  \"reeseToken\"?: string;\n  \"userAgent\": string;\n  \"utmvc\"?: boolean;\n  \"websiteUrl\": string;\n};\n\n/**\n * @classdesc Base class for AntiImperva task\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/antibots/imperva.html}\n */\nexport abstract class AntiImpervaTaskBase extends BaseTask implements AntiImpervaTaskBaseParams {\n\n  /**\n   * Create AntiImpervaTaskBase\n   * @see {@link https://docs.capsolver.com/guide/antibots/imperva.html}\n   * @param {object} params -\tAntiImpervaTaskBaseParams\n   * @param {string} [params.websiteUrl] -\tThe website url\n   * @param {string} [params.userAgent] - browser userAgent\n   * @param {boolean} [params.utmvc] - if type is AntiImpervaTask,you need submit it. Default: false\n   * @param {boolean} [params.reese84=false] - if cookie contains incap_see_xxx,nlbi_xxx,visid_inap_xxx,mean is true. Default = false\n   * @param {string} [params.reeseScriptUrl] - The URL typically has several dashes (-) and random words\n   * @param {string} [params.reeseToken] - If your reeseToken has expired, you can send current reeseToken to obtain a new\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ websiteUrl, userAgent, utmvc = false, reese84 = false, reeseScriptUrl, reeseToken, proxy, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: AntiImpervaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteUrl = websiteUrl;\n\n    this.userAgent = userAgent;\n\n    this.utmvc = utmvc;\n\n    this.reese84 = reese84;\n\n    this.reeseScriptUrl = reeseScriptUrl;\n\n    this.reeseToken = reeseToken;\n\n    this.proxy = proxy;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} websiteUrl -\tThe website url\n   */\n  websiteUrl: string;\n\n  /**\n   * @type {string} userAgent - browser userAgent\n   */\n  userAgent: string;\n\n  /**\n   * proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {boolean=} utmvc - if type is AntiImpervaTask,you need submit it\n   */\n  utmvc?: boolean;\n\n  /**\n   * @type {boolean=} [reese84=false] - if cookie contains incap_see_xxx,nlbi_xxx,visid_inap_xxx,mean is true\n   */\n  reese84?: boolean;\n\n  /**\n   * @type {string=} reeseScriptUrl - The URL typically has several dashes (-) and random words\n   */\n  reeseScriptUrl?: string;\n\n  /**\n   * @type {string=} reeseToken - If your reeseToken has expired, you can send current reeseToken to obtain a new reeseToken.\n   */\n  reeseToken?: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiImpervaTaskBaseParams } from \"./Base/_AntiImpervaBase\";\n\nimport { AntiImpervaTaskBase } from \"./Base/_AntiImpervaBase\";\n\ntype AntiImpervaTaskParams = ProxyRequiredTaskParams<AntiImpervaTaskBaseParams>;\n\n/**\n * @classdesc AntiImpervaTask this task type require your own proxies.\n * @class\n * @deprecated deleted from service support\n * @extends {AntiImpervaTaskBase}\n * @see {@link https://docs.capsolver.com/guide/antibots/imperva.html}\n */\nexport class AntiImpervaTask extends AntiImpervaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiImpervaTask - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiImpervaTask: _IsTaskType[\"_isAntiImpervaTask\"] = true;\n\n  /**\n   * Create AntiImpervaTask\n   * @see {@link https://docs.capsolver.com/guide/antibots/imperva.html}\n   * @param {object} params -\tAntiImpervaTaskParams\n   * @param {string} [params.websiteUrl] -\tThe website url\n   * @param {string} [params.userAgent] - browser userAgent\n   * @param {boolean} [params.utmvc] - if type is AntiImpervaTask,you need submit it. Default = false\n   * @param {boolean} [params.reese84=false] - if cookie contains incap_see_xxx,nlbi_xxx,visid_inap_xxx,mean is true. Default = false\n   * @param {string} [params.reeseScriptUrl] - The URL typically has several dashes (-) and random words\n   * @param {string} [params.reeseToken] - If your reeseToken has expired, you can send current reeseToken to obtain a new\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: AntiImpervaTaskParams) {\n    super(params, \"AntiImpervaTask\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { AntiImpervaTaskBaseParams } from \"./Base/_AntiImpervaBase\";\n\nimport { AntiImpervaTaskBase } from \"./Base/_AntiImpervaBase\";\n\ntype AntiImpervaTaskProxyLessParams = ProxylessTaskParams<AntiImpervaTaskBaseParams>;\n\n/**\n * @classdesc AntiImpervaTaskProxyLess this task type require your own proxies.\n * @class\n *  * @deprecated deleted from service support\n * @extends {AntiImpervaTaskBase}\n * @see {@link https://docs.capsolver.com/guide/antibots/imperva.html}\n */\nexport class AntiImpervaTaskProxyLess extends AntiImpervaTaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isAntiImpervaTaskProxyLess - Only used for correct method overloading intellisense\n  */\n  readonly _isAntiImpervaTaskProxyLess: _IsTaskType[\"_isAntiImpervaTaskProxyLess\"] = true;\n\n  /**\n   * Create AntiImpervaTaskProxyLess\n   * @see {@link https://docs.capsolver.com/guide/antibots/imperva.html}\n   * @param {object} params -\tAntiImpervaTaskProxyLessParams\n   * @param {string} [params.websiteUrl] -\tThe website url\n   * @param {string} [params.userAgent] - browser userAgent\n   * @param {string} [params.utmvc] - if type is AntiImpervaTask,you need submit it\n   * @param {boolean} [params.reese84=false] - if cookie contains incap_see_xxx,nlbi_xxx,visid_inap_xxx,mean is true\n   * @param {string} [params.reeseScriptUrl] - The URL typically has several dashes (-) and random words\n   * @param {string} [params.reeseToken] - If your reeseToken has expired, you can send current reeseToken to obtain a new\n   */\n  constructor (params: AntiImpervaTaskProxyLessParams) {\n    super(params, \"AntiImpervaTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../_BaseTaskRequest\";\n\ntype _DataDomeSliderTaskParams = Partial<ProxyCredentials> & {\n  \"captchaUrl\": string;\n  \"proxy\"?: string;\n  \"userAgent\": string;\n};\n\ntype DataDomeSliderTaskParams = ProxyRequiredTaskParams<_DataDomeSliderTaskParams>;\n\n/**\n * @classdesc DataDome: solving DataDome captcha\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/en/guide/captcha/datadome}\n */\nexport class DataDomeSliderTask extends BaseTask implements _IsTaskType, _DataDomeSliderTaskParams {\n\n  /**\n  * @type {boolean} _isDataDomeSliderTask - Only used for correct method overloading intellisense\n  */\n  readonly _isDataDomeSliderTask: _IsTaskType[\"_isDataDomeSliderTask\"] = true;\n\n  /**\n   * Create DataDome: solving DataDome captcha\n   * @see {@link https://docs.capsolver.com/en/guide/captcha/datadome}\n   * @param {object} params -\tDataDomeSliderTaskParams\n   * @param {string} [params.captchaUrl] - If the url contains t=bv that means that your ip must be banned, t should be t=fe\n   * @param {string} [params.userAgent] - You need to keep your userAgent consistent with the one used to request the captchaUrl. Currently, we only support two fixed userAgents.\n   * @param {string} [params.proxy] - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ captchaUrl, userAgent, proxy, proxyType, proxyAddress, proxyLogin, proxyPassword, proxyPort }: DataDomeSliderTaskParams) {\n    super({ \"type\": \"DataDomeSliderTask\" });\n\n    this.captchaUrl = captchaUrl;\n\n    this.userAgent = userAgent;\n\n    this.proxy = proxy;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} captchaUrl - If the url contains t=bv that means that your ip must be banned, t should be t=fe\n   */\n  captchaUrl: string;\n\n  /**\n   * @type {string} userAgent - You need to keep your userAgent consistent with the one used to request the captchaUrl. Currently, we only support two fixed userAgents.\n   */\n  userAgent: string;\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type FunCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"data\"?: string;\n  \"userAgent\"?: string;\n  \"websitePublicKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * @classdesc Base class for FunCaptchaTask\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/captcha/FunCaptcha.html}\n */\n\nexport abstract class FunCaptchaTaskBase extends BaseTask implements FunCaptchaTaskBaseParams {\n\n  /**\n   * Create FunCaptchaTask\n   * @see {@link https://docs.capsolver.com/guide/captcha/FunCaptcha.html}\n   * @param {object} params -\tFunCaptchaTaskParams\n   * @param {string} [params.websiteURL] - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websitePublicKey] - The domain public key, rarely updated. (Ex: E8A75615-1CBA-5DFF-8031-D16BCF234E10)\n   * @param {string} [params.data] - Additional parameter that may be required by FunCaptcha implementation. Use this property to send \"blob\" value as a stringified array. See example how it may look like. {\"\\blob\":\"HERE_COMES_THE_blob_VALUE\"} Learn how to get FunCaptcha blob data\n   * @param {string} [params.userAgent] - the user-agent you use to generate blob data. you need to use the user-agent we support (windows chrome browser)\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ websiteURL, proxy, websitePublicKey, data, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: FunCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteURL = websiteURL;\n\n    this.proxy = proxy;\n\n    this.websitePublicKey = websitePublicKey;\n\n    this.data = data;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} websitePublicKey - The domain public key, rarely updated. (Ex: E8A75615-1CBA-5DFF-8031-D16BCF234E10)\n   */\n  websitePublicKey: string;\n\n  /**\n   * @type {string} data - Additional parameter that may be required by FunCaptcha implementation. Use this property to send \"blob\" value as a stringified array. See example how it may look like. {\"\\blob\":\"HERE_COMES_THE_blob_VALUE\"} Learn how to get FunCaptcha blob data\n   */\n  data?: string;\n\n  /**\n   * @type {string} userAgent - the user-agent you use to generate blob data. you need to use the user-agent we support (windows chrome browser)\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} websiteURL - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   */\n  websiteURL: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { FunCaptchaTaskBase, type FunCaptchaTaskBaseParams } from \"./Base/_FunCaptchaBase\";\n\nexport type FunCaptchaTaskProxyLessParams = ProxylessTaskParams<FunCaptchaTaskBaseParams>;\n\n/**\n * @classdesc FunCaptchaTaskProxyLess is using the server's built-in proxy.\n * @class\n *  * @deprecated deleted from service support\n * @extends {FunCaptchaTaskBase}\n * @implements {FunCaptchaTaskBaseParams}\n * @see {@link https://docs.capsolver.com/guide/captcha/FunCaptcha.html}\n */\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 FunCaptchaTask\n   * @see {@link https://docs.capsolver.com/guide/captcha/FunCaptcha.html}\n   * @param {object} params -\tFunCaptchaTaskProxyLessParams\n   * @param {string} [params.websiteURL] - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websitePublicKey] - The domain public key, rarely updated. (Ex: E8A75615-1CBA-5DFF-8031-D16BCF234E10)\n   * @param {string} [params.data] - Additional parameter that may be required by FunCaptcha implementation. Use this property to send \"blob\" value as a stringified array. See example how it may look like. {\"\\blob\":\"HERE_COMES_THE_blob_VALUE\"} Learn how to get FunCaptcha blob data\n   * @param {string} [params.userAgent] - the user-agent you use to generate blob data. you need to use the user-agent we support (windows chrome browser)\n   */\n  constructor (params: FunCaptchaTaskProxyLessParams) {\n    super(params, \"FunCaptchaTaskProxyLess\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { FunCaptchaTaskBase, type FunCaptchaTaskBaseParams } from \"./Base/_FunCaptchaBase\";\n\nexport type FunCaptchaTaskParams = ProxyRequiredTaskParams<FunCaptchaTaskBaseParams>;\n\n/**\n * @classdesc FunCaptchaTask is using the server's built-in proxy.\n * @class\n *  * @deprecated deleted from service support\n * @extends {FunCaptchaTaskBase}\n * @implements {FunCaptchaTaskBaseParams}\n * @see {@link https://docs.capsolver.com/guide/captcha/FunCaptcha.html}\n */\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://docs.capsolver.com/guide/captcha/FunCaptcha.html}\n   * @param {object} params -\tFunCaptchaTaskParams\n   * @param {string} [params.websiteURL] - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websitePublicKey] - The domain public key, rarely updated. (Ex: E8A75615-1CBA-5DFF-8031-D16BCF234E10)\n   * @param {string} [params.userAgent] - the user-agent you use to generate blob data. you need to use the user-agent we support (windows chrome browser)\n   * @param {string} [params.data] - Additional parameter that may be required by FunCaptcha implementation. Use this property to send \"blob\" value as a stringified array. See example how it may look like. {\"\\blob\":\"HERE_COMES_THE_blob_VALUE\"} Learn how to get FunCaptcha blob data\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: FunCaptchaTaskParams) {\n    super(params, \"FunCaptchaTask\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type GeeTestTaskBaseParams = Partial<ProxyCredentials> & {\n  \"captchaId\"?: string;\n  \"challenge\"?: string;\n  \"geetestApiServerSubdomain\"?: string;\n  \"gt\"?: string;\n  \"riskType\"?: string;\n  \"websiteURL\": string;\n};\n\n/**\n * @classdesc Base class for GeeTestTask\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n */\n\nexport abstract class GeeTestTaskBase extends BaseTask implements GeeTestTaskBaseParams {\n\n  /**\n   * Create GeeTestTask\n   * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {object} params -\tGeeTestTaskParams\n   * @param {string} [params.gt] - The domain gt field.\n   * @param {string} [params.websiteURL] - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.challenge] - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   * @param {string} [param.geetestApiServerSubdomain] - Special api subdomain\n   * @param {string} [params.captchaId] - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   * @param {string} [params.riskType] - only Geetest V4 is required\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ websiteURL, proxy, challenge, geetestApiServerSubdomain, gt, captchaId, riskType, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: GeeTestTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteURL = websiteURL;\n\n    this.proxy = proxy;\n\n    this.challenge = challenge;\n\n    this.geetestApiServerSubdomain = geetestApiServerSubdomain;\n\n    this.gt = gt;\n\n    this.captchaId = captchaId;\n\n    this.riskType = riskType;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} gt - The domain gt field.\n   */\n  gt?: string;\n\n  /**\n   * @type {string} challenge - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   */\n  challenge?: string;\n\n  /**\n   * @type {string} geetestApiServerSubdomain - Special api subdomain\n   */\n  geetestApiServerSubdomain?: string;\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} websiteURL - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} captchaId - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   */\n  captchaId?: string;\n\n  /**\n   * @type {string} riskType - only Geetest V4 is required\n   */\n  riskType?: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { GeeTestTaskBase, type GeeTestTaskBaseParams } from \"./Base/_GeeTestTaskBase\";\n\n type GeeTestTaskParams = ProxyRequiredTaskParams<GeeTestTaskBaseParams>;\n\n/**\n * @classdesc GeeTestTask this task type require your own proxies.\n * @class\n * @deprecated deleted from service support - use {@link GeeTestTaskProxyLess} instead\n * @extends {BaseTask}\n * @implements {GeeTestTaskBaseParams}\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n */\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 this task type require your own proxies.\n   * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {object} params -\tGeeTestTaskBaseParams\n   * @param {string} [params.gt] - The domain gt field.\n   * @param {string} [params.websiteURL] - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.challenge] - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   * @param {string} [param.geetestApiServerSubdomain] - A special subdomain of funcaptcha.com, from which the JS captcha widget should be loaded. Most FunCaptcha installations work from shared domains.\n   * @param {string} [params.data] - Additional parameter that may be required by FunCaptcha implementation. Use this property to send \"blob\" value as a stringified array. See example how it may look like. {\"\\blob\":\"HERE_COMES_THE_blob_VALUE\"} Learn how to get FunCaptcha blob data\n   * @param {string} [params.captchaId] - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: GeeTestTaskParams) {\n    super(params, \"GeeTestTask\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport { GeeTestTaskBase, type GeeTestTaskBaseParams } from \"./Base/_GeeTestTaskBase\";\n\ntype GeeTestTaskProxyLessParams = ProxylessTaskParams<GeeTestTaskBaseParams>;\n\n/**\n * @classdesc GeeTestTaskProxyLess this task type require your own proxies.\n * @class\n * @extends {BaseTask}\n * @implements {GeeTestTaskProxyLessBaseParams}\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n */\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 this task type require your own proxies.\n   * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {object} params -\tGeeTestTaskProxyLessBaseParams\n   * @param {string} [params.gt] - The domain gt field.\n   * @param {string} [params.websiteURL] - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.challenge] - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   * @param {string} [param.geetestApiServerSubdomain] - Special api subdomain\n   * @param {string} [params.data] - Additional parameter that may be required by FunCaptcha implementation. Use this property to send \"blob\" value as a stringified array. See example how it may look like. {\"\\blob\":\"HERE_COMES_THE_blob_VALUE\"} Learn how to get FunCaptcha blob data\n   * @param {string} [params.captchaId] - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   */\n  constructor (params: GeeTestTaskProxyLessParams) {\n    super(params, \"GeeTestTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type GeeTestV3TaskBaseParams = Partial<ProxyCredentials> & {\n  \"challenge\": string;\n  \"geetestApiServerSubdomain\"?: string;\n  \"gt\": string;\n  //@deprecated\n  \"userAgent\"?: string;\n  \"websiteURL\": string;\n};\n\n/**\n * @classdesc Base class for GeeTestTask\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n */\n\nexport abstract class GeeTestV3TaskBase extends BaseTask implements GeeTestV3TaskBaseParams {\n\n  /**\n   * GeeTestTask V3 this task type require your own proxies.\n   * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {object} params -\tGeeTestTaskBaseParams\n   * @param {string} [params.gt] - required. The domain gt field.\n   * @param {string} [params.challenge] - required. If you need to solve Geetest V3 you must use this parameter\n   * @param {string} [params.websiteURL] -required. Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [param.geetestApiServerSubdomain] - optional. Special api subdomain\n   * @param {string} [param.userAgent] - Browser userAgent\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ websiteURL, proxy, challenge, geetestApiServerSubdomain, gt, userAgent, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: GeeTestV3TaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteURL = websiteURL;\n\n    this.proxy = proxy;\n\n    this.challenge = challenge;\n\n    this.geetestApiServerSubdomain = geetestApiServerSubdomain;\n\n    this.gt = gt;\n\n    this.userAgent = userAgent;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} gt - The domain gt field.\n   */\n  gt: string;\n\n  /**\n   * @type {string} challenge - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   */\n  challenge: string;\n\n  /**\n   * @type {string} geetestApiServerSubdomain - Special api subdomain\n   */\n  geetestApiServerSubdomain?: string;\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} websiteURL - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} userAgent - Browser userAgent\n   */\n  userAgent?: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV3TaskBaseParams } from \"./Base/_GeeTestV3TaskBase\";\n\nimport { GeeTestV3TaskBase } from \"./Base/_GeeTestV3TaskBase\";\n\ntype GeeTestV3TaskParams = ProxyRequiredTaskParams<GeeTestV3TaskBaseParams>;\n\n/**\n * @classdesc GeeTestTask V3 this task type require your own proxies.\n * @class\n * @deprecated deleted from service support - use {@link GeeTestV3TaskProxyLess} instead\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n * @extends {GeeTestV3TaskBase}\n * @implements {GeeTestTaskBaseParams}\n */\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 GeeTestTask V3, this task type require your own proxies.\n   * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {object} params -\tGeeTestTaskBaseParams\n   * @param {string} [params.gt] - required. The domain gt field.\n   * @param {string} [params.challenge] - required. If you need to solve Geetest V3 you must use this parameter\n   * @param {string} [params.websiteURL] -required. Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [param.geetestApiServerSubdomain] - optional. Special api subdomain\n   * @param {string} [param.userAgent] - Browser userAgent\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: GeeTestV3TaskParams) {\n    super(params, \"GeeTestTask\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV3TaskBaseParams } from \"./Base/_GeeTestV3TaskBase\";\n\nimport { GeeTestV3TaskBase } from \"./Base/_GeeTestV3TaskBase\";\n\ntype GeeTestV3TaskProxyLessParams = ProxylessTaskParams<GeeTestV3TaskBaseParams>;\n\n/**\n * @classdesc GeeTestTask V3 this using the server's built-in proxy\n * @class\n * @extends {BaseTask}\n * @implements {GeeTestTaskBaseParams}\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n */\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   * @classdesc GeeTestTask V3 this using the server's built-in proxy\n  {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {\n   * @param {string} [params.gt] - required. The domain gt field.\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   * @param {string} [params.websiteURL] -required. Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)} params -\tGeeTestTaskBaseParams\n   * @param {string} [param.geetestApiServerSubdomain] - optional. \tSpecial api subdomain\n   */\n  constructor (params: GeeTestV3TaskProxyLessParams) {\n    super(params, \"GeeTestTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type GeeTestV4TaskBaseParams = Partial<ProxyCredentials> & {\n  \"captchaId\": string;\n  \"geetestApiServerSubdomain\"?: string;\n  //@deprecated\n  \"userAgent\"?: string;\n  \"riskType\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * @classdesc Base class for GeeTestTask\n * @class\n * @extends {BaseTask}\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n */\n\nexport abstract class GeeTestV4TaskBase extends BaseTask implements GeeTestV4TaskBaseParams {\n\n  /**\n   * GeeTestTask V4 this task type require your own proxies.\n   * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {object} params -\tGeeTestTaskBaseParams\n   * @param {string} [params.gt] - required. The domain gt field.\n   * @param {string} [params.captchaId] - required. If you need to solve Geetest V4 you must use this parameter.\n   * @param {string} [params.websiteURL] -required. Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [param.geetestApiServerSubdomain] - optional. Special api subdomain\n   * @param {string} [param.userAgent] - Browser userAgent\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ websiteURL, proxy, geetestApiServerSubdomain, userAgent, captchaId, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, riskType }: GeeTestV4TaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteURL = websiteURL;\n\n    this.proxy = proxy;\n\n    this.geetestApiServerSubdomain = geetestApiServerSubdomain;\n\n    this.riskType = riskType;\n\n    this.captchaId = captchaId;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} geetestApiServerSubdomain - Special api subdomain\n   */\n  geetestApiServerSubdomain?: string;\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} websiteURL - Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   */\n  websiteURL: string;\n\n  /**\n   * @type {string} captchaId - If you need to solve Geetest V4 you must use this parameter, don't need if you need to solve GeetestV3\n   */\n  captchaId: string;\n\n  /**\n   * @deprecated\n   * @type {string} userAgent - Browser userAgent\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} riskType - Browser riskType\n   */\n  riskType: string;\n  \n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV4TaskBaseParams } from \"./Base/_GeeTestV4TaskBase\";\n\nimport { GeeTestV4TaskBase } from \"./Base/_GeeTestV4TaskBase\";\n\ntype GeeTestV4TaskParams = ProxyRequiredTaskParams<GeeTestV4TaskBaseParams>;\n\n/**\n * @classdesc GeeTestTask V4 this task type require your own proxies.\n * @class\n * @deprecated deleted from service support - use {@link GeeTestV4TaskProxyLess} instead\n * @extends {GeeTestTaskBase}\n * @implements {GeeTestTaskBaseParams}\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n */\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   * @classdesc GeeTestTask V4 this task type require your own proxies.\n   * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {object} params -\tGeeTestTaskBaseParams\n   * @param {string} [params.captchaId] - required. captchaId\n   * @param {string} [params.websiteURL] -required. Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [param.geetestApiServerSubdomain] - optional. A special subdomain of funcaptcha.com, from which the JS captcha widget should be loaded. Most FunCaptcha installations work from shared domains.\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: GeeTestV4TaskParams) {\n    super(params, \"GeeTestTask\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { GeeTestV4TaskBaseParams } from \"./Base/_GeeTestV4TaskBase\";\n\nimport { GeeTestV4TaskBase } from \"./Base/_GeeTestV4TaskBase\";\n\ntype GeeTestV4TaskProxyLessParams = ProxylessTaskParams<GeeTestV4TaskBaseParams>;\n\n/**\n * @classdesc GeeTestTask V4 this using the server's built-in proxy.\n * @class\n * @extends {GeeTestTaskBase}\n * @implements {GeeTestTaskBaseParams}\n * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n */\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   * @classdesc GeeTestTask V4 this using the server's built-in proxy.\n   * @see {@link https://docs.capsolver.com/guide/captcha/Geetest.html}\n   * @param {object} params -\tGeeTestTaskBaseParams\n   * @param {string} [params.captchaId] - required. captchaId\n   * @param {string} [params.websiteURL] -required. Web address of the website using funcaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [param.geetestApiServerSubdomain] - optional. A special subdomain of funcaptcha.com, from which the JS captcha widget should be loaded. Most FunCaptcha installations work from shared domains.\n   */\n  constructor (params: GeeTestV4TaskProxyLessParams) {\n    super(params, \"GeeTestTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type HCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"enterprisePayload\"?: Record<string, string>;\n  \"getCaptcha\"?: unknown;\n  \"isInvisible\"?: boolean;\n  \"userAgent\"?: string;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * @classdesc Base class for HCaptcha task\n * @class\n * @see {@link https://docs.capsolver.com/guide/captcha/HCaptcha.html}\n * @extends {BaseTask}\n */\nexport abstract class HCaptchaTaskBase extends BaseTask implements HCaptchaTaskBaseParams {\n\n  /**\n   * Create HCaptchaTaskBase\n   * @see {@link https://docs.capsolver.com/guide/captcha/HCaptcha.html}\n   * @param {Object} params - HCaptchaTaskBaseParams\n   * @param {Object=} params.enterprisePayload - Enterprise Payload\n   * @param {string} params.websiteURL - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} params.websiteKey - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {boolean=} params.isInvisible - if recaptcha don't have pageAction, reload request body content flag have \"fi\"\n   * @param {string} [params.userAgent] - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\".\n   * @param {string=} params.proxy - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ isInvisible = false, websiteKey, websiteURL, proxy, enterprisePayload, userAgent, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, getCaptcha }: HCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.proxy = proxy;\n\n    this.isInvisible = isInvisible;\n\n    this.enterprisePayload = enterprisePayload;\n\n    this.userAgent = userAgent;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n\n    this.getCaptcha = getCaptcha;\n  }\n\n  /**\n   * @type {Object} enterprisePayload - Enterprise Payload\n   */\n  enterprisePayload?: Record<string, string>;\n\n  /**\n   * @type {boolean} isInvisible - if recaptcha don't have pageAction, reload request body content flag have \"fi\"\n   */\n  isInvisible?: boolean;\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} userAgent - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\"\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} websiteKey - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   */\n  websiteKey: string;\n\n  /**\n   * @type {string} websiteURL - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   */\n  websiteURL: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n\n  getCaptcha?: unknown;\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 * @classdesc HCaptchaTask this task type require your own proxies\n * @class\n * @deprecated deleted from service support\n * @see {@link https://docs.capsolver.com/guide/captcha/HCaptcha.html}\n * @extends {BaseTask}\n * @implements {HCaptchaTaskBaseParams}\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 this task type require your own proxies\n   * @see {@link https://docs.capsolver.com/guide/captcha/HCaptcha.html}\n   * @param {Object} params - HCaptchaTaskParams\n   * @param {Object=} params.enterprisePayload - Enterprise Payload\n   * @param {string=} params.proxy - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   * @param {string} params.websiteURL - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} params.websiteKey - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {boolean=} params.isInvisible - if recaptcha don't have pageAction, reload request body content flag have \"fi\"\n   * @param {string} [params.userAgent] - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\".\n   */\n  constructor (params: HCaptchaTaskParams) {\n    super(params, \"HCaptchaTask\");\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 * @classdesc HCaptchaTaskProxyLess this task type require your own proxies\n * @class\n * @deprecated deleted from service support\n * @see {@link https://docs.capsolver.com/guide/captcha/HCaptcha.html}\n * @extends {BaseTask}\n * @implements {HCaptchaTaskProxyLessParams}\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 this task type require your own proxies\n   * @see {@link https://docs.capsolver.com/guide/captcha/HCaptcha.html}\n   * @param {Object} params - HCaptchaTaskProxyLessParams\n   * @param {Object=} params.enterprisePayload - Enterprise Payload\n   * @param {string} params.websiteURL - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} params.websiteKey - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {boolean=} params.isInvisible - if recaptcha don't have pageAction, reload request body content flag have \"fi\"\n   * @param {string} [params.userAgent] - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\".\n   */\n  constructor (params: HCaptchaTaskProxyLessParams) {\n    super(params, \"HCaptchaTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type MtCaptchaTaskBaseParams = Partial<ProxyCredentials> & {\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * @classdesc Base class for MtCaptcha\n * @class\n * @extends {MtCaptchaTaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/MtCaptcha.html}\n */\nexport abstract class MtCaptchaTaskBase extends BaseTask implements MtCaptchaTaskBaseParams {\n\n  /**\n   * Create MtCaptchaTaskBase\n   * @see {@link https://docs.capsolver.com/guide/captcha/MtCaptcha.html}\n   * @param {object} params -\tMtCaptchaTaskBaseParams\n   * @param {string} [params.websiteURL] -\tThe website url\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: sk=MTPublic-xxx public key)\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ websiteKey, websiteURL, proxy, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword }: MtCaptchaTaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.proxy = proxy;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n  }\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @type {string} websiteKey - The domain public key, rarely updated. (Ex: sk=MTPublic-xxx public key)\n   */\n  websiteKey: string;\n\n  /**\n   * @type {string} websiteURL -  Web address of the website using hcaptcha, generally it's fixed value. (Ex: https://google.com)\n   */\n  websiteURL: string;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\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 * @classdesc MtCaptchaTask this task type require your own proxies\n * @class\n * @extends {MtCaptchaTaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/MtCaptcha.html}\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 MtCaptchaTaskBase\n   * @see {@link https://docs.capsolver.com/guide/captcha/MtCaptcha.html}\n   * @param {object} params -\tMtCaptchaTaskBaseParams\n   * @param {string} [params.websiteURL] -\tThe website url\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: sk=MTPublic-xxx public key)\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: MtCaptchaTaskParams) {\n    super(params, \"MtCaptchaTask\");\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 * @classdesc MtCaptchaTaskProxyLess is using the server's built-in proxy.\n * @class\n * @extends {MtCaptchaTaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/MtCaptcha.html}\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 MtCaptchaTaskBase\n   * @see {@link https://docs.capsolver.com/guide/captcha/MtCaptcha.html}\n   * @param {object} params -\tMtCaptchaTaskBaseParams\n   * @param {string} [params.websiteURL] -\tThe website url\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: sk=MTPublic-xxx public key)\n   */\n  constructor (params: MtCaptchaTaskProxyLessParams) {\n    super(params, \"MtCaptchaTaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type RecaptchaV2TaskBaseParams = Partial<ProxyCredentials> & {\n  \"apiDomain\"?: string;\n  // @deprecated\n  \"cookies\"?: Array<Record<string, string>>;\n  \"enterprisePayload\"?: Record<string, string>;\n  \"isInvisible\"?: boolean;\n  \"pageAction\"?: string;\n  \"isSession\"?: boolean;\n  // @deprecated\n  \"userAgent\"?: string;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n  \"recaptchaDataSValue\"?: string\n};\n\n/**\n * @classdesc Base class for Recaptcha V2 task\n * @class\n * @see {@link https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\n * @extends {BaseTask}\n */\nexport abstract class RecaptchaV2TaskBase extends BaseTask implements RecaptchaV2TaskBaseParams {\n\n  /**\n   * Create RecaptchaV2TaskBase\n   * @see {@link https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\n   * @param {object} params - RecaptchaV2TaskBaseParams\n   * @param {string} params.apiDomain - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {object=} params.enterprisePayload - For ReCaptchaV2 enterprise version, if there is an s parameter in the payload of the /anchor endpoint, please submit its value\n   * @param {string} params.websiteURL - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} params.websiteKey - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} params.pageAction - For ReCaptchaV2, if there is an sa parameter in the payload of the /anchor endpoint, please submit its value\n   * @param {boolean=} params.isInvisible - Pass true if there is no “I’m not a robot” checkbox but the challenge will still appear, usually required in v2 invisible mode.\n   * @param {boolean} [params.isSession] - Session mode, when enabled, will return a recaptcha-ca-t value, which is used as a cookie. It usually appears in v3. Note: Some websites require a recaptcha-ca-e value, which usually appears in v2. If this value is present, it will be automatically returned without any additional parameter settings.\n   * @param {string=} [params.recaptchaDataSValue] - For ReCaptchaV2 normal version, if there is an s parameter in the payload of the /anchor endpoint, please submit its value\n   * @param {string=} params.proxy - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {number} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ apiDomain, cookies, isInvisible = false, websiteKey, websiteURL, pageAction, enterprisePayload, userAgent, isSession, proxyAddress, proxyLogin, proxyPassword, proxyPort, proxyType, proxy, recaptchaDataSValue }: RecaptchaV2TaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.apiDomain = apiDomain;\n\n    this.cookies = cookies;\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.pageAction = pageAction;\n\n    this.isInvisible = isInvisible;\n\n    this.enterprisePayload = enterprisePayload;\n\n    this.userAgent = userAgent;\n\n    this.isSession = isSession;\n\n    this.proxy = proxy;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n\n    this.recaptchaDataSValue = recaptchaDataSValue;\n  }\n\n  /**\n   * @type {string} apiDomain - apiDomain - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   */\n  apiDomain?: string;\n\n  /**\n   * @deprecated @type {object} cookies - cookies\n   */\n  cookies?: Record<string, string>[];\n\n  /**\n   * @type {Object} enterprisePayload - For ReCaptchaV2 enterprise version, if there is an s parameter in the payload of the /anchor endpoint, please submit its value\n   */\n  enterprisePayload?: Record<string, string>;\n\n  /**\n   * @type {boolean} isInvisible - Pass true if there is no “I’m not a robot” checkbox but the challenge will still appear, usually required in v2 invisible mode.\n   */\n  isInvisible?: boolean;\n\n  /**\n   * @type {string} pageAction - For ReCaptchaV2, if there is an sa parameter in the payload of the /anchor endpoint, please submit its value\n   */\n  pageAction?: string;\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @deprecated\n   * @type {string} userAgent - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\"\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} websiteKey - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   */\n  websiteKey: string;\n\n  /**\n   * @type {string} websiteURL - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   */\n  websiteURL: string;\n\n  /**\n   * @type {boolean} isSession -Session mode, when enabled, will return a recaptcha-ca-t value, which is used as a cookie. It usually appears in v3.\n    Note: Some websites require a recaptcha-ca-e value, which usually appears in v2. If this value is present, it will be automatically returned without any additional parameter settings.\n   */\n  isSession?: boolean;\n\n  /**\n   * @type {string} recaptchaDataSValue - For ReCaptchaV2 normal version, if there is an s parameter in the payload of the /anchor endpoint, please submit its value\n   */\n  recaptchaDataSValue?: string;\n  \n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV2TaskBaseParams } from \"./Base/_RecaptchaV2TaskBase\";\n\nimport { RecaptchaV2TaskBase } from \"./Base/_RecaptchaV2TaskBase\";\n\ntype ReCaptchaV2EnterpriseTaskParams = ProxyRequiredTaskParams<RecaptchaV2TaskBaseParams>;\n\n/**\n * ReCaptchaV2EnterpriseTask this task type require your own proxies\n * @see {@link https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\n */\nexport class ReCaptchaV2EnterpriseTask extends RecaptchaV2TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isReCaptchaV2EnterpriseTask - Only used for correct method overloading intellisense\n  */\n  readonly _isReCaptchaV2EnterpriseTask: _IsTaskType[\"_isReCaptchaV2EnterpriseTask\"] = true;\n\n  /**\n   * Create ReCaptchaV2EnterpriseTask\n   * @see {@link https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\n   * @param {Object} params - ReCaptchaV2EnterpriseTaskParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - some site in anchor endpoint have sa param ,it's action value\n   * @param {boolean=} [params.isInvisible] - if recaptcha don't have pageAction, reload request body content flag have \"fi\"\n   * @param {string} [params.userAgent] - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\".\n   * @param {string} [params.proxy] - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: ReCaptchaV2EnterpriseTaskParams) {\n    super(params, \"ReCaptchaV2EnterpriseTask\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV2TaskBaseParams } from \"./Base/_RecaptchaV2TaskBase\";\n\nimport { RecaptchaV2TaskBase } from \"./Base/_RecaptchaV2TaskBase\";\n\ntype ReCaptchaV2EnterpriseTaskProxyLessParams = ProxylessTaskParams<RecaptchaV2TaskBaseParams>;\n\n/**\n * ReCaptchaV2EnterpriseTaskProxyLess is using the server's built-in proxy.\n * @see {@link https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\n */\nexport class ReCaptchaV2EnterpriseTaskProxyLess extends RecaptchaV2TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isReCaptchaV2EnterpriseTaskProxyLess - Only used for correct method overloading intellisense\n  */\n  readonly _isReCaptchaV2EnterpriseTaskProxyLess: _IsTaskType[\"_isReCaptchaV2EnterpriseTaskProxyLess\"] = true;\n\n  /**\n   * Create ReCaptchaV2EnterpriseTaskProxyLess\n   * @see {@link https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\n   * @param {Object} params - ReCaptchaV2EnterpriseTaskProxyLessParams\n   * @param {string} params.apiDomain - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} params.enterprisePayload - Enterprise Payload\n   * @param {Object=} params.cookies - cookies\n   * @param {string} params.websiteURL - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} params.websiteKey - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} params.pageAction - some site in anchor endpoint have sa param ,it's action value\n   * @param {boolean=} params.isInvisible - if recaptcha don't have pageAction, reload request body content flag have \"fi\"\n   * @param {string} [params.userAgent] - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\".\n   */\n  constructor (params: ReCaptchaV2EnterpriseTaskProxyLessParams) {\n    super(params, \"ReCaptchaV2EnterpriseTaskProxyLess\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV2TaskBaseParams } from \"./Base/_RecaptchaV2TaskBase\";\n\nimport { RecaptchaV2TaskBase } from \"./Base/_RecaptchaV2TaskBase\";\n\ntype RecaptchaV2TaskParams = ProxyRequiredTaskParams<RecaptchaV2TaskBaseParams>;\n\n/**\n * @classdesc ReCaptchaV2Task this task type require your own proxies.\n * @deprecated deleted from service support @see ReCaptchaV2TaskProxyLess instead\n * @class\n * @extends {RecaptchaV2TaskBase}\n * @see {@link https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\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://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\n   * @param {Object} params - RecaptchaV2TaskParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - some site in anchor endpoint have sa param ,it's action value\n   * @param {boolean=} [params.isInvisible] - if recaptcha don't have pageAction, reload request body content flag have \"fi\"\n   * @param {string} [params.userAgent] - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\".\n   * @param {string} [params.proxy] - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: RecaptchaV2TaskParams) {\n    super(params, \"ReCaptchaV2Task\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV2TaskBaseParams } from \"./Base/_RecaptchaV2TaskBase\";\n\nimport { RecaptchaV2TaskBase } from \"./Base/_RecaptchaV2TaskBase\";\n\ntype RecaptchaV2TaskProxylessParams = ProxylessTaskParams<RecaptchaV2TaskBaseParams>;\n\n/**\n * @classdesc ReCaptchaV2TaskProxyLess is using the server's built-in proxy.\n * @class\n * @extends {RecaptchaV2TaskBase}\n * @see {@link https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\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://docs.capsolver.com/en/guide/captcha/ReCaptchaV2}\n   * @param {Object} params - RecaptchaV2TaskProxylessParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - some site in anchor endpoint have sa param ,it's action value\n   * @param {boolean=} [params.isInvisible] - if recaptcha don't have pageAction, reload request body content flag have \"fi\"\n   * @param {string} [params.userAgent] - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\".\n   */\n  constructor (params: RecaptchaV2TaskProxylessParams) {\n    super(params, \"ReCaptchaV2TaskProxyLess\");\n  }\n}\n","import type { ProxyCredentials, TaskTypes } from \"../../_BaseTaskRequest\";\n\nimport { BaseTask } from \"../../_BaseTaskRequest\";\n\nexport type RecaptchaV3TaskBaseParams = Partial<ProxyCredentials> & {\n  \"anchor\"?: string;\n  \"apiDomain\"?: string;\n  // @deprecated\n  \"cookies\"?: Array<Record<string, string>>;\n  \"enterprisePayload\"?: Record<string, string>;\n  // @deprecated\n  \"minScore\"?: number;\n  \"pageAction\"?: string;\n  \"isSession\"?: boolean;\n  // @deprecated\n  \"reload\"?: string;\n  // @deprecated\n  \"userAgent\"?: string;\n  \"websiteKey\": string;\n  \"websiteURL\": string;\n};\n\n/**\n * @classdesc Base class for Recaptcha V3 task\n * @class\n * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n * @extends {BaseTask}\n */\nexport abstract class RecaptchaV3TaskBase extends BaseTask implements RecaptchaV3TaskBaseParams {\n\n  /**\n   * Create RecaptchaV3TaskBase\n   * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n   * @param {Object} params - RecaptchaV3TaskBaseParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies - deprecated\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - Widget action value. Website owner defines what user is doing on the page through this parameter. Default value: verify\n   * @param {boolean} [params.isSession] - Session mode, when enabled, will return a recaptcha-ca-t value, which is used as a cookie. It usually appears in v3. Note: Some websites require a recaptcha-ca-e value, which usually appears in v2. If this value is present, it will be automatically returned without any additional parameter settings.\n   * @param {number=} [params.minScore] - Value from 0.1 to 0.9. - deprecated\n   * @param {string} [params.proxy] -\tproxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor ({ apiDomain, cookies, websiteKey, websiteURL, pageAction, proxy, minScore, enterprisePayload, userAgent, proxyAddress, proxyPort, proxyType, proxyLogin, proxyPassword, anchor, reload }: RecaptchaV3TaskBaseParams, type: TaskTypes) {\n    super({ type });\n\n    this.apiDomain = apiDomain;\n\n    this.cookies = cookies;\n\n    this.websiteKey = websiteKey;\n\n    this.websiteURL = websiteURL;\n\n    this.pageAction = pageAction;\n\n    this.proxy = proxy;\n\n    this.minScore = minScore;\n\n    this.enterprisePayload = enterprisePayload;\n\n    this.userAgent = userAgent;\n\n    this.proxyAddress = proxyAddress;\n\n    this.proxyLogin = proxyLogin;\n\n    this.proxyPort = proxyPort;\n\n    this.proxyType = proxyType;\n\n    this.proxyPassword = proxyPassword;\n\n    this.reload = reload;\n\n    this.anchor = anchor;\n  }\n\n  /**\n   * @deprecated\n   */\n  \"anchor\"?: string | undefined;\n\n  /**\n   * @deprecated\n   */\n  \"reload\"?: string | undefined;\n\n  /**\n   * Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   */\n  apiDomain?: string;\n\n  /**\n   * @deprecated\n   * @type {object} cookies - cookies\n   */\n  cookies?: Record<string, string>[];\n\n  /**\n   * Enterprise Payload\n   */\n  enterprisePayload?: Record<string, string>;\n\n  /**\n  * @type {string} pageAction - For ReCaptchaV3: You can find the value of the action parameter by searching for grecaptcha.execute\n  */\n  pageAction?: string;\n\n  /**\n   * @type {string} proxy - proxy\n   */\n  proxy?: string;\n\n  /**\n   * @deprecated\n   * @type {string} userAgent - Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to \"update your browser\".\n   */\n  userAgent?: string;\n\n  /**\n   * @type {string} websiteKey - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   */\n  websiteKey: string;\n\n  /**\n   * @type {string} websiteKey - Web address of the website using hcaptcha, generally it's fixed value.\n   */\n  websiteURL: string;\n\n  /**\n   * @deprecated\n   * @type {number} minScore - description Value from 0.1 to 0.9.\n   */\n  minScore?: number;\n\n  /**\n   * @type {boolean} isSession - Session mode, when enabled, will return a recaptcha-ca-t value, which is used as a cookie. It usually appears in v3. Note: Some websites require a recaptcha-ca-e value, which usually appears in v2. If this value is present, it will be automatically returned without any additional parameter settings.\n   */\n  isSession?: boolean;\n\n  proxyAddress?: string;\n\n  proxyLogin?: string;\n\n  proxyPassword?: string;\n\n  proxyPort?: number;\n\n  proxyType?: ProxyCredentials[\"proxyType\"];\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV3TaskBaseParams } from \"./Base/_RecaptchaV3TaskBase\";\n\nimport { RecaptchaV3TaskBase } from \"./Base/_RecaptchaV3TaskBase\";\n\ntype ReCaptchaV3EnterpriseTaskParams = ProxyRequiredTaskParams<RecaptchaV3TaskBaseParams>;\n\n/**\n * ReCaptchaV3EnterpriseTask this task type require your own proxies.\n * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n */\nexport class ReCaptchaV3EnterpriseTask extends RecaptchaV3TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isReCaptchaV3EnterpriseTask - Only used for correct method overloading intellisense\n  */\n  readonly _isReCaptchaV3EnterpriseTask: _IsTaskType[\"_isReCaptchaV3EnterpriseTask\"] = true;\n\n  /**\n   * Create ReCaptchaV3EnterpriseTask\n   * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n   * @param {Object} params - ReCaptchaV3EnterpriseTaskParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - Widget action value. Website owner defines what user is doing on the page through this parameter. Default value: verify\n   * @param {number} [params.minScore] - Value from 0.1 to 0.9.\n   * @param {string} [params.proxy] - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: ReCaptchaV3EnterpriseTaskParams) {\n    super(params, \"ReCaptchaV3EnterpriseTask\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV3TaskBaseParams } from \"./Base/_RecaptchaV3TaskBase\";\n\nimport { RecaptchaV3TaskBase } from \"./Base/_RecaptchaV3TaskBase\";\n\ntype ReCaptchaV3EnterpriseTaskProxyLessParams = ProxylessTaskParams<RecaptchaV3TaskBaseParams>;\n\n/**\n * @classdesc ReCaptchaV3EnterpriseTaskProxyLess is using the server's built-in proxy.\n * @class\n * @extends {RecaptchaV3TaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n */\nexport class ReCaptchaV3EnterpriseTaskProxyLess extends RecaptchaV3TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isReCaptchaV3EnterpriseTaskProxyLess - Only used for correct method overloading intellisense\n  */\n  readonly _isReCaptchaV3EnterpriseTaskProxyLess: _IsTaskType[\"_isReCaptchaV3EnterpriseTaskProxyLess\"] = true;\n\n  /**\n   * Create ReCaptchaV3EnterpriseTaskProxyLess\n   * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n   * @param {Object} params - ReCaptchaV3EnterpriseTaskProxyLessParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - Widget action value. Website owner defines what user is doing on the page through this parameter. Default value: verify\n   * @param {number} [params.minScore] - Value from 0.1 to 0.9.\n   */\n  constructor (params: ReCaptchaV3EnterpriseTaskProxyLessParams) {\n    super(params, \"ReCaptchaV3EnterpriseTaskProxyLess\");\n  }\n}\n","import type { ProxylessTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV3TaskBaseParams } from \"./Base/_RecaptchaV3TaskBase\";\n\nimport { RecaptchaV3TaskBase } from \"./Base/_RecaptchaV3TaskBase\";\n\ntype ReCaptchaV3M1TaskProxyLessParams = ProxylessTaskParams<RecaptchaV3TaskBaseParams>;\n\n/**\n * @classdesc ReCaptchaV3M1TaskProxyLess built-in with high-quality proxies, the score can remain stable at 0.7 or above.\n * @class\n * @extends {RecaptchaV3TaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n * @deprecated removed from service support\n */\nexport class ReCaptchaV3M1TaskProxyLess extends RecaptchaV3TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isReCaptchaV3M1TaskProxyLess - Only used for correct method overloading intellisense\n  */\n  readonly _isReCaptchaV3M1TaskProxyLess: _IsTaskType[\"_isReCaptchaV3M1TaskProxyLess\"] = true;\n\n  /**\n   * Create ReCaptchaV3Task\n   * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n   * @param {Object} params - ReCaptchaV3TaskParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - Widget action value. Website owner defines what user is doing on the page through this parameter. Default value: verify\n   * @param {number} [params.minScore] - Value from 0.1 to 0.9.\n   */\n  constructor (params: ReCaptchaV3M1TaskProxyLessParams) {\n    super(params, \"ReCaptchaV3M1TaskProxyLess\");\n  }\n}\n","import type { ProxyRequiredTaskParams, _IsTaskType } from \"../_BaseTaskRequest\";\n\nimport type { RecaptchaV3TaskBaseParams } from \"./Base/_RecaptchaV3TaskBase\";\n\nimport { RecaptchaV3TaskBase } from \"./Base/_RecaptchaV3TaskBase\";\n\ntype ReCaptchaV3TaskParams = ProxyRequiredTaskParams<RecaptchaV3TaskBaseParams>;\n\n/**\n * @classdesc ReCaptchaV3Task this task type require your own proxies.\n * @class\n * @extends {RecaptchaV3TaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n */\nexport class ReCaptchaV3Task extends RecaptchaV3TaskBase implements _IsTaskType {\n\n  /**\n  * @type {boolean} _isReCaptchaV3Task - Only used for correct method overloading intellisense\n  */\n  readonly _isReCaptchaV3Task: _IsTaskType[\"_isReCaptchaV3Task\"] = true;\n\n  /**\n   * Create ReCaptchaV3Task\n   * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n   * @param {Object} params - ReCaptchaV3TaskParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - Widget action value. Website owner defines what user is doing on the page through this parameter. Default value: verify\n   * @param {number} [params.minScore] - Value from 0.1 to 0.9.\n   * @param {string} [params.proxy] - proxy\n   * @param {string} [params.proxyAddress] - proxyAddress\n   * @param {string} [params.proxyLogin] - proxyLogin\n   * @param {string} [params.proxyPassword] - proxyPassword\n   * @param {string} [params.proxyPort] - proxyPort\n   * @param {string} [params.proxyType] - proxyType\n   */\n  constructor (params: ReCaptchaV3TaskParams) {\n    super(params, \"ReCaptchaV3Task\");\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 * @classdesc ReCaptchaV3TaskProxyLess is using the server's built-in proxy.\n * @class\n * @extends {RecaptchaV3TaskBase}\n * @see {@link https://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\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://docs.capsolver.com/guide/captcha/ReCaptchaV3.html}\n   * @param {Object} params - ReCaptchaV3TaskProxyLessParams\n   * @param {string} [params.apiDomain] - Domain address from which to load reCAPTCHA Enterprise. For example: http://www.google.com/, http://www.recaptcha.net/. Don't use a parameter if you don't know why it's needed.\n   * @param {Object=} [params.enterprisePayload] - Enterprise Payload\n   * @param {Object=} [params.cookies] - cookies\n   * @param {string} [params.websiteURL] - Web address of the website using recaptcha, generally it's fixed value. (Ex: https://google.com)\n   * @param {string} [params.websiteKey] - The domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)\n   * @param {string=} [params.pageAction] - Widget action value. Website owner defines what user is doing on the page through this parameter. Default value: verify\n   * @param {number} [params.minScore] - Value from 0.1 to 0.9.\n   */\n  constructor (params: ReCaptchaV3TaskProxyLessParams) {\n    super(params, \"ReCaptchaV3TaskProxyLess\");\n  }\n}\n"]}