import type { Kysely } from 'kysely'; /** * Reusable blocks: a block instance promoted to a shared library. * * The case is a piece of content that appears on many pages and must change in one place — an * office's contact details, a term's key dates, an emergency notice. Copying a block onto twelve * pages means twelve edits and, in practice, three of them missed. * * A row here owns its `data`; an item that places it stores only a reference. That asymmetry is the * whole feature: an ordinary block's content belongs to the page and is versioned with it, while a * reusable block's content belongs to the library and changing it changes every page at once. * * `block_type` is the block type's `api_id` rather than its id, matching how block instances name * their type in `content_items.data`. It is a text column and not a foreign key for the same * reason: block instances are JSON and cannot have one either, so the block type delete path * checks both places rather than relying on the database in one and not the other. */ export declare function up(db: Kysely): Promise; export declare function down(db: Kysely): Promise;