import React from "react";
import "react-json-view-lite/dist/index.css";
export type ApprovalInfo = {
    summary: string;
    riskLevel?: "low" | "medium" | "high";
    allowableScope?: {
        parentItemId: string;
        parentItemPath?: string;
        operationType: string;
    };
};
export interface BaseToolCall {
    id: string;
    displayName?: string;
    function?: {
        name: string;
        arguments: string;
        result?: string | object;
        error?: string;
    };
    requiresApproval?: ApprovalInfo;
    isPruned?: boolean;
    prunedAt?: string;
    isCompleted?: boolean;
    messageId?: string;
    dbMessageId?: string;
    responseTimeMs?: number;
    createdDate?: string;
}
export interface AgentToolCall {
    id: string;
    messageId: string;
    dbMessageId?: string;
    toolCallId: string;
    functionName: string;
    functionArguments: string;
    functionResult?: string;
    functionResultRichContent?: string;
    functionError?: string;
    isPruned?: boolean;
    prunedAt?: string;
    isCompleted: boolean;
    isStreaming?: boolean;
    responseTimeMs?: number;
    createdDate: string;
    requiresApproval?: ApprovalInfo;
}
type ToolCallStatusSource = {
    function?: {
        name?: string;
        error?: string;
    };
    isPruned?: boolean;
};
export declare const isRejectedToolCall: (toolCall: ToolCallStatusSource) => boolean;
export declare const isFailedToolCall: (toolCall: ToolCallStatusSource) => boolean;
export interface PendingToolCallInfo {
    messageId: string;
    dbMessageId?: string;
    toolCallId: string;
    riskLevel?: "low" | "medium" | "high";
    functionName: string;
    summary: string;
}
interface ToolCallDisplayProps {
    toolCalls: (BaseToolCall | AgentToolCall)[];
    finished: boolean;
    isLive?: boolean;
    openPopovers: {
        [key: string]: boolean;
    };
    setOpenPopovers: React.Dispatch<React.SetStateAction<{
        [key: string]: boolean;
    }>>;
    messageId: string;
}
export type InlineToolResultImage = {
    src: string;
    alt: string;
    fileName?: string;
    dimensions?: string;
};
export declare const extractInlineToolResultImage: (value: unknown) => InlineToolResultImage | null;
export declare const InlineToolResultPreview: ({ preview, className, imageClassName, testId, }: {
    preview: InlineToolResultImage;
    className?: string;
    imageClassName?: string;
    testId?: string;
}) => React.JSX.Element;
export declare function ToolCallDisplay({ toolCalls, finished, isLive, openPopovers, setOpenPopovers, messageId, }: ToolCallDisplayProps): React.JSX.Element | null;
export {};
