import { HTMLAttributes, ReactNode } from 'react';
export declare enum ImageType {
    DEVICE = "deviceImage",
    APP = "appImage",
    ICON = "icon"
}
export declare enum ListItemType {
    PLAIN = "plain",
    NAV = "nav",
    LINK = "link",
    BUTTON_STYLED_AS_LINK = "button",
    TOGGLE = "toggle"
}
export declare enum ListSize {
    SMALL = "small",
    LARGE = "large"
}
export declare enum ListBackground {
    PRIMARY = "primary",
    SECONDARY = "secondary",
    NONE = "none"
}
export declare enum ListStyle {
    DIVIDER = "divider",
    CONTAIN = "contain",
    SPAN = "span",
    NONE = "none"
}
export interface ListItem {
    /** Primary label text for the list item. */
    label: string;
    /** The type of list item — determines inner content structure. */
    type: ListItemType;
    /** Leading icon — pass an SVG ReactNode. Only used when imageType is 'icon'. */
    icon?: ReactNode;
    /** Optional body text displayed below the label. */
    optionalBody?: ReactNode;
    /** Image source URL for device or app image types. */
    image?: string;
    /** The type of leading image decoration. */
    imageType?: ImageType;
    /** Accessible label for the leading image or icon. */
    imageA11yLabel?: string;
    /** URL for nav and link item types. */
    href?: string;
    /** Force focus state on the nav anchor or link. */
    focused?: boolean;
    /** Text for the trailing link or button-styled-as-link. */
    linkText?: string;
    /** Unique identifier — required for toggle items and used for image/body IDs. */
    id?: string;
    /** Whether the item is disabled (used by toggle and link sub-components). */
    disabled?: boolean;
    /** Whether the toggle is checked (only applies to toggle type). */
    toggleChecked?: boolean;
    /** Chevron icon — pass an SVG ReactNode for nav items. */
    chevronIcon?: ReactNode;
}
export interface ListsProps extends Omit<HTMLAttributes<HTMLUListElement>, 'children' | 'style'> {
    /** Array of list items to render. Items without a label are filtered out. */
    listItems: ListItem[];
    /** Size of the list — affects typography and image dimensions. */
    size?: ListSize;
    /** Background color of list items. */
    background?: ListBackground;
    /** Visual style of the list — divider, contain, span, or none. */
    listStyle?: ListStyle;
    /** Whether contain items have elevation. Only valid when style is 'contain' and background is not 'none'. */
    elevation?: boolean;
    /** Enable inverse (dark background) styling via data-inverse. */
    inverse?: boolean;
}
//# sourceMappingURL=Lists.types.d.ts.map