import { RenderTarget } from './target.js';
/** Optional adjustments layered onto the publication file for a render. */
export interface PublicationOverrides {
/**
* Fallback PreTeXt HTML theme for projects that name none; see
* `RenderOptions.cssTheme`. A blank value is ignored.
*/
cssTheme?: string;
/**
* Fallback reveal.js theme for slideshows that name none; see
* `RenderOptions.revealTheme`. Only consulted when `target` is "slides".
*/
revealTheme?: string;
/**
* Which conversion this publication file is being prepared for. "slides"
* additionally forces the reveal.js resource host; see
* {@link forceRevealResources}. Defaults to "html".
*/
target?: RenderTarget;
}
/**
* Return publication-file XML with ``
* forced, preserving everything else from `publicationXml` when given.
*
* Portable mode is forced for slideshows too, even though the reveal.js
* conversion never chunks: it is what sets `$cdn-prefix`, and so what puts the
* PreTeXt-side css and js (sagecell, syntax highlighting, the slide styling)
* on the CDN rather than at a relative path that does not exist.
*/
export declare function forcePortablePublication(publicationXml?: string, overrides?: PublicationOverrides): string;
/**
* Where a project's images live, as declared by
* ``.
*
* Both paths are relative to the directory of the *main* source file — the one
* holding `` — not to whichever file is being rendered. See
* RenderOptions.mainSourcePath.
*/
export interface AssetDirectories {
/** e.g. "../assets/" — trailing slash, relative to the main source dir. */
external?: string;
/** e.g. "../generated-assets/" — likewise. */
generated?: string;
/**
* True when the publication declares both attributes ("managed
* directories"). Only then does PreTeXt emit asset URLs under the fixed
* `external/` and `generated/` prefixes that {@link rewriteAssetUrls} keys
* on; legacy projects emit bare or `images/`-prefixed paths that cannot be
* told apart from anything else, so the preview leaves them alone.
*/
managed: boolean;
}
/**
* Read the asset directories from a publication file, falling back to the
* defaults baked into MINIMAL_PUBLICATION when none is supplied.
*/
export declare function readAssetDirectories(publicationXml?: string): AssetDirectories;