import type { VibeConfig } from '../types/config.js'; import type { CoverageGapSuggestion, TestResult, TestScenario, TestStep } from '../types/index.js'; import { type PageExploration } from './browser/index.js'; export interface ConvergeOptions { /** Maximum follow-up rounds after the initial full run (default 4 → 5 runs total) */ max_followup_rounds?: number; /** Stop when critical + important gaps are at or below this (default 2) */ max_high_severity_gaps?: number; /** Stop when pass rate reaches this (0–1) on the last executed batch (default 0.92) */ target_pass_rate?: number; /** Max gap-derived scenarios per follow-up round (default 12) */ scenarios_per_round?: number; } /** Heuristic: natural-language gap steps → executable TestStep (generic, not app-specific). */ export declare function gapStepsToTestSteps(steps: string[], route: string, _baseUrl: string): TestStep[]; export declare function scenarioFromGap(gap: CoverageGapSuggestion, baseUrl: string): TestScenario | null; /** * Full pipeline: initial run-equivalent (build model → execute all scenarios → explore), * then repeated follow-up rounds executing gap-derived + failed-retest scenarios until * thresholds are met or no progress. */ export declare function runConverge(config: VibeConfig, opts?: ConvergeOptions): Promise<{ rounds: number; final_gaps: CoverageGapSuggestion[]; last_pass_rate: number; total_results: TestResult[]; explorations: PageExploration[]; }>;