import type { PropertyValues } from "lit"; import { LitElement } from "lit"; declare const WarpRadio_base: import("@open-wc/form-control").Constructor & typeof LitElement; /** * Radios allow users to select a single option from a list of choices. * * Wrap individual radio components in a radio group. * * [Warp component reference](https://warp-ds.github.io/docs/components/radio/frameworks/elements) * * @parent w-radio-group */ export declare class WarpRadio extends WarpRadio_base { #private; static styles: import("lit").CSSResult[]; /** @internal */ static shadowRootOptions: { delegatesFocus: boolean; clonable?: boolean; customElementRegistry?: CustomElementRegistry | null; mode: ShadowRootMode; serializable?: boolean; slotAssignment?: SlotAssignmentMode; }; /** * The name of the radio, submitted as a name/value pair with form data. */ name: string; /** * The radio's value. When selected, the radio group will receive this value. */ value: string | null; /** * Draws the radio in a checked state (reflected to attribute). */ checked: boolean; /** * Disables the radio. */ disabled: boolean; /** * Makes the radio a required field. */ required: boolean; /** * Draws the radio in an invalid state. */ invalid: boolean; /** * Internal tabindex managed by parent radio-group. * Non-reflecting to avoid DOM changes during hydration. * @internal */ _groupTabIndex: number | undefined; /** * Override tabIndex getter to return the computed internal tabIndex. * This allows external code to check if the radio is focusable. * @internal */ get tabIndex(): number; /** * Override tabIndex setter to set _groupTabIndex (for backwards compatibility). * Radio-group should use _groupTabIndex directly for clarity. * * @internal */ set tabIndex(value: number); constructor(); connectedCallback(): void; private syncAriaDisabled; private syncAriaChecked; protected willUpdate(changedProperties: PropertyValues): void; updated(changedProperties: PropertyValues): void; private handleClick; private handleInvalid; private handleKeyDown; /** @internal */ resetFormControl(): void; /** * Returns the validation message if the radio is invalid, otherwise an empty string * @internal */ get validationMessage(): string; /** * Returns the validity state of the radio * @internal */ get validity(): ValidityState; /** * Checks whether the radio passes constraint validation * @internal */ checkValidity(): boolean; /** * Checks validity and shows the browser's validation message if invalid * @internal */ reportValidity(): boolean; private isInGroup; private getRadioScope; private getStandaloneNamedRadios; private syncStandaloneTabOrder; /** * Computed tabindex for the internal focusable element. * Priority: group-managed > standalone-managed > default */ private get _internalTabIndex(); /** * Internal tabindex for standalone radios (not in a group). * Non-reflecting to avoid DOM changes during hydration. * * @internal */ _standaloneTabIndex: number | undefined; protected firstUpdated(): void; private uncheckOtherRadios; private updateValidity; private syncFormValue; private shouldSyncFormState; render(): import("lit").TemplateResult<1>; } /** * @deprecated Exported for backwards compatibility only, use `WarpRadio` */ export declare const WRadio: typeof WarpRadio; declare global { interface HTMLElementTagNameMap { "w-radio": WarpRadio; } } export {};