import React, { ChangeEvent, ReactNode } from 'react';
import type { HTMLProps } from '../utils/utilityTypes';
import type { BaseRadioProps } from './interface';
export interface RadioCssVars {
    '--icon-size'?: React.CSSProperties['height'];
    '--icon-background'?: React.CSSProperties['background'];
    '--icon-border-radius'?: React.CSSProperties['borderRadius'];
    '--icon-border-width'?: React.CSSProperties['borderWidth'];
    '--icon-border-color'?: React.CSSProperties['borderColor'];
    '--tick-font-size'?: React.CSSProperties['fontSize'];
    '--tick-color'?: React.CSSProperties['color'];
    '--tick-transition'?: React.CSSProperties['transition'];
    '--text-margin-horizontal'?: React.CSSProperties['marginLeft'];
    '--active-opacity'?: React.CSSProperties['opacity'];
    '--checked-icon-background'?: React.CSSProperties['background'];
    '--checked-icon-border-color'?: React.CSSProperties['borderColor'];
    '--checked-tick-color'?: React.CSSProperties['color'];
    '--disabled-icon-background'?: React.CSSProperties['background'];
    '--disabled-icon-border-color'?: React.CSSProperties['borderColor'];
    '--disabled-text-color'?: React.CSSProperties['color'];
    '--disabled-tick-color'?: React.CSSProperties['color'];
    '--group-spacing-vertical'?: React.CSSProperties['marginBottom'];
    '--group-spacing-horizontal'?: React.CSSProperties['marginRight'];
}
export declare type RadioProps = BaseRadioProps & HTMLProps<RadioCssVars> & {
    renderIcon?: (props: RadioProps) => ReactNode;
    render?: (props: RadioProps) => ReactNode;
    onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
};
export interface RadioRef {
    check: () => void;
}
declare const Radio: React.ForwardRefExoticComponent<BaseRadioProps & HTMLProps<RadioCssVars> & {
    renderIcon?: (props: RadioProps) => ReactNode;
    render?: (props: RadioProps) => ReactNode;
    onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
} & React.RefAttributes<RadioRef>>;
export default Radio;
