declare const XVFB_SCREEN_SIZE = "1920x1080"; export { resolveRecordPlan, recordSurfaceApp, coerceRecordContextBrowser, safeContextId, browserCaptureTitle, browserDownloadDir, buildCaptureArgs, resolveCropGeometry, ffmpegPathEnv, parseCaptureFrameSize, parseMediaProbeStderr, probeVideoMetadata, parseBlackdetect, createMatchingLineCollector, detectAllBlack, deriveCropScale, detectDisplayPointSize, jobIsFfmpegRecording, computeEffectiveConcurrency, stepHasRouting, contextHasRouting, contextHasAnyFfmpegRecordStep, isFfmpegRecordingForScheduling, jobExclusiveResources, getFfmpegPath, detectMacScreenIndex, parseMacScreenIndex, checkSystemBinary, xvfbDisplay, startXvfb, XVFB_SCREEN_SIZE, detectX11ScreenSize, isRecordingActive, recordStepName, stopRecordTargetName, selectRecordingToStop, detectRecordingNameConflict, }; declare function isRecordingActive(driver: any): boolean; declare function recordStepName(record: any): string | undefined; declare function stopRecordTargetName(stopRecord: any): string | undefined; declare function selectRecordingToStop(recordings: any[], stopRecord: any, { includeSynthetic }?: { includeSynthetic?: boolean; }): any; declare function detectRecordingNameConflict(steps: any[]): string | null; declare function safeContextId(contextId: any): string; declare function browserCaptureTitle(contextId: string): string; declare function browserDownloadDir(contextId: string): string; type RecordPlan = { name: "browser" | "ffmpeg" | "device"; target: string; fps: number; }; declare function recordSurfaceApp(record: any): string | undefined; declare function resolveRecordPlan({ step, context, }: { step: any; context: any; }): RecordPlan; declare function coerceRecordContextBrowser({ context, availableApps, }: { context: any; availableApps: any[]; }): { name: string; headless: boolean; } | null; declare function buildCaptureArgs({ platform, fps, displayEnv, outputPath, screenIndex, screenSize, }: { platform: string; fps: number; displayEnv?: string; outputPath: string; screenIndex?: string; screenSize?: string; }): string[]; declare function resolveCropGeometry({ driver, target, }: { driver: any; target: string; }): Promise<{ x: number; y: number; w: number; h: number; } | null>; declare function ffmpegPathEnv(ffmpegPath: string, baseEnv?: NodeJS.ProcessEnv): Record; declare function parseCaptureFrameSize(stderr: string): { w: number; h: number; } | null; type RecordingProbeMetadata = { duration?: number; width?: number; height?: number; fps?: number; }; declare function parseMediaProbeStderr(stderr: string): RecordingProbeMetadata; declare function probeVideoMetadata({ cacheDir, filePath, }: { cacheDir?: string; filePath: string; }): Promise; declare function createMatchingLineCollector(needle: string, limit?: number): { push(text: string): void; flush(): string; }; declare function parseBlackdetect(stderr: string, duration?: number, fps?: number): boolean; declare function detectAllBlack({ cacheDir, filePath, duration, fps, }: { cacheDir?: string; filePath: string; duration?: number; fps?: number; }): Promise; declare function deriveCropScale({ platform, frameSize, displayPointSize, }: { platform: string; frameSize: { w: number; h: number; } | null | undefined; displayPointSize: { w: number; h: number; } | null | undefined; }): number; declare function detectDisplayPointSize(): Promise<{ w: number; h: number; } | null>; declare function jobIsFfmpegRecording(job: any): boolean; declare function computeEffectiveConcurrency({ requestedLimit, jobs, platform, xvfbAvailable, allowOverlappingCaptures, }: { requestedLimit: number; jobs: any[]; platform: string; xvfbAvailable: boolean; allowOverlappingCaptures?: boolean; }): { limit: number; xvfbContexts: any[]; forcedSerial: boolean; overlappingCaptures?: boolean; }; declare function stepHasRouting(step: any): boolean; declare function contextHasRouting(context: any): boolean; declare function contextHasAnyFfmpegRecordStep(context: any): boolean; declare function isFfmpegRecordingForScheduling(job: any): boolean; declare function jobExclusiveResources(job: any, { allowOverlappingCaptures, }: { platform?: string; xvfbAvailable?: boolean; allowOverlappingCaptures?: boolean; }): string[]; declare function getFfmpegPath({ cacheDir, autoInstall, }?: { cacheDir?: string; autoInstall?: boolean; }): Promise; declare function parseMacScreenIndex(listing: string): string | null; declare function detectMacScreenIndex(ffmpegPath: string): Promise; declare function detectX11ScreenSize(display?: string): Promise; declare function checkSystemBinary(name: string): Promise; declare function xvfbDisplay(index: number): string; declare function startXvfb(display: string, opts?: { width?: number; height?: number; }): Promise; //# sourceMappingURL=ffmpegRecorder.d.ts.map