import type { DirectIntegrationAuditFile, DirectIntegrationIssue, DirectIntegrationRelationship } from "../../prompts/direct-integration.ts"; import { type ConversionUnit, type GeneratedConversionUnit, type ProjectMemoryProvider, type ProjectRelationship } from "../../workflows/types.ts"; export interface IntegrationAuditRequest { /** Representative unit used for provider defaults and target-specific memory. */ unit: ConversionUnit; units: ConversionUnit[]; files: DirectIntegrationAuditFile[]; relationships: DirectIntegrationRelationship[]; projectMemory?: string; } export interface IntegrationRepairRequest { unit: ConversionUnit; targetPath: string; instruction: string; currentCode: string; issues: DirectIntegrationIssue[]; relatedFiles: Array<{ path: string; content: string; }>; projectMemory?: string; } export interface IntegrationAuditResult { status: "consistent" | "issues"; issues: DirectIntegrationIssue[]; } export type IntegrationProgress = { kind: "integration-audit"; unit: ConversionUnit; pass: number; files: number; } | { kind: "integration-repair"; unit: ConversionUnit; attempt: number; issues: number; } | { kind: "reject"; unit: ConversionUnit; reason: string; }; export interface IntegrationValidationOptions { audit?: (request: IntegrationAuditRequest) => Promise; repair?: (request: IntegrationRepairRequest) => Promise; /** Initial audit plus one verification audit by default. */ maxAuditPassesPerGroup?: number; /** One target-scoped repair per generated file by default. */ maxRepairAttemptsPerUnit?: number; contextCharBudget?: number; projectMemory?: ProjectMemoryProvider; onProgress?: (event: IntegrationProgress) => void; } export interface IntegrationValidationOutcome { results: GeneratedConversionUnit[]; auditRequests: number; repairRequests: number; checkedGroups: number; } /** Strictly validate the model's audit JSON against the exact generated group. */ export declare function parseIntegrationAuditOutput(output: string, allowedPaths: ReadonlySet): IntegrationAuditResult; /** Conservative pre-run ceiling: two audits and one repair per whole-file unit. */ export declare function potentialIntegrationRequests(units: readonly ConversionUnit[]): { auditUpTo: number; repairUpTo: number; }; /** Audit, repair, and verify generated relationship groups without writing. */ export declare function reconcileGeneratedIntegrations(generated: readonly GeneratedConversionUnit[], options?: IntegrationValidationOptions): Promise; /** Helper for tests and alternative ProjectMemory implementations. */ export declare function generatedRelationshipsFor(unit: ConversionUnit, projectMemory: ProjectMemoryProvider): readonly ProjectRelationship[]; //# sourceMappingURL=integration-validation.d.ts.map