export type RadioButtonSize = 'xs';
export type RadioButtonColor = 'blue' | 'green' | 'red' | 'yellow' | 'neutral';
export type RadioButtonState = 'unchecked' | 'checked' | 'uncheckedHover' | 'checkedHover' | 'uncheckedActive' | 'checkedActive' | 'disabledUnchecked' | 'disabledChecked';
export interface RadioButtonBaseProps {
    /** Texto del label del radio button */
    label?: string;
    /** Tamaño del radio button */
    size?: RadioButtonSize;
    /** Color del radio button */
    color?: RadioButtonColor;
    /** Si el radio button está deshabilitado */
    disabled?: boolean;
    /** Clases CSS adicionales para el contenedor */
    className?: string;
    /** Clases CSS adicionales para el label */
    labelClassName?: string;
    /** ID único del radio button */
    id?: string;
    /** Si el radio button está seleccionado */
    checked?: boolean;
    /** Callback cuando cambia el estado */
    onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
    /** Nombre del grupo de radio buttons */
    name?: string;
}
export interface RadioButtonProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'color'>, RadioButtonBaseProps {
}
export interface RadioButtonGroupProps {
    /** Array de opciones para el grupo de radio buttons */
    options: RadioButtonOption[];
    /** Valor seleccionado actualmente */
    value?: string;
    /** Callback cuando cambia la selección */
    onChange?: (value: string) => void;
    /** Tamaño de todos los radio buttons */
    size?: RadioButtonSize;
    /** Color de todos los radio buttons */
    color?: RadioButtonColor;
    /** Si todos los radio buttons están deshabilitados */
    disabled?: boolean;
    /** Orientación del grupo */
    orientation?: 'horizontal' | 'vertical';
    /** Clases CSS adicionales */
    className?: string;
    /** Nombre del grupo */
    name?: string;
}
export interface RadioButtonOption {
    /** Valor único de la opción */
    value: string;
    /** Texto a mostrar */
    label: string;
    /** Si esta opción está deshabilitada */
    disabled?: boolean;
}
export interface UseRadioButtonReturn {
    /** Estado actual del radio button */
    state: RadioButtonState;
    /** ID único generado */
    radioId: string;
    /** Si está en estado activo (presionado) */
    isActive: boolean;
    /** Si está en estado hover */
    isHovered: boolean;
    /** Handlers para eventos del mouse */
    handlers: {
        handleMouseDown: () => void;
        handleMouseUp: () => void;
        handleMouseEnter: () => void;
        handleMouseLeave: () => void;
        handleClick: (e: React.MouseEvent) => void;
    };
}
export interface UseRadioButtonGroupReturn {
    /** Valor seleccionado actualmente */
    selectedValue: string | undefined;
    /** Handler para cambiar la selección */
    handleChange: (value: string) => void;
}
//# sourceMappingURL=radiobutton.d.ts.map