import type { Kysely } from 'kysely'; /** * The audit log. * * Append-only, and nothing in the codebase updates or deletes a row — the value of a log is * exactly that it cannot be tidied by whoever it embarrasses. That is enforced by convention and * review rather than by a database grant, because the CMS holds one connection with full rights; * saying so here is what makes a future `updateTable('audit_log')` obviously wrong. * * Denormalised on purpose. `actor_email` and `subject_label` are copied in at write time rather * than joined at read time, because the point of a log is what was true *then*: an entry reading * "deleted Admissions" stays meaningful after the page and the person are both gone, and a join * would render it as two nulls. `actor_id` keeps the link for as long as the row survives. */ export declare function up(db: Kysely): Promise; export declare function down(db: Kysely): Promise;