/// /** * Stop all video recordings * @param {import('./internal').TaskConfig} config * @param {VideoRecorder[]} recorders */ export function stopAllRecordings(config: import('./internal').TaskConfig, recorders: VideoRecorder[]): Promise; export class VideoRecorder { /** * @param {string} ffmpegPath * @param {import('puppeteer').Page} page */ constructor(ffmpegPath: string, page: import('puppeteer').Page); ffmpegPath: string; _process: import("child_process").ChildProcessWithoutNullStreams | null; _page: import("puppeteer").Page; /** @type {{ buffer: Buffer, timestamp: number } | null} */ _lastFrame: { buffer: Buffer; timestamp: number; } | null; _fps: number; /** @type {Buffer[]} */ _frameQueue: Buffer[]; _hrtime: number; _writePromise: Promise; _closePromise: Promise; _stopped: boolean; outputFile: string | null; /** * @param {{ width: number, height: number, outputFile: string }} options */ start(options: { width: number; height: number; outputFile: string; }): Promise; _session: import("puppeteer").CDPSession | undefined; /** * @param {{ sessionId: number, data: string, metadata: { offsetTop: number, pageScaleFactor: number, deviceWidth: number, deviceHeight: number, scrollOffsetX: number, scrollOffsetY: number, timestamp: number }}} frame */ _onFrame(frame: { sessionId: number; data: string; metadata: { offsetTop: number; pageScaleFactor: number; deviceWidth: number; deviceHeight: number; scrollOffsetX: number; scrollOffsetY: number; timestamp: number; }; }): Promise; /** * Write files to buffer and fill time gaps by repeating the * last frame. This is necessary to satisfy the fps count. * @param {Buffer} buffer * @param {number} timestamp */ _writeFrame(buffer: Buffer, timestamp: number): void; /** * Send queued frames over to ffmpeg */ _sendFrames(): Promise; stop(): Promise; }