import { McpToolResponse } from "../types/mcp.js";
/**
 * Base interface for formatting MCP tool responses into rich display formats
 */
export interface ResponseFormatter<T> {
    /**
     * Format a raw response into a well-structured display format
     * @param data The parsed data from the tool response
     * @returns Formatted string (typically markdown) for rich display
     */
    format(data: T): string;
}
/**
 * Creates an MCP tool response with both JSON and formatted display views
 *
 * @param data The raw data object to format
 * @param formatter The formatter to use for rich display
 * @param isError Whether this response represents an error
 * @returns An MCP tool response with original JSON and formatted display
 */
export declare function createFormattedResponse<T>(data: T, formatter: ResponseFormatter<T>, isError?: boolean): McpToolResponse;
/**
 * Utility function to generate a markdown table from an object
 *
 * @param obj Object to convert to a table
 * @param headers Optional custom headers (defaults to keys)
 * @returns Markdown table string
 */
export declare function objectToMarkdownTable(obj: Record<string, any>, headers?: Record<string, string>): string;
/**
 * Utility function to generate markdown tables from an array of objects
 *
 * @param data Array of objects to convert to tables
 * @param headers Optional custom headers (defaults to keys)
 * @returns Markdown tables string
 */
export declare function arrayToMarkdownTables(data: Record<string, any>[], headers?: Record<string, string>): string;
