import { EventEmitter } from "../../stencil-public-runtime"; import { A11yComponent, InputComponent, ThemeableComponent } from "../../common"; import { DuetDirection, DuetMargin, DuetTheme } from "../../common-types"; export type DuetRadioEvent = { originalEvent?: Event; checked: boolean; value: string; component: "duet-radio"; }; /** * @slot label - Label content. */ export declare class DuetRadio implements ThemeableComponent, InputComponent, A11yComponent { focus: boolean; /** * Own Properties. */ private radioId; private focusableElement; private hasLabel?; private labelElement; /** * Reference to host HTML element. */ element: HTMLElement; /** * Indicates the id of a related component’s visually focused element. */ accessibleActiveDescendant: string; /** * Aria Details of the component */ accessibleDetails: string; /** * String of id's that indicate alternative labels elements */ accessibleLabelledBy: string; /** * Aria description the button */ accessibleDescription: string; /** * Control the tabindex of checkbox. In most cases this should never be used! * It exists only for Duet’s internal needs. */ accessibleIndex: string; /** * Controls the margin of the component. */ margin: DuetMargin; /** * Use this prop to add an aria-controls attribute. Use the attribute to * indicate the id of a component controlled by this component. */ accessibleControls: string; /** * Indicates the id of a component owned by the radio. */ accessibleOwns: string; /** * Indicates the id of a component that describes the radio. */ accessibleDescribedBy: string; /** * Theme of the radio. */ theme: DuetTheme; /** * Makes the radio component disabled. This prevents users from being able to * interact with the radio, and conveys its inactive state to assistive technologies. */ disabled: boolean; /** * Set whether the input is required or not. Please note that this is required for * accessible inputs when the user is required to fill them. When using this property * you need to also set “novalidate” attribute to your form element to prevent * browser from displaying its own validation errors. */ required: boolean; /** * Stops the components from emitting events */ blockEvents: boolean; /** * Adds a unique identifier for the radio. */ identifier: string; /** * Label for the radio. */ label: string; /** * Name of the radio. */ name: string; /** * Defines a specific role attribute for the input. */ role: string | null; /** * @internal * Determines, whether the control is disabled from the parent group. */ groupDisabled: boolean; /** * @internal * Determines, whether the control is displayed horizontally or vertically within a group. */ groupDirection: DuetDirection; /** * @internal * Determines, whether the control is displayed responsively within a group. */ groupResponsive: boolean; /** * Check state of the radio. */ checked: boolean; /** * The value of the radio input does not mean if it's checked or not, use the checked * property for that. */ value: string; /** * Emitted when the checked property has changed. */ duetChange: EventEmitter; /** * Emitted when the checkbox has focus. */ duetFocus: EventEmitter; /** * Emitted when the checkbox loses focus. */ duetBlur: EventEmitter; /** * Component lifecycle events. */ componentWillLoad(): void; componentDidRender(): void; private radioInputListenersRemove; private radioInputListenersAdd; private radioInputSetUp; /** * Component event handling. */ private onClick; private onChange; private onBlur; private onFocus; /** * Sets focus on the specified `duet-radio`. Use this method instead of the global * `input.focus()`. */ setFocus(options?: FocusOptions): Promise; /** * render() function * Always the last one in the class. */ render(): any; }