import { type SuiteRunResult } from '@opensip-cli/contracts'; import { type SuiteSource } from './built-in-suites.js'; import type { SuiteStepReviewInput } from './review-brief.js'; import type { EvidenceBundlePrecondition, EvidenceBundleRun } from '@opensip-cli/session-store'; export interface ProjectSuiteRunInput { readonly result: SuiteRunResult; readonly internalSteps: readonly SuiteStepReviewInput[]; readonly source: SuiteSource; readonly cwd: string; readonly startedAt: string; readonly completedAt: string; readonly identity: SuiteLedgerIdentity; readonly correlationRunId?: string; /** Read-only guard evaluated under the datastore write lock before ledger insertion. */ readonly persistencePrecondition?: () => boolean; } export interface SuiteRunLedgerProjection { readonly evidence: EvidenceBundleRun; readonly precondition?: EvidenceBundlePrecondition; } export interface SuiteLedgerStepIdentity { readonly id: string; readonly logicalStepKey: string; readonly ordinal: number; readonly attempt: number; } export interface SuiteLedgerIdentity { readonly runId: string; readonly steps: readonly SuiteLedgerStepIdentity[]; } /** Allocate the only parent/step IDs used by manifest construction and persistence. */ export declare function allocateSuiteLedgerIdentity(internalSteps: readonly SuiteStepReviewInput[]): SuiteLedgerIdentity; /** * Build a validated parent Run + ordered RunSteps without datastore I/O. * * @throws {TypeError} When task-context evidence does not match the host-owned * run and step identities being persisted. */ export declare function projectSuiteRun(input: ProjectSuiteRunInput): SuiteRunLedgerProjection; //# sourceMappingURL=run-ledger-persist.d.ts.map