import { type IAttachable } from '../../../../Behaviors/Attachable'; import { CustomElement } from '../../../Abstracts/CustomElement'; import type { IAdornerElementProps } from './IAdornerElementProps'; declare const AdornerElement_base: import("../../../../../Index").ControlBehaviorReturn, import("../../../../Behaviors/Disableable").IDisableableProps>; /** * Adorner - Abstract base class for decorative overlay elements attached to controls. * * @description * The AdornerElement provides foundational functionality for creating decorative overlay elements * that attach to and enhance other controls. Adorners are lightweight UI enhancements that appear * in response to mouse interactions (hover, move, leave, down) and can be positioned relative to * their target control using the Attachable behavior. Common use cases include tooltips, badges, * resize handles, selection indicators, and contextual helpers. This abstract class manages the * lifecycle of adorner DOM elements, handles mouse event subscriptions, and provides extension * points for subclasses to implement custom show/hide behavior. * * @name Adorner * @category Primitives * * @dependency {Attachable} - Positioning behavior for attaching to target elements * @dependency {Disableable} - Disabled state management * * @example * Creating a simple tooltip adorner: * ```typescript * export class TooltipElement extends AdornerElement { * protected show(): void { * const tooltip = this.create({ * classes: 'mosaik-tooltip' * }); * tooltip.textContent = this.getAttribute('tooltip-text') || ''; * } * * protected hide(): void { * this.dispose(); * } * } * ``` * * @example * Creating a badge adorner: * ```typescript * export class BadgeAdorner extends AdornerElement { * private _badgeElement: HTMLElement | null = null; * * protected show(): void { * if (!this._badgeElement) { * this._badgeElement = this.create({ * classes: ['mosaik-badge', 'mosaik-badge-corner'] * }); * } * this._badgeElement.style.display = 'block'; * } * * protected hide(): void { * if (this._badgeElement) { * this._badgeElement.style.display = 'none'; * } * } * } * ``` * * @example * Using adorner with attachment configuration: * ```html * Click Me * * * ``` * * @abstract * @public */ export declare abstract class AdornerElement extends AdornerElement_base implements IAdornerElementProps, IAttachable { private _adornerElement; private _mouseEnterSubscription; private _mouseMoveSubscription; private _mouseLeaveSubscription; private _mouseDownSubscription; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * @protected * @override */ protected onApplyTemplate(): void; /** * @public * @override */ disconnectedCallback(): void; /** * @protected * @abstract */ protected abstract show(): void; /** * @protected * @abstract */ protected abstract hide(): void; /** * @protected */ protected create(config: { parent?: any; classes?: Array | string; }): T; /** * @protected */ protected dispose(): void; } export {}; //# sourceMappingURL=AdornerElement.d.ts.map