import type { ElementType, FC, ReactNode } from "react"; import { type Props as InstrumentCardProps } from "../InstrumentCard/InstrumentCard"; import { type ActionType } from "./ActionIcon"; export type { ActionType }; /** * `Omit` distributes over the union so `InstrumentCard`'s discriminated * `state`/`errorMessage` pairing survives; a plain `Omit` would collapse it. */ type DistributiveOmit = T extends unknown ? Omit : never; export type ActionCardMetadata = { label: string; /** Bordered instead of flat — used for schedule information. */ bordered?: boolean; }; export type Props = { type: ActionType; /** * Replaces the icon on **measurement** actions only; ignored for the other * four types, whose icons are fixed. */ iconUrl?: string | null; title: string; metadata?: ActionCardMetadata[]; /** Always rendered in the compact variant, so `variant` is not accepted. */ instruments?: DistributiveOmit[]; actions?: ReactNode; draggable?: boolean; /** * Element for the title. `variant` controls the visual size; this controls * the document outline, which only the consuming page knows. * @default "h3" */ titleAs?: ElementType; /** "list" drops the shadow so the card sits flush inside a list container. */ variant?: "default" | "compact" | "list"; onClick?: () => void; className?: string; }; export declare const ActionCard: FC;