import * as React from 'react';
import type { HasDataAttribute, HasRootRef } from '../../types';
import type { TappableOmitProps } from '../Tappable/Tappable';
import { RadioInput } from './RadioInput/RadioInput';
export interface RadioProps extends React.InputHTMLAttributes<HTMLInputElement>, HasRootRef<HTMLLabelElement>, Pick<TappableOmitProps, 'hoverMode' | 'activeMode' | 'hasHover' | 'hasActive' | 'focusVisibleMode'> {
    /**
     * Свойства, которые можно прокинуть внутрь компонента:
     * - `root`: свойства для прокидывания в корень компонента;
     * - `input`: свойства для прокидывания в скрытый `input`.
     */
    slotProps?: {
        root?: Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'children'> & HasRootRef<HTMLLabelElement> & HasDataAttribute;
        input?: React.ComponentProps<'input'> & HasRootRef<HTMLInputElement> & HasDataAttribute;
    };
    /**
     * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ input: { getRootRef: ... } }`.
     */
    getRef?: React.Ref<HTMLInputElement>;
    /**
     * Дополнительное описание под основным текстом.
     */
    description?: React.ReactNode;
    /**
     * Элемент после основного текста.
     */
    titleAfter?: React.ReactNode;
    /**
     * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ root: {...} }`.
     *
     * Позволяет передавать data-* аттрибуты элементу label.
     **/
    labelProps?: HasDataAttribute;
}
/**
 * @see https://vkui.io/components/radio
 */
export declare const Radio: {
    ({ children, description, style, className, getRootRef, titleAfter, getRef, labelProps, hoverMode, activeMode, hasHover, hasActive, focusVisibleMode, slotProps, ...restProps }: RadioProps): React.ReactNode;
    Input: typeof RadioInput;
};
//# sourceMappingURL=Radio.d.ts.map