///
/**
* 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;
}