import { type FilesAdapter } from "@vendoai/core"; import type { Db } from "./db-postgres.js"; import { type VendoStore } from "./store.js"; /** Build contract §3.4 — the cap on the no-adapter path, matching today's app-blob cap. Past it the host must wire a real files adapter. */ export declare const FILES_STORE_MAX_BYTES: number; /** The blob namespace the store-backed files adapter owns. Flat, and outside the `app::…` grammar, so no app gate applies. The erase cascade reaches these objects through the ROW that points at them (`blob_ref`), never through a key prefix — workspace-rows mints random `wsb_` keys precisely so a row that changes owner (an anon adoption, a wave-3 promote) does not strand its content behind an unreachable key. */ export declare const WORKSPACE_BLOB_NAMESPACE = "workspace"; /** * Build contract §3.4 — the zero-configuration files adapter: no `files:` * wired, so workspace blobs live in the store's own `vendo_blobs`. Capped, * because a database is not an object store; the first over-cap write names * the fix rather than silently succeeding until Postgres complains. */ export declare function storeFiles(store: VendoStore): FilesAdapter; /** The same adapter bound to an explicit Db handle — ops.ts hands it the * transaction-scoped query so a blob touched inside a verb's transaction * rides that transaction instead of deadlocking PGlite's single connection. */ export declare function storeFilesForDb(db: Db): FilesAdapter; //# sourceMappingURL=files-store.d.ts.map