/**
 * StructuredOutput - React component for rendering structured data
 *
 * Uses the RenderManager to automatically select the best renderer
 * for the given data type. Falls back to plain text for unknown types.
 */
import React from 'react';
import { RenderContext } from '../../renderers/index.js';
import type { WeatherCondition } from '../../renderers/types.js';
/** Export kind for code structure */
type ExportKind = 'function' | 'class' | 'variable' | 'type' | 'default';
/** Variable kind for code structure */
type VariableKind = 'const' | 'let' | 'var';
interface StructuredOutputProps {
    /** Data to render - can be any RenderableData type or plain string */
    data: unknown;
    /** Optional title to display above the output */
    title?: string;
    /** Force plain mode regardless of global settings */
    plain?: boolean;
    /** Maximum width for the output */
    maxWidth?: number;
}
export declare function StructuredOutput({ data, title, plain, maxWidth, }: StructuredOutputProps): React.ReactElement;
/**
 * Hook to access the RenderManager for programmatic rendering
 */
export declare function useRenderManager(): {
    /** Render data to string */
    render: (data: unknown, context?: Partial<RenderContext>) => string;
    /** Check if data can be rendered by a specialized renderer */
    canRender: (data: unknown) => boolean;
    /** Get the current global render context */
    context: RenderContext;
    /** Get all registered renderers */
    renderers: import("../../renderers/types.js").Renderer<unknown>[];
};
/**
 * TestResults - Render test execution results
 */
export declare function TestResults({ results, plain, }: {
    results: {
        summary: {
            total: number;
            passed: number;
            failed: number;
            skipped: number;
        };
        tests: Array<{
            name: string;
            status: 'passed' | 'failed' | 'skipped' | 'pending';
            duration?: number;
            error?: string;
        }>;
        framework?: string;
        duration?: number;
    };
    plain?: boolean;
}): React.ReactElement;
/**
 * Weather - Render weather information
 */
export declare function Weather({ location, current, forecast, units, plain, }: {
    location: string;
    current: {
        temperature: number;
        condition: WeatherCondition;
        humidity?: number;
        windSpeed?: number;
    };
    forecast?: Array<{
        date: string;
        high: number;
        low: number;
        condition: WeatherCondition;
    }>;
    units?: 'metric' | 'imperial';
    plain?: boolean;
}): React.ReactElement;
/**
 * CodeStructure - Render code file analysis
 */
export declare function CodeStructure({ filePath, language, classes, functions, imports, exports, variables, plain, }: {
    filePath: string;
    language?: string;
    classes?: Array<{
        name: string;
        methods: string[];
        properties: string[];
    }>;
    functions?: Array<{
        name: string;
        params: string[];
        async?: boolean;
    }>;
    imports?: Array<{
        source: string;
        names: string[];
    }>;
    exports?: Array<{
        name: string;
        kind: ExportKind;
    }>;
    variables?: Array<{
        name: string;
        kind: VariableKind;
    }>;
    plain?: boolean;
}): React.ReactElement;
export default StructuredOutput;
