/**
 * Build the `RenderPerfSummary` that lands on `job.perfSummary` and
 * the `perf-summary.json` debug artifact.
 */
import type { CapturePerfSummary } from "@hyperframes/engine";
import type { CaptureCalibrationSample, CaptureCostEstimate } from "./captureCost.js";
import type { CaptureAttemptSummary, HdrDiagnostics, RenderJob, RenderPerfSummary } from "../renderOrchestrator.js";
import { type HdrPerfCollector } from "./hdrPerf.js";
import type { RenderObservabilitySummary } from "./observability.js";
/**
 * Append each parallel worker's static-dedup perf into the render-level sink
 * (skipping workers that reported none). Shared by the disk + streaming parallel
 * paths so the collection contract lives in one place.
 */
export declare function pushWorkerDedupPerfs(results: ReadonlyArray<{
    perf?: CapturePerfSummary;
}>, sink: CapturePerfSummary[]): void;
export declare function buildRenderPerfSummary(input: {
    job: RenderJob;
    workerCount: number;
    enableChunkedEncode: boolean;
    chunkedEncodeSize: number;
    compositionDurationSeconds: number;
    totalFrames: number;
    outputWidth: number;
    outputHeight: number;
    videoCount: number;
    audioCount: number;
    totalElapsedMs: number;
    perfStages: Record<string, number>;
    videoExtractBreakdown: RenderPerfSummary["videoExtractBreakdown"];
    tmpPeakBytes: number;
    captureCalibration?: {
        estimate: CaptureCostEstimate;
        samples: CaptureCalibrationSample[];
    };
    captureAttempts: CaptureAttemptSummary[];
    hdrDiagnostics: HdrDiagnostics;
    hdrPerf?: HdrPerfCollector;
    observability?: RenderObservabilitySummary;
    peakRssBytes: number;
    peakHeapUsedBytes: number;
    /** Per-session/per-worker static-dedup perf; aggregated into `staticDedup`. */
    dedupPerfs: CapturePerfSummary[];
}): RenderPerfSummary;
//# sourceMappingURL=perfSummary.d.ts.map