import type { TWorkflowAST } from '../ast/types.js';
import type { DiagramNode, DiagramPort, DiagramGraph, DiagramOptions } from './types.js';
export declare const PORT_RADIUS = 7;
export declare const PORT_SIZE: number;
export declare const PORT_GAP = 8;
export declare const PORT_PADDING_Y = 18;
export declare const NODE_MIN_WIDTH = 90;
export declare const NODE_MIN_HEIGHT = 90;
export declare const BORDER_RADIUS = 6;
export declare const LAYER_GAP_X = 300;
export declare const LABEL_CLEARANCE = 42;
export declare const MIN_EDGE_GAP = 112;
export declare const NODE_GAP_Y = 60;
export declare const LABEL_HEIGHT = 20;
export declare const LABEL_GAP = 12;
export declare const SCOPE_PADDING_X = 140;
export declare const SCOPE_PADDING_Y = 40;
export declare const SCOPE_PORT_COLUMN = 50;
export declare const SCOPE_INNER_GAP_X = 240;
export declare const ORTHOGONAL_DISTANCE_THRESHOLD = 300;
export declare const STUB_DISTANCE_THRESHOLD = 500;
export declare const STUB_LENGTH = 30;
/** Measure text width using pre-computed Montserrat 600/10px SVG character widths */
export declare function measureText(text: string): number;
/** Compute the full badge width for a port label (matches renderer badge layout) */
export declare function portBadgeWidth(port: DiagramPort): number;
export declare function computeNodeDimensions(node: DiagramNode): void;
export declare function computePortPositions(node: DiagramNode): void;
export declare function computeConnectionPath(sx: number, sy: number, tx: number, ty: number): string;
export declare function buildDiagramGraph(ast: TWorkflowAST, options?: DiagramOptions): DiagramGraph;
//# sourceMappingURL=geometry.d.ts.map