export interface U2EstimateComparison { status: string; inRange: boolean; actualSec: number; lower: number; upper: number; deltaSec: number; } export interface U2SymbolOutcome { symbol: string; pass: boolean; stepCount: number; durationMs?: number; totalTokensEst?: number; failures?: string[]; } export interface U2CharacterListAssetRefSpriteSummary { extractedAssetRefInstances: number; nonEmptyAssetRefInstances: number; spriteAssetRefInstances: number; spriteRatioInNonEmpty: number | null; uniqueSpriteAssets: number; } export interface U2RetrievalSummary { symbols: U2SymbolOutcome[]; tokenSummary?: { totalTokensEst: number; totalDurationMs: number; }; serializedTypeEdgeCount?: number; resourceSummaryEdgeCount?: number; characterListAssetRefSprite?: U2CharacterListAssetRefSpriteSummary; failures?: string[]; } export interface FinalVerdictInput { runId: string; buildTimings?: { buildMs?: number; pipelineProfileMs?: number; analyzeSec?: number; }; estimateComparison?: U2EstimateComparison; retrievalSummary?: U2RetrievalSummary; failures?: string[]; } export interface E2EReportWriteInput { preflight?: unknown; scopeCounts?: unknown; pipelineProfile?: unknown; analyzeSummary?: unknown; estimateComparison?: U2EstimateComparison; retrievalSteps?: unknown[]; retrievalSummary?: U2RetrievalSummary; finalVerdict: FinalVerdictInput; } export declare function buildEstimateComparisonMarkdown(estimate?: U2EstimateComparison): string; export declare function buildRetrievalSummaryMarkdown(summary?: U2RetrievalSummary): string; export declare function buildFinalVerdictMarkdown(input: FinalVerdictInput): string; export declare function writeU2E2EReports(reportDir: string, input: E2EReportWriteInput): Promise;