import type Database from 'better-sqlite3'; export interface MigrationResult { success: boolean; phases: PhaseResult[]; totalElapsedMs: number; errors: string[]; } export interface PhaseResult { phase: string; elapsedMs: number; details: Record; error?: string; } export interface MigrationPhase { name: string; execute(db: Database.Database, projectRoot: string): PhaseResult; validatePre(db: Database.Database): boolean; validatePost(db: Database.Database): boolean; } export declare function getAvailablePhases(): string[]; /** * Run a single named phase. Throws if phase name is unknown. */ export declare function runPhase(db: Database.Database, phaseName: string, projectRoot: string): PhaseResult; /** * Run the full 9-phase Sprint 31 migration on the given database. * Phases execute in order. Each phase runs in its own transaction. * Idempotent: phases skip work when preconditions are already met. * * @param db - Database connection * @param projectRoot - Project root directory (for YAML/script paths in Phase 8) * @returns MigrationResult with phase details and elapsed times */ export declare function runMigration(db: Database.Database, projectRoot: string): MigrationResult; /** * Pre-migration validation: check that the database has the expected pre-migration state. * (builtin:2.0 characteristics — entity_types table, 27+ relation types) */ export declare function validatePreMigration(db: Database.Database): void; /** * Post-migration validation: verify the database is in builtin:3.0 state. */ export declare function validatePostMigration(db: Database.Database): void; //# sourceMappingURL=schema-migration-service.d.ts.map