export interface LyHeaderFields { title?: string; composer?: string; } /** * Extracts readable plain text from inside a `\markup { ... }` block: quoted-string * contents and bare words are kept, `\command` tokens and `#...` Scheme literal * arguments (font sizes, colors, alist overrides, etc.) are stripped, and nested * `{ }` grouping is flattened — good enough for the formatting-wrapped text * commonly seen in real `\header` fields (e.g. `\markup { \bold "Sonata" }`), * not a full markup-language evaluator. */ export declare function extractMarkupText(markupInner: string): string; /** * Extracts every string-valued header field found anywhere in `source`, * across every top-level `\header` block (there can be more than one — e.g. * book-level metadata plus a per-`\score` override). When the same field name * appears in more than one block, the **last occurrence in the file wins** — * approximating LilyPond's own inner-scope-overrides-outer-scope header chain * for the common case of a book/top-level header followed by per-score ones. */ export declare function parseLyHeaderFields(source: string): Record; /** Extracts `title`/`composer` from the file's header block(s) (see `parseLyHeaderFields`); non-string values (e.g. an unbraced `\markup`, `##f`) are treated as absent. */ export declare function parseLyHeader(source: string): LyHeaderFields;