import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { CheckPlacement } from '../../../../types/src/option';
import { CSSResultGroup } from 'lit';
import { default as CxIcon } from '../icon/icon';
import { default as CxSpace } from '../space/space';

/**
 * @summary Options define the selectable items within various form controls such as [select](?s=atoms&id=/select).
 *
 * @slot (default) - The option's label.
 * @slot help-text - The option's help text below the label.
 * @slot prefix - Used to prepend an icon or similar element to the menu item.
 * @slot suffix - Used to append an icon or similar element to the menu item.
 *
 * @csspart checked-icon - The checked icon, an `<cx-icon>` element.
 * @csspart base - The component's base wrapper.
 * @csspart label - The option's label.
 * @csspart prefix - The container that wraps the prefix.
 * @csspart suffix - The container that wraps the suffix.
 *
 * @cssproperty [--option-color=var(--cx-color-neutral-700)] - The option's color.
 * @cssproperty [--option-font-weight=var(--cx-font-weight-regular)] - The option's font weight.
 * @cssproperty [--option-help-text-color=var(--cx-color-neutral-600)] - The option's help text color.
 * @cssproperty [--option-help-text-font-weight=var(--cx-font-weight-regular)] - The option's help text font weight.
 * @cssproperty [--option-selected-color=var(--cx-color-primary)] - The selected option's color.
 * @cssproperty [--option-selected-font-weight=var(--cx-font-weight-regular)] - The selected option's font weight.
 * @cssproperty [--option-selected-help-text-color=var(--cx-color-primary)] - The selected option's help text color.
 * @cssproperty [--option-selected-help-text-font-weight=var(--cx-font-weight-regular)] - The selected option's help text font weight.
 */
export default class CxOption extends CortexElement {
    static styles: CSSResultGroup;
    static dependencies: {
        'cx-icon': typeof CxIcon;
        'cx-space': typeof CxSpace;
    };
    private cachedTextLabel;
    private readonly localize;
    defaultSlot: HTMLSlotElement;
    current: boolean;
    selected: boolean;
    hasHover: boolean;
    /**
     * The option's value. When selected, the containing form control will receive this value. The value must be unique
     * from other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing
     * multiple values.
     */
    value: string;
    /** Draws the option in a disabled state, preventing selection. */
    disabled: boolean;
    /** Whether to show check icon prefix for selected option. */
    showCheck: boolean;
    /** Check icon placement */
    checkPlacement: CheckPlacement;
    connectedCallback(): void;
    private handleDefaultSlotChange;
    private handleMouseEnter;
    private handleMouseLeave;
    handleDisabledChange(): void;
    handleSelectedChange(): void;
    handleValueChange(): void;
    /** Returns a plain text label based on the option's content. */
    getTextLabel(): string;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-option': CxOption;
    }
}
