/** * Browser-side trace polling recovery helper. * * Used by: * - components/RunDetailsContent.tsx \u2014 when the user opens the *currently * selected* pending report (existing inline recovery, retained there). * - components/evals3/RunInspectorPage.tsx \u2014 to fan out recovery for every * pending result on the inspect view, so users no longer have to click * each pending row to unstick it. * * `tracePollingManager.startPolling` is idempotent (it skips if a poll is * already running for the report id), so calling this helper is safe even * when server-side recovery is also in flight. */ import type { EvaluationReport, Span, TestCase } from '../../types/index.js'; /** * Ensure trace polling is running for a pending report. The provided * callbacks let the caller refresh local UI state when the judge finishes * (or fails). All callbacks are optional \u2014 omit them for fire-and-forget * background recovery. */ export declare function ensureTracePollingForReport(report: EvaluationReport, testCase: TestCase | null, options?: { onUpdated?: (updated: EvaluationReport) => void; onError?: (err: Error) => void; /** Fired as soon as spans land, before the judge runs — lets the caller * update trace-visualization state (issue #320 consolidation). */ onSpans?: (spans: Span[]) => void; /** * Only start recovery when the report has been pending at least this * long. Eager-path reports are *transiently* pending while their agent * executes — fan-out callers (RunInspectorPage) should pass a grace * period so freshly-created reports aren't dragged into trace polling * that races their eager judge. 0 (default) = start immediately. */ minPendingAgeMs?: number; }): void; //# sourceMappingURL=browserRecovery.d.ts.map