import { MouseEvent, ReactElement, ReactNode } from 'react'; interface ChipClasses { root?: string; label?: string; avatar?: string; icon?: string; deleteIcon?: string; } /** * @figmaNode wXrXt5uKNNzV2DnQCgyYZH#13248-31089 * Figma "Tag Chip" / `_BASE_Tag`. Figma **State** (Enabled/Hovered/Focused/Read only/Disabled) is * driven by native hover/focus + `readOnly`/`disabled` (or forced via `data-hovered`/`data-focus`). * Figma **Type** (Standard/User tag/Group tag/Checkbox/Radio) is expressed via slots (`avatar`/`icon`/ * `label` content) rather than an enum. **Selected** (on/off) is a checkbox/radio concern (see * StyledInteractiveChip). Non-annotated props are behavioral / MUI `Chip` API-parity (DEC-003). */ export interface StyledChipProps { /** @figmaProp none — test hook */ dataTest: string; /** @figmaProp Text (the chip label) */ label?: ReactNode; /** @figmaProp none — cosmetically inert; the design always renders white body + delta border */ variant?: 'filled' | 'outlined'; /** @figmaProp none — cosmetically inert */ color?: string; /** @figmaProp none — app size (Figma _BASE_Tag is a single 32px height; `small`=24 is app-specific) */ size?: 'small' | 'medium'; /** @figmaProp State = true→"Disabled" */ disabled?: boolean; /** @figmaProp State = true→"Read only" */ readOnly?: boolean; /** @figmaProp State = drives interactive Hovered/Focused/Pressed via native events */ clickable?: boolean; /** @figmaProp Avatar/start icon slot (Type=User tag etc.) */ icon?: ReactElement; /** @figmaProp Avatar slot (Type=User tag) */ avatar?: ReactElement; /** @figmaProp Clear element */ deleteIcon?: ReactElement; /** @figmaProp Clear element (present → chip shows the delete/Clear button) */ onDelete?: (event: MouseEvent) => void; onClick?: (event: MouseEvent) => void; /** Forwarded to the chip root — e.g. `stopPropagation` so a chip click in a row doesn't select the row. */ onMouseDown?: (event: MouseEvent) => void; onMouseUp?: (event: MouseEvent) => void; className?: string; classes?: ChipClasses; sx?: unknown; tabIndex?: number; 'aria-label'?: string; /** Overrides the default `role="button"`/no-role logic — for `StyledInteractiveChip`'s * checkbox/radio chip, whose inner control is `decorative`/`aria-hidden` (a real, even hidden, * `` nested inside this chip's own interactive root is an axe `nested-interactive` * violation), so the chip root itself must carry the real checkbox/radio semantics. Unlike the * `clickable`-driven `role="button"`, this is rendered **regardless of `readOnly`** — a read-only * checkbox/radio still needs its role + checked state announced, just not `role="button"` (which * implies operability). */ role?: 'checkbox' | 'radio'; /** Paired with `role` above — the checked state of a checkbox/radio chip. */ 'aria-checked'?: boolean; /** Paired with `role` above — mirrors `readOnly` for AT that specifically looks for `aria-readonly` * on a checkbox/radio (unlike `role="button"`, `aria-readonly` doesn't imply the role disappears). */ 'aria-readonly'?: boolean; /** @figmaProp State = present→"Hovered" (forced for state tables) */ 'data-hovered'?: string; /** @figmaProp State = present→"Focused" (forced for state tables) */ 'data-focus'?: string; } /** * Native replacement for MUI `Chip` — a styled element with optional avatar/icon start slot, a * label, and a delete button. Interactive hover/focus/active visuals also respond to the * `data-hovered`/`data-focus` attributes MUI set (state tables rely on them). Public props + * `classes`/`sx` slots preserved (DEC-003). TASK-101a. */ export declare const StyledChip: import('react').ForwardRefExoticComponent>; export {};