/**
* Static site configuration passed to `DocsShell`. Content-derived data (the
* sidebar nav) is NOT here — it comes from your content collection at runtime.
*/
/** A link rendered in the header nav or footer. */
export type DocsmithLink = {
label: string;
href: string;
/** Open in a new tab with `rel="noopener"`. */
external?: boolean;
};
/** A titled column of links in the footer. */
export type DocsmithFooterColumn = {
title: string;
links: DocsmithLink[];
};
/** A thin announcement bar shown at the top of every page. */
export type DocsmithAnnouncement = {
/** The message text. */
text: string;
/** Optional leading pill label, e.g. `'New'`, `'Beta'`, or a version. */
tag?: string;
/** Optional link the bar points to. */
href?: string;
/** Open the link in a new tab with `rel="noopener"`. */
external?: boolean;
/**
* Dismissal key. A dismissed bar stays dismissed until this value changes, so
* bump it (or edit `text`) when you post a new announcement. Defaults to the
* text itself.
*/
id?: string;
/** Let readers dismiss the bar. Defaults to `true`. */
dismissible?: boolean;
};
export type DocsmithConfig = {
/** Site title, shown in the header/sidebar and in the `
` suffix. */
title: string;
/**
* Default meta description, used for pages whose frontmatter has none (and
* as the site's social-share description).
*/
description?: string;
/**
* Canonical site origin, e.g. `https://docs.example.com`. When set, DocsShell
* emits `` and absolute Open Graph URLs.
*/
url?: string;
/** Default social-share image (absolute URL, or a path resolved against `url`). */
ogImage?: string;
/**
* Base URL for the "Edit this page" link, pointing at the directory that maps
* to your app's working directory in the repo, e.g.
* `https://github.com/you/repo/edit/main/apps/docs`. DocsShell appends each
* page's source path. Omit to hide the edit link.
*/
editUrl?: string;
/** Optional GitHub URL; renders a link in the header when set. */
github?: string;
/** Optional version string, shown in the header (e.g. your library version). */
version?: string;
/** Optional logo image src; falls back to the built-in book mark. */
logo?: string;
/** Optional announcement bar shown at the top of every page. */
announcement?: DocsmithAnnouncement;
/** Top-level header navigation links. */
nav?: DocsmithLink[];
/** Footer content, driven by data. */
footer?: {
/** Copyright / attribution line. */
copyright?: string;
/** Titled columns of links. */
columns?: DocsmithFooterColumn[];
/**
* Show the "Powered by Svelte DocSmith" attribution in the footer.
* Defaults to `true`; set `false` to hide it.
*/
poweredBy?: boolean;
};
};
/**
* Validate a {@link DocsmithConfig} at build time. Purely a pass-through for
* typed callers; the runtime checks catch untyped or dynamically-built configs
* with a real error message instead of a blank header.
*/
export declare function defineConfig(config: DocsmithConfig): DocsmithConfig;