/** * Line end-cap ("head") geometry shared by every renderer that draws heads * with its own primitives: the editor canvas (konva), svg-export, * html-export, and pdf-export. `height` is the line's stroke width in px — * all head dimensions scale from it. The numbers are the canonical konva * shapes from the editor's line-element. * * pptx-export deliberately does NOT consume this module — it maps head types * onto PowerPoint's native arrowheads (editable vectors beat baked geometry * in that medium). */ import { type VNode } from './vnode.js'; export type LineHeadGeometry = { kind: 'polyline' | 'polygon'; points: [number, number][]; /** Closed shapes are filled with the line color; open ones stroke only. */ filled: boolean; } | { kind: 'circle'; cx: number; cy: number; r: number; filled: true; }; export declare function getLineHeadGeometry(type: string | undefined, height: number): LineHeadGeometry | null; interface LineElementLike { width: number; height: number; color: string; dash?: number[]; startHead?: string; endHead?: string; } /** * The line element's SVG content — the stroke plus both head groups — shared * by svg-export and html-export, which wrap it in their own root node * (`` vs an inline ``). */ export declare const lineToVNodes: (element: LineElementLike) => VNode[]; export {};