/**
* Render the project detail gallery HTML. `root` must be an allowlisted
* workspace root and `slug` a validated project slug (the caller — serve.ts —
* enforces both before calling). Returns a self-contained HTML document.
*
* `opts.mediaUrl` / `opts.pageUrl` make the media/page URL builders injectable.
* Omitted (the monitor server's case) they default to the server routes
* `/m//` and `/p//` — byte-identical to before. A
* persisted, file://-openable gallery injects absolute `file://` builders
* instead (see preview-portal/gallery.ts).
*/
export declare function renderProjectDetail(root: string, slug: string, opts?: {
displayName?: string;
mediaUrl?: (rel: string) => string;
pageUrl?: (rel: string) => string;
}): Promise;
//# sourceMappingURL=project-detail.d.ts.map