import * as puppeteer from 'puppeteer'; import ConcurrencyImplementation, { ResourceData } from './ConcurrencyImplementation'; export default abstract class SingleBrowserImplementation extends ConcurrencyImplementation { protected browser: puppeteer.Browser | null; private repairing; private repairRequested; private openInstances; private waitingForRepairResolvers; constructor(options: puppeteer.LaunchOptions, puppeteer: any); private repair; init(): Promise; close(): Promise; protected abstract createResources(): Promise; protected abstract freeResources(resources: ResourceData): Promise; workerInstance(): Promise<{ jobInstance: () => Promise<{ resources: ResourceData; close: () => Promise; }>; close: () => Promise; repair: () => Promise; }>; }