import { BaseCustomWebComponentConstructorAppend } from '@node-projects/base-custom-webcomponent'; import { IDesignerCanvas } from '../../../IDesignerCanvas.js'; /** * A reusable draggable tool window with a title bar and close button. * Subclasses override `title` and provide content via the `windowContent` slot * by overriding `windowTemplate` and `windowStyle`. * * Usage: * - Extend this class and override `windowTitle`, `windowTemplate`, and `windowStyle`. * - The subclass template is inserted into the `.window-content` slot area. * - To show: call `DraggableToolWindow.show(instance, anchorElement?)` or append to document.body. */ export declare abstract class DraggableToolWindow extends BaseCustomWebComponentConstructorAppend { static readonly style: CSSStyleSheet; static readonly template: HTMLTemplateElement; /** Override in subclass to set the window title. */ protected abstract get windowTitle(): string; /** Override in subclass to return the inner content template. */ protected abstract get windowTemplate(): HTMLTemplateElement | string; /** Override in subclass to return additional styles for the content. */ protected get windowContentStyle(): CSSStyleSheet | null; private _dragging; private _dragOffsetX; private _dragOffsetY; private _titleBar; private _titleText; private _closeBtn; private _contentArea; protected _designerCanvas: IDesignerCanvas; private _visibilityObserver; constructor(designerCanvas?: IDesignerCanvas); connectedCallback(): void; disconnectedCallback(): void; private _close; private _onPointerDown; private _onPointerMove; private _onPointerUp; /** * Show the tool window anchored near a reference element, or centered if none. * Appends to document.body. */ static showWindow(instance: DraggableToolWindow, anchor?: Element): void; }