import type { ArchitecturePlan, FunctionalTestResult } from './types.js'; interface FunctionalTesterOptions { maxRepairAttempts?: number; testTimeoutMs?: number; serverStartTimeoutMs?: number; codeModel?: string; framework?: string; } export declare class FunctionalTester { private projectPath; private plan; private maxRepairAttempts; private testTimeoutMs; private serverStartTimeoutMs; private codeModel?; private framework; constructor(projectPath: string, plan: ArchitecturePlan, options?: FunctionalTesterOptions); /** Run functional tests with repair loop. */ test(): Promise; /** Generate test cases from the architecture plan. */ private generateTests; /** Generate a minimal sample payload for a POST/PUT route based on schema. */ private generateSamplePayload; /** Generate a sample value for a schema field type. */ private sampleValueForType; /** Start the dev server and detect the port. */ private startDevServer; /** Run a batch of functional tests against the running server. */ private runTests; /** Run a single functional test. */ private runSingleTest; /** Feed test failures to CodeAgent for repair. */ private runRepair; /** Read source files for failing test endpoints. */ private readFailingSourceFiles; /** Map a route path to its expected file path (mirrors orchestrator logic). */ private routeToFilePath; /** Run a persistence verification: POST data, then GET to confirm it was saved. */ private runPersistenceVerification; /** Find a GET route that matches a POST route path with an ID segment appended. */ private findCorrespondingGetRoute; /** Guess the ID field name from a route path (e.g., /api/foods → food.id). */ private guessIdField; /** Extract a nested value from an object using a dotted path (e.g., "food.id"). */ private extractNestedValue; } export {};