import type Database from 'better-sqlite3'; /** * Migration registry. Entries are TS constants (not file reads) so the * built dist/ tree has no runtime filesystem dependency. Each migration's * `sql` string is also mirrored in src/cache/migrations/NNN-*.sql for * grep-ability and review. */ export interface Migration { /** Unique stable name. Must never be renamed after release. */ name: string; sql: string; /** True if the migration depends on sqlite-vec being loaded. */ requiresVec?: boolean; /** * Optional follow-up step run inside the same transaction as `sql`. Used * for migrations whose idempotency requires JS-level inspection (e.g. * conditional ADD COLUMN) that pure SQL can't express on SQLite. */ postStep?: (db: Database.Database) => void; } export declare const MIGRATIONS: Migration[]; /** Test-only: reset the module-level read-only guard between cases. */ export declare function _resetMigrationGuard(): void; /** * Apply pending migrations in order. Idempotent — already-applied migrations * are skipped via the schema_migrations table. Migrations marked * `requiresVec: true` are skipped when the sqlite-vec extension is absent so * FTS5-only flows still work on platforms without the native extension. * On a read-only database, logs a single warning and stops; subsequent * calls in the same process are no-ops. */ export declare function applyMigrations(db: Database.Database, opts?: { vecLoaded: boolean; }): void; //# sourceMappingURL=runner.d.ts.map