/** * @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; }