import { IEventDetail, IEventEmitter } from '@breadstone/mosaik-elements';
import { CustomElement } from '../../../Abstracts/CustomElement';
import type { ISelectorItemElementEvents } from './ISelectorItemElementEvents';
import type { ISelectorItemElementProps } from './ISelectorItemElementProps';
import type { SelectorElement } from './SelectorElement';
declare const SelectorItemElement_base: import("../../../../../Index").ControlBehaviorReturn<typeof CustomElement, import("../../../../Behaviors/Valueable").IValueableProps<unknown>>;
/**
 * Selector Item - An individual item within a selector component. Selector items can be selected or unselected, and typically represent options that users can choose from.
 *
 * @fires selected - Called when the element is selected.
 * @fires unselected - Called when the element is unselected.
 *
 * @public
 * @abstract
 */
export declare abstract class SelectorItemElement<TParent extends SelectorElement = SelectorElement> extends SelectorItemElement_base implements ISelectorItemElementProps, ISelectorItemElementEvents {
    private readonly _selected;
    private readonly _unselected;
    private _isSelected;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `isSelected` property.
     *
     * @public
     * @attr
     */
    get isSelected(): boolean;
    set isSelected(value: boolean);
    /**
     * Gets the index of the item.
     *
     * @public
     * @readonly
     */
    get index(): number;
    /**
     * Gets the `displayText` property.
     *
     * @public
     * @readonly
     * @hidden
     */
    get displayText(): string;
    /**
     * Called when the item is selected.
     * Provides reference to `{@link IEventDetail}` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get selected(): IEventEmitter<IEventDetail<SelectorItemElement>>;
    /**
     * Called when the item is unselected.
     * Provides reference to `{@link IEventDetail}` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get unselected(): IEventEmitter<IEventDetail<SelectorItemElement>>;
    /**
     * Get the item parent.
     *
     * @protected
     * @abstract
     * @readonly
     */
    protected abstract get parent(): TParent;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-selector-item': SelectorItemElement;
    }
    interface HTMLElementEventMap {
        selected: CustomEvent<IEventDetail<SelectorItemElement>>;
        unselected: CustomEvent<IEventDetail<SelectorItemElement>>;
    }
}
export {};
//# sourceMappingURL=SelectorItemElement.d.ts.map