import { FocusEventHandler, MouseEvent, ReactElement } from 'react';
import { FieldComponentProps } from '@cezembre/forms';
import { IconName } from './icon';
import { ButtonShape, ButtonSize, 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 type RadioOrientation = 'horizontal' | 'vertical';
export interface RadioProps<V = unknown> extends FieldComponentProps<V | undefined> {
    label?: string;
    options?: RadioOption<V>[];
    canReset?: boolean;
    instructions?: ReactElement | string;
    orientation?: RadioOrientation;
    comparisonFn?: (a: V, b?: V) => boolean;
}
export declare function Radio<V = unknown>({ value, error, warning, isActive, name, onChange, label, options, canReset, instructions, orientation, comparisonFn, }: RadioProps<V>): ReactElement;
