import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { CSSResultGroup, TemplateResult } from 'lit';
import { default as CxCard } from '../card/card';
import { default as CxLineClamp } from '../line-clamp/line-clamp';
import { default as CxRadio } from '../radio/radio';

/**
 * @summary Radio cards allow the user to select a single option from a group.
 *
 * @description Radio cards are designed to be used with [radio groups](?s=atoms&id=/radio-group).
 *
 * @csspart base - The component’s base wrapper.
 * @csspart control - The circular container that wraps the radio’s checked state.
 * @csspart control--checked - The radio control when the radio is checked.
 * @csspart checked-icon - The checked icon, a `<cx-icon>` element.
 * @csspart label - The container that wraps the radio’s label.
 *
 * @event cx-blur - Emitted when the control loses focus.
 * @event cx-focus - Emitted when the control gains focus.
 *
 * @cssproperty [--label-text-align=left] - The alignment of the label text.
 * @cssproperty [--description-text-align=left] - The alignment of the label text.
 * @cssproperty [--label-color=var(--cx-input-label-color)] - The color of the label text.
 * @cssproperty [--description-color=var(--cx-input-label-color)] - The color of the description text.
 * @cssproperty [--card-width=auto] - The width of the radio card.
 * @cssproperty [--card-height=auto] - The height of the radio card.
 *
 * @slot - The radio’s label.
 * @slot image - The radio’s image.
 * @slot suffix - The radio’s label's suffix.
 * @slot help-text - The radio’s help text.
 */
export default class CxRadioCard extends CortexElement {
    static readonly styles: CSSResultGroup;
    static readonly dependencies: {
        'cx-card': typeof CxCard;
        'cx-line-clamp': typeof CxLineClamp;
        'cx-radio': typeof CxRadio;
    };
    private readonly hasSlotController;
    private readonly radio;
    checked: boolean;
    protected hasFocus: boolean;
    /** The radio's value. When selected, the radio group will receive this value. */
    value: string;
    /** Disables the radio. */
    disabled: boolean;
    /** Hides the radio's indicator. */
    hideIndicator: boolean;
    /**
     * Whether to show full text or ellipsis
     */
    disabledLineClamp: boolean;
    constructor();
    connectedCallback(): void;
    private handleBlur;
    private handleClick;
    private handleFocus;
    private setInitialAttributes;
    handleCheckedChange(): void;
    handleDisabledChange(): void;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-radio-card': CxRadioCard;
    }
}
