export type LabelValue = { label: string; value: string; }; export type LabelNumber = { label: string; value: number; }; export type GfmTable = { header: string[]; rows: string[][]; }; export type MarkdownListCards = { items: string[]; lines: number[]; }; type HtmdxBodyFormat = 'markdown' | 'label-value-list' | 'label-number-list' | 'gfm-table' | 'markdown-list-cards'; type ParsedBodyByFormat = { markdown: string; 'label-value-list': LabelValue[]; 'label-number-list': LabelNumber[]; 'gfm-table': GfmTable; 'markdown-list-cards': MarkdownListCards; }; type BodyContractLocation = { line?: number; column?: number; example?: string; }; export declare class BodyContractError extends Error { readonly expected: string; readonly line?: number; readonly column?: number; readonly example?: string; constructor(message: string, expected: string, { line, column, example }?: BodyContractLocation); } /** Structured form of a body-contract failure, for error pages and fix requests. */ export type HtmdxBodyContract = { component: string; expected: string; example: string; /** The offending row, trimmed and length-limited. Untrusted input. */ receivedInput?: string; bodyLine?: number; bodyColumn?: number; }; export declare class HtmdxBodyContractError extends Error { readonly contract: HtmdxBodyContract; constructor(message: string, contract: HtmdxBodyContract, options?: ErrorOptions); } export declare function parseComponentBody(componentName: string, format: F, body: string, validate?: (body: ParsedBodyByFormat[F]) => void): ParsedBodyByFormat[F]; export declare function validateGlobalBody(body: string): void; export declare function parseLabelValueList(body: string): LabelValue[]; export declare function parseLabelNumberList(body: string): LabelNumber[]; export declare function parseGfmTable(body: string): GfmTable; export declare function parseMarkdownListCards(body: string): MarkdownListCards; export declare function markdownSyntaxSource(source: string, options?: { indentedCode?: boolean; }): string; export declare function escapeCodeSpans(source: string, syntax?: string): string; export declare function unescapeCodeSpans(source: string, syntax?: string): string; export {};