import type { NetworkRequest } from "./types.js"; /** The one request-status predicate: the first captured request matching url AND status (AND * method, when given — so a same-prefix GET can't satisfy a POST check on a status collision). * Shared by the deterministic critic (`request-status`) and `conditionMet` (waitFor / step * `expect`) so a verdict can never depend on which matching request arrived first — an endpoint * that answered 401 and then 200 on retry satisfies `status: 200`. */ export declare function findRequestStatus(requests: readonly NetworkRequest[], urlIncludes: string, status: number, method?: string): NetworkRequest | undefined; /** Requests whose failure is noise, not a regression — excluded from `no-failed-requests`. Built-in * universal noise (favicon, robots) plus any URL-substring a product marks benign. */ export declare function isBenignRequest(url: string, benign?: readonly string[]): boolean; /** A failed request is recovered noise when the SAME endpoint — method + host/path — later * answered under 400: the app retried and succeeded. Method must match so a successful * `GET /order` can never mask a failed `POST /order`. A failure with no later matching * success is still a real failure. Pure over the captured order (deterministic, invariant #4). */ export declare function isRecoveredFailure(requests: readonly NetworkRequest[], index: number): boolean; /** Whether a request is a state-changing mutation (the kind that proves an action happened, vs a * navigation/read) — used to ground a scenario's success assertion on what did the work. */ export declare function isMutation(method: string): boolean;