import { Scope } from '@radix-ui/react-context';
import { InputHTMLAttributes } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';

type TRadioSizes = 'xl' | 'lg' | 'ml' | 'md';
type TRadioGroupProps = React.FieldsetHTMLAttributes<HTMLFieldSetElement> & {
    /**
     * Valor inicial do Grupo de Radios.
     */
    defaultValue?: string;
    /**
     * Acessibilidade do componente.
     */
    ariaLabel?: string;
    /**
     * Legenda do componente Grupo de Radios.
     */
    legend?: string;
    /**
     * Action para o evento onChange.
     */
    onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
};
type TRadioLabelProps = React.LabelHTMLAttributes<HTMLLabelElement> & {
    /**
     * Elementos a ser renderizado dentro do componente.
     */
    children: React.ReactNode;
    /**
     * Acessibilidade do componente.
     */
    ariaDisabled?: boolean;
};
interface TRadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'testID'> {
    /**
     * Propriedade Id do Radio.
     */
    id: string;
    /**
     * Propriedade name do Radio.
     */
    name: string;
    /**
     * Propriedade value do Radio.
     */
    value: string;
    /**
     * Conteúdo do Radio.
     */
    children?: React.ReactNode;
    /**
     * Opções de tamanho para o componente Radio.
     */
    size?: TRadioSizes;
    /**
     * Propriedade para indicar se o Radio está selecionado.
     */
    checked?: boolean;
    /**
     * Propriedade para exibição de erro.
     */
    error?: boolean;
    /**
     * Propriedade para desabilitar o Radio.
     */
    disabled?: boolean;
    /**
     * Propriedade para deixar somente leitura o Radio.
     */
    readOnly?: boolean;
    /**
     * Propriedade para indicar somente ícone.
     */
    iconOnly?: boolean;
}
interface RadioHelperTextProps extends Omit<React.HTMLProps<HTMLDivElement>, 'className'> {
    /**
     * Texto do .
     */
    children?: React.ReactNode;
}
/**
 * radix-context
 */
type RadioContext = TRadioProps & TRadioGroupProps & {
    selectedValue?: string;
};
/**
 * Define o scope do radix-context
 */
type RadioScopedProps<P> = P & {
    __scopeRadio?: Scope;
};

declare const Radio: {
    Root: {
        (props: RadioScopedProps<TRadioProps & TRadioGroupProps>): react_jsx_runtime.JSX.Element;
        displayName: string;
    };
    Button: (props: Omit<RadioScopedProps<TRadioProps>, "size">) => react_jsx_runtime.JSX.Element;
    Label: (props: RadioScopedProps<TRadioLabelProps>) => react_jsx_runtime.JSX.Element | null;
    Helper: ({ children, __scopeRadio, ...props }: RadioScopedProps<RadioHelperTextProps>) => react_jsx_runtime.JSX.Element | null;
};

export { Radio, type RadioContext, type TRadioGroupProps, type TRadioProps };
