import { box, location, xy } from '@synnaxlabs/x';
import { ReactFlowInstance } from '@xyflow/react';
import { Diagram } from '.';
export declare const selectNode: (key: string) => HTMLDivElement;
export declare const selectNodeBox: (flow: ReactFlowInstance, key: string) => box.Box;
export declare const selectNodeLayout: (key: string, flow: ReactFlowInstance) => NodeLayout;
export declare class HandleLayout {
    node_: NodeLayout | null;
    position: xy.XY;
    orientation: location.Outer;
    constructor(position: xy.XY, orientation: location.Outer);
    set node(node: NodeLayout);
    get node(): NodeLayout;
    get absolutePosition(): xy.XY;
}
export declare class NodeLayout {
    key: string;
    box: box.Box;
    handles: HandleLayout[];
    constructor(key: string, box: box.Box, handles: HandleLayout[]);
    static fromFlow(key: string, flow: ReactFlowInstance): NodeLayout;
}
export declare const calculateCursorPosition: (region: box.Box, cursor: xy.Crude, viewport: Diagram.Viewport) => xy.XY;
//# sourceMappingURL=util.d.ts.map