import type { HTMLAttributes, Key, ReactNode } from "react";
import type { RadioColorScheme, RadioVariant } from "./types";
export interface RadioProps<TValue, TOption = RadioOption<TValue>> extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
    name?: string;
    value?: TValue;
    options: TOption[];
    optionKeyFn?: (option: TOption) => Key;
    optionNameFn?: (option: TOption) => ReactNode;
    optionValueFn?: (option: TOption) => TValue;
    variant?: RadioVariant;
    colorScheme?: RadioColorScheme;
    disabled?: boolean;
    vertical?: boolean;
    showButtons?: boolean;
    onChange?: (value: TValue) => void;
    onOptionClick?: (value: TValue) => void;
}
export interface RadioOption<TValue> {
    name: ReactNode;
    value: TValue;
}
/**
 * @deprecated: use Radio from "../../../ui"
 */
declare const Radio: (<TValue, TOption = RadioOption<TValue>>(props: RadioProps<TValue, TOption> & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null) & {
    RadioGroupVariants: import("@emotion/styled").StyledComponent<{
        theme?: import("@emotion/react").Theme | undefined;
        as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
    } & import("./Radio.styled").RadioGroupProps & import("react").ClassAttributes<HTMLDivElement> & HTMLAttributes<HTMLDivElement> & {
        theme?: import("@emotion/react").Theme | undefined;
    }, {}, {}>[];
    RadioLabelVariants: import("@emotion/styled").StyledComponent<{
        theme?: import("@emotion/react").Theme | undefined;
        as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
    } & import("./Radio.styled").RadioLabelProps & import("react").ClassAttributes<HTMLLabelElement> & import("react").LabelHTMLAttributes<HTMLLabelElement> & {
        theme?: import("@emotion/react").Theme | undefined;
    }, {}, {}>[];
    RadioLabelText: import("@emotion/styled").StyledComponent<{
        theme?: import("@emotion/react").Theme | undefined;
        as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
    }, import("react").DetailedHTMLProps<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
    RadioContainerVariants: import("@emotion/styled").StyledComponent<{
        theme?: import("@emotion/react").Theme | undefined;
        as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
    } & import("./Radio.styled").RadioContainerProps & import("react").ClassAttributes<HTMLDivElement> & HTMLAttributes<HTMLDivElement> & {
        theme?: import("@emotion/react").Theme | undefined;
    }, {}, {}>[];
};
export default Radio;
