/// import type { Page, PuppeteerNodeLaunchOptions } from 'puppeteer'; import { EventEmitter } from 'events'; import { ConcurrencyImplementationClassType } from './concurrency/ConcurrencyImplementation'; interface ClusterOptions { concurrency: number | ConcurrencyImplementationClassType; maxConcurrency: number; workerCreationDelay: number; puppeteerOptions: PuppeteerNodeLaunchOptions; perBrowserOptions: PuppeteerNodeLaunchOptions[] | undefined; monitor: boolean; timeout: number; retryLimit: number; retryDelay: number; skipDuplicateUrls: boolean; sameDomainDelay: number; puppeteer: any; } declare type Partial = { [P in keyof T]?: T[P]; }; declare type ClusterOptionsArgument = Partial; interface TaskFunctionArguments { page: Page; data: JobData; worker: { id: number; }; } export declare type TaskFunction = (arg: TaskFunctionArguments) => Promise; export default class Cluster extends EventEmitter { static CONCURRENCY_PAGE: number; static CONCURRENCY_CONTEXT: number; static CONCURRENCY_BROWSER: number; private options; private perBrowserOptions; private workers; private workersAvail; private workersBusy; private workersStarting; private allTargetCount; private processed; private jobQueue; private errorCount; private taskFunction; private idleResolvers; private waitForOneResolvers; private browser; private isClosed; private startTime; private nextWorkerId; private monitoringInterval; private display; private duplicateCheckUrls; private lastDomainAccesses; private systemMonitor; private checkForWorkInterval; static launch(options: ClusterOptionsArgument): Promise>; private constructor(); private init; private launchWorker; task(taskFunction: TaskFunction): Promise; private nextWorkCall; private workCallTimeout; private work; private doWork; private lastLaunchedWorkerTime; private allowedToStartWorker; private isTaskFunction; private queueJob; queue(data: JobData, taskFunction?: TaskFunction): Promise; queue(taskFunction: TaskFunction): Promise; execute(data: JobData, taskFunction?: TaskFunction): Promise; execute(taskFunction: TaskFunction): Promise; idle(): Promise; waitForOne(): Promise; close(): Promise; private monitor; } export {};