import { IRPath, PathThicknessValue, WayDSL } from '@retikz/core';
import { FC } from 'react';
import { PathProps } from '../../kernel/components';
export type DrawProps = {
/**
* way 数组 DSL
* @description 节点 id / 笛卡尔 / 极坐标 / 相对偏移 `{ position, type: DrawWay.Relative | DrawWay.Accumulate }` / 折角算子 `'-|'` `'|-'`(或 `DrawWay.Hv`/`DrawWay.Vh`)/ 闭合 `DrawWay.Cycle` / 曲线算子 `{ curve | cubic | bend }`(infix)/ 形状算子 `{ arc | circle | ellipse }`(infix,以"上一项"为圆心,不消耗下一项)/ 边标注算子 `{ label }`(infix,修饰下一段)
*/
way: WayDSL;
/** 描边色,省略时用 currentColor */
stroke?: IRPath['stroke'];
/** 描边宽度,省略时为 1 */
strokeWidth?: IRPath['strokeWidth'];
/** 描边 dash pattern(如 [4, 2]) */
dashPattern?: IRPath['dashPattern'];
/** 描边 dash offset */
dashOffset?: IRPath['dashOffset'];
/** 端点形状(TikZ `line cap`) */
lineCap?: IRPath['lineCap'];
/** 拐点形状(TikZ `line join`,仅描边视觉) */
lineJoin?: IRPath['lineJoin'];
/** 折线 line-line 接缝几何圆角半径(TikZ `rounded corners=`,改几何,区别于 `lineJoin`) */
roundedCorners?: IRPath['roundedCorners'];
/** 投影:预设字符串(`'sm'`…`'2xl'`)或 `{ preset?, offsetX?, offsetY?, blur?, color?, opacity? }`(显式字段覆盖 preset) */
shadow?: IRPath['shadow'];
/** 混合模式(CSS `mix-blend-mode`):与下方已绘内容按 W3C 分离公式混合 */
blendMode?: IRPath['blendMode'];
/** 语义 stroke 档位糖(TikZ `ultra thin` … `ultra thick`);显式 `strokeWidth` 始终优先 */
thickness?: PathThicknessValue;
/**
* 路径级箭头方向
* @description `'->'` 终点 / `'<-'` 起点 / `'<->'` 两端;省略或 `'none'` 无箭头
*/
arrow?: PathProps['arrow'];
/**
* 箭头详细配置
* @description 顶层默认 + 可选 `start` / `end` 子对象逐字段 merge override。空心 shape 上 `fill` silent no-op
*/
arrowDetail?: PathProps['arrowDetail'];
/** 闭合区域填充色,省略 = 不填充。配合 way 末尾的 `DrawWay.Cycle` 画填充形状 */
fill?: IRPath['fill'];
/** 填充规则:`'nonzero'`(默认)/ `'evenodd'` */
fillRule?: IRPath['fillRule'];
/** 整 path 透明度 0~1 */
opacity?: IRPath['opacity'];
/** 仅 fill 透明度 0~1 */
fillOpacity?: IRPath['fillOpacity'];
/** 仅 stroke 透明度 0~1(TikZ `stroke opacity`) */
strokeOpacity?: IRPath['strokeOpacity'];
/** 显式栈序:大者在上;缺省 0 = 声明顺序;同值稳定保序;只在同层子节点间生效 */
zIndex?: IRPath['zIndex'];
};
/**
* Sugar 组件——展开为等价的 Kernel 子树
* @description 用 way 数组按顺序声明移动、连线、折角、曲线、闭合、圆弧和边标注;能力与手写 `` /
* `` 等价,不额外引入新的路径语义
*/
export declare const Draw: FC;
//# sourceMappingURL=Draw.d.ts.map