import { ReactNode } from 'react';
import { StatusLabelProps } from '../status-label/StatusLabel.types';
export type LeadingDecoration = 'device' | 'app' | 'avatar' | 'icon';
export type DividerPosition = 'top' | 'bottom' | 'none';
export interface ListItemOptionalCopy {
    /** Text content for the optional copy line. */
    text: ReactNode;
    /** Optional leading icon (SVG node) for the copy line. */
    icon?: ReactNode;
    /** Accessibility label for the icon. If unset, the icon is decorative. */
    iconA11yLabel?: string;
}
export interface ListItemProps {
    /** Primary label text for the list item. Required. */
    label: string;
    /** ID for the label element — used for ARIA descriptions. */
    labelId: string;
    /** Array of optional copy lines (max two). */
    body?: ListItemOptionalCopy[];
    /** Optional status label configuration. */
    status?: StatusLabelProps;
    /** Type of leading decoration to display. */
    leadingDecorationType?: LeadingDecoration;
    /** Image URL for device, app, or avatar leading decoration. */
    leadingImage?: string;
    /** Icon node (SVG) for icon-type leading decoration. */
    leadingIcon?: ReactNode;
    /** Accessibility label for the leading decoration. */
    leadingDecorationA11yLabel?: string;
    /** Position of the divider. Defaults to 'bottom'. */
    dividerPosition?: DividerPosition;
    /** Trailing content slot (e.g., buttons, icons, toggles). */
    trailingContent?: ReactNode;
    /** Navigation URL — wraps the item content in an anchor when provided. */
    navigationUrl?: string;
    /** Whether to render in inverse (dark background) mode. */
    inverse?: boolean;
    /** Force focus state for testing/Figma. */
    focused?: boolean;
    /** Additional className for the root element. */
    className?: string;
}
//# sourceMappingURL=ListItem.types.d.ts.map