import React from "react"; import type { IconColorNames, IconNames } from "@jobber/design"; export interface BaseListItemProps { /** * The ID of the list item. This is important for React to handle efficient * re-rendering of list items. */ readonly id: number | string; } export interface ListItemProps extends BaseListItemProps { /** * Subdued text under the `content` prop. */ readonly caption?: string; /** * List item content. This accepts a string for a simple content and an array * for a multi line content. * This supports basic markdown node types such as `_italic_` and `**bold**`. */ readonly content?: string | string[]; /** * Shows an icon on the left side of the contents. */ readonly icon?: IconNames; /** * Changes the color of the icons. */ readonly iconColor?: IconColorNames; /** * Highlights the list item with the lightest green icon. This communicates * that the line item needs attention. */ readonly isActive?: boolean; /** * This determines how and when to group the list items */ readonly section?: string; /** * Adds a heading. */ readonly title?: string; /** * This turns the list item into a clickable link. */ readonly url?: string; /** * A numeric value of a row. This always shows up in the right side of the row * with a text aligned to the right. */ readonly value?: string; /** * Callback when a list item gets clicked. */ onClick?(event: React.MouseEvent): void; } export declare function ListItem(props: T & ListItemProps & { readonly customRenderItem?: (item: T) => React.ReactNode; readonly customItemStyles?: boolean; }): React.JSX.Element;