import { type ThemeEntry } from './template.js'; import { type DocMeta } from 'orz-markdown/doc-meta'; /** The seven shipped slide themes (served from the orz-slides package on CDN). */ export declare const THEME_DEFS: Array>; export declare function pkgVersion(name: string, fallback?: string): string; /** orz-slides' own version — pins the engine bundle + theme CDN + version check. */ export declare function selfVersion(): string; /** assets/ sits next to dist/ when published, and next to src/ in dev. */ export declare function findAsset(rel: string): string; /** A theme's CSS without its `@import url('./base.css')` (base is inlined once). */ export declare function themeOnly(id: string): string; export interface BuildSlidesOptions { /** The deck source (orz-markdown + slide layout syntax). */ markdown: string; /** Document `` fallback; the deck's own `title:` wins. */ title?: string; /** Theme id fallback; the deck's own `theme:` wins. Validated against THEME_DEFS. */ theme?: string; /** Renderer + theme + reveal CSS delivery: `inline` (default, offline) or * `cdn` (small file — engine, themes, and reveal.css load from jsDelivr at * view time; requires orz-slides-browser to be published at this version). */ delivery?: 'inline' | 'cdn'; /** Document metadata injected by the host; wins over the deck config. */ metadata?: DocMeta; } /** * Shared inline-composition path. Both {@link buildSlidesHtml} and the CLI's * `--inline` branch call this; the ONLY difference between them is the `docId` * they pass, so with the same `docId` the outputs are byte-identical. * * @internal — exported for tests / the CLI, not part of the primary API surface. */ export declare function buildSlidesHtmlWithDocId(opts: BuildSlidesOptions, docId: string): string; /** * Generate a fully self-contained, presentable `.slides.html` document from a * deck source string, in-process. Returns the FULL document string. * * The output is always fully-inline (engine + base/theme CSS + reveal CSS + * embedded deck source), byte-identical to the CLI `--inline` output for the * same markdown/title/theme (modulo the random docId). * * Deck-config precedence: the deck's own `title:`/`theme:`/`ratio:` always win; * `opts.title`/`opts.theme` are fallbacks (title falls back to `'Untitled'`, * theme to `'paper'`, validated against THEME_DEFS). */ export declare function buildSlidesHtml(opts: BuildSlidesOptions): string;