/**
 * Svelte action for arrow animations. Two strategies depending on mode:
 *
 *  • 'draw' / 'undraw' / 'draw-undraw' — reveals the stroke ALONG THE PATH using
 *    stroke-dasharray/offset keyed to the path's total length. This follows the
 *    real geometry, so curved, looping and spiral arrows draw the way they're
 *    shaped (a linear clip-path wipe could only sweep left↔right / top↔bottom).
 *    The arrowhead (a separate sub-path) is revealed in step. Any dashed/dotted
 *    pattern is overridden during the reveal and restored when fully drawn.
 *
 *  • 'flow' — marching ants. Continuously shifts stroke-dashoffset on the
 *    inner .arrow-path, so the dash pattern appears to flow along the path
 *    like a current. Forward/reverse controls flow direction. Inherently
 *    looping; the loop flag is ignored.
 */
export interface ArrowClipDrawParams {
    enabled: boolean;
    mode: 'draw' | 'undraw' | 'draw-undraw' | 'flow' | 'none' | string;
    duration: number;
    startX: number;
    startY: number;
    endX: number;
    endY: number;
    loop?: boolean;
    reverse?: boolean;
    /** Slide loop duration in ms. When provided AND loop=true (or mode='flow'),
     * the effective animation duration is rounded so an integer number fits in
     * slide_duration — guarantees seamless GIF loop. */
    slideDuration?: number;
    key?: unknown;
}
export declare function arrowClipDraw(node: SVGSVGElement, params: ArrowClipDrawParams): {
    update(p: ArrowClipDrawParams): void;
    destroy(): void;
};
