import { InputHTMLAttributes, ChangeEvent, ForwardRefExoticComponent, RefAttributes } from 'react';
import { Color, Size, LabelPlacement } from '@syncfusion/react-base';
export { LabelPlacement };
/**
 * Interface for RadioButton change event arguments
 */
export interface RadioButtonChangeEvent {
    /**
     * The initial event object received from the input element.
     */
    event: ChangeEvent<HTMLInputElement>;
    /**
     * The selected value of the RadioButton.
     */
    value: string;
}
/**
 * Defines the properties for the RadioButton component.
 */
export interface RadioButtonProps {
    /**
     * Specifies whether the RadioButton is `checked` (`true`) or unchecked (`false`). Use for controlled components.
     *
     * @default false
     */
    checked?: boolean;
    /**
     * Specifies the initial checked state of the RadioButton. Use for uncontrolled components.
     *
     * @default false
     */
    defaultChecked?: boolean;
    /**
     * Defines the caption for the RadioButton, that describes the purpose of the RadioButton.
     *
     * @default -
     */
    label?: string;
    /**
     * Specifies the size style of the checkbox. Options include 'Small', 'Medium' and 'Large'.
     *
     * @default Size.Medium
     */
    size?: Size;
    /**
     * Specifies the Color style of the radio-button. Options include 'Primary', 'Secondary', 'Warning', 'Success', 'Error', and 'Info'.
     *
     * @default -
     */
    color?: Color;
    /**
     * Specifies the position of the label relative to the RadioButton. It determines whether the label appears before or after the radio button element in the UI.
     *
     * @default LabelPlacement.After
     */
    labelPlacement?: LabelPlacement;
    /**
     * Defines `value` attribute for the RadioButton. It is a form data passed to the server when submitting the form.
     *
     * @default -
     */
    value?: string;
    /**
     * Event trigger when the RadioButton state has been changed by user interaction.
     *
     * @event onChange
     */
    onChange?: (event: RadioButtonChangeEvent) => void;
}
export interface IRadioButton extends RadioButtonProps {
    /**
     * This is RadioButton component input element.
     *
     * @private
     * @default null
     */
    element?: HTMLInputElement | null;
}
type IRadioButtonProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size'> & IRadioButton;
/**
 * The RadioButton component allows users to select a single option from a group, utilizing a circular input field that provides a clear user selection interface.
 *
 * ```typescript
 * import { RadioButton } from "@syncfusion/react-buttons";
 *
 * <RadioButton checked={true} label="Choose this option" name="choices" />
 * ```
 */
export declare const RadioButton: ForwardRefExoticComponent<IRadioButtonProps & RefAttributes<IRadioButton>>;
declare const _default: import("react").NamedExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onChange"> & IRadioButton & RefAttributes<IRadioButton>>;
export default _default;
