import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import type { RadioGroupChangeEventDetail, RadioGroupCompareFn } from './radio-group-interface';
/**
 * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
 * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
 */
export declare class RadioGroup implements ComponentInterface {
    private inputId;
    private helperTextId;
    private errorTextId;
    private labelId;
    private label?;
    private validationObserver?;
    el: HTMLElement;
    /**
     * Track validation state for proper aria-live announcements.
     */
    isInvalid: boolean;
    private hintTextId?;
    /**
     * If `true`, the radios can be deselected.
     */
    allowEmptySelection: boolean;
    /**
     * This property allows developers to specify a custom function or property
     * name for comparing objects when determining the selected option in the
     * ion-radio-group. When not specified, the default behavior will use strict
     * equality (===) for comparison.
     */
    compareWith?: string | RadioGroupCompareFn | null;
    /**
     * The name of the control, which is submitted with the form data.
     */
    name: string;
    /**
     * the value of the radio group.
     */
    value?: any | null;
    /**
     * The helper text to display at the top of the radio group.
     */
    helperText?: string;
    /**
     * The error text to display at the top of the radio group.
     */
    errorText?: string;
    valueChanged(value: any | undefined): void;
    /**
     * Emitted when the value has changed.
     *
     * This event will not emit when programmatically setting the `value` property.
     */
    ionChange: EventEmitter<RadioGroupChangeEventDetail>;
    /**
     * Emitted when the `value` property has changed.
     * This is used to ensure that `ion-radio` can respond
     * to any value property changes from the group.
     *
     * @internal
     */
    ionValueChange: EventEmitter<RadioGroupChangeEventDetail>;
    componentDidLoad(): void;
    private setRadioTabindex;
    connectedCallback(): Promise<void>;
    componentWillLoad(): void;
    disconnectedCallback(): void;
    private getRadios;
    /**
     * Emits an `ionChange` event.
     *
     * This API should be called for user committed changes.
     * This API should not be used for external value changes.
     */
    private emitValueChange;
    private onClick;
    onKeydown(ev: KeyboardEvent): void;
    /** @internal */
    setFocus(): Promise<void>;
    /**
     * Renders the helper text or error text values
     */
    private renderHintText;
    private getHintTextId;
    render(): any;
}
