import { TemplateResult as TemplateResult$1 } from "../node_modules/lit-html/development/lit-html.js"; import * as _$lit from "lit"; import { LitElement } from "lit"; //#region src/elements/EFPanZoom.d.ts interface PanZoomTransform { x: number; y: number; scale: number; } declare class EFPanZoom extends LitElement { static styles: _$lit.CSSResult[]; x: number; y: number; scale: number; /** * When true, automatically fits content to view on first render. * Centers content and scales it to fit within the container with padding. */ autoFit: boolean; panZoomTransform: PanZoomTransform; private _isDragging; private _dragStartPointerPos; private _dragStartTransform; private _capturedPointerId; /** * Document-level wheel handler in capture phase to prevent browser navigation. * This prevents back/forward navigation on two-finger swipe gestures. * We use capture phase to catch events before they bubble, but only prevent default * (not stop propagation) so the normal wheel handler can still process them. */ private _onDocumentWheelCapture; connectedCallback(): void; disconnectedCallback(): void; private _updateTransform; private _onPointerDown; private _onPointerMove; private _onPointerUp; private _onWheel; firstUpdated(changedProperties: Map): void; /** * Convert screen coordinates (e.g., mouse event clientX/clientY) to canvas coordinates. * This handles all pan/zoom transformations automatically. * * @param screenX - X coordinate in screen space (e.g., event.clientX) * @param screenY - Y coordinate in screen space (e.g., event.clientY) * @returns Object with x, y in canvas coordinate space * * @example * handleClick(e: MouseEvent) { * const canvasPos = panZoom.screenToCanvas(e.clientX, e.clientY); * console.log(`Clicked at canvas position: ${canvasPos.x}, ${canvasPos.y}`); * } */ screenToCanvas(screenX: number, screenY: number): { x: number; y: number; }; /** * Convert canvas coordinates to screen coordinates. * Useful for positioning overlays or tooltips relative to canvas elements. * * @param canvasX - X coordinate in canvas space * @param canvasY - Y coordinate in canvas space * @returns Object with x, y in screen coordinate space * * @example * const screenPos = panZoom.canvasToScreen(element.x, element.y); * tooltip.style.left = `${screenPos.x}px`; * tooltip.style.top = `${screenPos.y}px`; */ canvasToScreen(canvasX: number, canvasY: number): { x: number; y: number; }; /** * Reset the pan-zoom transform to its default values (x: 0, y: 0, scale: 1). * This method can be called programmatically to reset the view. * * @example * const panZoomRef = useRef(null); * */ reset(): void; /** * Fit content to the container, centering it and scaling to fit. * Uses a padding factor to leave some margin around the content. * * @param padding - Padding factor (0-1), e.g., 0.1 = 10% padding on each side. Default: 0.05 */ fitToContent(padding?: number): void; render(): TemplateResult$1<1>; } //#endregion export { EFPanZoom, PanZoomTransform }; //# sourceMappingURL=EFPanZoom.d.ts.map