/**
* @component BcmRadio
* @description A customizable radio button component for forms, supporting various sizes, states, and label positioning.
* It can be used to select a single option from a group of choices, with support for error, disabled, and readonly states.
*
* @example
*
* Option 1
*
*
* @example Radio with error state
*
* Error Option
*
*
* @prop {string} label - The text label to display next to the radio button.
* @prop {string} name - The name attribute for the radio input, used to group radio buttons.
* @prop {string} value - The value of the radio button, submitted with the form.
* @prop {boolean} checked - Whether the radio button is selected.
* @defaultValue false
* @prop {RadioSize} size - Defines the size of the radio button: 'small' | 'medium' | 'large'.
* @defaultValue 'medium'
* @prop {boolean} disabled - Whether the radio button is disabled.
* @defaultValue false
* @prop {boolean} readonly - Whether the radio button is readonly.
* @defaultValue false
* @prop {LabelPosition} labelPosition - Position of the label relative to the radio button: 'right' | 'left'.
* @defaultValue 'right'
* @prop {boolean} error - Whether the radio button is in an error state.
* @defaultValue false
*
* @event {EventEmitter} bcmRadioChange - Emitted when the radio button's checked state changes.
* @event {EventEmitter} bcmFocus - Emitted when the radio button gains focus.
* @event {EventEmitter} bcmBlur - Emitted when the radio button loses focus.
*
* @csspart container - The root label element wrapping the radio button and label.
* @csspart dotContainer - The container for the radio button dot.
* @csspart dot - The inner dot of the radio button.
* @csspart label - The label text element.
*/
import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
export declare class BcmRadio implements ComponentInterface {
host: HTMLBcmRadioElement;
internals: ElementInternals;
_id?: string;
/**
* The text label to display next to the radio button.
* @prop
* @defaultValue undefined
*/
label: string;
/**
* The name attribute for the radio input, used to group radio buttons.
* @prop
* @defaultValue undefined
*/
name: string;
/**
* The value of the radio button, submitted with the form.
* @prop
* @defaultValue undefined
*/
value: string;
/**
* Whether the radio button is selected.
* @prop
* @defaultValue false
*/
checked: boolean;
/**
* Defines the size of the radio button: 'small' | 'medium' | 'large'.
* @prop
* @defaultValue 'medium'
*/
size: 'small' | 'medium' | 'large';
/**
* Whether the radio button is disabled.
* @prop
* @defaultValue false
*/
disabled: boolean;
/**
* Whether the radio button is readonly.
* @prop
* @defaultValue false
*/
readonly: boolean;
/**
* Position of the label relative to the radio button: 'right' | 'left'.
* @prop
* @defaultValue 'right'
*/
labelPosition: 'right' | 'left';
/**
* Whether the radio button is in an error state.
* @prop
* @defaultValue false
*/
error: boolean;
/**
* Whether at least one radio in this group is required.
* (HTML)
*/
required: boolean;
/** Internal checked state to control visuals + form internals */
internalChecked: boolean;
bcmRadioChange: EventEmitter;
bcmBlur: EventEmitter;
bcmFocus: EventEmitter;
private inputEl;
componentWillLoad(): void;
componentDidLoad(): void;
private handleClick;
private updateFormValueAndValidity;
private isGroupRequired;
private isGroupChecked;
private isGroupLeader;
formResetCallback(): void;
onCheckedChange(newVal: boolean): void;
onInternalCheckedChange(): void;
private syncNativeChecked;
private uncheckSiblings;
private getRadioStyle;
private getRadioClass;
render(): any;
}