import type { Page } from 'playwright'; /** Declared module-locally: enabling `lib: DOM` would put `fetch`, `Response` and `Request` into every Node package sharing `tsconfig.base.json`. */ type DomRect = { height: number; left: number; top: number; width: number; }; export type ContrastHit = { background: string; container: string; containerSelector: string; contrast: number; selector: string; }; export type AssetHit = { label: string; selector: string; signature: string; }; export type LinkHit = { href: null | string; resolved: string; selector: string; text: string; }; export type TextHit = { pattern: string; selector: string; text: string; }; export type EntityHit = { affordance: boolean; id: string; selector: string; }; export type PresentHit = { present: boolean; selector: string; }; export type GeometryHit = { rect: DomRect | null; selector: string; }; export type ProseHit = { headingWords: number; media: number; selector: string; words: number; }; export type Job = { assetSelector: string; kind: 'assets'; scope: string; } | { affordance: string; attribute: string; kind: 'entities'; selector: string; } | { flags: string; kind: 'text'; patterns: string[]; scope: string; } | { kind: 'contrast'; ignore: string[]; minContrast: number; selector: string; } | { kind: 'geometry'; selectors: string[]; } | { kind: 'links'; selector: string; } | { kind: 'present'; selectors: string[]; } | { headingSelector: string; kind: 'prose'; mediaSelector: string; selector: string; } | { flags: string; kind: 'matches'; patterns: string[]; scope: string; }; export type JobResult = { assets: AssetHit[]; contrast: ContrastHit[]; entities: EntityHit[]; geometry: { rects: GeometryHit[]; viewportHeight: number; }; links: LinkHit[]; matches: TextHit[]; present: PresentHit[]; prose: ProseHit[]; text: TextHit[]; }; /** The one cast: the value comes back from another VM, so the discriminant is the contract, covered by the probe tests. */ export declare const collect: (page: Page, job: Extract) => Promise; export {};