import type { DrawElement } from '../types'; export interface StrokeOptions { size: number; thinning: number; smoothing: number; streamline: number; taperStart: boolean; taperEnd: boolean; } export declare function resolveStrokeOptions(el: Pick): StrokeOptions; type DrawStrokeEl = Pick; /** * Filled-outline `d` for the stroke revealed up to `fraction` (0..1) of its arc * length. Rebuilds the geometry from the partial point list each call — so at a * self-crossing the not-yet-drawn segment simply isn't there (a mask reveal * leaks the future segment wherever the thick already-drawn mask overlaps it). * The growing tip is left capped (a pen nib); the real taper applies at full. */ export declare function drawOutlineAtProgress(el: DrawStrokeEl, fraction: number, reverse?: boolean): string; /** Compute the axis-aligned bounding box of raw input points. */ export declare function pointsBounds(points: number[][]): { minX: number; minY: number; width: number; height: number; }; /** * Build the renderable path + viewBox for a draw element. Points are assumed * to already be in a 0,0-origin local space; the viewBox spans their bounds * (plus stroke padding) so the element box scales the stroke on resize. */ export declare function drawElementToPath(el: Pick): { d: string; viewBox: string; }; export {};