import React from "react";
export interface RadioOption {
    label: string;
    value: string | number;
    disabled?: boolean;
}
export interface RadioButtonGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "children"> {
    /**
     * Array de opciones para renderizar radios automáticamente
     */
    options: RadioOption[];
    /**
     * Valor seleccionado (controlado)
     */
    value?: string | number;
    /**
     * Callback cuando cambia la selección
     * Puede recibir un valor directo o un evento (para compatibilidad con react-hook-form)
     */
    onChange?: ((value: string | number) => void) | React.ChangeEventHandler<HTMLInputElement>;
    /**
     * Posición del label para todas las opciones
     */
    labelPosition?: "left" | "right";
    /**
     * Tamaño de los radio buttons
     */
    size?: "sm" | "md" | "lg";
    /**
     * Mensaje de error a mostrar
     */
    error?: string;
    /**
     * Dirección del layout: vertical (columna) o horizontal (fila)
     */
    direction?: "vertical" | "horizontal";
    /**
     * Espaciado entre opciones
     */
    gap?: "sm" | "md" | "lg";
    /**
     * Nombre del campo (para react-hook-form)
     */
    name?: string;
    /**
     * Estado deshabilitado
     */
    disabled?: boolean;
    /**
     * Callback cuando pierde el foco
     * Puede recibir un evento (para compatibilidad con react-hook-form) o ser una función sin parámetros
     */
    onBlur?: (() => void) | React.FocusEventHandler<HTMLInputElement>;
    /**
     * Si es true, el radio group será de solo lectura. Las opciones no seleccionadas se verán deshabilitadas
     * y la seleccionada se verá igual, pero no se podrá cambiar el valor.
     * Por defecto es false.
     */
    readOnly?: boolean;
}
export declare const RadioButtonGroup: React.ForwardRefExoticComponent<RadioButtonGroupProps & React.RefAttributes<HTMLInputElement>>;
//# sourceMappingURL=RadioButtonGroup.d.ts.map