import { TemplateResult, PropertyValueMap } from 'lit';
import { OmniElement } from '../core/OmniElement.js';
import '../label/Label.js';
/**
* Control to group radio components for single selection
*
* @import
* ```js
* import '@capitec/omni-components/radio';
* ```
*
* @example
* ```html
*
*
*
*
* ```
*
* @element omni-radio-group
*
* @slot - Content to manage in the radio group, typically <input type="radio" /> and/or <omni-radio></omni-radio>.
*
* @fires {CustomEvent} radio-change - Dispatched when a radio selection is changed.
*
* @csspart radios - Container element for slotted radio elements
*
* @cssprop --omni-radio-group-label-font-size - Label font size.
* @cssprop --omni-radio-group-label-font-weight - Label font weight.
* @cssprop --omni-radio-group-label-margin-bottom - Label bottom margin.
* @cssprop --omni-radio-group-vertical-margin - Margin in between radio elements when arranged vertically.
* @cssprop --omni-radio-group-horizontal-margin - Margin in between radio elements when arranged horizontally.
*
*/
export declare class RadioGroup extends OmniElement {
/**
* Text label.
* @attr
*/
label?: string;
/**
* Allow deselection of radio elements.
* @attr [allow-deselect]
*/
allowDeselect?: boolean;
/**
* Arrange radio elements horizontally.
* @attr
*/
horizontal?: boolean;
/**
* Data associated with the component.
* @attr
*/
data?: object;
private _selected;
private radios;
/**
* Selected index of radio elements
* @no_attribute
* @ignore
*/
set selected(idx: number);
/**
* Selected index of radio elements
* @no_attribute
* @ignore
*/
get selected(): number;
private _uncheckElement;
private _checkElement;
connectedCallback(): void;
protected firstUpdated(_changedProperties: PropertyValueMap | Map): void;
_loadRadios(): void;
_handleClick(e: MouseEvent): void;
static get styles(): import("lit").CSSResultGroup[];
render(): TemplateResult;
}
export type CheckableElement = HTMLElement & {
checked: boolean | undefined;
};
export type RadioChangeEventDetail = {
current?: CheckableElement;
previous?: CheckableElement;
};
declare global {
interface HTMLElementTagNameMap {
'omni-radio-group': RadioGroup;
}
}
//# sourceMappingURL=RadioGroup.d.ts.map