/**
 * Optional formatter that downstream consumers (e.g. ezeditor) can pass to
 * customise the per-tool header and inline summary without forking this
 * component. Each fn returns `undefined` to fall back to the built-in
 * behaviour. Same shape applies to running + done states.
 */
/** Inline summary is either plain text (uses textDim) or styled with a hex color. */
export type InlineSummary = string | {
    text: string;
    color: string;
};
export interface ToolExecutionFormatters {
    /** Override the bold tool label, e.g. "Cut Filler Words". */
    formatLabel?: (name: string, args: Record<string, unknown>) => string | undefined;
    /** Override the parenthetical detail, e.g. `"transcript.json"` → `Cut Filler Words(transcript.json)`. */
    formatDetail?: (name: string, args: Record<string, unknown>) => string | undefined;
    /**
     * Override the inline summary at done time. Return a string for the default
     * dim color, or `{ text, color }` to render in a custom color (e.g. ezboss
     * uses this to randomise the "dispatched" color per call).
     */
    formatInline?: (name: string, result: string, isError: boolean) => InlineSummary | undefined;
}
interface ToolRunningProps {
    status: "running";
    name: string;
    args: Record<string, unknown>;
    /** Live progress output (e.g., bash streaming stdout). */
    progressOutput?: string;
    /** Animate the running indicator until this timestamp, then settle static. */
    animateUntil?: number;
    formatters?: ToolExecutionFormatters;
    marginTop?: number;
}
interface ToolDoneProps {
    status: "done";
    name: string;
    args: Record<string, unknown>;
    result: string;
    isError: boolean;
    details?: unknown;
    formatters?: ToolExecutionFormatters;
    marginTop?: number;
}
type ToolExecutionProps = ToolRunningProps | ToolDoneProps;
export declare function ToolExecution(props: ToolExecutionProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=ToolExecution.d.ts.map