/**
 * Shared truncation threshold for all collapsible tool rendering
 * primitives. Applied consistently across detail views and approval
 * card previews.
 */
export declare const TRUNCATION_LINE_LIMIT = 10;
/** Props for {@link CollapsibleCode}. */
export interface CollapsibleCodeProps {
    /** Label displayed above the code block. */
    readonly label: string;
    /** Code content to render. */
    readonly content: string;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * A labeled `<pre>` block with automatic line-based truncation and
 * an expand/collapse toggle.
 *
 * Used for tool arguments, file content previews, and result blocks
 * across both the detail view and the approval card.
 */
export declare function CollapsibleCode({ label, content, className }: CollapsibleCodeProps): import("react/jsx-runtime").JSX.Element;
/** Props for {@link CollapsiblePre}. */
export interface CollapsiblePreProps {
    /** Text content to render in the `<pre>` element. */
    readonly content: string;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * A bare `<pre>` element with line-based truncation. Unlike
 * {@link CollapsibleCode}, this has no label, border, or background
 * — the caller controls container styling via `className`.
 *
 * Pass container styles (border, background, max-height) through
 * `className` when rendering standalone; omit when the parent
 * already provides a styled container (e.g. terminal blocks).
 */
export declare function CollapsiblePre({ content, className }: CollapsiblePreProps): import("react/jsx-runtime").JSX.Element;
/** Props for {@link CollapsibleJsonBlock}. */
export interface CollapsibleJsonBlockProps {
    /** Label displayed as the toggle header text. */
    readonly label: string;
    /** Pre-formatted JSON content. */
    readonly content: string;
}
/**
 * A collapsible JSON section with a chevron toggle. Initially
 * collapsed, showing the label and line count. Useful for complex
 * (non-scalar) tool arguments.
 */
export declare function CollapsibleJsonBlock({ label, content }: CollapsibleJsonBlockProps): import("react/jsx-runtime").JSX.Element;
/** Small document icon for file path displays (10x10). */
export declare function FilePathIcon(): import("react/jsx-runtime").JSX.Element;
/** MCP server node/link icon (10x10). */
export declare function McpServerIcon(): import("react/jsx-runtime").JSX.Element;
/** Safely serialise an object to pretty JSON. */
export declare function formatJson(obj: unknown): string;
/** Pretty-print a result string if it's valid JSON, otherwise return as-is. */
export declare function formatResult(result: string): string;
/** Detect scalar values (string, number, boolean). */
export declare function isScalar(value: unknown): value is string | number | boolean;
/**
 * Title-case a snake_case or camelCase argument key for display.
 *
 * @example
 * humanizeArgKey("mcp_server_slug") // "Mcp Server Slug"
 */
export declare function humanizeArgKey(key: string): string;
//# sourceMappingURL=tool-rendering-primitives.d.ts.map