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 {};