import { RadioProps as CoreRadioProps } from './internal/Radio';
import { DataTrackingId } from '../../types';
/**
 * Props for the Radio component
 * @property {boolean} [checked] - Controlled state
 * @property {boolean} [defaultChecked] - Uncontrolled state
 * @property {Function} [onChange] - Callback when radio is changed
 * @property {ReactElement | string} [label] - Label for Radio
 * @property {boolean} [error] - Error state for the radio
 * @property {object} [icons] - Icon overrides for checked and unchecked states
 * @property {string} [description] - Description text to display below the radio
 * @property {string} [aria-label] - Accessible label for the radio
 * @property {string} [aria-labelledby] - ID of element that labels the radio
 * @property {string} [name] - Name attribute for the radio
 * @property {string} [data-tracking-id] - Custom tracking ID for analytics
 * @extends DataTrackingId
 */
export type RadioProps = Omit<CoreRadioProps, "hideRadio"> & DataTrackingId;
/**
 * Radio component for single selection from a group of options.
 *
 * Features:
 * - Supports both controlled and uncontrolled modes
 * - Customizable icons for checked and unchecked states
 * - Error state with visual indicators
 * - Description text support
 * - Accessibility support with proper ARIA attributes
 * - Layout utility props for positioning and spacing
 * - Flexible labeling options
 * - Group support via Radio.Group
 * - Automatic tracking ID generation for analytics
 *
 * @example
 * <Radio
 *   label="Option 1"
 *   value="option1"
 *   checked={selectedValue === "option1"}
 *   onChange={(e, state) => setSelectedValue(state?.value)}
 * />
 *
 * @example
 * <Radio
 *   label="Custom styled option"
 *   value="custom"
 *   icons={{
 *     checked: CustomCheckedIcon,
 *     unchecked: CustomUncheckedIcon
 *   }}
 *   description="This option has custom styling"
 * />
 *
 * @example
 * <Radio.Group legend="Choose your preference" required>
 *   <Radio label="Option A" value="a" />
 *   <Radio label="Option B" value="b" />
 *   <Radio label="Option C" value="c" />
 * </Radio.Group>
 */
export declare const Radio: import('react').ForwardRefExoticComponent<Omit<CoreRadioProps, "hideRadio"> & DataTrackingId & import('react').RefAttributes<HTMLInputElement>> & {
    /**
     * RadioGroup component for grouping related radio options.
     *
     * Features:
     * - Groups multiple radio options together
     * - Legend support for group labeling
     * - Required field indication
     * - Accessibility support with proper fieldset semantics
     * - Layout utility props for positioning and spacing
     * - Focus and blur event handling
     * - More info support for additional context
     * - Automatic alignment based on flex direction
     *
     * @example
     * <RadioGroup legend="Choose your preference" required>
     *   <Radio label="Option A" value="a" />
     *   <Radio label="Option B" value="b" />
     *   <Radio label="Option C" value="c" />
     * </RadioGroup>
     *
     * @example
     * <RadioGroup
     *   legend="Horizontal layout"
     *   flexDirection="row"
     *   gap="4"
     * >
     *   <Radio label="Yes" value="yes" />
     *   <Radio label="No" value="no" />
     * </RadioGroup>
     */
    Group: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>, "ref"> & import('..').LayoutUtilProps & Omit<import('../../internal').FieldLabelProps, "labelProps"> & {
        required?: boolean;
        legend: string | import('react').ReactElement;
        legendProps?: Omit<import('..').FieldLabelProps, "el">;
        hideLabel?: boolean;
        error?: boolean | string | import('react').ReactElement | string[];
        errorAriaLive?: import('../../internal').HelperProps["errorAriaLive"];
        warning?: string | string[];
        description?: import('../../internal').HelperProps["description"];
        hint?: import('../../internal').HelperProps["hint"];
    } & import('react').RefAttributes<HTMLFieldSetElement>>;
};
