import React from 'react';
/**
 * State variants for the radio component
 */
export type RadioState = 'default' | 'disabled';
/**
 * Size variants for the radio component
 */
export type RadioSize = 'sm' | 'md';
/**
 * Orientation for Radio.Group layout
 */
export type RadioGroupOrientation = 'vertical' | 'horizontal';
/**
 * Radio component props
 */
export interface RadioProps extends Omit<React.HTMLAttributes<HTMLInputElement>, 'onChange' | 'size'> {
    id?: string;
    name?: string;
    value: string | number;
    checked?: boolean;
    onChange?: (checked: boolean, value: string | number) => void;
    label?: React.ReactNode;
    description?: React.ReactNode;
    state?: RadioState;
    size?: RadioSize;
    className?: string;
}
/**
 * Radio.Group component props
 */
export interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLFieldSetElement>, 'onChange'> {
    value?: string | number;
    defaultValue?: string | number;
    onChange?: (value: string | number) => void;
    name?: string;
    size?: RadioSize;
    state?: RadioState;
    orientation?: RadioGroupOrientation;
    label?: React.ReactNode;
    description?: React.ReactNode;
    error?: React.ReactNode;
    required?: boolean;
    className?: string;
}
/**
 * Radio theme configuration
 */
export interface RadioTheme {
    baseStyle: string;
    inputContainerStyle: string;
    inputStyle: string;
    dotStyle: string;
    descriptionStyle: string;
    sizes: Record<RadioSize, string>;
    groupStyle?: string;
    groupHorizontalStyle?: string;
    groupDescriptionStyle?: string;
    groupErrorStyle?: string;
    groupItemsStyle?: string;
}
