import { EvalAuthoringTransport, type RepositoryFoundryFinalizationInputV1 } from "@velum-labs/routekit-eval-setup";
import { RouteKitFailure } from "@velum-labs/routekit-runtime/effect";
import { Effect, FileSystem, Layer, Path } from "effect";
import { FoundryExecutionEvidenceError } from "../../stores/foundry-execution-evidence.js";
type Source = {
readonly file: string;
readonly digest: string;
};
export type FoundryFinalizationPlan = {
readonly version: 1;
readonly kind: "frozen-review-finalization";
readonly repositoryRoot: string;
readonly caseId: string;
readonly parentPlanDigest: string;
readonly parentPlanFileDigest: string;
readonly parentProgressDigest: string;
readonly checkpointDigest: string;
readonly artifactManifest: readonly Source[];
readonly evidenceEncoding: "routekit-lossless-review-json-v1" | "routekit-lossless-review-json-v2";
readonly reviewInputVersion?: 2;
readonly inheritedModelCalls: number;
readonly originalReviewRequestBytes: number;
readonly budget: {
readonly modelCalls: 1;
readonly model: string;
readonly reasoningEffort: string;
readonly maximumInputTokens: number;
readonly maximumOutputTokens: number;
readonly wallTimeMs: number;
};
readonly finalizationDigest: string;
};
type FinalizationIdentity = {
readonly repositoryRoot: string;
readonly caseId: string;
readonly planDigest: string;
};
/** Reuse the generation lifecycle lock so finalization cannot overlap generation. */
export declare const withFoundryFinalizationLock: (identity: FinalizationIdentity, operation: Effect.Effect) => Effect.Effect;
/** Preparation reconstructs exact archived work; it cannot call a live transport. */
export declare const prepareFoundryFinalization: (input: FinalizationIdentity & {
readonly wallTimeMs: number;
}) => Effect.Effect<{
operation: "repository-foundry-finalize-prepare";
plan: FoundryFinalizationPlan;
planPath: string;
checkpointPath: string;
}, unknown, FileSystem.FileSystem | Path.Path>;
export declare const loadFoundryFinalization: (input: FinalizationIdentity & {
readonly finalizationDigest: string;
}) => Effect.Effect<{
prepared: FoundryFinalizationPlan;
checkpoint: RepositoryFoundryFinalizationInputV1;
location: {
root: string;
foundry: string;
directory: string;
parent: string;
progress: string;
artifacts: string;
};
}, unknown, FileSystem.FileSystem | Path.Path>;
export declare const executeFoundryFinalization: (input: {
readonly loaded: Effect.Success>;
readonly transport: Layer.Layer;
readonly outputPath: string;
}) => Effect.Effect<{
operation: "repository-foundry-finalize";
outputPath: string;
finalizationDigest: string;
parentPlanDigest: string;
status: "rejected" | "valid-library" | "routing-eligible" | "routing-active";
modelCalls: number;
}, RouteKitFailure | import("effect/PlatformError").PlatformError | import("@velum-labs/routekit-eval-setup").RepositoryFoundryError | FoundryExecutionEvidenceError | import("@velum-labs/routekit-eval-setup").RepositoryFoundryIdleStallError, FileSystem.FileSystem | Path.Path>;
export {};