import { type DfDataInitialNode, type DfDataNode, type DfNodeSize, type DfPoint } from '../../ng-draw-flow.interfaces'; import { type DfPanZoomOptions } from '../pan-zoom/pan-zoom.options'; import { type PanZoomService } from '../pan-zoom/pan-zoom.service'; export interface DfNodeGeometryControllerOptions { readonly drawFlowElement: HTMLElement; readonly panZoomOptions: DfPanZoomOptions; readonly panZoomService: PanZoomService; } export declare class NodeGeometryController { private readonly options; private nodeWidth; private nodeHeight; private resizeObserver; constructor(options: DfNodeGeometryControllerOptions); resolveNode(node: DfDataInitialNode | DfDataNode): DfDataNode; resolveUpdatedNode(node: DfDataInitialNode | DfDataNode, currentNode: DfDataNode): DfDataNode; hasPositionChanged(previousNode: DfDataNode, currentNode: DfDataNode): boolean; measureContent(nativeElement: HTMLElement | null): void; measureElement(nativeElement: HTMLElement): DfNodeSize; getCenteredPosition(node: DfDataNode): DfPoint; getCenteredPoint(position: DfPoint): DfPoint; applyPositionToStyle(nativeElement: HTMLElement, position: DfPoint, dynamic: boolean): void; syncWorkspaceGeometry(node: DfDataNode): void; syncWorkspaceGeometryAt(nodeId: string, position: DfPoint): void; removeWorkspaceGeometry(nodeId: string): void; observeNodeSize(nativeElement: HTMLElement, onResize: () => void): void; disconnect(): void; getCenterOfViewport(): DfPoint; clampPositionToPanBounds(position: DfPoint): DfPoint; private hasPosition; }