import type { BrowserDriver, DriverNeed } from "./driver.js"; export interface QaStep { action: "goto" | "click" | "fill" | "assert" | "screenshot" | "wait"; /** goto */ url?: string; /** click/fill/assert */ selector?: string; /** fill */ value?: string; /** assert: a JS expression evaluated in the page; must be truthy (or === expect). */ expr?: string; expect?: unknown; /** screenshot */ path?: string; /** wait */ ms?: number; } export interface QaPlan { name: string; /** prepended to a step's `url` when it's a path, not absolute. */ baseUrl?: string; steps: QaStep[]; } export interface StepResult { i: number; action: string; ok: boolean; detail?: string; } export interface ReplayResult { plan: string; driver: string; ok: boolean; ms: number; steps: StepResult[]; /** the step that failed, if any. */ failedAt?: number; } /** The capabilities a plan requires — only click+fill actions here, so "basic" * suffices (rustwright fits); screenshots/evaluate are in both engines. */ export declare function planNeed(_plan: QaPlan): DriverNeed; /** Replay a plan on a driver. Stops at the first failed step (like a real test), * returns a per-step trace + total wall-time. */ export declare function replayPlan(driver: BrowserDriver, plan: QaPlan): Promise; /** Replay a plan on the PROVEN-DEFAULT engine for QA replay: rustwright when it * fits + is installed (the ~65%-lighter footprint that matters for a fleet), * else Playwright (failover). Override with env SLOWCOOK_BROWSER. */ export declare function replayPlanAuto(plan: QaPlan, env?: NodeJS.ProcessEnv): Promise; //# sourceMappingURL=qa-replay.d.ts.map