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<DrawElement, 'brush' | 'strokeWidth' | 'thinning' | 'smoothing' | 'streamline' | 'taperStart' | 'taperEnd'>): StrokeOptions;
/** 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<DrawElement, 'points' | 'brush' | 'strokeWidth' | 'thinning' | 'smoothing' | 'streamline' | 'taperStart' | 'taperEnd'>): {
    d: string;
    viewBox: string;
};
