import { EventEmitter, ComponentInterface } from '../../stencil-public-runtime';
import { Loggable, LogInstance } from '../../utils/log';
import { BalRadioOption } from './bal-radio.type';
import { BalElementStateInfo } from '../../utils/element-states';
import { BalAriaForm, BalAriaFormLinking } from '../../utils/form';
export declare class Radio implements ComponentInterface, BalElementStateInfo, Loggable, BalAriaFormLinking {
    private inputId;
    private inheritedAttributes;
    private keyboardMode;
    nativeInput: HTMLInputElement;
    el: HTMLBalRadioElement;
    log: LogInstance;
    createLogger(log: LogInstance): void;
    checked: boolean;
    focused: boolean;
    buttonTabindex?: number;
    ariaForm: BalAriaForm;
    name: string;
    value?: any | null;
    label: string;
    invisible: boolean;
    labelHidden: boolean;
    flat: boolean;
    interface: BalProps.BalRadioInterface;
    disabled: boolean;
    readonly: boolean;
    required: boolean;
    hidden: boolean;
    hiddenWatcher(value: boolean): void;
    nonSubmit: boolean;
    invalid: boolean;
    hovered: boolean;
    pressed: boolean;
    balFocus: EventEmitter<BalEvents.BalRadioFocusDetail>;
    balBlur: EventEmitter<BalEvents.BalRadioBlurDetail>;
    balChange: EventEmitter<BalEvents.BalRadioChangeDetail>;
    connectedCallback(): void;
    componentWillLoad(): void;
    disconnectedCallback(): void;
    listenOnClick(ev: UIEvent): void;
    setFocus(ev: any): Promise<void>;
    setButtonTabindex(value: number): Promise<void>;
    getInputElement(): Promise<HTMLInputElement | undefined>;
    getOption(): Promise<BalRadioOption>;
    updateState(): Promise<void>;
    setAriaForm(ariaForm: BalAriaForm): Promise<void>;
    private get radioButton();
    private get radioGroup();
    private get option();
    private toggleChecked;
    private onKeypress;
    private onClick;
    private onFocus;
    private onBlur;
    private onPointerDown;
    private onKeydown;
    render(): any;
}
