import { type BuildManualResult, type ManualLink, type ManualSpec, type PageVisibility, type Provenance } from "./build-manual.js"; export type { PageVisibility }; export declare const BUNDLE_SCHEMA_VERSION = 2; export interface BundlePageEntry { id: string; nav: string; title: string; kind: "overview" | "fn" | "ex" | "doc"; /** Relative to the bundle directory. */ file: string; /** Resolved: the page's own value, else the bundle's. */ visibility: PageVisibility; } export interface BundleManifest { schemaVersion: number; brand: string; title: string; /** The default every page inherits when it declares none. */ visibility: PageVisibility; provenance: Provenance; links: ManualLink[]; pages: BundlePageEntry[]; /** Derived single-page exports, relative to the bundle directory. */ exports: { manual: string; manualLinked: string; }; /** `/` of every referenced capture that was not on disk — a * bundle with gaps is still a bundle, but a consumer can see them. */ missing: string[]; } export interface BuildBundleOptions { docsRoot: string; /** Where the bundle is written; created if absent. */ outDir: string; provenance?: Provenance; /** Default visibility for every page that declares none. Public: turnkey * privacy is enforced at the repo and bundle level, not page by page. */ visibility?: PageVisibility; } export interface BuildBundleResult extends BuildManualResult { manifest: BundleManifest; outDir: string; } export declare function buildBundle(spec: ManualSpec, opts: BuildBundleOptions): BuildBundleResult; /** What the public fetcher may stage. A page entry from a version-1 bundle * carries no visibility at all; that reads as `public`, so an older bundle * stages exactly as it did before this field existed. */ export declare function publicPages(manifest: BundleManifest): BundlePageEntry[];