import { Entity } from './Entity'; export declare class DOMPortalEntity extends Entity { domElement: HTMLElement; isDOMPortal: boolean; private domListeners; private resizeObserver; private domBound; cachedWidth: number; cachedHeight: number; lastWidth: string; lastHeight: string; lastTransform: string; lastZIndex: string; lastOpacity: string; constructor(domElement: HTMLElement, width?: number, height?: number, id?: string); /** * Attach the ResizeObserver + DOM event listeners that bridge native DOM * events into the Vecto event system. Idempotent: safe to call every frame * from the projection path (`Scene.syncPortalGeometry`), which is what lets a * portal survive a `scene.remove()` -> re-add cycle — {@link releaseDOMBindings} * tears these down on removal and the next projection re-attaches them. */ attachDOMBindings(): void; /** * Disconnect the ResizeObserver and remove the DOM event listeners, without * touching the scene graph or the element's DOM parentage. Called on the * `scene.remove()` path so a detached portal doesn't leak an observer that * keeps its element alive and firing; the element itself is removed from the * document by the scene's portal pruning. Re-attached lazily on the next * projection frame via {@link attachDOMBindings}. */ releaseDOMBindings(): void; isPointInside(globalX: number, globalY: number): boolean; add(..._children: Entity[]): this; render(): void; destroy(): void; }