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 {};