import { PathProps } from '../../kernel/components'; /** * sugar 组件共用的视觉 props */ export type PathVisualProps = Omit; /** * 从 sugar props 拣出视觉 props 透传给底层 `` * * @description `id` / `meta` / `animations` 透传给底层 ``;事件 `on` props 留在 sugar 元素上, * 仍按同一个 id 绑定 */ export declare const pickPathVisual: (props: object) => PathVisualProps; /** 校验点输入必须是字面 [x, y] 坐标 */ export declare const requireXY: (value: unknown, sugarName: string, propName: string) => [number, number]; /** 两点中点 */ export declare const midpoint: (a: [number, number], b: [number, number]) => [number, number]; /** sugar 形状的 box 输入 */ export type ShapeBox = { x: number; y: number; width: number; height: number; } | { origin: [number, number]; width: number; height: number; }; /** box 的扩张 / 收缩控制 */ export type BoxAdjustmentProps = { inset?: number; outset?: number; }; /** 归一化后的 box 坐标 */ export type NormalizedShapeBox = { left: number; top: number; right: number; bottom: number; }; /** 把 box 对象转成归一化的四边 */ export declare const normalizeShapeBox: (value: ShapeBox, sugarName: string, propName: string) => NormalizedShapeBox; /** 把两个对角点转成归一化的四边 */ export declare const normalizeCornerBox: (corner1: [number, number], corner2: [number, number]) => NormalizedShapeBox; /** 对归一化 box 施加 inset / outset */ export declare const adjustShapeBox: (box: NormalizedShapeBox, props: BoxAdjustmentProps, sugarName: string) => NormalizedShapeBox; /** box 中心 */ export declare const boxCenter: (box: NormalizedShapeBox) => [number, number]; /** box 尺寸 */ export declare const boxSize: (box: NormalizedShapeBox) => [number, number]; /** 轴对齐椭圆 / 圆上由极角求笛卡尔点 */ export declare const polarXY: (center: [number, number], radiusX: number, radiusY: number, angleDeg: number) => [number, number]; /** 轴对齐椭圆上的正多边形顶点 */ export declare const regularPolygonVertices: (center: [number, number], radiusX: number, radiusY: number, sides: number, rotateDeg: number) => Array<[number, number]>; /** 圆上的星形顶点 */ export declare const starVertices: (center: [number, number], outerRadius: number, innerRadius: number, points: number, rotateDeg: number) => Array<[number, number]>; /** circle / ellipse / arc 等 sugar 共用的角度输入 */ export type AngleInput = { startAngle?: number; endAngle?: number; sweepAngle?: number; }; /** 解析两角规格(startAngle / endAngle / sweepAngle 任取两个) */ export declare const resolveAngles: (input: AngleInput, sugarName: string, required?: boolean) => { startAngle: number; endAngle: number; } | undefined; //# sourceMappingURL=shape-helpers.d.ts.map