import { type RoutePreviewArtifactBundleV2, type RoutePreviewArtifactV2Frame, type RoutePreviewArtifactV2Hash } from './routePreviewArtifactV2.js'; export type RoutePreviewArtifactV3Status = 'ready' | 'rendered-with-qa-failure' | 'capture-error'; export type RoutePreviewArtifactV3ScreenshotMediaType = 'image/png' | 'image/webp'; export interface RoutePreviewArtifactV3Viewport { readonly width: number; readonly height: number; } export interface RoutePreviewArtifactV3Diagnostic { readonly stage: string; readonly code: string; readonly selector?: string; readonly label?: string; readonly message?: string; readonly viewport: RoutePreviewArtifactV3Viewport; } export interface RoutePreviewArtifactV3ScreenshotReference { readonly hash: RoutePreviewArtifactV2Hash; readonly mediaType: RoutePreviewArtifactV3ScreenshotMediaType; readonly width: number; readonly height: number; } export interface RoutePreviewArtifactV3ScreenshotAsset { readonly mediaType: RoutePreviewArtifactV3ScreenshotMediaType; readonly width: number; readonly height: number; readonly data: string; readonly byteLength: number; } export interface RoutePreviewArtifactV3Frame { readonly status: RoutePreviewArtifactV3Status; readonly viewport: RoutePreviewArtifactV3Viewport; /** Revision that produced this frame, retained when bundles mix provenance. */ readonly sourceRevision?: string; /** What this frame was captured from, so freshness is decided per frame. */ readonly fingerprint?: string; readonly snapshot?: RoutePreviewArtifactV2Frame; readonly screenshot?: RoutePreviewArtifactV3ScreenshotReference; readonly diagnostics: readonly RoutePreviewArtifactV3Diagnostic[]; } export interface RoutePreviewArtifactBundleV3 { readonly version: 3; readonly namespace: string; readonly sourceRevision?: string; readonly assets: { readonly head: RoutePreviewArtifactBundleV2['assets']['head']; readonly stylesheets: RoutePreviewArtifactBundleV2['assets']['stylesheets']; readonly screenshots: Readonly>; }; readonly frames: Readonly>; } export interface RoutePreviewArtifactV3ValidationResult { readonly valid: boolean; readonly errors: string[]; readonly bytes: number; } export interface RoutePreviewArtifactV3ReconstructedScreenshot { readonly mediaType: RoutePreviewArtifactV3ScreenshotMediaType; readonly width: number; readonly height: number; readonly dataUrl: string; } export declare function validateRoutePreviewArtifactV3Browser(value: unknown): RoutePreviewArtifactV3ValidationResult; export declare function reconstructRoutePreviewArtifactSnapshotV3(value: unknown, frameId: string): string | null; export declare function reconstructRoutePreviewArtifactScreenshotV3(value: unknown, frameId: string): RoutePreviewArtifactV3ReconstructedScreenshot | null;