/**
 * Svelte action: animates SVG paths inside the host node using a JS RAF loop.
 *
 * Why JS instead of CSS animations: CSS animations had timing issues — by the
 * time the action finished computing each path's actual length via
 * getTotalLength(), the CSS animation had already started using a fallback
 * value (1000) which doesn't match the path's real length, causing the path
 * to either flicker or stay fully visible. Doing everything in JS is reliable.
 *
 * Modes:
 *   • draw         — strokes appear from 0 → length (handle reverse to flip)
 *   • undraw       — strokes disappear from length → 0
 *   • draw-undraw  — appear then disappear, repeats if loop=true
 *   • flow         — marching ants. Keeps base dasharray, shifts offset.
 *   • none         — no animation; restore original attributes.
 */
export interface SvgPathDrawParams {
    enabled: boolean;
    mode: 'none' | 'draw' | 'undraw' | 'draw-undraw' | 'flow';
    duration: number;
    loop?: boolean;
    reverse?: boolean;
    key?: unknown;
}
export declare function traceSvgPaths(node: HTMLElement | SVGElement, params: SvgPathDrawParams): {
    update(p: SvgPathDrawParams): void;
    destroy(): void;
};
