/** * Canvas 2D node-graph layer, Bitwig The Grid-style: * dark rounded modules, colored category header strip, side ports, * signal-colored bezier wires (dashed for event streams). * * Semantic zoom: draws the LOD RenderGraph — collapsed groups appear as * pseudo-nodes at constant screen size; node inner detail fades out * before it becomes unreadable. */ import { type Graph, type GraphNode, type Side, type SignalKind } from "../core/graph.js"; import { type RenderGraph } from "../core/lod.js"; import { type RgRule } from "../core/rule.js"; import type { SummarizeFn } from "../core/summary.js"; import type { ViewTransform } from "../core/grid.js"; import { type RgTheme } from "../core/theme.js"; export declare const KIND_COLOR: Record; export declare const CATEGORY_COLOR: Record; export declare function kindColor(kind: SignalKind): string; export declare function categoryColor(category: GraphNode["category"]): string; export declare function drawGraph(ctx: CanvasRenderingContext2D, t: ViewTransform, graph: Graph, rule?: RgRule, summarize?: SummarizeFn, xform?: readonly [number, number, number, number], theme?: RgTheme, /** zoom-out hysteresis: memberships carried from the previous finer scale */ carry?: readonly [string, string][]): RenderGraph; /** world position of a node's header pin glyph (toggle target) */ export declare function pinPos(n: GraphNode): [number, number]; /** outward unit normal of an edge — the direction a wire leaves the port */ export declare function edgeNormal(edge: Side): [number, number]; /** an off-screen marker: edge anchor + the world center it points at */ export interface OffscreenIndicator { /** anchor on the viewport edge (screen px) */ ax: number; ay: number; angle: number; color: string; /** world center of the off-screen target */ cx: number; cy: number; } /** * Game-style off-screen indicators: for every node fully outside the * viewport, an arrow pinned to the viewport edge points at it — zoomed in * close, you stay aware of what lies outside. Clicking one navigates there. */ export declare function offscreenIndicators(t: ViewTransform, rg: RenderGraph, size: { width: number; height: number; }, rule?: RgRule, mapPoint?: (x: number, y: number) => readonly [number, number]): OffscreenIndicator[]; export declare function drawOffscreenIndicators(ctx: CanvasRenderingContext2D, t: ViewTransform, rg: RenderGraph, size: { width: number; height: number; }, rule?: RgRule, mapPoint?: (x: number, y: number) => readonly [number, number], theme?: RgTheme): OffscreenIndicator[]; //# sourceMappingURL=graphLayer.d.ts.map