import type { Page as PuppeteerPage } from 'puppeteer-core'; import { Writable } from 'stream'; import { PuppeteerCaptureEvents } from './PuppeteerCaptureEvents'; import { PuppeteerCaptureStartOptions } from './PuppeteerCaptureStartOptions'; export interface PuppeteerCapture { page: PuppeteerPage | null; isCapturing: boolean; captureTimestamp: number; capturedFrames: number; dropCapturedFrames: boolean; recordedFrames: number; attach: (page: PuppeteerPage) => Promise; detach: () => Promise; start: (target: string | Writable, options?: PuppeteerCaptureStartOptions) => Promise; stop: () => Promise; waitForTimeout: (milliseconds: number) => Promise; on: (event: Event, listener: PuppeteerCaptureEvents[Event]) => this; }