import { InputHTMLAttributes, HTMLAttributes } from 'react';
import { RadioButtonChangeHandler, RadioButtonValueChangeHandler } from './RadioButton';
import { IconType } from '../Icon';
import { FieldProps } from '../utils';
declare type BaseElement = HTMLInputElement;
declare type BaseProps = InputHTMLAttributes;
export interface RadioIconButtonProps extends BaseProps {
/**
* Attributes a name to the RadioIconButton.
*/
readonly name: string;
/**
* Value used to define the button text.
*/
readonly value: V;
/**
* String used to label the RadioIconButton.
*/
readonly label: string;
/**
* If `true`, the component is checked.
*/
readonly checked: boolean;
/**
* If `true`, the RadioIconButton will be disabled.
*/
readonly disabled?: boolean;
/**
* Adds an error message to the RadioIconButton.
*/
readonly error?: string;
/**
* The icon element.
*/
readonly icon: IconType;
/**
* Native change handler that can be used by formik etc.
*/
readonly onChange?: RadioButtonChangeHandler;
/**
* Smooth typed value change handler.
*/
readonly onValueChange?: RadioButtonValueChangeHandler;
}
export declare function RadioIconButton({ label, checked, disabled, onChange, onValueChange, icon, onFocus, onPointerUp, onPointerDown, ...rest }: RadioIconButtonProps): JSX.Element;
export interface RadioIconGroupOption {
readonly value: V;
readonly label: string;
readonly disabled?: boolean;
readonly icon: IconType;
}
declare type GroupBaseElement = HTMLDivElement;
declare type GroupBaseProps = HTMLAttributes;
export interface RadioIconGroupProps extends GroupBaseProps {
readonly options: ReadonlyArray>;
readonly name?: string;
readonly value: V;
readonly onChange?: RadioButtonChangeHandler;
readonly onValueChange?: RadioButtonValueChangeHandler;
readonly error?: string;
}
export declare function RadioIconGroup({ options, name, value, onChange, onValueChange, error, ...rest }: RadioIconGroupProps): JSX.Element;
export declare const RadioIconGroupField: (props: FieldProps & RadioIconGroupProps) => import("react").ReactElement | null;
export {};