import { BaseCustomWebComponentConstructorAppend } from '@node-projects/base-custom-webcomponent';
/**
 * 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;
    constructor();
    connectedCallback(): 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;
}
