export type VisualRegionSample = { present: boolean visible: boolean inViewport: boolean cssHidden?: boolean top: number bottom: number layoutTop?: number layoutBottom?: number width: number height: number opacity: number count: number node: number label: string text: string } export type VisualViewportSample = { top: number bottom: number scrollTop: number scrollHeight: number clientHeight: number distanceFromBottom: number } export type VisualObservation = { at: number regions: string extends RegionName ? Record : Partial> viewport?: VisualViewportSample } export type VisualMarker = { at: number; label: string } export type VisualStabilityTrace = { markers: VisualMarker[] samples: VisualObservation[] } export type CapturedFrame = { at: number; data: string } export type VisualProbeResult = VisualStabilityTrace & { frames: CapturedFrame[] }