/** * The runtime graph's VISUAL VOCABULARY, and the legend that explains it. * * Every colour, shape and fill the drawing uses lives here, next to the legend swatches that teach * the reader what each one means. They are one unit on purpose: the legend's job is to be a true * account of the picture, and the fastest way for a legend to start lying is for it to sit in a * different file from the constants it describes and drift as those change. * * Imported by runtime-visualizer.ts, which owns the DRAWING (which nodes and edges to emit). This * module knows nothing about the graph model, which is what keeps the dependency one-way and * cycle-free. */ export declare const LEVEL_COLORS: Record; export declare const QUEUE_FILL = "#FFF3E0"; /** * The queue node is an `Mrecord` whose FIRST field is empty, which draws a rounded outline with a * vertical cap line near one end — a cylinder lying on its side, distinguishing a queue from the * upright cylinder that now means a database. * * Two things here are load-bearing and easy to break: * * 1. NO surrounding `{}`. Record fields lay out along the rank direction, and this graph is * `rankdir=TB` (see {@link generateRuntimeDot}), where the default is horizontal — which is what * we want. Adding braces TOGGLES that, turning the cap line into a band across the top. * 2. The leading space is the empty field. The record parser trims it to nothing, which is the * point; it must survive as its own field, so the `|` cannot be dropped. * * Graphviz has no sideways cylinder and never has: `orientation=` is documented as rotating POLYGON * shapes, and `cylinder` is drawn with beziers, so it silently ignores the attribute (graphviz issue * #2244, open since 2022 and still reproducible on 13.0.0). This is the closest native shape. */ export declare const QUEUE_SHAPE = "Mrecord"; export declare const QUEUE_LABEL_PREFIX = " |"; /** * Marker class stamped on every queue node. Graphviz copies `class` straight into the rendered * ``, which is how runtime-visualizer.client.ts finds these nodes and * redraws them as true horizontal cylinders in the browser. * * A CLASS rather than an id prefix, because queue-kind EXTERNAL systems are queues too and share the * `system__` id space with databases — which must stay upright. Underscored, not hyphenated: DOT * emits a hyphen as `-`, which is harmless but needlessly surprising to anyone reading the SVG. */ export declare const QUEUE_CLASS = "wp_queue"; /** Fill for the upright cylinder standing for an external DATASTORE (firestore, postgres, ...). */ export declare const DATABASE_FILL = "#E1F5FE"; /** Shape per external-system kind. Anything unrecognised falls back to the generic dashed box. */ export declare const EXTERNAL_SHAPES: Record; /** Fill per external-system kind, paired with {@link EXTERNAL_SHAPES}. */ export declare const EXTERNAL_FILLS: Record; /** Fill + border for the dashed terminal node standing for a system outside this repo. */ export declare const EXTERNAL_FILL = "#FAFAFA"; export declare const EXTERNAL_BORDER = "#9E9E9E"; /** Fill + border for the clock node standing for a scheduler-driven endpoint. */ export declare const CRON_FILL = "#FFF9C4"; export declare const CRON_BORDER = "#F9A825"; /** * The legend. Three columns — what a box IS, what a line MEANS, how to read a box — replacing the * three paragraphs of prose that used to restate the picture in words. Styled after * {@link GraphVisualizer}'s legend so the two graphs in this repo look like one tool. */ export declare function legendHtml(): string;