import * as React from 'react';
import { ReactNode, SyntheticEvent } from 'react';
import { BoxProps, FlexProps } from 'rebass';
type TypeProps = {
    checked?: boolean;
    as?: any;
    name?: string;
    value?: any;
    onChange?: (checked: boolean, event?: SyntheticEvent | any) => void;
    children?: ReactNode | React.JSX.Element;
    gapDistance?: number;
    childrenPosition?: 'start' | 'end';
};
export interface RadioProps extends TypeProps, Omit<BoxProps, keyof TypeProps> {
}
export declare const useRadioContext: <T extends unknown>() => {
    value: T;
    onChange: (value: T) => void;
    name: string;
};
declare const Radio: ({ children, checked, onChange, value, name, gapDistance, childrenPosition, as, id, tabIndex, disabled, ...props }: RadioProps) => React.JSX.Element;
export declare const RadioGroup: <T extends unknown>(props: FlexProps & {
    orientation: 'horizontal' | 'vertical';
    value?: T;
    name?: string;
    defaultValue?: T;
    onRadioChange?: (value: T) => void;
}) => React.JSX.Element;
export default Radio;
