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 OptionalCopy {
    text: ReactNode;
    icon?: ReactNode;
    iconA11yLabel?: string;
}
interface ListItemHsiBase {
    /** Primary label text. */
    label: string;
    /** Unique ID for the label element. */
    labelId?: string;
    /** Optional body copy lines below the label. */
    body?: OptionalCopy[];
    /** Optional status label config rendered in main content. */
    status?: StatusLabelProps;
    /** Type of leading decoration. */
    leadingDecorationType?: LeadingDecoration;
    /** Image source for device/app/avatar leading decoration. */
    leadingImage?: string;
    /** Icon ReactNode for icon leading decoration. */
    leadingIcon?: ReactNode;
    /** Accessible label for the leading decoration. */
    leadingDecorationA11yLabel?: string;
    /** Position of the divider. Defaults to 'bottom'. */
    dividerPosition?: DividerPosition;
    /** Enable inverse (dark background) styling. */
    inverse?: boolean;
    /** Force focus state for snapshot testing. */
    focused?: boolean;
    /** Optional navigation URL. */
    navigationUrl?: string;
    /** Accessible label for the trailing icon. */
    trailingIconA11yLabel?: string;
    /** Additional CSS class names. */
    className?: string;
}
export interface HsiWithTrailingIcon extends ListItemHsiBase {
    /** Trailing icon ReactNode. */
    trailingIcon: ReactNode;
    /** Trailing wifi icon ReactNode (not used). */
    trailingWifiIcon?: never;
}
export interface HsiWithWifiStatus extends ListItemHsiBase {
    /** Trailing icon (not used). */
    trailingIcon?: never;
    /** Trailing wifi status icon ReactNode. */
    trailingWifiIcon: ReactNode;
    /** Navigation URL (required for wifi status). */
    navigationUrl: string;
}
export type ListItemHsiProps = HsiWithTrailingIcon | HsiWithWifiStatus;
export {};
//# sourceMappingURL=ListItemHsi.types.d.ts.map