import { ReactElement, FocusEventHandler, MouseEvent } from 'react';
import { FieldComponentProps } from '@cezembre/forms';
import { IconName } from './icon';
import { ButtonSize, ButtonShape, ButtonTheme } from './button';
export interface RadioOption<V = unknown> {
    value: V;
    element?: ReactElement | string | number;
}
export interface RadioOptionProps<V = unknown> {
    option?: RadioOption<V>;
    onClick?: (event: MouseEvent<HTMLButtonElement>) => unknown;
    onFocus?: FocusEventHandler<HTMLButtonElement>;
    onBlur?: FocusEventHandler<HTMLButtonElement>;
    active?: boolean;
    size?: ButtonSize;
    shape?: ButtonShape;
    theme?: ButtonTheme;
    leftIcon?: IconName;
    rightIcon?: IconName;
}
export interface Props<V = unknown> extends FieldComponentProps {
    label?: string;
    options?: RadioOption<V>[];
    canReset?: boolean;
    instructions?: ReactElement | string;
}
export default function Radio<V = unknown>({ value, error, warning, isActive, name, onChange, label, options, canReset, instructions, }: Props<V>): ReactElement;
