/**
 * UI Components — Semantic card/box components for ThemeRenderer.
 *
 * Uses ThemePalette semantic tokens for consistent theming.
 * All components return formatted strings ready for terminal output.
 *
 * Components: statusCard, providerCard, memoryCard, mcpHealthCard,
 *             errorBox, traceSummary, consentNotice
 */
import type { ThemePalette } from "../cli/theme/theme-registry.js";
import type { ReasoningTrace, TraceSummary } from "./contracts/reasoning-trace.js";
export interface StatusCardData {
    intent: string;
    provider: string;
    model?: string;
    runtime?: string;
    risk?: string;
    mcpCount?: number;
    skillCount?: number;
    durationMs?: number;
}
export declare function statusCard(p: ThemePalette | undefined, data: StatusCardData): string;
export interface ProviderCardData {
    provider: string;
    model: string;
    runtimeMode?: string;
    apiBase?: string;
    connected?: boolean;
}
export declare function providerCard(p: ThemePalette | undefined, data: ProviderCardData): string;
export interface MemoryCardData {
    projectId?: string;
    decisions?: number;
    todos?: number;
    facts?: number;
    lastUpdated?: string;
}
export declare function memoryCard(p: ThemePalette | undefined, data: MemoryCardData): string;
export interface McpServerHealth {
    name: string;
    status: "connected" | "failed" | "disabled" | "pending";
    toolCount?: number;
    error?: string;
}
export interface McpHealthCardData {
    servers: McpServerHealth[];
    totalTools?: number;
}
export declare function mcpHealthCard(p: ThemePalette | undefined, data: McpHealthCardData): string;
export interface ErrorBoxData {
    message: string;
    recoverable?: boolean;
    code?: string;
    suggestion?: string;
}
export declare function errorBox(p: ThemePalette | undefined, data: ErrorBoxData): string;
export declare function traceSummaryCard(p: ThemePalette | undefined, trace: ReasoningTrace): string;
export declare function traceSummaryCompact(p: ThemePalette | undefined, summary: TraceSummary): string;
export interface ConsentNoticeData {
    level: "l0" | "l1" | "l2" | "l3";
    includedInDataset: boolean;
    redactedFields?: string[];
}
export declare function consentNotice(p: ThemePalette | undefined, data: ConsentNoticeData): string;
