import { type HTMLAttributes, type ReactNode } from "react";
import type { ToolActionReview, ToolReviewDetailsPage } from "@opengeni/sdk";
import { type OpenGeniText } from "../messages/runtime.js";
export type ToolReviewDetailsLoader = (review: ToolActionReview, path: string, offset: number) => Promise;
type Tone = "waiting" | "ok" | "failed" | "muted";
/** Shown when an older request's saved values are gone: approval is impossible, decline is not. */
export declare const UNRECOVERABLE_TEXT: (t: OpenGeniText) => string;
/** Card chrome shared by the review, its loading state and its load failure. */
export declare function ToolReviewFrame({ tone, icon, eyebrow, title, titleId, subtitle, children, footer, bare, ...rest }: {
tone: Tone;
icon: ReactNode;
eyebrow: ReactNode;
title: ReactNode;
titleId?: string | undefined;
subtitle?: ReactNode;
children?: ReactNode;
footer?: ReactNode;
bare?: boolean | undefined;
} & Omit, "title">): import("react").JSX.Element;
export declare function DeclineButton({ busy, submitting, label, onClick, }: {
busy: boolean;
submitting: boolean;
label?: string | undefined;
onClick: () => void;
}): import("react").JSX.Element;
/** One host-neutral review. All callbacks refer to the immutable action; none can edit it. */
export declare function ToolActionReviewCard({ review, onApprove, onReject, submitting, disabled, onViewDetails, pendingLabel, rejectLabel, bare, }: {
review: ToolActionReview;
onApprove?: (() => void) | undefined;
onReject?: (() => void) | undefined;
submitting?: "approve" | "reject" | null | undefined;
disabled?: boolean | undefined;
onViewDetails?: ((path: string) => void) | undefined;
pendingLabel?: string | undefined;
rejectLabel?: string | undefined;
/** Render without card chrome, e.g. inside an expanded timeline row. */
bare?: boolean | undefined;
}): import("react").JSX.Element;
/** Full-page detail content: hosts choose navigation, never a nested scrolling panel. */
export declare function ToolActionReviewDetails({ review, path: initialPath, load, onBack, manageFocus, }: {
review: ToolActionReview;
path?: string;
load: ToolReviewDetailsLoader;
onBack: () => void;
/** Hosts rendering simultaneous previews can retain their own focus. */
manageFocus?: boolean;
}): import("react").JSX.Element;
export {};