import type { DatabaseDriver } from "../../domain/port/DatabaseDriver.js"; import type { MediaAssetListArgs, MediaAssetListResult, MediaAssetRepository } from "../../domain/port/MediaAssetRepository.js"; import type { MediaAsset } from "../../domain/port/MediaStorage.js"; /** * `media_assets` row read/write. The variants set + free-form * metadata go in as JSON-encoded TEXT — variants is closed-shape so * the parse is type-asserted but not validated; the writer is the * commit use case which builds the asset from already-verified * adapter output. * * `findManyByIds` issues one `IN (?, ?, ...)` for the whole batch. * D1 has a parameter ceiling; the implementation chunks at 100 ids * per query and stitches the results. Anyone hitting >100 referenced * assets in a single render pass is doing something unusual and the * stitching keeps it correct rather than fast — orphan sweep / asset * audit consumers (#254) are expected to page through their own * windows. */ export declare class DatabaseMediaAssetRepository implements MediaAssetRepository { private readonly db; constructor(db: DatabaseDriver); findById(id: string): Promise; findManyByIds(ids: readonly string[]): Promise>; save(asset: MediaAsset): Promise; delete(id: string): Promise; list(args: MediaAssetListArgs): Promise; } //# sourceMappingURL=DatabaseMediaAssetRepository.d.ts.map