/** * Capture Agent — Zod Validation Schemas * * Validates ExecutionProgram at compile output (server) and CLI input boundaries. */ import { z } from 'zod'; import type { ExecutionProgram, ExecutionOpcode } from './execution-types.js'; export declare const PostconditionSpecSchema: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; export declare const RecoveryPolicySchema: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; export declare const OutscaleConfigSchema: z.ZodObject<{ padding: z.ZodOptional; paddingTop: z.ZodOptional; paddingRight: z.ZodOptional; paddingBottom: z.ZodOptional; paddingLeft: z.ZodOptional; paddingPercent: z.ZodOptional; clampToViewport: z.ZodOptional; backgroundColor: z.ZodOptional; }, z.core.$strict>; export declare const ExecutionOpcodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ url: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"NAVIGATE">; }, z.core.$strict>, z.ZodObject<{ description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DISMISS_OVERLAYS">; }, z.core.$strict>, z.ZodObject<{ urlPattern: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"ASSERT_ROUTE">; }, z.core.$strict>, z.ZodObject<{ selectors: z.ZodArray; matchAll: z.ZodBoolean; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"ASSERT_SURFACE">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; button: z.ZodOptional>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CLICK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; text: z.ZodString; textByLocale: z.ZodOptional>; clearFirst: z.ZodBoolean; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"TYPE">; }, z.core.$strict>, z.ZodObject<{ key: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"PRESS_KEY">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; state: z.ZodEnum<{ visible: "visible"; attached: "attached"; }>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"WAIT_FOR">; }, z.core.$strict>, z.ZodObject<{ durationMs: z.ZodNumber; narrationText: z.ZodOptional; narrationTextByLocale: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SLEEP">; }, z.core.$strict>, z.ZodObject<{ locale: z.ZodString; method: z.ZodEnum<{ browser_context: "browser_context"; ui_interaction: "ui_interaction"; storage: "storage"; }>; selector: z.ZodOptional; storageHints: z.ZodOptional; key: z.ZodString; value: z.ZodString; }, z.core.$strict>>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_LOCALE">; }, z.core.$strict>, z.ZodObject<{ theme: z.ZodEnum<{ light: "light"; dark: "dark"; $variant: "$variant"; }>; method: z.ZodEnum<{ ui_interaction: "ui_interaction"; storage: "storage"; color_scheme: "color_scheme"; }>; selector: z.ZodOptional; storageHints: z.ZodOptional; key: z.ZodString; value: z.ZodString; }, z.core.$strict>>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_THEME">; }, z.core.$strict>, z.ZodObject<{ direction: z.ZodEnum<{ up: "up"; down: "down"; left: "left"; right: "right"; }>; amount: z.ZodOptional; targetSelector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SCROLL">; }, z.core.$strict>, z.ZodObject<{ captureId: z.ZodOptional; captureName: z.ZodOptional; elementSelector: z.ZodOptional; outscale: z.ZodOptional; paddingTop: z.ZodOptional; paddingRight: z.ZodOptional; paddingBottom: z.ZodOptional; paddingLeft: z.ZodOptional; paddingPercent: z.ZodOptional; clampToViewport: z.ZodOptional; backgroundColor: z.ZodOptional; }, z.core.$strict>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CAPTURE_SCREENSHOT">; }, z.core.$strict>, z.ZodObject<{ clipId: z.ZodOptional; clipName: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"BEGIN_CLIP">; }, z.core.$strict>, z.ZodObject<{ clipId: z.ZodOptional; clipName: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"END_CLIP">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"HOVER">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; optionLabel: z.ZodOptional; optionValue: z.ZodOptional; optionIndex: z.ZodOptional; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SELECT_OPTION">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; checked: z.ZodBoolean; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CHECK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DOUBLE_CLICK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; toSelector: z.ZodOptional; toTarget: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; toSelectorAlternates: z.ZodOptional>; offset: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DRAG">; }, z.core.$strict>, z.ZodObject<{ sourceSelector: z.ZodString; containerSelector: z.ZodString; count: z.ZodNumber; removeSource: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CLONE_ELEMENT">; }, z.core.$strict>, z.ZodObject<{ groupName: z.ZodString; containerSelector: z.ZodOptional; templateSelector: z.ZodOptional; count: z.ZodOptional; removeTemplate: z.ZodOptional; slotMappings: z.ZodOptional; }, z.core.$strict>>>; inputSelector: z.ZodOptional; triggerSelector: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"INJECT_MOCK_DATA">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"REMOVE_ELEMENT">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodString; attribute: z.ZodString; value: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_ATTRIBUTE">; }, z.core.$strict>], "kind">; export declare const MockDataSlotSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; hint: z.ZodOptional; }, z.core.$strict>; export declare const MockDataRowSchema: z.ZodRecord; export declare const MockDataGroupSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; slots: z.ZodArray; }, z.core.$strict>>; defaultValues: z.ZodArray>; replaceExisting: z.ZodOptional; }, z.core.$strict>; export declare const VariantSpecSchema: z.ZodObject<{ id: z.ZodString; viewport: z.ZodObject<{ width: z.ZodNumber; height: z.ZodNumber; }, z.core.$strict>; deviceScaleFactor: z.ZodOptional; locale: z.ZodOptional; theme: z.ZodOptional>; targetId: z.ZodOptional; targetLabel: z.ZodOptional; deviceFrame: z.ZodOptional; mockupOptions: z.ZodOptional>; outputScale: z.ZodOptional; showStatusBar: z.ZodOptional; showSafeAreaTop: z.ZodOptional; showSafeAreaBottom: z.ZodOptional; showSafeAreaLeft: z.ZodOptional; showSafeAreaRight: z.ZodOptional; showHomeIndicator: z.ZodOptional; safeAreaTopColor: z.ZodOptional; safeAreaBottomColor: z.ZodOptional; safeAreaLeftColor: z.ZodOptional; safeAreaRightColor: z.ZodOptional; statusBar: z.ZodOptional; date: z.ZodOptional; menuBarApp: z.ZodOptional; menuBarItems: z.ZodOptional>; signalStrength: z.ZodOptional; showNetworkType: z.ZodOptional; networkType: z.ZodOptional; wifiStrength: z.ZodOptional; batteryLevel: z.ZodOptional; batteryCharging: z.ZodOptional; showBatteryPercentage: z.ZodOptional; colorScheme: z.ZodOptional>; carrierName: z.ZodOptional; autoLocale: z.ZodOptional; }, z.core.$strict>>; browserBar: z.ZodOptional; pageTitle: z.ZodOptional; tabIconUrl: z.ZodOptional; }, z.core.$strict>>; windowBorder: z.ZodOptional>; colorScheme: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strict>; export declare const PreconditionSpecSchema: z.ZodObject<{ credentialsId: z.ZodOptional; credentials: z.ZodOptional; password: z.ZodOptional; loginUrl: z.ZodOptional; }, z.core.$strict>>; storageState: z.ZodOptional; }, z.core.$strict>>; origins: z.ZodArray>; }, z.core.$strict>>; }, z.core.$strict>>; sessionStorage: z.ZodOptional>>; cookies: z.ZodOptional; }, z.core.$strict>>>; scenario: z.ZodOptional; }, z.core.$strict>; export declare const ArtifactSpecSchema: z.ZodObject<{ mediaMode: z.ZodEnum<{ video: "video"; clip: "clip"; screenshot: "screenshot"; }>; format: z.ZodOptional>; screenshotFormat: z.ZodOptional>; captureResolution: z.ZodOptional>; captureFps: z.ZodOptional; deliveryResolution: z.ZodOptional>; }, z.core.$strict>>; cursorTheme: z.ZodOptional>; maxClipDurationSec: z.ZodOptional; applyMockup: z.ZodOptional; applyStatusBar: z.ZodOptional; }, z.core.$strict>; export declare const ExecutionProgramSchema: z.ZodObject<{ presetId: z.ZodString; programVersion: z.ZodNumber; programSchemaVersion: z.ZodOptional; engineVersion: z.ZodOptional; mediaMode: z.ZodEnum<{ video: "video"; clip: "clip"; screenshot: "screenshot"; }>; baseUrl: z.ZodString; maxParallelCaptures: z.ZodOptional; variants: z.ZodArray; deviceScaleFactor: z.ZodOptional; locale: z.ZodOptional; theme: z.ZodOptional>; targetId: z.ZodOptional; targetLabel: z.ZodOptional; deviceFrame: z.ZodOptional; mockupOptions: z.ZodOptional>; outputScale: z.ZodOptional; showStatusBar: z.ZodOptional; showSafeAreaTop: z.ZodOptional; showSafeAreaBottom: z.ZodOptional; showSafeAreaLeft: z.ZodOptional; showSafeAreaRight: z.ZodOptional; showHomeIndicator: z.ZodOptional; safeAreaTopColor: z.ZodOptional; safeAreaBottomColor: z.ZodOptional; safeAreaLeftColor: z.ZodOptional; safeAreaRightColor: z.ZodOptional; statusBar: z.ZodOptional; date: z.ZodOptional; menuBarApp: z.ZodOptional; menuBarItems: z.ZodOptional>; signalStrength: z.ZodOptional; showNetworkType: z.ZodOptional; networkType: z.ZodOptional; wifiStrength: z.ZodOptional; batteryLevel: z.ZodOptional; batteryCharging: z.ZodOptional; showBatteryPercentage: z.ZodOptional; colorScheme: z.ZodOptional>; carrierName: z.ZodOptional; autoLocale: z.ZodOptional; }, z.core.$strict>>; browserBar: z.ZodOptional; pageTitle: z.ZodOptional; tabIconUrl: z.ZodOptional; }, z.core.$strict>>; windowBorder: z.ZodOptional>; colorScheme: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strict>>; preconditions: z.ZodObject<{ credentialsId: z.ZodOptional; credentials: z.ZodOptional; password: z.ZodOptional; loginUrl: z.ZodOptional; }, z.core.$strict>>; storageState: z.ZodOptional; }, z.core.$strict>>; origins: z.ZodArray>; }, z.core.$strict>>; }, z.core.$strict>>; sessionStorage: z.ZodOptional>>; cookies: z.ZodOptional; }, z.core.$strict>>>; scenario: z.ZodOptional; }, z.core.$strict>; steps: z.ZodArray; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"NAVIGATE">; }, z.core.$strict>, z.ZodObject<{ description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DISMISS_OVERLAYS">; }, z.core.$strict>, z.ZodObject<{ urlPattern: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"ASSERT_ROUTE">; }, z.core.$strict>, z.ZodObject<{ selectors: z.ZodArray; matchAll: z.ZodBoolean; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"ASSERT_SURFACE">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; button: z.ZodOptional>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CLICK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; text: z.ZodString; textByLocale: z.ZodOptional>; clearFirst: z.ZodBoolean; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"TYPE">; }, z.core.$strict>, z.ZodObject<{ key: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"PRESS_KEY">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; state: z.ZodEnum<{ visible: "visible"; attached: "attached"; }>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"WAIT_FOR">; }, z.core.$strict>, z.ZodObject<{ durationMs: z.ZodNumber; narrationText: z.ZodOptional; narrationTextByLocale: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SLEEP">; }, z.core.$strict>, z.ZodObject<{ locale: z.ZodString; method: z.ZodEnum<{ browser_context: "browser_context"; ui_interaction: "ui_interaction"; storage: "storage"; }>; selector: z.ZodOptional; storageHints: z.ZodOptional; key: z.ZodString; value: z.ZodString; }, z.core.$strict>>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_LOCALE">; }, z.core.$strict>, z.ZodObject<{ theme: z.ZodEnum<{ light: "light"; dark: "dark"; $variant: "$variant"; }>; method: z.ZodEnum<{ ui_interaction: "ui_interaction"; storage: "storage"; color_scheme: "color_scheme"; }>; selector: z.ZodOptional; storageHints: z.ZodOptional; key: z.ZodString; value: z.ZodString; }, z.core.$strict>>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_THEME">; }, z.core.$strict>, z.ZodObject<{ direction: z.ZodEnum<{ up: "up"; down: "down"; left: "left"; right: "right"; }>; amount: z.ZodOptional; targetSelector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SCROLL">; }, z.core.$strict>, z.ZodObject<{ captureId: z.ZodOptional; captureName: z.ZodOptional; elementSelector: z.ZodOptional; outscale: z.ZodOptional; paddingTop: z.ZodOptional; paddingRight: z.ZodOptional; paddingBottom: z.ZodOptional; paddingLeft: z.ZodOptional; paddingPercent: z.ZodOptional; clampToViewport: z.ZodOptional; backgroundColor: z.ZodOptional; }, z.core.$strict>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CAPTURE_SCREENSHOT">; }, z.core.$strict>, z.ZodObject<{ clipId: z.ZodOptional; clipName: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"BEGIN_CLIP">; }, z.core.$strict>, z.ZodObject<{ clipId: z.ZodOptional; clipName: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"END_CLIP">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"HOVER">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; optionLabel: z.ZodOptional; optionValue: z.ZodOptional; optionIndex: z.ZodOptional; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SELECT_OPTION">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; checked: z.ZodBoolean; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CHECK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DOUBLE_CLICK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; toSelector: z.ZodOptional; toTarget: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; toSelectorAlternates: z.ZodOptional>; offset: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DRAG">; }, z.core.$strict>, z.ZodObject<{ sourceSelector: z.ZodString; containerSelector: z.ZodString; count: z.ZodNumber; removeSource: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CLONE_ELEMENT">; }, z.core.$strict>, z.ZodObject<{ groupName: z.ZodString; containerSelector: z.ZodOptional; templateSelector: z.ZodOptional; count: z.ZodOptional; removeTemplate: z.ZodOptional; slotMappings: z.ZodOptional; }, z.core.$strict>>>; inputSelector: z.ZodOptional; triggerSelector: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"INJECT_MOCK_DATA">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"REMOVE_ELEMENT">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodString; attribute: z.ZodString; value: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_ATTRIBUTE">; }, z.core.$strict>], "kind">>; artifactPlan: z.ZodObject<{ mediaMode: z.ZodEnum<{ video: "video"; clip: "clip"; screenshot: "screenshot"; }>; format: z.ZodOptional>; screenshotFormat: z.ZodOptional>; captureResolution: z.ZodOptional>; captureFps: z.ZodOptional; deliveryResolution: z.ZodOptional>; }, z.core.$strict>>; cursorTheme: z.ZodOptional>; maxClipDurationSec: z.ZodOptional; applyMockup: z.ZodOptional; applyStatusBar: z.ZodOptional; }, z.core.$strict>; outputScale: z.ZodOptional; compileFingerprint: z.ZodString; variantFingerprint: z.ZodOptional; compiledAt: z.ZodString; compiledWith: z.ZodOptional; mockDataGroups: z.ZodOptional; }, z.core.$strict>>; defaultValues: z.ZodArray>; replaceExisting: z.ZodOptional; }, z.core.$strict>>>; deviceConfigs: z.ZodOptional>>; publicUrl: z.ZodOptional; environmentHttpHeaders: z.ZodOptional>; blockAnalytics: z.ZodOptional; }, z.core.$strict>; export declare const HealerPatchSchema: z.ZodObject<{ opcodeIndex: z.ZodNumber; originalOpcode: z.ZodDiscriminatedUnion<[z.ZodObject<{ url: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"NAVIGATE">; }, z.core.$strict>, z.ZodObject<{ description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DISMISS_OVERLAYS">; }, z.core.$strict>, z.ZodObject<{ urlPattern: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"ASSERT_ROUTE">; }, z.core.$strict>, z.ZodObject<{ selectors: z.ZodArray; matchAll: z.ZodBoolean; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"ASSERT_SURFACE">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; button: z.ZodOptional>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CLICK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; text: z.ZodString; textByLocale: z.ZodOptional>; clearFirst: z.ZodBoolean; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"TYPE">; }, z.core.$strict>, z.ZodObject<{ key: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"PRESS_KEY">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; state: z.ZodEnum<{ visible: "visible"; attached: "attached"; }>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"WAIT_FOR">; }, z.core.$strict>, z.ZodObject<{ durationMs: z.ZodNumber; narrationText: z.ZodOptional; narrationTextByLocale: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SLEEP">; }, z.core.$strict>, z.ZodObject<{ locale: z.ZodString; method: z.ZodEnum<{ browser_context: "browser_context"; ui_interaction: "ui_interaction"; storage: "storage"; }>; selector: z.ZodOptional; storageHints: z.ZodOptional; key: z.ZodString; value: z.ZodString; }, z.core.$strict>>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_LOCALE">; }, z.core.$strict>, z.ZodObject<{ theme: z.ZodEnum<{ light: "light"; dark: "dark"; $variant: "$variant"; }>; method: z.ZodEnum<{ ui_interaction: "ui_interaction"; storage: "storage"; color_scheme: "color_scheme"; }>; selector: z.ZodOptional; storageHints: z.ZodOptional; key: z.ZodString; value: z.ZodString; }, z.core.$strict>>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_THEME">; }, z.core.$strict>, z.ZodObject<{ direction: z.ZodEnum<{ up: "up"; down: "down"; left: "left"; right: "right"; }>; amount: z.ZodOptional; targetSelector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SCROLL">; }, z.core.$strict>, z.ZodObject<{ captureId: z.ZodOptional; captureName: z.ZodOptional; elementSelector: z.ZodOptional; outscale: z.ZodOptional; paddingTop: z.ZodOptional; paddingRight: z.ZodOptional; paddingBottom: z.ZodOptional; paddingLeft: z.ZodOptional; paddingPercent: z.ZodOptional; clampToViewport: z.ZodOptional; backgroundColor: z.ZodOptional; }, z.core.$strict>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CAPTURE_SCREENSHOT">; }, z.core.$strict>, z.ZodObject<{ clipId: z.ZodOptional; clipName: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"BEGIN_CLIP">; }, z.core.$strict>, z.ZodObject<{ clipId: z.ZodOptional; clipName: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"END_CLIP">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"HOVER">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; optionLabel: z.ZodOptional; optionValue: z.ZodOptional; optionIndex: z.ZodOptional; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SELECT_OPTION">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; checked: z.ZodBoolean; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CHECK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DOUBLE_CLICK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; toSelector: z.ZodOptional; toTarget: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; toSelectorAlternates: z.ZodOptional>; offset: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DRAG">; }, z.core.$strict>, z.ZodObject<{ sourceSelector: z.ZodString; containerSelector: z.ZodString; count: z.ZodNumber; removeSource: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CLONE_ELEMENT">; }, z.core.$strict>, z.ZodObject<{ groupName: z.ZodString; containerSelector: z.ZodOptional; templateSelector: z.ZodOptional; count: z.ZodOptional; removeTemplate: z.ZodOptional; slotMappings: z.ZodOptional; }, z.core.$strict>>>; inputSelector: z.ZodOptional; triggerSelector: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"INJECT_MOCK_DATA">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"REMOVE_ELEMENT">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodString; attribute: z.ZodString; value: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_ATTRIBUTE">; }, z.core.$strict>], "kind">; replacementOpcodes: z.ZodArray; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"NAVIGATE">; }, z.core.$strict>, z.ZodObject<{ description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DISMISS_OVERLAYS">; }, z.core.$strict>, z.ZodObject<{ urlPattern: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"ASSERT_ROUTE">; }, z.core.$strict>, z.ZodObject<{ selectors: z.ZodArray; matchAll: z.ZodBoolean; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"ASSERT_SURFACE">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; button: z.ZodOptional>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CLICK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; text: z.ZodString; textByLocale: z.ZodOptional>; clearFirst: z.ZodBoolean; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"TYPE">; }, z.core.$strict>, z.ZodObject<{ key: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"PRESS_KEY">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; state: z.ZodEnum<{ visible: "visible"; attached: "attached"; }>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"WAIT_FOR">; }, z.core.$strict>, z.ZodObject<{ durationMs: z.ZodNumber; narrationText: z.ZodOptional; narrationTextByLocale: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SLEEP">; }, z.core.$strict>, z.ZodObject<{ locale: z.ZodString; method: z.ZodEnum<{ browser_context: "browser_context"; ui_interaction: "ui_interaction"; storage: "storage"; }>; selector: z.ZodOptional; storageHints: z.ZodOptional; key: z.ZodString; value: z.ZodString; }, z.core.$strict>>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_LOCALE">; }, z.core.$strict>, z.ZodObject<{ theme: z.ZodEnum<{ light: "light"; dark: "dark"; $variant: "$variant"; }>; method: z.ZodEnum<{ ui_interaction: "ui_interaction"; storage: "storage"; color_scheme: "color_scheme"; }>; selector: z.ZodOptional; storageHints: z.ZodOptional; key: z.ZodString; value: z.ZodString; }, z.core.$strict>>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_THEME">; }, z.core.$strict>, z.ZodObject<{ direction: z.ZodEnum<{ up: "up"; down: "down"; left: "left"; right: "right"; }>; amount: z.ZodOptional; targetSelector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SCROLL">; }, z.core.$strict>, z.ZodObject<{ captureId: z.ZodOptional; captureName: z.ZodOptional; elementSelector: z.ZodOptional; outscale: z.ZodOptional; paddingTop: z.ZodOptional; paddingRight: z.ZodOptional; paddingBottom: z.ZodOptional; paddingLeft: z.ZodOptional; paddingPercent: z.ZodOptional; clampToViewport: z.ZodOptional; backgroundColor: z.ZodOptional; }, z.core.$strict>>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CAPTURE_SCREENSHOT">; }, z.core.$strict>, z.ZodObject<{ clipId: z.ZodOptional; clipName: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"BEGIN_CLIP">; }, z.core.$strict>, z.ZodObject<{ clipId: z.ZodOptional; clipName: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"END_CLIP">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"HOVER">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; optionLabel: z.ZodOptional; optionValue: z.ZodOptional; optionIndex: z.ZodOptional; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SELECT_OPTION">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; checked: z.ZodBoolean; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CHECK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DOUBLE_CLICK">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodOptional; target: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; fingerprint: z.ZodOptional; selectorAlternates: z.ZodOptional>; toSelector: z.ZodOptional; toTarget: z.ZodOptional; textByLocale: z.ZodOptional>; role: z.ZodOptional; label: z.ZodOptional; labelByLocale: z.ZodOptional>; near: z.ZodOptional; nearByLocale: z.ZodOptional>; placeholder: z.ZodOptional; placeholderByLocale: z.ZodOptional>; exact: z.ZodOptional; }, z.core.$strict>>; toSelectorAlternates: z.ZodOptional>; offset: z.ZodOptional>; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"DRAG">; }, z.core.$strict>, z.ZodObject<{ sourceSelector: z.ZodString; containerSelector: z.ZodString; count: z.ZodNumber; removeSource: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"CLONE_ELEMENT">; }, z.core.$strict>, z.ZodObject<{ groupName: z.ZodString; containerSelector: z.ZodOptional; templateSelector: z.ZodOptional; count: z.ZodOptional; removeTemplate: z.ZodOptional; slotMappings: z.ZodOptional; }, z.core.$strict>>>; inputSelector: z.ZodOptional; triggerSelector: z.ZodOptional; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"INJECT_MOCK_DATA">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"REMOVE_ELEMENT">; }, z.core.$strict>, z.ZodObject<{ selector: z.ZodString; attribute: z.ZodString; value: z.ZodString; description: z.ZodString; postcondition: z.ZodObject<{ type: z.ZodEnum<{ route_matches: "route_matches"; element_visible: "element_visible"; element_absent: "element_absent"; text_contains: "text_contains"; overlay_dismissed: "overlay_dismissed"; screenshot_stable: "screenshot_stable"; any_change: "any_change"; always: "always"; }>; pattern: z.ZodOptional; selector: z.ZodOptional; text: z.ZodOptional; threshold: z.ZodOptional; waitMs: z.ZodOptional; }, z.core.$strict>; recovery: z.ZodObject<{ retries: z.ZodNumber; useSelectorMemory: z.ZodBoolean; useAltInteraction: z.ZodBoolean; allowReload: z.ZodBoolean; allowHealer: z.ZodBoolean; }, z.core.$strict>; timeoutMs: z.ZodNumber; maxFailures: z.ZodNumber; stepId: z.ZodOptional; kind: z.ZodLiteral<"SET_ATTRIBUTE">; }, z.core.$strict>], "kind">>; patchType: z.ZodOptional>; interactionMode: z.ZodOptional>; reason: z.ZodString; patchedAt: z.ZodString; }, z.core.$strict>; export declare function parseProgram(data: unknown): ExecutionProgram; export declare function parseOpcode(data: unknown): ExecutionOpcode; export declare function safeParseProgramResult(data: unknown): z.ZodSafeParseResult<{ presetId: string; programVersion: number; mediaMode: "video" | "clip" | "screenshot"; baseUrl: string; variants: { id: string; viewport: { width: number; height: number; }; deviceScaleFactor?: number | undefined; locale?: string | undefined; theme?: "light" | "dark" | undefined; targetId?: string | undefined; targetLabel?: string | undefined; deviceFrame?: string | undefined; mockupOptions?: { orientation?: "portrait" | "landscape" | undefined; outputScale?: number | undefined; showStatusBar?: boolean | undefined; showSafeAreaTop?: boolean | undefined; showSafeAreaBottom?: boolean | undefined; showSafeAreaLeft?: boolean | undefined; showSafeAreaRight?: boolean | undefined; showHomeIndicator?: boolean | undefined; safeAreaTopColor?: string | undefined; safeAreaBottomColor?: string | undefined; safeAreaLeftColor?: string | undefined; safeAreaRightColor?: string | undefined; statusBar?: { time?: string | undefined; date?: string | undefined; menuBarApp?: string | undefined; menuBarItems?: string[] | undefined; signalStrength?: number | undefined; showNetworkType?: boolean | undefined; networkType?: string | undefined; wifiStrength?: number | undefined; batteryLevel?: number | undefined; batteryCharging?: boolean | undefined; showBatteryPercentage?: boolean | undefined; colorScheme?: "light" | "dark" | undefined; carrierName?: string | undefined; autoLocale?: boolean | undefined; } | undefined; browserBar?: { url?: string | undefined; pageTitle?: string | undefined; tabIconUrl?: string | undefined; } | undefined; windowBorder?: { color: string; width: number; radius: number; } | undefined; colorScheme?: "light" | "dark" | undefined; } | undefined; }[]; preconditions: { credentialsId?: string | undefined; credentials?: { email?: string | undefined; password?: string | undefined; loginUrl?: string | undefined; } | undefined; storageState?: { cookies: { name: string; value: string; domain: string; path: string; expires: number; httpOnly: boolean; secure: boolean; sameSite: "Lax" | "None" | "Strict"; }[]; origins: { origin: string; localStorage: { name: string; value: string; }[]; }[]; } | undefined; sessionStorage?: Record> | undefined; cookies?: { name: string; value: string; domain: string; path?: string | undefined; }[] | undefined; scenario?: string | undefined; }; steps: ({ urlPattern: string; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "ASSERT_ROUTE"; stepId?: string | undefined; } | { selectors: string[]; matchAll: boolean; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "ASSERT_SURFACE"; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "CLICK"; selector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; button?: "right" | "middle" | undefined; fingerprint?: string | undefined; selectorAlternates?: string[] | undefined; stepId?: string | undefined; } | { text: string; clearFirst: boolean; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "TYPE"; selector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; textByLocale?: Record | undefined; fingerprint?: string | undefined; selectorAlternates?: string[] | undefined; stepId?: string | undefined; } | { state: "visible" | "attached"; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "WAIT_FOR"; selector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; stepId?: string | undefined; } | { durationMs: number; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "SLEEP"; narrationText?: string | undefined; narrationTextByLocale?: Record | undefined; stepId?: string | undefined; } | { locale: string; method: "browser_context" | "ui_interaction" | "storage"; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "SET_LOCALE"; selector?: string | undefined; storageHints?: { storage: "localStorage" | "sessionStorage" | "cookie"; key: string; value: string; }[] | undefined; stepId?: string | undefined; } | { theme: "light" | "dark" | "$variant"; method: "ui_interaction" | "storage" | "color_scheme"; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "SET_THEME"; selector?: string | undefined; storageHints?: { storage: "localStorage" | "sessionStorage" | "cookie"; key: string; value: string; }[] | undefined; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "HOVER"; selector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; fingerprint?: string | undefined; selectorAlternates?: string[] | undefined; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "SELECT_OPTION"; selector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; optionLabel?: string | undefined; optionValue?: string | undefined; optionIndex?: number | undefined; fingerprint?: string | undefined; selectorAlternates?: string[] | undefined; stepId?: string | undefined; } | { checked: boolean; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "CHECK"; selector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; fingerprint?: string | undefined; selectorAlternates?: string[] | undefined; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "DOUBLE_CLICK"; selector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; fingerprint?: string | undefined; selectorAlternates?: string[] | undefined; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "DRAG"; selector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; fingerprint?: string | undefined; selectorAlternates?: string[] | undefined; toSelector?: string | undefined; toTarget?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; toSelectorAlternates?: string[] | undefined; offset?: { dx: number; dy: number; } | undefined; stepId?: string | undefined; } | { groupName: string; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "INJECT_MOCK_DATA"; containerSelector?: string | undefined; templateSelector?: string | undefined; count?: number | undefined; removeTemplate?: boolean | undefined; slotMappings?: { slot: string; selector: string; attribute?: string | undefined; }[] | undefined; inputSelector?: string | undefined; triggerSelector?: string | undefined; stepId?: string | undefined; } | { url: string; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "NAVIGATE"; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "DISMISS_OVERLAYS"; stepId?: string | undefined; } | { key: string; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "PRESS_KEY"; stepId?: string | undefined; } | { direction: "up" | "down" | "left" | "right"; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "SCROLL"; amount?: number | undefined; targetSelector?: string | undefined; target?: { text?: string | undefined; textByLocale?: Record | undefined; role?: string | undefined; label?: string | undefined; labelByLocale?: Record | undefined; near?: string | undefined; nearByLocale?: Record | undefined; placeholder?: string | undefined; placeholderByLocale?: Record | undefined; exact?: boolean | undefined; } | undefined; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "CAPTURE_SCREENSHOT"; captureId?: string | undefined; captureName?: string | undefined; elementSelector?: string | undefined; outscale?: { padding?: number | undefined; paddingTop?: number | undefined; paddingRight?: number | undefined; paddingBottom?: number | undefined; paddingLeft?: number | undefined; paddingPercent?: number | undefined; clampToViewport?: boolean | undefined; backgroundColor?: string | undefined; } | undefined; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "BEGIN_CLIP"; clipId?: string | undefined; clipName?: string | undefined; stepId?: string | undefined; } | { description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "END_CLIP"; clipId?: string | undefined; clipName?: string | undefined; stepId?: string | undefined; } | { sourceSelector: string; containerSelector: string; count: number; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "CLONE_ELEMENT"; removeSource?: boolean | undefined; stepId?: string | undefined; } | { selector: string; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "REMOVE_ELEMENT"; stepId?: string | undefined; } | { selector: string; attribute: string; value: string; description: string; postcondition: { type: "route_matches" | "element_visible" | "element_absent" | "text_contains" | "overlay_dismissed" | "screenshot_stable" | "any_change" | "always"; pattern?: string | undefined; selector?: string | undefined; text?: string | undefined; threshold?: number | undefined; waitMs?: number | undefined; }; recovery: { retries: number; useSelectorMemory: boolean; useAltInteraction: boolean; allowReload: boolean; allowHealer: boolean; }; timeoutMs: number; maxFailures: number; kind: "SET_ATTRIBUTE"; stepId?: string | undefined; })[]; artifactPlan: { mediaMode: "video" | "clip" | "screenshot"; format?: { clipFormat?: "gif" | "mp4" | "both" | undefined; screenshotFormat?: "png" | "jpeg" | undefined; captureResolution?: { width: number; height: number; } | undefined; captureFps?: number | undefined; deliveryResolution?: { width: number; height: number; } | undefined; } | undefined; cursorTheme?: "minimal" | "macos" | "windows" | undefined; maxClipDurationSec?: number | undefined; applyMockup?: boolean | undefined; applyStatusBar?: boolean | undefined; }; compileFingerprint: string; compiledAt: string; programSchemaVersion?: number | undefined; engineVersion?: number | undefined; maxParallelCaptures?: number | undefined; outputScale?: number | undefined; variantFingerprint?: string | undefined; compiledWith?: string | undefined; mockDataGroups?: { name: string; description: string; slots: { name: string; description: string; hint?: string | undefined; }[]; defaultValues: Record[]; replaceExisting?: boolean | undefined; }[] | undefined; deviceConfigs?: Record> | undefined; publicUrl?: string | undefined; environmentHttpHeaders?: Record | undefined; blockAnalytics?: boolean | undefined; }>; export interface ClipNavigationViolation { /** Index of the offending NAVIGATE opcode in `program.steps`. */ stepIndex: number; message: string; } /** * Returns every NAVIGATE opcode located between a BEGIN_CLIP and its END_CLIP. * Pure and mode-agnostic — mirrors the runtime clip window exactly. */ export declare function findNavigateInClipViolations(program: Pick): ClipNavigationViolation[]; /** * Hard-rejection variant for authoring boundaries (preset create/update). * Throws with an actionable message if any NAVIGATE sits inside a clip. */ export declare function assertNoNavigateInClip(program: Pick): void;