import { SafeString } from '../_html.js'; /** * Reusable detail-page sections. Composed by per-watcher views in `views.ts` * to keep each detail view small and consistent. */ /** * Card wrapper used to group a section of a detail page. Title is optional — * omit it for sections where the content is self-explanatory. */ export declare function Card(title: string | null, body: SafeString | string): SafeString; /** * Two-column key/value table. `null`/`undefined` values are rendered as `—`. * String values are HTML-escaped automatically by `html\`\``. */ export declare function KeyValueTable(rows: Record): SafeString; /** * Formatted JSON block in a `
`. Used for arbitrary nested values
 * (request bodies, payloads, dirty attribute diffs, etc.).
 */
export declare function JsonBlock(value: unknown): SafeString;
/**
 * Code block — like JsonBlock but for arbitrary text (SQL, stack traces,
 * log messages). No JSON formatting.
 */
export declare function CodeBlock(text: string, opts?: {
    language?: string;
    maxHeight?: string;
}): SafeString;
/**
 * Coloured pill matching the badge style used in EntryList.
 * The colour palette mirrors `EntryList.ts`'s `badgeClass()` function.
 */
export declare function Badge(value: string | undefined): SafeString;
/**
 * Tabbed sections — uses Alpine.js `x-data` for tab switching.
 * Only renders tabs that have non-empty content.
 */
export declare function Tabs(tabs: {
    label: string;
    content: SafeString | string;
}[]): SafeString;
/**
 * Get a content field with a fallback. Helper to keep view files terse.
 */
export declare function field(content: Record, key: string): unknown;
//# sourceMappingURL=sections.d.ts.map