import { default as React, ChangeEvent, InputHTMLAttributes } from 'react';
import { RadioValue } from './RadioGroupContext';
/**
* @figmaNode wXrXt5uKNNzV2DnQCgyYZH#15385-19720
* Figma "Radio" / `_BASE_Radiobutton` (circle 20px, 40px touch). Figma **Selected** (on/off) ←
* `checked` (or the surrounding `StyledRadioGroup`); Figma **State** (Enabled/Hovered/Focused/
* Pressed/Error/Disabled/Read-only) ← native hover/focus + `error`/`disabled`/`readOnly`. Checked
* ring + dot = `gama-500` #168181, unchecked border = `delta-500`, disabled = `delta-300`,
* read-only = unchecked ring `delta-300` / checked ring+dot `delta-500` (node 35046-162573/162576).
*/
export type StyledRadioProps = {
/** @figmaProp none — the group value this radio represents */
value?: RadioValue;
/** @figmaProp none — test hook */
dataTest?: string;
className?: string;
/** @figmaProp none — app size (Figma circle is 20px) */
size?: 'small' | 'medium';
/** @figmaProp State = true→"Error" */
error?: boolean;
/** @figmaProp State = true→"Read-only" (unchecked ring delta-300 / checked ring+dot delta-500) */
readOnly?: boolean;
/** @figmaProp Selected = true→"on" | false→"off" */
checked?: boolean;
onChange?: (event: ChangeEvent, checked: boolean) => void;
/**
* Renders the identical visual circle/dot (same classes/data-attrs — no visual change) with NO
* real `` at all, for use as a pure state indicator inside a widget that already owns
* selection itself (e.g. `StyledInteractiveChip`, whose `clickable` chip handles the click — this
* radio is `pointer-events-none` there already). A real `` nested inside
* that chip's `role="button"` is a genuine axe `nested-interactive` violation; see
* `StyledCheckbox`'s identical `decorative` prop for the full rationale.
*/
decorative?: boolean;
} & Omit, 'value' | 'className' | 'size' | 'checked' | 'onChange' | 'type'>;
/**
* Native `` (replaces `@base-ui/react`). Uses the surrounding
* `StyledRadioGroup` context for name/selection when present, else the standalone `checked` prop.
* SCSS module (ripple/pseudo-elements — GUD-003) is driven via `data-*` from React. TASK-201.
*/
export declare const StyledRadio: React.ForwardRefExoticComponent<{
/** @figmaProp none — the group value this radio represents */
value?: RadioValue;
/** @figmaProp none — test hook */
dataTest?: string;
className?: string;
/** @figmaProp none — app size (Figma circle is 20px) */
size?: "small" | "medium";
/** @figmaProp State = true→"Error" */
error?: boolean;
/** @figmaProp State = true→"Read-only" (unchecked ring delta-300 / checked ring+dot delta-500) */
readOnly?: boolean;
/** @figmaProp Selected = true→"on" | false→"off" */
checked?: boolean;
onChange?: (event: ChangeEvent, checked: boolean) => void;
/**
* Renders the identical visual circle/dot (same classes/data-attrs — no visual change) with NO
* real `` at all, for use as a pure state indicator inside a widget that already owns
* selection itself (e.g. `StyledInteractiveChip`, whose `clickable` chip handles the click — this
* radio is `pointer-events-none` there already). A real `` nested inside
* that chip's `role="button"` is a genuine axe `nested-interactive` violation; see
* `StyledCheckbox`'s identical `decorative` prop for the full rationale.
*/
decorative?: boolean;
} & Omit, "value" | "className" | "onChange" | "size" | "type" | "checked"> & React.RefAttributes>;