import { ReactNode } from 'react'; import { BadgeStateProps } from '../../../../../../../../lib/components/BadgeState'; import { SwitchProps } from '../../../../../../../../lib/components/Switch'; import { RadioFieldProps } from '../form/Radio/types'; export type ListRowContent = 'upward' | 'downward'; export type ListRowTrackline = { /** Number (etapa numerada), Check (etapa concluída) ou Badge State (etapa com status). Figma: Track line. */ marker?: 'number' | 'check' | 'badge'; /** Número da etapa, no marcador Number. */ number?: number; /** Status do BadgeState, no marcador Badge State. */ status?: BadgeStateProps['status']; /** Última etapa: sem o traço (Dash) que liga à próxima. */ last?: boolean; }; export type ListRowLink = { label: string; onClick?: () => void; href?: string; target?: string; }; export type ListRowBadge = { status: BadgeStateProps['status']; text: string; variant?: BadgeStateProps['variant']; }; export type ListRowProps = { label: string; /** Segunda linha (Multiple line no Figma). Sem ela a linha tem 56px; com ela, 80px. */ description?: string; /** Para cima (label em destaque, padrão) ou para baixo (label pequeno em cima, valor em destaque embaixo). Figma: Downward Content. */ content?: ListRowContent; /** Leading com ícone: ícone 20px num quadrado de 44px. */ icon?: ReactNode; /** Leading com parceiro: a thumb do parceiro, recortada em 40x40 com raio 8. */ partner?: ReactNode; /** Leading com seleção: o `Radio.Field` da lib, sem label (a linha é o label). */ radio?: Omit; /** Leading com trackline: marcador ligado à próxima etapa por um traço. */ trackline?: ListRowTrackline; /** Trailing com conteúdo secundário: rótulo alinhado à direita. */ secondaryLabel?: string; /** Segunda linha do conteúdo secundário. */ secondaryDescription?: string; /** Trailing com link: um `LinkButton` small. */ link?: ListRowLink; /** Trailing com badge: um `BadgeState`. */ badge?: ListRowBadge; /** Trailing com ícone: o chevron que indica que a linha leva a outra tela. */ chevron?: boolean; /** Trailing com toggle: o `Switch` da lib, sem label (passe `aria-label`). */ toggle?: Omit; /** Estado de carregamento, com o mesmo leading e o mesmo número de linhas do conteúdo final. Figma: Skeleton. */ skeleton?: boolean; /** A linha inteira leva a outra tela: a raiz vira um `` (`as` é ignorado). Ignorado com `skeleton`. */ href?: string; target?: string; /** A linha inteira é clicável: vira um botão (`role="button"`). Não combine com link, toggle ou radio. Ignorado com `skeleton`. */ onClick?: () => void; /** Tag da raiz. @default 'div' */ as?: 'div' | 'li'; className?: string; 'data-testid'?: string; }; export declare const ListRow: (props: ListRowProps) => import("react/jsx-runtime").JSX.Element;