import React, { ReactNode } from 'react';
import { FormField, FormFieldProps } from '../field/FormField';
import { ValidationMessages } from '../validator/Validator';
import { ViewMode } from './enum';
export interface RadioProps extends FormFieldProps {
    /**
     * <受控>是否选中
     */
    checked?: boolean;
    /**
     * 初始是否选中
     */
    defaultChecked?: boolean;
    /**
     * 显示模式
     * 可选值： button | box
     * @default box
     */
    mode?: ViewMode;
}
export declare class Radio<T extends RadioProps> extends FormField<T & RadioProps> {
    static displayName: string;
    static defaultProps: {
        suffixCls: string;
        readOnly: boolean;
        disabled: boolean;
        noValidate: boolean;
        trim: import("../data-set/enum").FieldTrim;
    };
    static __PRO_RADIO: boolean;
    static __IS_IN_CELL_EDITOR: boolean;
    type: string;
    labelRef: HTMLSpanElement | null;
    get defaultValidationMessages(): ValidationMessages;
    get checkedValue(): (T & RadioProps)["value"];
    saveLabelRef(node: any): void;
    getControlled(props: any): boolean;
    getOmitPropsKeys(): string[];
    getOtherProps(): any;
    showTooltip(e: any): boolean;
    renderWrapper(): ReactNode;
    /**
     * 解决form 在float的时候没有表头的问题
     * 也可以在需要不在组件内部展现label的时候使用
     */
    renderSwitchFloatLabel(): ReactNode | undefined;
    renderInner(): ReactNode;
    renderTooltipHelp(): ReactNode;
    /**
     * 当使用label代替children时，不需要展示float label
     *
     * @readonly
     * @memberof Radio
     */
    get hasFloatLabel(): boolean;
    /**
     * 没有children时，使用label替代children
     *
     * @returns {ReactNode} label
     * @memberof Radio
     */
    getLabelChildren(): ReactNode;
    getChildrenText(): React.ReactNode;
    getLabelText(): {} | null | undefined;
    getTextNode(hasTooltipHelp: any): JSX.Element | undefined;
    getWrapperClassNames(...args: any[]): string;
    isChecked(): (T & RadioProps)["checked"];
    handleMouseDown(e: any): void;
    handleChange(e: any): void;
    setChecked(checked: boolean): void;
    getOldValue(): any;
}
export default class ObserverRadio extends Radio<RadioProps> {
    static defaultProps: {
        suffixCls: string;
        readOnly: boolean;
        disabled: boolean;
        noValidate: boolean;
        trim: import("../data-set/enum").FieldTrim;
    };
    static __PRO_RADIO: boolean;
    static __IS_IN_CELL_EDITOR: boolean;
}
