/**
 * 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, 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;
}): void;
//# sourceMappingURL=browserRecovery.d.ts.map