import { type ReactNode } from "react"; export interface VendoToastAction { label: string; onAction(): void; /** Primary renders as the filled approve-style button. */ primary?: boolean; } export interface VendoToastInput { text: string; kind?: "info" | "approval-required"; state?: "info" | "error"; hint?: string; actions?: VendoToastAction[]; /** Auto-dismiss after this many ms; 0 keeps the toast until dismissed. Defaults to 6000, or sticky for approval-required. */ durationMs?: number; } /** Withdraw every queued toast (host page teardown, tests). */ export declare function dismissAllVendoToasts(): void; /** Raise a toast. Returns a dismiss handle. */ export declare function vendoToast(input: VendoToastInput): () => void; export interface VendoToastsProps { placement?: "bottom-right" | "bottom-left" | "top-right"; /** Also surface newly parked approvals as toasts (polls /approvals/pending). */ approvals?: boolean; pollMs?: number; } /** 08-ui §4 chrome — mount once per page. */ export declare function VendoToasts({ placement, approvals, pollMs }?: VendoToastsProps): ReactNode;