import type { Page } from '@playwright/test'; /** * Parse the px width BOUNDARIES a single `@media` condition introduces — the widths * at which its match flips. A `min-width: V` opens a band at `V`; a `max-width: V` * keeps the band below active through `V`, so the next band opens at `V + 1`. Range * syntax (`width >= V`, `V <= width`, `width < V`, …) is normalised the same way. * `em`/`rem` are resolved against `rootFontPx`. Non-width conditions yield nothing. */ export declare function mediaTextWidthBoundaries(mediaText: string, rootFontPx?: number): number[]; /** * Turn breakpoint boundaries into one representative viewport width per band: the * base band below the first boundary uses `baseWidth` (clamped strictly inside it), * every other band its lower boundary. With no boundaries (no width `@media` rules) * the layout is band-invariant, so a single `noQueryWidth` covers it. Ascending, * de-duplicated. */ export declare function widthsFromBoundaries(boundaries: number[], opts?: { baseWidth?: number; noQueryWidth?: number; }): number[]; /** * Detect the viewport widths to sweep for the currently-loaded page: read every * `@media` width breakpoint from the live CSSOM and return one width per band. * Throws if any stylesheet is unreadable (cross-origin) — detection is authoritative * or it fails; it never guesses. Call after the page has loaded its styles. */ export declare function detectViewportWidths(page: Page, opts?: { baseWidth?: number; noQueryWidth?: number; }): Promise;