import { FC, InputHTMLAttributes, ChangeEventHandler, HTMLAttributes } from 'react';
import { FieldProps } from '../utils';
export interface RadioButtonAtomProps {
readonly checked: boolean;
readonly partial: boolean;
readonly error: string;
}
export declare const RadioButtonAtom: FC;
/**
*
* The input area which the user can interact with,
* which spans the entire button + label area.
*
*/
export declare const RadioNative: import("styled-components").StyledComponent<"input", import("styled-components").DefaultTheme, {}, never>;
/**
*
* The container for the entire button + label,
* with the input area as last child (catching events).
*
*/
export declare const RadioContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
readonly disabled: boolean;
readonly checked: boolean;
readonly partial: boolean;
readonly pressed: boolean;
readonly hovered: boolean;
readonly visibleFocus: boolean;
}, never>;
declare type BaseElement = HTMLInputElement;
declare type BaseProps = InputHTMLAttributes;
declare type ColumnDirection = 'column' | 'row';
export declare type RadioButtonChangeHandler = ChangeEventHandler;
export declare type RadioButtonValueChangeHandler = (value: V) => void;
export interface RadioButtonProps extends BaseProps {
/**
* Attributes a name to the RadioButton.
*/
readonly name?: BaseProps['name'];
/**
* `class` to be passed to the component.
*/
readonly className?: BaseProps['className'];
/**
* The value of the component.
*/
readonly value: V;
/**
* String used to label the RadioButton.
*/
readonly label: string;
/**
* If `true`, the component is checked.
*/
readonly checked: boolean;
/**
* If `true`, the component is partially checked.
*/
readonly partial?: boolean;
/**
* If `true`, the switch will be disabled.
*/
readonly disabled?: boolean;
/**
* Signifies error by turning the checkbox red.
*/
readonly error?: string;
/**
* Native change handler that can be used by formik etc.
*/
readonly onChange?: RadioButtonChangeHandler;
/**
* Smooth typed value change handler.
*/
readonly onValueChange?: RadioButtonValueChangeHandler;
/**
* If RadioButton exist in a `ContentListItemWithHover`, RadioButton get this props.
* RadioButton shows hover effect if the `ContentListItemWithHover` is on hover state.
*/
readonly hovered?: boolean;
}
export declare function RadioButton({ label, checked, partial, disabled, error, onChange, onValueChange, hovered, onFocus, onPointerUp, onPointerDown, ...rest }: RadioButtonProps): JSX.Element;
export interface RadioButtonGroupOption {
readonly value: V;
readonly label: string;
readonly disabled?: boolean;
}
declare type GroupBaseElement = HTMLDivElement;
declare type GroupBaseProps = HTMLAttributes;
export interface RadioButtonGroupProps extends GroupBaseProps {
/**
* `class` to be passed to the component.
*/
readonly className?: GroupBaseProps['className'];
readonly name?: string;
readonly options: ReadonlyArray>;
readonly value: V;
readonly onChange?: RadioButtonChangeHandler;
readonly onValueChange?: RadioButtonValueChangeHandler;
readonly error?: string;
/**
* Override theme's default setting for `compact` if set.
*/
readonly compact?: boolean;
/**
* Aligns the menu item as a column or row.
* Default: `column`
*/
readonly direction?: ColumnDirection;
}
export declare function RadioButtonGroup({ options, name, value, onChange, onValueChange, error, compact: compactFromProps, direction, ...rest }: RadioButtonGroupProps): JSX.Element;
export declare const RadioButtonGroupField: (props: FieldProps & RadioButtonGroupProps) => import("react").ReactElement | null;
export {};