import type { ReactElement } from "react"; /** Non-preview state a stage can be in: pick the icon/wording/download combo that fits. */ export type MediaStatusTone = "neutral" | "warning"; /** Props for the shared no-preview/error/missing panel — vary icon/wording/download, never the layout. */ export interface MediaStatusPanelProps { /** Rendered at 48px, `aria-hidden`; tinted by `tone`. */ icon: ReactElement; /** File/item name shown as the panel's headline. */ label: string; /** Body text under the headline. */ message: string; /** Optional extra line under `message`. */ hint?: string; /** Shows the download button when set; omit to render no download action. */ downloadHref?: string; /** Download button's visible text and accessible name. */ downloadLabel: string; /** "warning" renders `role="alert"` and the warning icon tint — use for error/missing/denied states. */ tone?: MediaStatusTone; /** Root `data-testid`. */ testId?: string; /** Overrides the download button's own testid; defaults to `${testId}-download`. */ downloadTestId?: string; }