import { FocusProperties } from '@dojo/framework/core/mixins/Focus';
import { RenderResult } from '@dojo/framework/core/interfaces';
import { ThemeProperties } from '../middleware/theme';
export interface RadioProperties extends ThemeProperties, FocusProperties {
    /** Custom aria attributes */
    aria?: {
        [key: string]: string | null;
    };
    /** Checked/unchecked property of the radio */
    checked: boolean;
    /** Set the disabled property of the control */
    disabled?: boolean;
    /** Hides the label from view while still remaining accessible for screen readers */
    labelHidden?: boolean;
    /** The name of the radio button */
    name?: string;
    /** Handler for when the element is blurred */
    onBlur?(): void;
    /** Handler for when the element is focused */
    onFocus?(): void;
    /** Handler for when the pointer moves out of the element */
    onOut?(): void;
    /** Handler for when the pointer moves over the element */
    onOver?(): void;
    /** Handler for when the value of the widget changes */
    onValue(checked: boolean): void;
    /** Makes the radio readonly (it may be focused but not changed) */
    readOnly?: boolean;
    /** Sets the radio input as required to complete the form */
    required?: boolean;
    /** Toggles the invalid/valid states of the Radio affecting how it is displayed */
    valid?: boolean;
    /** The current value */
    value?: string;
    /** The id used for the form input element. If not passed, one will be generated. */
    widgetId?: string;
}
export interface RadioChildren {
    /** The label for the radio */
    label: RenderResult;
}
export declare const Radio: import("@dojo/framework/core/interfaces").OptionalWNodeFactory<{
    properties: RadioProperties & import("@dojo/framework/core/interfaces").WidgetProperties & {
        variant?: "default" | "inherit" | undefined;
    } & import("@dojo/framework/core/middleware/theme").ThemeProperties & FocusProperties;
    children: string | number | boolean | import("@dojo/framework/core/interfaces").VNode | import("@dojo/framework/core/interfaces").WNode<any> | import("@dojo/framework/core/interfaces").DNode<any>[] | RadioChildren;
}>;
export default Radio;
