import { type ReactNode } from "react"; import type { VendoAppEmbedProps, VendoApprovalEmbedProps, VendoToolResultProps } from "../embeds.js"; /** The resolved approval card: the ask's own M1 shape, settled — the headline * stays, muted by the shell, and the resolution is its quiet line. Same shell * as the consent card (spec §16 — one shell everywhere). * * A FAILED receipt keeps its own register: the thread's danger ✕ in front of * the line, and the line in danger colour. Muting the failure to the same grey * as "Approved — ran" left the WORDS as the only difference between a call * that landed and one that didn't, on a receipt people scan rather than read. */ export declare function ResolvedApprovalCard({ summary, ok, line, detail }: { summary: string; ok: boolean; line: string; detail?: ReactNode; }): import("react").JSX.Element; /** * Approve/deny for a guarded call parked from a BYO agent loop * (`vendo/approval-ref@1`). The wire owns the state — this embed polls * `GET /approvals/:id` and resolves in place to the executed outcome, * "declined", or "expired" (the frozen `VendoApprovalEmbedState` vocabulary). */ export declare function VendoApprovalEmbed({ refValue, theme }: VendoApprovalEmbedProps): import("react").JSX.Element; /** * Inline generated app (`vendo/app-ref@1`): the build-beat bar while the * build streams, then the live app. In-app interactions go over the wire * (`apps.call`), never through the host's agent loop. */ export declare function VendoAppEmbed({ refValue, theme }: VendoAppEmbedProps): import("react").JSX.Element; /** * The dispatcher: give it any `vendo_*` tool output and it renders the right * embed by `parseVendoToolEnvelope` — or nothing for plain data (the action * executed cleanly; the agent already consumed the result). */ export declare function VendoToolResult({ output, theme }: VendoToolResultProps): import("react").JSX.Element | null;