import type { ReactElement } from "react"; /** The viewer chrome's icon button — tooltip, toggle and download-anchor variants. */ export interface ViewerIconButtonProps { /** Accessible name; also the tooltip text when `hint` is omitted. */ label: string; /** Keyboard-shortcut hint appended to the tooltip, e.g. "F" renders "Fullscreen (F)". */ hint?: string; /** Rendered inside the button; the caller sizes it (`aria-hidden` is not applied automatically). */ icon: ReactElement; /** Ignored when `href` is set — the button renders as a download anchor instead. */ onClick?: () => void; /** Renders as a download anchor instead of a click handler when set. */ href?: string; /** Chakra `IconButton` size token. @default "md" */ size?: "sm" | "md" | "lg"; /** Always-filled circular treatment, for the large prev/next nav buttons. */ round?: boolean; /** Toggle-button state, reflected as `aria-pressed`. */ pressed?: boolean; /** @default false */ isDisabled?: boolean; /** Forwarded to `data-testid`. */ testId?: string; }