import type { ApprovalBlockVariant, AssistantType, ApprovalBatchSegment } from "./types"; export interface ApprovalBatchMessageProps extends React.HTMLAttributes { data: ApprovalBatchSegment["data"]; status?: ApprovalBatchSegment["status"]; onApprove?: (requestId?: string) => void | boolean | Promise; onReject?: (requestId?: string) => void | boolean | Promise; /** * Cap the tool-call list height so it scrolls internally while the footer * (explanations + Approve/Reject) stays pinned below. Omit for the default * chat behaviour where the whole batch grows with its content. */ maxBodyHeight?: number | string; /** Display name of the user who resolved the request; shown as "by {name}" beside the status tag. */ resolvedByName?: string | null; /** * Per-tool execution status icon (queued dots → check/cross). On in dialog messages where tool * execution is tracked live; turn off for notifications, which have no execution state and would * otherwise show the dots spinner forever after approval. Defaults to on. */ showExecutionStatus?: boolean; /** * Chat identity. Kept for prop parity with the message renderers; does NOT * drive the styling anymore — use `variant` instead. An admin can be * looking at a Fae dialog (tickets dialog client tab) and must still see * the full admin block. */ assistantType?: AssistantType; /** * Viewer variant. `'admin'` (default) = full block with command preview, * expandable args/result and tool icon. `'client'` = end-client (Fae * desktop app) card that shows ONLY the BE-generated title(s) plus the * Approve/Reject buttons or the full-text resolved pill ("Approved by * {name}") — commands and scripts are never rendered. */ variant?: ApprovalBlockVariant; /** * Render the footer Approve/Reject buttons (or the resolved-status tag). * Turn off when the host owns the actions row — e.g. the approval * notification tile. Explanation bullets still render. */ showFooterActions?: boolean; } export interface ApprovalStatusTagProps { status: ApprovalBatchSegment["status"]; resolvedByName?: string | null; inlineResolver?: boolean; } /** * Terminal-status badge for a resolved approval batch (approved / rejected / * cancelled); renders nothing while pending. With `inlineResolver` the * resolver's name is baked into the tag as a single full-text pill * ("Approved by {name}"); otherwise callers render "by {name}" as a separate * muted span. Also used by the approval notification tile, which hosts the * actions row itself (`showFooterActions={false}`). */ export declare function ApprovalStatusTag({ status, resolvedByName, inlineResolver }: ApprovalStatusTagProps): import("react").JSX.Element | null; declare const ApprovalBatchMessage: import("react").ForwardRefExoticComponent>; export { ApprovalBatchMessage }; //# sourceMappingURL=approval-batch-message.d.ts.map