import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';
export type RadioGroupDefaultItem = {
    key?: string | number;
    label: string;
    disabled?: boolean;
};
export declare const radioGroupDirections: readonly ["column", "row"];
export type RadioGroupDirection = typeof radioGroupDirections[number];
export declare const radioGroupDefaultDirection: RadioGroupDirection;
export declare const radioGroupSizes: readonly ["m", "l", "xs", "s"];
export type RadioGroupPropSize = typeof radioGroupSizes[number];
export declare const radioGroupDefaultSize: RadioGroupPropSize;
export declare const radioGroupViews: readonly ["primary", "ghost"];
export type RadioGroupPropView = typeof radioGroupViews[number];
export declare const radioGroupDefaultView: RadioGroupPropView;
export declare const radioGroupPropAlign: readonly ["center", "top"];
export type RadioGroupPropAlign = typeof radioGroupPropAlign[number];
export declare const radioGroupPropAlignDefault: RadioGroupPropAlign;
export type RadioGroupPropGetItemKey<ITEM> = (item: ITEM) => string | number | undefined;
export type RadioGroupPropGetItemLabel<ITEM> = (item: ITEM) => string;
export type RadioGroupPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;
export type RadioGroupPropOnChange<ITEM> = (value: ITEM, props: {
    e: React.ChangeEvent<HTMLInputElement>;
}) => void;
export type RadioGroupProps<ITEM = RadioGroupDefaultItem> = PropsWithHTMLAttributesAndRef<{
    align?: RadioGroupPropAlign;
    value?: ITEM | null;
    items: ITEM[];
    getItemKey?: RadioGroupPropGetItemKey<ITEM>;
    getItemLabel?: RadioGroupPropGetItemLabel<ITEM>;
    getItemDisabled?: RadioGroupPropGetItemDisabled<ITEM>;
    onChange?: RadioGroupPropOnChange<ITEM>;
    name?: string;
    direction?: RadioGroupDirection;
    size?: RadioGroupPropSize;
    view?: RadioGroupPropView;
    disabled?: boolean;
    className?: string;
}, HTMLDivElement> & (ITEM extends {
    label: RadioGroupDefaultItem['label'];
} ? {} : {
    getItemLabel: RadioGroupPropGetItemLabel<ITEM>;
});
export type RadioGroupComponent = <ITEM = RadioGroupDefaultItem>(props: RadioGroupProps<ITEM>) => React.ReactElement | null;
