/** * Deterministic checks that ride along with capture. Every check returns * findings (empty = pass) and never throws for a finding; only infrastructure * failures throw. */ import type { Locator, Page } from "playwright"; import type { DeterministicFinding } from "../types.js"; export interface ConsoleCollector { drain(): DeterministicFinding[]; dispose(): void; } export declare function attachConsoleCollector(page: Page): ConsoleCollector; export declare function checkHorizontalOverflow(page: Page, element: Locator | null): Promise; export declare function blankShotGuard(png: Buffer | Uint8Array): Promise; /** * The page must still be on the target it was pointed at. An app that bounces * to a different origin (a login host, an SSO provider, a marketing site) will * otherwise be photographed and filed under the route that was requested, so * every finding on that shot describes the wrong application. * * Same-origin redirects are fine and stay silent: only a different origin is * reported, because that is the one the route label can no longer describe. */ export declare function checkOffOrigin(finalUrl: string, targetUrl: string): DeterministicFinding[]; /** Two samples 400ms apart differing means animation; hash caching is then unreliable. */ export declare function detectAnimated(page: Page, element: Locator | null): Promise;