import { type LineStyleType, type PPTElementOutline, type PPTShapeElement } from '../types/slides'; /** Clamp a resolved pixel corner radius to half the shorter box side. */ export declare const clampOutlineRadius: (radius: number, width: number, height: number) => number; /** Pixel radius for paint/CSS. `radius` is 0–1 of max rounding, or legacy px when `> 1`. */ export declare const resolveOutlineRadiusPx: (radius: number | undefined, width: number, height: number) => number; /** Slider / label percent (0–100) for an authored outline radius. */ export declare const outlineRadiusToPercent: (radius: number | undefined, width: number, height: number) => number; export declare const percentToOutlineRadius: (percent: number) => number; export declare const outlineRadiusCss: (radius: number | undefined, width: number, height: number) => string | undefined; /** * Rounded rect in local units. `rx`/`ry` are elliptical radii of that space * (circular after a matching non-uniform scale). Skips zero-length edges so * 100% rounding is a pill/circle instead of collapsed quadratic chamfers. */ export declare const roundedRectEllipsePath: (width: number, height: number, rx: number, ry: number) => string; /** Circular-corner rounded rect in pixel space. 100% radius → pill / circle. */ export declare const roundedRectArcPath: (width: number, height: number, radiusPx: number) => string; /** SVG path for a rectangular outline (optionally rounded). */ export declare const roundedRectOutlinePath: (width: number, height: number, radius?: number) => string; /** Rectangles and rectangle-family formulas the border-radius slider can round. */ export declare const isRoundableRectShape: (el: Pick) => boolean; /** * Path the editor / painter / hit-test should use. Outline radius is a 0–1 * fraction of max rounding; viewBox scale keeps the corners circular. */ export declare const resolveShapePaintPath: (el: PPTShapeElement) => string; /** Keep ROUND_RECT keypoints / path in sync when the radius slider moves. */ export declare const shapePropsForOutlineRadius: (el: PPTShapeElement, radius: number) => Partial; export declare const outlineElementPatch: (el: { type: string; }, outline: PPTElementOutline, radiusChanged?: boolean) => { outline: PPTElementOutline; } & Partial; /** * pptxgenjs-plus `rectRadius` (ECMA-376 `a:gd name="adj"` / 50000). * 0 = sharp corners, 1 = maximum rounding, 0.2 = 20%. */ export declare const outlineRadiusToPptxRectRadius: (radius: number, width: number, height: number) => number; /** pptxtojson emits border colors as a structured solid/gradient object. */ export type PptxBorderColor = string | { type: 'color'; value: string; } | { type: 'gradient'; value: { colors: { color: string; pos: string; }[]; path: string; rot: number; }; }; /** * Flatten a pptxtojson border color to the single CSS color Fika outlines * and lines support. Gradient strokes fall back to their first stop. */ export declare const pptxBorderColorToString: (borderColor?: PptxBorderColor) => string | undefined; interface PptxOutlineSource { borderColor?: PptxBorderColor; borderWidth?: number; borderType?: LineStyleType; shapType?: string; keypoints?: Record; width: number; height: number; } export declare const importOutlineFromPptx: (el: PptxOutlineSource, ratio: number, options?: { includeCornerRadius?: boolean; }) => PPTElementOutline; export {};