import { ReactNode } from 'react';
/** Background fill style for the list container. */
export type ListBackground = 'primary' | 'secondary' | 'elevation';
/** Type of leading decoration image/icon. */
export type LeadingDecorationType = 'device' | 'app' | 'avatar' | 'icon';
/** Position of the divider relative to the list item. */
export type DividerPosition = 'top' | 'bottom' | 'none';
/** Optional copy row displayed below the label. */
export interface ListItemOptionalCopy {
    /** Text content of the optional copy row. */
    text: string | ReactNode;
    /** Optional icon element rendered before the text. */
    icon?: ReactNode;
    /** Accessible label for the icon. When set, the icon is not aria-hidden. */
    iconA11yLabel?: string;
}
export interface ListItemProps {
    /** Main text label for the list item. Required. */
    label: string;
    /** Unique ID for the label element (used for ARIA references). */
    labelId: string;
    /** Array of optional copy rows displayed below the label (max two). */
    body?: ListItemOptionalCopy[];
    /** Status label element rendered after the body content. */
    status?: ReactNode;
    /** Type of leading decoration to display. */
    leadingDecorationType?: LeadingDecorationType;
    /** Image URL for non-icon leading decorations (device, app, avatar). */
    leadingImage?: string;
    /** Icon element for icon-type leading decoration. */
    leadingIcon?: ReactNode;
    /** Accessible label for the leading decoration. */
    leadingDecorationA11yLabel?: string;
    /** Where to render the divider. Defaults to `'bottom'`. */
    dividerPosition?: DividerPosition;
    /** Trailing content (button, toggle, icon, etc.) rendered at the end. */
    trailingContent?: ReactNode;
    /** Navigation URL — wraps content in an anchor when provided. */
    navigationUrl?: string;
    /** Enable inverse (dark background) styling. */
    inverse?: boolean;
    /** Force focus state for demos. */
    focused?: boolean;
    /** Additional CSS class names. */
    className?: string;
    /** Accessible children — use for custom content instead of the default template. */
    children?: ReactNode;
}
export interface ListProps {
    /** List item elements to render inside the `<ul>`. */
    children?: ReactNode;
    /** Background fill style for the list. */
    background?: ListBackground;
    /** Enable inverse (dark background) styling. */
    inverse?: boolean;
    /** Additional CSS class names. */
    className?: string;
}
//# sourceMappingURL=List.types.d.ts.map