import type { Kysely } from 'kysely'; /** * Outbound webhooks: where to send content events, and every attempt to send one. * * **This is the second kind of deferred work, which `0023_pending_purges` said was the moment to * reconsider a shared queue.** Reconsidered, and they stay separate — the two differ on the one * property a queue is for: * * - A purge is *attempt-then-enqueue-on-failure*. Losing one costs staleness bounded by `s-maxage`, * so a Worker killed between the response and the `fetch` loses nothing that time does not fix. * - A delivery is *enqueue-then-attempt*. An event is a fact about a moment; nothing regenerates it, * and a consumer that never hears "published" waits forever rather than a day. So the row is * written **before** the request goes out, which means a killed isolate leaves work the sweep * finds rather than an event that never existed. * * They also want different columns — a purge is a tag list, a delivery is a body, a signature and a * response status — and `webhook_deliveries` is read by a *screen*, which `pending_purges` never is. * Forcing one table would mean a nullable half per kind and a `target` column doing two jobs. * * **Created empty, and nothing needs backfilling.** No `npm run db:reindex` step: unlike `0019` and * `0021`, neither table is derived from content that already exists. */ export declare function up(db: Kysely): Promise; export declare function down(db: Kysely): Promise;