/** * Canvas kit: a prewritten template — CSS (light + dark, following the * app's own theme) and a documented set of markup building blocks — that an * agent clones and fills in with real content, instead of hand-writing a * canvas from scratch every time. This is deliberately NOT a JSON-data + * JS-renderer scheme: the agent authors real HTML/SVG using the template's * classes, so it keeps full expressive freedom over the graph itself while * the CSS (and therefore the visual language: colors, glow, edge styling, * legend markers) is locked and can't drift. * * `renderCanvasDocument(bodyHtml)` is the single shared shell (CSS + theme * switch) every board document is wrapped in, so the boards can't drift from * each other. */ /** * Wraps `bodyHtml` in the shared canvas document shell: doctype, the theme * switch script, the run-state listener, and every CSS class an agent's markup * can use. This is the single source both the pristine template and * `scripts/seed-example.mjs`'s prefilled instance render through, so they * can't drift from each other. */ export declare function renderCanvasDocument(bodyHtml: string): string; /** * A minimal, THEME-AWARE document for the canvas pane's non-graph states — * the empty state and the "rendering…" placeholder the server serves for a * session with nothing (yet) to draw. It reuses the SAME theme mechanism as * `renderCanvasDocument` (the `?theme` reader + the ported token block), so * these pages follow the app's light/dark theme instead of always painting a * white panel inside a dark app. No graph, so it deliberately omits the * run-state/pan-zoom script and SVG defs — just a centered title + subtitle on * the themed canvas backdrop. `title`/`subtitle` are trusted, static server * copy (never user input), so they're inlined without escaping. */ export declare function renderCanvasMessageDocument(title: string, subtitle: string): string; //# sourceMappingURL=canvas-template.d.ts.map