import { type RoadmapMigrationPlan } from '../core/roadmap-migration.js'; type ArtifactRole = 'bundle' | 'audit' | 'non_core' | 'receipt' | 'projection' | 'manifest'; interface MigrationArtifact { role: ArtifactRole; path: string; absolutePath: string; contents: string; sha256: string; } interface MigrationEvidenceArtifact { path: string; absolutePath: string; sha256: string; textSha256: string; } interface RoadmapMigrationReceiptOutput { role: Exclude; path: string; sha256: string; } export interface RoadmapMigrationReceipt { version: 1; kind: 'roadmap_migration_receipt'; digest_kind: 'text_crlf_normalized_sha256'; migration_id: string; recorded_at: string; plan_sha256: string; source: { path: string; original_sha256: string; projection_sha256: string; }; manifest: { path: string; sha256: string; }; audit_path: string; non_core_path: string; receipt_path: string; inputs: { mapping?: { path: string; sha256: string; }; scorecards: Array<{ path: string; sha256: string; }>; }; summary: { sources: number; archives: number; history_unverified: number; }; outputs: RoadmapMigrationReceiptOutput[]; integrity_sha256: string; } export interface RoadmapSourceMigrationInput { cwd: string; path?: string; source?: string; mapping?: string; recordedAt?: string; } interface PreparedMigrationBase { input: RoadmapSourceMigrationInput; sourcePath: string; sourceRelativePath: string; manifestPath: string; manifestRelativePath: string; sourceRoot: string; journalPath: string; backupPath: string; } export interface ReadyRoadmapSourceMigration extends PreparedMigrationBase { status: 'ready'; recordedAt: string; sourceBytes: Buffer; sourceSha256: string; mappingPath?: string; mappingSha256?: string; evidenceSha256: string; evidenceArtifacts: MigrationEvidenceArtifact[]; plan: RoadmapMigrationPlan; artifacts: MigrationArtifact[]; receipt: RoadmapMigrationReceipt; } export interface BlockedRoadmapSourceMigration extends PreparedMigrationBase { status: 'blocked'; plan: RoadmapMigrationPlan; } export interface UnchangedRoadmapSourceMigration extends PreparedMigrationBase { status: 'unchanged'; receipt: RoadmapMigrationReceipt; } export interface RecoveryRequiredRoadmapSourceMigration extends PreparedMigrationBase { status: 'recovery_required'; } export type PreparedRoadmapSourceMigration = ReadyRoadmapSourceMigration | BlockedRoadmapSourceMigration | UnchangedRoadmapSourceMigration | RecoveryRequiredRoadmapSourceMigration; export interface RoadmapSourceMigrationResult { status: 'applied' | 'unchanged'; receipt: RoadmapMigrationReceipt; sources: number; archives: number; historyUnverified: number; } export interface RoadmapSourceMigrationApplyHooks { afterWrite?: (role: ArtifactRole, path: string) => void; } export declare function prepareRoadmapSourceMigration(input: RoadmapSourceMigrationInput): PreparedRoadmapSourceMigration; export declare function applyRoadmapSourceMigration(prepared: PreparedRoadmapSourceMigration, hooks?: RoadmapSourceMigrationApplyHooks): RoadmapSourceMigrationResult; export {}; //# sourceMappingURL=roadmap-source-migration.d.ts.map