/**
 * `loadKnowledge` — read Smithy's knowledge pack off disk into a {@link KnowledgePack}.
 *
 * The knowledge pack used to live as one big inline constant baked into the
 * source. That made it invisible to anyone editing the prose, impossible to diff
 * sensibly, and welded the docs to the build. Here it is *externalised*: a
 * `manifest.json` lists the guides by id, title, file, and summary, and each
 * guide is a plain markdown file beside it under `guides/`. This loader is the
 * single seam that turns those files back into structured, in-memory data the
 * rest of Smithy can consult.
 *
 * The manifest is the source of truth for *which* guides exist and how they are
 * described; the markdown files are the source of truth for their *bodies*. The
 * loader reads the manifest first, then pulls each referenced file, so a guide
 * that is listed but missing on disk surfaces as a clear error rather than a
 * silent gap.
 */
/** One guide's manifest entry: how it is catalogued, plus where its body lives. */
export interface GuideManifestEntry {
    /** Stable, file-safe identifier used to look the guide up. */
    readonly id: string;
    /** Human-readable title. */
    readonly title: string;
    /** Path to the guide's markdown body, relative to the manifest. */
    readonly file: string;
    /** One-line description of what the guide covers. */
    readonly summary: string;
}
/** The parsed shape of `manifest.json` before bodies are attached. */
export interface KnowledgeManifest {
    /** Manifest schema/content version. */
    readonly version: string;
    /** The guides this pack ships, in catalogue order. */
    readonly guides: readonly GuideManifestEntry[];
}
/** One fully-loaded guide: its manifest metadata plus its markdown body. */
export interface Guide extends GuideManifestEntry {
    /** The guide's markdown body, read from {@link GuideManifestEntry.file}. */
    readonly body: string;
}
/** The whole knowledge pack: the manifest version plus every loaded guide. */
export interface KnowledgePack {
    /** The manifest's declared version. */
    readonly version: string;
    /** Every guide, with its body attached, in manifest order. */
    readonly guides: readonly Guide[];
    /** Look a guide up by its {@link Guide.id}; `undefined` if absent. */
    guide(id: string): Guide | undefined;
}
/** Raised when the knowledge pack cannot be loaded or fails its shape check. */
export declare class KnowledgeError extends Error {
    constructor(message: string);
}
/**
 * Load the knowledge pack from `dir` (defaults to this module's own directory).
 *
 * Reads and validates `manifest.json`, then reads each guide's markdown body,
 * resolving file paths relative to the manifest. The returned pack is frozen and
 * carries a {@link KnowledgePack.guide} lookup. Any missing or malformed input
 * surfaces as a {@link KnowledgeError}.
 *
 * @param dir Optional directory holding `manifest.json` and `guides/`.
 */
export declare function loadKnowledge(dir?: string): Promise<KnowledgePack>;
