export interface DocsIndex { /** Sorted documentation file names, relative to `docs/`. */ readonly filenames: readonly string[]; /** Resolve a doc body by path; inflates the embedded bodies off-thread, lazily, on first call. */ getBody(relativePath: string): Promise; } /** * Decode a populated two-line embed (`\n`) * into a lazily-inflating index, or `null` when there is no newline separator * (the empty placeholder, or a malformed payload — the caller decides which). * Reading `filenames` never touches the blob; the bodies are gunzipped off the * event loop into a path→content table on the first `getBody` call, and that * work is shared across concurrent reads. */ export declare function decodeDocsIndex(embed: string): DocsIndex | null; /** Sorted list of available documentation file names (relative to `docs/`). */ export declare function getDocFilenames(): readonly string[]; /** * Filesystem root backing the corpus when the active index was read from disk * (a monorepo checkout), or `null` when it came from an embed, the shipped * bundle file, or nowhere. Renderers use this to decide whether an `omp://` * URL has a real file to link to: probing `docs/` unconditionally would * resolve into the consumer's own tree (their project's `docs/settings.md`, * `node_modules/docs`) on installs where the corpus is embedded. */ export declare function getDocsDiskRoot(): string | null; /** Resolve a documentation file's content, or `undefined` when not found. */ export declare function getEmbeddedDoc(relativePath: string): Promise;