import { type SpecValidationReport } from './adapters/validate-specs.js'; import type { NeutralScenario, GeneratedTest } from './schemas/gap-analysis.schema.js'; import type { AdapterType } from './schemas/config.schema.js'; import type { AnalyzeProgressSink } from './harness/progress-log.js'; import type { TelemetrySink } from './telemetry/telemetry.interface.js'; import type { RecipeId, RecipeConfig } from './schemas/recipe.schema.js'; export interface ScaffoldOptions { framework?: Extract; maxPagesToScan?: number; scenarios?: NeutralScenario[]; progressLog?: AnalyzeProgressSink; telemetry?: TelemetrySink; /** * Optional list of recipe ids to expand into additional scenarios. * Recipe scenarios are APPENDED to any scenarios derived from analysis or * supplied via `scenarios` — they never replace existing content. * Example: ['auth', 'a11y'] appends login-flow + a11y scenarios. */ recipes?: RecipeId[]; /** * Per-recipe configuration overrides (selectors, routes, impact thresholds). * Only consulted when `recipes` is non-empty. */ recipeConfig?: RecipeConfig; } export interface ProjectConfig { configFile: { filename: string; code: string; }; packageJson: { devDependencies: Record; scripts: Record; }; supportFiles: Array<{ filename: string; code: string; }>; } export interface ScaffoldResult { url: string; framework: Extract; generatedTests: GeneratedTest[]; scenarios: NeutralScenario[]; projectConfig: ProjectConfig; /** * Dry-run validation of every generated spec: each spec is transpiled through * the TypeScript compiler and any parse/compile error is surfaced here. This * is the witness that the scaffold did not emit broken code — `ok: false` * means at least one generated spec will not parse. Always populated. */ specValidation: SpecValidationReport; } export declare function scaffoldTests(url: string, options?: ScaffoldOptions): Promise; //# sourceMappingURL=scaffold-tests.d.ts.map