import { Browser, Page, CDPSession } from "puppeteer"; import { Scraper } from "../Scraper"; import { IQuery } from "../query"; export interface IRunStrategyResult { exit: boolean; } export abstract class RunStrategy { protected scraper: Scraper; constructor(scraper: Scraper) { this.scraper = scraper; } abstract run( browser: Browser, page: Page, cdpSession: CDPSession, url: string, query: IQuery, location: string, ): Promise; } export interface ILoadResult { success: boolean; error?: string | Error; }