import { IconName } from '../Icon/IconName'; import * as React from 'react'; export type ReorderableListingItemMode = 'parent' | 'subitem'; export type ReorderableListingItemState = 'default' | 'hover' | 'disabled' | 'hidden' | 'dragging'; export interface ReorderableListingItemOwnProps { /** * The row label. Rendered single-line with an ellipsis on overflow. */ label: React.ReactNode; /** * Leading icon. Swappable; defaults to the placeholder icon. * @default 'shp-placeholder' */ icon?: IconName; /** * Renders the leading icon. * @default true */ showIcon?: boolean; /** * Custom leading content (e.g. an image thumbnail). When provided it replaces the `icon`. */ media?: React.ReactNode; /** * Custom action-area content (e.g. multiple buttons). When provided it replaces the built-in * hide button — the consumer owns the actions, including any hide/show control. */ actions?: React.ReactNode; /** * `parent` renders a drag handle, `subitem` renders an indent marker and is not draggable. * @default 'parent' */ mode?: ReorderableListingItemMode; /** * Visual state of the row. * @default 'default' */ state?: ReorderableListingItemState; /** * Renders the hide action button. Ignored in `disabled` state. * @default true */ showHide?: boolean; /** * Callback fired when the hide action is toggled. */ onHideToggle?: () => void; /** * Drag handle node injected by the container (e.g. a React Aria drag button). * When omitted a plain visual handle is rendered. Ignored for subitems. */ dragHandle?: React.ReactNode; /** * Accessible label for the hide action when the row is visible. */ hideLabel?: string; /** * Accessible label for the hide action when the row is hidden. */ showLabel?: string; /** * Additional class name. */ className?: string; } export interface ReorderableListingItemProps extends Omit, 'className'>, ReorderableListingItemOwnProps { } export declare const ReorderableListingItem: React.ForwardRefExoticComponent>;