/** * Svelte action: applies ambient decorative animations to an element. These * sit on top of the morph/transition system — they're continuous loops driven * by the same virtual-clock restart registry (__svgAnimRestart) so they reset * cleanly on slide enter and align in Flow-mode GIF exports. * * Effects: * • glow — pulsing colored box-shadow halo * • shimmer — diagonal highlight stripe sweeping across the element * • gradientShift — animates background-position on a multi-color gradient * • rgbSplit — chromatic-aberration-style R/B channel offset (drop-shadow) */ import type { DecorationsConfig } from '../types'; export interface DecorationsParams { config?: DecorationsConfig; /** Slide loop duration; when present, each effect's cycle is rounded so an * integer number fits in slide_duration — guarantees seamless GIF loop. */ slideDuration?: number; /** Optional shape info — if present, shimmer and gradientShift overlays * get clipped to this silhouette. Without it both effects render against * the rectangular wrapper bounds (which looks wrong on circles/hexagons/ * stars). Pass `{ type: 'circle' }` etc. from the host for shape elements. */ shape?: { type: 'rectangle' | 'circle' | 'ellipse' | 'triangle' | 'hexagon' | 'star'; borderRadius?: number; }; /** Bumped by the host when ANY decoration prop changes. Without it the * action would silently keep running with stale params. */ key?: unknown; } export declare function decorations(node: HTMLElement, params: DecorationsParams): { update(p: DecorationsParams): void; destroy(): void; };