/** Cap width as a fraction of the node's half-height. Below ~0.6 it reads as a rounded box. */ declare const CAP_RATIO = 0.75; /** A node narrower than this is not a queue box worth reshaping. */ declare const MIN_WIDTH = 40; /** The union bounding box of a node's shape elements, in user space. Data-only → a class. */ declare class Bounds { readonly x0: number; readonly x1: number; readonly y0: number; readonly y1: number; constructor(x0: number, x1: number, y0: number, y1: number); width(): number; halfHeight(): number; } /** * Redraws the nodes the DOT marked `wp_queue` as cylinders lying on their side. * * Selected by CLASS, not by id prefix: a queue-kind external system shares the `system__` id space with * databases, and a database is an UPRIGHT cylinder that must be left alone. */ declare class QueueCylinders { private static readonly SVG_NS; applyTo(svg: SVGSVGElement): void; /** * Replace one node's shape elements with a horizontal cylinder sized to its own bounding box. * * The bbox is measured from the shape elements BEFORE they are removed, never from getBBox() on the * whole group — the group includes the text, which is inset, so using it would shrink the cylinder * inside the very label it is meant to contain. */ private reshape; /** * A box listing several queues is TALL, and a cap scaled off half-height alone would then reach * past the empty leading field and sit on top of the first characters of the label. Graphviz sizes * that field from the font, not from the label's height, so the separator is the only honest bound * on how far right the cap may go. */ private capRadius; /** * The x of the record's field separator — the VERTICAL polyline Graphviz draws between the empty * leading field and the label — or null if this node has none. */ private separatorX; /** The union bounding box of some SVG shape elements, from their raw geometry attributes. */ private boundsOf; private pathEl; } /** * Every node of the runtime graph opens the shared floating menu. * * There is exactly ONE item, and it is the lock. NO "View Design": a node here is a running SERVICE, * a queue, a datastore or a third-party system, not an nx project, so there is no design.html to point * at and the item is ABSENT rather than present-and-dead. * * LOCK means the literal thing the box shows: dim every other node and every edge, light the locked * box alone. That is `WpNodeLock`, the same lock a design page uses — this page has no lock dropdown * and no responsibilities list, so there is no second control for it to fall out of step with, and * the menu label is derived from the lock's own state on every open. */ declare class RuntimeNodeMenu { private readonly svg; private readonly lock; constructor(svg: SVGSVGElement); wire(): void; } /** * Renders the DOT, reshapes the queues, wires the node menu, and reports a failure into the page * rather than only the console. */ declare class RuntimePage { render(): void; }